文档介绍:哈工大计算机软件技术基础计算机软件技术基础实验报告班号:学号:姓名:puterPay()员工具有数据成员雇员号姓名银行账号从员工类派生三个类,经理,底薪职员,销售职员;分别实现派生类的构造函数、析构函数和其它方法经理的薪水是按月固定发放;底薪职员薪水是按工作小时数*每小时工资标准;销售职员的薪水是底薪+销售额提成30%;具体标准可自行定义;创建员工的指针数组,并初始化这些指针指向不同的派生对象,并通过对指针数组的循环遍历,来实现对各种对象的基本信息以及薪水的输出使用介绍 打开程序后,选择运行文件,根据弹出屏幕的选择进行操作。有5个选择可供使用者选择。选择1,即计算原有员工工资选项后,需要再根据屏幕提示输入工作总时间,每小时工资和销售总金额,从而得到原有员工的工资。选择2,即从屏幕中读取员工信息并计算工资,需要根据屏幕选项选择员工类型。1为经理,2为底薪人员,3为销售人员,4为退出,当输入其它数字时则要求重新选择一次。选择经理填入信息中有是否设定工资的选项,选择是则自行输入工资,否则按默认工资8000处理。选4退出后回到主选择页面。选择3,即从文件中读取信息并计算工资。当三个操作都进行完时(或者进行其中的某一项或者两项后),可选择4将信息输出,信息输出按原有员工、输入员工、文件读入员工三部分来输出。选择5后退出整个程序。源代码一、主函数1、//要加入头文件#include<iostream>#include<fstream>#include<string>usingnamespacestd;//指定命名空间//自己定义的类,使用时要加入头文件#include""#include""#include""#include""intmain(){ //定义变量 inti,c1,c2,x,c3; intj=0,h=0,k=0,a=1,b=1,y=0,m=0,n=0; floathrs,wg,sale; intnm=0,nw=0,ns=0; charname[30]; longno; charbankno[30]; CManagermanager[20]; CWagewage[20]; CSaleSale[20]; CManagerfmanager[20];//文件输入部分变量 CWagefwage[20]; CSalefSale[20]; charch[20]; longno0; intl=0,s,t=0,l1=0,l2=0,l3=0,xf; floatsa0,hrs0,wg0; CEmployee*pfEmployee[60]; CEmployee*pEmployeexin[60];//定义新加入人员的指针数组 //原有人员信息 CManageraManager("张三",100001,"A"); CWageaWage("李四",100002,"B"); CSaleaCSale("王五",100003,"C"); while(a==1) { //选择执行项目 cout<<"选择执行项目:"<<endl; cout<<"1、计算原有员工的工资"<<endl; cout<<"2、计算从屏幕中新输入员工的工资"<<endl; cout<<"3、文件中读取员工信息并计算工资"<<endl; cout<<"4、信息以文件形式输出"<<endl; cout<<"5、退出"<<endl; cin>>c1; if(c1==1)//计算原有员工薪水{ //从屏幕读取数据 cout<<"请输入数据,各个数据以回车为界"<<endl; cout<<"工作总时间:"; cin>>hrs; cout<<"每小时工资:"; cin>>wg; cout<<"销售总金额:"; cin>>sale; (hrs); (wg); (hrs); (wg); (sale); m=1; } if(c1==2)//输入新员工信息并计算工资{ n=1; while(j<20&&h<20&&k<20&&b==1) { cout<<"选择员工类型"<<endl;//选择员工类型 cout<<"1、经理2、底薪人员3、销售人员4、退出"<<endl; cin>>c2; switch(c2) { case1: { cout<<"请输入数据,各个数据以回车为界"<<endl; cout<<"姓名"; cin>>name; cout<<"编号"; cin>>no; cout<<"银行账号"; cin>>bankno;//读入经理信息//存储经理信息 manager[j].setName(name); manager[j].setbankNo(bankno); manager[j].setNo(no);//选择是否设定工资 cout<<"是否设定工资?(默认为基本工资8000)"<<endl;