《毕业设计-小型企业工资管理系统.docx》由会员分享,可在线阅读,更多相关《毕业设计-小型企业工资管理系统.docx(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一个QQ,一张银行卡,实现你的创业梦想,免费注册网络代理商:存档资料 成绩: 华 东 交 通 大 学课 程 设 计 报 告 书所属课程名称 C程序设计 题 目 小型企业工资管理系统 院 (系) 软件 学 院 班 级 网络2006班 学号 学生姓名 指导教师 辅导教师 2007年 7 月 7 日 一个QQ,一张银行卡,实现你的创业梦想,免费注册网络代理商:华东交通大学课程设计报告华 东 交 通 大 学课 程 设 计( 论 文 )任 务 书 软件学院 专 业 网络工程 班 级 06级2班 一、课程设计(论文)题目 小型企业工资管理系统 二、课程设计(论文)工作:自 2007年 6月 25 日起至
2、2007年 7 月 6 日止。三、课程设计(论文)的内容要求: 1)数据录入: 输入各种数据. 2)数据统计:各销售经理的工资计算及最终按工资进行的冒 泡排序. 3)数据打印:打印各种数据. 4)数据备份:把相关的数据写入文件. 5)退出: 退出本系统. 学生签名: 2007 年7 月 9 日课程设计(论文)评阅意见项 目等级优秀良好中等及格不及格课程设计态度评价出勤情况评价任务难度评价工作量饱满评价设计中创新性评价论文书写规范化评价综合应用能力评价综合评定等级优秀()良好()中等()及格()不及格()评阅人 谢昕 职称 副教授 2007年7月11日 目录一、需求分析1二、概要设计2三、详细设
3、计3四、设计和调试分析5五、用户手册18六、测试结果20七、参考文献21编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第22页 共26页一、需求分析1. 从要求上来看是要对各个员工的各种情况(名字、年龄、性别、职位、工资状况)进行输入。然后可以输出.2. 可以对于员工数据进行修改,可以查询.3. 对于员工的各种情况系统还可以进行统计排名.二、概要设计首先,创建了一个employee类.然后派生出四个类: manager、technician、salesman、sales manager.在派生类中定义了三个构造函数,分别是:数据输入函数(Input),表格输出函数(Prin
4、t),排序函数(Pay).其次,在总体结构上,建立以各根菜单,用于选择各种功能.1. Input(数据输入):输入员工的各种数据.2. Total(数据统计):将员工的总数据进行对比排序,然后输出.3. Output(数据显示):显示输入的各种数据.4. Save(数据保存):对输入的数据进行保存备份.5. Eixt(退出程序):执行退出程序命令.三、详细设计1. Input(数据输入): 定义了各个岗位的人员的类,并把每个类的人员的属性设为类中的保护成员,其中技术工的工作时间和每小时的所得为私有成员,而销售员的销售额、经理的工资和销售经理的所辖部门的销售额和其底薪设为公有成员,再依次录入。2
5、. Total(数据统计): 根据所有类的工资算法在其所属类中定义一个函数void pay()来根据各个职位的具体情况来计算工资,并且算出的工资经过冒泡法排序.void printtotal()coutendl;coutTotal setw(10)total endl;coutendl;3. Output(数据显示): 通过do-while循环以及制表格和setw的使用将输入的数据和统计并排序的数据以表格的形式打印出来,销售额合计一栏宽度要大些。void saleprint()coutsetw(10)no1setw(10)name1setw(10)sale1endl;coutendl;cout
6、setw(10)no2setw(10)name2setw(10)sale2endl;coutendl;coutsetw(10)no3setw(10)name3setw(10)sale3endl;coutendl;coutsetw(10)no4setw(10)name4setw(10)sale4endl;void print()coutendl;coutsetw(10)nosetw(10)namesetw(10)sexsetw(10)agesetw(10)salaryendl;4. Save(数据保存): 通过函数save()来将输入的数据和统计并排序的数据进行保存.例如:void save()
7、fstream outfile;outfile.open(f:flsdfj.txt,ios:app);if(!outfile)coutf cant open.n;abort();outfileSales mangerendl;outfileIDnoNAMEnameSEXsexAGEageSALARYsalaryendl; 5. Eixt(退出):利用exit来完成退出系统功能。四、设计和调试分析程序清单:#include#include#include#include#includeclass employeepublic:employee()salary=0;void pay()void p
8、rint()void input()coutno;coutname;coutsex;coutage;protected:int no;char name8;float salary;char sex;int age;class manager:virtual public employeeprotected:float monthlypay,sale;public:manager()monthlypay=8000; void input()coutManger;employee:input();void save()fstream outfile;outfile.open(f:flsdfj.t
9、xt,ios:app);if(!outfile)coutf cant open.n;abort();outfileMangerendl;outfileIDnoNAMEnameSEXsexAGEageSALARYsalaryendl;void pay()salary=monthlypay;void print()coutendl;coutsetw(10)nosetw(10)namesetw(10)sexsetw(10)agesetw(10)salaryendl;class technician:virtual public employeeprivate:float hourlyrate;int
10、 workhours;public:technician()hourlyrate=100;void pay()coutnameworkhours;salary=hourlyrate*workhours;void input()coutTECHNICIANendl;employee:input();void save()fstream outfile;outfile.open(f:flsdfj.txt,ios:app);if(!outfile)coutf cant open.n;abort();outfileTECHNICIANendl;outfileIDnoNAMEnameSEXsexAGEa
11、geSALARYsalaryendl;void print()coutendl;coutsetw(10)nosetw(10)namesetw(10)sexsetw(10)agesetw(10)salaryendl;class salesman:virtual public employeeprotected:float commrate;float sales;public:salesman()commrate=0.04; void input()coutSALEMAN;employee:input();void save()fstream outfile;outfile.open(f:fls
12、dfj.txt,ios:app);if(!outfile)coutf cant open.n;abort();outfileTECHNICIANendl;outfileIDnoNAMEnameSEXsexAGEageSALARYsalaryendl;void pay()coutnamesales; salary=sales*commrate;void print()coutendl;coutsetw(10)nosetw(10)namesetw(10)sexsetw(10)agesetw(10)salaryendl;class salesmanager:virtual public manage
13、r,virtual public salesmanprivate:float total;int no1,no2,no3,no4;char name18,name28,name38,name48;float sale1,sale2,sale3,sale4;public:void salemanager()monthlypay=5000;commrate=0.005;void input()coutSales manger;employee:input();void save()fstream outfile;outfile.open(f:flsdfj.txt,ios:app);if(!outf
14、ile)coutf cant open.n;abort();outfileSales mangerendl;outfileIDnoNAMEnameSEXsexAGEageSALARYsalaryendl;void savesale()fstream outfile;outfile.open(f:flsdfj.txt,ios:app);if(!outfile)coutf cant open.n;abort();outfileThe salary of saleman of sales manger and themselvesendl;outfileIDno1NAMEname1SALARYsal
15、e1endl;outfileIDno2NAMEname2SALARYsale2endl;outfileIDno3NAMEname3SALARYsale3endl;outfileIDno4NAMEname4SALARYsale4endl;void pay()coutnameThe sales volume of everydepartment:;salary=monthlypay+commrate*total;float totalsale()total=sale1+sale2+sale3+sale4;return total;void printtotal()coutendl;coutTota
16、l setw(10)total endl;coutendl;void sort(salesmanager p)int tmp,i,j;for(j=0;j2;j+)for(i=0;i2;i+)if(totalp.salary)tmp=salary;total=p.salary;p.salary=tmp;tmp=no;no=p.no;p.no=tmp;void saler()coutno1;coutname1;coutsale1;coutno2;coutname2;coutsale2;coutno3;coutname3;coutsale3;coutno4;coutname4;coutsale4;v
17、oid saleprint()coutsetw(10)no1setw(10)name1setw(10)sale1endl;coutendl;coutsetw(10)no2setw(10)name2setw(10)sale2endl;coutendl;coutsetw(10)no3setw(10)name3setw(10)sale3endl;coutendl;coutsetw(10)no4setw(10)name4setw(10)sale4endl;void print()coutendl;coutsetw(10)nosetw(10)namesetw(10)sexsetw(10)agesetw(
18、10)salaryendl;void main()manager m4;technician t4; salesman s4;salesmanager sm4;t1.save();int flag=1,operate; do cout # The system of salary manger #n; cout n; cout Chose your actions n; cout Input:1,Enter n; cout Total:2,Enter n; cout Output:3,Enter n; cout Save:4,Enter n; cout Exit:5,Enter n; cout
19、 n; coutoperate;switch(operate)case 1:coutWaiting for a minute!endl;for(int i=0;i4;i+)mi.input();for(int j=0;j4;j+)tj.input();for(int k=0;k4;k+)sk.input();for(int l=0;l4;l+)sml.input();for(int i=0;i4;i+)mi.pay();for(int j=0;j4;j+)tj.pay();for(int k=0;k4;k+)sk.pay();for(int l=0;l4;l+)sml.pay();sml.sa
20、ler();break;case 2:coutWaiting for a minute!endl; for(int l=0;l4;l+)sml.totalsale();for(int i=0;i4;i+)for(int j=0;j2;j+)smj.sort(smj+1);coutThe saleman of the first sales mangerendl;coutendl;coutID NAME SALARY endl;sm0.saleprint();sm0.printtotal();cout The order is completeendl;coutList names of eve
21、ry sales mangerendl;coutendl;coutID NAME SEX AGE SALARY endl;for(int k=0;k4;k+)smk.print();coutendl;break;case 3:coutWaiting for a minute!endl;cout The blank of the :endl;coutendl;coutID NAME SEX AGE SALARY endl;for(int i=0;i4;i+)mi.print();coutendl;coutendl;coutendl;coutendl;coutID NAME SEX AGE SAL
22、ARY endl;for(int k=0;k4;k+)sk.print();coutendl;coutendl;coutendl;break;case 4:coutWaiting for a minute!endl;for(int i=0;i4;i+)mi.save();for(int j=0;j4;j+)tj.save();for(int k=0;k4;k+)sk.save();for(int l=0;l4;l+)sml.save();cout Information save! endl;break; case 5:exit(0);break; default:coutError!Repe
23、at again!endl;while(flag=1);五、用户手册1) 运行程序.会出现如下画面,按照提示进行选择.2) 首先选择1,然后按Enter键.按照提示对员工个人情况进行输入.如图:3) 然后选择4,然后按Enter键.对刚才输入的数据进行保存.4) 选择2, 然后按Enter键.对数据进行统计.如图:六、测试结果对各个部分功能进行测试后,各部分功能都很好.但是此程序也有的它的缺点在.那就是它不能按照个人的意愿,职能按照固定的人数对数据进行输入,既不能多也不能少.很麻烦.一但格式输入的不正确会立即进入死循环.不理想. 本程序综合性非常强,由于我们对使用C+设计程序的能力还不是很熟练,所以在设计时非常吃力。在整个程序中,我们通过使用while循环,switch语句,冒泡排序法,表格设计中的setw()以及类的定义及使用来完成程序设计,使我提高了对C+中语句的使用能力和组合能力,进一步加强了我对使用C+编程的能力。通过此次程序设计实习,我发现自己在学习C+方面还有很多不足,在此程序中可能还有一些不足和错误,我们将在以后的学习过程中不断努力并强化对C+的练习七、参考文献1 苏金明,周建斌.用VB.NET和VC#.NET开发交互式CAD系统M. 北京:电子工业出版社,20042 普悠玛.VB.NET程序设计示例导学M. 北京:科海电子出版社,2003第 22 页 共 26 页