职工管理系统说明书_第1页
职工管理系统说明书_第2页
职工管理系统说明书_第3页
职工管理系统说明书_第4页
职工管理系统说明书_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C+序设计课程设计说明书职工管理系统指导教师:张银霞设计者:许厅范秋城崔永雷专业班级:自动化091设计时间:2010年10月-11月C+班序设计课程设计任务书专业班级:自动化091设计题目:职工信息管理系统,、已知技术参数或设计前提1、该系统目前能容下50 名员工信息。2、每个职工的信息包括:员工编号,姓名,性别,年龄,婚姻情况,学历,所在部门,所在职务,工作时长,额定工资。3、员工编号是唯一的。.、设计内容及要求1、实现职工信息的数据录入。2、能够根据职工的编号,实现对该职工信息的修改。3、实现按职工的编号,所在部门,学历,年龄进行职工信息的查询。4、实现按职工编号删除指定的职工信息。5、能

2、够以列表方式输出所有职工信息。6、实现按照需求扩充系统员工数的容量。7、通过文件存储职工信息。8、实现按照年龄段、部门、年龄等输出职工信息。9、用类实现以上功能。三、课程设计工作计划1、了解课程设计大纲的要求,确定题目,成立设计小组。( 10 月 13 10 月 16)2、上网查阅资料,确定程序所包含的内容,进行问题分析,制定方案。( 10 月 1710月 25)3、确定成员分工,根据方案编写程序并进行调试(10 月 25 10 月 30)4、撰写设计说明书,完成设计(11 月 1 11 月 10)5、对说明书及程序中存在的不足进行修改。( 11 月 10 11 月 19)6、提交设计内容,答

3、辩(11 月 20 11 月 25)四、相关教材及参考书目1陈文宇,张松梅编著.C+语言教程.电子科技大学出版社,20042张耀仁著,彻底研究.C+程序设计.中国铁道出版社,20063 Cay Horstmann 著.C+核心思想.电子工业大学出版社,20044谭正浩著.C+面向对象程序设计.清华大学出版社,20065(美)埃尔克著.C+编程思想.机械工业出版社,2005指导教师签字:系主任 签字:2010 年 月 日职工管理系统、需求分析步入21世纪的中国经济越来越发达,务工人员越来越多,这就直接导致对员工的 管理越来越难,本程序的设计是为了帮组工厂、公司的人员进行智能化的管理。随着信息技术

4、在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已 逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要 高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。二、系统的软硬件环境1、硬件环境 CPU 2.0GHz内存2GB硬盘320GB2、软件环境 Windows XP visual C+ 6.0三、系统功能模块如图1所示,职工管理系统共有五个功能模块,录入职工信息功能模块、查询职工 信息功能模块、删除职工信息功能模块、显示功能模块、删除职工信息模块和修改职工 信息功能模块。其中查询信息模块有分按职工所在部门查询、按职工学历查询、按职工

5、 年龄查询和、职工编号查询和输出全体员工信息。四、程序设计分析1、类结构(1)、职工类 Employee该类的对象是公司里的每一个员工,是该系统当中最主要的数据。数据成员:姓名(EnameN)、职工编号(EnumN)、性别(EsexN)、年龄(EageN) 、婚姻状况(EmarriageN) 、学历 (EdegreeN) 、工作部门(EdepartN ) 、职工职位(EpositionN ) 、工时(EtimeN ) 、工薪(EpayN) 。成员函数:void NewInfo(); 新信息录入函数(采集职工信息),其中运用了while语句来判断输入数据的合法性。void ShowInfo();

6、 信息显示函数(显示所有职工的信息或按要求显示职工信息), 其中运用了switch 语句 if 语句和 for 循环语句来实现。voidRefreshInfo(); 修改员工信息的函数(修改职工信息),其中运用了for 循环语句,if判断语句和while 语句来实现的。voidDeleteInfo(); 删除员工数据的函数(删除职工信息) ,其中运用了for 循环语句先查找到要删除的职工信息,再运用if 判断语句对查找到的职工信息进行处理。( 2) 、职工数据类DBOperate该类的对象为系统数据文件,完成对员工信息的保存和读取。数据成员:姓名 (EnameN) 、 职工编号(EnumN)

