1、 中国石油大学(华东)信息与控制工程学院 《程序设计实习》报告 小型公司工资管理系统的设计与实现 专业班级: 学 号: 姓 名: 起止日期: 指导老师: 2010年8月 fengzhanhuaer 小型公司工资管理系统 第 2 页 目录 一、实习目的………………………………………………………………………3 二、实习内容………………………………………………………………………3 1. 设计说明与要求…………………………………………………………3 2. 程序类体…………………………………………………………………3
2、 3. 流程图……………………………………………………………………4 4. 程序代码…………………………………………………………………4 三、设计思路………………………………………………………………………38 四、输出格式………………………………………………………………………39 2 fengzhanhuaer 小型公司工资管理系统 第 3 页 一、实习目的 1、熟悉c++中类的概念,类的封装,继承和多态的实现方式。 2、了解系统开发的需求分析,类层次设计,模块分析,编码测试,模块组 装和与整体调试的全过程。 3、逐步熟悉程序设计的方法
3、并养成良好的编程习惯。 二、实习内容 1、设计说明与要求: (1)说明: 公司主要有4类人员:经理,技术员,销售员,销售经理。要求存储这些人 的职工号,姓名,月工资,岗位,年龄,性别等信息。 工资的计算方法: 经理:固定月薪为8000; 技术员:工作时间*小是工资(100元每小时); 销售员:销售额*4%提成; 销售经理:底薪(5000)+所辖部门销售额总额*0.5%; (2)要求: a输入数据要求每类人员不能少于4人,并按统一格式输出格式输出; b实现的功能: (1)数据录入:用键盘输入各类员工的数据; (2)数据统计:统计各销售经理
4、下属销售员的销售额及销售额之和;销售经理 按工资进行冒泡排序; (3)数据打印:按表格格式打印各类员工的数据信息; (4)数据备份:把各类员工的数据信息写入文本中保存; (5)退出:退出本系统,结束程序的运行; 2、程序的类体: 雇员类 技术员类 经理类 销售员类销售经理类 3 fengzhanhuaer 小型公司工资管理系统 第 4 页 3、流程图 开始 主函数 输入i i=4备份 i=1录入 i=2统计 i=3打印 i=5退出 输入i i=1 i=2 i=3 i=4 i=5 jsy
5、类 xsy类 xsjl类
jl类 返回
结束 4 、程序代码
Main.cpp文件:
#include
6、 ┌─────────────┐\n"; cout<<" │ 请选择您所需的操作 │\n"; cout<<" │ 数据输入:1,并按回车键 │\n"; cout<<" │ 数据统计:2,并按回车键 │\n"; cout<<" │ 数据打印:3,并按回车键 │\n"; cout<<" │ 数据备份:4,并按回车键 │\n"; cout<<" │ 退出系统:5,
7、并按回车键 │\n"; cout<<" └─────────────┘\n"; cout<<" 请选择一个操作: "; cin>>operate; switch(operate) { case 1: cout<<"请输入数据:"< 8、ngzhanhuaer 小型公司工资管理系统 第 6 页 cout<<" 警告!!操作无法完成!请先输入员工信息!
"<<'\a'< 9、dl; break; } cout<<"正在进行数据打印......"< 10、p(); } break; case 5: exit(0); break; default: cout<<"错误!请重新选择1-5间的数输入"<<'\a'< 11、页
xsy d[4];
int set(int &x)
{ int i; do { cout<<" ☆★小型公司工资管理系统★☆"< 12、经理数据输入: 4,并按回车键 ┃"< 13、页 break; } case 2: { int j; j=0; while(j<2) { a[j].input1(); j++; } break; } case 3: { int l; l=0; while(l<4) { d[l].input3(); l++; } int m,n,a; for(n=0;n<2;n++) { a=0; for(m=0;m<4;m++) { if(d[0].onum2()==b[n].onum())
9
fengzhanhuaer 14、 小型公司工资管理系统 第 10 页 { a=d[0].osell()+a; } } b[n].set(a); } break; } case 4: { int o; o=0; while(o<2) { b[o].input2(); o++; } break; } case 5: { break; } default : { cout<<"错误!请重新输入1~5之间的数"<<'\a'< 15、页 } while(i!=5); x++; return 0;
}
void count()
{ int i; i=0; int k; xsy h[2]; while(i<2) { k=0; for(int j=0;j<5;j++) { if(d[j].onum2()==b[i].onum()) { h[k]=d[j]; k++; } } int a; a=h[0].osell()+h[1].osell(); b[i].set(a);
11
fengzhanhuaer 小型公司工资管理系统 第 12 页 16、 cout<<" 职工编号为"< 17、ndl; cout<<" ┃"< 18、<<" ┣━━━━━━╋━━━━━┻━━━━━━┫"< 19、zhanhuaer 小型公司工资管理系统 第 13 页 } } } cout<<"销售经理按工资排序为:"< 20、< 21、┃"< 22、━━┳━━━━━┳━━━━━┳━━
━━━┓"< 23、a[0].oage()<<"┃"< 24、━━━┻━━━━━┻━━
━━━┛"< 25、onum()<<"┃
┃"< 26、)<<"┃"< 27、
"<<"┃"<<" 年龄 "<<"┃"<<" 工资 "<<"┃"< 28、━━╋━━
━━━┫"< 29、━━━┳━━━┳━━━━┳━━━━
━━━━┓";//受窗口大小的限制此处正好为一行,故不用加endl cout<<" ┃"<<"职工号"<<"┃"<<" 姓名 "<<"┃"<<" 性别 "<<"┃"<<"
年龄 "<<"┃"<<" 工资 "<<"┃"<<"所属部门经理编号"<<"┃";
15
fengzhanhuaer 小型公司工资管理系统 第 16 页 cout<<" ┣━━━╋━━━━╋━━━╋━━━╋━━━━╋━━━━
━━━━┫"; cout<<" ┃"< 30、osex()<<"┃"< 31、e()<<"┃"< 32、 cout<<" ┣━━━╋━━━━╋━━━╋━━━╋━━━━╋━━━━
━━━━┫"; cout<<" ┃"< 33、oid backup()
16
fengzhanhuaer 小型公司工资管理系统 第 17 页
{ fstream backup; backup.open("c:\\备份.txt",ios::in|ios::out|ios::trunc); backup<<" 职工基本情况一览表如下:"< 34、<" 性
别 "<<"┃"<<" 年龄 "<<"┃"<<" 工资 "<<"┃"< 35、━╋━━━━━╋━━━━━╋━━━━━╋
━━━━━┫"< 36、dl; backup<<" ┏━━━━━┳━━━━━┳━━━━━┳━━━━━┳
━━━━━┓"< 37、
┃"< 38、1].oage()<<"┃"< 39、"< 40、"< 41、ckup<<" ┏━━━┳━━━━┳━━━━┳━━━┳━━━━┳━
━━━━━━━┓"< 42、d[0].oname()<<"
┃"< 43、"┃"< 44、onum2()<<"┃"< 45、工资管理系统 第 20 页 backup<<" ┗━━━┻━━━━┻━━━━┻━━━┻━━━━┻━
━━━━━━━┛"< 46、雇员姓名(请简写到十个字母以内): "; cin>>name; cout< 47、ex;}
protected :
20
fengzhanhuaer 小型公司工资管理系统 第 21 页 int income; int num; string name; string age; string sex;
};
class jsy :public gy //技术员类
{
public: void input1() { cout<<"请输入技术员信息……"< 48、 oincome(){return income;} int
protected : int time;
};
class jl : public gy //经理类
{
public : void input4() { cout<<"请输入经理信息……"< 49、 //销售员类
{ public : void input3() { cout<<"请输入销售员的信息……"< 50、m2;
};
class xsjl:public gy //销售经理类
{ public : int set(int a){income=a*0.005+5000;return 0;} void input2() {
22
fengzhanhuaer 小型公司工资管理系统 第 23 页 cout<<"请输入销售经理信息……"<






