ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:55.87KB ,
资源ID:11621281      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11621281.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(人事信息管理系统.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

人事信息管理系统.docx

1、人事信息管理系统*实践教学* 兰州理工大学计算机与通信学院2012年春季学期 C程序设计 课程设计题 目:人事信息管理系统专业班级: 姓 名: 人才v 学 号: 指导教师: 成 绩:_摘 要企业的人设管理系统是运用于Windows系统下的应用软件,主要用于对企业人事基本管理,包括工人基本信息如工号,姓名以及职称,工资进行增加,删除,修改,查询,插入,统计,存盘等基本操作。本程序实现了所有设计要求。关键词:人事信息,排序,统计目 录 摘 要 I1 题目要求 a1.1要求 a2 需求分析: a3 总体设计 a4 详细设计 b4.1主函数 b4.2各功能模块设计: c5 总结 d参考文献 e致 谢

2、e附 录 - 1 -1 题目要求1.1要求人事信息管理系统 某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。(1) 添加删除功能:能根据学院人事的变动情况,添加删除记录;(2) 查询功能:能根据编号和姓名进行查询;(3) 编辑功能(高级):根据查询对相应的记录进行修改,并存储;(4) 统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上),统计要求同时显示

3、被统计者的信息;(5) 排序功能:按照年龄、来院时间进行排序;(6) 保存功能:能对输入的数据进行相应的存储;2 需求分析:根据题目要求,职工信息是存放在文件中的,所以应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。另外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件存贮,这样的方法在一定程度上提高了对数据处理的灵活性,较容易理解,但存在处理中遇到以外情况而丢失数据的风险,另外当文件中的数据量很大时,这种方法也存在一定的难度,在本程

4、序中将N定为100,基本上能满足要求。 3 总体设计一、 总体设计:根据以上需求分析,将程序分成以下几个模块:1、 新建数据文件(build new data);2、 添加记录(add data);3、 删除记录(delete data);4、 按工号搜索(search by number);5、 按姓名搜索(search by name);6、 浏览全部数据(browse all);7、 修改数据(modify the data);8、 排序功能(order the volume);9、 统计功能(data a volume);系统功能模块图如下:4 详细设计4.1主函数为使系统执行完每部分

5、功能后能够方便的回到系统主界面,main()函数设计的较简单,只包含一个menu()函数,其余的全部功能都通过menu()函数调用来实现,并通过menu()函数的递归调用实现返回主界面的功能。main()函数定义如下:main() menu();而menu()定义如下:void Menu() /*菜单函数*/ int nSelectNum,nWhileFlag; do printf(nttttMENUn); printf(tt0tBuild new datann); printf(tt1tDelete datann); printf(tt2tAdd datann); printf(tt3tSe

6、arch by Numbernn); printf(tt4tSearch by Namenn); printf(tt5tBrowse allnn); printf(tt6tModify the datann); printf(tt7tOrder the volumenn); printf(tt8tData a volumenn); printf(tt9tExitnn); printf(tPlease choice and enter a number bb); scanf(%d,&nSelectNum); if(nSelectNum9) nWhileFlag=1; else nWhileFla

7、g=0; while(nWhileFlag=1);switch(nSelectNum) case 0:Build();break; case 1:Del();break; case 2:Add();break; case 3:SNum();break; case 4:Sname();break; case 5:Browse();break; case 6:Modify();break; case 7:Order();break; case 8:Data();break; case 9:exit(0);break;/正常退出 default: printf(input error! please

8、 input a cArrNumber between 0 and 8); Menu(); 4.2各功能模块设计:(1)、新建数据文件模块:、数据结构;看各个数据信息,编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别,均为字符串类型,在文件中以文本形式存放,每条记录对应一个人员的信息,可以方便信息的管理;而数据读进内存中时,可以以结构体的形式,每一个结构体包含了一个人员的全部信息,多的人员的信息组成了一个结构体数组。定义如下:struct worker char cArrNum11; char cArrName10; char cArrSex2; char

9、cArrAge3; char cArrZhiwu15; char cArrZhengzhi15; char cArrXueli15; char cArrZhicheng15; char cArrRenzhisj8; char cArrLaiyuansj8; char cArrLeibie15;structWkMAX_WORKER_NUM;其中N是宏定义形式定义的字符,临时定义为100,wkN,为存放人员信息的结构体数组,而S为临时的结构体,用来保存信息处理过程中的临时数据。(2)浏览模块;a) 需求分析:该模块的功能是显示所有保存在文件中的记录,考虑到记录较多,采用分屏显示的方式;1程序:vo