7、、 性别 (EsexN) 、 年龄 ( EageN) 、婚姻状况(EmarriageN) 、学历 (EdegreeN) 、工作部(EdepartN ) 、职工职位( EpositionN ) 、工时、工薪(EpayN) 。成员函数:void WriteIn(int iflag); 数据写入函数,其中运用了for 循环语句来实现。 void ReadOut(); 数据读出函数,其中运用了for 循环语句来实现。2 、模块设计分析(1) 、主函数:创建职工类对象e 和职工数据类对象dbo。(2) 、录入职工数据:对职工的信息进行采集,调用void NewInfo(); 函数采集职工信息,然后将数据

8、存入职工数据类(DBOperate)的又t象dbo中,其中运用到了 while语句来判断输入数据 的合法性。(3) 、查询职工数据:调用职工数据类(DBOperate)的成员函数(void ReadOut();)打开一个名为 Employee的txt的文本文档,然后调用职工类(Employee)的成员函数(void ShowInfo(); )进行查找或者显示全部职工信息,其中运用了for 循环语句查找所需职工的信息。(4) 、修改职工数据调用职工类(Employee)的成员函数(void RefreshInfo(),输入职工的编号进行查找,然后进行修改,其中运用了for 循环语句来查找所要修改

9、的职工信息。(5) 、删除职工数据:调用职工类(Employee)的成员函数(void DeleteInfo(),输入职工的编号删除,其中运用了for 循环语句来查找所要修改的职工信息。五、使用说明1、系统的启动首先,置入光盘,打开光盘,双击“职工管理系统 .exe ”文件,出现职工管理系统主界面,如图2 所示,出现系统主界面图,说明启动成功。H 职工管理系统* 职工管理系统 士M-M-Mr-M-W请选择您要服务的类别:图2职工管理系统主界面图2、录入功能根据提示分别录入职工的姓名、年龄、学历、性别、所在部门、工作时长、婚姻状 况等信息,如图3所示的界面图。UHA “职工管理系统r 1职工管理

10、系统.exe入询改除一畲 秀修删显运 12 3 4 5 6* * * * * 二 二二二二二二*图3录入功能界面图3、查询和统计功能输入数字“1”就会显示全部职工的信息;输入数字“ 2”就会出现提示“请输入要 查询的职工所在的部门编号”然后输入部门编号就会显示该部门所有职工的信息;输入 数字“3”就会出现提示“请输入要查询的职工的学历的编号”然后输入每个学历所对 应的编号就会显示拥有该学历的所有的职工的信息;输入数字“4”就会提示“请输入要查询的年龄范围”然后输入要查询的范围就会显示该年龄段的所有的职工的信息;输 入数字“4”就会出现提示“请输入要查询的职工的编号”然后输入编号就会出现该职 工

11、的信息,如图4所示。号名型门务长官编耍职时工工翟任作定展第工颉塞 历 忌服中心 主荏 300JsET|-6000TT30岁硕士请选择您要服务的类别言.图4查询和统计功能界面图4、修改功能输入要修改的职工的编号,就可以开始修改该职工的信息,修改完后会显示修改成 功。如图5所示。由耳: 职工管理系统” 职工管理系统一 exe工的新信息;图5修改功能界面图5、删除职工信息功能模块如图6所示,输入职工的编号,就会提示是否删除该职工的信息,如果要删除就输 入Y,如不需要删除就输入N,删除后就会提示删除成功。H:X “职工营理系统”、职工管理系统exe职工管理系统MXXJCNMm.请选择功能HHHHH入询

12、改除一番寒彩删显渥-123456图6删除功能界面图逍选择您 请输入您琴号名利门务长资编惠职时工工裂集定骷历员外-蔑F元” 静靠5商认要删除该员工信息/? c为确认 N为放奔六、结束语经过几天艰辛的努力和不懈的奋斗我们这个小组终于把这个程序调试出来了,由于我们的基础知识不够好所以在编译和调试的过程中我们遇到了很多的问题,但是我们从来没有想过放弃,我们彼此鼓励,去图书馆查阅资料,去询问老师,然后再编译在调试 再修改。这个程序的成功之处在于它的功能齐全,它不但能录入、修改、删除,还在于拥有 灵活的查询功能,能通过输入职工号查询、输入所在部门查询、输入学历查询、输入年 龄查询等等。通过这次的程序设计我

13、发现了我们小组的成员对指针、字符数组、类和文件操作学 握的不是很好,因此我们这个小组在程序设计的时候对指针的运用很少,这也就成了这 个程序最大的不足之处,需要改进。这个程序还有一个不足的地方就是在类的时候那块 没有设置私有成员,这样便导致任何函数都能访问类的成员,这个地方同样需要改进。七、参考文献1陈文宇,张松梅编著.C+语言教程.电子科技大学出版社,20042张耀仁著.彻底研究C+相序设计.中国铁道出版社,20063 Cay Horstmann 著.C+核心思想.电子工业大学出版社,20044谭正浩著.C+面向对象程序设计.清华大学出版社,20065(美)埃尔克著.C+编程思想.机械工业出版

14、社,2005八、组员分工许 厅:编写职工类主函数和职工信息查询功能模块,编写职工信息录入功能模块范秋城:编写职工信息修改功能模块崔永雷:编写职工信息删除功能模块九、源程序代码#include#include#includeusing namespace std;const N=50; / 定义系统可录入的员工最大数值string EnameN; / 名字long EnumN; / 编号char EsexN; / 性别int EageN; / 年龄char EmarriageN; / 婚否int EdepartN; / 部门int EpositionN; / 职位int Edegree50; /

15、 学历int EworktimeN; / 工作时float EpayN; / 工薪class Employee /定义职工的一个类public:string Employeename;long Employeenum;char Employeesex;int Employeeage;char Employeemarriage;int Employeedepart;int Employeeposition;int Employeedegree;int Employeeworktime;float Employeepay;static long EmployeeMaxNum; / 最大职工数 st

16、atic float EmployeeBasePay; / 基本工薪void NewInfo(); / 新信息输入函数void ShowInfo(); / 新信息显示函数void showall(); /void Employee:checkout();void showdepart(int depart); / 显示员工的部门所在函数 void showdegree(int degree); / 显示员工的学历函数 void showage(int min,int max);void shownum(long number);void RefreshInfo(); / 更新员工信息函数voi

17、d 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 Employeepay;static lon

18、g 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(Employ

19、eeMaxNum.txt);myfMN;myf.close();return MN;void Employee:NewInfo() / 添加新成员函数coutEmployee:Employeename;cout 新员工编号:Employee:Employeenum;coutEmployee:Employeesex;coutEmployee:Employeeage;coutEmployee:Employeemarriage;cout 新员工学历,请输入相应学历的序号: endl;coutEmployee:Employeedegree;while(Employee:Employeedegree !

20、=1&Employee:Employeedegree !=2&Employee:Emplo yeedegree !=3&Employee:Employeedegree !=4&Employee:Employeedegree !=5)cout输入有误,请重新输入 :endl;coutEmployee:Employeedegree;cout 新员工所在部门,请输入相应部门的序号:endl;coutEmployee:Employeedepart;while(Employee:Employeedepart !=1&Employee:Employeedepart !=2&Employee:Employe

21、edepart !=3&Employee:Employeedepart !=4&Employee:Employeedepart!=5)cout输入有误,请重新输入 :endl;coutEmployee:Employeedepart;cout 新员工职位, 请输入相应职位的序号: endl;coutEmployee:Employeeposition;while(Employee:Employeeposition !=1&Employee:Employeeposition !=2&Employee:Employeeposition !=3&Employee:Employeeposition !=4

22、&Employee:Employeeposition !=5)cout输入有误,请重新输入 :endl;coutEmployee:Employeeposition;coutEmployee:Employeeworktime;Employee:Employeepay = Employee:Pay(Employee:Employeeposition);DBOperate dbo;dbo.ReadOut();int MaxNum = Employee:MaxNum();EnumMaxNum = Employee:Employeenum;EnameMaxNum = Employee:Employeen

23、ame;EsexMaxNum = Employee:Employeesex;EageMaxNum = Employee:Employeeage;EmarriageMaxNum = Employee:Employeemarriage;EdegreeMaxNum = Employee:Employeedegree;EdepartMaxNum = Employee:Employeedepart;EpositionMaxNum = Employee:Employeeposition;EworktimeMaxNum = Employee:Employeeworktime;EpayMaxNum = Emp

24、loyee:Employeepay;dbo.WriteIn(1);cout 添加新成员成功!endl;return;void Employee:ShowInfo() / 程序主体数据输出函数int choice1,choice2,min,max;Employee e;cout 请选择显示方式:endl;cout*endl;cout*职工信息全输出 1*endl;cout*按职工部门输出 2*endl;cout*按职工学历输出 3*endl;cout*按职工年龄输出 4*endl;cout*choice1;switch(choice1)case 1:showall();break;case 2:

25、coutchoice2;e.showdepart(choice2);break;case 3:coutchoice2;e.showdegree(choice2);break;case 4:cout请输入要查询的年龄范围:;coutmin;coutmax;e.showage(min,max);break;default:cout出错啦! endl;break;void Employee:checkout()long searchnum;Employee e;cout*endl;cout* 请输入要查询的员工编号*endl;cout*searchnum;e.shownum(searchnum);

26、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;case 2:coutendl;break;case 3:coutendl;break;case 4:coutendl;break;case 5:coutendl;break;defaul

27、t: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)case 1:cout 初中学历的员工有:endl;break;case 2:cout 高中学历的员工有:endl;break;case 3:cout 本科学历的员工有:endl;break;case 4:cout 硕士学位

28、的员工有: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 max) / 按员工年龄段输出函数 int i;for(i=0;i=min&Eagei=max)(long number = Enumi;shownum(number);else continue;void Employee:sh

29、ownum(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男endl;coutEagei岁endl; cout;if(Emarriagei=Y) cout已婚endl; else if(Emarriagei=N) cout未婚endl; cout;switch (Edegreei)( case 1:c

30、out初中endl;break;case 2:cout高中endl;break;case 3:cout本科endl;break;cout硕 士 endl; break;case 4:cout博 士 endl; break;)cout;switch (Edeparti)( 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 (Epositioni) ( case 1:

31、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;coutEpayi 元 endl;cout*endl;else continue;void Employee:RefreshInfo() / 修改员工信息的函数int cNum = 50;DBOperate dbo;dbo.ReadOut();void Employee:shownum(long number

32、);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:Em

33、ployeeage;coutEmployee:Employeemarriage;Emarriagei = Employee:Employeemarriage;cout 新员工学历,请输入相应学历的序号:endl;coutEmployee:Employeedegree;while(Employee:Employeedegree !=1&Employee:Employeedegree !=2&Employee:Employeedegree !=3&Employee:Employeedegree !=4&Employee:Employeedegree !=5) cout 输入有误,请重新输入:end

34、l;coutEmployee:Employeedegree;Edegreei = Employee:Employeedegree;cout 新员工所在部门,请输入相应部门的序号: endl;coutEmployee:Employeedepart;while(Employee:Employeedepart !=1&Employee:Employeedepart !=2&Employe e:Employeedepart !=3&Employee:Employeedepart !=4&Employee:Employeedepart!= 5)cout 输入有误,请重新输入:endl;coutEmplo

35、yee:Employeedepart;Edeparti = Employee:Employeedepart;cout 新员工职位,请输入相应职位的序号:endl;coutEmployee:Employeeposition;while(Employee:Employeeposition !=1&Employee:Employeeposition !=2&Employee:Employeeposition !=3&Employee:Employeeposition !=4&Employee:Employeepositi on !=5)cout 输入有误,请重新输入:endl;coutEmploye

36、e:Employeeposition;Epositioni = Employee:Employeeposition;coutEmployee:Employeeworktime;Eworktimei = Employee:Employeeworktime;Epayi = Employee:Pay(Employee:Employeeposition);break;dbo.WriteIn(0);void Employee:DeleteInfo() / 删除员工数据的函数char tmp;int cNum = 50;DBOperate dbo;dbo.ReadOut();cout:;cincNum;i

37、nt MN;MN = Employee:MaxNum();for(int i=0;iMN;i+) / 遍历数据文件,查找要删除的员工 if(Enumi = cNum)Employee:shownum(cNum);couttmp;if(tmp=Y|tmp=y) if(i=MN-1)dbo.WriteIn(-1); else for(int j=i;jMN-1;j+) Enumj = Enumj+1;dbo.WriteIn(-1);cout 删除操作成功! endl;float Employee:Pay(int Employeeposition) / 根据员工职位计算工资的函数float tmpP

38、ay;tmpPay = Employee:EmployeeBasePay + Employee:Employeeposition * Employee:EmployeeBasePay;return tmpPay;void DBOperate:WriteIn(int iflag) / 数据操作函数写入DBOperate:RefreshMaxNum(iflag);ofstream myf(Employee.txt);Employee e;int MN;MN = e.MaxNum();for(int i=0;iMN;i+) myfEnuminEnameinEsexinEageinEmarriageinEdegree inEdepartinEpositioninEworktimeinEpayin;myf.close();return;void DBOperate:ReadOut() / 数据操作函数读出ifstream myf(Employee.txt);Employee e;int MN;MN = e.MaxNum();for(int i=0 ;iDBOperate:EmployeenumDBOp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论