c++编程中出现的问题
#include#include
#include
#include
class Employ//基类-雇员类
{
protected:
int num;
char name[10];
char sex;
int age;
int wage;
public:
virtual void set()=0;
virtual void print()=0;
virtual void reserved()=0;
};
class Manager:public Employ//经理类
{
public:
void set();
void print();
void reserved();
};
class Salesman:public Employ//销售员类
{
protected:
int salesvolume;
int snum;
public:
void set();
void print();
void reserved();
void printinfor();
int getsales()
{return salesvolume;}
int getsnum()
{return snum;}
};
class MarketMan:public Manager//销售经理类
{
protected:
int salesvolume;
public:
void set();
void print();
void reserved();
int resetwage();
int getnum()
{return num;}
char*getname()
{return name;}
int getamount(Salesman s[],int n)
{
salesvolume=0;
for(int i=0;i<n;i++)
{if(s[i].getsnum()==num)
salesvolume+=s[i].getsales();}
return salesvolume;
}
};
class Technician:public Employ//技术员类
{
protected:
int worktime;
public:
void set();
void print();
void reserved();
};
void Manager::set()
{
wage=8000;
cout<<"经理的编号:";
cin>>num;
cout<<"其姓名:";
cin>>name;
cout<<"性别(m/w):";
cin>>sex;
cout<<"年龄:";
cin>>age;
}
void Manager::print()//经理类成员函数
{
cout<<"┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫"<<endl;
cout<<"┃"<<setw(12)<<num<<"┃"<<setw(12)<<name<<"┃"<<setw(12)<<sex;
cout<<"┃"<<setw(12)<<age<<"┃"<<setw(12)<<wage<<"┃"<<endl;
}
void Manager::reserved()
{
ofstream employf("E:\\05-29\\gzglxt.txt",ios::app);
employf<<"经理的编号:"<<num<<endl
<<"其姓名:"<<name<<endl
<<"性别(m/w):"<>num;
cout<<"其姓名:";
cin>>name;
cout<<"性别(m/w):";
cin>>sex;
cout<<"年龄:";
cin>>age;
}
void MarketMan::print()
{
resetwage();
cout<<"┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫"<<endl;
cout<<"┃"<<setw(12)<<num<<"┃"<<setw(12)<<name<<"┃"<<setw(12)<<sex;
cout<<"┃"<<setw(12)<<age<<"┃"<<setw(12)<<wage<<"┃"<<endl;
}
void MarketMan::reserved()
{
ofstream employf("E:\\05-29\\gzglxt.txt",ios::app);
employf<<"销售经理的编号:"<<num<<endl
<<"其姓名:"<<name<<endl
<<"性别(m/w):"<<sex<<endl
<<"年龄:"<<age<<endl;
}
int MarketMan::resetwage()
{
wage=5000+int(salesvolume*0.005);
return wage;
}
void Salesman::set()//销售员类定义
{
cout<<"销售员的编号:";
cin>>num;
cout<<"其姓名:";
cin>>name;
cout<<"性别(m/w):";
cin>>sex;
cout<<"年龄:";
cin>>age;
cout<<"销售额:";
cin>>salesvolume;
cout<<"所属销售经理的编号:";
cin>>snum;
wage=int(salesvolume*0.04);
}
void Salesman::printinfor()
{
cout<<"┣━━━━━━━╋━━━━━━━╋━━━━━━━┫"<<endl;
cout<<"┃"<<setw(14)<<num<<"┃"<<setw(14)<<name<<"┃"<<setw(14)<<salesvolume<<"┃"<<endl;
}
void Salesman::print()
{
cout<<"┣━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━━━┫"<<endl;
cout<<"┃"<<setw(8)<<num<<"┃"<<setw(10)<<name<<"┃"<<setw(10)<<sex;
cout<<"┃"<<setw(10)<<age<<"┃"<<setw(10)<<wage<<"┃"<<setw(16)<<getsnum()<<"┃"<<endl;
}
void Salesman::reserved()
{
ofstream employf("E:\\05-29\\gzglxt.txt",ios::app);
employf<<"销售员的编号:"<<num<<endl
<<"其姓名:"<<name<<endl
<<"性别(m/w):"<<sex<<endl
<<"年龄:"<<age<<endl
<<"销售额:"<<salesvolume<<endl
<<"所属销售经理的编号"<<snum<<endl;
}
void Technician::set()//技术员类定义
{
cout<<"技术员的编号:";
cin>>num;
cout<<"其姓名:";
cin>>name;
cout<<"性别(m/w):";
cin>>sex;
cout<<"年龄:";
cin>>age;
cout<<"工作时间:";
cin>>worktime;
wage=worktime*100;
}
void Technician::print()
{
cout<<"┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫"<<endl;
cout<<"┃"<<setw(12)<<num<<"┃"<<setw(12)<<name<<"┃"<<setw(12)<<sex;
cout<<"┃"<<setw(12)<<age<<"┃"<<setw(12)<<wage<<"┃"<<endl;
}
void Technician::reserved()
{
ofstream employf("E:\\05-29\\gzglxt.txt",ios::app);
employf<<"技术员的编号:"<<num<<endl
<<"其姓名:"<<name<<endl
<<"性别(m/w):"<<sex<<endl
<<"年龄:"<<age<<endl
<<"工作时间:"<<worktime<<endl;
}
//主函数
int t,m,s,mm;
Technician*pt;
Manager*pm;
Salesman*ps;
MarketMan*pmm;
void setin();
void count();
void printdata();
void reservedall();
void single();
void main()
{
cout<<"请分别输入技术员,经理,销售员,销售经理人数:"<>t>>m>>s>>mm;
pt=new Technician[t];
pm=new Manager;
ps=new Salesman[s];
pmm=new MarketMan[mm];
if((!pt)||(!pm)||(!ps)||(!pmm))
{
cout<<"堆内存分配失败!"<>choice;
switch(choice)
{
case 1:setin();
case 2:count();
case 3:printdata();
case 4:reservedall();
case 5:exit(0);
}
}
void setin()
{
Menu1:
cout<<"★★小型公司工资管理系统★★"<>ch1;
switch(ch1)
{
case 1:{for(i=0;i>ch2;
switch(ch2)
{
case 1:{for(i=0;i>ch3;
switch(ch3)
{case 1:{
cout<<"技术员"<>ch4;
switch(ch4)
{
case 1:{for(i=0;i<t;i++)
pt[i].reserved();
goto Menu4;
}
case 2:{for(i=0;i<m;i++)
pm[i].reserved();
goto Menu4;
}
case 3:{for(i=0;i<s;i++)
ps[i].reserved();
goto Menu4;
}
case 4:{for(i=0;i<mm;i++)
pmm[i].reserved();
goto Menu4;
}
case 5:single();
}
}
在执行该程序时出现 0x004030f4 处未处理的异常: 0xC0000005: 读取位置 0xfdfdfdfd 时发生访问冲突 该怎么解决啊
追问:试了还是不幸啊