Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Βασικά η άσκηση είναι σε μεγάλο σημείο λυμένη ήδη.

Το δυσκολότερο μέρος, το να χωρίσεις το πρόγραμμα σε κλάσεις και το πως αυτές σχετίζονται μεταξύ τους, στο δίνει ήδη.

 

1) Φτιάξε μια γενική κλάση "Συσκευή" η οποία να περιέχει τα πεδία Κωδικός, Ονοµα Μοντέλου, Ετος Μοντέλου, Κατασκευαστής, Τιµή.

2) Φτιάξε 3 child κλάσεις που να κληρονομούν από τη "Συσκευή" οι οποίες έχουν σε πεδίο το ποσοστό της έκπτωσης, και αντιστοιχούν σε "Εικόνα και ήχος", "Gaming" και "Οικιακές Συσκευές".

3) Φτιάξε 3 κλάσεις που να κληρονομούν από την "Εικόνα και Ήχος", τη "Τηλεοράσεις", "Blue Ray / DVD Players", και τη "Φωτογραφικές Μηχανές", μια που να κληρονομεί από το gaming που θα ονομάσεις "Κονσόλες", και 2 που θα κληρονομούν απ' τις "Οικιακές Συσκευές", τη "Ψυγεία" και τη "Πλυντήρια Ρούχων". Τα πεδία τους αναφέρονται στο πίνακα του PDF.

4) Φτιάξε ένα κατάλογο "Κατάλογος Διαθέσιμων Συσκευών", όπου περιέχει ως στοιχεία αρχικοποιημένα αντικείμενα των διαθέσιμων συσκευών.

5) Φτιάξε κλάση 'Παραγγελία', η οποία θα λαβαίνει τα αντικείμενα που παράγγειλε ο πελάτης, και τα στοιχεία πελάτη, και θα χει μια συνάρτηση που θα αφαιρεί τα αντικείμενα που παρήγγειλε ο χρήστης από το κατάλογο Διαθέσιμων Συσκευών και θα τα βάζει στο κατάλογο Παραγγελθέντων Συσκευών που επίσης θα φτιάξεις.

6) Όταν ο χρήστης του προγράμματος επιλέγει ότι έγινε η άφιξη της παραγγελίας, να καλείται μια συνάρτηση που αφαιρεί τη συσκευή από το κατάλογο Παραγγελθέντων Συσκευών και να τη βάζει στο κατάλογο Πουλημένων Συσκευών.

7) Τα υπόλοιπα που σου λέει όπως να αφαιρείται το ποσοστό έκπτωσης από τη τιμή, πως να δέχεται εισαγωγή τα στοιχεία του πελάτη κτλπ, ε αυτά είναι απλές εκφράσεις, πρέπει να τα ξέρεις και μόνος σου.

  • 2 εβδομάδες αργότερα...
Δημοσ.
import java.util.*;

import java.io.*;

 

