人员信息管理系统.doc
《人员信息管理系统.doc》由会员分享,可在线阅读,更多相关《人员信息管理系统.doc(45页珍藏版)》请在咨信网上搜索。
《C++课程设计》 题 目: 人员信息管理系统 学生姓名: 学 号: 专业班级: 同组人员: 指导老师: 设计时间: 指导老师意见: 评估成绩: 署名: 日期: C++课程设计实验报告 ——人员信息管理系统 一:系统规定分析 1:功能需求 (1)人员信息基本管理,涉及人员信息的录入、修改和删除; (2)可以自动设立员工的编号,即每增长一位新员工,编号增一; (3)可以分别对不同级别的员工(如经理、技术人员、推销人员等)按照不同的公式计算其工资收入; (4)可以将人员信息保存到磁盘上,以便程序下次运营时使用; (5)具有一定的排错功能,如当用户输入错误数据时提醒用户; (6)可以实现一定限度的查询和记录功能。 (7)其他你能想到并对系统有用的功能。 在实现程序功能的基础上,尽量运用所学知识,改善程序实现方法,提高程序的可读性、模块性、可扩展性、可重用性和健壮性。 工资计算公式: 经理 :固定为8000 技术人员:工作时间*每小时酬金(100RMB) 销售经理:1%提成+固定工资(5000RMB) 推销员 :4%提成 二:系统总体设计 1:系统功能框架设计 登陆界面 输入登陆密码 liu 进入功能选择菜单 7:退出 5:删除 4:修改 3:查找 2:显示 1:录入 进行操作解决 操作结果自动存入txt文献中, 再循环进入主菜单 三:系统具体设计 1:设计思绪 使用面向对象的程序设计思想进行分析,整个系统涉及两大类信息和操作,公司,人员。所以系统重要涉及两个大类:公司类business、人员类person。系统的总体框架就是公司类,人员类的定义;主函数中定义一个公司对象,循环显示主菜单并根据用户选择调用公司类的相应方法(成员函数)。 (1)公司类business:考虑系统操作的人员信息的数量具有不拟定性,所以考虑使用链表保存、解决人员信息。公司类包含:所有人员信息的一个不带头结点的链表(作为数据成员)及可以对人员信息进行增,删,改,查询经营信息,基础数据设立,数据存盘,数据装入等操作的相关模块(write,build,search,repair,delete,list)作为成员函数。 (2)人员类person:所有人员都具有的公共信息及操作可以使用人员类进行描述。由于系统具有4类人员且4类人员数据,操作有所不同,如销售员包含销售额,而兼职技术人员包含工作小时数且计算工资的方法不同,所以应当为4类人员创建相应的person类的派生类。 (3)为了使公司类可以方便解决人员信息,可以考虑将公司类拟定为人员类的友元类或者人员类提供公共的方法以便公司类进行操作。为了公司类可以用共同方法操作人员类,可以将人员类的方法拟定为虚函数。 2:功能模块设计 1) void write()——新增 将向要新增的人员通过文献指令 ofstream myfile("f1.txt",ios :: binary|ios :: ate); myfile.write((char*)&p,sizeof p); myfile.close(); 将信息自动存入txt文档中。 2) void search()——查找 通过读取源文献内容, 再运用判断语句 if(number==p.number) 判断是否输入的序号与存档内容序号相同,相同则输出。 3) void delete()——删除 先查找出要删除的人员信息, 再通过ofstream file2("f1.txt",ios :: binary|ios :: out);创建空白文献覆盖要删除的人员信息。 4) void show()——显示 用while判断语句打印出所有人员信息。 5) void repair()——修改 运用ofstream h1("f2.txt",ios :: binary|ios :: out);覆盖要修改的人员信息。 6) 错误判断 四:系统源代码 #include<iostream.h> #include<fstream.h> #include<string.h> #include<stdlib.h> class person { public : char name[20],post[20],hour[20]; int age,number ; }; class business :public person { public : int time ; } ; //经理(一次派生类) class mgr : public person { public: int monthpay; mgr :: mgr() { monthpay=8000 ; } void out() { cout<<"请输入职工的编号:" ; cin>>number ; cout<<"请输入职工的姓名:" ; cin>>name ; cout<<"请输入职工的年龄:" ; cin>>age ; cout<<"该职工的月薪为:"<<monthpay<<endl; } void in() { cout<<"编号:"<<number<<' '<<"姓名:"<<name<<' '<<"年龄:"<<age<<' '<<"职称:"<<"经理 "<<' '<<"月薪:"<<monthpay<<endl; } }; //技术人员 class technician :public person { public: int hourlyRate ; //每小时酬金 int workHours ; //当月工作时数 int pay; technician :: technician() { hourlyRate=100 ; }; virtual void in() { cout<<"编号:"<<number<<' '<<"姓名:"<<name<<' '<<"年龄:"<<age<<' '<<"职称:"<<"技术人员"<<' '<<"月薪:"<<pay<<endl ; } void out() { cout<<"请输入职工的编号:" ; cin>>number ; cout<<"请输入职工的名字:" ; cin>>name ; cout<<"请输入工作的小时:" ; cin>>workHours ; cout<<"请输入职工的年龄:" ; cin>>age ; pay=hourlyRate*workHours ; cout<<"该职工的月薪为:"<<pay<<endl ; } }; //销售经理 class sell :public business { public : int phpay,monthpay ; sell :: sell() { phpay=1,monthpay=5000 ; } void in() { cout<<"编号:"<<number<<" "<<"姓名:"<<name<<" "<<"销售额:"<<time<<" "<<"年龄:"<<age<<" "<<"职称:"<<"销售经理"<<" "<<"月薪:"<<pay()<<endl ; } int pay() { return(phpay*time+monthpay); } void out() { cout<<"请输入职工的编号:" ; cin>>number ; cout<<"请输入职工的名字:" ; cin>>name ; cout<<"请输入销售额 :" ; cin>>time ; cout<<"请输入职工的年龄:" ; cin>>age ; cout<<"职工的月薪为:"<<pay()<<endl ; } }; //推销员 class bagman :public business { public : int phpay ; bagman :: bagman() { phpay=4 ; } void in() { cout<<"编号:"<<number<<" "<<"姓名:"<<name<<" "<<"销售额:"<<time<<" "<<"年龄:"<<age<<" "<<"职称:"<<"推销员 "<<" "<<"年薪:"<<pay()<<endl ; } int pay() { return(phpay*time); } void out() { cout<<"请输入职工的编号:" ; cin>>number ; cout<<"请输入职工的名字:" ; cin>>name ; cout<<"请输入销售额 :" ; cin>>time ; cout<<"请输入职工的年龄:" ; cin>>age ; cout<<"该职工的月薪为:"<<pay()<<endl ; } }; /////*******************************输入函数 void write1() { mgr p ; p.out(); ofstream myfile("f1.txt",ios :: binary|ios :: ate); //与ios::app|ios::out)均可 myfile.write((char*)&p,sizeof p); myfile.close(); } void write2() { technician p ; p.out(); ofstream myfile("f2.txt",ios :: binary|ios :: ate); //与ios::app|ios::out)均可 myfile.write((char*)&p,sizeof p); myfile.close(); } void write3() { sell p ; p.out(); ofstream myfile("f6.txt",ios :: binary|ios :: ate); //与ios::app|ios::out)均可 myfile.write((char*)&p,sizeof p); myfile.close(); } void write4() { bagman p ; ofstream myfile("f7.txt",ios :: binary|ios :: ate); //与ios::app|ios::out)均可 p.out(); myfile.write((char*)&p,sizeof p); myfile.close(); } void build() { cout<<endl ; cout<<" ******************请选择职工的信息****************** "<<endl ; cout<<" ** 1.经理 ** "<<endl ; cout<<" ** 2.技术人员 ** "<<endl ; cout<<" ** 3.销售经理 ** "<<endl ; cout<<" ** 4.推销员 ** "<<endl ; cout<<" **************************************************** "<<endl ; char ch ; cin>>ch ; while(ch!='N'&&ch!='n') { switch(ch) { case '1' : write1(); break ; case '2' : write2(); break ; case '3' : write3(); break ; case '4' : write4(); break ; default : cout<<"ERROR!!"<<endl ; break ; } cout<<"是否继续输入:(Y/N)?"; cin>>ch ; if(ch=='Y'||ch=='y') { cout<<"请输入1~4:"<<endl ; cin>>ch ; } } } //*************************************显示函数 void show1() { ifstream myfile("f1.txt",ios :: binary|ios :: out|ios :: in); mgr p ; myfile.read((char*)&p,sizeof p); while(!myfile.eof()) { p.in(); myfile.read((char*)&p,sizeof p); } myfile.close(); } void show2() { ifstream myfile("f2.txt",ios :: binary|ios :: out|ios :: in); technician p; myfile.read((char*)&p,sizeof p); while(!myfile.eof()) { p.in(); myfile.read((char*)&p,sizeof p); } myfile.close(); } void show3() { ifstream myfile("f6.txt",ios :: binary|ios :: out|ios :: in); sell p ; myfile.read((char*)&p,sizeof p); while(!myfile.eof()) { p.in(); myfile.read((char*)&p,sizeof p); } myfile.close(); } void show4() { ifstream myfile("f7.txt",ios :: binary|ios :: out|ios :: in); bagman p ; myfile.read((char*)&p,sizeof p); while(!myfile.eof()) { p.in(); myfile.read((char*)&p,sizeof p); } myfile.close(); } void show0() { show1(); show2(); show3(); show4(); } void show() { cout<<" **********************你正在显示********************"<<endl ; cout<<" ** 0.全显 **"<<endl ; cout<<" ** 1.经理 **"<<endl ; cout<<" ** 2.技术人员 **"<<endl ; cout<<" ** 3.销售经理 **"<<endl ; cout<<" ** 4.推销员 **"<<endl ; cout<<" ****************************************************"<<endl ; char c ; cin>>c ; while(c!='N'&&c!='n') { switch(c) { case '1' : show1(); break ; case '2' : show2(); break ; case '3' : show3(); break ; case '4' : show4(); break ; case '0' : show0(); break ; default : cout<<"ERROR!!"<<endl ; break ; } cout<<"是否继续显示(Y/N)?"<<endl ; cin>>c ; if(c=='Y'||c=='y') { cout<<"请选择你要显示的职工类:"<<endl ; cin>>c ; } } } //************************查找函数 void search1() { int m=1; cout<<"请输入你要查找的编号:"<<endl ; int number ; cin>>number ; ifstream myfile("f1.txt",ios :: binary|ios :: out|ios :: in); mgr p ; myfile.read((char*)&p,sizeof p); while(!myfile.eof()) { if(number==p.number) { p.in(); myfile.close(); m=0; } myfile.read((char*)&p,sizeof p); } if(m) cout<<"查无此人!!!!"<<endl ; } void search2() { int m=1; cout<<"请输入你要查找的编号:"<<endl ; int number ; cin>>number ; ifstream myfile("f2.txt",ios :: binary|ios :: out|ios :: in); technician p ; myfile.read((char*)&p,sizeof p); while(!myfile.eof()) { if(number==p.number) { p.in(); myfile.close(); m=0; } myfile.read((char*)&p,sizeof p); } if(m) cout<<"查无此人!!!!"<<endl ; } void search3() { int m=1; cout<<"请输入你要查找的编号:"<<endl ; int number ; cin>>number ; ifstream myfile("f6.txt",ios :: binary|ios :: out|ios :: in); sell p ; myfile.read((char*)&p,sizeof p); while(!myfile.eof()) { if(number==p.number) { p.in(); myfile.close(); m=0; } myfile.read((char*)&p,sizeof p); } if(m) cout<<"查无此人!!!!"<<endl ; } void search4() { int m=1; cout<<"请输入你要查找的编号:"<<endl ; int number ; cin>>number ; ifstream myfile("f7.txt",ios :: binary|ios :: out|ios :: in); bagman p ; myfile.read((char*)&p,sizeof p); while(!myfile.eof()) { if(number==p.number) { p.in(); myfile.close(); m=0; } myfile.read((char*)&p,sizeof p); } if(m) cout<<"查无此人!!!!"<<endl ; } void search() { cout<<" *********************你正在查找*********************"<<endl ; cout<<" ** 1.经理 **"<<endl ; cout<<" ** 2.技术人员 **"<<endl ; cout<<" ** 3.销售经理 **"<<endl ; cout<<" ** 4.推销员 **"<<endl ; cout<<" ****************************************************"<<endl ; char c ; cin>>c ; while(c!='N'&&c!='n') { switch(c) { case '1' : search1(); break ; case '2' : search2(); break ; case '3' : search3(); break ; case '4' : search4(); break ; default : cout<<"ERROR!!"<<endl ; break ; } cout<<"是否继续查找(Y/N)?" ; cin>>c ; if(c=='Y'||c=='y') { cout<<"请选你的职称类型:"<<endl ; cin>>c ; } } } ///*****************修改函数 void repair1(void) { int num,i=0,k=0 ; mgr*p1=new mgr[50]; cout<<"请输入你要修改的编号:" ; cin>>num ; ifstream h1("f1.txt",ios :: binary|ios :: in); h1.read((char*)&p1[i],sizeof p1[i]); while(!h1.eof()) { i++; h1.read((char*)&p1[i],sizeof p1[i]); } h1.close(); k=i ; for(i=0;i<k;i++) { if(num==p1[i].number) { p1[i].out(); cout<<"修改完毕!"<<endl ; } } ofstream h2("f1.txt",ios :: binary|ios :: out); for(i=0;i<k;i++) { h2.write((char*)&p1[i],sizeof p1[i]); } h2.close(); delete[]p1 ; } void repair2(void) { int num,i=0,k=0 ; technician*p2=new technician[50]; cout<<"请输入你要修改的编号:" ; cin>>num ; ifstream h2("f2.txt",ios :: binary|ios :: in); h2.read((char*)&p2[i],sizeof p2[i]); while(!h2.eof()) { i++; h2.read((char*)&p2[i],sizeof p2[i]); } h2.close(); k=i ; for(i=0;i<k;i++) { if(num==p2[i].number) { p2[i].out(); cout<<"修改完毕!"<<endl ; } } ofstream h1("f2.txt",ios :: binary|ios :: out); for(i=0;i<k;i++) { h1.write((char*)&p2[i],sizeof p2[i]); } h1.close(); delete[]p2 ; } void repair3(void) { int num,i=0,k=0 ; sell*p6=new sell[50]; cout<<"请输入你要修改的编号:" ; cin>>num ; fstream h6("f6.txt",ios :: binary|ios :: out|ios :: in); h6.read((char*)&p6[i],sizeof p6[i]); while(!h6.eof())- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人员 信息管理 系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文