10、id Browse() int i,nWorkerNum; nWorkerNum=Load(); Printf_face(); for(i=0;i=nWorkerNum;i+) Printf_one(i); printf(tThere are %d record.n,nWorkerNum+1); printf(press any key to continue.); getch(); Menu();b)上机操作:下面是部分模块的运行结果的界面图:输入模块:新建文件和添加模块的输入界面设计基本相同:编辑模块:5 总结 通过这次C程序设计,我掌握了模块化设计方法,能够深入的理解结构化程序设计思想,

11、熟练运用结构化程序设计方法,提高了运用C语言进行程序设计的能力。参考文献1 C/C+程序设计,王连相等,中国科学技术出版社,20042 C语言程序设计,谭浩强,清华大学出版社,19993 C程序设计题解与上机指导,谭浩强,清华大学出版社,19994 C语言实用程序荟萃,西安电子科技大学出版社,19935 C语言函数手册,机械工业出版社,19996 C语言的实际应用,安徽科学技术出版社,2000致 谢首先要感谢张宪立老师的授课与指导!感谢所有支持我完成C程序设计论文的老师和同学们!在这次课程设计中老师给了我很大的帮助,帮我解答疑难问题,给我提供资料,给我提供查阅资料的信息,引导我该如何去思考问题

12、,教会我解决问题的方法.同时又鼓励我自己学习,老师给我的不仅是知识,时帮助,更是学习的信心和智慧,在这里衷心感谢老师的耐心细心一丝不苟的帮助.同时也感谢和我一起走过的同学,这是我们共同努力地结果,衷心的感谢大家对我的帮助和支持。附 录#define MAX_WORKER_NUM 100#include #include #include #include void Menu();/菜单函数void Build();/新建文件void Add();void Del();/删除记录函数void Browse();void Modify();void Order();/排序函数int Load();

13、void CheckNum(int,int);/检查编号void Data();/统计函数void Sname();/按姓名搜索void SNum();/按学号搜索void Printf_face();/显示数据结构void Printf_one(int);/输出一条记录void Input(int,int);/输入一个记录void Printf_one(int);/显示一条记录void Save(int);/保存函数int Modify_data(int,int);/修改数据函数void NumDuty();void NumPM();void NumWM();void Hiedcation(

14、);struct worker char cArrNum11; char cArrName10; char cArrSex2; char cArrAge3; char cArrZhiwu15; char cArrZhengzhi15; char cArrXueli15; char cArrZhicheng15; char cArrRenzhisj8; char cArrLaiyuansj8; char cArrLeibie15;structWkMAX_WORKER_NUM;void Menu() /*菜单函数*/ int nSelectNum,nWhileFlag; do printf(ntt

15、ttMENUn); printf(tt0tBuild new datann); printf(tt1tDelete datann); printf(tt2tAdd datann); printf(tt3tSearch by Numbernn); printf(tt4tSearch by Namenn); printf(tt5tBrowse allnn); printf(tt6tModify the datann); printf(tt7tOrder the volumenn); printf(tt8tData a volumenn); printf(tt9tExitnn); printf(tP

16、lease choice and enter a number bb); scanf(%d,&nSelectNum); if(nSelectNum9) nWhileFlag=1; else nWhileFlag=0; while(nWhileFlag=1); switch(nSelectNum) case 0:Build();break; case 1:Del();break; case 2:Add();break; case 3:SNum();break; case 4:Sname();break; case 5:Browse();break; case 6:Modify();break;

