《中国石油大学c++实习报告-小型公司工资管理系统.pdf》由会员分享,可在线阅读,更多相关《中国石油大学c++实习报告-小型公司工资管理系统.pdf(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-中国石油大学(华东)信息与控制工程学院中国石油大学(华东)信息与控制工程学院程序设计实习报告程序设计实习报告小型公司工资管理系统的设计专业班级:电子 11 级学号:姓名:时间:2012.09.012011.09.072012 年 9 月-目录一、实习内容1二、设计思路2三、程序清单3四、运行结果14五、程序使用说明21六、总结及心得体会22-一、实习内容设计一个简单的小型公司管理系统,。了解系统开发的需求设计、类层次设计、模版分析、模块组装与整体调试的过程;熟悉程序设计的方法。1.题目:小型公司工资管理系统的设计2.设计说明与基本要求:(1)公司主要有 4 类人员:经理、技术员、销售员、销售
2、经理。要求存储这些人的职工号、姓名、性别、年龄、月工资等信息;(2)工资的计算方法:经理:固定月薪为 8000 元;技术员:工作时间工资(100 元/小时);销售员:销售额4%提成;销售经理:底薪(5000元)+下属销售员销售额总额0.5%;(3)员工基本数据的输入:要求每类人员不能少于 4 人,其中销售员需要8 名,每名销售经理手下有名销售员。3.实现的基本功能:数据输入、数据统计、数据打印、数据备份、退出。(应用程序中要有菜单,用于选择各项功能)4.菜单说明 数据输入要通过键盘;统计是统计销售经理下属销售员的销售额及销售额之和,销售经理按工资冒泡排序;数据打印是以表格形式在屏幕上输出;数据
3、备份是将所有的员工信息保存到文件;退出:结束程序运行。22-二、设计思路1.类的结构先创建了一个Employer 基类.然后派生出四个类:Manager、Technician、Salesman、Salemanager。分别对经理、技术员、销售员、销售经理的数据进行输入。然后选用了一个 switch 的多分枝选择结构,依次据菜单的选择条件执行数据的输入、数据统计、数据打印、数据备份和退出等。数据的备份要用到 fstream 类,用来支持对磁盘文件的输入输出。对于 switch,结束循环用到 exit 函数。此函数的参数为任意整数。22-三、程序清单#include#include#include
4、#includeusing namespace std;class employeepublic:int get1();string get2();char get3();int get4();protected:int num,age;string name;double pay;char sex;int employee:get1()return num;string employee:get2()return name;char employee:get3()return sex;int employee:get4()return age;class technician:public
5、employee22-protected:int hour;public:void display1()coutnum;coutname;coutage;coutsex;couthour;double get_pay();int get_time();double technician:get_pay()pay=100*hour;return pay;int technician:get_time()return hour;class manager:public employeepublic:void display2()coutnum;coutname;coutsex;coutage;do
6、uble get_pay()pay=8000;return pay;22-;class salesman:public employeeprotected:int number;double sales_volume;public:void display3()coutnum;coutname;coutsex;coutage;coutsales_volume;coutnumber;int numb()return number;double sa()return sales_volume;double get_pay()return sales_volume*0.04;class salesm
7、anager:public managerpublic:void display4()coutnum;coutname;coutsex;22-coutage;void excel()cout小型公司工资管理系统endl;coutcoutcoutcoutcoutcoutcoutcoutcoutj;while(j=1|j=2|j=3|j=4|j=5)switch(j)case 1:for(i=0;i4;i+)endl;请选择您所需的操作endl;数据输入:1,并按回车键 endl;数据统计:2,并按回车键endl;数据打印:3,并按回车键endl;数据备份:4,并按回车键endl;退出系统:5,并
8、按回车键endl;endl;22-ti.display1();cout-endl;for(i=0;i4;i+)mi.display2();cout-endl;for(i=0;i8;i+)si.display3();cout-endl;for(i=0;i4;i+)smi.display4();cout-j;break;case 2:for(i=0;i4;i+)cout职工号为smi.get1()销售经理smi.get2()下属销售员的业绩:endl;coutendl;cout职工号姓名 销售额endl;coutendl;double money=0;for(x=0;x8;x+)if(sx.num
9、b()=smi.get1()money=money+sx.sa();monei=money*0.005+5000;22-moi=money*0.005+5000;cout setw(10)sx.get1()setw(10)sx.get2()setw(10)sx.sa()endl;coutendl;cout销售额总计setw(22)moneyendl;coutendl;cout销售经理按工资排序为endl;double mon;for(i=0;i3;i+)for(x=0;x3-i;x+)if(moxmox+1)mon=mox;mox=mox+1;mox+1=mon;coutendl;cout职工
10、号姓名性别年龄 工资 endl;for(k=0;k4;k+)for(y=0;y4;y+)if(money=mok)coutendl;cout setw(10)smy.get1()setw(10)smy.get2()setw(10)smy.get3()setw(8)smy.get4()setw(8)moneyendl;coutendl;22-cout-j;break;case 3:cout请等待endl;cout职工基本情况一览表如下endl;cout技术员endl;cout endl;cout职工号 姓名性别年龄工资endl;for(x=0;x4;x+)coutendl;cout setw(8
11、)tx.get1()setw(8)tx.get2()setw(8)tx.get4()setw(8)tx.get3()setw(8)tx.get_pay()endl;coutendl;cout经理endl;cout endl;cout职工号 姓名性别年龄工资endl;for(x=0;x4;x+)coutendl;22-coutsetw(8)mx.get1()setw(8)mx.get2()setw(8)mx.get4()setw(8)mx.get3()setw(8)mx.get_pay()endl;coutendl;cout销售经理endl;cout endl;cout职工号 姓名性别年龄工资e
12、ndl;for(x=0;x4;x+)coutendl;coutsetw(8)smx.get1()setw(8)smx.get2()setw(8)smx.get4()setw(8)smx.get3()setw(8)monexendl;coutendl;cout销售员endl;cout endl;cout职工号 姓名性别年龄工资endl;for(x=0;x8;x+)coutendl;cout setw(8)sx.get1()setw(8)sx.get2()22-setw(8)sx.get3()setw(8)sx.get4()setw(8)sx.get_pay()endl;coutendl;cout
13、-j;break;case 4:ofstream outfile;/类,对象outfile.open(copy.txt,ios:out);/文件关联cout数据备份.endl;outfile职工的基本情况:endl;outfile1、技术员资料endl;outfileendl;outfile职工号姓名性别年龄工资 endl;for(x=0;x4;x+)outfileendl;outfile setw(8)tx.get1()setw(8)tx.get2()setw(8)tx.get3()setw(8)tx.get4()setw(8)tx.get_pay()endl;outfile endl;ou
14、tfile2、销售员的资料endl;outfileendl;22-outfile职工号姓名性别年龄工资endl;for(x=0;x8;x+)outfileendl;outfile setw(8)sx.get1()setw(8)sx.get2()setw(8)sx.get4()setw(8)sx.get3()setw(8)sx.get_pay()endl;outfileendl;outfile3、销售经理的资料endl;outfileendl;outfile职工号姓名性别年龄工资endl;for(x=0;x4;x+)outfileendl;outfile setw(8)smx.get1()set
15、w(8)smx.get2()setw(8)smx.get3()setw(8)smx.get4()setw(8)monexendl;outfileendl;outfile4、经理的资料endl;outfileendl;22-outfile职工号姓名性别年龄工资endl;for(x=0;x4;x+)outfileendl;outfile setw(8)mx.get1()setw(8)mx.get2()setw(8)mx.get4()setw(8)mx.get3()setw(8)mx.get_pay()endl;outfileendl;cout备份 ok!成功备份到 cpp 文件中。endl;out
16、file.close();/将关联文件关闭coutj;break;case 5:cout您真的要退出吗?(Y/N)endl;couta;if(a=Y)exit(100);else if(a=N)excel();22cinj;break;-四、运行结果22-22-22-22-22-22-22-五、程序的使用说明运行程序后,根据菜单栏的提示选择操作。输入“1”回车后,进入职工基本数据输入栏,在这里,要将所有的技术员、销售员、销售经理、经理的职工号、姓名、性别、工作时间等信息输入程序中。职工的数据输入完成后自动跳转到菜单栏,选择“2”回车后进入到数据统计界面,程序会自动对你输入的各销售经理下属销售员
17、的销售额及销售额之和进行统计,并对销售经理按工资进行排序。数据统计完成后,选择“3”,程序会对你输入的职工基本信息进行打印,打印结果显示在控制台下。在菜单栏中继续选择“4”后,程序将对所有的员工信息进行打印并保存到文件中。最后选择“5”,根据提示是否退出本程序,输入“Y”,结束程序执行;输入“N”,返回主菜单继续进行程序。22-六、总结及心得体会一学期的 c+和实习结束了,感觉学到了很多东西。在这里对这一学期学习C+的学习做一总结,对将来的学习、工作会很有用处。从对C+的学习我知道了对学习就要在刚开始时多下功夫,首先要把基础打好,彻底把知识点弄透彻,这样后面的才能学懂。其实要学习 c+,想要学
18、好 c+,不仅是课堂上是最重要的,还要在课上多多练习,多上机操作,实践是检验真理的唯一标准。也是,通过此次实习,吸取到很多教训,印象最深的就是有一次点击运行的的时候,刚键入几个字符,一回车,整个程序就无限循环了。不过在最后加入一个系统调用函数exit,终于跳出了。所以c+学习不是一朝一夕就能完成的,我们还有很多未知的知识等待去了解,去开发。纵观整个实习,用到最多的就是类、子类、对象了,还有循环 for、witch,以及一整大个多分枝选择结构 switch。还有就是函数的调用也是让我感觉很有兴趣的,这个特别好用,很方便。通过这次编写的工资管理程序,对于编程有了更多的了解和体会。我想这有利于今后对 c+的使用,锻炼我们缜密的思维以及提高我们的独立思考,独立解决问题,综合运用所学知识的能力,提高了上机动手编程的能力和对一些错误处理和解决的能力,更加有助于我对对程序调试的动手能力的提高。这对我们将要来临的计算机二级考试也有很大的帮助,正好趁此机会复习了一下 c+大略的知识点。22