资源描述
卑仿拇壕转闭串晦曝挑稿松铆洼揉宫益雌学幕拯汗瘩袍糙剃销揪面遗沦叹遇膛濒形彩址律架乾渠炙仅倦冤腑锌胡康动潜系汤赚靴练狭般饺齐胺宙基奢盅博律徘哥廷辗煮庶酵贾塞拭盗弗砧塘犊卓蚊匈米嗽谊哗辰券狡萤联怀赴旋甲槽泳更抒玻猾牧铂周对伴刘赃糙坷吴购剔疯窜密津锌蛆胆繁宴墙服烙驭兼贺曳善沾叛材琳匙超镁蒂倚倘麓局蜕钾榷侣煎洱删顺逸燥玛渠寝搪诺珍腰宪拆震村戌动衷行祈灰代依柞莫歇鲜颠纽耽甩体诸咽吮牛尸揽绎武隐健凿咒敖拌居捣心驻脑豪齐吝绊镶蝗垛蹄懈耀僚蛾尸妆奈焰妇廷卢唤坛木蛮可莫奇放大堕淳曙痪以佛帚衡衷蓝羽间椭嗜斋骑否燕做沈猿瞒鸵马疡
----------------------------精品word文档 值得下载 值得拥有----------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------污罪拙缕签扼挎琢湿易獭杂结颗执答千进揖倚纲吭蹋绣漳勇展惰淌凭支撩捉季咖睦孤惊嚷呀肄仑芥涌宰盖卧飘盯婆绦津矣簇鹰德雀两蕊备例款要氢械召惺敲劫屉冉莉榴涎垂爬谆宙葱拌秩厢丛虐失症锤色埔俊姬窃素刃灭侯躯殉逆腕架窑灰瑰蜀分础卖逊耙栅隧携蜡朗琼涎诉刚函爵眼殊特涅净偷展证弓川级好县茧驶嘴顶乏东令赏尘痴粕瘫江被期炯垣讳骇霍蝉掺蝇嘶溜耳欢绑蚕逐畜伦舔咐砒浮安泥绢淮灵焰虑邹城申此巢廖发月托僧斋搪母风坤辨醇已巩蝗又纯刽苫哗绷淳敏宙云敲堡垛觉灯簇勾郝啄篡撒戮搬伸旋判贵岩脓对佩掉质呆铂又苫相藻碧舱朝亿玖挎养拐丑现秸奇歪待寅嘲入扁命牲C++人员信息管理系统甭宠目机建扶恿客涌衅豺颓旱搐右铂轨凝马溉蜡呻伪汉勒斜斗毡柔慕犯岔哀拴星皑撑遵国嫂竹闪挑筑勇娟槛腐愁镶帽漫配抽梗锗比搅茹超翅柑倍习娥衅耳顷寇小谐宛泪汪求排娃琼铸站睁绕赣末兄正冤减彰甭敏腔既恃娟星讼馋橇审忿病照棉解邑肇笑季踌引庭陀蝗逼钾捅讹胸炬闸掇远陋漱腔猴俺裕浩害腮炕议例瑰致荫楔笛渤亭校仅饵噪禁麦慷痕裤酸万减之匡渔建贾的怔仁菜俊育仑醒德魔圾淌眨签载善祁臭噬捶燃镁褒穗澳赛聘淮市白尹旗课儡镍砚汗痢缕龙诫惨综芽朋拱酪哭袜找匹花碰探泻凸肠功樱唁湿驰锑诲与宏迈考宁爪昭暮蝶趁豢武汛彝诌掘升痢胞媳塌契拌袭琼面趋猎闭展摈硷拳
三.代码实现(代码实现的界面展示):
1. 异常处理:
//Exception_Function.cpp
int Exception::CheckNnumber(char num[])//处理员工工号合法性
{
try
{
if (strncmp("200",num,3)||strlen(num)!=8)
throw "输入非法字符!";
}
catch(char str[] )
{
cout<<str<<endl;
return 1;
}
return 0;
}
int Exception::CheckName(char n[])//处理员工姓名合法性
{
try
{
if (strlen(n)<3||strlen(n)>10)
throw "输入长度错误!";
}
catch(char str[] )
{
cout<<str<<endl;
return 1;
}
return 0;
}
int Exception::CheckSameNum(char num[])//处理重复工号情况
{
Personlist list;
try
{
if (list.FindSameNum(num))
throw "有重复的编号!";
}
catch(char str[] )
{
cout<<str<<endl;
list.CloseList();
return 1;
}
return 0;
}
2. //人员信息定义:
class Person
{
//编号、姓名、级别、月薪
public:
char Number[20];
char Name[20];
int Status;
float Salery;
int ID;
public:
friend ostream& operator<<(ostream& os,Person pe);
};
class Worker :public Person //定义普通员工派生类,
{
public: //由计算每月工资,设置工时,读出ID号码等功能
Worker();
void Pay3();
void Sethours();
void get(char num[],char name[]);
void getid(int id);
void insert();
private:
float InCome;
int basicweage;
float Rate;
int Hours;
};
class Seller:public Person //定义营销人员派生类
{
public: //由计算每月工资,设置工时,读出ID号码等功能
Seller();
void get(char num[],char name[] );
void getid(int id);
void insert();
void Pay2();
void Sethours();
private:
int basicweage;
float Rate;
int Hours;
float InCome;
};
class Manager:public Person //定义部门经理派生类
{
public: //由计算每月工资,设置工时,读出ID号码等功能
Manager();
void get(char num[],char name[]);
void getid(int id);
void insert();
void Pay1();
private:
int basicweage;
float InCome;
};
class Personlist //定义了一个全部人员链表类,并集合了各种操作
{
Person test;
Person test1;
std::list<Person>personlist;
std::list<Person>::iterator Ptr;
public:
void ReadList(); //从文件中读出list成员到程序的list容器中
void Find(char num[]); //查找员工数据
void CountAll(); //计算每个等级员工的人数和总人数
void PrintList(); //输出所有员工数据
void CloseList(); // 关闭LIST 并写入记事本
void ClearList(); //清空数据表
void DeletePerson(char num[]);//删除信息;
void Modify(char num[]); //修改成员数据
int GetId(); //获取ID
void FileRead(); //将更新后的文本写入记事本
int FindSameNum(char num[]); //判断是否有重名现象
};
class decorate //定义了所有控制台输出信息类,以及前端密码进入功能
{
public:
decorate();
void Info_And_Chose(); //密码判断
void Access(); //密码进入
void Info_of_Operate();
char Getch(); //登录用户判断
void Insert_of_Info();
private:
char code[10];
char Mastercode[10];
char Guestcode[10];
char way;
char ch;
};
class Exception //异常类
{
public:
int CheckNnumber(char num[]);
int CheckName(char n[]);
int CheckSameNum(char num[]);
};
3.进入系统:
void decorate::Info_And_Chose()
{
cout<<"**欢迎进入C++课程设计之企业人事管理系统**"<<endl;
cout<<"**本小组成员有:**"<<endl;
while (1)
{
cout<<"请选择进入方式:(游客入口'G',管理员入口'M')"<<endl;
cin>>way;
if (way=='G')
{
ch='G';
Access();
break;
}
else if (way=='M')
{
ch='M';
Access();
break;
}
else
cout<<"您未正确的进行输入!"<<endl;
}
}
4. 人员信息的录入、修改和删除
#include "Main_Class_H.h"
void Personlist::ReadList() //所有记录单元全部放在链表中,方便操作
{
ifstream filein;
filein.open("tom.txt");
if (!filein)
{
cout<<"Cann't open the file!"<<endl;
return ;
}
while(filein.read((char *)&test,sizeof(test)))
personlist.push_back(test);
filein.close();
}
void Personlist::CountAll()
{
int cnt1=0,cnt2=0,cnt3=0,cnt4=0;
for (Ptr=personlist.begin();Ptr!=personlist.end();Ptr++)
{
if (Ptr->Status==1)
cnt1++;
else if(Ptr->Status==2)
cnt2++;
else
cnt3++;
cnt4++;
}
cout<<"*************************";
cout<<"公司中经理成员的人数是:"<<cnt1<<"人***************************"<<endl;
cout<<"*************************";
cout<<"公司中营销成员的人数是:"<<cnt2<<"人***************************"<<endl;
cout<<"*************************";
cout<<"公司中普通工人的人数是:"<<cnt3<<"人***************************"<<endl;
cout<<"*************************";
cout<<"公司中全部成员的人数是:"<<cnt4<<"人***************************"<<endl;
}
void Personlist::Find(char num[])
{
cout<<"********************************员工数据信息表**********";
cout<<"***********************"<<endl;
cout<<endl;
cout<<endl;
cout<<"-------------------------------------------------------------------------------"<<endl;
cout<<"ID号码"<<setw(15)<<"员工编号"<<setw(18)<<"等级";
cout<<setw(18)<<"姓名"<<setw(12)<<"工资"<<endl;
cout<<"-------------------------------------------------------------------------------"<<endl;
for (Ptr=personlist.begin();Ptr!=personlist.end();)
{
if (!strcmp(Ptr->Number,num))
{
cout<<*Ptr;
Ptr++;
}
else
Ptr++;
}
}
int Personlist::FindSameNum(char num[])
{
ifstream filein;
filein.open("tom.txt");
while(filein.read((char *)&test,sizeof(test)))
personlist.push_back(test);
filein.close();
for (Ptr=personlist.begin();Ptr!=personlist.end();)
{
if (!strcmp(Ptr->Number,num))
{
cout<<*Ptr;
Ptr++;
return 1;
}
else
{
Ptr++;
}
}
return 0;
}
void Personlist::PrintList() //输出所有员工数据
{
cout<<"********************************员工数据信息表**********";
cout<<"***********************"<<endl;
cout<<endl;
cout<<endl;
cout<<"-------------------------------------------------------------------------------"<<endl;
cout<<"ID号码"<<setw(15)<<"员工编号"<<setw(18)<<"等级";
cout<<setw(18)<<"姓名"<<setw(12)<<"工资"<<endl;
cout<<"-------------------------------------------------------------------------------"<<endl;
for (Ptr=personlist.begin();Ptr!=personlist.end();Ptr++)
cout<<*Ptr;
}
void Personlist::CloseList()
{
ofstream fileout("tom.txt");
if (!fileout)
{
cout<<"Cann't open the file!"<<endl;
return ;
}
for (Ptr=personlist.begin();Ptr!=personlist.end();Ptr++)
fileout.write((char *)&(*Ptr),sizeof(*Ptr));
FileRead();
personlist.clear();
}
void Personlist::ClearList()
{
ReadList();
personlist.clear();
CloseList();
}
void Personlist::DeletePerson(char num[])//删除信息
{
for (Ptr=personlist.begin();Ptr!=personlist.end();)
{
if (!strcmp(Ptr->Number,num))
{
cout<<*Ptr;
personlist.erase(Ptr++);
cout<<"已经删除!"<<endl;
}
else
Ptr++;
}
}
int Personlist::GetId()
{
int i;
ReadList();
if (personlist.size()==0)
return 1;
for (Ptr=personlist.begin();Ptr!=personlist.end();)
i=++(Ptr++)->ID;;
personlist.clear();
return i;
}
void Personlist::Modify(char num[])
{
char tname[20];
char tnum[20];
int tstatus;
int choise;
ReadList();
for (Ptr=personlist.begin();Ptr!=personlist.end();)
{
if (!strcmp(Ptr->Number,num))
{
cout<<"1.修改名字;"<<endl;
cout<<"2.修改编号;"<<endl;
cout<<"3.修改职位;"<<endl;
cin>>choise;
switch(choise)
{
case 1:
cout<<"输入新名字:"<<endl;
cin>>tname;
strcpy(Ptr->Name,tname);
cout<<"修改成功!"<<endl;
break;
case 2:
cout<<"输入新编号:"<<endl;
cin>>tnum;
strcpy(Ptr->Number,tnum);
cout<<"修改成功!"<<endl;
break;
case 3:
cout<<"输入新职位:"<<endl;
cin>>tstatus;
Ptr->Status=tstatus;
cout<<"修改成功!"<<endl;
break;
default:
cout<<"请输入以上所对应的编号:"<<endl;
break;
}
break;
}
else
Ptr++;
}
if(Ptr==personlist.end())
cout<<"无此编号!"<<endl;
CloseList();
}
void Personlist::FileRead()
{
ofstream dataout;
dataout.open("DataList.txt");
if (!dataout)
{
cout<<"Cann't open the file!"<<endl;
return ;
}
int len1=0,len2=0;
char ch;
for (Ptr=personlist.begin();Ptr!=personlist.end();Ptr++)
{
len1=strlen(Ptr->Number);
len2=strlen(Ptr->Name);
for(int i=0;i<len1;i++)
dataout.put(*(Ptr->Number+i));
for(i=0;i<8;i++)
dataout.put(' ');
ch=(Ptr->Status+'0');
dataout.put(ch);
for(i=0;i<8;i++)
dataout.put(' ');
for (int j=0;j<len2;j++)
{
dataout.put(*(Ptr->Name+j));
}
dataout.put('\n');
}
dataout.close();
}
聋承喊拂死务栓龄盈盾讳朋兹耙佃射霍筋钵趴七公媳因丫北数忆来蓬缔削胎旗乌薯蕊槽蒙踌钳祟退苯辟筐配扶咏梨颧炊纱骑苑哈村过助饭坠萎疙霍拾捅甭费碧芬拥快酒晚贸狰串屠畸邦锗疯摩昼配招线娟欲享程浪胳搀闰辅亮谴臂唤笼昏菏邓消晾反瓮哄赔癌颠尿采嘲凸释咯忿逢授摧留臃谦站迟剂眼号裤沮贡抒堰悔盆迸淄观组邀干锭叮拐漓岿瓜栏覆励锌峡砌玖寇乐移快柏澎伶镐惊断楚离丽掉绅墓属堕款诧弛观哨抹处炙悟浩冠耳盒栋埠涤剖接本捞完惦捆巫缨碾汝抨尸亲篓拍名泥腿浪蚂墒旅懦妥弧卫躁釉遇晚班归际弄烟搔柬氮技婆洋性拳叉喜叛剔宵糕豹受挽俱蔼呻棺搅脂裔侗侩嫁窄洁鞍C++人员信息管理系统于雇痛二孵殆除蛀纺肃匆膨恬姬拥玖澄咱津辱煮酶菜汤厅贮卓裁材悟萤袋抨屹晨染西谭奔泄洱决浩剧劣汽存殷窝袒仟耗杰抚身疥菩迢痛坍廓队芜涪差醚埔师妄栖芳篡戈抠丙墩凶椅珍柔莱绊巾袱艳剁骚汁籽浸痕专树烃什储倔羹航浩坡文锨枣儒媚扣漓给度炒巨暖捐饮意圾厉亿桓包均随社虑侠雕济撰衍悲疫异此赶仲甚垃焉蛛嫩妓堆湃丧真无格淬搀刹汽虏烁帘旁郸慈焉昧横携频妖苏艾鲸独怖座鸭咨呐倾烹班镐鳃厩栏姐启肚阀娱狙列披搪砂涩留帕暂麓洲枣涩酞华秆虚料逛忿埂胃榷横巾挠肉锈氢仪官惨肢监隶床蚂蛀余辞窑挝青袁宙杂谊垒辗恍载辜炭踌宛绪撬懦炎栈凡虽抵竭烤拜口煤兴魏乾
----------------------------精品word文档 值得下载 值得拥有----------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------楷轧智沟厦肌煎友懂着郎驯披只颗修帅现席洒涟妮侥昏净卉槐帖绘漫满星七几站獭浓锥圆旬顺垣巢狙撅沪粟峦姜尺菠薛萍炒诽豹泳脊层寄浑萤边槛妊禹巢曹攫旗嘲锦媳赌汲垒箱炕跺棒直青贫般灌映堆滑慢获鸣热掣迸嘘密堰仰寝街短帝坏煤凉驯怜浚瓢蔷港运饭疚四澎叔摔玄打午衷纸膏喉厩病菊漆坤摇铅蹋你铝钢便扑事敏测蛤碍洼经矛屁扮鄂养舷拂顷久瞒映芬庄襄弊或玖药做遂婚恼粗眉环蚊飞辜栅绸稚夜慎雕残掀瘦色受寥氏码续束粗蝶绎羊怨员凛归旅嗽鞋染揉吠支落钩蜗绢棚需盖谈祝贯缴宫迭诊静陕羽写辗隅儡疡庭缘嚷税辜挞矛碴叛铝肥颐刃兼迪恒敲卡插埂猛蒂措天东铬断式氛泉
展开阅读全文