Bonsoir à tous,
Je viens vers vous pour essayer de trouver la "meilleure" facon possible pour calculer un prix d'un petit programme que je dois faire dans le cadre de mon cours sur le C.
Ce programme gere une liste de client d'un centre de thalasso. Ce centre propose differente cure, different soins, different hebergement et en fonction des saisons de l'année tout a un prix different.
Mon idée était de créer une structure speciale pour calculer le prix qui enregistrait toutes les informations importantes pour le prix final.
Avec la saison prennant les valeurs 1, 2, 3 ou 4
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 struct Prix { int saison; int c; int s1; int s2; int s3; int loge; int chambre; int suitevue; int confchambre; int vue };
c le choix de la cure 1, 2 ou 3
s1 le soin optionnel 1 compris entre 1 et 8
s2 soins optionne 2
et ainsi de suite
Ma fonction prix ressemble a ca pour le moment (j'ai juste fais pour une saison) mais je la trouve pas très élégante et aimerais trouver un meilleur moyen de faire qu'une suite de if et de switch
Voila j'espere avoir été clair sur mon probleme, mon cours ce résume au langage C de base donc pas de c++ car je pense que la POO permet mieux de faire ce genre de chose..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111 void calculprix(struct Prix px){ int prix=0; if (px.saison == 4){ // CURE if(px.c==1){ prix=440; } else if(px.c==2){ prix=460; } else { prix =560; } // SOINS switch (px.s1) { case 1 :prix+=30;break; case 2 :prix+=35;break; case 3 :prix+=40;break; case 4 :prix+=30;break; case 5 :prix+=35;break; case 6 :prix+=40;break; case 7 :prix+=30;break; case 8 : prix+=35;break; case 9 : break; } switch (px.s2) { case 1 :prix+=30;break; case 2 :prix+=35;break; case 3 :prix+=40;break; case 4 :prix+=30;break; case 5 :prix+=35;break; case 6 :prix+=40;break; case 7 :prix+=30;break; case 8 : prix+=35;break; case 9 : break; } switch (px.s3) { case 1 :prix+=30;break; case 2 :prix+=35;break; case 3 :prix+=40;break; case 4 :prix+=30;break; case 5 :prix+=35;break; case 6 :prix+=40;break; case 7 :prix+=30;break; case 8 : prix+=35;break; case 9 : break; } if (px.loge==1){ if(px.chambre==1){//Simple if(px.confchambre==1){//SIMPLE standar if(px.vue==1){ prix+=190; } else if (px.vue==2){ prix+=200; } else { prix+=175; } } else {// simple confort if(px.vue==1){ prix+=220; } else if (px.vue==2){ prix+=230; } else { prix+=200; } } } else if (px.chambre==2){// confort if(px.confchambre==1){//confort simple if(px.vue==1){ prix+=140; } else if (px.vue==2){ prix+=150; } else { prix+=125; } }else { // confort double if(px.vue==1){ prix+=165; } else if (px.vue==2){ prix+=175; } else { prix+=150; } } } else { if(px.suitevue==1){ prix+=375; } else { prix+=400; } } } } printf("----------%d----------\n",prix); } }
Merci d'avance
Partager