C++人员信息管理系统.docx
- 文档编号:6926660
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:14
- 大小:18.72KB
C++人员信息管理系统.docx
《C++人员信息管理系统.docx》由会员分享,可在线阅读,更多相关《C++人员信息管理系统.docx(14页珍藏版)》请在冰豆网上搜索。
C++人员信息管理系统
三.代码实现(代码实现的界面展示):
1.异常处理:
//Exception_Function。
cpp
intException:
:
CheckNnumber(charnum[])//处理员工工号合法性
{
try
{
if(strncmp("200",num,3)||strlen(num)!
=8)
throw”输入非法字符!
";
}
catch(charstr[])
{
cout<〈str〈 return1; } return0; } intException: : CheckName(charn[])//处理员工姓名合法性 { try { if(strlen(n)〈3||strlen(n)>10) throw”输入长度错误! "; } catch(charstr[]) { cout< return1; } return0; } intException: : CheckSameNum(charnum[])//处理重复工号情况 { Personlistlist; try { if(list。 FindSameNum(num)) throw”有重复的编号! "; } catch(charstr[]) { cout〈〈str〈〈endl; list.CloseList(); return1; } return0; } 2。 //人员信息定义: classPerson { //编号、姓名、级别、月薪 public: charNumber[20]; charName[20]; intStatus; floatSalery; intID; public: friendostream&operator〈<(ostream&os,Personpe); }; classWorker: publicPerson//定义普通员工派生类, { public: //由计算每月工资,设置工时,读出ID号码等功能 Worker(); voidPay3(); voidSethours(); voidget(charnum[],charname[]); voidgetid(intid); voidinsert(); private: floatInCome; intbasicweage; floatRate; intHours; }; classSeller: publicPerson//定义营销人员派生类 { public: //由计算每月工资,设置工时,读出ID号码等功能 Seller(); voidget(charnum[],charname[]); voidgetid(intid); voidinsert(); voidPay2(); voidSethours(); private: intbasicweage; floatRate; intHours; floatInCome; }; classManager: publicPerson//定义部门经理派生类 { public: //由计算每月工资,设置工时,读出ID号码等功能 Manager(); voidget(charnum[],charname[]); voidgetid(intid); voidinsert(); voidPay1(); private: intbasicweage; floatInCome; }; classPersonlist//定义了一个全部人员链表类,并集合了各种操作 { Persontest; Persontest1; std: : list std: : list : iteratorPtr; public: voidReadList();//从文件中读出list成员到程序的list容器中 voidFind(charnum[]);//查找员工数据 voidCountAll();//计算每个等级员工的人数和总人数 voidPrintList();//输出所有员工数据 voidCloseList();//关闭LIST并写入记事本 voidClearList();//清空数据表 voidDeletePerson(charnum[]);//删除信息; voidModify(charnum[]);//修改成员数据 intGetId();//获取ID voidFileRead();//将更新后的文本写入记事本 intFindSameNum(charnum[]);//判断是否有重名现象 }; classdecorate//定义了所有控制台输出信息类,以及前端密码进入功能 { public: decorate(); voidInfo_And_Chose();//密码判断 voidAccess();//密码进入 voidInfo_of_Operate(); charGetch();//登录用户判断 voidInsert_of_Info(); private: charcode[10]; charMastercode[10]; charGuestcode[10]; charway; charch; }; classException//异常类 { public: intCheckNnumber(charnum[]); intCheckName(charn[]); intCheckSameNum(charnum[]); }; 3.进入系统: voiddecorate: : Info_And_Chose() { cout<〈”**欢迎进入C++课程设计之企业人事管理系统**"〈〈endl; cout<<”**本小组成员有: **"〈〈endl; while (1) { cout〈<”请选择进入方式: (游客入口’G',管理员入口’M’)”〈〈endl; cin〉>way; if(way=='G’) { ch=’G'; Access(); break; } elseif(way==’M’) { ch='M’; Access(); break; } else cout〈〈”您未正确的进行输入! "<〈endl; } } 4.人员信息的录入、修改和删除 #include”Main_Class_H.h" voidPersonlist: : ReadList()//所有记录单元全部放在链表中,方便操作 { ifstreamfilein; filein。 open("tom.txt”); if(! filein) { cout<〈"Cann’topenthefile! "〈 return; } while(filein.read((char*)&test,sizeof(test))) personlist。 push_back(test); filein.close(); } voidPersonlist: : CountAll() { intcnt1=0,cnt2=0,cnt3=0,cnt4=0; for(Ptr=personlist。 begin();Ptr! =personlist。 end();Ptr++) { if(Ptr—〉Status==1) cnt1++; elseif(Ptr—〉Status==2) cnt2++; else cnt3++; cnt4++; } cout<<”*************************”; cout<〈”公司中经理成员的人数是: "< cout<<"*************************”; cout<〈”公司中营销成员的人数是: ”<〈cnt2<<"人***************************”〈 cout<<”*************************”; cout<〈"公司中普通工人的人数是: "〈〈cnt3<<”人***************************”< cout〈〈"*************************”; cout〈<"公司中全部成员的人数是: "< } voidPersonlist: : Find(charnum[]) { cout〈〈”********************************员工数据信息表**********”; cout<〈"***********************”〈 cout< cout<〈endl; cout<<"--————--————-—----—————-—-—-—--——-——-—---———-—-—--—---—-—--—-——---——-————-—-———"〈 cout〈<”ID号码"< cout< cout〈〈”-————--——-—--——----—--—-—--——--————————————--—---—-—-——--—-—--——————--——-------”< for(Ptr=personlist.begin();Ptr! =personlist。 end();) { if(! strcmp(Ptr—>Number,num)) { cout<<*Ptr; Ptr++; } else Ptr++; } } intPersonlist: : FindSameNum(charnum[]) { ifstreamfilein; 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++; return1; } else { Ptr++; } } return0; } voidPersonlist: : PrintList()//输出所有员工数据 { cout<〈”********************************员工数据信息表**********”; cout〈<”***********************"〈 cout〈〈endl; cout〈 cout〈<”---—--—-——-—-—---————-—-—-—----—--—-——--——--—————----—————-————-——--————-——--—-”〈〈endl; cout<〈”ID号码”〈〈setw(15)<<”员工编号"〈〈setw(18)<〈”等级"; cout< cout<<”—-—————--—-—---—-———-—————---—--————-——-—--——----————-—————------——————--—-———-"< for(Ptr=personlist。 begin();Ptr! =personlist.end();Ptr++) cout〈<*Ptr; } voidPersonlist: : CloseList() { ofstreamfileout(”tom.txt"); if(! fileout) { cout<〈"Cann’topenthefile! ”〈 return; } for(Ptr=personlist。 begin();Ptr! =personlist。 end();Ptr++) fileout.write((char*)&(*Ptr),sizeof(*Ptr)); FileRead(); personlist.clear(); } voidPersonlist: : ClearList() { ReadList(); personlist.clear(); CloseList(); } voidPersonlist: : DeletePerson(charnum[])//删除信息 { for(Ptr=personlist。 begin();Ptr! =personlist。 end();) { if(! strcmp(Ptr-〉Number,num)) { cout〈<*Ptr; personlist.erase(Ptr++); cout<〈”已经删除! ”〈〈endl; } else Ptr++; } } intPersonlist: : GetId() { inti; ReadList(); if(personlist。 size()==0) return1; for(Ptr=personlist。 begin();Ptr! =personlist。 end();) i=++(Ptr++)->ID;; personlist.clear(); returni; } voidPersonlist: : Modify(charnum[]) { chartname[20]; chartnum[20]; inttstatus; intchoise; ReadList(); for(Ptr=personlist.begin();Ptr! =personlist.end();) { if(! strcmp(Ptr->Number,num)) { cout〈<”1.修改名字;”< cout〈〈”2.修改编号;”< cout〈<"3.修改职位;"<〈endl; cin〉>choise; switch(choise) { case1: cout〈<"输入新名字: ”< cin〉〉tname; strcpy(Ptr—〉Name,tname); cout〈〈"修改成功! "<〈endl; break; case2: cout〈<”输入新编号: ”< cin〉〉tnum; strcpy(Ptr—〉Number,tnum); cout<<”修改成功! ”< break; case3: cout<〈”输入新职位: "〈 cin〉〉tstatus; Ptr—>Status=tstatus; cout〈<"修改成功! "〈〈endl; break; default: cout〈<"请输入以上所对应的编号: ”〈〈endl; break; } break; } else Ptr++; } if(Ptr==personlist.end()) cout<〈"无此编号! "< CloseList(); } voidPersonlist: : FileRead() { ofstreamdataout; dataout.open("DataList.txt"); if(! dataout) { cout<<”Cann'topenthefile! "〈〈endl; return; } intlen1=0,len2=0; charch; for(Ptr=personlist.begin();Ptr! =personlist。 end();Ptr++) { len1=strlen(Ptr—>Number); len2=strlen(Ptr->Name); for(inti=0;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(intj=0;j〈len2;j++) { dataout.put(*(Ptr—>Name+j)); } dataout.put('\n'); } dataout。 close(); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 人员 信息管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)