Bonjour, étant étudiant et travaillant sur la programmation depuis peu je voulais savoir s'il était possible d'optimiser mon programme (sans compter l'aspect esthétique)

Il permet à l'utilisateur d'entrer le mois de naissance puis le jour, et une phrase en retour lui dira "la personne née le (jour) (mois) est du signe (signe).
Il fonctionne bien mais je suis curieux de connaître une version améliorée :p

Voici le code :

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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
using System;
 
namespace Exercice_54
{
    class Program
    {
        public struct TabSignes
        {
            public string signe;
            public int jour;
            public string mois;
        }
        static char saisie(string message, char lettre1, char lettre2)
        {
            char reponse;
            do
            {
                Console.WriteLine();
 
                Console.Write(message + " (" + lettre1 + "/" + lettre2 + ") ");
                reponse = Console.ReadKey().KeyChar;
 
                if (reponse != lettre1 && reponse != lettre2)
                {
                    Console.WriteLine();
                    Console.WriteLine("Veuillez saisir un caractère valide!");
                }
 
            } while (reponse != lettre1 && reponse != lettre2);
 
            return reponse;
        }
 
        static void Main(string[] args)
        {
            //Création du tableau
            TabSignes[] tabAstro = new TabSignes[12];           
 
            //Remplissage en fonction du mois
 
            tabAstro[0].signe = "Verseau";
            tabAstro[0].jour = 20;
            tabAstro[0].mois = "janvier";
 
            tabAstro[1].signe = "Poissons";
            tabAstro[1].jour = 50; //(Ici 50 indique le 50ème jour de l'année)
            tabAstro[1].mois = "février";
 
            tabAstro[2].signe = "Bélier";
            tabAstro[2].jour = 80;
            tabAstro[2].mois = "mars";
 
            tabAstro[3].signe = "Taureau";
            tabAstro[3].jour = 111;
            tabAstro[3].mois = "avril";
 
            tabAstro[4].signe = "Gémeaux";
            tabAstro[4].jour = 141;
            tabAstro[4].mois = "mai";
 
            tabAstro[5].signe = "Cancer";
            tabAstro[5].jour = 173;
            tabAstro[5].mois = "juin";
 
            tabAstro[6].signe = "Lion";
            tabAstro[6].jour = 204;
            tabAstro[6].mois = "juillet";
 
            tabAstro[7].signe = "Vierge";
            tabAstro[7].jour = 235;
            tabAstro[7].mois = "août";
 
            tabAstro[8].signe = "Balance";
            tabAstro[8].jour = 266;
            tabAstro[8].mois = "septembre";
 
            tabAstro[9].signe = "Scorpion";
            tabAstro[9].jour = 296;
            tabAstro[9].mois = "octobre";
 
            tabAstro[10].signe = "Sagittaire";
            tabAstro[10].jour = 326;
            tabAstro[10].mois = "novembre";
 
            tabAstro[11].signe = "Capricorne";
            tabAstro[11].jour = 351;
            tabAstro[11].mois = "décembre";
 
 
            //Déclarations nécessaires à la boucle
            string mois, signe;
            int jour = 0, saveJour, position;
            char rep;
 
            do
            {
                bool verif = false;
                jour = 0;
                Console.Clear();
 
                do
                {
                    //Saisie du mois et vérification de son existence
                    Console.Write("Veuillez saisir le mois de naissance : ");
                    mois = Console.ReadLine();
 
                    position = 0;
                    while (position < 11 && tabAstro[position].mois != mois)
                    {
                        position++;
                    }
 
                    if (tabAstro[position].mois == mois)
                    {
                        verif = true;
                    }
 
                    else
                    {
                        Console.WriteLine("Ce mois est inexistant!");
                    }                                        
                } while (verif == false);
 
                //Avancée dans l'année en fonction du numéro du mois indiqué
                switch (position)
                {
                    case 0:
                        break;
                    case 1:
                        jour = 31;
                        break;
                    case 2:
                        jour = 59;
                        break;
                    case 3:
                        jour = 90;
                        break;
                    case 4:
                        jour = 120;
                        break;
                    case 5:
                        jour = 151;
                        break;
                    case 6:
                        jour = 181;
                        break;
                    case 7:
                        jour = 212;
                        break;
                    case 8:
                        jour = 243;
                        break;
                    case 9:
                        jour = 273;
                        break;
                    case 10:
                        jour = 304;
                        break;
                    case 11:
                        jour = 334;
                        break;
                }
 
                //Saisie du jour de naissance
                Console.Write("Veuillez entrer le jour de naissance : ");
                saveJour = int.Parse(Console.ReadLine());
                jour += saveJour;
 
                //Calcul du signe
                if (jour > 19)
                {
                    position = 0;
                    while (position < 11 && jour < tabAstro[position].jour)
                    {
                        position++;
                    }
 
                    signe = tabAstro[position].signe;
                }
                else
                {
                    signe = tabAstro[11].signe;
                }
 
                Console.Clear();
 
                //Mise en page et affichage du message final
                Console.WriteLine();
                Console.WriteLine("La personne né le " + saveJour + " " + mois + " est du signe " + signe);
                Console.WriteLine();
                Console.WriteLine();
 
                rep = saisie("Souhaitez-vous saisir une autre date de naissance ?", 'O', 'N');
 
            } while (rep == 'O');
        }
    }
}
Merci d'avance!

(EDIT : j'ai remarqué que le programme avait un problème avec le signe verseau, je reposte le programme corrigé)