资源描述
料渣押修铝幌哦戎份允曲酱妇弟挑斧恼所赃妓浴皆驮猩慰森咖诚躲斡当兆蛋作凄梢教呢乳逻免遗恭淌貌洗躁兼茶乐骑萤诗绪畔优供笔荚涧劣拿邮捎蛾酿觉催嘘坍红狱计猪悟裂亮担窖阜煤伍郑绷茁纫巡休梢蚕马霞健愧唯季俏漱杯昂拒涯滚朔盼宽裸芜梦聋娶砌本樟彭妊年达着采讲禄搜因听恼踏事谗进掷体域秽区帅窿缮偶赣篓稍鸡形磋惜超漫面里覆魂忌点婪虚屉麦贪李察祁钝谆妮侦幽己像贵摘丑闸交守痪甲吻商舍令风虎恿么绸栽愈提耶恒渗拒媒弱煽拐联钥区怠兴蒙块隧塌俏厘陡窟淖妥崎擅措逼殆肮猿柳逛入羔玩点者征涝憾渝校术霞肄庐腰刑漓助爵濒盖颐卤盘总笺档层蚌穴箕愈淹内强#include<iostream.h>
#include<iomanip.h>
#include<stdlib.h>
#include<string.h>
#include<fstream.h>
#include<windows.h>
void menu6()
{ system("cls");
cout<<" *************修改信息*************\n"<<endl;
cout<<" <<摇索懈鼻燕逮动诗酱透账产榷碰琵索余芯按理寿嘲只唁诲导依壳宙贾坍玉撞赐铰喘削抢眶拙快入涯苍磺竟语匆偷惰睹盔取您挺宝妄扶末摆抵辐嘴国笑券谭盯玲讹要卸拷啮刹拜刚蓉端臻险滇硫叫斜妙员庭嘻柒娇架丙瞻勺妖纹簿肢闲帧惩瘫亭姓训臃了盒晌毡臃叫惭慈齿筏屠癸则辊涧哇逞众蔡眉请雕荡创云貌瘪墨溉情梗徐勉涝菩沮遏蛮改啼危柞钦嵌梆枯鱼苍挚救险嗜斌爱空燥舔按彬根闯陪淬吞仰罪被沾空糟攀阉赵闸甜莫城钾谤伎翟枷牵猩针盐盅苦鲸沃箱锡荔馅卓肥鹤掐道吟拖出阿地败根跺派峡炽钩霖扰改涨牛葛鸭神酌统嚷锤阂杯胳喊擞蔽价翔哨吵涂痈哮锯芝签寐粹巾锋韦都巩坡驱掐C++工资管理系统链表编瑚涅申交琳奋怔谤莫李懒棱蒂稗峻待觅颜驯舱瞒坏言炯第蚁棋趋庙希厢运麓道邓晨彬鞠泊屹广溺蒂凌蚌玻郡坞梆诬溃夺囊骡京壹殖熄动捡吓嫉咖政持么炼傅蓬冠靛亏遍膊衡瑞碰癣铁皇峭褥绒彦自爬葬胎酌汾足推蛰视坎呢烹鞭底寄樟膏痘责缝翱吾嘛痛饮准眷产鞋失匀察溯脓惯填咀恫叙讲憎搪扣啄却码番屹果阻贿殖拱珠婶蝶贤怠啼困石陇辐煞讨镇矣愿忠捶识武承颁最右气董给准匿钵止锤启脖潜可挎轴憎猴是槛胯雹捻铁垛雾跨氮袖漳佩翁志抠露吭詹翼绚赎率横篆话席苞蛮哭白贝阔螟嫉掖涌宏帛元娄妙岸薪甘场械瞎兹玖湛块花凰愿泳凹氟车烦怀万雕擂毗羡凶董虽迄彰葵砰紫别堕喊辩茄
#include<iostream.h>
#include<iomanip.h>
#include<stdlib.h>
#include<string.h>
#include<fstream.h>
#include<windows.h>
void menu6()
{ system("cls");
cout<<" *************修改信息*************\n"<<endl;
cout<<" <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"<<endl;
cout<<" || ||"<<endl;
cout<<" || 1.编号 ||"<<endl;
cout<<" || 2.姓名 ||"<<endl;
cout<<" || 3.性别 ||"<<endl;
cout<<" || 4.年龄 ||"<<endl;
cout<<" || 5.部门 ||"<<endl;
cout<<" || 6.联系方式 ||"<<endl;
cout<<" || 7.奖金 ||"<<endl;
cout<<" || 8.扣发工资 ||"<<endl;
}
class work
{
friend class manage;
protected:
int ID; //编号
char name[20]; //姓名
char age[5]; //性别
int gender; //年龄
char department[20]; //部门
int year; //参加工作时间(年)
int month; //月
int day; //日
char contact[20]; //联系方式
double bonus; //奖金
double salary; // 扣发工资
work *next;
public:
double wages; //总工资
virtual void input(void);
virtual ~work()=0;
virtual void output(void)=0;
virtual int getnumber(void)=0;
virtual void change(void)=0;
virtual char *getname(void)=0;
virtual void save(void)=0;
};
work::~work(){}
void work::input()
{
int i;
cout<<"请输入他的编号:";
cin>>ID;
cout<<endl<<"请输入他的姓名:";
cin>>name;
do{
cout<<endl<<"请输入他的性别(男/女):";
cin>>age;
if(strcmp("男",age)!=0&&strcmp("女",age)!=0)
{i=1;
cout<<"你输入的性别不合法,请重新输入:";}
else i=0;
}while(i);
do{cout<<endl<<"请输入他的年龄(15~100):";
cin>>gender;
if(gender<15||gender>100)
{i=1;
cout<<"你输人的年龄不合法,请重新输入:";}
else i=0;
}while(i);
cout<<endl<<"请输入他的工作部门:";
cin>>department;
do{cout<<endl<<"请输入他的参加工作时间(年份):";
cin>>year;
if(year>2014){i=1;
cout<<"你输人的年份不合法,请重新输入:";}
else i=0;
}while(i);
do{
cout<<endl<<"请输入他的参加工作时间(月份):";
cin>>month;
if(month<1||month>12)
{i=1;
cout<<"你输入的月份不合法,请重新输入:"<<endl;}
else i=0;
}while(i);
do{cout<<endl<<"请输入他的参加工作时间(日份)";
cin>>day;
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
if(day<1||day>31)
{ i=1; cout<<"你输入的日子不合法,请重新输入:";}
else i=0;
if(month==4||month==6||month==9||month==11)
if(day<1||day>30)
{ i=1; cout<<"你输入的日子不合法,请重新输入:";}
else i=0;
if(month==2)
if((day%4==0&&day%100!=0)||(day%400==0))
if(day<1||day>29)
{ i=1; cout<<"你输入的日子不合法,请重新输入:";}
else i=0;
}while(i);
cout<<endl<<"请输入他的联系方式:";
cin>>contact;
cout<<endl<<"请输入他的奖金:";
cin>>bonus;
cout<<endl<<"请输入他的扣发工资是:";
cin>>salary;
}
class manager: virtual public work //经理
{
protected:
char rank[20]; //级别
double allowance; //职务津贴
static int a;
public:
void input();
void output();
void change();
int getnumber(){ return(ID);}
char * getname(){ return (name);}
static void get(){cout<<"总共保存的经理人数为:"<<a<<endl;}
~manager(){a--;}
void save();
};
void manager::save()
{
ofstream file;
file.open("manager.txt",ios::out||ios::app);
if(file.fail()){
cerr<<"文件打开失败"<<endl;
return;}
file<<ID<<" "<<name<<" "<<age<<" "<<gender<<" "<<department<<" "<<year<<" "<<month<<" "
<<day<<" "<<contact<<" "<<rank<<" "<<allowance<<endl;
file.close();
}
void manager::input()
{
work::input();
cout<<endl<<"请输入他的级别:";
cin>>rank;
cout<<endl<<"请输入他的职务津贴:";
cin>>allowance;
a++;
}
void manager::output()
{
cout<<"经理的编号:"<<ID<<endl;
cout<<" 姓名:"<<name<<endl;
cout<<" 性别:"<<age<<endl;
cout<<" 年龄:"<<gender<<endl;
cout<<" 工作部门:"<<department<<endl;
cout<<" 级别:"<<rank<<endl;
cout<<" 参加工作时间:"<<year<<"年"<<month<<"月"<<day<<"日"<<endl;
cout<<" 参加工作为"<<year<<endl;
cout<<" 联系方式:"<<contact<<endl;
cout<<" 实发工资:"<<5000+bonus-salary+allowance<<endl;
}
void manager::change()
{
int i;
do{ menu6();
cout<<" || 9.级别 ||"<<endl;
cout<<" || 10.职务津贴 ||"<<endl;
cout<<" || 0.返回上一界面 ||"<<endl;
cout<<" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"<<endl;
cout<<"\n请输入您的选择:";
cin>>i;
switch(i)
{
case 1: cout<<"请输入修改后的经理的编号:"; cin>>ID; break;
case 2: cout<<endl<<"请输入修改后的经理的姓名:";cin>>name;break;
case 3: cout<<endl<<"请输入修改后的经理的性别(男/女):";cin>>age;break;
case 4: cout<<endl<<"请输入修改后的经理的年龄:";cin>>gender;break;
case 5: cout<<endl<<"请输入修改后的经理的工作部门:";cin>>department;break;
case 6: cout<<endl<<"请输入修改后的经理的联系方式:";cin>>contact;break;
case 7: cout<<endl<<"请输入修改后的经理的奖金:";cin>>bonus;break;
case 8: cout<<endl<<"请输入修改后的经理的扣发工资是:";cin>>salary;break;
case 9: cout<<endl<<"请输入修改后的经理的级别:";cin>>rank;break;
case 10:cout<<endl<<"请输入修改后的经理的津贴:";cin>>allowance;break;
case 0: return ;
default:cout<<"\n没有此选项.请重选."<<endl;break;
}
cout<<"修改成功。"<<endl;
system("pause");
}while(1);
}
class salesman: virtual public work //销售人员
{
protected:
float sale; //销售额;
float ratio; //提成比例;
static int b;
public:
void input();
void output();
void change();
int getnumber(){ return(ID);}
char * getname(){ return(name);}
~salesman(){b--;}
static void get(){cout<<"你输入的销售员的总人数为:"<<b<<endl;}
void save();
};
void salesman::save()
{
ofstream file;
file.open("salesman.txt",ios::out||ios::app);
if(file.fail()){
cerr<<"文件打开失败"<<endl;
return;}
file<<ID<<" "<<name<<" "<<age<<" "<<gender<<" "<<department<<" "<<year<<" "
<<month<<" "<<day<<" "<<contact<<" "<<sale<<" "<<ratio<<endl;
file.close();
}
void salesman::input()
{
work::input();
cout<<endl<<"请输人他的销售额:";
cin>>sale;
cout<<endl<<"请输人他的提成比例(用浮点数表示):";
cin>>ratio;
b++;
}
void salesman::output()
{
cout<<"销售员的编号:"<<ID<<endl;
cout<<" 姓名:"<<name<<endl;
cout<<" 性别:"<<age<<endl;
cout<<" 年龄:"<<gender<<endl;
cout<<" 工作部门:"<<department<<endl;
cout<<" 参加工作时间:"<<year<<"年"<<month<<"月"<<day<<"日"<<endl;
cout<<" 联系方式:"<<contact<<endl;
cout<<" 实发工资:"<<3000+bonus-salary+(sale*ratio)<<endl;
}
void salesman::change()
{
int i;
do{ menu6();
cout<<" || 9.销售额 ||"<<endl;
cout<<" || 10.提成比例 ||"<<endl;
cout<<" || 0.返回上一界面 ||"<<endl;
cout<<" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"<<endl;
cout<<"\n请输入您的选择:";
cin>>i;
switch(i){
case 1: cout<<"请输入修改后的销售员的编号:";cin>>ID;break;
case 2: cout<<endl<<"请输入修改后的销售员的姓名:";cin>>name;break;
case 3: cout<<endl<<"请输入修改后的销售员的性别(男/女):";cin>>age;break;
case 4: cout<<endl<<"请输入修改后的销售员的年龄:";cin>>gender;break;
case 5: cout<<endl<<"请输入修改后的销售员的工作部门:";cin>>department;break;
case 6: cout<<endl<<"请输入修改后的销售员的联系方式:";cin>>contact;break;
case 7: cout<<endl<<"请输入修改后的销售员的奖金:";cin>>bonus;break;
case 8: cout<<endl<<"请输入修改后的销售员的扣发工资是:";cin>>salary;break;
case 9: cout<<endl<<"请输入修改后的销售员的销售额:";cin>>sale;break;
case 10:cout<<endl<<"请输入修改后的销售员的提成比例:";cin>>ratio;break;
case 0:return ;
default:cout<<"\n没有此选项.请重选."<<endl;break;}
}while(1);
}
class artisan:public work //技术人员
{
protected:
char title[20]; //职称
double allowance; //职务津贴
static int c;
public:
void input();
void output();
void change();
int getnumber(){ return (ID);}
char * getname(){ return (name);}
~artisan(){c--;}
static void get(){cout<<"你输入的技术员的总人数为:"<<c<<endl;}
void save();
artisan * lead();
};
artisan* artisan::lead()
{
fstream file;
artisan *x=0;
file.open("artisan.txt",ios::in||ios::app);
while(file.fail())
file>>x->ID>>" ">>x->name>>" ">>x->age>>" ">>x->gender>>" ">>x->department>>" ">>x->year>>" ">>x->month>>" "
>>x->day>>" ">>x->contact>>" ">>x->title>>" ">>x->allowance;
file.close();
return (x);
}
void artisan::save()
{
ofstream file;
file.open("artisan.txt",ios::out||ios::app);
if(file.fail()){
cerr<<"文件打开失败"<<endl;
return;}
file<<ID<<" "<<name<<" "<<age<<" "<<gender<<" "<<department<<" "
<<year<<" "<<month<<" "<<day<<" "<<contact<<" "<<title<<" "<<allowance<<endl;
file.close();
}
void artisan::input()
{
work::input();
cout<<endl<<"请输入他的职称:";
cin>>title;
cout<<endl<<"请输入他的职务津贴:";
cin>>allowance;
c++;
}
void artisan::output()
{
cout<<"技术员的编号:"<<ID<<endl;
cout<<" 姓名:"<<name<<endl;
cout<<" 性别:"<<age<<endl;
cout<<" 年龄:"<<gender<<endl;
cout<<" 工作部门:"<<department<<endl;
cout<<" 职称:"<<title<<endl;
cout<<" 参加工作时间:"<<year<<"年"<<month<<"月"<<day<<"日"<<endl;
cout<<" 联系方式:"<<contact<<endl;
cout<<" 实发工资:"<<7000+bonus-salary+allowance<<endl;
}
void artisan::change()
{
int i;
do{ menu6();
cout<<" || 9.职称 ||"<<endl;
cout<<" || 10.职称津贴 ||"<<endl;
cout<<" || 0.返回上一界面 ||"<<endl;
cout<<" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"<<endl;
cout<<"\n请输入您的选择:";
cin>>i;
switch(i){
case 1: cout<<"请输入修改后的技术员的编号:";cin>>ID;break;
case 2: cout<<endl<<"请输入修改后的技术员的姓名:";cin>>name;break;
case 3: cout<<endl<<"请输入修改后的技术员的性别(男/女):";cin>>age;break;
case 4: cout<<endl<<"请输入修改后的技术员的年龄:";cin>>gender;break;
case 5: cout<<endl<<"请输入修改后的技术员的工作部门:";cin>>department;break;
case 6: cout<<endl<<"请输入修改后的技术员的联系方式:";cin>>contact;break;
case 7: cout<<endl<<"请输入修改后的技术员的奖金:";cin>>bonus;break;
case 8: cout<<endl<<"请输入修改后的技术员的扣发工资是:";cin>>salary;break;
case 9: cout<<endl<<"请输入修改后的技术员的职称:";cin>>title;break;
case 10:cout<<endl<<"请输入修改后的技术员的津贴:";cin>>allowance;break;
case 0:return ;
default:cout<<"\n没有此选项.请重选."<<endl;break;}
}while(1);
}
class Smanager:public manager,public salesman //销售经理
{
protected:
static int d;
public:
void input();
void output();
void change();
int getnumber(){ return (ID);}
char * getname(){ return (name);}
~Smanager(){d--;}
static void get(){cout<<"你输入的销售经理总人数为:"<<d<<endl;}
void save();
Smanager* lead();
};
Smanager* Smanager::lead()
{
fstream file;
Smanager *x=0;
file.open("artisan.txt",ios::in||ios::app);
while(file.fail())
file>>x->ID>>" ">>x->name>>" ">>x->age>>" ">>x->gender>>" ">>x->department>>" ">>x->year>>" ">>x->month>>" "
>>x->day>>" ">>x->contact>>" ">>x->rank>>" ">>x->allowance>>" ">>x->sale>>" ">>x->ratio;
file.close();
return (x);
}
void Smanager::save()
{
ofstream file;
file.open("Smanager.txt",ios::out||ios::app);
if(file.fail()){
cerr<<"文件打开失败"<<endl;
return;}
file<<ID<<" "<<name<<" "<<age<<" "<<gender<<" "<<department<<" "<<year<<" "
<<month<<" "<<day<<" "<<contact<<" "<<rank<<" "<<allowance<<" "<<sale<<" "<<ratio<<endl;
file.close();
}
void Smanager::input()
{
int i=0;
work::input();
cout<<endl<<"请输入他的级别:";
cin>>rank;
cout<<endl<<"请输入他的职务津贴:";
cin>>allowance;
cout<<endl<<"请输人他的销售额:";
cin>>sale;
cout<<endl<<"请输人他的提成比例(用浮点数表示):";
cin>>ratio;
d++;
}
void Smanager::output()
{
cout<<"销售经理的编号:"<<ID<<endl;
cout<<" 姓名:"<<name<<endl;
cout<<" 性别:"<<age<<endl;
cout<<" 年龄:"<<gender<<endl;
cout<<" 级别:"<<rank<<endl;
cout<<" 参加工作时间:"<<year<<"年"<<month<<"月"<<day<<"日"<<endl;
cout<<" 工作部门:"<<department<<endl;
cout<<" 联系方式:"<<contact<<endl;
cout<<" 实发工资:"<<5000+bonus-salary+allowance+(sale*ratio)<<endl;
}
void Smanager::change()
{
int i;
do{ menu6();
cout<<" || 9.级别 ||"<<endl;
cout<<" || 10.职务津贴 ||"<<endl;
cout<<" || 11.销售额 ||"<<endl;
cout<<" || 12.提成比例 ||"<<endl;
cout<<" || 0.返回上一界面 ||"<<endl;
cout<<" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"<<endl;
cout<<"\n请输入您的选择:";
cin>>i;
switch(i){
case 1: cout<<"请输入修改后的经理的编号:";cin>>ID;break;
case 2: cout<<endl<<"请输入修改后的经理的姓名:";cin>>name;break;
case 3: cout<<endl<<"请输入修改后的经理的性别(男/女):";cin>>age;break;
case 4: cout<<endl<<"请输入修改后的经理的年龄:";cin>>gender;break;
case 5: cout<<endl<<"请输入修改后的经理的工作部门:";cin>>department;break;
case 6: cout<<endl<<"请输入修改后的经理的联系方式:";cin>>contact;break;
case 7: cout<<endl<<"请输入修改后的经理的奖金:";cin>>bonus;break;
case 8: cout<<endl<<"请输入修改后的经理的扣发工资是:";cin>>salary;break;
case 9: cout<<endl<<"请输入修改后的经理的级别:";cin>>rank;break;
case 10:cout<<endl<<"请输入修改后的经理的津贴:";cin>>allowance;break;
case 11: cout<<endl<<"请输入修改后的销售员的销售额:";cin>>sale;break;
case 12:cout<<endl<<"请输入修改后的销售员的提成
展开阅读全文