小型公司工资管理系统设计课设报告.doc

上传人:文库蛋蛋多 文档编号:3779618 上传时间:2023-03-21 格式:DOC 页数:46 大小:225KB
返回 下载 相关 举报
小型公司工资管理系统设计课设报告.doc_第1页
第1页 / 共46页
小型公司工资管理系统设计课设报告.doc_第2页
第2页 / 共46页
小型公司工资管理系统设计课设报告.doc_第3页
第3页 / 共46页
小型公司工资管理系统设计课设报告.doc_第4页
第4页 / 共46页
小型公司工资管理系统设计课设报告.doc_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《小型公司工资管理系统设计课设报告.doc》由会员分享,可在线阅读,更多相关《小型公司工资管理系统设计课设报告.doc(46页珍藏版)》请在三一办公上搜索。

1、基于C+的面向对象程序设计实例课程设计报告报告题目: 小型公司工资管理系统设计 作者所在系部: 计算机科学与工程系 作者所在专业: 计算机应用技术 作者所在班级: * 作 者 姓 名 : * 指导教师姓名: * 完 成 时 间 : 2012-6-21 北华航天工业学院教务处制摘 要在当前的市场经济体制下,一个公司要好的发展,不但要有好的管理制度,优秀的管理人员,同时也要有一个健全的并且适合自身特点的公司人员管理和员工工资管理系统,以实现公司人员管理、工资管理的目。本文在Microsoft Visual C+ 6.0环境下,利用c+语言编写程序,实现了公司对雇员工资信息的管理操作。本系统一简单易

2、懂为原则,便于操作。本系统主要有九个功能模块:1、修改职工信息、 2、查询职工信息、3、删除职工信息、4、添加职工信息、5、显示所有职工信息、6、计算员工工资、7、读入员工信息 8、保存员工信息、9、统计员工信息。已经通过全面的系统测试,能够很好的运行,达到了预期的效果。关键词: c+ 功能模块 工资 信息目录摘 要I目录II课程设计任务书IV第一章 绪论111 课程设计的目的112 课程设计的背景和意义1121 课程设计的背景1122 课程设计的意义213 课程设计环境2第二章 需求分析321 问题描述322 功能要求322 问题的解决方案3第三章 系统设计431 数据设计4311 类设计4

3、312 类之间的关系6313 函数设计632 结构设计6321 系统流程图6322 界面设计7第四章 系统实现841 类实现843 主函数实现35第五章 系统测试3651 模块测试3652 课程设计过程中遇到的问题37总 结39致 谢40参考文献40附 录40课题名称小型公司工资管理系统设计完成时间2012-6-21指导教师贾振华职称讲师学生姓名孟伟闪班 级11513总体设计要求和技术要点1、问题描述某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。四类人员的月薪计算方法如下:经理拿固定月薪;技术人员按小时领取月薪;销售人

4、员按其当月销售额的提成领取工资;销售经理既拿固定月薪也领取销售提成。设计一程序能够对公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。2、功能要求(1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时

5、注意编号的唯一性。(5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。(6)统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数,或者统计男、女员工的数量,或者统计平均工资、最高工资、最低工资等信息。(7)保存功能:可将当前系统中各类人员记录存入文件中,存入方式任意。(8)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。工作内容及时间进度安排16月4日10日:布置任务,软件设计

6、;26月11日18日:编写代码,上机调试;36月19、20、21日:软件验收,撰写课程设计报告;4各班在6月22日下午五点前将课程设计报告收齐并上交。课程设计任务书第一章 绪论11 课程设计的目的1) 此次课程设计的目的是以c+程序设计基础为基础,针对具有一定难度的综合性题目,进行分析、编程、调试和运行,进一步掌握面向对象和面向过程程序设计的基本方法和编程技巧, 巩固所学理论知识, 使理论与实践相结合, 提高分析问题、解决问题的能力。要求学生达到熟练掌握C+语言的基本知识和技能。2) 基本掌握面向对象程序设计的基本思路和方法3) 能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。4

