Langage C/ projet gestion de véhicules - C - Programmation
Marsh Posté le 20-12-2021 à 15:04:35
Ben je commencerais par essayer de comprendre l'énoncé et (me) poser des questions sur les points un peu obscurs, ce qui serait plus facile avec le dit énonce.
Marsh Posté le 20-12-2021 à 16:47:27
Je suppose qu'il s'agit d'un projet en mode texte ?
Est-ce que tu dois utiliser une base de données ?
Déjà, la première étape est de définir clairement ce que l'application doit faire.
Marsh Posté le 20-12-2021 à 17:22:32
Je suis stupide, j'ai complètement oublié d'envoyer l'enoncé jsui trop fatigué. Oui c'est vrai comprendre l'énoncé mais il est obssur comme vous le dites.
Marsh Posté le 20-12-2021 à 17:24:15
Je début je ne sais pas Antac mais si ça peut te renseigner ça sera une série de fichier code sur code blocks. Je dois programmer les fonctionnalités demandées . Je vous envois l'énoncé.
Marsh Posté le 20-12-2021 à 17:27:32
Voici l'énoncé:
2 Description
On veut écrire un logiciel de gestion de propriétaires particuliers de véhicules français. Ces
derniers sont identiés via leur plaque d'immatriculation, qui est enregistré dans le système
d'immatriculation des véhicules (SIV), qui suit le format suivant : LL-CCC-LL, où L indique
qu'il s'agit d'une lettre en majuscule, et C indique qu'il s'agit d'un chire. Il est bon de noter
que les lettres I, U, et O sont interdites 1
. À chaque numéro d'immatriculation, on désire faire
correspondre un ou plusieurs propriétaires (deux maximum). Chaque propriétaire est déni par
les informations suivantes :
1. Nom de famille ;
2. prénom ;
3. date de naissance au format AAAA/MM/JJ ;
AAAA est l'année de naissance sur quatre chires ;
MM est le mois de naissance sur deux chires ;
JJ est le jour de naissance sur deux chires.
4. adresse ;
Optionnellement : un champ pour des informations spéciques, par exemple, le nom
ou le numéro du bâtiment, etc. (20 caractères maximum) ;
numéro de la voie (trois chires maximum) ;
nom de la voie (cinquante lettres maximum) ;
1. En eet, I ressemble trop à un 1, O trop à un 0, et U pourrait être mal lue et comprise comme la lettre V.
1
nom de la ville (cinquante lettres maximum) ;
code postal (exactement cinq chies).
5. numéro de téléphone (exactement dix chires) ;
6. une liste de véhicules possédés par cette personne (cinq maximum).
La base de données acceptera jusqu'à 100 véhicules équipés d'une plaque d'immatriculation
française se conformant au format SIV. Chaque entrée aura donc la forme suivante :
Identiant SIV ;
identité des propriétaires (2 max) ;
description du véhicule :
Marque (trente caractères maximum) ;
Nombre de portes (0, 3 ou 5 2
).
Toute personne ajoutée au système implique qu'on ajoute forcément un véhicule. Tout véhicule rajouté doit être lié à une personne. Si la personne recherchée n'existe pas, alors il faut lui
créer une entrée.
Note : toutes les chaînes de caractères stockées dans le système sont en majuscules.
Voici un exemple d'affichage pour votre programme :
[1] Ajouter une personne
[2] Supprimer une personne
[3] Ajouter un véhicule
[4] Supprimer un véhicule
[5] Afficher la liste des personnes
[6] Afficher la liste des véhicules
[7] Afficher les informations relatives à une personne
[8] Afficher les informations d'un véhicule
[9] Changer le ou la proprietaire d'un véhicule
[0] Sortir du programme
Entrez votre choix (0, 1, 2, 3, 4, 5, 6, 7, 8, ou 9) : _
Si on choisit (par exemple) d'acher les informations relatives à une personne, après avoir
saisi son nom de famille, on pourrait tomber sur le sous-menu suivant :
Quelles informations désirez-vous connaître sur ERIC DUPONT ?
[1] Afficher l'adresse de ERIC DUPONT
[2] Afficher la liste des plaques d'immatriculation des véhicules possédés par ERIC DUPONT
[0] Revenir au menu précédent
Faire un choix :
Travail demandé:
Les fonctionnalités qui doivent être assurées par ce logiciel sont les suivantes :
Permettre la saisie des informations d'une personne ;
Permettre la suppression des informations d'une personne ;
Cela peut potentiellement entraîner la suppression d'un véhicule s'il n'avait qu'un ou
une propriétaire.
(2). On compte la porte du core dans ce cas. On pourra aussi considérer un véhicule à 0, 2, ou 4 portes.
permettre la saisie des informations d'un véhicule ;
Comme indiqué précédemment, si le ou la propriétaire du véhicule n'est pas déjà dans
la base, alors il faut la créer.
permettre la suppression des informations d'un véhicule ;
Cela implique supprimer ce véhicule de la liste des véhicules possédés par son ou sa
propriétaire.
Afficher l'adresse d'une personne ;
Afficher la liste des véhicules possédés par une personne ;
Afficher les informations d'un véhicule d'après son identiant SIV.
Marsh Posté le 20-12-2021 à 20:25:27
Montre-nous le code que tu as déjà fait et indique où tu bloques.
Marsh Posté le 20-12-2021 à 21:08:19
rufo a écrit : Montre-nous le code que tu as déjà fait |
A mon avis il y en a pas et c'est pas forcément une mauvaise chose, inutile de se lancer dans le code si on a grillé les étapes qui viennent d'abord.
Perso je commencerais pas définir comment structurer toutes ces données en mémoire (struct, enum, typedef, array, ...), ensuite commencer par la fonction saisie et continuer petit à petit. Par contre est-ce que les données doivent être sauvegardées sur le disque dur aussi ou uniquement en RAM (autrement dit si on ferme le logiciel tout est perdu?). Ah et avant de "pisser le code" il faut refléchir à l'algorithme à utiliser -> language algorithmique, autrement dit décrire en français (ou anglais) comment procéder.
Je ne connais pas le niveau de sasdz mais c'est sûr que en C pour un débutant total c'est un truc un peu gros à avaler...
Marsh Posté le 20-12-2021 à 22:18:07
Déjà maintenant qu'on a l'énoncé, je commencerais par le RENDRE LISIBLE
Parce que là ça sent le truc passé à la va-vite dans un programme d'OCR qui a bouffé ou décalé certains éléments. Genre la partie sur I O U avec l'explication du pourquoi qui se balade 10 lignes plus loin. Et les 1 un peu partout.
Histoire qu'on n'ait pas l'impression que tu te fous de nous et attend qu'on s'occupe même de comprendre l'énoncé à ta place parce que ça ne risque pas trop de marcher.
Ensuite, comme dit notre ami le muridé belliqueux, bien isoler les entités en présence : voiture, personne, adresse... Et les liens qui existent entre chacun de ces machins.
Voir comment on veut stocker ça : fichiers plats, bdd, simplement en ram sans sauvegarde...
Et là commencer à parler un peu de code, en découpant ça en besoin plus simples par exemple :
- trouver comment afficher un truc à l'écran
- trouver comment faire saisir à l'utilisateur une donnée, avec des contraintes (genre le masque pour l'immatriculation, etc).
- trouver comment faire faire un choix à l'utilisateur
Et venir partager tout ça pour montrer où ça bloque qu'on puisse t'aider.
T'as déjà de quoi bien t'occuper...
Marsh Posté le 20-12-2021 à 23:06:13
rat de combat a écrit : A mon avis il y en a pas et c'est pas forcément une mauvaise chose, inutile de se lancer dans le code si on a grillé les étapes qui viennent d'abord. |
Merci beaucoup et ta gentillesse ! Oui tu as absolument raison, meme le plus grand informaticien du monde, si il ne sait pas quoi coder , il n'y arrivera pas.Oui si j'arrive à trouver les structures et les fonctions,je ferai un algorigramme . Les données dans le disque dur? Je dois avoir plusieurs fichier code blocks. Oui on doit enrengistrer les fichiers pour pouvoir les rendre bien sur. Non , ne t'inquiète pas je ne vais pas pisser le code c'est une mauvaise idée le code c'est à la fin il faut que je planifie ce que je vais faire. désolé si j'utilise mal, c'est la première fois je vois ce forum, c'est pas facile . Je te remercie d'avoir été compréhensif, tu est un des euls qui m'a pas agressé. Vraiment je travaille dur, je réfléchis ça m'énerve que les gens croient que je fais ça pour avoir la réponse, non je veux l'avis des autres pour me lancer dans des pistes définitive. Vraiment je suis vraiment sincère. Rajoutes le fait que je n'ai pas de binôme, c'est compliqué mais j'ai espoir . En fait je pense je vais lister les fonctions de ce problème, t'en penses quoi?
Marsh Posté le 20-12-2021 à 23:16:39
TotalRecall a écrit : Déjà maintenant qu'on a l'énoncé, je commencerais par le RENDRE LISIBLE |
Vraiment je suis déçu, les autres forum sont beaucoup plus gentils et pédagogue. Vous vous rendez compte de vos bétises? C'est la première fois je suis sur ce forum, je suis un peu perdu. Mais vous avez fumer c'est obligé. Lisez ce que j'ai répondu aux autres,ça vous permettra de réflechier avant de sortir des diffamations. Je cherche des pistes et je voulais demander aux bonne personne gentilles et pédagogue leurs avis pour pouvoir comparer. Mais bon merci quand même mais j'apprécie pas du tout car c'est de la diffamation . Merci, je verrai. Et non je dois enregistrer sur mon ordi directement pour pouvoir l'envoyer. Merci beaucoup, je suis reconnaissant envers vous . Juste évitez d'agresser les nouveaux car comme moi ils sont perdu et ne trouvent pas leurs repères. Vous voulez que je refasse l'énoncé?
Marsh Posté le 21-12-2021 à 10:05:48
sasdz, honnêtement, il est impossible que le prof ait filé le sujet dans l'état où tu l'as posté ici. Donc, soit tu l'as recopié en y ajoutant pleins de fautes de frappe et tu ne t'es pas relu, soit tu as effectivement scanné le document et as fait un petit coup d'OCR.
Quand on demande de l'aide, la moindre des choses est de faciliter la compréhension du contexte et de sa question à ceux à qui on demande de l'aide
Malgré ça, rat de combat et TotalRecall t'ont apporté une aide concrète, une méthodologie. Le fait que tu parles "d'algorigramme" et que tu ne sembles pas avoir compris quand ils te demandaient si les données de ton programme (les infos saisies par l'utilisateur concernant les voitures à gérer) devient être juste stockées en mémoire, dans un fichier à plat ou en BD confirme que tu parts de vraiment très bas.
Bien évidemment que ton programme comportera plusieurs fichiers de code source (au moins le .c et le .h). Mais si ton programme doit enregistrer les données à manipuler en BD ou fichier (et pas juste en RAM, donc, quand on ferme ton programme, on perd tout ce qui a été saisi), ça va rajouter une difficulté supplémentaire. Donc, c'est un premier point à faire confirmer par ton prof.
Marsh Posté le 21-12-2021 à 10:09:40
Version courte : avais tu relu ton énoncé avant de nous demander de travailler dessus pour toi ? Non ?
Parce que
- soit non parce que tu t'en foutais que ça soit lisible ou pas
- soit oui et tu t'en foutais que ça ne soit pas lisible.
Et tu vois le respect ça va dans les deux sens, quand tu demandes à des inconnus de t'aider à réfléchir sur un problème le minimum c'est d'exposer celui-ci de façon claire.
On peut compatir au fait que tu n'aies pas de binôme, que tu sois fatigué ou que sais-je, mais ça ne change rien à ça.
Et je pense t'avoir donné pas mal de pistes et de réponses plus que constructives.
Quant à ta question par MP la réponse est dans le post : je n'ai jamais dit que tu devais juste chercher comment écrire les éléments de code que je mentionne, j'ai dit que ça serait intéressant de te pencher dessus EN PLUS de faire toute l'analyse en amont que j'ai mentionné et rat de combat aussi.
Parce que même si l'exo n'est pas encore clair pour toi, ça ne t'empêche pas de t'intéresser aux notions de C qu'il implique (genre la saisie utilisateur comme je disais, etc)
Edit : par rufo
Marsh Posté le 21-12-2021 à 13:14:49
sasdz a écrit : Mais vous avez fumer c'est obligé. |
T'arrange pas trop ton cas là...
Perso je vais m'arrêter là. Si tu veux de l'aide faut rendre la vie facile aux aidants et surtout rester poli!
Marsh Posté le 21-12-2021 à 22:12:22
rat de combat a écrit : T'arrange pas trop ton cas là... Perso je vais m'arrêter là. Si tu veux de l'aide faut rendre la vie facile aux aidants et surtout rester poli! |
Selon son profil il a 18 ans, et il est probablement étranger (donc potentiellement pas très à l'aise en français).
De mon côté il n'y a pas d'offense, sachant que je n'avais pas été tendre (j'en conviens), et je suis toujours prêt à aider *si* j'ai l'impression qu'il y a le minimum requis d'effort en face.
Marsh Posté le 22-12-2021 à 00:09:41
Il faut, c'est valable pour toute ambition d'écriture de programme, ouvrire un éditeur de texte et sauvegarder sous le nom "main" le fichier principale.
Comme ici c'est le langage C qui nous interesse le fichier sera nommé "main.c".
Dans l'écriture de programme C, nous connaissons la notion de bibliothèque ; Les fichier correspondant aurons d'autre nom lié à la fonction de la bibliothèque avec d'autre extention de nom de fichier.
Le main contiendra ici probablement un menu tel que :
1 => ajouter une personne
2 => supprimer une personne
etc...
Marsh Posté le 22-12-2021 à 09:22:59
Oui, c'est ce qui est indiqué dans son énoncé
Citation : |
Marsh Posté le 27-12-2021 à 12:49:44
Déjà, je te donne une piste, tu as 2 entités (structs pour le C) :
Dans "Propriétaire" tu as (outre une clé primaire du genre idProprietaire si base de données ou fichier plat)
nom, prenom, datenaiss, numvoie, voie, cp, ville, complementAdresse, numeroTelephone
Dans "Véhicule", tu as (outre une clé primaire du genre idVehicule si base de données ou fichier plat)
proprietaire1, proprietaire2, idSiv, description, marque, nbPortes
Tu as aussi la possibilité de faire une table "proprietaire_vehicule" et éviter de mettre proprietaire1, proprietaire2 dans la table "Véhicule" mais tu peux t'en passer dans la mesure où il y a une limite à 2 propriétaires.
Reste ensuite la question (déjà posée) du stockage des données... soit c'est dans une vraie base persistante (MySQL par exemple), soit dans des fichiers plats (fichiers textes), soit dans une base de données en mémoire RAM (IMDB), soit ce sont des données enregistrées au sein de variables C.
A ce stade, j'aurais tendance à dire que tu peux déjà le faire avec des variables C et tu verras après. Au final tu auras deux tableaux de structs.
Une fois que tu as défini tout ça, il faut que tu fasses tes différentes méthodes, commence par l'ajout des véhicules et des personnes ainsi que l'affichage de ces dernières.
Puis gère le menu
Marsh Posté le 27-12-2021 à 18:31:32
sasdz a écrit : bonjour, j’espère que vous allez bien et que vous vous portez bien. J’ai un problème, un projet. En fait je suis dans une formation où l(informatique n’est pas le centre de celle ci . Je suis à peine au début et on nous a donné ce projet à faire en binôme, les profs nous l’ont conseillé et obliger car c’est long et technique pour notre niveau de débutant. Et je n'ai malheureusement pas de binome. Pouvez vous m’aider svp. Enfin comment vous vous y prendrez pour problème c’est ça le plus important pour moi, je e cherche pas à avoir de réponse d'aide pour le code mais des réponses "logiques" c'est à dire comment vous vous y prendrez pour résoudre ce problème. Svp… |
Juste une question en passant, le langage C, c'est imposé ? Parce que si tu n'as jamais fait de programmation commencer avec un tel projet en C, c'est ridicule. Il faut plusieurs mois pour atteindre un niveau suffisant correct en C pour faire ce genre de programme sans que ce soit un bidouillage infâme, et encore... à condition de ne faire QUE ça et vu comme tu présentes les choses, j'ai pas l'impression que ce soit le cas.
Sans indiscrétion, c'est quel pays et quelle formation ?
Marsh Posté le 27-12-2021 à 21:58:50
C'est clair que vu l'énoncé énorme (même si on attend toujours la version décryptée ) ça ressemble plus à un projet entier à faire sur une bonne période qu'à un premier programme pour découvrir, y a un gap énorme entre le niveau de compétence qu'on présume chez sasdz d'après ses dires et ce qu'il faut pour faire ça proprement.
Ca fait partie des points qui mériteraient quelques éclaircissements...
Marsh Posté le 28-12-2021 à 00:55:29
TotalRecall a écrit : Ca fait partie des points qui mériteraient quelques éclaircissements... |
Non mais ne vous fatiguez pas, je peux me tromper mais par expérience je dirais que sasdz ne reviendra jamais. Probablement la date butoir pour rendre le projet (et pas le simple exercice) est passée, alors...
Marsh Posté le 28-12-2021 à 11:21:41
ReplyMarsh Posté le 31-12-2021 à 19:37:16
antac a écrit : Pour m'amuser, je l'ai codé en C# :-) |
Merci beaucoup, je te remercie du fond de ma pensée. J'avais quitter car quand j'ai vu comment on se fait agresser, j'ai penser que demander de l'aide ici n'est pas bon . Merci beaucoup et plus sérieusement je suis aller dans Comment ça marche, les gens sont beaucoup plus gentils, pédagogues. Mais merci beaucoup oui j'avais déjà vu cette piste et j'y suis dedans mais tu m'a donné beaucoup plus.
Marsh Posté le 31-12-2021 à 19:38:08
antac a écrit : Pour m'amuser, je l'ai codé en C# :-) |
Mdrrrr tu es vraiment fou mdrr mais bien joué ça ta prit du temps
Marsh Posté le 31-12-2021 à 20:41:57
sasdz a écrit : |
Le niveau des gens qui sont sur ce forum est plutôt élevé en général. C’est vrai que c’est pas forcément le meilleur forum pour des débutants, sauf si ceux-ci ont de bonnes capacités d’écoute (ce qui est rarement le cas). On ne donne pas de solution ici. On aide les gens à les trouver par eux-memes, donc on donne des pistes.
Concernant ton problème, j’en pense que le choix du C pose déjà bcp de questions en soi. Il y a des tas de choses que tu devrais apprendre avant de te lancer là dedans, et ça prend généralement du temps. D’où mon interrogation à laquelle tu n’as pas répondu.
Marsh Posté le 31-12-2021 à 21:27:53
sasdz a écrit : |
C++? tu as mis longtemps? Dsl d'avoir oublié le point d'intérrogation
Marsh Posté le 31-12-2021 à 21:32:34
Hermes le Messager a écrit : |
Bravo, tu as encore plus démontré que vous ne lisez même pas les messages des gens , félicitation ! Va relire le message du début au lieu de dire n'importe quoi, c'est le nouvel an certes mais faut pas abuser de l'alcool. D'où tu as lu que j'attend la solution? Il y a vraiment de la méchanceté, de la mauvaise foi et de l'égoïsme c'est incroyable. Relis bien , je l'ai écris noir sur blanc ce que je voulais; stop à la mauvaise foi.
Marsh Posté le 31-12-2021 à 21:35:29
Hermes le Messager a écrit : |
J'en ai vraiment plus que marre de voir des gens dire des bêtises sur moi.
Marsh Posté le 31-12-2021 à 22:52:15
sasdz a écrit : |
tu es trop fort mdrrrr juste pour s'amuser
Marsh Posté le 01-01-2022 à 18:00:00
attendez, le mec il se fait des conversations tout seul là ?
Marsh Posté le 01-01-2022 à 21:26:44
Ivanovitch a écrit : attendez, le mec il se fait des conversations tout seul là ? |
pas fait exprès , tu as un problème ?
Marsh Posté le 01-01-2022 à 22:27:28
sasdz a écrit : |
C'était en C# et ça m'a pris environ 45 minutes.
Ta façon de t'exprimer ici est assez peu appropriée, tu devrais redescendre un peu...
Marsh Posté le 02-01-2022 à 11:09:44
Enoncé sans code -> fermeture
Avec une petite semaine de TT en prime, pour boolaytude.
Bonne année.
Marsh Posté le 20-12-2021 à 12:14:27
bonjour, j’espère que vous allez bien et que vous vous portez bien. J’ai un problème, un projet. En fait je suis dans une formation où l(informatique n’est pas le centre de celle ci . Je suis à peine au début et on nous a donné ce projet à faire en binôme, les profs nous l’ont conseillé et obliger car c’est long et technique pour notre niveau de débutant. Et je n'ai malheureusement pas de binome. Pouvez vous m’aider svp. Enfin comment vous vous y prendrez pour problème c’est ça le plus important pour moi, je e cherche pas à avoir de réponse d'aide pour le code mais des réponses "logiques" c'est à dire comment vous vous y prendrez pour résoudre ce problème. Svp…