class mainprogram {

static BufferedReader keyboard = new BufferedReader (new InputStreamReader(System.in));

// απαραίτητο για να μπορέσουμε να κάνουμε input

public static void main (String[] args) throws Exception {

int epilogi; // 0=επισκόπηση διαθέσιμων συσκευών, 1=επισκόπηση παραγγελιών, 2=επισκόπηση πωλήσεων, 3=έξοδος

System.out.println("Kane mia Epilogi : 0 (diathesimes syskeyes), 1 (paraggelies), 2 (poliseis) or 3 (exodos)");

epilogi = Integer.parseInt (keyboard.readLine());

 

// Απόδοση αρχικών τιμών σε 2 τηλεοράσεις

Device_1_1 myDevice_1_1_01 = new Device_1_1();

myDevice_1_1_01.code = 1;

myDevice_1_1_01.model_name = "P01";

myDevice_1_1_01.model_year = 2015;

myDevice_1_1_01.producer = "Phlips";

myDevice_1_1_01.price = 100.00;

myDevice_1_1_01.type = 1;

myDevice_1_1_01.monitor_dim = 15.50;

myDevice_1_1_01.resolution = 1400.00;

myDevice_1_1_01.ports = 1;

myDevice_1_1_01.pieces = 10;

 

Device_1_1 myDevice_1_1_02 = new Device_1_1();

myDevice_1_1_02.code = 2;

myDevice_1_1_02.model_name = "S01";

myDevice_1_1_02.model_year = 2015;

myDevice_1_1_02.producer = "Samsung";

myDevice_1_1_02.price = 150.00;

myDevice_1_1_02.type = 2;

myDevice_1_1_02.monitor_dim = 16.50;

myDevice_1_1_02.resolution = 1500.00;

myDevice_1_1_02.ports = 2;

myDevice_1_1_02.pieces = 15;

 

// Απόδοση αρχικών τιμών σε 2 συσκευές gaming

Device_2 myDevice_2_01 = new Device_2();

myDevice_2_01.code = 1;

myDevice_2_01.model_name = "S10";

myDevice_2_01.model_year = 2014;

myDevice_2_01.producer = "Sony";

myDevice_2_01.price = 200.00;

myDevice_2_01.type = 1;

myDevice_2_01.processor = "Intel";

myDevice_2_01.graphics = 100;

myDevice_2_01.sound = 200;

myDevice_2_01.HDcapacity = 200;

myDevice_2_01.pieces = 10;

 

Device_2 myDevice_2_02 = new Device_2();

myDevice_2_02.code = 2;

myDevice_2_02.model_name = "H10";

myDevice_2_02.model_year = 2016;

myDevice_2_02.producer = "Hitachi";

myDevice_2_02.price = 250.00;

myDevice_2_01.type = 2;

myDevice_2_01.processor = "AMD";

myDevice_2_01.graphics = 150;

myDevice_2_01.sound = 250;

myDevice_2_01.HDcapacity = 300;

myDevice_2_01.pieces = 20;

 

// Απόδοση αρχικών τιμών σε 2 οικιακές συσκευές - ψυγεία

Device_3_1 myDevice_3_1_01 = new Device_3_1();

myDevice_3_1_01.code = 1;

myDevice_3_1_01.model_name = "M10";

myDevice_3_1_01.model_year = 2016;

myDevice_3_1_01.producer = "Muller";

myDevice_3_1_01.price = 300.00;

myDevice_3_1_01.type = 1;

myDevice_3_1_01.energyclass = "A";

myDevice_3_1_01.maincapacity = 200;

myDevice_3_1_01.freezecapacity = 100;

myDevice_3_1_01.pieces = 10;

 

Device_3_1 myDevice_3_1_02 = new Device_3_1();

myDevice_3_1_02.code = 2;

myDevice_3_1_02.model_name = "K10";

myDevice_3_1_02.model_year = 2016;

myDevice_3_1_02.producer = "Kelvinator";

myDevice_3_1_02.price = 300.00;

myDevice_3_1_02.type = 2;

myDevice_3_1_02.energyclass = "B";

myDevice_3_1_02.maincapacity = 200;

myDevice_3_1_02.freezecapacity = 100;

myDevice_3_1_02.pieces = 15;

 

switch (epilogi) {

case (0): //  0=επισκόπηση διαθέσιμων συσκευών

System.out.println("Episkopisi Diathesimon Syskeyon");

int epilogi01; // επιλογή κατηγορίας, 1, 2 ή 3

int epilogi02; // επιλογή τύπου συσκευής 1, 2 ή 3

int epilogi_code; // επιλογή κωδικού συσκευής

System.out.println("Kane mia Epilogi : 1=eikona kai ixos, 2=gaming, 3=oikiakes syskeyes");

epilogi01 = Integer.parseInt (keyboard.readLine());

 

if (epilogi01 == 1) { // συσκευές εικόνας και ήχου

System.out.println("Kane mia Epilogi Katigorias : 1=TV, 2=Blue Ray / DVD players, 3=Cameras");

epilogi02 = Integer.parseInt (keyboard.readLine());

if (epilogi02 == 1) { // TV

System.out.println("Dose Kodiko Syskeys TV : ");

epilogi_code = Integer.parseInt (keyboard.readLine());

myDevice_1_1_01.PrintModel();

}

if (epilogi02 == 2) { // Blue Ray / DVD players

 

}

if (epilogi02 == 3) { // Cameras

 

}

 

} // end of if

if (epilogi01 == 3) { // οικιακές συσκευές

System.out.println("Kane mia Epilogi : 1=Refrigerators, 2=Washing Machines");

epilogi02 = Integer.parseInt (keyboard.readLine());

}

break;

case (1): // 1=επισκόπηση παραγγελιών

System.out.println("Episkopisi Paraggelion");

break;

case (2): // 2=επισκόπηση πωλήσεων

System.out.println("Episkopisi Poliseon");

break;

case (3): // 3=έξοδος

System.out.println("Exit");

break;

default: //  άλλη επιλογή - λάθος και έξοδος

System.out.println("Error - Exit");

} // end of switch

 

 

} //end of main

} // end of mainprogram

 