7、) 通过设计一个简单的小型公司工资管理系统 ,进一步熟悉 C+中类的概念、类的封装、 继承和多态的实现方式;掌握文件的录入、查找;对象指针的使用。了解系统开发的需要分析, 类层次设计,模块分析, 编码测试,模块组装与整体调试的全过程, 逐步熟悉程序设计的方法,并养成良好的编程习惯。 12 课程设计的背景和意义121 课程设计的背景1. 理论研究基础C+面向对象程序设计是计算机专业的基础课程,本课程按照软件程序设计所需能力进行教学设计,提出以项目模块方式带动相关知识点、实践项目和理论并行的思路,将案例贯穿于课程始终,对原有的教学体系、教学内容进行重新编排,按照从易到难的原则,将其巧妙地融入到项目

8、开发过程中,降低学习难度,提高学生学习的信心,有效培养学生的应用能力和学习能力。2. 技术层面的支持本系统运用到:类与对象在C+中的实现、静态数据成员、运算符重载、友元函数继承与派生的基本知识、单继承和多继承、虚基类的作用与使用、虚函数的定义和使用、纯虚函数和抽象类的定义和使用、输入输出流的概念、输入、输出流操作、文件的创建、打开、读写、关闭等操作。122 课程设计的意义本课程按照软件程序设计所需能力进行教学设计,提出以项目模块方式带动相关知识点、实践项目和理论并行的思路,将案例贯穿于课程始终,对原有的教学体系、教学内容进行重新编排,按照从易到难的原则,将其巧妙地融入到项目开发过程中,降低学习

9、难度,提高学生学习的信心,有效培养学生的应用能力和学习能力。小型公司工资管理对公司管理有着很重要的作用。在当今社会应用广泛。13 课程设计环境硬件平台: CPU:i5。2.67GHz。 RAM:512MB以上。软件平台: 操作系统:Windows xp/ Windows 7 编辑环境:Visual c+ 6.0分辨率:最佳效果1024768像第二章 需求分析21 问题描述 某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。四类人员的月薪计算方法如下:经理拿固定月薪;技术人员按小时领取月薪;销售人员按其当月销售额的提成领取工

