您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 小型公司工资管理系统.
中国石油大学(华东)信息与控制工程学院《程序设计实习》报告小型公司工资管理系统的设计专业班级:电子信息工程*班学号:******姓名:***指导教师:**时间:2013.7.1~2013.7.62013年7月目录一、实习内容…………………………………………………………………………01二、设计思路…………………………………………………………………………02三、程序调试过程中典型问题及解决方法…………………………………………03四、运行结果…………………………………………………………………………04五、程序使用说明……………………………………………………………………10六、心得体会及课程改进设想………………………………………………………10备注:页码根据目录的实际页码进行标注程序设计实习报告1一、实习内容1.题目:小型公司工资管理系统的设计2.设计说明与基本要求(1)公司主要有4类人员:经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、性别、年龄、月工资等信息;(2)工资的计算方法经理:固定月薪为8000元;技术员:工作时间*小时工资(100元/小时);销售员:销售额*4%提成;销售经理:底薪(5000元)+下属销售员销售额总额*0.5%;(3)员工基本数据的输入要求每类人员不能少于2人,其中销售员需要4名,每名销售经理手下至少有2名销售员。(4)各类的数据成员访问权限设置为:protected(5)注意一个销售经理管辖多个销售员。(6)其他功能可适当扩充。(7)要求在控制台下完成。3.实现基本功能(1)菜单选择功能(2)数据输入:输入各种数据;(3)数据统计:统计各销售经理下属销售员的销售额及销售额之和;销售经理按工资进行冒泡排序;(4)数据打印:打印各类员工的数据信息;(5)菜单说明1.数据录入指通过键盘输入各类员工的各项数据;2.数据统计指统计各销售经理下身书销售员的销售额及销售额之和;销售按工资进行冒泡排序;程序设计实习报告23.数据打印指按照表格的格式在屏幕上输出各员工的信息;4.数据备份指将所有员工的信息保存到文件;5.退出:结束程序的运行。二、设计思路充分利用了类的继承与派生的知识,先定义了一个雇员类staff,由雇员类公有派生出技术员类tech,销售员类saleman,经理类mannger,由销售员类saleman,经理类mannger公有派生出销售经理类salemannger。各类的数据成员访问权限设置为:protected,继承方式都运用公有继承,通过基类去写的派生类就可以调基类的公有成员。利用for循环把经理数据,技术员数据,销售员数据,销售经理数据输入,利用冒泡排序法把各销售经理的资按升序排列。利用if语句进行选择系统进行的工作。在主菜单中进行调用各函数,从而实现系统各功能的运行。主函数要尽可能得简明扼要,只是起调用其它函数的作用。每一个函数之间要相互协调,要让程序中的变量和函数能够得到分运用,这样可以加快程序的运行速度,加强程序的实用性。程序设计实习报告3三、程序调试过程中典型问题及解决方法1、这个程序比较长,在编程的时候给我最深刻的体会是一定要整体考虑布局,并且一定要注意程序的简洁性。整体布局,首先体现在对垒中各个变量、函数的定义以及对对象的声明上。因为本程序要求类中变量是保护类型的变量,也就意味着再累外不能直接访问,只能够通过类中公有函数去访问,而类中的数据在后续操作中要参与统计,比较等操作,所以在定义访问数据的函数时要注意函数名的命名,一定要前后照应。例如,本程序中的四个派生类中都含有从雇员积累中继承过来的“工资”这一个数据,但是在不一样的类中有不一样的情况,在经理类中是固定的,但是在销售员类和销售经理类中是进行计算的,这就要求可以访问它们的函数有不一样的返回值。一边在后面进行统计。2、本程序中每一个类中都有多个对象,我刚开始在编程的时候时将它们一个一个独立的进行声明。但最后发现,其实利用对象数组进行声明更加简洁与方便。尤其是在对销售经理利用冒泡法排序的时候,以及在统计数据的时候,直接利用多个FOR循环结构就可以很方便的对它们进行操作,省去了很多麻烦。3、在本程序中我们应该充分的利用类的继承和派生的优越性。我一开始在定义四个派生类时,在每一个派生类中都分别定义了输入输出姓名,年龄,性别的函数。到最后觉得十分繁琐,其实既然四个类都是从雇员类中继承过来的,所以直接在雇员基类中定义一个输入姓名,年龄,性别的函数就可以解决问题。4、本程序中中需要定义的函数,对象较多,所以要尽可能是名称简洁易懂,这样我们在检查程序的时候比较好检查,刚开始的时候我没注意到这个问题这给我后边的编程工作带来很大麻烦,我认为这在编程中是比较重要的。程序设计实习报告4四、运行结果程序设计实习报告5程序设计实习报告6程序设计实习报告7程序设计实习报告8程序设计实习报告9程序设计实习报告10五、程序使用说明点击运行后须按所给提示输入,当提示给出后可供选择的选项有1、2、3、4、5选择1时,可输入公司职员的基本信息当第1步输入完后可以运行第2步,对销售经理和销售员的基本信息进行统计。选择3时,可以将公司职员的信息以表格方式进行统计。选择4时,可以在程序所在的文件夹内生成一个TXT格式的文本文档。选择5时,可以选择是否退出程序。在提示给出后,当输入错误的选择时可给出提示并进行重新选择。六、心得体会及课程改进设想程序设计实习报告11程序清单以上为实验报告,下面附上程序#includefstream#includeiostream#includeiomanip#includestringusingnamespacestd;classstaff{protected:intnum;stringname;doublemoney;intage;charsex;public:intg_num(){returnnum;}stringg_name(){returnname;}doubleg_money(){returnmoney;}intg_age(){returnage;}程序设计实习报告12charg_sex(){returnsex;}};classtech:publicstaff{protected:inttime;public:intg_time(){returntime;}voidinput1(){cout技术员的编号:;cinnum;cout其姓名:;cinname;cout性别(m/w):;cinsex;cout年龄:;cinage;cout工作时间:;cintime;}};classmannger:publicstaff{public:voidinput2(){cout经理的编号:;cinnum;cout其姓名:;cinname;cout性别(m/w):;cinsex;cout年龄:;cinage;}};classsalemannger:publicmannger{public:voidinput3(){cout销售经理的编号:;cinnum;程序设计实习报告13cout其姓名:;cinname;cout性别(m/w):;cinsex;cout年龄:;cinage;}};classsaleman:publicstaff{protected:intnum2;public:intg_num2(){returnnum2;}voidinput4(){cout销售员的编号:;cinnum;cout其姓名:;cinname;cout性别(m/w):;cinsex;cout年龄:;cinage;cout销售额:;cinmoney;cout所属销售经理的编号:;cinnum2;}};intx,i,j;techt[4];manngerm[4];salemanngers[4],e;salemansa[8];doublesum[4];intmain(){voidsetout();voidput2();voidput3();voidput4();voidput5();for(;;)程序设计实习报告14{setout();cinx;if(x==1){for(i=0;i4;i++)t[i].input1();cout┄┄┄┄┄┄┄┄┄┄┄┄┄endl;for(i=0;i4;i++)m[i].input2();cout┄┄┄┄┄┄┄┄┄┄┄┄┄endl;for(i=0;i8;i++)sa[i].input4();cout┄┄┄┄┄┄┄┄┄┄┄┄┄endl;for(i=0;i4;i++)s[i].input3();cout┄┄┄┄┄┄┄┄┄┄┄┄┄endl;}elseif(x==2){put2();}elseif(x==3){put3();}elseif(x==4){put4();}elseif(x==5){intb;程序设计实习报告15cout请问是否要退出系统:选择1是;2否endl;cinb;if(b==1)exit(1);if(b==2)continue;}else{cout输入错误!请检查后重新输入!endl;}}//此处为大循环的终止return0;}voidsetout(){cout★★小型公司工资管理系统★★endl;cout┌──────────────┐endl;cout│请选择您所需的操作│endl;cout│数据输入:1,并按回车键│endl;cout│数据统计:2,并按回车键│endl;cout│数据打印:3,并按回车键│endl;cout│数据备份:4,并按回车键│endl;cout│退出系统:5,并按回车键│endl;cout└──────────────┘endl;cout请选择一个操作;}voidput2(){doubley,sum[4]={0,0,0,0};程序设计实习报告16{for(i=0;i4;i++){cout职工号为s[i].g_num()销售经理s[i].g_name()下属销售员的业绩为:endl;cout┌─────┬────┬────┐endl;cout│职工号│姓名│销售额│endl;for(j=0;j8;j++){if(s[i].g_num()==sa[j].g_num2()){cout├─────┼────┼────┤endl;cout│setw(9)sa[j].g_num()│setw(8)sa[j].g_name()│setw(8)sa[j].g_money()│endl;sum[i]=sum[i]+sa[j].g_money();}}cout├─────┼────┴────┤endl;cout│销售额总计│setw(10)sum[i]│endl;cout└─────┴─────────┘endl;}}cout销售经理按工资排序:endl;for(j=0;j3;j++)for(i=0;i3-j;i++)if(sum[i]sum[i+1]){y=sum[i];sum[i]=sum[i+1];sum[i+1]=y;e=s[i];s[i]=s[i+1];s[i+1]=e;}cout┌───┬────┬──┬───┬────┐endl;cout│职工号│姓名│性别│年龄│工资│endl;for(i=0;i4;i++){cout├───┼────┼──┼───┼────┤endl;程序设计实习报告17cout│setw(6)s[i].g_num()│setw(7)s[i].g_name()
本文标题:小型公司工资管理系统.
链接地址:https://www.777doc.com/doc-4992621 .html