版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象程序设计课程设计报告题目:小型公司工资管理系统院系:专业班级:学号:学生姓名:小组成员:2011年9月7日一、 引言本题对程序有如下要求:(1)公司主要有4类人员:经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、月工资、岗位、年龄、性别等信息。 (2)工资的计算方法: a.经理:固定月薪为8000; b.技术员:工作时间*小时工资(100元每小时); c.销售员:销售额*4%提成; d.销售经理:底薪(5000)+所辖部门销售额总额*0.5%; (3)输入数据要求每类人员不能少于4人,并按以下格式输出: 职工号姓名性别年龄岗位工资排名 及某部门经理所辖部门各售货员的业绩及
2、自己的工资表: (4)菜单要求:要有一个菜单,用于选择各项功能,其中 1)数据录入:输入各种数据; 2)数据统计:各销售经理的工资计算及最终按工资进行的冒泡排序; 3)数据打印:打印上述表格; 4)数据备份:把相关数据写入文件; 5) 退出:推出本系统;二、 系统功能介绍:充分利用了类的继承与派生的知识,先定义了一个雇员类employee,由雇员类公有派生出技术员类tech,销售员类seller,经理类manager,由销售员类seller,经理类manager公有派生出销售经理类xmanager。把基类都定义为虚基类。通过基类去写的派生类就可以调基类的公有成员。利用for循环把经理数据,技术
3、员数据,销售员数据,销售经理数据输入,利用冒泡排序法把各销售经理的资按升序排列。利用switch进行选择系统进行的工作。在主菜单中进行调用各函数,从而实现系统各功能的运行。 三、 模块设计:主函数进入主显示界面按照提示进行选择数据查询数据备份 退出系统数据输入数据统计数据打印 返回上一级经理数据输入技术员数据输入销售员数据输入销售经理数据输入结束程序四、 各个成员函数间关联:void data_input(); 进行数据输入操作void statistics(); /进行数据统计操作void data_print(); 进行数据打印操作void data_find(); 进行数据查询操作voi
4、d data_save(); 进行数据备份操作ofstream对c+程序设计实习.txt进行操作void save_new();保存新增加的联系人ofstream对c+程序设计实习.txt进行操作void menu(); 显示主菜单四、结果显示图:五、程序清单:#include#include#include#include#includeusing namespace std;/常变量(供修改用):const int n1=2,n2=2,n3=4,n4=2; /*定义公司各类职工人数(方便修改) (n1:技术员人数;n2:经理人数;n3:销售员人数;n4:销售经理人数 )*/const do
5、uble m_salary=8000; /经理固定月工资const double hourpay=100; /技术员小时工资const double basicpay=5000; /销售经理的底薪const double s_proportion=4.0/100; /销售员的工资提成比例const double sm_proportion=0.5/100; /销售经理的提成比例/声明部分:void menu(); /主菜单void menu2(); /数据输入二级菜单void menu3(); /数据打印二级菜单void data_input(); /数据输入函数void data_print
6、(); /数据打印void charthead1(); /制作表头1函数,统计销售额void charthead2(); /制作表头2函数,数据打印void chartend(); /制作表尾 void statistics(); /数据统计double sm_salary(); /销售经理工资计算void sm_print(); /销售经理打印数据void data_find(); /数据查询void data_save(); /数据备份ofstream outfile; /打开磁盘文件流对象string f_name; /全局变量(查询用)/定义类:class employee /雇员类(
7、基类)public: void input() /数据输入函数 coutnum; coutname; coutsex; coutage; void print() /打印数据函数 coutendl; coutsetw(6)num setw(8)name setw(6)sex setw(6) age setw(7)pay endl; void find() /查询函数 if(f_name=name) charthead2(); print(); chartend(); coutendl; void save() /备份数据函数 outfileendl; outfilesetw(6)num set
8、w(8)name setw(6)sex setw(6) age setw(7)pay endl; protected: int num; /职工号 string name; /职工姓名 char sex; /职工性别 int age; /职工年龄 double pay; /职工工资;class technician:public employee /技术员类(公有继承) public: void input() cout技术员的; employee:input(); coutworktime; void print() pay=worktime*hourpay; employee:print(
9、); void find() employee:find(); void save() pay=worktime*hourpay; employee:save(); protected: double worktime; /工作时间(小时);class manager:public employee /经理类public: void input() cout经理的; employee:input(); void print() pay=m_salary; employee:print(); void find() employee:find(); void save() pay=m_salar
10、y; employee:save(); ;class sell_manager:public employee /销售经理类public: void input() cout销售经理的; employee:input(); int sm_number() /调用销售经理职工号 return num; string sm_name() /调用销售经理姓名 return name; void print() coutendl; coutsetw(6)num setw(8)name setw(6)sex setw(6) age ; void save() outfileendl; outfilese
11、tw(6)num setw(8)name setw(6)sex setw(6) age ; ;class seller:public employee /销售员类public: seller() sold_amount=0; /构造函数,销售额初始化为0 void input() cout销售员的; employee:input(); coutsold_amount; coutnu; void grade() /销售员业绩输出 coutendl; coutsetw(6)num setw(8)name setw(7)sold_amount endl; void print() pay=sold_
12、amount*s_proportion; coutendl; coutsetw(6)num setw(8)name setw(6)sex setw(6) age setw(7)pay setw(13)nu endl; int s_number() /调用销售员所属销售经理职工号 return nu; double amount() /调用销售员销售额 return sold_amount; void find() if(f_name=name) coutendl; cout 职 工 号 姓 名 性 别 年 龄 工 资 所属部门经理编号 endl; print(); cout; void sav
13、e() pay=sold_amount*s_proportion; outfileendl; outfilesetw(6)num setw(8)name setw(6)sex setw(6) age setw(7)pay setw(13)nu endl; protected: double sold_amount; /销售额 int nu; /所属销售经理职工号;/定义全局对象数组 technician tn1; /技术员 manager mn2; /经理 seller sn3; /销售员 sell_manager smn4; /销售经理(下属若干销售员)/主函数部分:int main() c
14、har n; menu(); for(int i=0;in; switch(n) case1: /数据输入 coutendl您所选操作为数据输入,请继续-endlendl; data_input(); coutendl; menu(); break; case2: /数据统计 coutendl您所选操作为数据统计,请继续-endlendl; statistics(); coutendl销售经理按工资排序为:nendl; sm_print(); coutendl; menu(); break; case3: /数据打印 coutendl您所选操作为数据打印,请继续-endlendl; couta
15、数据打印中,请等待nnendl; cout职工基本情况一览表如下:nendl; data_print(); coutendlendl; couta-数据打印完毕-nnendl; menu(); break; case4: /数据查询 coutendl您所选操作为数据查询,请继续-endlendl; coutf_name; coutendl-正在查询,请等待-endlendl; cout您查询的信息如下:endlendl; data_find(); coutendlendl; menu(); break; case5: /数据备份 outfile.open(c+程序设计实习.txt,ios:ou
16、t); /打开磁盘文件流对象 coutendl您所选操作为数据备份,请继续-endlendl; outfile职工基本情况一览表如下:nendl; data_save(); outfile.close(); coutendlendl; couta-数据备份完成,请继续-endlendl; menu(); break; case0: /退出系统 coutendl您所选操作为退出系统,请确认-endlendl; cout 是( y ) n; if(n=y) coutn-请按任意键退出系统-endl; exit(0); coutendl; else menu(); break; default: c
17、outendl-出错!请重新选择操作! nendl; menu(); break; return 0;/自定义函数部分:void menu() /菜单函数 cout 小型公司工资管理系统 endl; coutendl; cout 请选择您所需的操作 endl; cout 数据输入:1,并按回车键; endl; cout 数据统计:2,并按回车键; endl; cout 数据打印:3,并按回车键; endl; cout 数据查询:4,并按回车键; endl; cout 数据备份:5,并按回车键; endl; cout 退出系统:0,并按回车键; endl; coutendl; cout 请选择一
18、个操作:;void menu2() /数据输入二级菜单函数 cout 小型公司工资管理系统 endl; coutendl; cout 请选择您所需的操作 endl; cout 经理数据输入 :1,并按回车键; endl; cout 技术员数据输入 :2,并按回车键; endl; cout 销售员数据输入 :3,并按回车键; endl; cout 销售经理数据输入:4,并按回车键; endl; cout 返回上一级 :5,并按回车键; endl; coutendl; cout 请选择一个操作:;void menu3() /数据打印二级菜单函数 cout 小型公司工资管理系统 endl; cout
19、endl; cout 请选择您所需的操作 endl; cout 经理数据打印 :1,并按回车键; endl; cout 技术员数据打印 :2,并按回车键; endl; cout 销售员数据打印 :3,并按回车键; endl; cout 销售经理数据打印:4,并按回车键; endl; cout 返回上一级 :5,并按回车键; endl; coutendl; cout 请选择一个操作:;void data_input() /数据输入函数 char p;int i; menu2(); for(int j=0;jp; if(p=5) break; else switch(p) case1: for(i
20、=0;in2;i+) mi.input(); coutendl-endl;menu2();break; case2: for(i=0;in1;i+) ti.input(); coutendl-endl;menu2();break; case3: for(i=0;in3;i+) si.input(); coutendl-endl;menu2();break; case4: for(i=0;in4;i+) smi.input(); coutendl-endl;menu2();break; void charthead1() /制表头1(数据统计用) coutendl; cout职 工 号 姓 名
21、销 售 额 endl;void charthead2() /制表头2(数据打印及销售经理数据统计用) coutendl; cout 职 工 号 姓 名 性 别 年 龄 工 资 endl;void chartend() /制表尾(数据打印及销售经理数据统计用) cout; void statistics() /数据统计函数 int i,j; for(i=0;in4;i+) double sum=0; coutendl职工号为 smi.sm_number() 销售经理 smi.sm_name() 下属销售员的业绩为:endlendl; charthead1(); for(j=0;jn3;j+) i
22、f(sj.s_number()=smi.sm_number() sum=sum+sj.amount(); sj.grade(); coutendl; cout销售额总计setw(12)sum endl; coutendl; double salaryn4;double sm_salary() /销售经理工资计算及排序 int i,j;double a ;sell_manager b; for(int k=0;kn4;k+) salaryk=0; for(i=0;in4;i+) double sum=0; for(j=0;jn3;j+) if(sj.s_number()=smi.sm_numbe
23、r() sum=sum+sj.amount(); salaryi=sum*sm_proportion+basicpay; for( j=0;jn4-1;j+) for( i=0;in4-1-j;i+) if(salaryisalaryi+1) a=salaryi+1;salaryi+1=salaryi;salaryi=a; b=smi+1;smi+1=smi;smi=b; return 0;void sm_print() sm_salary(); charthead2(); for(int i=0;in4;i+) smi.print(); coutsetw(7)salaryi endl; ch
24、artend(); coutendl;void data_print() /数据打印 char p;int i,j; menu2(); for(j=0;jp; if(p=5) break; else switch(p) case1: coutendl经理endl; /经理信息 charthead2(); for(i=0;in2;i+) mi.print(); chartend(); coutendlendl-endl; menu3();break; case2: coutendl技术员endl; /技术员信息 charthead2(); for(i=0;in1;i+) ti.print();
25、chartend(); coutendlendl-endl; menu3();break; case3: coutendl销售员endl; /销售员信息 coutendl; cout 职 工 号 姓 名 性 别 年 龄 工 资 所属部门经理编号 endl; for(i=0;in3;i+) si.print(); cout; coutendlendl-nendl; menu3();break; case4: coutendl销售经理endl; /销售经理信息 sm_salary(); sm_print(); coutendlendl-endlendl; menu3();break; void data_find() /数据查询函数 for(int i=0;in1;i+) ti.find(); for(i=0;in2;i+) mi.find(); for(i=0;in3;i+) si.find(); for(i=0;in4;i+) if(f_name=smi.sm_name()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024绿化带杂草管理协议样本
- 2024年适用租车服务协议综合范例
- 2024年工程项目食堂供应承包协议
- 2024年土建工程协议示范文本
- 2024在线支付安全规范SET协议
- 2024年个人贷款协议模板大全2
- 医生聘用合同的岗位职责
- 2024年师徒合作协议范本下载
- 2024年度西安二手房销售协议模板
- 2024年金融领域反担保协议参考样式
- 样品承认流程(共4页)
- 金蝶kis专业版操作手册V20
- 房地产估价公司估价质量管理制度
- 烟气焓计算复习课程
- 梯形练字格A4纸打印版
- 2014年SHE教育培训计划
- 井下安全阀简介
- 机场使用手册飞行区场地管理
- XX学院项目主体封顶仪式策划方案
- 凯泉水泵使用说明书
- 低血糖处理流程
评论
0/150
提交评论