class Device_1_1 {

// ορισμός των πεδίων των συσκευών εικόνας και ήχου - τηλεοράσεις

int code;

String model_name;

int model_year;

String producer;

double price;

int type; // 1=LCD, 2=LED, 3=Plasma

double monitor_dim;

double resolution;

int ports; // 1=HDMI, 2=DVI, 3=Composite

int pieces; // αριθμός διαθέσιμων κομματιών

 

void PrintModel () {

System.out.println("Stoixeia Syskeys : ");

System.out.println(model_name + producer);

}

}

 

class Device_1_2 {

// ορισμός των πεδίων των συσκευών εικόνας και ήχου - Blue Ray / DVD Players

int code;

String model_name;

int model_year;

String producer;

double price;

int type; // 1=Blue Ray, 2=DVD

double resolution;

int format; // 1=BD-R, 2=BD-RD, 3=DVD-RW, 4=DVD+RW

int pieces; // αριθμός διαθέσιμων κομματιών

}

 

class Device_1_3 {

// ορισμός των πεδίων των συσκευών εικόνας και ήχου - φωτογραφικές μηχανές

int code;

String model_name;

int model_year;

String producer;

double price;

int type; // 1=compact, 2=DSLR, 3 =Action camera

int megapixel;

int opticalzoom;

int digitalzoom;

int screensize;

int pieces; // αριθμός διαθέσιμων κομματιών

}

 

class Device_2 {

// ορισμός των πεδίων των συσκευών gaming

int code;

String model_name;

int model_year;

String producer;

double price;

int type; // 1=PS4, 2=PS3, 3 =Xbox, 4=Wii

String processor;

int graphics;

int sound;

int HDcapacity;

int pieces; // αριθμός διαθέσιμων κομματιών

}

 

class Device_3_1 {

// ορισμός των πεδίων των οικιακών συσκευών - ψυγεία

int code;

String model_name;

int model_year;

String producer;

double price;

int type; // 1=μονόπορτο, 2=δίπορτο, 3=ντουλάπα

String energyclass;

int maincapacity;

int freezecapacity;

int pieces; // αριθμός διαθέσιμων κομματιών

}

 

class Device_3_2 {

// ορισμός των πεδίων των οικιακών συσκευών - πλυντήρια ρούχων

int code;

String model_name;

int model_year;

String producer;

double price;

String energyclass;

int capacity;

int revolutios;

int pieces; // αριθμός διαθέσιμων κομματιών

}

 

 

class Orders {

// πεδία - χαρακτηριστικά παραγγελιών

int order_code; // κωδικός παραγγελίας, α/α

int code; // κωδικός προϊόντος που παραγγέλθηκε

String client_name; // όνομα πελάτη

String client_phone; // τηλέφωνο πελάτη

String order_date; // ημερομηνία παραγγελίας

String arrival_date; // αναμενόμενη ημερομηνία άφιξης της παραγγελίας

double final_cost; // τελικό κόστος

int order_status; // 1= αναμένεται, 2= εκτελέστηκε

}

 

 

class Sales {

// πεδία - χαρακτηριστικά πωλήσεων

int sales_code; // κωδικός πώλησης, α/α

int code; // κωδικός προϊόντος που πουλήθηκε

String client_name; // όνομα πελάτη

String client_phone; // τηλέφωνο πελάτη

String sales_date; // ημερομηνία πώλησης

double final_cost; // τελικό κόστος

}

......παιδια δειτε λιγο αν θελετε και πειτε μου αν παω καλα

  • Moderators
Δημοσ.

Πρώτον άλλαξε τα ονόματα των κλάσεών σου σε κάτι που βγάζει νόημα (Refrigerator, GamingConsole κλπ). Δεύτερον, δες τι είναι το inheritance.

  • Like 1
Δημοσ.

Διάβασε για πολυμορφισμο και κληρονομικοτητα. Τα βήματα του Alithinos πιο πάνω είναι και ο τρόπος που πρέπει να φτιάξεις το μοντέλο σου θα σε βοηθήσει να στήσεις τις κλασεις σου όπως πρέπει

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...