石油大学小型工资管理系统C.docx

上传人:b****7 文档编号:25279208 上传时间:2023-06-06 格式:DOCX 页数:22 大小:82.71KB
下载 相关 举报
石油大学小型工资管理系统C.docx_第1页
第1页 / 共22页
石油大学小型工资管理系统C.docx_第2页
第2页 / 共22页
石油大学小型工资管理系统C.docx_第3页
第3页 / 共22页
石油大学小型工资管理系统C.docx_第4页
第4页 / 共22页
石油大学小型工资管理系统C.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

石油大学小型工资管理系统C.docx

《石油大学小型工资管理系统C.docx》由会员分享,可在线阅读,更多相关《石油大学小型工资管理系统C.docx(22页珍藏版)》请在冰豆网上搜索。

石油大学小型工资管理系统C.docx

石油大学小型工资管理系统C

 

中国石油大学(华东)信息与控制工程学院

《程序设计实习》报告

小型公司工资管理系统设计

专业班级:

学  号:

姓  名:

实习时间:

2015年7月

目录

一、实习内容………………………………………………………………………………1

二、设计思路………………………………………………………………………………4

三、程序调试过程中典型问题及解决方法………………………………………………5

四、程序使用说明…………………………………………………………………………6

五、总结及心得体会………………………………………………………………………22

 

一、实习内容

设计一个简单的《小型公司管理系统》,。

了解系统开发的需求设计、类层次设计、模版分析、模块组装与整体调试的过程;熟悉程序设计的方法。

1..题目:

小型公司工资管理系统的设计

类的结构

                 

先创建了一个Employer基类.然后派生出四个类:

Manager、Technician、Salesman、Salemanager。

分别对经理、技术员、销售员、销售经理的数据进行输入。

然后选用了一个switch的多分枝选择结构,依次据菜单的选择条件执行数据的输入、数据统计、数据打印、数据备份和退出等。

数据的备份要用到fstream类,用来支持对磁盘文件的输入输出。

对于switch,结束循环用到exit函数。

此函数的参数为任意整数。

运行程序后,根据菜单栏的提示选择操作。

输入“1”回车后,进入职工基本数据输入栏,在这里,要将所有的技术员、销售员、销售经理、经理的职工号、姓名、性别、工作时间等信息输入程序中。

职工的数据输入完成后自动跳转到菜单栏,选择“2”回车后进入到数据统计界面,程序会自动对你输入的各销售经理下属销售员的销售额及销售额之和进行统计,并对销售经理按工资进行排序。

数据统计完成后,选择“3”,程序会对你输入的职工基本信息进行打印,打印结果显示在控制台下。

在菜单栏中继续选择“4”后,程序将对所有的员工信息进行打印并保存到文件中。

最后选择“5”,根据提示是否退出本程序,输入“Y”,结束程序执行;输入“N”,返回主菜单继续进行程序。

2.设计说明与基本要求:

(1)公司主要有4类人员:

经理、技术员、销售员、销售经理。

要求存储这些人的职工号、姓名、性别、年龄、月工资等信息;

(2)工资的计算方法:

经理:

固定月薪为8000元;技术员:

工作时间×工资(100元/小时);销售员:

销售额×4%提成;销售经理:

底薪(5000元)+下属销售员销售额总额×0.5%;

(3)员工基本数据的输入:

要求每类人员不能少于4人,其中销售员需要8名,每名销售经理手下有2名销售员。

3.实现的基本功能:

数据输入、数据统计、数据打印、数据备份、退出。

(应用程序中要有菜单,用于选择各项功能)

4.菜单说明

①数据输入要通过键盘;

②统计是统计销售经理下属销售员的销售额及销售额之和,销售经理按工资冒泡排序;

③数据打印是以表格形式在屏幕上输出;

④数据备份是将所有的员工信息保存到文件;

⑤退出:

结束程序运行。

 

二、设计思路

从给出的运行结果看主函数是一个选择结构,在这里我采用switch结构,根据学过的c++知识合理的定义类及其对象在类中声明公有函数,来完成对保护数据成员的调用,留作接口,输出数据。

根据运行结果菜单来看知道有5个功能,要分为5个函数来一一实现所需功能,所以在整个系统就要分为5大块来完成。

 

三、程序调试过程中典型问题及解决方法

在编写整个程序的第一部分内容——数据输入函数时,完成的较快,但是类数组的定义并没有定义为全局数组,虽然把第一天的任务完成了,但是这样的定义给第二天的统计函数的书写造成的极大地不便。

结果第二天我又重新修改了第一天的程序,把类数组定义为了全局数组,方便后面程序的调用。

