版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序设计实习报告小型公司工资管理系统的设计专业班级:电子信息工程目录1、 实习内容12、 设计思路2三、程序清单3四、运行结果4五、程序使用说明5六、总结及心得体会6一、实习内容本次实习的内容是设计一个小型公司的工资管理系统,通过这个系统实现对经理、技术员、销售员及销售经理等公司成员的职工号、姓名、年龄、月 工 资等信息的数据输入、数据处理、数据的输出显示、数据的备份等功能。本 次 实习主要是针对较难综合题目进行分析、编程、调试和运行,这利于我们进一步掌握面向过程和面向对象程序的基本方法和编程技巧,巩固所学理论知识,使理论与实践相结合,提高分析问题解决问题的能力。本次实习的题目及要求如下:1.
2、题目:小型公司工资管理系统的设计2.设计说明与基本要求:公司主要有4类人员:经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、性别、年龄、月工资等信息;(2)工资的计算方法:经理:固定月薪为8000元;技术员:工作时间X工资(100元/小时);销售员:销售额x 4%提成;销售经理:底薪(5000元)+下属销售员销售额总额X 0.5%;(3)员工基本数据的输入:要求每类人员不能少于4人,其中销售员需要8名,每名销售经理手下有2名 销售员。(4)各类的数据成员访问权限设置为:protected 3.实现的基本功能:菜单选择功能;(2)数据的输入;数据的统计;(4)数据的输出,显示;(5
3、)数据的备份;(6)退出系统。二、设计思路1 .类的层次结构2 .设计思路首先要总体设计,要有一个菜单,用于选择各项功能,用来进行数据的录入,数据的统计,数据的打印,数据的备份,进入多级菜单,退出系统等功能。这就要充分利用了类的继承与派生的知识,先定义一个基类base,由基类共有派生出技术员类Tec,销售员类Sel,经理类Man,又由经理类公有派生出销售经理类Sma。把基类定义成虚基类,通过基类去写 的派生类就可以调用基类 的 公有成员。程序中宜使用全局变量,便于修改,简便清晰。定义完类后,定 义各函数,因为各功能的实现需要定义与其功能相适应的函数,所以定义了数 据输入函数ph1(),数据打印
4、函数ph3(),数据统计函数ph2(),数据备份函数 save(), 进入多级菜单进行统计函数ph4()等。将主函数放在最后来实现整个程序的运行, 运用switch语句选择系统进行的工作,在主菜单中进行调用各函数,从而实现各功能。程序中要求销售经理工资排序则采用的冒泡排序法实现。三、程序清单# include <iostream># include <fstream> # include <iomanip># include <string>using namespacestd;fstreamoutfile;intint salary4=0,0,
5、0,0;int s4=0,0,0.0);void menu()/定义主菜单函数cout«" 小型公司工资管理系统 "«endl;cout«" 1 "«endl;cout«" |请选择您所需的操作I "vvendl;cout«" |数据输入:1,并按回车键|"vvendl;cout«" |数据统计:2,并按回车键|"vvendl;cout«" |数据打印:3,并按回车键|"vvendl;cout
6、171;" |数据备份:4,并按回车键|"vvendl;cout«" |退出系统:5,并按回车键|"vvendl;cout«" |多级菜单:6,并按回车键|"vvendl;cout«" 11 "«endl;COUtVV”请选择一个操作:";)void menus()/定义多级菜单函数cout«" 小型公司工资管理系统 "«endl;cout«" 1 "«endl;cout«&q
7、uot; |请选择您所需的操作I "«endl;cout«" |技术员基本情况:1,并按回车键| "vvendl;cout«" |经理基本情况 :2,并按回车键| “vvendl;cout<<" |销售经理基本情况:3,并按回车键| "<<endl;cout<<" | 销售员基本情况:4,并按回车键| "<<endl;cout<<" |返回上一级:5,并按回车键| "<<endl;cout<
8、;<" 11"<<endl;cout<<”请选择一个操作:")void heng()/定义 heng 函数cout<<" " <<endl;void form()/定义 form 函数cout<<" "<<endl;cout<<" |职工号|姓名| 性别 I 年龄 I 工资 I "<<endl;void forms()/定义 forms 函数outfile<<" 111 1 &quo
9、t;<<endl;outfile<<" |职工号|姓名| 性别 I 年龄 I 工资 I "<<endl;void head()/定义 head 函数cout<<" "<<endl;cout<<" |职工号|姓名|性别 I年龄 I 工资 I"<<endl;<<endl;void end()/定义 end 函数cout<<" 11classBase定义基类protected: int a,b,n;string c;char
10、d;classTec:protected Base技术员类public:void print1 ()cout<<”技术员的编号:"cin>>a;cout<<"其姓名:"cin>>c;cout<<"性别(m/w):"cin>>d;cout<<"年龄:"cin>>n;cout<<”工作时间:"cin>>b;void out1()cout<<" |11111 "<&
11、lt;endl;cout<<" | "<<setw(8)<<a<<" | "<<setw(6)<<c<<" | "<<setw(8)<<d<<" | "<<setw(8)<<n<<" | "<<setw(12)<<int(b*100)<<" | "<<endl;int a1(
12、)return a;int b1()return b;string c1()return c;chard1()return d;int n1()return n;Tec,tec4;classMan:protected Base 经理类public:void out2()cout<<" |11111 "<<endl;cout<<" | "<<setw(8)<<a<<" | "<<setw(6)<<c<<" | "
13、;<<setw(8)<<d<<" | "<<setw(8)<<b<<" | "<<setw(12)<<"8000"<<" | "<<endl;int a2()return a;int b2()return b;string c2()return c;chard2()return d;int n2()return n;void print2 ()cout<<"经理的编号:&qu
14、ot;cin>>a;cout<<"其姓名:"cin>>c;cout<<"性别(m/w):"cin>>d;cout<<"年龄:"cin>>b;Man,man4;class Sel:protected Base/销售员类public:void print3 ()cout<<”销售员的编号:"cin>>a;cout<<"其姓名:"cin>>c;cout<<"性
15、别(m/w):"cin>>d;cout<<"年龄:"cin>>b;cout<<"销售额:"cin>>n;cout<<"所属销售经理的编号:"cin>>f;int printsnum() return f;int printmoney()return n;void out() cout<<" |111 "<<endl;cout<<" | "<<setw(9)
16、<<a<<"I "<<setw(9)<<c<<"| "<<setw(9)<<n<<"I "<<endl;void out3()cout<<" |111111 "<<endl;cout<<" | "<<setw(8)<<a<<" | "<<setw(6)<<c<<&
17、quot; | "<<setw(8)<<d<<" | "<<setw(8)<<b<<" | "<<setw(10)<<int(n*0.04)<<" | "<<setw(18)<<f<<" | "<<endl;int a3()return a;int b3()return b;string c3()return c;chard3()return d;in
18、t n3()return n;int f3()return f;private:int f;Sel,sel8;classSma:protectedMan/销售经理类public:void print4 ()cout<<”销售经理的编号:"cin>>a;cout<<"其姓名:"cin>>c;cout<<"性别(m/w):"cin>>d;cout<<"年龄:"cin>>b;int printnum()return a;string p
19、rintname()return c;int a4()return a;int b4()return b;string c4()return c;chard4()return d;int n4()return n;void mout()cout<<" |11111 "<<endl;cout<<" | "<<setw(8)<<a<<" | "<<setw(6)<<c<<" | "<<setw(8)&
20、lt;<d<<" | "<<setw(8)<<b<<" | "<<setw(12)<<int(5000+0.005*si)<<" | "<<endl;Sma sma4;void ph1()/定义数据输入函数 for(i=0;i<4;i+)teci.print1();heng();for(i=0;i<4;i+)mani.print2();heng();for(i=0;i<8;i+)seli.print3();heng(
21、);for(i=0;i<4;i+)smai.print4();heng();menu();void ph2()/定义数据统计函数int salary4=0,0,0,0;int s4=0,0,0,0;for(int j=0;j<=3;j+)cout<<"n 职工号为"<<smaj.printnum()<<"销售经理"<<smaj.printname()<<"下 属销售员的业绩为:"<<endl;cout<<'n'<<
22、;endl;cout<<" "<<endl;cout<<" | 职工号 I 姓名 I 销售额 | "<<endl;for(i=0;i<8;i+)if(seli.printsnum()=smaj.printnum()seli.out();sj+=seli.printmoney();salaryj=sj;cout<<" |111 "<<endl;cout<<" | "<<"销售额总计:"<&l
23、t;"I "<<setw(24)<<sj<<" | "<<endl;cout<<" 111"<<endl;cout<<"n销售经理按工资排序为:"<<'n'<<endl;form();for(i=0;i<3;i+)for(j=0;j<3-i;j+)if(sj<sj+1)m=sj;sj=sj+1;sj+1=m;for(i=0;i<4;i+)for(j=0;j<4;j
24、+)if(salaryj=si)smaj.mout();break;cout<<" 111111 "<<endl;menu();void ph3 ()/定义数据打印函 数cout<<"请等待"<<endl;cout<<"职工基本情况一览表如下"<<endl;for(;)/死循环menus();cin>>m;if(m=1)cout<<"技术员"<<endl;form();for(int i=0;i<4;i
25、+)teci.out1();cout<<" 111111 "<<endl;heng();continue;elseif(m=2)cout<<"经理"<<endl;form();for(i=0;i<4;i+)mani.out2();cout<<" 11111 -1 "<<endl;heng();continue;elseif(m=3)cout<<"销售经理"<<endl;form();for(i=0;i<2;i
26、+)for(int j=0;j<4;j+)if(salaryj=si)smaj.mout();break;cout<<" 111111 "<<endl;heng();continue;else if(m=4)cout<<"销售员"<<endl;cout<<" |I-|1 "<<endl;cout<<" |职工号|姓名|性别 I年龄 I 工资 I所属部门 经理编号 I "<<endl; for(int k=0;k&l
27、t;=7;k+)selk.out3();cout<<" 11111 11 "<<endl;heng();continue;elseif(m=5)break;elsecout<<"你的选择有误,请重新选择。:"<<endl;void ph4 ()/定义进入多级菜 单,数据统计函数cout<<"职工基本情况一览表如下:"<<endl;cout<<"技术员"<<endl;head();for(i=0;i<4;i+)tec
28、i.out1();end();cout«""«endl;coutvv”经理" vvendl;head();for(i=0;i<4;i+)mani.out2();end();cout«""«endl;coutvv"销售经理"vvendl;head();for(i=0;i<4;i+)smai.mout();end();cout«""«endl;coutvv”销售员"vvendl;cout«" 111111 &
29、quot;«endl;cout«" |职工号|姓名| 性别 I 年龄 I 工资 I所属 部门经理编号I “vvendl;for(i=0;i<8;i+)seli.out3();cout«" 111111-1 "«endl;cout«""«endl;menu();)void save()/定义数据备份函数cout<<"数据备份中,请稍等."<<endl;outfile.open("D:save.txt",ios:trun
30、c|ios:out);outfile<<"技术员"<<endl;forms();for(i=0;i<4;i+)outfile<<" |111 -|1 "<<endl; outfile<<" | "<<setw(8)<<teci.a1()<<" I "<<setw(6)<<teci.c1()<<" | "<<setw(8)< <teci.
31、d1()<<"| "<<setw(8)<<teci.n1()<<" | "<<setw(12)<<int(teci.b1()*100)<<" | "<<en dl;outfile<<" 1111 11 "<<endl; outfile<<"" <<endl;outfile<<"经理"<<endl; forms(
32、); for(i=0;i<4;i+)outfile<<" | "<<endl; outfile<<" | "<<setw(8)<<mani.a2()<<" | "<<setw(6)<<mani.c2()<<" | "<<s etw(8)<<mani.d2()<<" | "<<setw(8)<<mani.b2()<<
33、;" | "<<setw(12)<<"8000"<<" | "<<e ndl;outfile<<" '''''' "<<endl;outfile<<<<endl;outfile<<"销售经理"<<endl;forms();for(i=0;i<4;i+)outfile<<" |111 -|1 "
34、<<endl;outfile<<" | "<<setw(8)<<smai.a4()<<" | "<<setw(6)<<smai.c4()<<" | "<<se tw(8)<<smai.d4()<<" | "<<setw(8)<<smai.b4()<<" "<<setw(12)<<int(5000+0.005
35、*sa laryi)<<"| "<<endl;outfile<<" 111111 "<<endl;outfile<<"" <<endl;outfile<<"销售员"<<endl;outfile<<" -11 "<<endl;outfile<<" |职工号|姓名|性别 I年龄 I 工资 I所属部 门经理编号I "<<endl; for(
36、i=0;i<8;i+)outfile<<" |1 "<<endl;outfile<<" | "<<setw(8)<<seli.a3()<<" | "<<setw(6)<<seli.c3()<<" | "<<setw(8)< <seli.d3()<<"| "<<setw(8)<<seli.b3()<<"
37、| "<<setw(10)<<int(seli.n3()*0.04)<<" | "<<se tw(18)<<seli.f3()<<" | "<<endl;"<<endl;outfile<<"" <<endl;outfile.close();cout<<"备份完成! "<<endl;int main() 主函数menu();for(i=1;i<=10
38、;i+)cin>>x;switch (x)case1:ph1();break;case2: ph2();break;case3:ph4();break;case4:save();menu();break;case6:ph3();menu();break;if(x=5)char t;cout<<"您确定要退出吗?退出:请按 Y,否:请按N"<<endl;cout<<"请选择:";cin>>t;for(;)if(t!='n'&&t!='N'&&t!='y'&&t!='Y')cout<<"您的选择有误,t#重新选择(Y/N):"elsebreak;cin>>t;if(t='n'|t='N')menu();else break;return 0;四、运行结果5、 程序的使用 说 明1 .菜单说明:(1)数据输入指通过键 盘输入经理、技术员、销售员及销售经理等公司成员的职工号、 姓名、年龄等各项数据;(2)数据统计指
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 互感器教学设计中职专业课-变压器与电动机-电气设备运行与控制-装备制造大类
- 创新生态浪尖自立实施产业创新发展行动方案
- 广东省肇庆市2016-高中地理 限时训练一评讲教案 新人教版必修2
- 基于深度学习的图像分割结题报告
- 装饰公司员工劳动合同
- 苏教版初中体育《双手头上抛实心球》教学设计
- 高中物理 第19章 原子核 2 放射性元素的衰变教学设计 新人教版选修3-5
- 人教版英语七年级下册Unit 11 Section A 1a-2c 教学设计+教学设计
- 血栓形成教学设计中职专业课-病理学基础-医学类-医药卫生大类
- 计算机组成教学设计中职专业课-计算机组装与维修-计算机类-电子与信息大类
- T/CECCEDA 1-2025企业管理创新体系要求及实施指南
- 组合结构素描课件
- 2025年全国中小学校党组织书记网络培训示范班在线考试题库及答案
- 运输车辆卫生管理制度
- 《基于WEB漏洞检测系统的设计与实现》10000字(论文)
- 铁路劳动安全 课件 第五章 安全标志标识
- 【MOOC】颈肩腰腿痛中医防治-暨南大学 中国大学慕课MOOC答案
- 煤矿井下无轨胶轮车司机安全技术培训大纲及考核标准
- DB3210T 1178-2024林权地籍调查技术规程
- 2、第二章-犬、猫的品种
- 初二物理第一、二单元测试试卷
评论
0/150
提交评论