实习报告模板.docx
- 文档编号:6091497
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:28
- 大小:268.78KB
实习报告模板.docx
《实习报告模板.docx》由会员分享,可在线阅读,更多相关《实习报告模板.docx(28页珍藏版)》请在冰点文库上搜索。
实习报告模板
中国石油大学(华东)信息与控制工程学院
《程序设计实习》报告
小型公司工资管理系统的设计
专业班级:
自动化09-3
学 号:
09051322
姓 名:
王辉
时间:
2010.8.22~2010.8.27
2010年8月27日
目录
一、实习内容…………………………………………………………………………1
二、设计思路…………………………………………………………………………2
三、程序清单…………………………………………………………………………3
四、运行结果…………………………………………………………………………17
五、程序使用说明……………………………………………………………………22
六、总结及心得体会…………………………………………………………………23
一、实习内容
1题目:
《小型公司工资管理系统》设计
2设计说明与要求
(1)主要有4类人员:
技术员,销售员,销售经理。
要求存储这些人的职工号,姓名,月工资,岗位,年龄,性别等信息。
(2)工资的计算方法:
A、经理:
固定月薪为8000;
B、技术员:
工作时间*小是工资(100元每小时);
C、销售员:
销售额*4%提成;
D、销售经理:
底薪(5000)+所辖部门销售额总额*0.5%;
(3)类的层次结构如下
(4)输入员工基本数据,要求每类人员不能少于4人,员工信息格式输出参考运行结果;
(5)实现功能,要有一个菜单,用于选择各项功能,其中
①数据录入:
输入各种数据;
②数据统计:
统计各销售经理下属销售员的销售额及销售总额之和;销售经理按工资冒泡排序;
③数据打印:
打印各类员工的数据信息;
④数据备份:
把各类员工的数据信息写入文件中保存;
⑤退出:
退出本系统;
菜单说明
①数据录入指通过键盘输入各类员工的各项数据;
②数据统计指统计各销售经理下属销售员的销售额及销售总额之和;销售经理按工资冒泡排序;
④数据备份指把所有员工的信息保存到文件中
⑤退出:
结束程序的运行;
(7)注意一个销售经理管辖多个销售员。
(8)要求在控制台下完成(显示内容都在黑屏下显示)。
二、设计思路
首先充分利用了类的继承与派生的知识,先定义了一个雇员类employee,由雇员类公有派生出技术员类jsy,销售员类seller,经理类manager,销售经理类smanager。
将基类所有数据成员定义为protect,这样派生类就可以调基类的protect成员。
在这一题目中假设公司有2名技术员、4名销售员、经理和销售经理各2名,所以用对象数组的方式,利用循环语句来实现人员的输入和输出定义4个常变量a、b、c、d,并给它们赋值,作为经理、技术员、销售员、销售经理的个数,定义o、p、q、r四个全局变量,并给它们赋值为0,每个字母代表一类员工,输入某类员工数据则代表的字母自加一次,因而可以通过判断他们的值是否为0来判断是否输入了数据。
利用制表符画好表格,输出数据时要注意字宽,否则表格会支离破碎。
定义完类后,定义各派生类的全局对象数组,利用switch进行选择系统进行的工作,在每种情况后(除了case5)重载main()函数,在case1中调用二级菜单,并用while
(1)使之循环出现,再利用另一个switch进行选择系统进行的工作,利用for循环把经理数据,技术员数据,销售员数据,销售经理数据输入,在case5时return0跳出该循环,返回上一级利用冒泡排序法把销售经理的资按降序排列。
在主菜单中进行调用各函数,从而实现系统各功能的运行。
对程序中多次出现的部分,可以将其设置成一个函数,从而达到简化程序的目的。
在文件开头建立备份文件“备份.TXT”,之后把表格输出到该文件中。
包含头文件
程序顺利完成。
三、程序清单
#include
#include
#include
#include
#include
usingnamespacestd;
constinta=2;
constintb=2;
constintc=4;
constintd=2;
ofstreamoutfile("备份.txt",ios:
:
out);//建立备份文件
classemployee//雇员类
{protected:
intnum;
floatpay;
intage;
charsex;
stringname;
public:
voidset()
{
cout<<"其姓名:
";
cin>>name;
cout<<"性别(m/w):
";
cin>>sex;
cout<<"年龄:
";
cin>>age;
}
};
classmanager:
publicemployee//经理类
{public:
voidset1()
{cout<<"经理的编号:
";
cin>>num;
set();
pay=8000;
}
voidget3()//输出经理的数据
{cout<<"┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫"< cout<<"┃"< } voidget33()//经理的数据输出到备份文件 {outfile<<"┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫"< outfile<<"┃"< } }; classjsy: publicemployee//技术员类 {public: voidset2() {cout<<"技术员的编号: "; cin>>num; set(); cout<<"工作时间: "; cin>>time; pay=time*100; } voidget2()//输出技术员的数据 {cout<<"┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫"< cout<<"┃"< } voidget22()//技术员的数据输出到备份文件 {outfile<<"┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫"< outfile<<"┃"< } protected: floattime; }; classseller: publicemployee//销售员类 {public: voidset3() {cout<<"销售员的编号: "; cin>>num; set(); cout<<"销售额: "; cin>>money; cout<<"所属销售经理编号: "; cin>>num1; pay=money*0.04; } intm() {returnmoney;} intn() {returnnum1;} voidget()//输出销售员的数据 {cout<<"┣━━━━━━━━━╋━━━━━━━━━╋━━━━━━━━━┫"< cout<<"┃"< } voidget4() {cout<<"┣━━━━╋━━━━╋━━━━╋━━━━╋━━━━╋━━━━━━━━━━┫"< cout<<"┃"< } voidget44()//销售员的数据输出到备份文件 {outfile<<"┣━━━━╋━━━━╋━━━━╋━━━━╋━━━━╋━━━━━━━━━━┫"< outfile<<"┃"< } protected: floatmoney; intnum1; }; sellerC[c]; classsmanager: publicemployee//销售经理类 {public: voidget1() {cout<<"职工号为"< "< voidset4() {cout<<"销售经理的编号: "; cin>>num; set(); sum(); pay=5000+sum()*0.005; } floatsum() {floats=0; inti; for(i=0;i if(num==C[i].n()) s+=C[i].m(); returns; } intgnum() {returnnum;} stringgnam() {returnname;} intga() {returnage;} intgs() {returnsex;} intgp() {returnpay;} }; voidmenu1()//一级菜单 {cout<<"★★小型公司工资管理系统★★"< cout<<"┏━━━━━━━━━━━━━━━━┓"< cout<<"┃ 请选择您所需的操作 ┃"< cout<<"┃ 数据输入: 1,并按回车键┃"< cout<<"┃数据统计: 2,并按回车键┃"< cout<<"┃数据打印: 3,并按回车键┃"< cout<<"┃数据备份: 4,并按回车键┃"< cout<<"┃退出系统: 5,并按回车键┃"< cout<<"┗━━━━━━━━━━━━━━━━┛"< cout<<"请选择一个操作: "; } voidmenu2()//二级菜单 {cout<<"★★小型公司工资管理系统★★"< cout<<"┏━━━━━━━━━━━━━━━━━━━━┓"< cout<<"┃ 请选择您所需的操作 ┃"< cout<<"┃ 经理数据输入: 1,并按回车键┃"< cout<<"┃技术员数据输入: 2,并按回车键┃"< cout<<"┃销售员数据输入: 3,并按回车键┃"< cout<<"┃销售经理数据输入: 4,并按回车键┃"< cout<<"┃返回上一级 : 5,并按回车键┃"< cout<<"┗━━━━━━━━━━━━━━━━━━━━┛"< cout<<"请选择一个操作: "; } jsyA[a]; managerB[b]; smanagerD[d]; voidpx()//冒泡法排序 {inti,j; for(j=0;j for(i=0;i if(D[i].gp() {smanagert; t=D[i]; D[i]=D[i+1]; D[i+1]=t; } for(i=0;i {cout<<"┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫"< cout<<"┃"< } } voidoutpx()//冒泡法排序输出到备份文件 {inti,j; for(j=0;j for(i=0;i if(D[i].gp() {smanagert; t=D[i]; D[i]=D[i+1]; D[i+1]=t; } for(i=0;i {outfile<<"┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫"< outfile<<"┃"< } } voidbt()//表头 {cout<<"┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓"< cout<<"┃职工号┃姓名┃性别┃年龄┃工资┃"< } voidbw()//表尾 {cout<<"┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛"< voidbt1()//表头 {cout<<"┏━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━━━━━━━┓"< cout<<"┃职工号┃姓名┃性别┃年龄┃工资┃所属部门经理编号┃"< } voidbw1()//表尾 {cout<<"┗━━━━┻━━━━┻━━━━┻━━━━┻━━━━┻━━━━━━━━━━┛"< voidtongji() {inti,j; for(i=0;i {D[i].get1(); cout<<"┏━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┓"< cout<<"┃职工号┃姓名┃销售额┃"< for(j=0;j {if(D[i].gnum()==C[j].n()) C[j].get(); } cout<<"┣━━━━━━━━━╋━━━━━━━━━┻━━━━━━━━━┫"< cout<<"┃"< "<<"┃"< cout<<"┗━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━┛"< } } voidtongji2() {cout<<"销售经理按工资排序为"< bt(); px(); bw(); } voiddayin()//打印 {inti; cout<<"请等待…"< cout<<"职工基本情况一览表"< cout<<"技术员"< bt(); for(i=0;i A[i].get2(); bw(); cout<<"---------------------------------------------"< cout<<"经理"< bt(); for(i=0;i B[i].get3(); bw(); cout<<"---------------------------------------------"< cout<<"销售经理"< tongji2(); cout<<"---------------------------------------------"< cout<<"销售员"< bt1(); for(i=0;i C[i].get4(); bw1(); cout<<"---------------------------------------------"< } voidbeifen() {inti; outfile<<"职工基本情况一览表"< outfile<<"技术员"<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实习 报告 模板