




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
辽 宁 工 业 大 学c+语言程序设计课程设计(论文)题目: 雇员工资管理系统 院 (系): 软 件 学 院 专业班级 : 软件工程113班 学 号 : 111301079 学生姓名 : 安凯辰 指导教师 : 翟宝峰 教师职称 : 副教授 起止时间 :2011.12.12-2011.12.25课程设计(论文)任务及评语院(系):软件学院 教研室:软件教研室学 号111301079学生姓名安凯辰专业班级软件工程113班课程设计(论文)题目雇员工资管理系统课程设计(论文)任务程序设计的任务与要求:(1). 掌握面向对象程序设计语言c+的基本语法(2). 掌握c+面向对象设计的思想(3). 掌握vc+6.0与dev c+ 开发工具的使用 (4). 运用标准c+规范设计应用程序设计过程中,要严格遵守设计的时间安排,听从指导教师的指导。正确地完成上述内容,规范完整地撰写出设计报告。指导教师评语及成绩 成绩: 指导教师签字: 年 月 日辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)目 录第1章 课程设计目的与要求11.1 设计目的11.2实验环境11.3预备知识11.4设计要求1第2章 课程设计内容22.1 课题描述22.2 系统设计22.2.1系统功能分析22.2.2面向对象设计22.2.3类成员描述62.3程序的实现62.3.1系统源码分析62.3.2系统运行结果15第3章 课程设计总结17参考文献18第1章 课程设计目的与要求1.1 设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程c+语言教程的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。(3)利用所学知识,开发小型应用系统,掌握运用c+语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。(5)掌握面向对象程序设计的方法。(6)熟练掌握c+语言的基本语法,灵活运用各种数据类型。(7)进一步掌握在集成环境下如何调试程序和修改程序。1.2实验环境硬件要求能运行windows 操作系统的微机系统。c+语言应用程序开发软件使用:vc+ 系统,或其他c+语言应用程序开发软件。1.3预备知识熟悉c+语言程序设计的基本知识及vc+编辑器的使用方法。1.4设计要求1.仔细分析设计题目,画出程序流程图,编写程序源代码。2.积极上机调试源程序,增强编程技巧与调程能力。3.认真书写课程设计预习报告,课程设计说明书。4.遵守课程设计要求和机房管理制度,服从指导教师的安排,确保课程设计的顺利完成课程设计内容。第2章 课程设计内容2.1 课题描述本系统是为某个公司编写雇员工资支付程序。所完成的功能包括一般工人(worker)按每月工作的天数计算工资;销售人员(salesman)在基本工资基础上每月还有销售提成;经理(manager)每月按固定工资支付,临时工(floater)按小时支付。在本系统中用抽象类(employee)描述所有雇员的共同特性(如姓名,性别,出生日期,员工类别),含有计算工资的纯虚函数computesalay(),而且在系统中对于所有员工用该方法计薪是以多态形式来实现的。系统应包含新增员工信息、删除员工信息、员工信息搜索、员工信息统计、员工信息分类存储、员工信息导入、按工资排序等功能为。2.2 系统设计2.2.1系统功能分析 本系统所完成的功能如下:1新增员工信息;2删除员工信息;3员工信息搜索(按姓名);5员工信息统计(按姓名或工资或类别);6员工信息分类存储;7员工信息导入;8按工资排序;9退出系统功能的流程图:添加信息雇员工资系统删除信息搜索信息统计信息导入信息退出系统2.2.2面向对象设计 1、雇员类employee包含的成员:数据成员:name:用来存储雇员名字gender:用来存放雇员性别date20:用来存放雇员出生年月日 accumpay:用来存放雇员类别staffcategory:用来存放雇员工作日函数成员:employee():构造函数employee():析构函数set_name(char *na):录入雇员姓名的函数set_gender(char *ge):录入雇员性别的函数set_date(char *da):录入雇员出生年月日的函数set_staffcategory(char *staff):录入雇员类别的函数set_accumpay(float accu):录入雇员工作日的函数get_name():获取雇员姓名的函数get_gender():获取雇员性别的函数get_date():获取雇员出生年月日的函数get_accumpay():获取雇员工作日的函数get_staffcategory():获取雇员类别的函数display():显示信息函数uml类图:employee-name:char-gender:char-date20:char-accumpay:float-staffcategory:char+employee()+employee()+set_name(char *na):void +set_gender(char *ge):void+set_date(char *da):void +set_staffcategory(char *staff):void+set_accumpay(float accu): void+get_name():char *+get_gender():char *+get_date():char *+get_accumpay():float+get_staffcategory():char *+ computesalay():void+ get_data():void+ display():void:2、普通工人类worker包含的成员:数据成员:dayrate:用来存放每天酬金的数据成员workdays:用来存放当月工作天数的数据成员函数成员:worker():构造函数 get_dayrate():获取每天酬金函数get_workdays ():获取工作天数函数uml类图:worker- dayrate: float- workdays: int+worker() +get_dayrate():float+get_workdays ():int+computesalay():void+display():void+ get_data():void3、销售人员类salesman包含的成员:数据成员:commrate: 用来存放每件产品提成额的数据成员sales: 用来存放销售的产品数量的数据成员salary: 用来存放基本工资的数据成员函数成员:salesman():构造函数display():显示函数uml类图:salesman-commrate: float-sales: float-salary: float+salesman()+display():void+computesalay():void+ get_data():void4、经理类manager:用来存放包含的成员:数据成员:monthsalary: 用来存放月工资的数据成员 函数成员:manager():构造函数get_monthsalary():获取月工资函数 get_data():获取工作天数的函数uml类图:manager-monthsalary: float+manager()+display():void+computesalay():void+get_monthsalary():float+ get_data():void5、临时工人类floater包含的成员:数据成员: hourrates:用来存放每小时酬金的数据成员workhours:用来存放当月工作时数的数据成员函数成员:floater():构造函数get_hour_rates():获取时间总量函数get_workhours():获取工作天数函数 uml类图:floater-hourrates:float-workhours:int +floater()+display():void+get_hour_rates():float+get_workhours():int +computesalay():void +get_data():void类的继承派生图:employeemanagersalesmanworkerfloater 总体流程图: 输入基本信息信息排序新增数据信息删除信息检索分类存储信息导入退出系统开始输入选择功能1 2 3 4 5 6 72.2.3类成员描述1.录入雇员姓名的函数set_name(char *na):记录新增人员的姓名信息,方便对其进行查找,修改等各项工作。2.录入雇员类别的函数set_staffcategory(char *staff):根据雇员类别更容易查找其所需要的信息。 3.录入雇员工作日的函数set_accumpay(float accu):记录工作人员的工作数量,方便对其发放工资等操作。4.获取雇员姓名的函数get_name():能够了解所被雇佣的员工信息。 2.3程序的实现2.3.1系统源码分析/程序名:雇员工资管理系统/功能:雇员信息的录入、删除、修改等/作者:杨娜/完成时间:2011-12-21#include#include#include#include#includeint n=4; /统计雇员的人数int k=0; /统计销售的人数int h=0; /统计临时工人的人数int m0=0; /统计经理的人数int j=0; /统计一般工人的人数 class employee protected:char name20;/姓名char gender20;/性别char date20; /出生日期float accumpay; /月薪总额char staffcategory20;public:employee()accumpay=0;employee()void set_name(char *na)strcpy(name,na);void set_gender(char *ge)strcpy(gender,ge);void set_date(char *da)strcpy(date,da);void set_staffcategory(char *staff)strcpy(staffcategory,staff);void set_accumpay(float accu)accumpay=accu;char *get_name()return name;char *get_gender()return gender;char *get_date()return date;float get_accumpay()return accumpay;char *get_staffcategory()return staffcategory; virtual void computesalay()=0;virtual void get_data() coutnamegenderdatestaffcategory; virtual void display() coutname gender date staffcategory accumpayendl; ;/普通工人class worker:public employee private:float dayrate; /每天酬金 int workdays; /当月工作天数public:worker()dayrate=100; virtual void get_data() coutnamegenderdatestaffcategoryworkdays; float get_dayrate()return dayrate;int get_workdays ()return workdays;void computesalay()accumpay=dayrate*workdays; void display() cout一般工人显示数据如下:endl;/cout姓名 性别 出生日期 员工类别 工作天数 每天酬金 月薪总额endl;coutname gender date staffcategory workdays dayrate accumpayendl; ;/销售人员class salesman:public employeeprivate:float commrate;/每件产品提成额float sales; /销售的产品数量float salary; /基本工资public:salesman() commrate=0.04f; salary=1000; virtual void get_data() coutnamegenderdatestaffcategorysales; void computesalay()accumpay=commrate*sales+salary;void display() /cout销售人员数据显示数据如下:endl;/cout姓名 性别 出生日期 员工类别 销售的产品总量 每件产品提成额 基本工资/ 月薪总额;coutname gender date staffcategory sales commrate salary accumpayendl; ;/经理class manager:public employee private:float monthsalary;/月工资public:manager()monthsalary=5000;virtual void get_data() coutnamegenderdatestaffcategory; float get_monthsalary()return monthsalary;void computesalay()accumpay=monthsalary;void display() /cout经理显示数据如下:endl;/cout姓名 性别 出生日期 员工类别 月薪总额endl;coutname gender date staffcategory accumpayendl;/临时工class floater:public employee private:float hourrates; /每小时酬金int workhours; /当月工作时数public:floater()hourrates=10;virtual void get_data() coutnamegenderdatestaffcategoryworkhours; float get_hour_rates()return hourrates;int get_workhours()return workhours;void computesalay()accumpay=hourrates*workhours;void display() /cout一般工人显示数据如下:endl;/cout姓名 性别 出生日期 员工类别 当月工作时数 每小时酬金 月薪总额endl;coutname gender date staffcategory workhours hourrates accumpayendl; ;employee *e100;employee *w100;employee *s100;employee *f100;employee *m100;void displayall() ifstream in(employee.dat,ios:binary);if(in.fail() coutthe file is not sucessfully openedendl;for(int i=0;in;i+)in.read(char*)ei,sizeof(ei); for(int k=0;kdisplay(); in.close(); void add() int m;ofstream output(employee.dat,ios:app);if(output.fail() coutthe file was not successfully openedendl; coutm;for (int i=0;im;i+) char t;cout输入第i+1个员工信息;coutt;if(t=w)en=new worker();en-get_data();en-computesalay();output.write(char*)en,sizeof(en);n+;if(t=m) en=new manager() ;en-get_data();en-computesalay();output.write(char*)en,sizeof(en);n+; if(t=s) en=new salesman();en-get_data();en-computesalay(); output.write(char*)en,sizeof(en);n+; if(t=f) en=new floater();en-get_data();en-computesalay(); output.write(char*)en,sizeof(en);n+; ;output.close();/排序void paixu() ifstream in(employee.dat,ios:binary);for(int p=0;pn;p+) in.read(char*)ep,sizeof(ep); in.close();int i,j;employee *temp;int swap;for(i=0;in-1;i+) swap=0;for(j=0;jget_accumpay()ej+1-get_accumpay() swap=1;temp=ej;ej=ej+1;ej+1=temp; if(!swap)break; ofstream out(employee.dat,ios:binary);for(int t=0;tn;t+) out.write(char*)et,sizeof(et); out.close(); void delete() ofstream out(employee.dat,ios:binary); ifstream in(employee.dat,ios:binary); in.seekg(0);char sname20;coutsname;for(int i=0;iget_name(),sname)=0) for(int j=i;jn;j+) ej=ej+1; en-1=null;n-; out.write(char*)ei,sizeof(ei); in.close();out.close(); void find() ifstream in(employee.dat,ios:binary);char sname20;coutsname;for(int i=0;iget_name(),sname)=0) ei-display(); else if(i=n)cout此人不存在endl; void sort() ofstream out1(worker.dat,ios:binary);ofstream out2(floater.dat,ios:binary);ofstream out3(salesman.dat,ios:binary);ofstream out4(manager.dat,ios:binary);ifstream in1(worker.dat,ios:binary);ifstream in2(floater.dat,ios:binary);ifstream in3(salesman.dat,ios:binary);ifstream in4(manager.dat,ios:binary);for(int i=0;iget_staffcategory(),worker)=0) wj=new worker();wj=ei;out1.write(char*)wj,sizeof(wj); /wj-display();j+; if(strcmp(ei-get_staffcategory(),salesman)=0) sk=new salesman();sk=ei;out3.write(char*)sk,sizeof(sk); /sk-display(); k+; if(strcmp(ei-get_staffcategory(),floater)=0) fh=new floater();fh=ei;out2.write(char*)fh,sizeof(fh); /fh-display();h+; if(strcmp(ei-get_staffcategory(),manager)=0) mm0=new manager();mm0=ei;out2.write(char*)mm0,sizeof(mm0); /mm0-display();m0+; cout一般工人信息显示如下:endl;for(int b=0;bdisplay(); cout销售工人显示如下:endl;for(int c=0;cdisplay(); cout临时工信息显示如下:endl;for (int d=0;ddisplay(); cout经理信息如下:endl;for(int e=0;edisplay(); void main() cout输入员工信息:endl;e0=new worker();e1=new floater();e2=new salesman();e3=new manager();for (int i=0;iget_data();ei-computesalay(); ofstream outfile(employee.dat,ios:binary);ifstream infile(employee.dat,ios:binary);if(outfile.fail()coutthe file was not sucessfully openedendl; for(int k=0;kn;k+)outfile.write(char*)ek,sizeof(ek); /outfile.close();/*if(infile.fail()coutthe file was not sucessfully openedendl; for(int m=0;mn;m+)infile.read(char*)em,sizeof(em);*/ /for(int q=0;qdisplay();/displayall();/delete();/paixu();int m;docout(1:新增,2:删除信息,3:员工信息检索,4:员工信息分类储存,5:员工信息导入,6:按工资排序,7:退出)endl;coutm;switch(m)case 1: add(); displayall(); break;case 2: delete();displayall(); break;case 3: find(); break;case 4: sort(); break;case 5: displayall(); break;case 6: paixu(); break;case 7: break; while(1); 2.3.2系统运行结果(1)首页(2)添加数据模块(3)删除模块第3章 课程设计总结通过此次c+课程设计的实现,让我对本学期的c+课程有了进一步的了解和掌握,并
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江国企招聘2025宁波市奉化区文化旅游集团有限公司招聘2人笔试参考题库附带答案详解
- 一汽解放2025校园招聘笔试参考题库附带答案详解
- 青田县2025浙江丽水市青田县事业单位招聘76人笔试历年参考题库附带答案详解
- 脑机接口视觉模拟-洞察及研究
- 赣州市2025年江西赣州市石城工业园区管委会公开招募5名大学毕业见习人员笔试历年参考题库附带答案详解
- 秀屿区2025福建莆田市秀屿区市场监督管理局(竞争股)招聘编外食品安全协管员笔试历年参考题库附带答案详解
- 温州市2025浙江温州市级事业单位招聘87人笔试历年参考题库附带答案详解
- 河池市2025广西河池市生态移民发展局招聘2人笔试历年参考题库附带答案详解
- 农产品电子商务运营方案
- Module 6 Unit2 说课稿外研版八年级英语下册
- 护理疑难病例讨论课件模板
- 同步课件4:改革开放和社会主义现代化建设的巨大成就
- DL-T-1878-2018燃煤电厂储煤场盘点导则
- 【顺丰控股财务报表探析探究14000字(论文)】
- 【农村电商发展探究文献综述与理论基础4500字】
- 地震逃生知识培训
- 《济南市城镇燃气领域重大隐患判定指导手册》
- 人工智能助力企业创新发展
- 资料员之资料员基础知识题库及完整答案(各地真题)
- 卢卡奇的《历史与阶级意识》
- JJG693-2011燃气泄漏检测仪器检定规程
评论
0/150
提交评论