小型公司工资管理系统设计课设报告.doc_第1页
小型公司工资管理系统设计课设报告.doc_第2页
小型公司工资管理系统设计课设报告.doc_第3页
小型公司工资管理系统设计课设报告.doc_第4页
小型公司工资管理系统设计课设报告.doc_第5页
免费预览已结束,剩余41页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 基于 c+的面向对象程序设计实例 课程设计报告 报告题目: 小型公司工资管理系统设计 作者所在系部: 计算机科学与工程系 作者所在专业: 计算机应用技术 作者所在班级: * 作 者 姓 名 : * 指导教师姓名: * 完 成 时 间 : 2012-6-21 北华航天工业学院课程设计报告 2 北华航天工业学院教务处制 摘 要 在当前的市场经济体制下,一个公司要好的发展,不但要有好的管理制度,优秀的 管理人员,同时也要有一个健全的并且适合自身特点的公司人员管理和员工工资管理系 统,以实现公司人员管理、工资管理的目。 本文在 microsoft visual c+ 6.0 环境下,利用 c+语言编写程序,实现了公司对 雇员工资信息的管理操作。 本系统一简单易懂为原则,便于操作。本系统一简单易懂为原则,便于操作。 本系统主要有九个功能模块:1、修改职工信息、 2、查询职工信息、3、删除职工 信息、4、添加职工信息、5、显示所有职工信息、6、计算员工工资、7、读入员工信息 8、保存员工信息、9、统计员工信息。已经通过全面的系统测试,能够很好的运行,达 到了预期的效果。 关键词: c+ 功能模块 工资 信息 北华航天工业学院课程设计报告 ii 目录目录 摘摘 要要.i 目录目录ii 课程设计任务书课程设计任务书iv 第一章第一章 绪论绪论.1 1 11 1 课程设计的目的课程设计的目的1 1 12 2 课程设计的背景和意义课程设计的背景和意义1 121 课程设计的背景 .1 122 课程设计的意义 .2 1 13 3 课程设计环境课程设计环境2 第二章第二章 需求分析需求分析3 21 问题描述问题描述3 22 功能要求功能要求3 22 问题的解决方案问题的解决方案3 第三章第三章 系统设计系统设计4 3 31 1 数据设计数据设计4 311 类设计 .4 312 类之间的关系 .6 313 函数设计 .6 32 结构设计 .6 321 系统流程图 .6 322 界面设计 .7 北华航天工业学院课程设计报告 iii 第四章第四章 系统实现系统实现8 4 41 1 类实现类实现8 4 43 3 主函数实现主函数实现35 第五章第五章 系统测试系统测试36 5 51 1 模块测试模块测试36 5 52 2 课程设计过程中遇到的问题课程设计过程中遇到的问题37 总总 结结39 致致 谢谢40 参考文献参考文献 40 附附 录录40 北华航天工业学院课程设计报告 iv 课题名称课题名称小型公司工资管理系统设计完成时间完成时间2012-6-212012-6-21 指导教师指导教师贾振华贾振华职称职称讲师讲师学生姓名学生姓名孟伟闪孟伟闪班班 级级1151311513 总体设计要求和技术要点总体设计要求和技术要点 1、问题描述 某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇员分 为经理、技术人员、销售人员和销售经理。四类人员的月薪计算方法如下:经理拿固定月薪;技术人 员按小时领取月薪;销售人员按其当月销售额的提成领取工资;销售经理既拿固定月薪也领取销售提 成。 设计一程序能够对公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输 入/输出等内容。 2、功能要求 (1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加 的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添 加。 (2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的 提示信息,如果找到,则显示相应的记录信息; (3)显示功能:可显示当前系统中所有记录,每条记录占据一行。 (4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。 (5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录, 则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除 该人员记录,如果没有找到该人员信息,则提示相应的记录不存。 (6)统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数, 或者统计男、女员工的数量,或者统计平均工资、最高工资、最低工资等信息。 (7)保存功能:可将当前系统中各类人员记录存入文件中,存入方式任意。 (8)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。 工作内容及时间进度安排工作内容及时间进度安排 16 月 4 日10 日:布置任务,软件设计; 26 月 11 日18 日:编写代码,上机调试; 36 月 19、20、21 日:软件验收,撰写课程设计报告; 4各班在 6 月 22 日下午五点前将课程设计报告收齐并上交。 北华航天工业学院课程设计报告 v 课程设计任务书 第一章 绪论 11 课程设计的目的 1)此次课程设计的目的是以c+程序设计基础为基础,针对具有一定难度的综合 性题目,进行分析、编程、调试和运行,进一步掌握面向对象和面向过程程序设计的基本 方法和编程技巧, 巩固所学理论知识, 使理论与实践相结合, 提高分析问题、解决问 题的能力。要求学生达到熟练掌握 c+语言的基本知识和技能。 2)基本掌握面向对象程序设计的基本思路和方法 3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 4)通过设计一个简单的小型公司工资管理系统小型公司工资管理系统 ,进一步熟悉 c+中类的概念、 类的封装、 继承和多态的实现方式;掌握文件的录入、查找;对象指针的使用。了解系 统开发的需要分析, 类层次设计,模块分析, 编码测试,模块组装与整体调试的全过程, 逐步熟悉程序设计的方法,并养成良好的编程习惯。 12 课程设计的背景和意义 121 课程设计的背景 1. 理论研究基础 c+面向对象程序设计是计算机专业的基础课程,本课程按照软件程序设计所需 能力进行教学设计,提出以项目模块方式带动相关知识点、实践项目和理论并行的思路, 将案例贯穿于课程始终,对原有的教学体系、教学内容进行重新编排,按照从易到难的原 则,将其巧妙地融入到项目开发过程中,降低学习难度,提高学生学习的信心,有效培养 学生的应用能力和学习能力。 2. 技术层面的支持 本系统运用到:类与对象在 c+中的实现、静态数据成员、运算符重载、友元函数继 承与派生的基本知识、单继承和多继承、虚基类的作用与使用、虚函数的定义和使用、纯 北华航天工业学院课程设计报告 2 虚函数和抽象类的定义和使用、输入输出流的概念、输入、输出流操作、文件的创建、打 开、读写、关闭等操作。 122 课程设计的意义 本课程按照软件程序设计所需能力进行教学设计,提出以项目模块方式带动相关知识 点、实践项目和理论并行的思路,将案例贯穿于课程始终,对原有的教学体系、教学内容 进行重新编排,按照从易到难的原则,将其巧妙地融入到项目开发过程中,降低学习难度, 提高学生学习的信心,有效培养学生的应用能力和学习能力。 小型公司工资管理对公司管理有着很重要的作用。在当今社会应用广泛。 13 课程设计环境 硬件平台: cpu:i5。2.67ghz。 ram:512mb 以上。 软件平台: 操作系统:windows xp/ windows 7 编辑环境:visual c+ 6.0 分辨率:最佳效果 1024768 像 北华航天工业学院课程设计报告 3 第二章 需求分析 21 问题描述 某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇员分 为经理、技术人员、销售人员和销售经理。四类人员的月薪计算方法如下:经理拿固定月薪;技术人 员按小时领取月薪;销售人员按其当月销售额的提成领取工资;销售经理既拿固定月薪也领取销售提 成。 设计一程序能够对公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输 入/输出等内容。 22 功能要求 (1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的 人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。 (2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提 示信息,如果找到,则显示相应的记录信息; (3)显示功能:可显示当前系统中所有记录,每条记录占据一行。 (4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。 (5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录, 则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除 该人员记录,如果没有找到该人员信息,则提示相应的记录不存。 (6)统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数, 或者统计男、女员工的数量,或者统计平均工资、最高工资、最低工资等信息。 (7)保存功能:可将当前系统中各类人员记录存入文件中,存入方式任意。 (8)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。 22 问题的解决方案 根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计; (2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; 北华航天工业学院课程设计报告 4 (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)和管理类(control) (如表 3-1-6) 。 表 3-1-1 雇员类 数据成员: 编号 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() worker(int mark) virtual worker() static int display1() friend istream friend ostream friend ostream friend ostream friend ostream friend ostream count+; virtual worker() cout(istream friend ostream friend ostream count3+; void display2() coutworktime; count5+; void display2() cout(istream friend ostream ount4+; oid display2() cout(istream friend ostream count6+; void display2() cout(istream friend ostream /指向下一个节点 delete head; /释放空间 head=p; head=null; void showface(); void changeinformation();/修改 void cancelinformation();/删除 void addinformation(); /添加 void showinformation(); /显示 void searchinformation(); / 查询 void countinformation(); / 计算 void readinformation(); / 读入 void keepinformation(); / 保存 void tongjiformation(); /统计 ; 42 函数实现 (雇员类) 北华航天工业学院课程设计报告 13 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=0; void worker:input() coutnum; coutname; int i; coutsex; if(strcmp(sex,“nan“)=0|strcmp(sex,“nv“)=0) if(strcmp(sex,“nan“)=0) count1+; else count2+; break; else coutbranch; void worker:inputmoney() coutbasic; 北华航天工业学院课程设计报告 14 void worker:display() cout(istream w.inputmoney(); return in; ostream w.inputmoney(); return in; ostream w.inputmoney(); return in; ostream w.inputmoney(); return in; ostream s.inputmoney(); return in; ostream if(i9|ii; if(i5|i=0) cout(*p); break; case 2: p=new saleman(2); cin(*p); break; 北华航天工业学院课程设计报告 18 case 3: p=new technologyman(3); cin(*p); break; case 4: p=new salemanager(4); cin(*p); break; case 5: break; p-next=null; /员工结点加入链表 if(i!=5) if (head!=null) /链表已经存在 worker* p1=null,* p2=null; /指针初始化 p1=head; if(p1-num=p-num) coutnext; p2-next=p; /连接结点 couti; if(i4|i=0) coutnum; p1=head; while (p1!=null) if (p1-num=num) break; else p2=p1; p1=p1-next; break; 北华航天工业学院课程设计报告 20 case 2: char name20; coutname; p1=head; while (p1!=null) if (strcmp(p1-name,name)=0) break; else p2=p1; p1=p1-next; break; case 3: char branch20; coutbranch; p1=head; while (p1!=null) if (strcmp(p1-branch,branch)=0) break; else p2=p1; p1=p1-next; break; case 4: return; 北华航天工业学院课程设计报告 21 /删除结点 if(i!=4) if (p1!=null) /找到结点,删除 f (p1=head) /要删除的结点是第一个结点 head=p1-next; delete p1; else /要删除的结点不是第一个结点 p2-next=p1-next; delete p1; couti; if(i5|i=0) coutnum; p1=head; while(p1!=null) if(p1-num=num) break; else p2=p1; p1=p1-next; if(p1!=null) /若找到结点 coutname; p1=head; while (p1!=null) if (strcmp(p1-name,name)=0) break; else p2=p1; p1=p1-next; if (p1!=null) /若找到结点 coutbranch; p1=head; while (p1!=null) if (strcmp(p1-branch,branch)=0) coutnext; m+; 北华航天工业学院课程设计报告 24 else p2=p1; p1=p1-next; if (m=0) coutjob; p1=head; while (p1!=null) if (p1-job=job) coutnext; n+; else p2=p1; p1=p1-next; if (n=0) couti; if(i4|i=0) coutnum; p1=head; while(p1!=null) 北华航天工业学院课程设计报告 26 if(p1-num=num) break; else p2=p1; p1=p1-next; if(p1!=null) /若找到结点 coutnewname; strcpy(p1-name,newname); break; case 2: coutnewbranch; strcpy(p1-branch,newbranch); break; 北华航天工业学院课程设计报告 27 case 3: coutnewjob; p1-job=newjob; break; case 4: return; if(p1!=null) /若找到结点 coutnext; void control:countinformation() worker*p1=null,*p2=null; if(head=null) couti; if(i2|inum; p1=head; while(p1!=null) if(p1-num=num) break; else p2=p1; p1=p1-next; if(p1!=null) /若找到结点 coutmoney(); 北华航天工业学院课程设计报告 29 else coutname; p1=head; while (p1!=null) if (strcmp(p1-name,name)=0) break; else p2=p1; p1=p1-next; if (p1!=null) /若找到结点 coutmoney(); else coutmark; switch(mark) case 1: p=new manager(1); p-mark=1; infilep-nump-namep-sexp-branchp-jobp-basic; infilep-jibie; break; case 2: p=new saleman(2); p-mark=2; infilep-nump-namep-sexp-branchp-jobp-xiaoshoue; break; case 3: p=new technologyman(3); p-mark=3; infilep-nump-namep-sexp-branchp-jobp-worktime; break; case 4: 北华航天工业学院课程设计报告 31 p=new salemanager(4); p-mark=4; infilep-nump-namep-sexp-branchp-jobp-basicp-jibiep-xiaoshoue; break; p-next=null; if(mark!=0) if (head!=null) /链表已经存在 worker* p1=null; /指针初始化 p1=head; while (p1-next!=null) /查找尾结点 p1=p1-next; p1-next=p; /连接结点 coutmarknumnamesexbranch jobmark=1) outfilegetjibie(); else if(p-mark=2) outfilegetxiaoshoue(); else if(p-mark=3) outfilegetworktime(); else if(p-mark=4) outfilegetjibie()getxiaoshoue(); outfilenext; outfilei; if(i4|i=0) coutk; if(k2|kk; if(k4|k0) cout“输入错误请重新输入“endl; else break; switch (k) case 1:cout“经理人数为: “worker:count3endl;break; case 2:cout“技术人员人数为: “worker:count5endl;break; case 3:cout“销售人员人数为: “worker:count4endl;break; case 4:cout“销售经理人数为: “worker:count6endl;break; case 0:break; default:cout“输入错误!“endl; while(k!=0); break; case 3:cout“总员工数为:“worker:countendl;break; case 4:break; default:cout“输入错误!“endl; while(i!=4); 43 主函数实现 int main() /选择变量 control control1; /定义控制变量 control1.showface(); return 0; 北华航天工业学院课程设计报告 36 第五章 系统测试 51 模块测试 (1)添加功能(如图 5-1-1): 若编号重复提示添加 重复,并取消添加。 界 面(如图 5-1-2) 。 图 5-1-2 图 5-1-1 添加界面 (2)计算员工工资功能界面(如图 5-1-3) (3)查询员工信息界面(如图 5- 1-4) 图 5-1-3 计算工资界面 图 5-1-4 查询界面 (3)显示所有信息功能(如图 5-1-5) 图 5-1-5 显示所有信息界面 北华航天工业学院课程设计报告 37 (4)修改功能(如图 5-1-6) 图 5-1-6 修改界面 (5)删除功能(如图 5-1-7) 图 5-1-7 删除界面 (6)统计功能(如图 5-1-8) 图 5-1-8 统计界面 52 课程设计过程中遇到的问题 在本次课程设计中,第一次制作管理系统,遇见的问题颇多。充分体会到 c+在实际 北华航天工业学院课程设计报告 38 问题中的作用。 在管理系统页面运行的过程中就应当先进行信息的添加,保存信息,保存信息之后读 入信息。这样文件中才有信息可以使用。才能进行增删改查功能。 界面的处理:可以直接使用 cout 语句进行处理。打印出界面。更加方便与用户的使 用。 建立管理类:实现各个功能应建立管理类,把功能函数建

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论