السلام عليكم
على طول معزبكم بأسئلتي الكثيرة
اليوم عندي كتابة برنامج على النحو التالي
السؤال الأول
يوجد لدينا كلاسس (2) واحدة تدعى Car والاخرى Engine من المفروض تنزيلهم على حاسوبك قبل البدء بصنع برنامجنا الجديد
لقد وضعت روابط لهده الكلاسس وسأقوم بكتابتها ككود
public class Engine {
// the code of Motortyp :
public static final int ENGINETYPE_UNKNOWN = -1; //
public static final int ENGINETYPE_OTTO = 0; // with benzin: Benzin
public static final int ENGINETYPE_DIESEL = 1; // with: Diesel, oil
// the code of:
public static final int FUELCODE_UNKNOWN = -1; //
public static final int FUELCODE_BENZINE = 0; // Benzin
public static final int FUELCODE_DIESEL = 1; // Diesel
public static final int FUELCODE_VEGOIL = 2; // oil
// Cylinder - Minimum und Maximum :
private static final int MIN_CYLINDER = 3;
private static final int MAX_CYLINDER = 12;
// Power in PS - Minimum und Maximum :
private static final double MIN_POWER = 20.0;
private static final double MAX_POWER = 400.0;
// Standard-value :
private static final double STANDARD_POWER = 40.0;
private static final int STANDARD_FUEL = FUELCODE_BENZINE;
private static final int STANDARD_CYLINDER = 4;
// Instanz-variablen :
private double power;
private int fuel;
private int cylinders;
// Standard-construktor:
public Engine() {
this(STANDARD_CYLINDER);
}
// Konstruktor:
public Engine(int cylinder) {
this(cylinder, STANDARD_FUEL);
}
// Konstruktor:
public Engine(int cylinder, int fuel) {
this(cylinder, fuel, STANDARD_POWER);
}
// Konstruktor:
public Engine(int cylinder, int fuel, double power) {
setCylinder(cylinder);
setFuel(fuel);
setPower(power);
}
// Methode zur Ermittlung des Motorentyps
// (anhand des verwendeten Treibstoffs):
public int getType() {
switch (this.getFuel()) {
case Engine.FUELCODE_BENZINE:
return Engine.ENGINETYPE_OTTO;
case Engine.FUELCODE_DIESEL:
return Engine.ENGINETYPE_DIESEL;
case Engine.FUELCODE_VEGOIL:
return Engine.ENGINETYPE_DIESEL;
case Engine.FUELCODE_UNKNOWN:
default:
return Engine.ENGINETYPE_UNKNOWN;
}
}
public int getCylinder() {
return this.cylinders;
}
public void setCylinder(int cylinder) {
if (cylinder >= MIN_CYLINDER && cylinder <= MAX_CYLINDER) {
this.cylinders = cylinder;
} else {
this.cylinders = STANDARD_CYLINDER;
}
}
public int getFuel() {
return this.fuel;
}
public void setFuel(int fuel) {
switch (fuel) {
case Engine.FUELCODE_BENZINE:
break;
case Engine.FUELCODE_DIESEL:
break;
case Engine.FUELCODE_VEGOIL:
break;
case Engine.FUELCODE_UNKNOWN:
default:
fuel = Engine.FUELCODE_UNKNOWN;
}
this.fuel = fuel;
}
public double getPower() {
return this.power;
}
public void setPower(double power) {
if (power > MIN_POWER && power <= MAX_POWER) {
this.power = power;
} else {
this.power = STANDARD_POWER;
}
}
// Ueberschriebene toString-Methode:
public String toString() {
return "Typ " + this.getType() + " (" + this.fuel + "), "
+ (int) this.getPower() + " PS (" + this.getCylinder()
+ " Zylinder)";
}
}وهنا الكلاسس Car
public class Car {
public static final int CITY = 0;
public static final int LAND = 1;
public static final int HWAY = 2;
private Engine engine;
private double tank;
private int mode;
public Car() {
this(new Engine());
}
public Car(Engine engine) {
setEngine(engine);
setTank(60.0);
setMode(LAND);
}
//This Methode to calculate the usage with this formula
private double getUsageFromMode(int mode) {
double usage = 0.004 * Math.pow(getEngine().getPower(), 1.4) + 4;
switch (mode) {
case HWAY:
return usage;
case LAND:
return usage * 1.1;
case CITY:
return usage * 1.31;
default: return 1.0;
}
}
public double getRange() {
double tank = this.tank;
double usage = getUsageFromMode(this.mode);
return (tank / usage) * 100;
}
public int getMode() {
return this.mode;
}
public void setMode(int mode) {
this.mode = mode;
}
public double getTank() {
return this.tank;
}
public void setTank(double tank) {
this.tank = tank;
}
public Engine getEngine() {
return this.engine;
}
public void setEngine(Engine engine) {
this.engine = engine;
}
//Ueberschriebene toString-Methode:
public String toString() {
return "Status: " + this.getMode() +
"\nTankgroesse: " + this.getTank() + " Liter" +
"\nMotordaten: " + this.getEngine();
}
}والان بدأنا بالوظيفة
السؤال الاول:أكتب كلاس بأسم Fuel وهده الكلاس تصور ميزات وخصائص نوع ما من الوقود
وهده الميزات تتركز على مابلي
1.أسم الوقود
2. رقم الوقود un-number
3.رقم الخطر danger
4.نقطة الأشتعال flame
5. نوع الميوتور الذي ضمنه يحترق الوقود motortyp وهنا يمكنك ان تربط هده الكلاس بالكلاس Engine
السؤال التاني
اكتب اربعة كونستروكتور chaining constructor واربطها ببعضها ولتكن كما يلي
1.اول constructor يقيم الوقود بنزين
2.تاني constructor يعطي الوقود المنشئ كل صفاته وميزاته كمتغيرات parameter
3.ثالث constructor وهدا يجب ان يكون Copy constructor فان وظيفة هدا الكونستروكتور نسخ الوقود المعطى مع نفس القيم الواردة معه
4.رابع constructor يتلقى اسم وقود (مسمى) ويصنع منه عنصر من النوع Fuel-object ولهد الطلب من المستحسن ان تقرأ السؤال التالت قبل حله
السؤال التالت
ضع اسم الوقود بنزين وماروت وزيت Benzin ,Diesel , oil بمساعدة من النوع enum
ولهدا الاسماء قيم ثابتة وهدا القيم معطاه كما يلي
اولا البنزين
name = Benzin
un-number = 1203
danger =33
flame = -21
motortyp = ottomotor
تانيا المازوت
name = Diesel
un-number = 1202
danger =30
flame = 55
motortyp = Dieselmotor
تالتا الزيت
name = Rapsoil
un-number = K.A
danger =K.A
flame = 220
motortyp = Dieselmotor
ومن ثم اكتب ميثود private Fuel createFuel()
وهده الميثود تتركز وظيفتها في تلقي نوع الوقود واعطاء اوبجكت مع قيمه الثابتة.
السؤال الرابع
اكتب ميثود String toString()
التي تعطي اسم الوقود
انتهى السؤال
والأن اريد ان اكتب محاولتي التي تحتاج الى مساعدتكم
public class Fuel{
public Name propellant;
private double un_number;
private double danger;
private double flame;
private String motortyp;
private enum Name {
BENZIN,
DIESEL,
RAPSOEL;
}
//Set-Methode for un_number
public void setUn_number(double un_number){
this.un_number= un_number;
}
//Get-Methode for un_number
public void getUn_number(){
if (propellan== Name.RAPSOEL) {
System.out.println("K.A.");
}
else {
System.out.println(this.un_number);
}
}
//Set-Methode for danger
public void setDanger(double danger){
this.danger = danger;
}
//Get for danger
public void getdanger(){
if (propellan == Name.RAPSOEL) {
System.out.println("K.A.");
}
else {
System.out.println(this.danger);
}
}
//Set For Flame.
public void setFlame(double flame){
this.flame = flame;
}
//Get For Flame
public double getFlame(){
return this.flame;
}
//Set for Motortyp
public void setMotortyp(String motortyp) {
this.motortyp = motortyp;
}
//Get for Motortyp
public String getMotortyp(){
return this.motortyp;
}
//Set for propellan
public void setPropellan(Name propellan){
this.propellan = propellan;
}
//Get for propellan
public Name getPropellan(){
return this.propellan;
}
public Fuel(){
this(Name.BENZIN, 1203, 33, -21, "Ottomotor");
}
public Fuel(Name propellan, double un_number, double danger, double flame, String motortyp){
setPropellan(propellan);
setUn_number(un_number);
setGeDanger(danger);
setFlame(flame);
setMotortyp(motortyp);
}
public Fuel(Fuel a){
this(a.propellan, a.un_number, a.danger, a.flame, a.motortyp);
}
public Fuel(Name propellan){
this(new Fuel());
}
public Fuel(Name propellan){
this(new Fuel());
}
private Fuel createFuel(Name propellan){
if (propellan == Name.BENZIN) {
return new Fuel(Name.BENZIN);
}
else if (propellan == Name.DIESEL){
return new Fuel(Name.DIESEL);
}
else {
return new Fuel(Name.RAPSOEL);
}
}
public String toString(){
return("Fuel:"+ getPropellan());
}
}روابط الكلاسس
الرجاء مساعدتي لان ماكتبته لا يعمل بشكل صحيح والرجاء تبيين كيف استطيع ان اصنع كلاس تفحص البرنامج
وشكرا لكم