Mon devoir consiste donc à créer plusieurs classes pour une personne, un nom, un numéro d'identification, une adresse et un numéro de téléphone.Menu texte C++: écriture, lecture et tri des données
Le nom est composé de: Prénom, Milieu et Nom. ID # compose: 9 chiffres. Adresse composée: rue, ville, état et code postal à 5 chiffres. Le numéro de téléphone est le suivant: code régional à 3 chiffres et numéro à 7 chiffres. La personne compose: un nom complet (premier, moyen, dernier), une adresse, un numéro de téléphone (code régional et numéro) et un numéro d'identification (numéro à 9 chiffres).
J'ai accompli tout cela. Mon problème est que nous sommes également supposés faire un menu, spécifier le nombre de personnes que l'utilisateur souhaite taper, où sauvegarder le fichier, s'il veut lire ou écrire dans un fichier spécifié par l'utilisateur, et pouvoir pour trier les personnes par nom (dernier, premier ou milieu) ou par ID # et enregistrer la liste triée dans un fichier spécifié par l'utilisateur.
J'ai tout le code écrit, mais ma fonction d'écriture ne fonctionne pas pour une raison quelconque. Qu'est-ce qui se passe est que je cours le programme, le menu que j'ai créé apparaît. Je sélectionne '1' pour entrer dans le fichier, puis le menu apparaît à nouveau, et je sélectionne '2' pour m'assurer qu'il ne peut pas lire car il n'y a rien dans le fichier spécifique que je suis en train de tester. Ensuite, je sélectionne '3' pour écrire People dans le fichier spécifié par l'utilisateur. Cela m'indique combien de personnes je veux entrer et je saisis un nombre (2). Ensuite, l'invite pour taper le premier nom apparaît et je reçois une erreur « une exception win32 non gérée est survenue » dans mon .exe projet ...
Voici mon code:
//global variables
char filename[256];
fstream file2 (filename);
int r;
Person * stuArrPtr=new Person[r];
int w;
Person * stuArrPtr2=new Person[w];
//global functions
void WriteUserFile() {
//write as many ppl as specified to a file...
// int w;
cout << "How many students would you like to enter?: ";
cin >> w;
// Person * stuArrPtr2=new Person[w];
if (!file2.is_open()) {
cout << "File did not open" << endl;
file2.clear();
file2.open (filename, ios_base::out);
file2.close();
file2.open (filename, ios_base::out | ios_base::in);
}
else {
for (int i = 0; i < w/*!file2.eof()*/; i++) {
stuArrPtr2[i].InputPerson();
if (strcmp(stuArrPtr2[i].PersonNam.GetFirst(), "EOF") != 0)
stuArrPtr2[i].Display (file2);
}
}
cout << endl;
// delete [] stuArrPtr2;
}
void Menu() {
int option;
do {
//display menu
cout << " Type '1' - to open a file for reading or writing" << endl << endl;
cout << " Type '2' - to read from the file you specified in '1'" << endl << endl;
cout << " Type '3' - to write from the file you specified in '1'" << endl << endl;
cout << " Type '4' - sort students by last name" << endl << endl;
cout << " Type '5' - sort students by first name" << endl << endl;
cout << " Type '6' - sort students by middle name" << endl << endl;
cout << " Type '7' - sort students by ID number" << endl << endl;
cout << " Type '8' - exit" << endl << endl;
// cout << " Enter appropriate number here: [ ]\b\b";
cout << " Enter appropriate number here: ";
cin >> option;
switch(option) {
case 1:
cout << "you entered option 1" << endl;
OpenUserFile();
break;
case 2:
cout << "you entered option 2" << endl;
ReadUserFile();
break;
case 3:
cout << "you entered option 3" << endl;
WriteUserFile();
break;
case 4:
cout << "you entered option 4" << endl;
SortLastName();
break;
case 5:
cout << "you entered option 5" << endl;
SortFirstName();
break;
case 6:
cout << "you entered option 6" << endl;
SortMiddleName();
break;
case 7:
cout << "you entered option 7" << endl;
SortIDNumber();
break;
case 8:
cout << "you entered option 8" << endl; //exit
delete [] stuArrPtr;
delete [] stuArrPtr2;
break;
default:
cout << "you screwed up, no big deal, just try again!" << endl;
} //end switch
//if (option == 6) {
// break;
//}
} while (option != 8);
// system("pause");
}
void main() {
Menu();
}
/////////////////END OF CODE///////
Désolé la le code est si long, et toute aide est très, très appréciée!
Pourriez-vous reformater le code? Il suffit de l'écarter de 4 espaces. – Lucas
pourriez-vous s'il vous plaît re-formater votre code qu'au moins la partie de code est dans 1 bloc? Merci – fritzone
Voici comment vous modifiez votre code: http://stackoverflow.com/editing-help – Lucas