Thursday, April 3, 2008

SW306 Лабораторийн ажил 5

Лабораторийн ажил 5

Хугацаа: IV/9-10 -ны лабораторийн цагуудаас өмнө
Нөхцөл:
Энэ лабораторийн ажлыг мнөх лабораторийн ажлаа өргөжүүлж хөгжүүлэх замаар хийнэ.
Үүнийг гүйцэтгэхдээ дараах зүйлүүдийг хамрах ёстой. Үүнд:
1) Өмнөх лабораторийн ажлын хүрээнд сонгож авсан системийн хийсвэрлэл болох классаас удамшсан хүү классыг үүсгэнэ.
2) Гишүүн функцийг дахин тодорхойлолт (method overriding), гишүүн функцийн дахин ачаалалт (method overload) тодорхойлогдоно.
3) Хийсвэр класс буюу interface хэрэгжүүлэлтийг үүсгэнэ.

Жишээ програм: Дэлгүүр

Бараа (Goods)нь дараах шинж чанартай:
- Тодорхойлолт (description)
- Үнэ (price)
Барааны дараах хэлбэрүүд байдаг.
- Хүнс (foods)
- Тоглоом (toys)
- Ном (books)
Дээрх бараануудаас Хүнс (foods) нь таксгүй, харин Тоглоом болон Ном худалдан авбал такс төлдөг гэж үзье.
- Такстай бараа нь6 %-ийн татвар төлдөг
- calculateTax() функцтэй байна гэж үзье.


Эхлээд Бараа(Goods) классыг тодорхойлъё.
class Goods{
String description;
double price;
Goods(String des, double pr){description=des; price=pr;}
void display() {
System.out.println("Product: "+description+" Price: "+price); }
}

Бараа (Goods) классаас удамшсан Food классыг тодорхойлъё. (Хүнсний бараа нь бараа бүтээгдэхүүний нэгэн хэлбэр гэдэг утгаар)
class Food extends Goods{
double calories;
Food(String des,double pr,double cal){
super(des,pr);
calories=cal; }
void display(){
super.display();
System.out.println("Calories: " + calories); }
}

Зарим такстай барааны (Toy, book) таксуудыг тооцохын тулд Taxable интерфэйсийг тодорхойлъё.
interface Taxable{
final double taxRate=0.06;
double calculateTax();
}

Бараа(Goods)-аас удамшсан бөгөөд такс тооцох Toy, Book классуудыг тодорхойлъё.
class Toy extends Goods implements Taxable{
int minimumAge;
Toy(String des,double pr,int min){
super(des,pr);
minimumAge=min; }
void display() {
super.display();
System.out.println("Minimum age: "+minimumAge); }
public double calculateTax(){
return price*taxRate; }
}

class Book extends Goods implements Taxable{
String author;
Book(String des,double pr,String auth){
super(des,pr);
author=auth; }
void display() {
super.display();
System.out.println("Author: "+author); }
public double calculateTax(){
return price*taxRate; }
}

Хэрэгжүүлэгч классыг тодорхойлъё.

public class Store{
public static void main(String args[]){
Goods gd=new Goods("Soap",450);
Food fd=new Food("Beef",3100,1500);
Book bk=new Book("Perfect Java",8000,"Hwang Seong Hag");
Toy to=new Toy("Doll",9000,16);
gd.display();
fd.display();
System.out.println("\n");
to.display();
System.out.println("Tax is:" +to.calculateTax()+"\n");
bk.display();
System.out.println("Tax is:" +bk.calculateTax()+"\n");
}
}

No comments: