C++课程设计-企业员工工资管理系统(共20页).doc
-
资源ID:11384963
资源大小:2MB
全文页数:20页
- 资源格式: DOC
下载积分:20金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
C++课程设计-企业员工工资管理系统(共20页).doc
精选优质文档-倾情为你奉上重庆科技学院面向对象程序设计课程设计报告 学 院:_电气与信息工程学院_ 专业班级: 学生姓名: 学 号: 设计地点(单位)_ _ 计算机基础自主学习中心 _ _ _ 设计题目:_ _公司员工信息管理系统设计 完成日期:2013年 1 月 16 日 指导教师评语: _ _ 成绩(五级记分制):_ 指导教师(签字):_ 专心-专注-专业摘要在市场竞争化日益严剧的今天,良好的公司人员信息管理系统越来越被人们所需要。人员的来去,职位的升迁,薪水的统计等等,这一切在用以往的人力统计的方式来解决已经不适合于拥有上万职工的大型企业,拥有良好的管理系统已经成为企业成功的必需品。论文对公司人员管理系统的介绍,使用类的思想加以链表的方式来实现,把公司人员的信息都存入链表中。其中拥有添加员工信息,删除员工信息、修改员工信息、查询员工信息等功能,以帮助用户更方便快捷的管理员工信息。关键字:管理系统 类 链表重庆科技学院课程设计任务书设计题目:公司员工信息管理系统设计学生姓名课程名称面向对象程序设计专业班级计科1102地 点I306起止时间2013年1月7日1月18日设计内容及要求1)问题描述某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。设计一程序能够对公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。2)功能要求(1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。(6)统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数,或者统计男、女员工的数量等信息。3)问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。设计参数(1)系统分析、设计正确。(2)结果以图表方式显示。(3)界面简洁、美观。(4)报告格式规范。进度要求周一:明确设计任务,学习相关基础知识周二:熟悉各知识点,进行基础练习周三:根据题目要求,进行设计和实现周四:根据题目要求,进行设计和实现周五:程序测试参考资料1Richard Johnsonbaugh. Martin Kalin.面向对象程序设计C+语言描述.机械工业出版社.2009年2钱能.+语言程序设计教程.清华大学出版社.2005年其它说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师:裴仰军/伍建全/焦晓军/陈应祖 2013年1月1日目 录第一章 软件需求分析说明书1.1问题描述某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。设计一程序能够对公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。12功能要求1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;3)显示功能:可显示当前系统中所有记录,每条记录占据一行。4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。6)统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数,或者统计男、女员工的数量等信息。第二章 系统分析与设计2.1 软件界面设计图2.1 主界面系统主界面,用户可以输入05进行选择。图2.2 添加信息界面输入1添加员工详细信息图2.3 删除界面输入2进入删除界面,输入你要删除的编号进行删除图2.4 修改界面输入3进行修改,先输入编号进行确定,再进行删除。图2.5 退出界面输入0退出系统。2.2 软件的数据(结构)设计对整个软件使用的文件功能、文件内部的数据格式进行说明void Worker:Recordinfo(int num1,string name1,int age1,string sex1,string department1,float wage1) ofstream file1("info1.txt",ios:app);file1<<"员工编号:"<<num1<<" 员工姓名:"<<name1<<" 员工年级:"<<age1<<"员工性别:"<<sex1<<"员工职位:"<<department1<<"员工薪水:"<<wage1<<endl;file1.close();用追加的方式打开字符流,将文件写到info1.txt文件中。2.3 软件的算法设计主菜单修改员工信息查找员工信息输出全体员工信息删除员工信息添加员工信息退出图2.6系统框架图当进入主界面后会有选择菜单,你可以根据需要进行选择:0-5,当你完成操作后可以退回到主界面,也可以直接退出系统。第三章 软件的实现3.1添加员工信息使用void AddItem(int,string,int,string,string,float)函数进行员工的添加。if(!head)/首先创建链表,对链表进行初始化head=new Worker_pay;head->num=num1;head->name=name1;head->age=age1;head->sex=sex1;head->department=department1;head->wage=wage1;head->next=NULL;return;Worker_pay * t=head;while(t&&t->num!=num1)t=t->next;if(t) /判断储存编号是否存在cout<<"操作失败;员工编号为"<<num1<<"的信息已经存在!"<<endl;return;Worker_pay * p=head;while(p->next)p=p->next;Worker_pay * p1=new Worker_pay;/将成员信息加入到链表中p1->num=num1;p1->name=name1;p1->age=age1;p1->sex=sex1;p1->department=department1;p1->wage=wage1;p1->next=NULL;p->next=p1;return;3.2删除员工信息使用void RemoveItem(int)函数进行成员信息的删除,由于成员编号的唯一性,可以直接比较编号,找到后直接删除该信息。Worker_pay * Worker:Find(int num) /寻找成员 if(ListCount=0)cout<<"列表为空,请先输入数据!"<<endl;return NULL;Worker_pay * p=head;while(p)if(p->num=num) break;p=p->next;if(!p)cout<<"错误,找不到该信息!"<<endl;return NULL;return p;Worker_pay * t=Find(num);if(!t)return;Worker_pay * p=head;if(head=t) /判断是不是第一个元素head=head->next;delete p;cout<<"成功删除员工编号为"<<num<<"的信息!"<<endl;returnwhile(p->next!=t) /遍历链表,找到信息后删除p=p->next;Worker_pay * p1=p->next;p->next=p1->next;delete p1;cout<<"成功删除员工编号为"<<num<<"的信息!"<<endl;3.3修改员工信息使用void ReplaceItem(int)函数进行员工信息的修改 ,利用编号唯一性寻找到该成员,然后修改。 Worker_pay * p=Find(num); / 寻找到该成员if(!p)return;cout<<"请重新输入相应信息"<<endl;cout<<"员工编号:"cin>>p->num;cout<<"员工姓名:"cin>>p->name;3.4查找员工信息利用void Search(int)函数进行信息的查找。 Worker_pay * p=Find(num);if(p)cout<<"员工编号为"<<num<<"的员工工资信息:"<<endl;cout<<"员工编号 员工姓名 年龄 性别 职位 工资"<<endl;Display(p);cout<<endl;3.5显示员工信息用void ListL()函数进行遍历链表,并输出信息。float sum=0;float aver=0;int n=0;if(ListCount=0)cout<<"当前列表为空,请先输入数据!"<<endl;return;Worker_pay * p=head;while(p) Display(p);n+;sum+=p->wage;p=p->nextreturn;第四章 软件使用说明书4.1 主界面图2.7 主界面用户可以根据需要进行系统功能的使用,输入1-5进入使用,输入0退出系统4.2添加信息图2.8 添加信息输入1进入添加信息功能,输入你所要添加的信息,输入信息完毕之后根据需要是否要继续添加,需要继续添加,不需要输入-1,返回主界面4.3删除信息图2.9删除信息输入2进入添加信息功能,输入你所要删除的信息,输入信息完毕之后可以看见删除成功,继续删除输入编号,不需要输入-1,返回主界面。4.4修改信息 图2.10修改信息输入3进入修改信息功能,输入你所要修改的信息,输入信息完毕之后可以看见修改成功,继续修改输入编号,不需要输入-1,返回主界面。4.5查找信息图2.11 查找信息输入4进入查找信息功能,输入你所要查找的信息,输入信息完毕之后可以看见信息输出,继续查询输入编号,不需要输入-1,返回主界面。4.6显示员工信息图2.12 显示员工信息输入5进入显示信息功能,屏幕输出所有成员信息,输入-1返回主界面。4.7退出界面 图2.13 退出界面4.8 保存文本图2.14保存文本五 总结通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。要继续努力。致谢 感谢老师给予我C+课程的教导,感谢同学等给予我的帮助。非常感谢。参考文献1 严蔚敏 吴伟民 数据结构(C语言版)清华大学出版社,20002 陈天华编.面向对象程序设计与Visual C+6.0教程M.北京:清华大学出版社,2006