版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中国石油大学(华东)信息与控制工程学院程序设计实习报告小型公司工资管理系统的设计专业班级:电子信息工程*班学号:*姓名:*指导教师:* 时 间:20202013年7月目录一、 实习内容01二、 设计思路02三、 程序调试过程中典型问题及解决方法03四、 运行结果04五、 程序使用说明10六、 心得体会及课程改进设想10备注:页码根据目录的实际页码进行标注一、实习内容1. 题目:小型公司工资管理系统的设计2. 设计说明与基本要求(1) 公司主要有4类人员:经理、技术员、销售员、销售经理。 要求存储这些人的职工号、姓名、性别、年龄、月工资等 信息;(2) 工资的计算方法 经理:固定月薪为8000元
2、; 技术员:工作时间*小时工资(100元/小时);销售员:销售额*4%提成; 销售经理:底薪(5000元)+下属销售员销售额总额*0.5%;(3) 员工基本数据的输入 要求每类人员不能少于2人,其中销售员需要4名,每名销 售经理手下至少有2名销售员。(4) 各类的数据成员访问权限设置为:protected(5)注意一个销售经理管辖多个销售员。(6)其他功能可适当扩充。(7)要求在控制台下完成。3. 实现基本功能 (1) 菜单选择功能 (2) 数据输入:输入各种数据; (3) 数据统计:统计各销售经理下属销售员的销售额及销售额之和;销售经理按工资进行冒泡排序; (4)数据打印:打印各类员工的数据
3、信息; (5)菜单说明 1.数据录入指通过键盘输入各类员工的各项数据; 2.数据统计指统计各销售经理下身书销售员的销售额及销售额之和;销售按工资进行冒泡排序; 3.数据打印指按照表格的格式在屏幕上输出各员工的信息; 4.数据备份指将所有员工的信息保存到文件; 5.退出:结束程序的运行。二、设计思路充分利用了类的继承与派生的知识,先定义了一个雇员类staff,由雇员类公有派生出技术员类tech,销售员类saleman,经理类mannger,由销售员类saleman,经理类mannger公有派生出销售经理类salemannger。 各类的数据成员访问权限设置为:protected,继承方式都运用公
4、有继承,通过基类去写的派生类就可以调基类的公有成员。利用for循环把经理数据,技术员数据,销售员数据,销售经理数据输入,利用冒泡排序法把各销售经理的资按升序排列。利用if语句进行选择系统进行的工作。在主菜单中进行调用各函数,从而实现系统各功能的运行。主函数要尽可能得简明扼要,只是起调用其它函数的作用。每一个函数之间要相互协调,要让程序中的变量和函数能够得到分运用,这样可以加快程序的运行速度,加强程序的实用性。三、程序调试过程中典型问题及解决方法1、这个程序比较长,在编程的时候给我最深刻的体会是一定要整体考虑布局,并且一定要注意程序的简洁性。整体布局,首先体现在对垒中各个变量、函数的定义以及对对
5、象的声明上。因为本程序要求类中变量是保护类型的变量,也就意味着再累外不能直接访问,只能够通过类中公有函数去访问,而类中的数据在后续操作中要参与统计,比较等操作,所以在定义访问数据的函数时要注意函数名的命名,一定要前后照应。例如,本程序中的四个派生类中都含有从雇员积累中继承过来的“工资”这一个数据,但是在不一样的类中有不一样的情况,在经理类中是固定的,但是在销售员类和销售经理类中是进行计算的,这就要求可以访问它们的函数有不一样的返回值。一边在后面进行统计。2、本程序中每一个类中都有多个对象,我刚开始在编程的时候时将它们一个一个独立的进行声明。但最后发现,其实利用对象数组进行声明更加简洁与方便。尤
6、其是在对销售经理利用冒泡法排序的时候,以及在统计数据的时候,直接利用多个FOR循环结构就可以很方便的对它们进行操作,省去了很多麻烦。3、在本程序中我们应该充分的利用类的继承和派生的优越性。我一开始在定义四个派生类时,在每一个派生类中都分别定义了输入输出姓名,年龄,性别的函数。到最后觉得十分繁琐,其实既然四个类都是从雇员类中继承过来的,所以直接在雇员基类中定义一个输入姓名,年龄,性别的函数就可以解决问题。4、本程序中中需要定义的函数,对象较多,所以要尽可能是名称简洁易懂,这样我们在检查程序的时候比较好检查,刚开始的时候我没注意到这个问题这给我后边的编程工作带来很大麻烦,我认为这在编程中是比较重要
7、的。四、运行结果五、程序使用说明点击运行后须按所给提示输入,当提示给出后可供选择的选项有1、2、3、4、5选择1时,可输入公司职员的基本信息当第1步输入完后可以运行第2步,对销售经理和销售员的基本信息进行统计。选择3时,可以将公司职员的信息以表格方式进行统计。选择4时,可以在程序所在的文件夹内生成一个TXT格式的文本文档。选择5时,可以选择是否退出程序。在提示给出后,当输入错误的选择时可给出提示并进行重新选择。六、心得体会及课程改进设想程序清单以上为实验报告,下面附上程序#include<fstream>#include<iostream>#include<iom
8、anip>#include <string>using namespace std;class staffprotected:int num;string name;double money;int age;char sex;public:int g_num()return num;string g_name()return name;double g_money()return money;int g_age()return age;char g_sex()return sex;class tech:public staffprotected:int time;public
9、:int g_time()return time;void input1()cout<<"技术员的编号:"cin>>num;cout<<"其姓名:"cin>>name;cout<<"性别(m/w):"cin>>sex; cout<<"年龄:"cin>>age;cout<<"工作时间:"cin>>time;class mannger:public staffpublic:void
10、 input2()cout<<"经理的编号:"cin>>num;cout<<"其姓名:"cin>>name;cout<<"性别(m/w):"cin>>sex;cout<<"年龄:"cin>>age;class salemannger:public manngerpublic:void input3()cout<<"销售经理的编号:"cin>>num;cout<<&q
11、uot;其姓名:"cin>>name;cout<<"性别(m/w):"cin>>sex;cout<<"年龄:"cin>>age;class saleman:public staffprotected:int num2;public:int g_num2()return num2;void input4()cout<<"销售员的编号:"cin>>num;cout<<"其姓名:"cin>>name;co
12、ut<<"性别(m/w):"cin>>sex;cout<<"年龄:"cin>>age;cout<<"销售额:"cin>>money;cout<<"所属销售经理的编号:"cin>>num2; ; int x,i,j; tech t4; mannger m4; salemannger s4,e; saleman sa8; double sum4;int main() void setout(); void put2();vo
13、id put3();void put4();void put5(); for(;) setout(); cin>>x; if(x=1) for(i=0;i<4;i+) ti.input1(); cout<<""<<endl; for(i=0;i<4;i+) mi.input2(); cout<<""<<endl; for(i=0;i<8;i+) sai.input4(); cout<<""<<endl; for(i=0;i<4;
14、i+) si.input3(); cout<<""<<endl; else if(x=2) put2(); else if(x=3)put3(); else if(x=4)put4();else if(x=5)int b;cout<<"请问是否要退出系统:选择 1是;2否"<<endl;cin>>b;if(b=1)exit(1);if(b=2)continue;elsecout<<"输入错误!请检查后重新输入!"<<endl; /此处为大循环的终止re
15、turn 0;void setout()cout<<"小型公司工资管理系统"<<endl; cout<<""<<endl; cout<<" 请选择您所需的操作 "<<endl; cout<<" 数据输入:1,并按回车键 "<<endl; cout<<" 数据统计:2,并按回车键 "<<endl; cout<<" 数据打印:3,并按回车键 "<
16、;<endl; cout<<" 数据备份:4,并按回车键 "<<endl; cout<<" 退出系统:5,并按回车键 "<<endl; cout<<""<<endl; cout<<"请选择一个操作 " ; void put2()double y,sum4=0,0,0,0;for(i=0;i<4;i+) cout<<"职工号为"<<si.g_num()<<"
17、销售经理"<<si.g_name()<<"下属销售员的业绩为:"<<endl; cout<<""<<endl; cout<<" 职工号 姓名 销售额 "<<endl; for(j=0;j<8;j+) if(si.g_num()=saj.g_num2()cout<<""<<endl; cout<<""<<setw(9)<<saj.g_num
18、()<<" "<<setw(8)<<saj.g_name()<<""<<setw(8)<<saj.g_money()<<""<<endl; sumi=sumi+saj.g_money(); cout<<""<<endl; cout<<""<<"销售额总计"<<""<<setw(10)<
19、<sumi<<" " <<endl; cout<<""<<endl;cout<<" 销售经理按工资排序:"<<endl;for(j=0;j<3;j+)for(i=0;i<3-j;i+)if(sumi<sumi+1)y=sumi;sumi=sumi+1;sumi+1=y;e=si;si=si+1;si+1=e;cout<<""<<endl;cout<<"职工号 姓名 性别年龄
20、工资 "<<endl; for(i=0;i<4;i+) cout<<""<<endl; cout<<""<<setw(6)<<si.g_num()<<""<<setw(7)<<si.g_name()<<" "<<setw(4)<<si.g_sex()<<""<<setw(5)<<si.g_age()&l
21、t;<" "<<setw(8)<<5000+sumi*0.005<<""<<endl; cout<<""<<endl;cout<<""<<endl;void put3()cout<<"请等待"<<endl;cout<<"职工基本情况一览表如下"<<endl;cout<<"技术员"<<e
22、ndl;cout<<""<<endl;cout<<"职工号 姓名 性别年龄 工资 "<<endl; for(i=0;i<4;i+) cout<<""<<endl;cout<<""<<setw(6)<<ti.g_num()<<""<<setw(7)<<ti.g_name()<<" "<<setw(4)<
23、;<ti.g_sex()<<""<<setw(5)<<ti.g_age()<<" "<<setw(8)<<ti.g_time()*100<<""<<endl; cout<<""<<endl;cout<<""<<endl;cout<<"经理"<<endl;cout<<""&l
24、t;<endl;cout<<"职工号 姓名 性别年龄 工资 "<<endl; for(i=0;i<4;i+) cout<<""<<endl; cout<<""<<setw(6)<<mi.g_num()<<""<<setw(7)<<mi.g_name()<<" "<<setw(4)<<mi.g_sex()<<"
25、"<<setw(5)<<mi.g_age()<<" "<<setw(8)<<8000<<""<<endl; cout<<""<<endl;cout<<""<<endl;cout<<"销售经理"<<endl;cout<<""<<endl;cout<<"职工号 姓名 性别
26、年龄 工资 "<<endl; for(i=0;i<4;i+) cout<<""<<endl;cout<<""<<setw(6)<<si.g_num()<<""<<setw(7)<<si.g_name()<<" "<<setw(4)<<si.g_sex()<<""<<setw(5)<<si.g_age()
27、<<" "<<setw(8)<<5000+sumi*0.005 <<""<<endl; cout<<""<<endl;cout<<""<<endl;cout<<"销售员"<<endl;cout<<""<<endl;cout<<"职工号 姓名 性别年龄 工资 所属部门经理编号"<<
28、endl; for(i=0;i<8;i+) cout<<""<<endl;cout<<""<<setw(6)<<sai.g_num()<<""<<setw(7)<<sai.g_name()<<" "<<setw(4)<<sai.g_sex()<<""<<setw(5)<<sai.g_age()<<" &
29、quot;<<setw(8)<<0.04*sai.g_money()<<""<<setw(16)<<sai.g_num2()<<""<<endl; cout<<""<<endl;cout<<""<<endl;void put4()ofstream outfile("f1.txt",ios:out); /定义文件流对象,打开磁盘文件“f1.txtif(!outfile
30、)cerr<<"open error!"<<endl; /如果打开失败,outfile返回值为零exit(1);cout<<"数据备份中,请等待"<<endl;cout<<"备份完毕!" outfile<<"*职工情况一览表*"<<endl; outfile<<"职工基本情况一览表如下:"<<endl; outfile<<"*技术员的资料统计*"<&l
31、t;endl; for(i=0;i<4;i+) outfile<<"职工号:"<<setw(10)<<ti.g_num()<<" 姓名:"<<setw(9)<<ti.g_name()<<" 性别:"<<setw(4)<<ti.g_sex()<<" 年龄:"<<setw(4)<<ti.g_age()<<" 工作时间:"<<se
32、tw(10)<<ti.g_time()<<" 工资:"<<setw(10)<<ti.g_time()*100<<endl; outfile<<"-"<<endl; outfile<<"*经理的资料统计*"<<endl; for(i=0;i<4;i+) outfile<<"职工号:"<<setw(10)<<mi.g_num()<<" 姓名:"<<setw(9)<<mi.g_name()<<" 性别:"<<setw(4)<<mi.g_sex()<<" 年龄:"<<setw(4)<<mi.g_age()<<" 工资: "<<setw(10)<<8000<<endl; outfile<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年下半年内蒙古赤峰市事业单位招考易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年内蒙古昆明卷烟限责任公司高校毕业生招聘7人易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年内蒙古呼伦贝尔扎兰屯市招考乡镇财政所事业单位人员易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年信阳罗山县公用事业局城管协管员招考(37人)易考易错模拟试题(共500题)试卷后附参考答案
- 2025年国家电网考试面试试题库(附答案)
- 2025年《医疗器械监督管理条例》法规考试题及答案
- 2025年全国保密教育线上培训考试试题库附参考答案(综合题)
- 交通项目投资合同
- 2025融资租赁合同样本
- 2026届广西壮族自治区贵港市高三上学期10月联考历史试题(含答案)
- 医疗器械生产中的数据分析与统计
- 初中数学归纳与类比强化练习
- 住房公积金追缴授权委托书
- 《工贸企业重大事故隐患判定标准》
- 超声基础知识及临床应用演示
- 2022-2023部编新人教版小学6六年级数学上册(全册)教案
- 手电筒产品课程设计报告书
- 有机化学期中考试试题及参考答案
- 滕王阁序注音全文打印版
- FZ/T 01057.2-2007纺织纤维鉴别试验方法 第2部分:燃烧法
- 四川大学经济学院党政办公室工作人员招考聘用2人【共500题附答案解析】模拟检测试卷
评论
0/150
提交评论