《最新C++小型公司员工信息管理系统设计报告要点.doc》由会员分享,可在线阅读,更多相关《最新C++小型公司员工信息管理系统设计报告要点.doc(38页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC+小型公司员工信息管理系统设计报告要点上海电机学院高职学院C+程序设计语言上学期课 程 设 计 报 告(2011 -2012第1学期)课程设计类型:C语言程序设计题目:人员信息管理系统学号:姓名:专业:计算机应用基础 指导教师:课程设计日期:2012.12.23-2012.12.27.目 录1. 问题分析12. 总体设计12.1 功能分析13. 详细设计23.1 程
2、序结构图23.2 程序类结构图23.3 程序类结构图34. 功能测试44.1 本系统的主界面44.2 录入功能的主界面44.3 显示功能的主界面54.4 查找功能的主界面54.5 修改功能的主界面64.6 删除功能的主界面64.7 清理功能的主界面74.8 退出功能的主界面75. 课设小结7参 考 文 献8附录:源代码清单8-1. 问题分析1.1 问题描述1.题目人员信息管理系统设计2.设计说明与要求(1) 公司主要有4类人员:经理、技术人员、销售员、销售经理,要求存储这些人的姓名、年龄、工资信息。(2) 工资的计算方法A、 经理:固定为8000元;B、 技术员:工作时间*每小时酬金(100R
3、MB);C、 销售员:4%提成;D、 销售经理:1%提成+固定工资(5000RMB);(3) 实现功能 录入:输入各种数据,并录入TXT文件保存; 显示:显示员工的数据信息; 查找:查找员工的数据信息; 修改:修改员工的数据信息; 删除:删除员工的数据信息; 退出:退出本系统; 清理存储文件:清理系统产生的TXT文件;2. 总体设计2.1 功能分析使用面向对象的程序设计思想进行分析,整个系统涉及两大类信息和操作,公司,人员。所以系统主要涉及两个大类:公司类business、人员类person。系统的总体框架就是公司类,人员类的定义;主函数中定义一个公司对象,循环显示主菜单并根据用户选择调用公司
4、类的相应方法(成员函数)。3. 详细设计3.1 程序结构图雇员类技术员类经理类销售员类类销售经理类3.2 程序类结构图Person类char name20;char post20;char hour20;int age;int number;void in;void pay;void out;Sell类int phpay;int monthpay;;void in;void pay;void out;Technician类int hourlyRate;int workHours;void in;void pay;void out;Business类int time;void in;void p
5、ay;void out;Sell类int phpay;int monthpay;void in;void pay;void out;Bagman类int phpay;void in;void pay;void out;3.3 程序类结构图开始输入选择Switch(c)Case 6结束删除员工信息Case 1Case 4Case 2Case 5Case 3Case 0修改员工信息查找员工信息显示员工信息录入员工信息删除存储文件4. 功能测试4.1 本系统的主界面4.2 录入功能的主界面4.3 显示功能的主界面4.4 查找功能的主界面4.5 修改功能的主界面4.6 删除功能的主界面4.7 清理功能
6、的主界面4.8 退出功能的主界面5. 课设小结根据课程设计的要求,我思考出了自己的课题,我用本学期所学的C+面向对象的知识来编写程序。我利用面向对象的方法以及C+的编程思想来完成系统的设计,在设计的过程中,建立清晰的层次,当然在调试过程中我也遇到了许多问题。本程序由雇员这个基类派生出多个派生类,并且调用多个函数。主函数主要运用选择结构。派生类中的保护类数据要通过定义公有类型的函数来从类外调用。和一些相当复杂的算法,自己看了都乱,头都晕。不过,我相信,不经历风雨怎么能见彩虹。在解决了这一切后,我有一种:天将降大任于斯人也,必先劳其筋骨,饿其体肤的感觉!参 考 文 献1. 钱能主编,C+程序设计教
7、程,清华大学出版社,2000.112. 戴锋编著,Visual C+程序设计基础,清华大学出版社,2001.43. 施平安主编,C+程序设计教程(第四版),清华大学出版社,2004.34. 林丽闽主编,标准C+程序设计教程,电子工业出版社,2003.6.15. 谭浩强主编,C+程序设计,清华大学出版社,2004.6附录:源代码清单#include#include#include#include#includeclass person public:char name20,post20,hour20; int age,number; ;class business :public person
8、public : int time; ; /经理class mgr : public person public: int monthpay; mgr : mgr() monthpay=8000 ; void out() coutnumber ; coutname ; coutage ; cout该职工的月薪为:monthpayendl; void in() cout编号:number 姓名:name 年龄:age 职称:经理 月薪:monthpayendl; ;/技术人员class technician :public person public:int hourlyRate ; /每小时酬
9、金int workHours ; /当月工作时数 int pay;technician : technician() hourlyRate=100 ; ; void in() cout编号:number 姓名:name 年龄:age 职称:技术人员 月薪:payendl ; void out() coutnumber ; coutname ; coutworkHours ; coutage ; pay=hourlyRate*workHours; cout该职工的月薪为:payendl; ; /销售经理class sell :public business public: int phpay,m
10、onthpay; sell : sell() phpay=1,monthpay=5000; void in() cout编号:number 姓名:name 销售额:time 年龄:age 职称:销售经理 月薪:pay()endl ; int pay() return(phpay*time+monthpay); void out() coutnumber ; coutname ; couttime ; coutage ; cout职工的月薪为:pay()endl; ;/推销员 class bagman :public business public: int phpay ; bagman : b
11、agman() phpay=4; void in() cout编号:number 姓名:name 销售额:time 年龄:age 职称:推销员 年薪:pay()endl ; int pay() return(phpay*time); void out() coutnumber ; coutname ; couttime ; coutage ; cout该职工的月薪为:pay()endl; ;/输入函数void write1()mgr p;p.out();ofstream myfile(f1.txt,ios : binary|ios : ate);myfile.write(char*)&p,si
12、zeof p); myfile.close(); void write2() technician p; p.out(); ofstream myfile(f2.txt,ios : binary|ios : ate); myfile.write(char*)&p,sizeof p); myfile.close();void write3() sell p; p.out(); ofstream myfile(f3.txt,ios : binary|ios : ate); myfile.write(char*)&p,sizeof p); myfile.close();void write4() b
13、agman p; ofstream myfile(f4.txt,ios : binary|ios : ate); p.out(); myfile.write(char*)&p,sizeof p); myfile.close();void build() coutendl; cout *请选择职工的信息* endl; cout * 1.经理 * endl; cout * 2.技术人员 * endl; cout * 3.销售经理 * endl; cout * 4.推销员 * endl; cout * endl;cout请输入选择:ch; while(ch!=N&ch!=n) switch(ch)
14、case 1 : write1(); break ; case 2 : write2(); break ; case 3 : write3(); break ; case 4 : write4(); break ; default : coutERROR!endl;break ; coutch;if(ch=Y|ch=y) cout请输入选择:ch; /显示函数void show1() ifstream myfile(f1.txt,ios : binary|ios : out|ios : in);mgr p;myfile.read(char*)&p,sizeof p); while(!myfil
15、e.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(f3.txt,ios : binary|ios :
16、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(f4.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); myf
17、ile.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;cout请选择你要显示的职工类:c ;while(c!=N&c!=n)switch(c)case 0 :show0();break;case 1 :show1();break;case 2 :show2();bre
18、ak;case 3 :show3();break;case 4 :show4();break;default :coutERROR!endl;break;cout是否继续使用显示功能(Y/N)?c;if(c=Y|c=y)cout请选择你要显示的职工类:c; /查找函数void search1()int m=1;cout请输入你要查找的编号:number;ifstream myfile(f1.txt,ios : binary|ios : out|ios : in);mgr p;myfile.read(char*)&p,sizeof p);while(!myfile.eof()if(number=
19、p.number)p.in();myfile.close();m=0;myfile.read(char*)&p,sizeof p);if(m)cout查无此人!endl;void search2()int m=1;cout请输入你要查找的编号: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.
20、read(char*)&p,sizeof p);if(m)cout查无此人!endl;void search3()int m=1;cout请输入你要查找的编号:number;ifstream myfile(f3.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;
21、void search4()int m=1;cout请输入你要查找的编号:number;ifstream myfile(f4.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.经理 *en
22、dl;cout * 2.技术人员 *endl;cout * 3.销售经理 *endl;cout * 4.推销员 *endl;cout *endl;cout请选择你的职称类型: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 :coutERROR!endl;break;coutc;if(c=Y|c=y)cout请选择你的职称类型:c; /修改函数void repair1(void)int
23、 num,i=0,k=0;mgr*p1=new mgr50;coutnum ;ifstream h1(f1.txt,ios : binary|ios : in);h1.read(char*)&p1i,sizeof p1i);while(!h1.eof()i+;h1.read(char*)&p1i,sizeof p1i);h1.close();k=i ;for(i=0;ik;i+)if(num=p1i.number)p1i.out(); cout修改完毕!endl ; ofstream h2(f1.txt,ios : binary|ios : out);for(i=0;ik;i+)h2.writ
24、e(char*)&p1i,sizeof p1i);h2.close();deletep1 ;void repair2(void)int num,i=0,k=0;technician*p2=new technician50;coutnum;ifstream h2(f2.txt,ios : binary|ios : in);h2.read(char*)&p2i,sizeof p2i);while(!h2.eof()i+;h2.read(char*)&p2i,sizeof p2i);h2.close();k=i ;for(i=0;ik;i+)if(num=p2i.number) p2i.out();
25、cout修改完毕!endl; ofstream h1(f2.txt,ios : binary|ios : out);for(i=0;ik;i+) h1.write(char*)&p2i,sizeof p2i);h1.close();deletep2;void repair3(void)int num,i=0,k=0;sell*p6=new sell50;coutnum ;fstream h6(f3.txt,ios : binary|ios : out|ios : in);h6.read(char*)&p6i,sizeof p6i);while(!h6.eof()i+;h6.read(char*
26、)&p6i,sizeof p6i);k=i ;h6.close();for(i=0;ik;i+)if(num=p6i.number)p6i.in();cout修改完毕!endl;ofstream h1(f6.txt,ios : binary|ios : out);for(i=0;ik;i+)h1.write(char*)&p6i,sizeof p6i);h1.close();deletep6; void repair4(void)int num,i=0,k=0 ;bagman*p7=new bagman50;coutnum;fstream h7(f4.txt,ios : binary|ios
27、: out|ios : in);h7.read(char*)&p7i,sizeof p7i);while(!h7.eof()i+;h7.read(char*)&p7i,sizeof p7i);k=i;h7.close();for(i=0;ik;i+)if(num=p7i.number)p7i.out();cout修改完毕!endl;ofstream h1(f7.txt,ios : binary|ios : out);for(i=0;ik;i+)h1.write(char*)&p7i,sizeof p7i);h1.close();deletep7; void repair()cout *你正在修
28、改*endl;cout * 1.经理 *endl;cout * 2.技术人员 *endl;cout * 3.销售经理 *endl;cout * 4.推销员 *endl;cout *endl;cout请输入你要修改的职称类型:c;while(c!=N&c!=n)switch(c) case 1 :repair1();break;case 2 :repair2();break;case 3 :repair3();break;case 4 :repair4();break;default :coutERROR!endl;break;cout是否继续修改(Y/N)?c;if(c=Y|c=y) cout
29、请输入你要修改的职称类型:c; void delete1()int i=0,number;ifstream myfile(f1.txt,ios : binary|ios : in);mgr p30;myfile.read(char*)(p+i),sizeof*p);cout请输入你要删除的对象的编号:number;while(!myfile.eof()if(number=pi.number)i-;i+;myfile.read(char*)(p+i),sizeof*p);int k=i;myfile.close();ofstream file2(f1.txt,ios : binary|ios : out);for(i=0;ik;i+) file2.write(char*)(p+i),sizeof*p);void delete2()int i=0,number ;ifstream myfile(f2.txt,ios : binary|ios : in);technician p30;myfile.read(char*)(p+i),sizeof*p);cout请输入你要删除的对象的编号:number ;while(!m
限制150内