Δημοσιεύτηκε: 04 Μαρ 2013, 01:19
Έλα φίλε μου...το ξέρω ότι στο δίνω έτοιμο, πρόσεχε τι θα παραδώσεις..μη μας κόψουν και τους 2!
Αμα έχεις κάνει την 4 την θέλω να δώ το σκεπτικό..
Αμα έχεις κάνει την 4 την θέλω να δώ το σκεπτικό..

- Κώδικας: Επιλογή όλων
#include <stdio.h>
#include <stdlib.h>
int load_menu(void); //Συνάρτηση εμφάνισης επιλογών
int input_poso(float timh); //Συνάρτηση εισαγωγής ποσού & υπολογισμού για τα ρέστα
//Κύρια συνάρτηση προγράμματος--------------------------------------------------------------------
main()
{
load_menu(); /*Καλεί την συνάρτηση εμφάνισης των επιλογών*/
system("pause");
}
//Τέλος κύριας συνάρτησης προγράμματος------------------------------------------------------------
//Συνάρτηση load_menu//--Εκτυπώνει τις επιλογές και ζητάει την επιλογή του χρήστη---------
int load_menu(void){
int choice=0;
float timh;
do
{
printf("\nParakalw epilekste ena apo ta parakatw\n\n");
printf("1. Kafe 1.5 euro\n");
printf("2. Kafe me gala 1.8 euro\n");
printf("3. Sokolata 2.1 euro\n");
printf("4. Sokolata me gala 2.4 euro\n");
printf("0. Exodos\n\n");
printf("Parakalw eisagete tin epilogi sas: ");
scanf("%d",&choice); //Διαβάζει την επιλογή
switch(choice)
{
/*Σε κάθε επιλογή καλεί την συνάρτηση εισαγωγής ποσού μεταβιβάζοντας την αντίστοιχη τιμή του προϊόντος*/
case 1: input_poso(timh=1.5);
break;
case 2: input_poso(timh=1.8);
break;
case 3: input_poso(timh=2.1);
break;
case 4: input_poso(timh=2.4);
break;
case 0: printf("Exodos apo to programma\n");
system("pause");
exit(0); //Με την επιλογή 0 το πρόγραμμα τερματίζει//
break;
default: printf("\nLathos Epilogi!\n"); //Αμυντικός προγραμματισμός για την επιλογή//
break;
}
}while(choice != 0);
}
//Τέλος συνάρτησης load_menu//----------------------------------------------------------------------
//Συνάρτηση input_poso//--Εκτυπώνει την τιμή του προϊόν, ζητάει το ποσό πληρωμής από// //τον χρήστη και τυπώνει αφού κάνει τους υπολογισμούς τα ρέστα που θα επιστραφούν//
int input_poso(float timh)
{
int Coins2euro, Coins1euro, Coins50cents, Coins20cents, Coins10cents, Coins5cents, change;
float ypoloipo, poso, sinolo, resta;
printf("\nPrepei na eisagete %1.1f euro synolika\n", timh);
printf("Posa Eisagete? :");
scanf("%f",&poso);
/* Εάν το ποσό εισαγωγής είναι ίδιο με την τιμή του προϊόντος, δεν υπάρχουν ρέστα. */
if ( poso == timh )
{
printf("\nDen exeis resta\n");
}
/* Εάν το ποσό δεν επαρκεί, τυπώνεται αντίστοιχο μήνυμα και ζητείται επιπλέον ποσό. */
else
sinolo=poso;
ypoloipo=timh-sinolo;
if ( poso < timh ){
do{
printf("\nDen symplironete to poso\n \nParakalw eisagete %1.1f euro epipleon\n",ypoloipo);
scanf("%f",&poso);
sinolo=sinolo+poso;
ypoloipo=timh-sinolo; //Για όσο το σύνολο των ποσών που έχουμε εισάγει είναι
} //είναι μικρότερο της τιμής του προϊόντος
while(ypoloipo>0.0); //επαναλαμβάνει την προσθήκη χρημάτων
}
/*Εαν το ποσό είναι ίσο με την τιμή τότε δεν υπάρχουν ρέστα*/
if(ypoloipo==0.0){
printf("\nDen exeis resta\n");
}
/*Εάν υπάρχει αρνητική τιμή στο υπόλοιπο τότε υπάρχουν ρέστα*/
else if (ypoloipo<0.0){
resta = sinolo - timh; /*Υπολογισμός για τα ρέστα*/
change = resta * 100; /*Μετατροπή σε λεπτά*/
printf("\nEpistrofh: %1.1f euro\n",resta); /*Τυπώνει το ποσό που θα επιστραφεί*/
printf("\nParakalw parte : \n");
/*Υπολογίζει τα ρέστα που πρέπει να επιστρέψει*/
Coins2euro = change / 200;
change = change % 200;
if(Coins2euro != 0) /*Εάν θα επιστραφούν δίευρα τυπώνει την ποσότητα*/
printf("\n dieura : %d\n", Coins2euro);
Coins1euro = change / 100;
change = change % 100;
if(Coins1euro != 0) /*Εαν θα επιστραφούν μονόευρα τυπώνει την ποσότητα*/
printf("\n monoeura : %d\n", Coins1euro);
Coins50cents = change / 50;
change = change % 50;
if(Coins50cents != 0) /*Εαν θα επιστραφούν 50λεπτα τυπώνει την ποσότητα*/
printf("\n penintalepta : %d\n", Coins50cents);
Coins20cents = change / 20;
change = change % 20;
if(Coins20cents != 0) /*Εαν θα επιστραφούν 20λεπτα τυπώνει την ποσότητα*/
printf("\n eikosalepta : %d\n", Coins20cents);
Coins10cents = change / 10;
change = change % 10;
if(Coins10cents != 0) /*Εαν θα επιστραφούν 10λεπτα τυπώνει την ποσότητα*/
printf("\n dekalepta : %d\n", Coins10cents);
Coins5cents = change / 5;
change = change % 5;
if(Coins5cents != 0) /*Εαν θα επιστραφούν 5λεπτα τυπώνει την ποσότητα*/
printf("\n pentalepta : %d\n", Coins5cents);
}
system("pause");
}
//Τέλος της συνάρτησης εισαγωγής ποσού και υπολογισμού για τα ρέστα//---------------------