1、ShowInfo();员工信息变更:RefreshInfo();发放工资: Pay(int EG);/EG为员工级别解聘员工: DeleteInfo();保存员工信息:WriteIn(int iflag);读取员工信息:ReadOut();更新员工总人数:RefreshMaxNum(int iflag); 注释:当iflag 为1时,人数增大;为零时,人数不变,即是修改;为 -1时,人数减少。3.4 具体代码如下:long Employee:EmployeeMaxNum = 1000;float Employee:EmployeeBasePay = 1500; int Employee:Max
2、Num() int MN = 0; ifstream myf(c:EmployeeMaxNum.txt”); myfMN; myf。close(); return MN; void Employee::NewInfo() char tmpName50; couttmpName; Employee:EmployeeName = new charstrlen(tmpName)+1; strcpy(Employee:EmployeeName,tmpName); / Employee:EmployeeNum = EmployeeMaxNum + Employee:MaxNum()+1; /自动分配员工
3、编号,为基础标号+员工人数 char tmpDepart50;new Employee Department ”; /输入员工部门名称 cintmpDepart;EmployeeDepart = new charstrlen(tmpDepart)+1; strcpy(Employee:EmployeeDepart,tmpDepart); cout”new Employee Grade (1:zhiyuan 2:zhuren 3:jingli 4:dongshizhang) ”; /输入员工等级,1为职员,2为主任,3为经理,4为董事长Employee:EmployeeGrade; while(
4、Employee:EmployeeGrade !=1&=2&EmployeeGrade !=3&=4)Your Input Error! Input Again be careful:)” /输入员工合同期Employee:EmployeeWorkTime;EmployeePay = Employee:Pay(Employee:EmployeeGrade); DBOperate dbo; dbo。ReadOut(); /将原来的数据文件中的数据读出,并加入新的数据 int MaxNum = Employee:MaxNum(); ENMaxNum = Employee:EmployeeName;
5、 ENumMaxNum = Employee:EmployeeNum; EDMaxNum = Employee:EmployeeDepart; EGMaxNum = Employee: EWTMaxNum = Employee:EmployeeWorkTime; EPMaxNum = Employee:EmployeePay; dbo.WriteIn(1); /将新的信息全部写入数据文件 return;ShowInfo() for(int i=0;iEmployee:MaxNum();i+) /顺序输出所有员工的信息,Employee:MaxNum()为员工人数”The Employees I
6、nformation:”endl; cout”* EmployeeName ”ENiENumiendl;”* EmployeeDepart ”EDiEGiendl; cout* EmployeeWorkTime EWTi* EmployeePay EPi* cincNum; int MN; MN = Employee:iMN; if(ENumi = cNum) /通过编号找到指定要更新的员工 /依次更新员工信息*”Your choices the Employee cout”* EmployeeName ENi cout” EmployeeNum ”ENumiendl; EmployeeDep
7、art ”EDiendl;” EmployeeGrade EGiEWTiEPiendl;*”EmployeePay = Employee:Pay(EGi); EPi = Employee:EmployeePay; break; dbo.WriteIn(0); /将更新信息写入数据文件DeleteInfo() dbo.ReadOut();ShowInfo(); cout”Please input the Employees Num MN = Employee: for(int i=0;iMN; if(ENumi = cNum)*Your choices the Employee”ENi* Emp
8、loyeeNum ”ENumiEDiEGi* EmployeeWorkTime ”EWTiEPi”*” char c;c; if(i=MN-1) /如果指定要删除的员工信息在文件末尾,那么只要将员工人数减1就行 dbo.WriteIn(1); /重新将信息写入数据文件 else for(int j=i;jMN-1;j+) ENj = ENj+1; dbo.WriteIn(-1);Delete Success ! float Employee:Pay(int EG) float tmpPay; tmpPay = Employee:EmployeeBasePay + EG*Employee:Emp
9、loyeeBasePay; return tmpPay; void DBOperate:WriteIn(int iflag) DBOperate:RefreshMaxNum(iflag); ofstream myf(Employee.txt); /打开C盘下的数据文件 Employee e; MN = e.MaxNum(); myfENinENuminEDinEGinEWTinEPitmpNameDBOperate:EmployeeNumtmpDepartDBOperate:EmployeeGradeDBOperate:EmployeeWorkTimeDBOperate: /依次读出Emplo
10、yeeName = new charstrlen(tmpName)+1;EmployeeDepart = new charstrlen(tmpDepart)+1; strcpy(DBOperate: strcpy(DBOperate: ENi = DBOperate: ENumi = DBOperate:EmployeeNum; EDi = DBOperate: EGi = DBOperate: EWTi = DBOperate: EPi = DBOperate:RefreshMaxNum(int iflag) int MaxNum = 0; ifstream myif(”c:Employee
11、MaxNum.txt); myifMaxNum;MaxNum myif。 MaxNum = MaxNum+iflag; /将员工人数做相应变动 ofstream myof(”c:EmployeeMaxNum。txt”); myofMaxNum; myof.close();四 系统运行入口的设计提供一个操作界面入图:注意:系统中有全局变量用于存储从数据文件中读出的员工信息char *EN50;long ENum50;char ED50;int EG50;long EWT50;float EP50;该系统的操作就是围绕这些全局变量展开。代码如下:void main() int c2 = 0; wh
12、ile(c2!=5) Employee Information Manage System”*”endl;”* Employee List-1 Add New Employee Information-2”c2; Employee e; switch(c2) case 1: dbo.ReadOut(); e。 break; case 2:NewInfo(); case 3: e.RefreshInfo(); case 4:DeleteInfo(); case 5: default:Error! Your Choice doesnt Exit” if(c2 = 5)五 运行步骤运行主界面:【步骤
13、1】:选择1,系统将已有的员工信息依次显示在屏幕上.【步骤2】:选择2,系统将添加新的员工信息。【步骤3】:选择3,系统将更新指定的员工信息。【步骤4】:选择4,系统将删除指定的员工信息。【步骤5】:选择5,退出系统。六 数据文件Employee.txt 存储员工的基本信息EmployeeMaxNum.txt 存储员工的人数数据文件都存放在C盘根目录下。该系统对数据文件的操作在系统运行过程中非常重要,是使整个系统正常运行的关键.七 参考文献【1】C语言程序设计 谭浩强编著 清华大学出版社【2】C+ 程序设计教程 钱能主编 清华大学出版社八 附录完整代码:#include#includestri
14、ngincludefstreamusing namespace std;char *EN50;long ENum50;char *ED50;int EG50;long EWT50;float EP50;class Employeepublic: char *EmployeeName; long EmployeeNum; char *EmployeeDepart; int EmployeeGrade; long EmployeeWorkTime; float EmployeePay; static long EmployeeMaxNum; static float EmployeeBasePay; void NewInfo(); void ShowInfo(); void RefreshInfo(); void DeleteInfo(); float Pay
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2