1、C+课程设计职工信息管理系统C+课程设计 职工信息管理系统指导老师: 组 长: 组 员: 设计时间: 2007年9月一. 系统的软硬件环境 1. 软件环境:Windows XP、Visual C+6.0 2. 硬件环境:CPU (pentium4 2.4Hz) 、 内存(256MB)、硬盘 (80G)二. 需求分析 本系统适用于各企事业、机关单位的人事管理工作。系统储存的人事信息包括:在职及离职职工的基本情况、工作情况、组织情况、工资情况、学历情况、以及奖惩情况,个人简历、配偶和家庭成员信息等等。系统可以实现对这些信息的录入、删除、查询、统计、打印和分析操作,方便灵活、准确、迅速。可以帮助用户
2、实现对人事信息的全面管理。 本系统作为人力资源管理的计算机管理系统,秉承以“人”为主的管理方式:对于企业、部门、职工以及它们相互之间复杂的人事关系,本系统是无法取代人去处理的,因而在某些人事事务的处理上,本系统为人的处理留出了较大的余地。 三. 系统总体框架图. 四. 模块功能实现1、 该系统存储了某个单位所有职工的基本信息,对每一个职工存储:职工编号,姓名,性别,出生年月,部门,职称,最后学历,工资和婚否等信息。形成了统一的档案管理系统,便于公司对职工的管理。2、创建存储该单位职工信息的存储系统,在第一次输入基本信息时,创建文件将职工信息写入文件。 3、增加职工信息,增加新职工时输入新职工的
3、基本信息并加入文件。 4、删除某职工的基本信息,同时修改文件中相应的内容。5、修改某职工的某些信息,如加工资,获新学位,晋升职称。6、可以输出符合某种特征的职工信息列表,包括: a)全体职工信息; b)某职称的职工全部信息; c)出生日期在某一范围的全部职工信息; d)某一部门全部职工信息。五. 程序的使用说明 在运行此程序时出现如下如所示的界面此时就可以按照需要来查找有关员工的信息了,例如你想按条件输出员工的数据,那么就在“请选择您要服务的类别:”处输入2再按回车,您会看见如下信息:之后您可以选择按职工部门、职工学历、或是年龄、辩护等方式来查找员工,同样您要是想修改员工信息就重新运行之后输入
4、3来重复上述操作,这里不再赘述,请您自己把握。六. 结束语const N=50; / 用常量定义系统可录入的员工最大数值int Employee:MaxNum() /返回系统已经存储的人数void Employee:shownum(long number) /按员工编号输出函数void Employee:RefreshInfo() /修改员工信息的函数void DBOperate:RefreshMaxNum(int iflag) /更新系统中员工计数文件的函数2到4行为定义一个函数属于某个类,实现其功能for(int i=0;iMN;i+) /遍历数据文件,查找要修改的员工数据利用for循环语
5、句实现函数的功能static long EmployeeMaxNum;static float EmployeeBasePay;利用静态长整型数和静态浮点数实现函数的功能while(Employee:Employeedepart !=1&Employee:Employeedepart !=2&Employee:Employeedepart !=3&Employee:Employeedepart !=4&Employee:Employeedepart!=5)while循环switch(choice1)开关语句for(int i=0;iMN;i+) /遍历数据文件,查找要删除的员工 if(Enum
6、i = cNum)for循环和if的嵌套七. 成员分工 张 佳:负责创建 class Employee 、 class DBOperate switch(choice1)、void DBOperate:WriteIn(int iflag) 王彦艳:负责编辑int Employee:MaxNum() 、void Employee:NewInfo() void Employee:ShowInfo() 、void Employee:showall()八. 程序源代码如下#include #include #include using namespace std; const N=50; / 定义系统
7、可录入的员工最大数值 string EnameN; long EnumN; char EsexN; int EageN; char EmarriageN; int EdepartN; int EpositionN; int Edegree50; int EworktimeN; float EpayN; class Employee public: string Employeename; long Employeenum; char Employeesex; int Employeeage; char Employeemarriage; int Employeedepart; int Empl
8、oyeeposition; int Employeedegree; int Employeeworktime; float Employeepay; static long EmployeeMaxNum;static float EmployeeBasePay; void NewInfo(); void ShowInfo(); void showall(); void showdepart(int depart);void showdegree(int degree); void showage(int min,int max); void shownum(long number); void
9、 RefreshInfo();void DeleteInfo();float Pay(int Employeegrade);static int MaxNum(); class DBOperate public: string Employeename; long Employeenum; char Employeesex; int Employeeage; char Employeemarriage; int Employeedepart; int Employeeposition; int Employeedegree; int Employeeworktime; float Employ
10、eepay; static long EmployeeMaxNum; static float EmployeeBasePay; void WriteIn(int iflag); void ReadOut(); void RefreshMaxNum(int iflag); /i=1 or -1 or 0 ; long Employee:EmployeeMaxNum = 1000; float Employee:EmployeeBasePay = 1500; int Employee:MaxNum() /返回系统已经存储的人数 int MN = 0; ifstream myf; myf.open
11、(EmployeeMaxNum.txt); myfMN; coutMNendl; myf.close(); return MN; void Employee:NewInfo() /添加新成员函数 coutEmployee:Employeename; Employee:Employeenum = EmployeeMaxNum + Employee:MaxNum()+1; coutEmployee:Employeesex; coutEmployee:Employeeage; coutEmployee:Employeemarriage; cout新员工学历,请输入相应学历的序号: endl; cou
12、tEmployee:Employeedegree; while(Employee:Employeedegree !=1&Employee:Employeedegree !=2&Employee:Employeedegree !=3&Employee:Employeedegree !=4&Employee:Employeedegree !=5) cout输入有误,请重新输入:endl; coutEmployee:Employeedegree; cout新员工所在部门,请输入相应部门的序号:endl; coutEmployee:Employeedepart; while(Employee:Empl
13、oyeedepart !=1&Employee:Employeedepart !=2&Employee:Employeedepart !=3&Employee:Employeedepart !=4&Employee:Employeedepart!=5) cout输入有误,请重新输入:endl; coutEmployee:Employeedepart; cout新员工职位, 请输入相应职位的序号: endl; coutEmployee:Employeeposition; while(Employee:Employeeposition !=1&Employee:Employeeposition !
14、=2&Employee:Employeeposition !=3&Employee:Employeeposition !=4&Employee:Employeeposition !=5) cout输入有误,请重新输入:endl; coutEmployee:Employeeposition; coutEmployee:Employeeworktime; Employee:Employeepay = Employee:Pay(Employee:Employeeposition); DBOperate dbo; dbo.ReadOut(); int MaxNum = Employee:MaxNum(
15、); EnumMaxNum = Employee:Employeenum; EnameMaxNum = Employee:Employeename; EsexMaxNum = Employee:Employeesex; EageMaxNum = Employee:Employeeage; EmarriageMaxNum = Employee:Employeemarriage; EdegreeMaxNum = Employee:Employeedegree; EdepartMaxNum = Employee:Employeedepart; EpositionMaxNum = Employee:E
16、mployeeposition; EworktimeMaxNum = Employee:Employeeworktime; EpayMaxNum = Employee:Employeepay; dbo.WriteIn(1); cout 添加新成员成功!endl; return; void Employee:ShowInfo() /程序主体 数据输出函数 int choice1,choice2,min,max; long searchnum; Employee e; cout 请选择查询方式:endl; cout*endl; cout* 输出全体职工信息- 1endl; cout* 按职工部门输
17、出- 2endl; cout* 按职工学历输出- 3endl; cout* 按职工年龄输出- 4endl; cout* 按职工编号输出- 5endl; cout*choice1; switch(choice1) case 1: showall();break; case 2: coutchoice2; e.showdepart(choice2);break; case 3: coutchoice2; e.showdegree(choice2);break; case 4: cout请输入要查询的年龄范围: ; coutmin; coutmax; e.showage(min,max);break
18、; case 5: coutsearchnum; e.shownum(searchnum);break; default: cout出错啦! endl;break; void Employee:showall() /全体员工输出函数 int i; long number; for(i=0;iEmployee:MaxNum();i+) number = Enumi; shownum(number); void Employee:showdepart(int depart) /按员工所在部门输出函数 int i; switch(depart) case 1: coutendl; break; ca
19、se 2: coutendl; break; case 3: coutendl; break; case 4: coutendl; break; case 5: coutendl; break; default: coutendl; break; for(i=0;iEmployee:MaxNum();i+) if(Edeparti = depart) long number = Enumi; shownum(number); else continue; void Employee:showdegree(int degree) /按员工学历输出函数 int i; switch(degree)
20、case 1:cout初中学历的员工有:endl;break; case 2:cout高中学历的员工有:endl;break; case 3:cout本科学历的员工有:endl;break; case 4:cout硕士学位的员工有:endl;break; case 5:cout博士学位的员工有:endl;break; for(i=0;iEmployee:MaxNum();i+) if(Edegreei = degree) long number = Enumi; shownum(number); else continue; void Employee:showage(int min,int
21、max) /按员工年龄段输出函数 int i; for(i=0;i=min&Eagei=max) long number = Enumi; shownum(number); else continue; void Employee:shownum(long number) /按员工编号输出函数 int i; for(i=0;iEmployee:MaxNum();i+) if(Enumi = number) cout*endl; coutEnumiendl; coutEnameiendl; cout; if(Esexi=F) cout女 endl; else if(Esexi=M) cout男
22、endl; coutEagei岁endl; cout; if(Emarriagei=Y) cout已婚 endl; else if(Emarriagei=N) cout未婚 endl; cout; switch (Edegreei) case 1:cout初 中 endl;break; case 2:cout高 中 endl;break; case 3:cout本 科 endl;break; case 4:cout硕 士 endl;break; case 5:cout博 士 endl;break; cout; switch (Edeparti) case 1:cout董事会 endl;brea
23、k; case 2:cout市场部 endl;break; case 3:cout公关部 endl;break; case 4:cout客服中心 endl;break; case 5:cout信息中心 endl;break; cout; switch (Epositioni) case 1:cout临时成员 endl;break; case 2:cout正式员工 endl;break; case 3:cout主任 endl;break; case 4:cout部门经理 endl;break; case 5:cout董事长 endl;break; coutEworktimei小时endl; co
24、utEpayi元endl; cout*endl; else continue; void Employee:RefreshInfo() /修改员工信息的函数 int cNum = 1000; DBOperate dbo; dbo.ReadOut(); void Employee:shownum(long number); cout; cincNum; int MN; MN = Employee:MaxNum(); for(int i=0;iMN;i+) /遍历数据文件,查找要修改的员工数据 if(Enumi = cNum) Employee:shownum(cNum); cout请输入该员工的新信息: endl; coutEmployee:Employeename; Enamei = Employee:Employeename; coutEmployee:Employeesex; Esexi = Employee:Employeesex; coutEmployee:Employeeage; Eagei = Employee:Employeeage; cout新员工婚姻状况(Y为已婚,N为未婚): ; ci
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1