17、case 7:Order();break; case 8:Data();break; case 9:exit(0);break;/正常退出 default: printf(input error! please input a cArrNumber between 0 and 8); Menu(); /*新建文件*/void Build() int nInputWkNum, nWorkerNum,p; FILE *fp; if(fp=fopen(worker00.txt,w)=NULL) printf(can not build filen); Menu(); printf(how many

18、workers do you want to input(0-%d)?:,MAX_WORKER_NUM); scanf(%d,&nWorkerNum); for(nInputWkNum=0;nInputWkNumnWorkerNum;nInputWkNum+) printf(nInput %dth worker record.n,nInputWkNum+1); Input(nInputWkNum,nInputWkNum); for(p=0;p=nInputWkNum;p+) if(fprintf(fp,%st%st%1st%st%st%st%st%st%st%st%sn,structWkp.c

19、ArrNum,structWkp.cArrName,structWkp.cArrSex,structWkp.cArrAge,structWkp.cArrZhiwu,structWkp.cArrZhicheng ,structWkp.cArrZhengzhi,structWkp.cArrXueli,structWkp.cArrRenzhisj,structWkp.cArrLaiyuansj,structWkp.cArrLeibie)!=1) printf(cannot write the datann); fclose(fp); Menu(); void Add() /*增加人员*/ int i

20、,nAddNum,nExistNum,nAftAddNum,p; FILE *fp; nExistNum=Load(); if(nExistNum=-1) Menu(); printf(How many workers do you want to add(0-%d)?: bbb,MAX_WORKER_NUM-nExistNum); scanf(%d,&nAddNum); nAftAddNum=nAddNum+nExistNum; for(i=nExistNum+1;i=nAftAddNum;i+) printf(nInput %dth worker record.n,i-nExistNum+

21、1); Input(i,nExistNum); if(fp=fopen(worker00.txt,a+)=NULL) printf(can not open filen); Menu(); for(p=0;pnAftAddNum;p+) fprintf(fp,%st%st%1st%st%st%st%st%st%st%st%sn,structWkp.cArrNum,structWkp.cArrName,structWkp.cArrSex,structWkp.cArrAge,structWkp.cArrZhiwu,structWkp. cArrZhicheng,structWkp.cArrZhen

22、gzhi,structWkp.cArrXueli,structWkp.cArrRenzhisj,structWkp.cArrLaiyuansj,structWkp.cArrLeibie); fclose(fp); Menu();void Input(int i,int n) /*输入一个记录*/ CheckNum(i,n); printf(nenter the Age:t bbbb); scanf(%s,structWki.cArrAge); printf(nenter the SexM for man and W for woman:t bb); scanf(%1s,structWki.cA

23、rrSex); printf(nenter the Zhiwu:t bbbbbbbbbbbbbbbb); scanf(%s,structWki.cArrZhiwu); printf(nenter the Zhicheng:t bbbbbbbbbbbbbbbb); scanf(%s,structWki.cArrZhicheng); printf(nenter the zhengzhimiannao:t bbbbbbbbbbbbbbbb); scanf(%s,structWki.cArrZhengzhi); printf(nenter the Xueli:t bbbbbbbbbbbbbbbb);

24、scanf(%s,structWki.cArrXueli); printf(nenter the renzhishijian:t bbbbbbbbb); scanf(%s,structWki.cArrRenzhisj); printf(nenter the laiyanshijian:t bbbbbbbbb); scanf(%s,structWki.cArrLaiyuansj); printf(nenter the Leibie:t bbbbbbbbbbbbbbbb); scanf(%s,structWki.cArrLeibie);/*加载函数*/ int Load() FILE *fp; i

25、nt i; if(fp=fopen(worker00.txt,r)=NULL) printf(cannot open filen); return NULL; else for(i=0;!feof(fp);i+) fscanf(fp,%st%st%1st%st%st%st%st%st%st%st%sn,structWki.cArrNum,structWki.cArrName,structWki.cArrSex,structWki.cArrAge,structWki.cArrZhiwu,structWki. cArrZhicheng,structWki.cArrZhengzhi,structWk

26、i.cArrXueli,structWki.cArrRenzhisj,structWki.cArrLaiyuansj,structWki.cArrLeibie); return(i-1); void CheckNum(int i,int nWkNum) /*检查输入号码*/ int j,k,nIllegalNum; worker tempWk; do nIllegalNum=0; printf(Enter the Number: bbbbbbbbbbbb); scanf(%s,tempWk.cArrNum); for(j=0; tempWk.cArrNumj!=0; j+) if(tempWk.cArrNumj9) printf(Input error!Only be made up of (0-9).Please input again!nn); nIllegalNum=1; break; if(nIllegalNum=0) for(k=0;knWkNum;k+) if(k!=i&strcmp(structWkk.cArrNum,tempWk.cArrNum)=0) printf(this record

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1