职工信息管理系统.docx
- 文档编号:17643879
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:26
- 大小:283.08KB
职工信息管理系统.docx
《职工信息管理系统.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统.docx(26页珍藏版)》请在冰点文库上搜索。
职工信息管理系统
成绩
课程设计报告
题目职工信息管理系统
课程名称面向对象程序设计课程设计
院部名称软件工程学院
专业软件工程
班级13软件工程
学生姓名
学号
课程设计地点A203
课程设计学时20学时
指导教师李尤丰
金陵科技学院教务处制
一、课程设计的目的和要求
1,目的
该课程设计的目的采用面向对象的程序设计语言,开发实现一个应用程序,主要目的是使学生更好的掌握面向对象程序设计语言及其开发工具,掌握如何使用面向对象的程序设计语言设计一个小的软件系统。
通过该课程设计培养学生分析和解决实际问题的能力,培养学生综合应用基本概念,基本原理,和技术方法的能力,真正做到学以致用,使课本上抽象的理论,方法与具体的实践应用相结合。
.通过实验实现对学生信息系统的管理操作;
.进一步掌握和利用C++进行程设计的能力;
.进一步理解和运用面向对象程序设计的思想和方法;
.初步掌握开发一个小型实用系统的基本方法;
.掌握书写程设计开发文档的能力(书写课程设计报告);
2,要求
为某小型公司编写一个职工信息管理软件。
该管理软件处理的对象:
公司、部门、职工,公司其他各类职工,部门若干。
具体实现以下功能:
(1)能够输入员工的工资等信息
(2)通过键盘把某位职工某项数据添加到相应表中;
(3)能够按姓名查询职工的信息;
(4)能够按姓名查询职工的信息;
(5)可以按照要求需要删除添加职工信息进去;
(6)模块化程序设计;
(7)必须用c++程序编程,上机调试通过;
【输入】程序正常运行后,屏幕上显示一个文字菜单(根据序号选定相应的操作项目),当用户选定操作项目所对应的序号时,根据应用程序的提示信息,从键盘上输入相应的数据。
【输出】
(1)应用程序正常运行后,要在屏幕上显示一个文字菜单;
(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
根据合理的进度安排,踏实的开展课程设计活动。
课程设计过程中,根据选题的具体要求,在编程实现环节中撰写相关的技术文档,最后要求提交详细的课程设计报告。
3,课程设计报告格式要求
(1)题目内容的描述
(2)应用程序功能的详细说明
(3)输入数据类型、格式和内容限制;
(4)主要模块的算法描述(以程序流程图的方式给出、简要的语言描述)
(5)结束语
(6)程序的源代码清单
2、系统需求分析
该职工管理系统针对员工信息数据的处理设计了以下功能:
1.输入、添加职工信息
添加员工信息,提供员工信息的添加,再输入完毕之后,可以选择继续输入添加或者退出到主界面进行其他操作。
2.修改职工信息
修改员工信息设置比较人性化,首先通过职工工号索引,若不存在该工号或者没有员工,则会显示:
查询不到该工号的职工,按0退出,则返回主菜单。
如果员工人数不为0,则进入删除员工信息的界面。
修改员工信息板块功能强大,界面友好,用循环控制修改某员工属性,这样使得操作极为方便。
3.删除职工信息
删除员工信息中同样的设计了对员工人数的检查,如果员工人数的值为0或者员工信息没有录入,则按0返回到主菜单。
如果员工人数不为0,则系统会直接进行删除。
4.员工职工查找
在这个功能当中,设置了两种索引方式,一种是按姓名查找,另一种是按工号查找,分别对饮数字1,2.输入对应的数字就选择对应的索引方式。
通过函数进行查找。
该函数比较简单,通过循环一次比较职工的信息是否与你输入的要求信息是否相等,如果相等,则输入到屏幕上,如果未找到任何匹配的员工,则显示“查询不到”。
5.职工信息的显示
对职工信息进行显示,包括职工的工号,姓名,所属部门,岗位津贴,水电费,医疗保险,工资等信息。
方便对员工了解。
三、总体设计
本程序能够:
(1)能够查询公司的员工个人信息、部门信息;
(2)通过键盘把某位职工添加到相应部门;
(3)能够按姓名查询职工的信息;
(4)能够按工号查询职工的信息
4、详细设计
这个系统一共有七个模块:
输入,修改,添加,删除,查询,显示,退出。
而我负责的是输入和删除模块。
程序主界面及其代码如下:
在整个程序开始之前,需要先对一些类进行定义,先进行定义了一个zhigong(职工)、gongzi(工资)、zhigonfzi(职工工资)类;
zhigong类的建立确保了可以成功的从键盘输入职工所在部门、姓名、编号,代码如下:
gongzi类的建立确保了可以从键盘输入职工的岗位工资,岗位津贴,缴纳的水电费和医疗保险费用。
代码如下:
我主要负责的输入和删除模块,对应主界面的编号1和4的操作。
主要的代码如下:
首先输入这一块,涉及到文件的保存,在这里首先使用了这一行代码:
即打开文件,指定目录。
如果文件不存在的话,就新建一个文件。
涉及到底下循环里面还有地方需要提一下:
这里主要是写入信息,write()函数的第一个参数是char类型,第二个参数是指定要输入的大小,即职工工资的大小。
程序的实现如下图:
至于删除模块,则是相对来说比较简单的模块,主需要一个while循环,先输入要删除的职工的工号,在交给系统检索,如果用户输入的号码和职工的工号匹配:
,就可以进入循环。
然后就是字符串最后一位为空,每位向前一位就可以删除字符串了:
。
删除操作成功后界面:
五、测试、调试过程的问题
遇到的问题:
数据在存入文件的时候再打开会出现乱码;
程序的容错能力比较差,不按照提示输入,就可能会出现bug;
用户界面比较僵硬死板。
6、结论与体会
本次设计我们选择的题目是职工信息管理系统。
我们在完成这个设计的过程还是比较顺利的。
在系统分析和设计的部分大家一起花了比较多的时间。
各个模块的设计部分我们都花了很大的心思,因为需要把抽象的东西转化成我们实际变成的代码。
为此我们几人查阅了相当的书籍资料,才最终实现。
在此过程中,令我收获最大的反而不是在自己对于c++只是的掌握上,而是当自己的想法与别人的发生冲突碰撞时,怎样更好地去解决问题,从而使大家能够齐心协力专心致志的完成我们的职工管理系统
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。
在这样的前提下,最后顺利完成了这份设计。
此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。
七、参考文献
【1】(美)戴特尔(Deitel,H.M.).C++大学基础教程(第五版)[M].北京:
电子工业出版社,2007.6
【2】谭浩强.C++程序设计[M].北京:
清华大学出版社,2006
【3】邓莉.c++语言程序设计(第四版).北京:
清华大学出版社.2007.6
【4】李春葆《高级实例开发指南》
【5】.吴迪曲蒙《中文版函数手册》清华大学出版社1999年1月
#include
#include
#include
usingnamespacestd;
classzhigong{
public:
voidsetnumber(intn){number=n;}
voidsetname(char*na){strcpy(name,na);}
voidsetbumen(char*bu){strcpy(bumen,bu);}
intgetnumber(){returnnumber;}
char*getname(){returnname;}
char*getbumen(){returnbumen;}
voidsetzhigong()
{
cout<<"请输入职工所在部门:
";cin>>bumen;
cout<<"请输入职工编号:
";cin>>number;
cout<<"请输入职工姓名:
";cin>>name;
}
private:
intnumber;
charname[20];
charbumen[20];
};
classgongzi{
public:
voidsetgangwei(doubleg){gangwei=g;}
voidsetjintie(doublej){jintie=j;}
voidsetyiliao(doubley){yiliao=y;}
voidsetshuidian(doubles){shuidian=s;}
doublegetgangwei(){returngangwei;}
doublegetjintie(){returnjintie;}
doublegetyilao(){returnyiliao;}
doublegetshuidian(){returnshuidian;}
doublegetyingfa(){return(gangwei+jintie);}
doublegetshifa(){return(gangwei+jintie-shuidian-yiliao);}
voidsetgongzi(){
cout<<"请输入所得岗位工资:
";cin>>gangwei;
cout<<"请输入所得岗位津贴:
";cin>>jintie;
cout<<"请输入所需缴纳的水电费:
";cin>>shuidian;
cout<<"请输入所需要交纳的医疗保险费:
";cin>>yiliao;}
private:
doublegangwei;
doublejintie;
doubleyiliao;
doubleshuidian;
};
classzhigongzi:
publiczhigong,publicgongzi
{public:
voidsetzhigongzi()
{
setzhigong();
setgongzi();
}
};
voidmenu()
{
cout<<"***********************************************************************"< cout<<"--------------------------职工工资管理系统-----------------------------"< cout<<"***********************************************************************"< cout<<"**1.输入职工信息**"< cout<<"**2.修改职工工资**"< cout<<"**3.添加职工信息**"< cout<<"**4.删除职工信息**"< cout<<"**5.查询职工工资**"< cout<<"**6.显示职工信息**"< cout<<"**7.退出系统**"< cout<<"***********************************************************************"< } inti=-1; intshuru(zhigongziz[]) { ofstreamofile("D: \\zhigong.dat",ios: : binary); if(! ofile) { cout<<"文件夹不能打开."< return0; } while (1) { intp=1; while(p==1) { i++; z[i].setzhigongzi(); ofile.write((char*)&z[i],sizeof(zhigongzi)); cout<<"输入成功! "< cout<<"继续输入请按1,退出请按0: ";cin>>p; } returni+1; } ofile.close(); } intt,number; doublegangwei; doublejintie; doubleyiliao; doubleshuidian; charname[20]; intxiugai(zhigongziz[],intm) { ofstreamofile("D: \\zhigong.dat",ios: : binary); intflag; intn=1; while(n==1) { cout<<"请输入要修改信息的职工号: "; cin>>number; flag=0; inta; for(inti=0;i if(number==z[i].getnumber()) do{ cout<<"请选择要修改的信息: "< cout<<"***********************************************"< cout<<"******1.修改岗位工资******"< cout<<"******2.修改岗位津贴******"< cout<<"******3.修改应交纳水电费******"< cout<<"******4.修改应交纳医疗保险费用******"< cout<<"***********************************************"< cout<<"请选择对应数字序号进行操作: "; cin>>a; if(a==1) { cout<<"请输入新的岗位工资: "; cin>>gangwei; z[i].setgangwei(gangwei); } if(a==2) { cout<<"请输入新的岗位津贴: "; cin>>jintie; z[i].setjintie(jintie); } if(a==3) { cout<<"请输入新的水电费: "; cin>>shuidian; z[i].setshuidian(shuidian); } if(a==4) { cout<<"请输入新的医疗保险费用: "; cin>>yiliao; z[i].setyiliao(yiliao); } ofile.write((char*)&z[i],sizeof(zhigongzi)); flag=1; }while(a<1||a>4); if(flag==0) { cout<<"查询不到该工号的职工,按0退出"< cin>>n; } else { cout<<"继续修改请按1/退出请按0: "; cin>>n;} } cout< ofile.close(); return0; } inttianjia(zhigongziz[],intm) { intn=1; while(n==1) { cout<<"请输入要添加的新职工信息"< z[t].setzhigongzi(); cout<<"添加成功! ";t++; cout<<"是否继续添加,继续请按1/退出请按0: "< cin>>n; } returnt; } voidshanchu(zhigongziz[],intm) { intflag; intn=1; while(n==1) { cout<<"请输入要删除的职工的职工号: "; cin>>number; flag=0; for(inti=0;i if(number==z[i].getnumber()) { intk;k=i; for(k;k { z[k]=z[k+1];t=t-1;} flag=1; cout<<"*****删除成功*****"< } if(flag==0) { cout<<"查询不到该工号的职工,无法删除按0退出"< cin>>n; } else { cout<<"继续删除请按1/退出请按0: "; cin>>n; } } } voidchaxun(zhigongziz[],intm) { cout<<"-----------------[1]按姓名查询-------------------"< cout<<"-----------------[2]按工号查询-------------------"< cout<<"---请选择查询的方式(输入对应方式的序号1或2)---: "; intk; cin>>k; if(k==1) { intu[10]; intn=1; while(n==1) { cout<<"请输入要查询的职工的姓名: "; cin>>name; intj=0; for(inti=0;i if(strcmp(name,z[i].getname())==0) { u[j]=i;j++; } if(j==0) { cout<<"没有你要查询的职工名字"< cout<<"是否继续查询,继续请按1/退出按0: "< cin>>n; } for(intb=0;b { if(j<2) { i=u[b]; cout<<"职工号"<<""<<"姓名"<<""<<"所属部门"<<""<<"岗位工资"<<""<<"岗位津贴"<<""<<"水电费"<<""<<"医疗保险"<<""<<"应发工资"<<""<<"实发工资"< cout< < < } else i=u[b]; } } } if(k==2) { intflag; intn=1; while(n==1) { cout<<"请输入要查询的职工的职工号: "; cin>>number; flag=0; for(inti=0;i if(number==z[i].getnumber()) { cout<<"职工号"<<""<<"姓名"<<""<<"所属部门"<<""<<"岗位工资"<<""<<"岗位津贴"<<""<<"水电费"<<""<<"医疗保险"<<""<<"应发工资"<<""<<"实发工资"< cout< <
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 职工 信息管理 系统