c++人事管理系统报告.doc

上传人:w****2 文档编号:6423998 上传时间:2020-02-25 格式:DOC 页数:25 大小:365KB
返回 下载 相关 举报
c++人事管理系统报告.doc_第1页
第1页 / 共25页
c++人事管理系统报告.doc_第2页
第2页 / 共25页
c++人事管理系统报告.doc_第3页
第3页 / 共25页
点击查看更多>>
资源描述
课程设计报告课程名称 面向对象课程设计 设计题目 人事管理系统 专业班级 姓 名 学 号 指导教师 起止时间 2010年12月20日-12月31日 成 绩 评 定考核内容设计表现设 计报 告答辩综合评定成 绩电气与信息学院人事管理系统一、课程设计的目的现代信息技术的发展,在改变着我们的生活方式的同时,也改变着我们的工作方式,使传统意义上的人事管理的形式和内涵都在发生着根本性的变化。在过去,一支笔和一张绘图桌,可能就是进行办公的全部工具。今天,电脑、扫描仪和打印机等,已基本取代了旧的办公用具。如今,人事管理己完全可以通过电脑进行,并在计算机辅助下准确快速地完成许多复杂的工作。这些都大大地缩短管理的时间。而今天,人事管理的内容己经转变为对更为广泛的系统价值的追求。信息管理,如今已是一个热门话题,它已为许多企业所采用。我认为,在现代化的进程中,引入现代管理的思想,建立一套可面向企事业单位人事的信息管理系统,也是十分必要的二、课程设计的要求要求了解企业管理信息系统开发的全过程,理解信息系统课程相关的概念,掌握管理信息系统的开发方法。主要包括:登陆的两个用户:管理员、职工管理员:可以对职工信息进行添加信息、删除信息、查询员工信息、修改员工信息、浏览员工信息。用户:可以对自己的信息进行浏览、修改、查询;还可以对别人的信息进行查询,浏览。开发这个系统的目的就是帮助企业的人力资源部门提高工作效率,实现企业人事信息管理的系统化,规范化和自动话。根据这个系统最终实现的主要功能如下:系统部分:主要完成本系统的维护工作。员工基本信息部分:主要完成员工基本信息的管理。本系统是个简单的程序,由于时间和技术有限,功能不是多完整,多具体,还请包涵。本系统的功能模块图如下:人事管理系统添加职员删除职员查询员工修改信息信息浏览退出系统管理员登陆职工登陆查询员工修改信息信息浏览图1功能层次图三、设计思路1 系统分析系统开发背景、开发范围、建设目标与必要性人事信息管理是一个单位信息管理的重要组成部分,它的内容对于一个单位的人事管理起着至关重要的作用。人事信息管理系统应该能够为管理者提供充足的信息和快捷的查询手段,但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点。如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对人事信息进行管理,具有着手工管理所无法比拟的优点。这些优点能够极大地提高人事管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。根据以上情况,决定实施建立人事信息管理系统, 因为人事信息管理是一个企业单位不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以人事信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算实现企业人事档案的管理势在必行。当前企业信息管理系统正在从US结构向B/S结构转移,但是由于安全性等方面的因素,C/S结构的管理信息系统仍然占据企业管理信息系统的主流。人事管理系统是现代企业管理工作不可缺少的一部分,是适应现代企业制度要求、推动企业劳动人事管理走向科学化、规范化的必要条件。该系统主要从以下几个功能来实现的:新增:添加新员工的个人信息。修改:修改已有员工的个人信息。删除:删除已有员工的个人信息。查询:根据条件查询员工的信息。显示所有:显示所有员工的信息。四、系统流程图1.流程分析通过对职工管理管理业务的详细调查分析,弄清了职工管理工作的业务流程和管理功能,系统业务流程图如下: 本系统业务流程图:管理员:管理员修改员工信息删除员工信息员工信息修改员工信息更新插入员工信息图2业务流程图从该流程图可以看出职工管理系统主要有以下几项管理功能:1) 员工信息删除:在接到认识部门的员工离职报告后,被解雇或者辞职的员工信息将被管理员删除。2) 员工信息修改:在公司员工发生职位变化后,人事部门向系统管理者发出员工信息修改报告,管理员修改员工信息。3) 员工信息插入:当有新员工进入公司市,管理员在数据库中插入新的员工信息。4) 信息查询:输入要查询的人姓名,很快就出现这个人的所有信息职员:职员浏览员工信息浏览其他员工信息查询员工信息图3业务流程图从该流程图可以看出职工管理系统主要有以下几项管理功能:1) 员工信息浏览:员工可以自己浏览自己的信息,及时发现错误,及时修改个人的信息保证个人信息的准确性。2) 员工信息修改:这里是我个人加入一个比较人性化的设计,考虑到我做的只是一个小型的系统,没有什么隐私或者公司利益、个人利益的牵扯,所以员工也可以自行修改自己不正确的信息。3) 员工浏览别人的信息:我这个员工可以通过查找姓名看到别人的信息,可以方便员工要联系某人时不知道他的联系方式,当然必须是熟悉你的人才可以看到你的信息,不会流露到公司外部,所以不牵扯隐私暴露问题。2.流程图确认对数据文件的任何修改自己保存获取指向数据流获取新的ID值添加新记录,并保存更新记录把游标移到最后一记录结束开始图4 增加记录的流程图 图5 删除记录的流程图开始结束删除记录是游标移到下一条记录记录内容为空更新表单游标在文件尾游标在文件头否是否游标移动到最后一条记录3数据字典为了对数据流程图中的各个元素作出详细的说明,建立数据字典是必要的。数据字典主要是对数据流程图中的数据项、数据结构、数据流、处理逻辑、数据存储和外部实体等六个方面进行具体的定义。数据流程图和数据字典一起使用,就可以从图形和文字两个方面对系统的逻辑模型进行完整的描述。五、类的层次图员工档案:员工基本信息(姓名,学历等)表1 员工基本信息字段名数据类型关键字段说明编号整型是员工姓名Char否性别Char否男、女职务Char否出生年月日期/时间否身份证号Char否家庭住址Char否电话号Char否六、系统功能模块图 1.系统主界面打开项目,编辑运行,进入主界面。如图6图6登陆界面图 7管理员主界面2.增加界面打开系统主界面,点击新增按钮,进入增加员工信息界面。如图5图8增加界面进入新增界面,添加职工信息。这样就写入文件中啦3.查询界面点击主界面中的查询按钮,进入查询职工信息界面。系统列出以下查询条件:如图9图9查询界面输入要查询的员工的姓名,就会出现下面的内容:图10查询结果界面4.修改界面在你还想进行何种操作:输入3,修改查找人信息,先输入自己要修改人的姓名,然后直接写入自己要修改的内容就行啦,这里有点错误,因为能力有限,我没找出来。图11修改界面这样就修改完了,我们可以通过显示查找人信息查找下,如图12图12修改成功界面由于上面的错误,导致里面的值会出现这样一种状况,我请教了同学没有人会,我能力有限时间有限就这样,希望你们谅解!5.显示所有界面选择5.显示所有在厂员工,系统会显示所有员工的信息。如图13图13 显示界面6.删除界面选择你要进行的操作,输入4按回车,在输入要删除的人的姓名,操作如图14、15图14删除界面图15删除界面然后输入y就会删除员工信息,输入N放弃删除如图16图16删除界面七、关键程序代码/全部代码、界面及注释#include#include#include#include#include#includechar mima20,employname10;int sl,k=1,lenth=0;char NAME20;struct date int year;int month;int day;struct inforchar name120; /姓名char sex13; /性别char zhiwu110; /职务char ID120; /身份证号char brithday112; /生日char address150; /家庭住址char tele120; /电话号码 char idemployee120; /工作编号char money15;inf100;void tiquxinxi() /提取信息char e;int i;int j;ifstream myfile(d:q.txt,ios:nocreate);for(i=0;i1000;i+)myfile.getline(infi.name1,11);if(strlen(infi.name1)2) break;for(j=1;j30;j+)if(infi.name1j= ) infi.name1j=0;myfile.get(e);myfile.getline(infi.sex1,4);for(j=1;j30;j+)if(infi.sex1j= ) infi.sex1j=0;myfile.get(e);myfile.getline(infi.zhiwu1,11);for(j=1;j30;j+)if(infi.zhiwu1j= ) infi.zhiwu1j=0;myfile.get(e);myfile.getline(infi.idemployee1,6);for(j=1;j30;j+)if(infi.idemployee1j= ) infi.idemployee1j=0;myfile.get(e);myfile.getline(infi.ID1,21);for(j=1;j30;j+)if(infi.ID1j= ) infi.ID1j=0;myfile.get(e);myfile.getline(infi.brithday1,11);myfile.get(e);myfile.getline(infi.address1,31);for(j=1;j30;j+)if(infi.address1j= ) infi.address1j=0;myfile.get(e);myfile.getline(infi.tele1,13);for(j=1;j30;j+)if(infi.tele1j= ) infi.tele1j=0;myfile.get(e);myfile.getline(infi.money1,6);for(j=1;j30;j+)if(infi.money1j= ) infi.money1j=0;myfile.get(e);lenth=i;myfile.close();class people /人的类protected:char name20; /姓名char sex2; /性别char zhiwu10; /职务char ID20; /身份证号date brithday; /生日char address50; /家庭住址char tele20; /电话号码 char idemployee20; /工作编号double money;public:void input_inf() /输入信息函数ofstream outfile(d:q.txt,ios:in|ios:app); /建立并追加方式if(!outfile)cerropen error!endl;exit(1);coutname;outfilesetiosflags(ios:left)setw(10)name; /左对齐coutsex;outfile setw(3)sex;coutzhiwu;outfile setw(10)zhiwu;coutidemployee;outfile setw(5)idemployee;coutID;outfile setw(20)ID;coutbrithday.yearbrithday.monthbrithday.day;outfile setw(4)brithday.year/setw(2)brithday.month/setw(2)brithday.day;coutaddress;outfile setw(30)address;couttele;outfile setw(12)tele;coutmoney;outfile setw(5)money;outfilen;outfile.close();void seach(char NAME) /按姓名查找函数tiquxinxi(); for(int t=0;tlenth;t+)if(strcmp(NAME,inft.name1)=0) break;if(tlenth) coutNAME的信息如下:;coutn姓名:inft.name1;coutn性别:inft.sex1; coutn职务:inft.zhiwu1;coutn工作编号:inft.idemployee1; coutn身份证号码:inft.ID1; coutn生日:inft.brithday1; coutn联系电话:inft.tele1; coutn地址:inft.address1; coutn工资:inft.money1endl; /各项信息一一列出else cout查无此人!n;void allprint() /显示全部信息函数tiquxinxi();ifstream myfile(d:q.txt,ios:nocreate);int i;char a120;for(i=0;ilenth;i+)myfile.getline(a,150);coutaendl;myfile.close();virtual void oneprint()=0; /显示一个人的信息 /纯虚函数virtualvoid change_infor()=0; /修改信息函数virtual void delet()=0; /删除函数;class employee:public people public:void delet() /只是形式,整个程序不会用到此函数coutYOU CANNOT DELETE INFORMATION!n;void oneprint() /显示一个人的信息seach(employname);class guanliyuan:public peoplepublic:void change_infor() /管理员修改职员信息tiquxinxi();coutNAME;for(int i=0;i=lenth) cout查无此人!n;else cout请重新输入信息:endl;coutinfi.name1;coutinfi.sex1;coutinfi.zhiwu1;coutinfi.idemployee1;coutinfi.ID1;coutinfi.brithday1;coutinfi.address1;coutinfi.tele1;coutinfi.money1;ofstream outfile(d:q.txt,ios:in);if(!outfile)cerropen error!endl;exit(1);for(i=0;ilenth;i+)outfilesetiosflags(ios:left)setw(10)infi.name1;outfile setw(3)infi.sex1;outfile setw(10)infi.zhiwu1;outfile setw(5)infi.idemployee1;outfile setw(20)infi.ID1;outfile setw(10)infi.brithday1;outfile setw(30)infi.address1;outfile setw(12)infi.tele1;outfile setw(5)infi.money1;outfilen;outfile.close();void delet() /管理员删除职员信息int j;char e;tiquxinxi();cout以下为NAME的信息:n; seach(NAME);coute;if(e=y|e=Y)for(int i=0;i1000;i+)if(strcmp(NAME,infi.name1)=0) break;j=i;ofstream outfile(d:q.txt,ios:trunc); /全清if(!outfile)cerropen error!endl;exit(1);for(i=0;ilenth;i+)if(i=j) continue;outfilesetiosflags(ios:left)setw(10)infi.name1;outfile setw(3)infi.sex1;outfile setw(10)infi.zhiwu1;outfile setw(5)infi.idemployee1;outfile setw(20)infi.ID1;outfile setw(10)infi.brithday1;outfile setw(30)infi.address1;outfile setw(12)infi.tele1;outfile setw(5)infi.money1;outfilen;outfile.close();cout你已经成功删除NAME的信息endl;elsecout你已经放弃了删除该信息!n;void oneprint() /显示查找人信息coutNAME;seach(NAME);void mune1()coutt*n;coutt*-*n;coutt* 1.输入个人的信息 *n;coutt* 2.显示个人信息 *n;coutt* 3.修改个人信息 *n;coutt* 4.查找他人信息 *n;coutt* 5.显示所有在厂职工 *n;coutt* 6.返回主菜单 *n;coutt* 0.退出 *n;coutt*-*n;coutt*n;void mune2()coutt*n;coutt*-*n;coutt* 1.输入职工的信息 *n;coutt* 2.显示查找人的信息 *n;coutt* 3.修改查找人信息 *n;coutt* 4.删除查找人信息 *n;coutt* 5.显示所有在厂职工 *n;coutt* 6.返回主菜单 *n;coutt* 0.退出 *n;coutt*-*n;coutt*n;int queding() /确定管理员密码是否正确;ifstream myfile(d:mima.txt,ios:nocreate);myfile.getline(mima,20);myfile.close();int i=0;char aa10;cout请输入管理员密码:endl;while(1)aai = getch();if(aai = r)aai=0;break;if(aai = b) coutb bflush;i-;else cout*flush;i+;aai=0;if(strcmp(aa,mima)=0) return 1;else return 0;void select() /菜单管理及选择people *pt;employee em;guanliyuan guan;if(sl=1) pt=&guan;if(sl=2) pt=&em;coutch;switch(ch)case 0:cout你已经成功退出!谢谢使用!_input_inf();coutoneprint();coutchange_infor();cout你还想进行何种操作:;break;case 4:if(sl=1)coutNAME;tiquxinxi();for(int i=0;i=lenth) coutdelet();cout你还想进行何种操作:;break;if(sl=2) coutNAME;pt-seach(NAME);coutallprint();cout你还想进行何种操作:;break;case 6:k=0;break;default:cout你的选择错误,请重新选择:;break;while(k);int main() /主函数及界面tiquxinxi();/coutlenth;b:coutnnn 公司人事管理系统 n;coutnnnnn;coutt*n;coutt* 请选择你的身份: *n;coutt*-*n;coutt* 1.管理员 *n;coutt* 2.普通职工 *n;coutt* 0.退出 *n;coutt*nnnn;docoutsl;switch(sl)case 0: cout你已经成功退出!谢谢使用!_n;exit(0); break;case 1: system(cls);switch(queding()case 0:cout你不能以管理员身份进入!n;break;case 1:cout操作成功!你已经以管理员身份成功进入!n;system(cls);mune2();select();break;break;case 2:coutemployname;system(cls);tiquxinxi();for(int i=0;i=lenth) cout记录中暂无您的信息,请首先选择1来输入您的信息.n;mune1();select();break;default:cout2|sl0);if(k=0)k=1;system(cls);goto b;return 0;八、课程设计总结或结论经过两个星期的软件实习,在老师的指导下,顺利完成该软件实习。通过该软件实习,收获颇多。 一、 对实验原理有更深的理解 通过该软件实习,掌握了什么是人事管理,什么是数据流,怎样建立数据流文件,并对其进行读写操作,了解了其各阶段的基本任务,熟悉了程序总流程框图,了解了程序的生成过程、构造工具及其相关的技术对课本上的知识有了更深的理解。学会了怎样把文件写入并读出,而且灵活的运用了ios类成员函数。通过把该算法的内容,算法的执行顺序在计算机上实现,把原来以为很深奥的书本知识变的更为简单,对实验原理有更深的理解。二、 对该理论在实践中的应用有深刻的理解 通过把该算法的内容,算法的执行顺序在计算机上实现,知道和理解了怎样制一个人事管理系统, 对该理论在实践中的应用有深刻的理解 。三、知道很多不足在做这个程序时想的很好,但实践起来不是那么容易的,一遍又一遍的找错误,一遍又一遍的改正、学习、还有咨询同学,最终完成了这个不是多完美功能多强大的程序,知道原来自己什么都不是,要学习的东西还很多。不完整的程序希望老师见谅,我会在以后的时间里认真学习,学好学精!九、参考文献1张立科,张仪凡,刘芳.Visual C+信息管理系统开发.北京:人民邮电出版社,20052刘金李,王力.Visual C+面向对象的课程设计.北京:电子工业出版社,20053软件实习指导书 淮安:淮阴工学院教务处,2008.34严平,张莹.Programming Visual C+编程宝典.北京:北京科学出版社,20035朱继满等译.Programming Visual C+ 6.0技术内幕.北京:希望电子出版社,20016谢公义,赵亮,李永利. Visual C+编程详解.北京:希望电子出版社,20017宇鹏,郑新,薛海东. Visual C+实践与提高.北京:电子出版社,20038张红军等. Visual C+编程详解.北京:科学出版社,20029郭翠英.C语言课程设计安全精编.北京:中国水利水电出版社,200410原奕.Visual C+实践与提高数据库开发与工程应用篇.清华大学出版社,2006
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!