小型公司工资管理系统一、设计任务
编写一个小型公司的工资管理程序。该公司主要有4类人员:经理、兼职技术人员、销售员和销售经理。其中月薪计算方法为:经理固定月薪8000元,兼职技术人员100元/小时,销售员为其当月销售额的4%,销售经理保底工资5000元另加其所管部门销售额的5‰。
二、设计要求
1、使用文件存储相关信息(可用多个文件,存储人员信息、销
售员销售额等等)。
2、能实现人员信息的录入及增删改,人员信息包括编号、姓
名、职位、部门等等,人员编号自动产生(即无需用户输入,从10000起编号)。
a)删除(针对人员离职)后该人员过往的销售记录还应保留,查寻以前的销售情况或工资清单时仍显示该员工记录; b)改是针对人员职位变动,仅能更改职位。
3、能录入某月各销售员的销售额(自行设计操作方式,方便用
户操作),可列出某月的销售额清单。
4、能列出某月的工资清单,可按多种方式排序(按员工编号、工资升序、工资降序、按职位等)。
5、其他未尽事项可自行设计,遵循合理及易用的原则。
中国石油大学(华东)信息与控制工程学院
《程序设计实习》报告
小型公司工资管理系统的设计
姓
名:Yuppies Liu 时 间:2024.7.14~2024.7.17
2024年7月
目录
一、实习内容…………………………………………………………………………1
二、设计思路…………………………………………………………………………2
三、程序代码清单……………………………………………………………………3
四、运行结果…………………………………………………………………………10
五、程序使用说明……………………………………………………………………16
六、总结及心得体会…………………………………………………………………17
程序设计实习报告
一、实习内容 题目:《小型公司管理系统的设计》设计 2.设计说明与基本要求
(1)公司主要有4类人员:经理、技术员、销售员、销售经理。
要求存储这些人的职工号、姓名、月工资、年龄、性别等信息。(2)工资的计算方法
A 经理:固定月薪为8000元;
B技术员:工作时间*小时工资(100元/小时); C销售员:销售额*4%提成;
D销售经理:底薪(5000元)+所辖部门销售额总额*0.5%。(3)员工基本数据的输入
要求每类人员不能少于4人,其中销售员需要8名,每名销
售经理手下有2名销售员。
(4)各类的数据成员访问权限设置为:protected 3.实现基本功能
(1)数据输入:输入各种数据
(2)数据的输入 :统计各销售经理下属销售员的销售额及销售额之和;销售经理按工资进行的帽泡排序;
(3)数据打印:打印各类员工的数据信息;
(4)数据备份
(5)退出:退出本系统
备注:可适当扩充程序功能,功能扩充得当可加分 4.菜单说明
(1)数据录入指通过键盘输入各类员工的各项数据
(2)数据统计指统计各销售经理下属销售员的销售额及销售额之和;销售经理按工资进行的冒泡排序
(3)数据的打印指按照表格的格式在屏幕上输出各员工的数据信息(4)数据的备份指把各类员工的数据信息写入文件中保存(5)退出:结束程序的运行
程序设计实习报告
二、设计思路
在这个公司中有四类人员:经理、兼职技术人员、销售员要存储的信息有姓名、编号、性别、年龄、工资、销售额、所属经理编号.由于所有职员有相同的成员如编号(num)、姓名(name)、性别(sex)、年龄(age)、工资(wage)。所以可将所有信息归纳为一个职员类(Guyuan),将其作为一个基类,然后派生出子类,实现各类人员不同的信息(如工资计算),由于销售经理具有销售员和经理的特性,所以销售经理采用多重继承的关系,继承销售员和经理的两个类,为避免二义性将employee定义为虚基类,可用下图表示:
题目中假设公司有2名技术员、4名销售员、经理和销售经理各2名,所以用对象数组的方式,利用循环语句来实现人员的输入和输出,整个程序设计如下: 基类雇员类:
数据成员有职工号、姓名、年龄、性别、月工资; 成员函数只有姓名、年龄、性别的设置函数。技术员类:继承基类 数据成员增加了工作时间;
成员函数有设置函数、构造函数、输出函数下属函数、备份函数下属函数。经理类:继承基类 数据成员未增加;
成员函数有设置函数、构造函数、输出函数下属函数、备份函数下属函数。销售员类:继承基类
数据成员多了销售额、所属经理编号;
成员函数有设置函数、构造函数、输出函数下属函数、备份函数下属函数、销售额返回函数、所属经理编号输出函数。销售经理类:继承基类 数据成员未增加;
成员函数有设置函数、构造函数、输出函数下属函数、备份函数下属函数、统计函数所属函数。
程序设计实习报告
三、程序代码清单
#include
void set_jishuyuan(){cout<<“技术员编号:”;cin>>num;cout< cout<<“其姓名:”;cin>>name; cout< cout<<“性别(m/w):”;cin>>sex; cout< cout<<“年龄:”;cin>>age; cout< cout<<“工作时间:”;cin>>time; cout< wage=time*100;} void show_jishuyuan() {cout<<“┃”< {outfile<<”┃“< {cout<<”经理的编号:“;cin>>num;cout< cout<<”其姓名:“;cin>>name; cout< cout<<”其性别(m/w):“;cin>>sex; cout< cout<<”年龄:“;cin>>age;cout< wage=8000;} void show_jingli() {cout<<”┃“< ┃┃ ┃┃ ┃ 程序设计实习报告 “< class Xiaoshouyuan:protected Guyuan {public: void set_xiaoshouyuan() {cout<<”销售员的编号:“;cin>>num; cout< cout<<”其姓名:“;cin>>name; cout< cout<<”性别(m/w):“;cin>>sex; cout< cout<<”年龄:“;cin>>age; cout< cout<<”销售额:“;cin>>sell; cout< cout<<”所属销售经理的编号:“;cin>>belong;cout< wage=sell*4/100;} void show_xiaoshouyuan() {cout<<”┃“< void show_xiaoshouyuan2() {cout<<”┃“< {outfile<<”┃“< {return num;} void set_xiaoshoujingli() { cout<<”销售经理的编号:“;cin>>num;cout< cout<<”其姓名:“;cin>>name;cout< cout<<”性别(m/w):“;cin>>sex;cout< cout<<”年龄:“;cin>>age;cout< {cout<<”┃“< ┃ ┃┃ ┃┃ ┃ 程序设计实习报告 “< {outfile<<”┃“< {cout< {wage=5000+sum*0.5/100;} };void disp(){ cout<<” ★★小型公司工资管理系统★★ “< cout<<” ┏━━━━━━━━━━━━┓ “< cout<<” ┃ 请选择您所需要的操作 ┃ “< cout<<” ┃ 数据输入: 1,并按回车键 ┃ “< cout<<” ┃ 数据统计: 2,并按回车键 ┃ “< cout<<” ┃ 数据打印: 3,并按回车键 ┃ “< cout<<” ┃ 数据备份: 4,并按回车键 ┃ “< cout<<” ┃ 退出系统: 5,并按回车键 ┃ “< cout<<” ┗━━━━━━━━━━━━┛ “< cout< cout<<”请选择一个操作: “; } int main(){ const int n=2; int i,w; Jishuyuan a[n]; Jingli b[n]; Xiaoshouyuan c[2*n]; Xiaoshoujingli d[n]; disp();while(1){cin>>w;switch(w){case 1: { {for(i=0;i a[i].set_jishuyuan();cout<<”*******************************************************“< b[i].set_jingli();cout<<”*******************************************************“< c[i].set_xiaoshouyuan(); 程序设计实习报告 cout<<”*******************************************************“< d[i].set_xiaoshoujingli();cout<<”*******************************************************“< for(j=0;j { sum[j]=0; cout<<”职工号为“;d[j].show_num();cout<<”销售经理“;d[j].show_name();cout<<”下属销售员的业绩为:“< cout<<”┏━━━━━━━┳━━━━━━━┳━━━━━━━┓“< cout<<”┃ 职工号 ┃ 姓名 ┃ 销售额 ┃“< for(i=0;i<2*n;i++) {if(c[i].belong==d[j].shu_jingli()) {cout<<”┣━━━━━━━╋━━━━━━━╋━━━━━━━┫“< c[i].show_xiaoshouyuan(); sum[j]=sum[j]+c[i].sell;}} cout<<”┣━━━━━━━╋━━━━━━━┻━━━━━━━┫“< cout<<”┃“<<”销售额总计 ┃“< cout<<”┗━━━━━━━┻━━━━━━━━━━━━━━━┛“< cout<<”┃ 职工号 ┃ 姓名 ┃ 性别 ┃ 年龄 ┃ 工资 ┃“< Xiaoshoujingli x;double y;for(i=0;i for(j=0;j if(sum[i] {x=d[i];d[i]=d[j];d[j]=x;y=sum[i];sum[i]=sum[j];sum[j]=y;} for(i=0;i { cout<<”┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫“< d[i].wage_sum(sum[i]); d[i].show_xiaoshoujingli();} cout<<”┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛“< disp();};break;} 程序设计实习报告 case 3:{ { int i;cout<<”请等待......“< cout<<”┃ 职工号 ┃ 姓名 ┃ 性别 ┃ 年龄 ┃ 工资 ┃“< for(i=0;i { cout<<”┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫“< a[i].show_jishuyuan();} cout<<”┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛“< cout<<”┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓“< cout<<”┃ 职工号 ┃ 姓名 ┃ 性别 ┃ 年龄 ┃ 工资 ┃“< for(i=0;i { cout<<”┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫“< cout<<”┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛“< cout<<”*******************************************************“< cout<<”销售经理“< cout<<”┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓“< cout<<”┃ 职工号 ┃ 姓名 ┃ 性别 ┃ 年龄 ┃ 工资 ┃“< for(i=0;i { cout<<”┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫“< d[i].show_xiaoshoujingli();} cout<<”┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛“< cout<<”┏━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━━━━━━┓“< 程序设计实习报告 cout<<”┃ 职工号 ┃ 姓名 ┃ 性别 ┃ 年龄 ┃ 工资 ┃ 所属部门经理编号 ┃“< for(i=0;i { cout<<”┣━━━━╋━━━━╋━━━━╋━━━━╋━━━━╋━━━━━━━━━┫“< c[i].show_xiaoshouyuan2();} cout<<”┗━━━━┻━━━━┻━━━━┻━━━━┻━━━━┻━━━━━━━━━┛“< disp();};break;} case 4:{{ int i;outfile<<”职工基本情况一览表如下“< outfile<<”┃ 职工号 ┃ 姓名 ┃ 性别 ┃ 年龄 ┃ 工资 ┃“< for(i=0;i { outfile<<”┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫“< outfile<<”┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓“< 职工号 ┃ 姓名 ┃ 性别 ┃ 年龄 ┃ 工资 ┃“< outfile<<”*******************************************************“< outfile<<”销售经理“< outfile<<”┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓“< outfile<<”┃ 职工号 ┃ 姓名 ┃ 性别 ┃ 年龄 程序设计实习报告 ┃ 工资 ┃“< for(i=0;i { outfile<<”┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫“< d[i].show_xiaoshoujingli4();} outfile<<”┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛“< outfile<<”*******************************************************“< outfile<<”销售员“< outfile<<”┏━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━━━━━━┓“< outfile<<”┃ 职工号 ┃ 姓名 ┃ 性别 ┃ 年龄 ┃ 工资 ┃ 所属部门经理编号 ┃“< for(i=0;i { outfile<<”┣━━━━╋━━━━╋━━━━╋━━━━╋━━━━╋━━━━━━━━━┫“< c[i].show_xiaoshouyuan4();} outfile<<”┗━━━━┻━━━━┻━━━━┻━━━━┻━━━━┻━━━━━━━━━┛“< outfile<<”***********************************************************************“< outfile.close(); disp();};break;} case 5:{ {exit(0);};break;} default:{{cout<<” 选择错误,请重新选择!"< 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┃ 2024┃ 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,并按回车键 ┃ ┗━━━━━━━━━━━━┛ 请选择一个操作: 5 Press any key to continue 程序设计实习报告 五、程序的使用说明 1.程序中各类人员个数默认为2个,销售员默认为4个。2.请输入销售人员信息后再输入销售经理的信息。 3.输入时,除姓名、性别外,其余各项请勿输入除数字以外的字符。4.输入数据时若出现无限循环的现象,请重新执行程序并输入信息。 5.未输入信息时,打印或备份,各类人员除姓名性别为空外,其余各项均为0。6.重复输入某类人员数据时,可覆盖上一次输入的该类人员的数据。7.程序中输出文件位置默认为C盘,若有需要请自行更改。 程序设计实习报告 六、总结及心得体会 通过四天的编程,我对C++有了更深一步的认识。 要做一个简单的管理系统,首先就要进行需求分析。我们要做的这个系统,简单的说就只包含五个类(包括基类),主函数执行输入、统计、输出、打印、退出五个基本功能。我为了让函数尽可能的少出现错误,一开始就把五个功能设为五个基本功能函数,主函数中仅留循环控制结构。 对类的层次分析,题目已经给出,我所要做的就是添加成员函数,这在设计思路中已经明确。各个功能函数在基类中都有对应的下属函数,这样功能函数也就能跟清晰,只要仔细,不容易出错。 编程第一步是搭框架,由于本次的实习内容简单,准备充足,上机时也很顺利,很快就有了预期的结果。但接下来添加上函数时开始出现错误,并且错误越改越多。经过一天的努力,总算将其中的错误一一清除,并把第三天的数据打印和退出系统一块弄了出来。对于第四部分的数据备份还是没有发现错误原因。经过询问老师才使问题得到解决,在使用备份时需要在前面声明。 整个程序,其实就只有数据备份不太熟悉。备份的问题已解决,所有的问题就迎刃而解了。第四天我就做完了所有的程序,但总觉得写的程序不够完美,程序中,销售员的销售额和所属经理编号定义为了公有部分;各种函数直接在类内定义的,减少了错误的出现,同时使程序不够美观,简练。 通过这次的C++编程实习,使我对这门课程有了更深的认识,不再是仅仅停留在了解的阶段,更是在其应用之上。在整个实习过程中自身还是存在不少不足,主要有以下几点: 1.对知识掌握不够熟悉,不少问题拿不准,需要查看课本去解决。2.输程序时不够认真仔细,漏掉大括号或分号。3.检查错误时较烦躁,导致效率低下。4.平时的预习准备不够全面认真。 5.在平时的学习中,知识掌握的不够牢靠,在使用时,不少地方拿不准,使程序编写速度不够快。 通过此次的编程实习,使我体验到编程的快乐,也使我对编程有了一个更深层次的认识,同时提高了我对编程的兴趣。感谢这学期来老师对我们的教导,在以后的学习中,我继续努力,弥补自己存在的不足之处。 程序设计实习报告 中国石油大学(华东)信息与控制工程学院 《程序设计实习》报告 小型公司工资管理系统的设计 专业班级:电子11级 学 号: 姓 名: 时 间:2024.09.01~2024.09.07 2024年9月 目录 一、实习内容„„„„„„„„„„„„„„„„„„„„„„„„„„„„1 二、设计思路„„„„„„„„„„„„„„„„„„„„„„„„„„„„2 三、程序清单„„„„„„„„„„„„„„„„„„„„„„„„„„„„3 四、运行结果„„„„„„„„„„„„„„„„„„„„„„„„„„„„14 五、程序使用说明„„„„„„„„„„„„„„„„„„„„„„„„„„21 六、总结及心得体会„„„„„„„„„„„„„„„„„„„„„„„„„2 2程序设计实习报告 一、实习内容 设计一个简单的《小型公司管理系统》。了解系统开发的需求设计、类层次设计、模版分析、模块组装与整体调试的过程;熟悉程序设计的方法。 1..题目:小型公司工资管理系统的设计 2.设计说明与基本要求: (1)公司主要有4类人员: 经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、性别、年龄、月工资等信息; (2)工资的计算方法: 经理:固定月薪为8000元; 技术员:工作时间×工资(100元/小时); 销售员:销售额×4%提成; 销售经理:底薪(5000元)+下属销售员销售额总额×0.5%; (3)员工基本数据的输入: 要求每类人员不能少于4人,其中销售员需要8名,每名销售经理手下有2名销售员。 3.实现的基本功能:数据输入、数据统计、数据打印、数据备份、退出。(应用程序中要有菜单,用于选择各项功能) 4.菜单说明 ① 数据输入要通过键盘; ② 统计是统计销售经理下属销售员的销售额及销售额之和,销售经理按工资冒泡排序; ③ 数据打印是以表格形式在屏幕上输出; ④ 数据备份是将所有的员工信息保存到文件; ⑤ 退出:结束程序运行。 程序设计实习报告 二、设计思路 1.类的结构 先创建了一个Employer基类.然后派生出四个类: Manager、Technician、Salesman、Salemanager。分别对经理、技术员、销售员、销售经理的数据进行输入。 然后选用了一个switch的多分枝选择结构,依次据菜单的选择条件执行数据的输入、数据统计、数据打印、数据备份和退出等。 数据的备份要用到fstream类,用来支持对磁盘文件的输入输出。对于switch,结束循环用到exit函数。此函数的参数为任意整数。 程序设计实习报告 三、程序清单 #include { public: int get1();string get2();char get3();int get4();protected: int num,age; string name;double pay;char sex;};int employee::get1(){return num;} string employee::get2(){return name;} char employee::get3(){return sex;} int employee::get4(){return age;} class technician:public employee { 程序设计实习报告 protected: int hour;public: void display1(){cout<<“技术员编号:”;cin>>num; cout<<“技术员姓名:”;cin>>name;cout<<“技术员年龄:”;cin>>age; cout<<“技术员性别(m/w):”;cin>>sex;cout<<“技术员工作时间:”;cin>>hour; } double get_pay();int get_time();};double technician::get_pay(){ pay=100*hour;return pay;} int technician::get_time(){return hour;} class manager:public employee {public: void display2(){ cout<<“经理编号:”;cin>>num; cout<<“经理姓名:”;cin>>name; cout<<“经理性别(m/w):”;cin>>sex; cout<<“经理年龄:”;cin>>age; } double get_pay(){pay=8000;return pay;} 程序设计实习报告 };class salesman:public employee { protected: int number;double sales_volume;public: void display3(){cout<<“销售员编号:”;cin>>num; cout<<“销售员姓名:”;cin>>name; cout<<“销售员性别(m/w):”;cin>>sex; cout<<“销售员年龄:”;cin>>age; cout<<“销售员的销售额:”;cin>>sales_volume; cout<<“所属销售经理的编号:”;cin>>number; } int numb(){return number;} double sa(){return sales_volume;} double get_pay(){return sales_volume*0.04;} };class salesmanager:public manager { public: void display4(){cout<<“销售经理的编号:”;cin>>num; cout<<“销售经理的姓名:”;cin>>name; cout<<“销售经理的性别(m/w):”;cin>>sex; 程序设计实习报告 cout<<“销售经理的年龄:”;cin>>age; } };void excel(){ cout<<“ ★★小型公司工资管理系统★★”< cout<<” cout<<“ cout<<” cout<<“ cout<<” cout<<“ cout<<” cout<<“请选择一个操作:”;} void main(){int i,j,x,k,y;char a;double mo[4],mone[4];excel();technician t[4];manager m[4]; salesman s[8]; salesmanager sm[4]; cin>>j;while(j==1||j==2||j==3||j==4||j==5){switch(j){case 1: {for(i=0;i<4;i++) “< 请选择您所需的操作 │”< │ “< │”< │“< │”< │“< ┌─────────────┐ │ │ │ │ │ │ └─────────────┘程序设计实习报告 {t[i].display1(); cout<<“-------------”< cout<<“-------------”< {s[i].display3(); cout<<“-------------”< {sm[i].display4(); cout<<“-------------”< excel(); cin>>j;} break;case 2: { for(i=0;i<4;i++){cout<<“职工号为”< cout<<“┌─────┬─────┬─────┐”< cout<<“│ 职工号 │ 姓名 │ 销售额 │”< cout<<“├─────┼─────┼─────┤”< double money=0; for(x=0;x<8;x++) { if(s[x].numb()==sm[i].get1()) { money=money+s[x].sa(); mone[i]=money*0.005+5000; 程序设计实习报告 mo[i]=money*0.005+5000; cout<<“│”< cout<<“├─────┼─────┴─────┤”< } } cout<<“│销售额总计│”< cout<<“└─────┴───────────┘”< cout<<“│ 职工号 │ 姓名 │ 性别 │ 年龄 │ 工资 │”< cout<<“├─────┼─────┼─────┼────┼────┤”< │ ”< │”< 程序设计实习报告 cout<<“-----------”< { {cout<<“请等待„”< 职工基本情况一览表如下”< │ ”< │”<第三篇:中国石油大学c++实习报告 小型公司工资管理系统(小文档网推荐)