《C课程设计企业员工工资管理系统.doc》由会员分享,可在线阅读,更多相关《C课程设计企业员工工资管理系统.doc(19页珍藏版)》请在三一文库上搜索。
1、重庆科技学院面向对象程序设计课程设计报告学院:_电气与信息工程学院 _ 专业班级 :学生姓名 :学号:设计地点(单位) _ _计算机基础自主学习中心_ _ _设计题目 :_ _ 公司员工信息管理系统设计完成日期: 2013 年 1月 16 日指导教师评语 : _成绩(五级记分制) :_指导教师(签字) :_摘要在市场竞争化日益严剧的今天, 良好的公司人员信息管理系统越来越被人们所需要。人员的来去,职位的升迁,薪水的统计等等,这一切在用以往的人力统计的方式来解决已经不适合于拥有上万职工的大型企业, 拥有良好的管理系统已经成为企业成功的必需品。论文对公司人员管理系统的介绍,使用类的思想加以链表的方
2、式来实现,把公司人员的信息都存入链表中。其中拥有添加员工信息,删除员工信息、修改员工信息、查询员工信息等功能,以帮助用户更方便快捷的管理员工信息 。关键字:管理系统 类 链表重庆科技学院课程设计任务书设计题目: 公司员工信息管理系统设计学生姓名课程名称面向对象程序设计专业班级计科1102地点I306起止时间2013 年1 月7日1月18 日设计内1)问题描述容及要求某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。设计一程序能够对公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入 /输出等内容。2)功能
3、要求( 1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。( 2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;( 3)显示功能:可显示当前系统中所有记录,每条记录占据一行。( 4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。( 5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或
4、姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。( 6)统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数,或者统计男、女员工的数量等信息。3)问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:( 1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;( 2)分析系统中的各个实体及它们之间的关系;( 3)根据问题描述,设计系统的类层次;( 4)完成类层次中各个类的描述;( 5)完成类中各个成员函数的定义;( 6)完成系统的应用模块;( 7)功能调试;( 8)完成系统总结报告。根据题目要求,运用所学知识,完成设计和实现工
5、作,并按照书写规范,撰写课程设计报告。设计(1)系统分析、设计正确。参数(2)结果以图表方式显示。( 3)界面简洁、美观。( 4)报告格式规范。进度要求周一:明确设计任务,学习相关基础知识周二:熟悉各知识点,进行基础练习周三:根据题目要求,进行设计和实现周四:根据题目要求,进行设计和实现周五:程序测试参1Richard Johnsonbaugh. Martin Kalin.面向对象程序设计C+语言描述 .考机械工业出版社 .2009 年资料2 钱能 . +语言程序设计教程. 清华大学出版社 .2005 年其它说 . 本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案, 一份明由负
6、责教师留用。. 若填写内容较多可另纸附后。3. 一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任:指导教师: 裴仰军 / 伍建全 / 焦晓军 / 陈应祖2013 年1月1日目 录第一章软件需求分析说明书11.1 问题描述11 2 功能要求1第二章系统分析与设计22.1软件界面设计22.2软件的数据(结构)设计32.3软件的算法设计4第三章软件的实现53.1 添加员工信息53.2 删除员工信息63.3 修改员工信息63.4 查找员工信息73.5 显示员工信息7第四章软件使用说明书84.1主界面84.2 添加信息84.3 删除信息94.4 修改信息94.5 查找信息104.6
7、 显示员工信息104.7 退出界面114.8保存文本11五 总结12致谢13参考文献14致谢错误!未定义书签。第一章软件需求分析说明书1.1 问题描述某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。设计一程序能够对公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入 / 输出等内容。12 功能要求1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一, 如果添加了重复编号的记录时,则提示数据添加重复并取消添加。2)查询功能:可根据编号、姓名等信
8、息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;3)显示功能:可显示当前系统中所有记录,每条记录占据一行。4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录, 如果没有找到该人员信息,则提示相应的记录不存。6)统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数,或者统计男、女员工的数量等信息。第二章系统分析与设计2.1软件界面设计
9、图 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(&quo
10、t;info1.txt",ios:app);file1<<" 员 工 编 号 :"<<num1<<"员 工 姓 名 :"<<name1<<"员 工 年级 :"<<age1<<" 员 工 性 别 :"<<sex1<<" 员 工 职 位 :"<<department1<<" 员 工 薪水 :"<<wage1<<end
11、l;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
12、=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<<" 的 信 息 已
13、 经 存在!"<<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 Remo
14、veItem(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
15、;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->
16、next;delete p1;cout<<" 成功删除员工编号为 "<<num<<"的信息 !"<<endl;3.3 修改员工信息使用 void ReplaceItem(int) 函数进行员工信息的修改 , 利用编号唯一性寻找到该成员,然后修改。Worker_pay * p=Find(num); /寻找到该成员if(!p)return;cout<<" 请重新输入相应信息 "<<endl;cout<<" 员工编号 :"cin>&
17、gt;p->num;cout<<" 员工姓名 :"cin>>p->name;3.4 查找员工信息利用void Search(int)函数进行信息的查找。Worker_pay * p=Find(num);if(p)cout<<"员工编号为 "<<num<<"的员工工资信息 cout<<" 员 工 编 号 员 工姓 名:"<<endl;年 龄性 别职 位工 资"<<endl;Display(p);cout<
18、<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 退出
19、系统4.2 添加信息图 2.8添加信息输入 1 进入添加信息功能,输入你所要添加的信息,输入信息完毕之后根据需要是否要继续添加,需要继续添加,不需要输入 -1 ,返回主界面4.3 删除信息图 2.9 删除信息输入 2 进入添加信息功能,输入你所要删除的信息,输入信息完毕之后可以看见删除成功,继续删除输入编号,不需要输入 -1 ,返回主界面。4.4 修改信息图 2.10 修改信息输入 3 进入修改信息功能,输入你所要修改的信息,输入信息完毕之后可以看见修改成功,继续修改输入编号,不需要输入 -1 ,返回主界面。4.5 查找信息图 2.11 查找信息输入 4 进入查找信息功能,输入你所要查找的信息
20、,输入信息完毕之后可以看见信息输出,继续查询输入编号,不需要输入 -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