L'ajout, la suppression et la modification de C + + ont lancé une exception: lire le conflit d'accès

Questions et réponses du rseoc 2021-12-30 05:48:46 阅读数:213

ajout la suppression et la
#pragma once#include<string>#include<iostream>using namespace std;class employee{public: employee(); virtual void pay(); virtual void display(); virtual void setemployee(); int getno(); void setno(); void setname(); string getname();public: int no; string name; double salary; };#pragma once#include<vector>#include "salesman.h"class management{public: void add(); void decrease(); void revise(); void search();private: int type=0; int l = 0, m = 0,n = 0; int sum1 = 0,sum2 = 0,sum3 = 0; employee em[1000]; manager ma[1000]; salesman sa[1000]; technique te[1000]; };#pragma once#include"technique.h"class manager : public employee{public: manager(); virtual void display(); virtual void setemployee();private: double monthpay;};#include"manager.h"class salesman : public employee{public: salesman(); //virtual void add(); virtual void display(); virtual void setemployee();private: double commrate=0, sales=0;};#pragma once#include"employee.h"class technique : public employee{public: technique(); // virtual void add(); virtual void setemployee(); virtual void display(); private: double hourlyrate; int workhours; };#include <iostream>#include"employee.h"using namespace std;employee::employee() { salary = 0; //no = 0;}void employee::pay() {}void employee::display() {}int employee::getno(){ return no;}void employee::setno(){ cout << "Veuillez entrer le numéro de l'employé:" << endl; cin >> no;}void employee::setname(){ cout << "Veuillez saisir le nom de l'employé" << endl; cin >> name;}string employee::getname(){ return name;}#include "management.h"#include"employee.h"#include<iostream>#include<string.h>using namespace std;void employee::setemployee(){}void management::add(){ cout << " Entrez le nombre d'employés que vous souhaitez ajouter cette fois " << endl; int a; cin >> a; for (int i=1; i<=a; i++) { employee em; cout << " Veuillez entrer le " << i << "Informations sur les employés" << endl; cout << "Veuillez sélectionner l'identité:" << endl; cout << "1.Manager 2.Vendeur 3.Technicien" << endl; cin >> type; if (type == 1) { ma[l++].setemployee(); sum1++; } else if (type == 2) { sa[m++].setemployee(); sum2++; } else if (type == 3) { te[n++].setemployee(); sum3++; } } cout << "Accroître le succès!" << endl; system("pause"); system("cls");}void management::decrease(){ int k; cout << " Veuillez entrer le numéro d'employé que vous souhaitez supprimer :" << endl; cin >> k; for (int i = 0; i < sum1; i++) { if (k == ma[i].getno()) { for (int j = i; j < sum1; j++) { ma[i]=ma[i+1]; } cout << "Suppression réussie!\n"; } } for (int i = 0; i < sizeof(sa); i++) { if (k == sa[i].getno()) { for (int j = i; j < sizeof(sa); j++) { sa[i+1] = sa[i]; } cout << "Suppression réussie!\n"; } } for (int i = 0; i < sizeof(te); i++) { if (k == te[i].getno()) { for (int j = i; j < sizeof(te); j++) { te[i] = te[i + 1]; } cout << "Suppression réussie!\n"; } } cout << " Aucune information sur cette personne !Veuillez confirmer.IDOui Non\n"; }void management::revise(){ int k,m,i=0; string n; cout << " Veuillez entrer le numéro de l'employé pour lequel vous souhaitez modifier les renseignements " << endl; cin >> k; for (int i = 0; i < sizeof(ma); i++) { if (k == ma[i].getno()) { cout << " Sélectionnez les informations à modifier 1.Nom 2.No." << endl; cin >> m; switch (m) { case 1: //cin >> n; ma[i].setname(); ma[i].getname(); break; case 2: //ma[i].setno(stoi(n)); ma[i].setno(); ma[i].getno(); break; } cout << "Modification réussie"; } }}void management::search(){ int k,m; int i; cout << "Veuillez sélectionner l'identité:" << endl; cout << "1.Manager 2.Vendeur 3.Technicien" << endl; cin >> m; cout << " Veuillez entrer le numéro d'employé que vous souhaitez trouver :" << endl; cin >> k; switch (k) { case(1): for (i = 0; i < sizeof(ma); i++) { if (k == ma[i].getno()) { ma[i].display(); } } case(2): for (i = 0; i < sizeof(sa); i++) { if (k == sa[i].getno()) { sa[i].display(); } } case(3): for (i = 0; i < sizeof(te); i++) { if (k ==te[i].getno()) { te[i].display(); } } } cout << "La recherche a échoué" << endl; }#include "manager.h"#include "employee.h"manager::manager() :employee(){ monthpay = 0;}void manager::setemployee(){ //cout << "Veuillez saisir le nom de l'employé" << endl; //cin >> name; //cout << "Veuillez entrer le numéro de l'employé" << endl; //cin >> no; setname(); setno(); cout << "Salaire mensuel" << endl; cin>>monthpay ;}void manager::display() { cout << "Manager:" << name << ",No." << manager::no << ",Salaire mensuel:" << manager::monthpay << endl;}#include "salesman.h"salesman::salesman() :employee(){ }void salesman::setemployee() { cout << "Veuillez saisir le nom de l'employé" << endl; cin >> name; cout << "Veuillez entrer le numéro de l'employé" << endl; cin >> no; cout << "Ventes mensuelles" << endl; cin >> sales; commrate = 0.04; salary = sales * commrate;}void salesman::display() { cout << "Vendeur:" << name << ",No." << no << ",Salaire mensuel:" << salary << endl;}#include "technique.h"technique::technique() :employee(){ hourlyrate = 150; workhours = 0;}void technique::setemployee() { cout << "Veuillez saisir le nom de l'employé" << endl; cin >> name; cout << "Veuillez entrer le numéro de l'employé" << endl; cin >> no; cout << "Veuillez saisir la durée du travail(En heures)" << endl; cin >> workhours; salary = hourlyrate * workhours;}void technique::display() { cout << "Technicien:" << name << ",No." << technique::no << ",Salaire mensuel:" << technique::salary << endl;}#include<stdio.h>#include<conio.h>#include"management.h"void menu(){ cout << "————————————————————————————————" << endl; cout << "——————————— Bienvenue au système de gestion des employés ———————————" << endl; cout << "——————————————0.Sortie———————————————" << endl; cout << "————————————1. Ajouter des renseignements sur les employés —————————————" << endl; cout << "————————————2.Supprimer les renseignements sur les employés—————————————" << endl; cout << "————————————3. Modifier les renseignements sur les employés —————————————" << endl; cout << "————————————4.Trouver des renseignements sur les employés—————————————" << endl; cout << "————————————————————————————————" << endl; cout << " Veuillez saisir le numéro de série pertinent " << endl; }void menu1(){ }void menu();void menu1();int main(){ int k; while (1) { menu(); int k; cin >> k; system("cls"); management a; switch (k) { case 1: //system("cls"); a.add(); //a.print(); system("pause"); system("cls"); break; case 2: a.decrease(); system("pause"); system("cls"); break; case 3: a.revise(); system("pause"); system("cls"); break; case 4: a.search(); system("pause"); system("cls"); break; case 0: cout << "Sortie" << endl; system("cls"); } } return 0;} 

img


Dès que j'ai lancé la fonction supprimer et modifier, j'ai signalé l'erreur suivante

Et ces avertissements , Mais je ne sais pas pointer , Je veux juste utiliser un tableau

img




Adopter les réponses:

noModifier comme suit:this.no


版权声明:本文为[Questions et réponses du rseoc]所创,转载请带上原文链接,感谢。 https://primo.wiki/2021/12/202112281443052717.html