10、资;销售经理既拿固定月薪也领取销售提成。设计一程序能够对公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。22 功能要求(1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删

11、除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。(6)统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数,或者统计男、女员工的数量,或者统计平均工资、最高工资、最低工资等信息。(7)保存功能:可将当前系统中各类人员记录存入文件中,存入方式任意。(8)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。22 问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析

12、,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。第三章 系统设计31 数据设计311 类设计根据课程设计要求,需要定义六个类:雇员类(基类)(worker)(如表3-1-1)、经理类(manager)(如表3-1-2)、技术人员类(technologyman)(表3-1-3)、销售人员类(saleman)(如表3-1-4)、销售经理类(salemanager)(如表3-1-5)和管理

13、类(control)(如表3-1-6)。 雇员类数据成员:编号int num; 姓名 char name20; 性别char sex5; 部门char branch20;int mark; static int count, static int count1, static int count2, static int count3,static int count4, static int count5, static int count6; int basic; double worktime;double xiaoshoue; int job; 成员函数: worker() worke

14、r(int mark) virtual worker() static int display1() friend istream& operator (istream& in,worker& w) ;friend ostream& operator (istream& in,manager& w) ;friend ostream& operator (istream& in,technologyman& w) ;friend ostream& operator (istream& in,saleman& w) ;friend ostream& operator (istream& in,sa

15、lemanager& s) ;friend ostream& operator 、 operator mark=mark; count+; virtual worker() cout员工类被析构;(istream& in,worker& w) ; friend ostream& operator (ostream& out,worker& w); static int display1() return count; void input(); virtual void inputmoney(); virtual void display(); virtual void display2()=

16、0; virtual void money()=0; char *getjibie() return jibie; double getworktime()return worktime; double getxiaoshoue() return xiaoshoue; worker * next; int num; char name20; char sex5; char branch20;/部门 char jibie20; int mark; static int count,count1,count2,count3,count4,count5,count6; int basic; doub

17、le worktime; double xiaoshoue; int job; /职务;(2) 经理类:class manager:virtual public worker /经理 public:manager() manager(int mark):worker(mark) manager() cout经理类被析构;(istream& in,manager& w) ; friend ostream& operator (ostream& out,manager& w); void inputmoney() job=1; cout请输入职员基本工资:basic; count3+; void

18、display2() cout职务:经理 职员基本工资 : endl; coutbasic; void money() cout该员工的实际工资是:basicendl; ;(3) 技术人员类:class technologyman:virtual public worker /技术人员public:technologyman() technologyman(int mark):worker(mark) technologyman() cout技术人员类被析构;endl; void inputmoney() job=3; cout请输入职员工作时间:worktime; count5+; void

19、 display2()cout职务:技术人员 职员工作时间:endl; coutworktime; void money() jine=35; cout该员工的实际工资是:(jine*worktime)(istream& in,technologyman& w) ; friend ostream& operator (ostream& out,technologyman& w); int jine; ;(4) 销售人员类:class saleman:virtual public worker /销售人员 public:saleman()saleman(int mark):worker(mark

20、)saleman() cout销售人员类被析构;endl;void inputmoney()job=2;cout请输入职员销售额:xiaoshoue;ount4+;oid display2()cout职务:销售人员 职员销售额: endl; coutxiaoshoue;void money() tichengbili=0.05;cout该员工的实际工资是:xiaoshoue*tichengbili(istream& in,saleman& w) ;friend ostream& operator (ostream& out,saleman& w);double tichengbili; ;(5

21、) 销售经理:class salemanager: public manager, public saleman /销售经理public: salemanager() salemanager(int mark):worker(mark) salemanager() cout销售经理类被析构;endl; void inputmoney() job=4; cout请输入职员基本工资,销售额:basicxiaoshoue; count6+; void display2() cout职务:销售经理 职员基本工资,销售额:endl; coutbasic xiaoshoue; void money() t

22、ichengbili=0.03; cout该员工的实际工资是:basic+xiaoshoue*tichengbili(istream& in,salemanager& s) ; friend ostream& operator next; /指向下一个节点 delete head; /释放空间 head=p; head=NULL; void showface(); void changeinformation();/修改 void cancelinformation();/删除 void addinformation(); /添加 void showinformation(); /显示 voi

23、d searchinformation(); / 查询 void countinformation(); / 计算 void readinformation(); / 读入 void keepinformation(); / 保存 void tongjiformation(); /统计; 42 函数实现(雇员类) int worker:count=0; int worker:count1=0; int worker:count2=0; int worker:count3=0; int worker:count4=0; int worker:count5=0; int worker:count6

24、=0; void worker:input() cout请输入职员信息:endl; coutnum; coutname; int i; coutsex; if(strcmp(sex,nan)=0|strcmp(sex,nv)=0)if(strcmp(sex,nan)=0) count1+; else count2+;break;else cout输入错误请重新输入endl; coutbranch; void worker:inputmoney() cout基本工资:basic; void worker:display() cout编号:num 姓名:name 性别:sex 部门:(istrea

25、m& in,worker& w) w.input(); w.inputmoney(); return in; ostream& operator (istream& in,manager& w) w.input(); w.inputmoney(); return in; ostream& operator (istream& in,technologyman& w) w.input(); w.inputmoney(); return in; ostream& operator (istream& in,saleman& w) w.input(); w.inputmoney(); return

26、in; ostream& operator (istream& in,salemanager& s) s.input(); s.inputmoney(); return in; ostream& operator (ostream& out,salemanager& s) s.display(); s.display2(); return out; (管理类)void control:showface() control control1; int i;do cout*endl;cout* *endl; cout* 欢迎使用本职工信息管理系统 *endl; cout* 1、添加职工信息 2、查询职工信息 *endl;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号