小型公司工资管理系统(完结)_小型工资管理系统
小型公司工资管理系统(完结)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“小型工资管理系统”。
中国石油大学(华东)信息与控制工程学院
《程序设计实习》报告
小型公司工资管理系统的设计
姓
名:Yuppies Liu 时 间:2011.7.14~2011.7.17
2011年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 #include #include #include using namespace std;ofstream outfile(“f1.txt”,ios::out);cla Guyuan {public: int num,age;string name;char sex;int wage;};cla Jishuyuan: protected Guyuan {public: int time;
void set_jishuyuan(){cout>num;cout
cout>name;
cout
cout>sex;
cout
cout>age;
cout
cout>time;
cout
wage=time*100;}
void show_jishuyuan()
{cout
void show_jishuyuan4()
{outfile
void set_jingli()
{cout>num;cout
cout>name;
cout
cout>sex;
cout
cout>age;cout
wage=8000;}
void show_jingli()
{cout
┃┃
┃┃
┃
程序设计实习报告
“
{outfile
┃┃”
cla Xiaoshouyuan:protected Guyuan {public:
void set_xiaoshouyuan()
{cout>num;
cout
cout>name;
cout
cout>sex;
cout
cout>age;
cout
cout>sell;
cout
cout>belong;cout
wage=sell*4/100;}
void show_xiaoshouyuan()
{cout
void show_xiaoshouyuan2()
{cout
void show_xiaoshouyuan4()
{outfile
int shu_jingli()
{return num;}
void set_xiaoshoujingli()
{ cout>num;cout
cout>name;cout
cout>sex;cout
cout>age;cout
{cout
┃
┃┃
┃┃
┃
程序设计实习报告
“
void show_xiaoshoujingli4()
{outfile
void show_wage()
{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
cout
cout
职工号
┃
姓名
┃
销售额
┃”
for(i=0;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┃ 2000┃ 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 Pre any key to continue
程序设计实习报告
五、程序的使用说明
1.程序中各类人员个数默认为2个,销售员默认为4个。2.请输入销售人员信息后再输入销售经理的信息。
3.输入时,除姓名、性别外,其余各项请勿输入除数字以外的字符。4.输入数据时若出现无限循环的现象,请重新执行程序并输入信息。
5.未输入信息时,打印或备份,各类人员除姓名性别为空外,其余各项均为0。6.重复输入某类人员数据时,可覆盖上一次输入的该类人员的数据。7.程序中输出文件位置默认为C盘,若有需要请自行更改。
程序设计实习报告
六、总结及心得体会
通过四天的编程,我对C++有了更深一步的认识。
要做一个简单的管理系统,首先就要进行需求分析。我们要做的这个系统,简单的说就只包含五个类(包括基类),主函数执行输入、统计、输出、打印、退出五个基本功能。我为了让函数尽可能的少出现错误,一开始就把五个功能设为五个基本功能函数,主函数中仅留循环控制结构。
对类的层次分析,题目已经给出,我所要做的就是添加成员函数,这在设计思路中已经明确。各个功能函数在基类中都有对应的下属函数,这样功能函数也就能跟清晰,只要仔细,不容易出错。
编程第一步是搭框架,由于本次的实习内容简单,准备充足,上机时也很顺利,很快就有了预期的结果。但接下来添加上函数时开始出现错误,并且错误越改越多。经过一天的努力,总算将其中的错误一一清除,并把第三天的数据打印和退出系统一块弄了出来。对于第四部分的数据备份还是没有发现错误原因。经过询问老师才使问题得到解决,在使用备份时需要在前面声明。
整个程序,其实就只有数据备份不太熟悉。备份的问题已解决,所有的问题就迎刃而解了。第四天我就做完了所有的程序,但总觉得写的程序不够完美,程序中,销售员的销售额和所属经理编号定义为了公有部分;各种函数直接在类内定义的,减少了错误的出现,同时使程序不够美观,简练。
通过这次的C++编程实习,使我对这门课程有了更深的认识,不再是仅仅停留在了解的阶段,更是在其应用之上。在整个实习过程中自身还是存在不少不足,主要有以下几点: 1.对知识掌握不够熟悉,不少问题拿不准,需要查看课本去解决。2.输程序时不够认真仔细,漏掉大括号或分号。3.检查错误时较烦躁,导致效率低下。4.平时的预习准备不够全面认真。
5.在平时的学习中,知识掌握的不够牢靠,在使用时,不少地方拿不准,使程序编写速度不够快。
通过此次的编程实习,使我体验到编程的快乐,也使我对编程有了一个更深层次的认识,同时提高了我对编程的兴趣。感谢这学期来老师对我们的教导,在以后的学习中,我继续努力,弥补自己存在的不足之处。
程序设计实习报告