在编写打印函数时,遇到了很多难题,像如何把保护类的成员函数给调用出来,刚开始想到是指针的方法,但是经过尝试,可是实现,但是会让程序显得十分冗杂,后来和同学讨论,发现了一种更为简便的方法,在public里面定义一个return函数,通过这个函数可以访问protected里面的成员函数,这样就可以在类外用这些数据。

在编写主函数时采用的switch结构,但这个结构只能使用一次,于是我想到了for循环语句,考虑到在输入选择操作时,可能有输错误的行为,所以把这个函数能够循环的最大次数规定到了20次。

编写可控各类人员函数时,想要用数组,但是数组必须有初始值,考虑到用户是一家小型公司,就把初始值定为30,方便用户使用。

在编写打印备份函数时,由于各类成员姓名长度不一,无法使表格对齐,翻看了课本,学到了一种控制字符长度的变量setw,不论其后的数据占多大的空间,其长度是固定值。

 

四、程序使用说明

#include

#include

#include///////////控制输出量长度的头文件

#include//////////输入输出流头文件

usingnamespacestd;

voiddatainput();

voidchose();

voidstatistics();

voidprint();

voidbackup();

intn,i;

inta,b,c,d;

 

classEmployee//基类雇员类

{protected:

intnum,salary;

intage;

stringname;

charsex;

public:

voiddisplay();

intreturn_num()///////////

{returnnum;}

stringreturn_name()//////////

{returnname;}

charreturn_sex()//////////

{returnsex;}

intreturn_age()//////////

{returnage;}

intreturn_salary()//////////

{returnsalary;}

};

 

voidEmployee:

:

display()//基类成员函数

{

cout<<"姓名:

";

cin>>name;

cout<<"性别(男士填m/女士填w):

";

cin>>sex;

cout<<"年龄:

";

cin>>age;

}

classTechnician:

publicEmployee//定义技术员类,继承方式为共有继承

{

protected:

doubleworktime;

public:

voidTechnician_out()

{cout<<"技术员编号:

";

cin>>num;//输入技术员编号

display();//输入年龄性别姓名

cout<<"工作时间:

";

cin>>worktime;

salary=100*worktime;

}

};

Techniciant[30];//技术员

classManager:

publicEmployee//定义经理类,继承方式为共有继承

{

public:

voidManager_out()

{cout<<"经理编号:

";

cin>>num;//输入经理编号

display();//输入年龄性别姓名

salary=8000;}

};

Managerm[30];//经理

classSalesman:

publicEmployee//定义销售员类,继承方式为共有继承

{protected:

doubleamount;

intbelong_manager_num;

public:

voidSalesman_out()

{cout<<"销售员编号:

";

cin>>num;//输入销售员编号

display();//输入年龄性别姓名

cout<<"销售额:

";

cin>>amount;//输入销售额

salary=amount*0.04;

cout<<"所属经理编号:

";

cin>>belong_manager_num;}//输入所属经理编号

intfun1()//////////

{returnbelong_manager_num;}

stringfun2()//////////

{returnname;}

intfun3()//////////

{returnamount;}

};

Salesmans[30];//销售员

classSalesManager:

publicEmployee//定义销售经理类,继承方式为共有继承

{protected:

intsaleroom;

public:

voidSalesManager_out()

{cout<<"销售经理编号:

";

cin>>num;//输入销售经理编号

display();//输入年龄性别姓名

}

voidSalesManager_salary_calculate(intn)//销售经理工资计算

{salary=n*0.005+5000;

saleroom=n;}

intreturn_salary(){returnsalary;}

intreturn_saleroom(){returnsaleroom;}

};

SalesManagersm[30];//销售经理

 

voidmain()///////////////////////////////////////////////////////////////////////////////////主函数

