人员信息管理系统论文.doc

上传人:教**** 文档编号:87912717 上传时间:2023-04-18 格式:DOC 页数:41 大小:495KB
返回 下载 相关 举报
人员信息管理系统论文.doc_第1页
第1页 / 共41页
人员信息管理系统论文.doc_第2页
第2页 / 共41页
点击查看更多>>
资源描述

《人员信息管理系统论文.doc》由会员分享,可在线阅读,更多相关《人员信息管理系统论文.doc(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、北华航天工业学院课程设计报告北 华 航 天 工 业 学 院基于C+的面向对象程序设计实例课程设计报告报告题目: 公司人员信息管理系统 作者所在系部: 计算机系 作者所在专业: 计算机科学与技术 作者所在班级: 作 者 姓 名 : 指导教师姓名: 完 成 时 间 : 2009-6-25 北华航天工业学院教务处制摘 要在当前的市场经济体制下,企业要想提高市场的竞争力,不但要有好的产品,同时内部也要有科学的管理和劳动报酬的合理分配,就必须拥有一套完善的并且适合自身特点的信息化管理系统,以统计公司员工的信息、完善内部管理、明确各员工的分工、使劳动报酬的分配更合理、更便于操作。本文利用VC+6.0编写程

2、序,实现了公司对员工个人信息的统计和工资的计算。本程序将员工的信息存储在文本文档中(txt格式),便于对员工信息的浏览。本系统主要有五个功能模块:添加员工信息、查询员工信息、修改员工信息、删除员工信息、显示员工信息。已经过全面的系统测试,能够很好的运行,达到了预期的效果。关键词:程序设计 公司信息管理 文本文档 工资计算目 录摘要 第1章 绪 论1.1 课程设计的目的 11.2课程设计的背景和意义 11.2.1课程设计的背景 1 1.2.2课程设计的意义 1 1.3课程设计环境 1 第2章 需求分析 2 21 问题描述 2 22 功能要求 2 23 问题的解决方案 2第3章 系统设计 3 31

3、 数据设计 3 311 类设计 3 312 类之间的关系 3 313 函数设计 3 32 结构设计 4 321 系统流程图 4 322 界面设计 8 第4章 系统实现 8 41 类实现 8 42 函数实现 9 43 主函数实现 18 第5章 系统测试 195.1模块测试 195.2课程设计过程中遇到的问题 26总结 26致谢 26参考文献 26附录 27第一章 绪论11 课程设计的目的(1)要求学生达到熟练掌握C+语言的基本知识和技能(2)基本掌握面向对象程序设计的基本思路和方法(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。12 课程设计的背景和意义121 课程设计的背景

4、 1. 理论研究基础本次课程设计,主要研究类的继承、友员函数、函数的调用以及对文件进行各项操作(如添加、修改、删除、查询、显示等)。这次课程设计应用面向对象的程序设计思路,着重使用在C+中对文本文件进行添加、查找、删除、修改等操作。根据公司中不同员工工资的不同计算方法计算并储存员工的工资及其他信息。2. 技术层面的支持 (1)C+面向对象程序设计中类的多重继承和多级继承 (3)C+ I/O流库的处理,文本文件的创建与保存。 (4)VC6.0软件122 课程设计的意义通过设计能熟练掌握了C+语言的基本知识和技能、解决简单的面向对象程序设计问题、掌握面向对象程序设计的基本思路和方法、能熟练运用面向

5、对象的方法以及C+的编程思想来完成系统的设计。13 课程设计环境Windows xp 操作系统。CPU P4 1.6GHz,内存256兆以上。VC6.0第二章 需求分析21 问题描述某公司需要存储雇员的编号、姓名、级别和月薪,并显示全部信息。雇员分为经理、技术人员、销售人员和销售经理。四类人员的月薪计算方法如下:经理拿固定月薪8000元;技术人员按每小时100元领取月薪;销售人员按其当月销售额的4领取工资;销售经理既拿固定月薪也领取销售提成,固定月薪为5000元,销售提成为销售总额的5。设计一程序能够对公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。22 功

6、能要求1.本程序完成的功能主要有:(1)显示雇员信息。(2)添加雇员信息,并保存。(3)删除雇员信息,并保存。(4)修改雇员信息,并保存。(5)查询雇员信息。(6)系统退出。2.学生在完成本次课程设计的基本要求后,从便于用户使用和功能完整性的角度考虑进一步完善程序,请参照题目1和2的要求。23 问题的解决方案1.应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;2.分析系统中的各个实体及它们之间的关系; 3.根据问题描述,设计系统的类层次; 4.完成类层次中各个类的描述; 5.完成类中各个成员函数的定义; 6.完成系统的应用模块; 7.功能调试; 8.完成系统总结报告。第三章 系统设

7、计31 数据设计311 类设计 本程序中共定义了五个类:stuff(员工基类),manager(经理类),technician(技术人员类),seller(销售人员类),sellmanager(销售经理类)。stuff(员工基类)数据成员有:name(姓名),sex(性别),num(编号),monpay(月薪);成员函数有:void display1();(输出函数)void getin_0();(读入姓名,编号,性别)void getin_();(从文件中读取数据的函数)friendvoidgetin1(manager*p_manager1,int &i1);(从文件中读取经理数据)frie

8、nd void getin1(technician*p_technician1,int &j1); (从文件中读取技术人员数据)friend void getin1(seller*p_seller1,int &m1); (从文件中读取销售人员数据)friend void getin1(sellmanager*p_sellmanager1,int &n1); (从文件中读取销售经理数据)friend void putout1(manager*p_manager1,int &i1); (向文件中输出经理数据)friend void putout1(technician*p_technician1,

9、int &j1); (向文件中输出技术人员数据)friend void putout1(seller*p_seller1,int &m1); (向文件中输出销售人员数据)friend void putout1(sellmanager*p_sellmanager1,int&n1); (向文件中输出销售经理数据)。manager(经理类)数据成员:pay(固定工资);成员函数:void getin_1();(计算经理的月薪)。technician(技术人员类)数据成员:hour(工作时间);成员函数:void getin_2();(计算技术人员的月薪)。seller(销售人员类)数据成员:mark

10、et(月销售额)rate(提成率),dedu(提成);成员函数:void getin_2();(计算销售人员的月薪),sellmanager(销售经理类)成员函数:void wages();(计算销售经理的月薪)。上述类中的数据成员均是私有的,有利于数据的保护,成员函数为共有的。312 类之间的关系 manager(经理类),technician(技术人员类),seller(销售人员类)共有继承stuff(员工基类);sellmanager(销售经理类)共有继承manager(经理类),seller(销售人员类)员工基类中有公有的数据:姓名,性别,编号,月薪。公有的基本输入输出函数。销售经理的

11、工资计算方法好是销售人员和经理的工资之和。313 函数设计add(manager1,technician1,seller1,sellmanager1,i,j,m,n);(添加功能的实现)check(manager1,technician1,seller1,sellmanager1);(查询功能的实现)delet(manager1,technician1,seller1,sellmanager1);(删除功能的实现)change(manager1,technician1,seller1,sellmanager1);(修改功能的实现)p=esc();(退出功能的实现)realize();(调用各个

12、功能函数)32 结构设计321 系统流程图stuff员工基类manager经理类technician技术人员类seller销售人员类图31sellmanager销售经理类seller销售人员类manager经理类图32stuff员工基类void display1();输出函数void getin_0();输入函数voidgetin1(manager*,int);voidgetin1(technician*,int);voidgetin1(seller*,int);voidgetin1(sellmanager*,int1);从文件中读取数据void putout1(manager*,int);v

13、oidputout1(technician*,int);void putout1(seller* 1,int);voidputout1(sellmanager*,int)向文件中输出数据图33 manager经理类void getin_1();计算经理月薪继承员工基类中的公有成员函数图34 technician技术人员类void getin_2();计算技术人员月薪继承员工基类中的公有成员函数 图35 seller销售人员void getin_3();计算销售人员月薪继承员工基类中的公有成员函数图36sellmanager销售经理公有继承经理类(manager)的公有函数公有继承销售人员类(s

14、eller)的公有函数计算销售经理的工资(wages函数)图37322 界面设计 主菜单是一个功能选择菜单,里面包含了选择时各个功能的代号,由该语句输出cout 添加,查询,删除,修改,退出 endl;cout请输入需要进行的操作的代号:endl;子菜单的作用是选择不同的员工由该语句输出cout经理1,技术人员2,销售人员3,销售经理4endl;第四章 系统实现41 类实现class stuffprotected:string name,sex;/定义姓名,性别,学号,月薪的变量int num,monpay;public:void display1();void getin_0();void

15、getin_();friend void getin1(manager*p_manager1,int &i1);friend void getin1(technician*p_technician1,int &j1);friend void getin1(seller*p_seller1,int &m1);friend void getin1(sellmanager*p_sellmanager1,int &n1);friend void putout1(manager*p_manager1,int &i1);friend void putout1(technician*p_technician

16、1,int &j1);friend void putout1(seller*p_seller1,int &m1);friend void putout1(sellmanager*p_sellmanager1,int &n1);/*定义经理类*/class manager:virtual public stuffprotected: int pay;/固定工资public: void getin_1();/计算经理月薪;/*定义技术人员类*/class technician:public stuffprivate:int hour;/工作时间public:void getin_2();/计算技术

17、人员月薪;/*定义销售人员类*/class seller :virtual public stuffprotected:int market;/月销售额float rate,dedu;/提成百分比,提成public:void getin_3();/计算销售人员月薪;/*定义销售经理类*/class sellmanager :public seller,public manager public:void wages();/计算销售经理月薪;42 函数实现/*类函数的定义*/void stuff:display1()cout姓名 编号 性别 月薪endl;coutname num sex mon

18、payendl;void stuff:getin_0() cout依次输入姓名,编号,性别namenumsex;void stuff:getin_()cinnamenumsexmonpay;void manager: getin_1()cout输入固定月薪pay;monpay=pay;void technician: getin_2()cout输入技术人员工作时间(单位:小时)hour;monpay=100*hour;void seller:getin_3()cout输入销售人员的月销售额和提成百分比或销售经理的销售总额和提成百分比marketrate;dedu=rate*market;mon

19、pay=dedu;void sellmanager:wages()monpay=pay+dedu;/*从文件中读取数据*/void getin1(manager*p_manager1,int &i1) ifstream infile1(经理.txt,ios:in ); if(!infile1) cerr经理文件打开失败(p_manager1+i1)-name(p_manager1+i1)-num(p_manager1+i1)-sex(p_manager1+i1)-monpay; infile1.close();void getin1(technician*p_technician1,int &

20、j1) ifstream infile2(技术人员.txt,ios:in ); if(!infile2) cerr技术人员文件打开失败(p_technician1+j1)-name(p_technician1+j1)-num(p_technician1+j1)-sex(p_technician1+j1)-monpay; infile2.close();void getin1(seller*p_seller1,int &m1) ifstream infile3(销售人员.txt,ios:in ); if(!infile3) cerr销售人员文件打开失败(p_seller1+m1)-name(p_

21、seller1+m1)-num(p_seller1+m1)-sex(p_seller1+m1)-monpay; infile3.close();void getin1(sellmanager*p_sellmanager1,int &n1) ifstream infile4(销售经理.txt,ios:in ); if(!infile4) cerr销售经理文件打开失败(p_sellmanager1+n1)-name(p_sellmanager1+n1)-num(p_sellmanager1+n1)-sex(p_sellmanager1+n1)-monpay; infile4.close();/*向

22、文件中输出数据*/void putout1(manager*p_manager1,int &i1)int t; ofstream outfile1(经理.txt,ios:out);if(!outfile1)cerr输出文件打开失败endl;exit(1);for(t=0;ti1;t+)outfile1name num sex monpayendl; outfile1.close();void putout1(technician*p_technician1,int &j1)int t; ofstream outfile2(技术人员.txt,ios:out);if(!outfile2)cerr输

23、出文件打开失败endl;exit(1);for(t=0;tj1;t+)outfile2name num sex monpayendl;outfile2.close();void putout1(seller*p_seller1,int &m1)int t; ofstream outfile3(销售人员.txt,ios:out);if(!outfile3)cerr输出文件打开失败endl;exit(1);for(t=0;tm1;t+)outfile3name num sex monpayendl;outfile3.close();void putout1(sellmanager*p_sellma

24、nager1,int &n1)int t; ofstream outfile4(销售经理.txt,ios:out);if(!outfile4)cerr输出文件打开失败endl;exit(1);for(t=0;tn1;t+)outfile4name num sex monpayendl;outfile4.close();/*定义添加功能函数*/void add(manager *p_manager1,technician *p_technician1,seller *p_seller1,sellmanager *p_sellmanager1,int &i1,int &j1,int &m1,int

25、 &n1)int str;cout经理1,技术人员2,销售人员3,销售经理4endl;cout输入要添加的员工的职称代号:str;if(str=1)cout即将添加的经理的编号:i1-1getin_0();(p_manager1+i1-1)-getin_1();(p_manager1+i1-1)-display1();else if(str=2)cout即将添加的技术人员的编号:j1-1getin_0();(p_technician1+j1-1)-getin_2();(p_technician1+j1-1)-display1();else if(str=3)cout即将添加的销售人员的编号:m

26、1-1getin_0();(p_seller1+m1-1)-getin_3();(p_seller1+m1-1)-display1();else if(str=4)cout即将添加的销售经理的编号:n1-1getin_0();(p_sellmanager1+n1-1)-getin_1();(p_sellmanager1+n1-1)-getin_3();(p_sellmanager1+n1-1)-wages();(p_sellmanager1+n1-1)-display1();else cout请输入正确的职称!endl;/*定义查询功能函数*/void check(manager *p_man

27、ager1,technician *p_technician1,seller *p_seller1,sellmanager *p_sellmanager1)int t,str;cout经理1,技术人员2,销售人员3,销售经理4endl;cout请依次输入需要查询的员工的职称代号及其编号:strt;if(str=1)(p_manager1+t)-display1();else if(str=2)(p_technician1+t)-display1();else if(str=3)(p_seller1+t)-display1();else if(str=4)(p_sellmanager1+t)-d

28、isplay1();elsecout请输入正确的职称及编号!endl;/*定义删除函数*/void delet(manager *p_manager1,technician *p_technician1,seller *p_seller1,sellmanager *p_sellmanager1)int t,str;cout经理1,技术人员2,销售人员3,销售经理4endl;cout请依次输入需要删除信息的员工的职称代号及其编号:strt;cout将该员工的姓名,性别改为“无”;其与工资相关的数据改为:“0”;员工的编号保持不变!endl;if(str=1) cout先输出以前信息:displa

29、y1(); (p_manager1+t)-getin_0(); (p_manager1+t)-getin_1(); cout再输出删除后的信息:display1();else if(str=2) cout先输出以前信息:display1(); (p_technician1+t)-getin_0(); (p_technician1+t)-getin_2(); cout再输出删除后的信息:display1();else if(str=3)cout先输出以前信息:display1();(p_seller1+t)-getin_0();(p_seller1+t)-getin_3();cout再输出删除后

30、的信息:display1();else if(str=4)cout先输出以前信息:display1();(p_sellmanager1+t)-getin_0();(p_sellmanager1+t)-getin_1();(p_sellmanager1+t)-getin_3(); (p_sellmanager1+t)-wages();cout再输出删除后的信息:display1();else cout请输入正确职称及编号!endl;/*定义修改信息函数*/void change(manager *p_manager1,technician *p_technician1,seller *p_seller1,sellmanager *p_sellmanager1)int t,str;cout经理1,技术人员2,销售人员3,销售经理4endl;cout请依次输入需要更改信息的员工的职称代号及其编号:strt;if(str=1) cout先输出以前信息:display1(); cout编号不变!getin_0(); (p_manager1+t)-getin_1();else if(str=2) cout先输出以前信息:display1(); cout编号不变!getin_0(); (p_technician1+t)-getin_2();else if(str=3)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