c小型公司工资管理系统实践报告.doc_第1页
c小型公司工资管理系统实践报告.doc_第2页
c小型公司工资管理系统实践报告.doc_第3页
c小型公司工资管理系统实践报告.doc_第4页
c小型公司工资管理系统实践报告.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

中国石油大学(华东)信息与控制工程学院程序设计实习报告小型公司工资管理系统的设计专业班级:电子09-2学号:09052213姓名:李少兴 时 间:2010.8.222010.8.27指导教师:王武礼2010年8月目录一、 实习内容1二、 设计思路2三、 程序清单3四、 运行结果4五、 程序使用说明5六、 总结及心得体会6一、实习内容本次实习的内容是设计一个小型公司的工资管理系统,通过这个系统实现对经理、技术员、销售员及销售经理等公司成员的职工号、姓名、年龄、月工资等信息的数据输入、数据处理、数据的输出显示、数据的备份等功能。本次实习主要是针对较难综合题目进行分析、编程、调试和运行,这利于我们进一步掌握面向过程和面向对象程序的基本方法和编程技巧,巩固所学理论知识,使理论与实践相结合,提高分析问题解决问题的能力。本次实习的题目及要求如下:1.题目:小型公司工资管理系统的设计2.设计说明与基本要求(1 )公司主要有4类人员:经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、性别、年龄、月工资等信息;(2) 工资的计算方法: 经理:固定月薪为8000元;技术员:工作时间工资(100元/小时);销售员:销售额4%提成;销售经理:底薪(5000元)+下属销售员销售额总额0.5%;(3) 员工基本数据的输入:要求每类人员不能少于4人,其中销售员需要8名,每名销售经理手下有名销售员。(4) 各类的数据成员访问权限设置为:protected二、设计思路1.类的层次结构2.设计思路首先要总体设计,要有一个菜单,用于选择各项功能,用来进行数据的录入,数据的统计,数据的打印,数据的备份,退出系统等功能。这就要充分利用了类的继承与派生的知识,先定义一个雇员类employee,由雇员类共有派生出技术员类 tec,销售员类seller,经理类manager,又由经理类公有派生出销售经理类smanager。把基类定义成虚基类,通过基类去写的派生类就可以调用基类的公有成员。程序中宜使用全局变量,便于修改,简便清晰,然后利用for循环把经理数据,技术员数据,销售员数据,销售经理数据输入,再利用switch选择系统进行的工作,在主菜单中进行调用各函数,从而实现各功能。而各项功能的实现就需要定义相应的函数,其中输入功能的实现就需要在基类定义输入函数set(),又由于各派生类中都要输入数据且稍有不同,所以比较适宜将set()函数设为虚函数,便于简化程序。数据的统计和打印,主要是制表和数据的输出,所以定义biao1()、biao2()分别用来输入表头和表尾,定义get()函数来用于数据的输出,与此相似表格的备份也如此,孤儿定义各个备份函数如beifen()、beifen1()等,来进行数据的备份。程序中要求销售经理工资排序则采用的冒泡排序法实现。 三、程序清单#include#include#include#includeusing namespace std;fstream f;class employeepublic:virtual void set()coutname;coutsex;coutage;void Get() coutendl; coutsetw(10)num; int n=10-strlen(name); for(int i=0;in;i+) cout ; coutname sex setw(10)agesetw(10)payendl; protected:int num,age;double pay;char sex,name10;class tec:public employeepublic:void set()coutnum;coutendl;employee:set();coutendl;couttime;pay=100*time; void beifen() fendl; int n=10-strlen(name); fsetw(10)num; for(int i=0;in;i+) f ; fname sex setw(10)agesetw(10)timesetw(10)payendl; protected:double time;class seller:public employeeprotected:double sale;int sm;public:void set()coutnum;employee:set(); coutsale; coutsm;pay=sale*0.04;double gets()return sale;void get1() int n=10-strlen(name); coutsetw(12)num; for(int i=0;in;i+) cout ; coutnamesetw(12)saleendl; void beifen() int n=10-strlen(name); fsetw(12)num; for(int i=0;in;i+) f ; fnamesetw(12)saleendl; void beifen1() fsetw(10)num; int n=10-strlen(name); for(int i=0;in;i+) f ; fname sex setw(10)agesetw(10)salesetw(10)pay; ;class manager:public employeepublic:void set()coutnum;employee:set();pay=8000;void beifen() fendl; fsetw(10)num; int n=10-strlen(name); for(int i=0;in;i+) f ; fname sex setw(10)agesetw(10)payendl; ;class smanager:public managerpublic:void set()coutnum;employee:set();sales=s1.gets()+s2.gets();pay=5000+sales*0.005;double getsales()return sales;void setseller()s1.set();coutendl;s2.set();coutendl;void getseller() s1.Get(); s2.Get();void get() cout职工编号num销售经理name下属销售员的业绩为:endl; coutendl; cout 职工号 姓名 销售额 endl; coutendl; s1.get1(); coutendl; s2.get1(); coutendl; cout销售额总计:setw(23)sales endl; coutendl;void getsm() coutendl; coutsetw(10)num; int n=10-strlen(name); for(int i=0;in;i+) cout ; coutname sex setw(10)agesetw(10)payendl; void beifen() f职工编号num销售经理name下属销售员的业绩为:endl; fendl; f 职工号 姓名 销售额 endl; fendl; s1.beifen(); fendl; s2.beifen(); fendl; f销售额总计:setw(23)sales endl; fendl; void beifen1() fendl; fsetw(10)num; int n=10-strlen(name); for(int i=0;in;i+) f ; fname sex setw(10)agesetw(10)payendl; void beifen2() fendl; fsetw(10)num; int n=10-strlen(name); for(int i=0;in;i+) f ; fname sex setw(10)agesetw(10)salessetw(10)payendl; void beifenseller() fendl; s1.beifen1(); fsetw(10)numendl; fendl; s2.beifen1(); fsetw(10)numendl; protected:seller s1,s2;double sales;void biao1()coutendl; cout 职工号 姓名 性别 年龄 工资 endl;void biao2() coutendl;tec t4;manager m4;smanager sm4;int i;void main() cout小型公司工资管理系统endl;coutendl; cout 请选择您所需的操作 endl;cout 数据输入:1,并按回车键 endl;cout 数据统计:2,并按回车键 endl; cout 数据打印:3,并按回车键 endl; cout 数据备份:4,并按回车键 endl;cout 退出系统:5,并按回车键 endl; coutendl;couti;switch(i)case 1: for(i=0;i4;i+) ti.set(); cout-endl; for(i=0;i4;i+) mi.set(); cout-endl; for(i=0;i4;i+) smi.setseller(); cout-endl; for(i=0;i4;i+) smi.set(); cout-endl;case 2:int a;for(a=0;a4;a+) for(i=0;i4-a;i+) if(smi.getsales()smi+1.getsales()smanager t; t=smi; smi=smi+1; smi+1=t;for (i=0;i4;i+)smi.get();coutendl;coutendl;cout销售经理按工资排序为:endl; coutendl; cout 职工号 姓名 性别 年龄 工资 endl; for(i=0;i4;i+)smi.Get(); coutendl;case 3:cout请等待.endl;cout职工基本情况一览表如下:endl;cout技术员endl;biao1();for(i=0;i4;i+)ti.Get(); biao2();cout-endl;cout经理endl; biao1(); for(i=0;i4;i+)mi.Get(); biao2();cout-endl; cout销售经理endl; biao1(); for(i=0;i4;i+)smi.Get(); biao2();cout-endl; cout销售员endl; biao1(); for(i=0;i4;i+) smi.getseller(); biao2();cout-endl;case 4: f.open(F:程序设计c+.txt,ios:out); for(i=0;i4;i+) smi.beifen();fendl; f销售经理按工资排序为::endl; fendl; f 职工号 姓名 性别 年龄 工资 endl; for(i=0;i4;i+) smi.beifen1(); fendl; f*endl; f职工基本情况一览表如下:endl; f技术员endl; fendl; f 职工号 姓名 性别 年龄 工作时间 工资 endl; for(i=0;i4;i+) ti.beifen(); fendl; f-endl; f经理endl; fendl; f 职工号 姓名 性别 年龄 工资 endl; for(i=0;i4;i+) mi.beifen(); fendl; f-endl; f销售经理endl; fendl; f 职工号 姓名 性别 年龄 销售总额 工资 endl; for(i=0;i4;i+) smi.beifen2(); fendl; f-endl; f销售员endl; fendl; f 职工号 姓名 性别 年龄 销售额 工资 所属经理号endl; for(i=0;i4;i+) smi.beifenseller(); fendl; f-endl;case 5:coutK;switch(K) case N:main();case Y:exit(0);四、运行结果(以下均为运行结果截图) 销售经理五、程序的使用说明1.菜单说明 (1)数据输入指通过键盘输入经理、技术员、销售员及销售经理等公司成员的职工号、姓名、年龄等各项数据;(2)数据统计指统计各销售经理下属销售员的销售额及销售总额,销售经理按工资进行的冒泡排序;(3)数据打印指按照表格的格式在屏幕上输出个员工的信息;(4)数据备份指将所有员工的信息保存到文件;(5)退出指结束程序的运行。2.其他说明(1)选择功能是输入的必须是数字,否则系统可能会运行出错,得到不确定的结果。(2)由于程序设计的限制,输入名字时不能输入过长,否则系统出错;六、总结及心得体会通过一周左右的实习,我基本完成了设计一个小型公司工资管理系统的程序的任务,这使我对c+以及它的使用有了更深一步的理解和熟练。记得刚学习c+是感觉特别难,始终没有搞清楚c+是门什么样的课,而通过这次实习我能够基本掌握C+语言编程的基础知识,通过这次编写的较难的程序,对于编程有了更多的了解和更贴切的体会。我想这有利于今后对c+的使用,锻炼我们缜密的思维提高我们的独立思考,独立解决问题,综合运用所学知识的能力,提高了上机动手编程的能力。通过本次实习,我加深了对类与派生的理解,对于类的保护成员只对本身成员函数使用,而不能被公有派生出的成员函数使用。了解了类与派生类之间的关系,练习了for循环switch的用法,全局变量的定义以及它的使用,一维数组的定义使用,并看到了一维数组

温馨提示

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

评论

0/150

提交评论