{

for(i=0;i<20;i++)

{chose();

switch(n)

{case1:

datainput();break;

case2:

statistics();break;

case3:

print();break;

case4:

backup();break;

case5:

exit(0);break;

default:

cout<<"您输入的数字错误!

"<

}}

voidchose()

{cout<<"★★小型公司工资管理系统★★"<

cout<<"┏━━━━━━━━━━━━━━━┓"<

cout<<"┃请选择您所需的操作┃"<

cout<<"┃数据输入:

1,并按回车键┃"<

cout<<"┃数据统计:

2,并按回车键┃"<

cout<<"┃数据打印:

3,并按回车键┃"<

cout<<"┃数据备份:

4,并按回车键┃"<

cout<<"┃退出系统:

5,并按回车键┃"<

cout<<"┗━━━━━━━━━━━━━━━┛"<

cout<<"请选择您的操作!

";

cin>>n;

}

voiddatainput()////////////////////////////////////////////////////////////////////////////////////////////////数据输入函数

{inti;

cout<<"请输入各个职位函数"<

cout<<"技术员:

";

cin>>a;

cout<<"经理:

";

cin>>b;

cout<<"销售员:

";

cin>>c;

cout<<"销售经理:

";

cin>>d;

cout<<"━━━━━━━━━━━━━━"<

for(i=0;i

t[i].Technician_out();

cout<<"━━━━━━━━━━━━━━"<

for(i=0;i

m[i].Manager_out();

cout<<"━━━━━━━━━━━━━━"<

for(i=0;i

s[i].Salesman_out();

cout<<"━━━━━━━━━━━━━━"<

for(i=0;i

sm[i].SalesManager_out();

cout<<"━━━━━━━━━━━━━━"<

}

voidorder()////////////////////////////////////////////////////////////////////////////////////////////////冒泡排序函数

{SalesManagerp;

for(inty=0;y

for(intz=1;z

if(sm[y].return_saleroom()

{p=sm[z];

sm[z]=sm[y];

sm[y]=p;}

}

voidstatistics()//////////////////////////////////////////////////////////////////////////////////////////////统计函数

{for(intx=0;x

{intsum=0;intj;

cout<<"职工号为"<

"

<

cout<<"┏━━━━━━━┳━━━━━━━┳━━━━━━━┓"<

cout<<"┃职工号┃姓名┃销售额┃"<

for(j=0;j

if(sm[x].return_num()==s[j].fun1())

{cout<<"┣━━━━━━━╋━━━━━━━╋━━━━━━━┫"<

sum=sum+s[j].fun3();

cout<<"┃"<

sm[x].SalesManager_salary_calculate(sum);

cout<<"┣━━━━━━━╋━━━━━━━┻━━━━━━━┫"<

cout<<"┃"<

cout<<"┗━━━━━━━┻━━━━━━━━━━━━━━━┛"<

}

cout<<"销售经理按工资排序为:

"<

cout<<"┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓"<

cout<<"┃职工号┃姓名┃性别┃年龄┃工资┃"<

order();

for(inti=0;i

{

cout<<"┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫"<

cout<<"┃"<

<

}

cout<<"┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛"<

}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////打印函数

voidprint()

{inti,j,k;

cout<<"请等待……"<

cout<<"职工基本情况一览表如下"<

cout<<"技术员"<

cout<<"┏━━━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━┓"<

cout<<"┃职工号┃姓名┃性别┃年龄┃工资┃"<

for(i=0;i

{

cout<<"┣━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━┫"<

cout<<"┃"<

<

}

cout<<"┗━━━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━┛"<

cout<<"━━━━━━━━━━━━━━━━━━━"<

cout<<"经理"<

cout<<"┏━━━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━┓"<

cout<<"┃职工号┃姓名┃性别┃年龄┃工资┃"<

for(i=0;i

{

cout<<"┣━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━┫"<

cout<<"┃"<

<

}

cout<<"┗━━━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━┛"<

cout<<"━━━━━━━━━━━━━━━━━━━"<

cout<<"销售经理"<

cout<<"┏━━━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━┓"<

cout<<"┃职工号┃姓名┃性别┃年龄┃工资┃"<

for(k=0;k

{intsum=0;

for(j=0;j

{if(sm[k].return_num()==s[j].fun1())

sum=sum+s[j].fun3();}

sm[k].SalesManager_salary_calculate(sum);

cout<<"┣━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━┫"<

cout<<"┃"<

<

}

cout<<"┗━━━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━┛"<

cout<<"━━━━━━━━━━━━━━━━━━━"<

cout<<"销售员"<

cout<<"┏━━━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━━━┓"<

cout<<"┃职工号┃姓名┃性别┃年龄┃工资┃所属经理编号┃"<

for(i=0;i

{

cout<<"┣━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━━┫"<

cout<<"┃"<

<

}

cout<<"┗━━━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━━┛"<

cout<<"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"<

}

voidbackup()///////////////////////////////////////////////////////////////////////////////////////////////////////////备份函数

{ofstreamputout;//建立输出文件流对象

putout.open("职员基本信息备份.txt");//使文件流与txt文件建立关联

putout<<"职工基本情况一览表如下"<

putout<<"技术员"<

putout<<"┏━━━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━┓"<

putout<<"┃职工号┃姓名┃性别┃年龄┃工资┃"<

for(i=0;i

{

putout<<"┣━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━┫"<

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 思想汇报心得体会

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1