




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中国石油大学(华东)信息与控制工程学院程序设计实习报告小型公司工资管理系统的设计姓名:Yuppies Liu 时 间:2011.7.142011.7.172011年7月目录一、 实习内容1二、 设计思路2三、 程序代码清单3四、 运行结果10五、 程序使用说明16六、 总结及心得体会17程序设计实习报告一、实习内容1 题目:小型公司管理系统的设计设计2.设计说明与基本要求(1) 公司主要有4类人员:经理、技术员、销售员、销售经理。 要求存储这些人的职工号、姓名、月工资、年龄、性别等信息。(2) 工资的计算方法 A 经理:固定月薪为8000元; B技术员:工作时间*小时工资(100元/小时);C销售员:销售额*4%提成; D销售经理:底薪(5000元)+所辖部门销售额总额*0.5%。(3) 员工基本数据的输入 要求每类人员不能少于4人,其中销售员需要8名,每名销 售经理手下有名销售员。(4) 各类的数据成员访问权限设置为:protected3.实现基本功能 (1) 数据输入:输入各种数据 (2) 数据的输入 :统计各销售经理下属销售员的销售额及销售额之和;销售经理按工资进行的帽泡排序; (3) 数据打印:打印各类员工的数据信息;(4) 数据备份(5) 退出:退出本系统 备注:可适当扩充程序功能,功能扩充得当可加分4菜单说明(1)数据录入指通过键盘输入各类员工的各项数据(2)数据统计指统计各销售经理下属销售员的销售额及销售额之和;销售经理按工资进行的冒泡排序 (3) 数据的打印指按照表格的格式在屏幕上输出各员工的数据信息(4) 数据的备份指把各类员工的数据信息写入文件中保存(5)退出:结束程序的运行二、设计思路在这个公司中有四类人员:经理、兼职技术人员、销售员要存储的信息有姓名、编号、性别、年龄、工资、销售额、所属经理编号由于所有职员有相同的成员如编号(num)、姓名(name)、性别(sex)、年龄(age)、工资(wage)。所以可将所有信息归纳为一个职员类(Guyuan),将其作为一个基类,然后派生出子类,实现各类人员不同的信息(如工资计算), 由于销售经理具有销售员和经理的特性,所以销售经理采用多重继承的关系,继承销售员和经理的两个类,为避免二义性将employee定义为虚基类,可用下图表示:题目中假设公司有2名技术员、4名销售员、经理和销售经理各2名,所以用对象数组的方式,利用循环语句来实现人员的输入和输出,整个程序设计如下:基类雇员类:数据成员有职工号、姓名、年龄、性别、月工资;成员函数只有姓名、年龄、性别的设置函数。技术员类:继承基类数据成员增加了工作时间;成员函数有设置函数、构造函数、输出函数下属函数、备份函数下属函数。经理类:继承基类数据成员未增加;成员函数有设置函数、构造函数、输出函数下属函数、备份函数下属函数。销售员类:继承基类数据成员多了销售额、所属经理编号;成员函数有设置函数、构造函数、输出函数下属函数、备份函数下属函数、销售额返回函数、所属经理编号输出函数。销售经理类:继承基类数据成员未增加;成员函数有设置函数、构造函数、输出函数下属函数、备份函数下属函数、统计函数所属函数。三、程序代码清单#include#include#include#includeusing namespace std;ofstream outfile(f1.txt,ios:out);class Guyuanpublic:int num,age;string name;char sex;int wage;class Jishuyuan: protected Guyuanpublic:int time; void set_jishuyuan()coutnum; coutendl; coutname; coutendl; coutsex; coutendl; coutage; coutendl; couttime; coutendl; wage=time*100; void show_jishuyuan() coutsetw(12)numsetw(12)namesetw(12)sexsetw(12)agesetw(12)wageendl; void show_jishuyuan4() outfilesetw(12)numsetw(12)namesetw(12)sexsetw(12)agesetw(12)wageendl;class Jingli:protected Guyuanpublic: void set_jingli() coutnum; coutendl; coutname; coutendl; coutsex; coutendl; coutage; coutendl;wage=8000; void show_jingli() coutsetw(12)numsetw(12)namesetw(12)sexsetw(12)agesetw(12)wageendl; void show_jingli4() outfilesetw(12)numsetw(12)namesetw(12)sexsetw(12)agesetw(12)wageendl; ; class Xiaoshouyuan:protected Guyuanpublic: void set_xiaoshouyuan() coutnum; coutendl; coutname; coutendl; coutsex; coutendl; coutage; coutendl; coutsell; coutendl; coutbelong; coutendl; wage=sell*4/100; void show_xiaoshouyuan() coutsetw(14)numsetw(14)namesetw(14)sellendl; void show_xiaoshouyuan2() coutsetw(8)numsetw(8)namesetw(8)sexsetw(8)agesetw(8)wagesetw(18)belongendl; void show_xiaoshouyuan4() outfilesetw(8)numsetw(8)namesetw(8)sexsetw(8)agesetw(8)wagesetw(18)belongendl;int sell,belong;class Xiaoshoujingli:protected Guyuanpublic: int shu_jingli() return num; void set_xiaoshoujingli() coutnum;coutendl; coutname;coutendl; coutsex;coutendl; coutage; coutendl; void show_num()coutnum; void show_name()coutname; void show_xiaoshoujingli() coutsetw(12)numsetw(12)namesetw(12)sexsetw(12)agesetw(12)wageendl; void show_xiaoshoujingli4() outfilesetw(12)numsetw(12)namesetw(12)sexsetw(12)agesetw(12)wageendl; void show_wage() coutwage; void wage_sum(int sum) wage=5000+sum*0.5/100; void disp() cout 小型公司工资管理系统 endl; cout endl; cout 请选择您所需要的操作 endl; cout 数据输入: 1,并按回车键 endl; cout 数据统计: 2,并按回车键 endl; cout 数据打印: 3,并按回车键 endl; cout 数据备份: 4,并按回车键 endl; cout 退出系统: 5,并按回车键 endl; cout endl; coutendl; coutw;switch(w)case 1: for(i=0;in;i+) ai.set_jishuyuan();cout*endl;for(i=0;in;i+) bi.set_jingli();cout*endl;for(i=0;i(2*n);i+) ci.set_xiaoshouyuan();cout*endl;for(i=0;in;i+) di.set_xiaoshoujingli();cout*endl;disp(); ;break;case 2: int sumn; int i,j; for(j=0;jn;j+) sumj=0;cout职工号为;dj.show_num();cout销售经理;dj.show_name();cout下属销售员的业绩为:endl; coutendl; cout 职工号 姓名 销售额 endl;for(i=0;i2*n;i+) if(ci.belong=dj.shu_jingli() coutendl;ci.show_xiaoshouyuan(); sumj=sumj+ci.sell; coutendl; cout销售额总计 setw(28)sumj endl; coutendl;cout销售经理按工资排序为:endl;coutendl; cout 职工号 姓名 性别 年龄 工资 endl; Xiaoshoujingli x; double y;for(i=0;in;i+)for(j=0;jn;j+)if(sumisumi+1)x=di;di=dj;dj=x;y=sumi;sumi=sumj;sumj=y; for(i=0;in;i+) coutendl;di.wage_sum(sumi);di.show_xiaoshoujingli(); coutendl; disp(); ; break;case 3: int i;cout请等待.endl;cout职工基本情况一览表如下endl;cout技术员endl;coutendl; cout 职工号 姓名 性别 年龄 工资 endl; for(i=0;in;i+) coutendl;ai.show_jishuyuan(); coutendl;cout*endl;cout经理endl; coutendl; cout 职工号 姓名 性别 年龄 工资 endl; for(i=0;in;i+) coutendl;bi.show_jingli(); coutendl; cout*endl; cout销售经理endl; coutendl; cout 职工号 姓名 性别 年龄 工资 endl; for(i=0;in;i+) coutendl;di.show_xiaoshoujingli(); coutendl;cout*endl;cout销售员endl; coutendl; cout 职工号 姓名 性别 年龄 工资 所属部门经理编号 endl; for(i=0;in*2;i+) coutendl;ci.show_xiaoshouyuan2(); coutendl;cout*endl; disp(); ;break;case 4: int i;outfile职工基本情况一览表如下endl;outfile技术员endl;outfileendl; outfile 职工号 姓名 性别 年龄 工资 endl; for(i=0;in;i+) outfileendl;ai.show_jishuyuan4(); outfileendl;outfile*endl;outfile经理endl; outfileendl;outfile 职工号 姓名 性别 年龄 工资 endl; for(i=0;in;i+) outfileendl;bi.show_jingli4(); outfileendl; outfile*endl; outfile销售经理endl; outfileendl; outfile 职工号 姓名 性别 年龄 工资 endl; for(i=0;in;i+) outfileendl;di.show_xiaoshoujingli4(); outfileendl; outfile*endl; outfile销售员endl; outfileendl; outfile 职工号 姓名 性别 年龄 工资 所属部门经理编号 endl; for(i=0;in*2;i+) outfileendl;ci.show_xiaoshouyuan4(); outfileendl; outfile*endl; outfile.close(); disp();break;case 5: exit(0); ;break;default:cout 选择错误,请重新选择!endl; disp();break; return 0;四、运行结果小型公司工资管理系统 请选择您所需要的操作 数据输入: 1,并按回车键 数据统计: 2,并按回车键 数据打印: 3,并按回车键 数据备份: 4,并按回车键 退出系统: 5,并按回车键 请选择一个操作: 1技术员编号:101其姓名:zhang1性别(m/w):w年龄:27工作时间:56技术员编号:102其姓名:wang1性别(m/w):m年龄:27工作时间:58*经理的编号:201其姓名:wang2其性别(m/w):w年龄:34经理的编号:202其姓名:36其性别(m/w):m年龄:36*销售员的编号:301其姓名:zhang3性别(m/w):m年龄:28销售额:50000所属销售经理的编号:401销售员的编号:302其姓名:wang3性别(m/w):w年龄:32销售额:54000所属销售经理的编号:401销售员的编号:303其姓名:wan1性别(m/w):w年龄:35销售额:60000所属销售经理的编号:402销售员的编号:304其姓名:wan2性别(m/w):m年龄:26销售额:80000所属销售经理的编号:402*销售经理的编号:401其姓名:sun性别(m/w):w年龄:36销售经理的编号:402其姓名:liu性别(m/w):w年龄:29* 小型公司工资管理系统 请选择您所需要的操作 数据输入: 1,并按回车键 数据统计: 2,并按回车键 数据打印: 3,并按回车键 数据备份: 4,并按回车键 退出系统: 5,并按回车键 请选择一个操作: 2职工号为401销售经理sun下属销售员的业绩为: 职工号 姓名 销售额 301 zhang3 50000 302 wang3 54000销售额总计 104000 职工号为402销售经理liu下属销售员的业绩为: 职工号 姓名 销售额 303 wan1 60000 304 wan2 80000销售额总计 140000 销售经理按工资排序为: 职工号 姓名 性别 年龄 工资 402 liu w 29 5700 401 sun w 36 5520 小型公司工资管理系统 请选择您所需要的操作 数据输入: 1,并按回车键 数据统计: 2,并按回车键 数据打印: 3,并按回车键 数据备份: 4,并按回车键 退出系统: 5,并按回车键 请选择一个操作: 3请等待.职工基本情况一览表如下技术员 职工号 姓名 性别 年龄 工资 101 zhang1 w 27 5600 102 wang1 m 27 5800*经理 职工号 姓名 性别 年龄 工资 201 wang2 w 34 8000 202 36 m 36 8000*销售经理 职工号 姓名 性别 年龄 工资 402 liu w 29 5700 401 sun w 36 5520*销售员 职工号 姓名 性别 年龄 工资 所属部门经理编号 301 zhang3 m 28 2000 401 302 wang3 w 32 2160 401 303 wan1 w 35 2400 402 304 wan2 m 26 3200 402* 小型公司工资管理系统 请选择您所需要的操作 数据输入: 1,并按回车键 数据统计: 2,并按回车键 数据打印: 3,并按回车键 数据备份: 4,并按回车键 退出系统: 5,并按回车键 请选择一个操作: 4 小型公司工资管理系统 请选择您所需要的操作 数据输入: 1,并按回车键 数据统计: 2,并按回车键 数据打印: 3,并按回车键 数据备份: 4,并按回车键 退出系统: 5,并按回车键 请选择一个操作: 5Press any key to continue五、程序的使用说明1程序中各类人员个数默认为2个,销售员默认为4个。2请输入销售人员信息后再输入销售经理的信息。3输入时,除姓名、性别外,其余各项请勿输入除数字以外的字符。4输入数据时若出现无限循环的现象,请重新执行程序并输入信息。5未输入信息时,打印或备份,各类人员除姓名性别为空外,其余各项均为0。6重复输入某类人员数据时,可覆盖上一次输入的该类人员的数据。7程序中输出文件位置默认为C盘,若有需要请自行更改。六、总结及心得体会通过四天的编程,我对C+有了更深一步的认识。 要做一个简单的管理系统,首
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环保备案申请书
- 2025-2030工业机器人市场发展现状及投资风险评估分析报告
- 2025-2030工业无人机应用场景拓展与商业模式创新研究报告
- 2025-2030工业废水处理膜技术应用场景拓展分析报告
- 2025-2030工业废气处理技术路线比选及减排经济效益分析报告
- 2025-2030工业大数据平台建设成效与制造企业数字化转型研究报告
- 2025-2030工业大数据分析平台架构设计与行业解决方案研究报告
- 大学生奖学金申请书怎么
- 申请异地入学申请书模板
- 酒店礼品申请书范本
- 2025年法院书记员考试试题及答案
- 电子生物反馈治疗
- 车队车辆保养维护方案
- 《婴幼儿健康管理》课件-项目一 婴幼儿健康管理基础
- 医院法律法规专题培训课件
- 代持股合同范本8篇
- 线粒体膜电位检测
- 机场安检员笔试题及答案
- 13《我们的衣服》(教学设计)2023-2024学年二年级上册科学青岛版
- 两癌防治知识培训课件
- 2025届福建省名校联盟高三2月大联考语文试题【含答案解析】
评论
0/150
提交评论