Problème avec mon premier programme C#
Soulcollector Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
Bonjours à tous, je suis un débutant en réseautique et je dois faire 3 programme dont celui-ci; je dois écrire un programme qui va demander le nombre d'accident survenu au cours du dernier mois et qui va calculer et afficher les 4 statistiques suivantes;
L'âge moyen de tous les conducteurs;
Le pourcentage de femme;
Le pourcentage d'homme entre 18 et 25 ans;
Le pourcentage de conducteurs non enregistrés dans la province.
La partie qui me cause problème le plus est le pourcentage d'homme entre 18 et 25 ans, voici mon code :
//Variable
int nbr_acc, cpt, an_nais, an_cour, somme_age, age;
string str_rep;
char sexe, rep;
float cpt_hom_age, cpt_fem, pourcent_hp, age_moy, hom_age_moy;
cpt_fem = cpt_hom_age = pourcent_hp = 0;
somme_age = 0;
an_cour = DateTime.Now.Year;
do// Boucle pour recommencer
{
do
{
Console.Write("Entrez le nombre d'accident survenue pendant le mois de mai:");
str_rep = Console.ReadLine();
} while (int.TryParse(str_rep, out nbr_acc) == false || nbr_acc < 0);
//Pour chaque accident
cpt = 1;
while (cpt <= nbr_acc)
{
Console.WriteLine("Saisir les informations sur l'accident" + cpt);
cpt++;
do
{
Console.Write("Entrez l'année de naissance du conducteur impliqué(e):");
str_rep = Console.ReadLine();
} while (int.TryParse(str_rep, out an_nais) == false || an_nais < DateTime.Now.Year - 100 || an_nais > DateTime.Now.Year - 16);
age = DateTime.Now.Year - an_nais;
age_moy = somme_age + age;
while (somme_age >= nbr_acc) ;
do
{
Console.Write("Entrez le sexe du premier conducteur impliqué(e), H/F:");
str_rep = Console.ReadLine().ToUpper();
} while (char.TryParse(str_rep, out sexe) == false || sexe != 'H' && sexe != 'F');
if (sexe == 'F')
cpt_fem++;
else if (sexe == 'H' && sexe >= 1997 && sexe <= 2004)
cpt_hom_age++;
do
{
Console.Write("Entrer le code d'enregistrement du premier conducteur: (1/9)");
str_rep = Console.ReadLine();
} while (Char.TryParse(str_rep, out rep) && rep != '1' && rep != '9');
if (rep == '9')
pourcent_hp++;
}
Console.ReadLine();
do
{
Console.Write("Voulez-vous recommencer (O/N)?:");
str_rep = Console.ReadLine().ToUpper();
} while (char.TryParse(str_rep, out rep) == false || rep != 'O' && rep != 'N');
} while (rep == 'O');
age_moy = (float)somme_age / cpt;
Console.WriteLine("La moyenne d'age des conducteurs impliqué(es) est: {0}", age_moy);
Console.ReadLine();
hom_age_moy = (float)cpt_hom_age / cpt;
Console.WriteLine("Le pourcentage d'homme entre 18 et 25 ans est: ", cpt_hom_age);
Console.ReadLine();
cpt_fem = (float)cpt_fem / cpt;
Console.WriteLine("Le pourcentage de femme est: " + cpt_fem);
Console.ReadLine();
pourcent_hp = (float)pourcent_hp / cpt;
Console.WriteLine("Le pourcentage de conducteur hors- province est: " + pourcent_hp);
Console.ReadLine();
Merci à tous ceux qui prendrons le temps de regarder mon problème..
- Problème avec mon premier programme C#
- Programme demarrage windows - Guide
- Mettre en veille un programme - Guide
- Message programmé iphone - Guide
- Programme word gratuit - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
10 réponses
Bonjour,
Merci de lire ceci https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
Et de corriger ton message.
Merci
Bonjours à tous, je suis un débutant en réseautique et je dois faire 3 programme dont celui - ci; je dois écrire un programme qui va demander le nombre d'accident survenu au cours du dernier mois et qui va calculer et afficher les 4 statistiques suivantes;
L'âge moyen de tous les conducteurs;
Le pourcentage de femme;
Le pourcentage d'homme entre 18 et 25 ans;
Le pourcentage de conducteurs non enregistrés dans la province.
La partie qui me cause problème le plus est le pourcentage d'homme entre 18 et 25 ans.
Je sais très bien que j'ai plusieurs erreurs mais la partie qui me cause le plus de soucis c'est la moyenne d'homme entre 18 et 25 ans
Merci d'avance.
//Variable int nbr_acc, cpt, an_nais, an_cour, somme_age, age; string str_rep; char sexe, rep; float cpt_hom_age, cpt_fem, pourcent_hp, age_moy, hom_age_moy; cpt_fem = cpt_hom_age = pourcent_hp = 0; somme_age = 0; an_cour = DateTime.Now.Year; do// Boucle pour recommencer { do { Console.Write("Entrez le nombre d'accident survenue pendant le mois de mai:"); str_rep = Console.ReadLine(); } while (int.TryParse(str_rep, out nbr_acc) == false || nbr_acc < 0); //Pour chaque accident cpt = 1; while (cpt <= nbr_acc) { Console.WriteLine("Saisir les informations sur l'accident" + cpt); cpt++; do { Console.Write("Entrez l'année de naissance du conducteur impliqué(e):"); str_rep = Console.ReadLine(); } while (int.TryParse(str_rep, out an_nais) == false || an_nais < DateTime.Now.Year - 100 || an_nais > DateTime.Now.Year - 16); age = DateTime.Now.Year - an_nais; age_moy = somme_age + age; while (somme_age >= nbr_acc) ; do { Console.Write("Entrez le sexe du premier conducteur impliqué(e), H/F:"); str_rep = Console.ReadLine().ToUpper(); } while (char.TryParse(str_rep, out sexe) == false || sexe != 'H' && sexe != 'F'); if (sexe == 'F') cpt_fem++; else if (sexe == 'H' && sexe >= 1997 && sexe <= 2004) cpt_hom_age++; do { Console.Write("Entrer le code d'enregistrement du premier conducteur: (1/9)"); str_rep = Console.ReadLine(); } while (Char.TryParse(str_rep, out rep) && rep != '1' && rep != '9'); if (rep == '9') pourcent_hp++; } Console.ReadLine(); do { Console.Write("Voulez-vous recommencer (O/N)?:"); str_rep = Console.ReadLine().ToUpper(); } while (char.TryParse(str_rep, out rep) == false || rep != 'O' && rep != 'N'); } while (rep == 'O'); age_moy = (float)somme_age / cpt; Console.WriteLine("La moyenne d'age des conducteurs impliqué(es) est: {0}", age_moy); Console.ReadLine(); hom_age_moy = (float)cpt_hom_age / cpt; Console.WriteLine("Le pourcentage d'homme entre 18 et 25 ans est: ", cpt_hom_age); Console.ReadLine(); cpt_fem = (float)cpt_fem / cpt; Console.WriteLine("Le pourcentage de femme est: " + cpt_fem); Console.ReadLine(); pourcent_hp = (float)pourcent_hp / cpt; Console.WriteLine("Le pourcentage de conducteur hors- province est: " + pourcent_hp); Console.ReadLine();
Bonjour
dans le tuto que t'as fait lire Barnabé, il,est écrit qu'il faut choisir le langage pour que le rendu soit correct. Et il est ajouté que pour C#, pour l’instant, il faut sélectionner C++.
J'ai donc corrigé.
Pour ton programme, dans ta formation as tu déjà vu ce qu'est une méthode? Et une classe ?
Salut, oui mais c'est quelque chose qui a vite fait le tour, à part le fait que le programme se situe dans la classe Main. J'en suis seulement à 3 mois d'étude.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionAu niveau de la conception moi j'aurais fait une classe "accident" qui aurait ces propriétés :
- date
- genre du conducteur
- âge du conducteur
- un booléen qui indique si le conducteur est enregistré dans la province ou pas
Et des méthodes :
- une méthode pour calculer l'âge moyen qui prend en paramètre une liste de conducteurs
- une méthode pour calculer un pourcentage qui prend en paramètre un genre, un âge mini et un âge maxi
Super, je ne suis pas au courant de cette procédure mais je vais regarder comment faire. Un gros merci pour ta réponse, très apprécié...
J'en suis seulement à 3 mois d'étude.
ça ne veut rien dire, en ce qui me concerne, on m'a appris les méthodes le premier jour et les classes le 2eme...
Mise à part ajouter une classe, comment est-ce que je peux formuler avec cette ligne de commande là, est- ce que c'est comment, parce que je sais que ne peux pas avoir un int et un char dans la même commande...
else if (sexe == 'H' && sexe >= 1997 && sexe <= 2004)
cpt_hom_age++;
Effectivement la variable sexe ne peut pas avoir 2 types différents
en fait, on pourrait, si on la définit en object et qu'ensuite avant de tester sa valeur, on teste son type réel.
Cela c'est beaucoup compliqué pour rien et surtout incohérent, le sexe et l'année de naissance sont 2 données différentes donc n'ont rien à faire dans la même variable.
Ça veut dire que c'est beaucoup plus compliqué pour rien, car c'est incohérent, le sexe et l'année de naissance sont 2 données différentes et doivent donc être stockées sur des variables différentes et tant qu'à faire du bon type, à savoir char ou string pour le sexe et int pour l'année de naissance.
Mon aparté était à destination de Barnabé.