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

开通VIP
 

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

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(c人事档案管理系统课程设计报告.doc)为本站上传会员【w****g】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

c人事档案管理系统课程设计报告.doc

1、 学号 2016年-2017年 第二学期 1608220203 《C语言程序设计》 课程设计 题目: 人事档案管理系统 专业: 网络工程 班级: 16(3)班 姓名: 代应豪 指导教师: 代美丽 成绩:     计算机学院 目录 1.需求分析 2.系统框图 3.设计模块 4.系统的软硬件环境 5.设计分析 5.1.人事档案管理系统功能 5.2.模块功能及操作步骤 6.使用说明 7.结束语 7.1程序优点 7.2程序不足之处 7.3收获 8.源代码 9.参考书籍

2、 人事档案管理系统 一、需求分析 电脑已经深入到我们日常工作和生活的方方面面,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。Windows系统的推出使电脑从高雅的学术殿堂走入了寻常百姓家,各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。然而,虽然现在世界上已经充满了多如牛毛的各种软件,但它们依然不能满足用户的各种特殊需要,人们还不得不开发适合自己特殊需求的软件。 随着企事业单位的发展,人员会越来越多,少则几十人、多则上万人。例如一个企业分很多部门,每个部门又分为许多科或室等,而其下又分为各级领导和员工。用笔和纸传统的手工管

3、理档案,这中管理方式存在着不易更新、不易存放、不安全、容易丢失、难以备份等重大缺陷,管理起来效率低下而且很可能造成管理上的混乱。而自己建立简单的电子文档对信息管理进行管理虽然克服了以上的缺点,但查询效率较低,特别是当数据量十分庞大时,劣势尤其明显。因此开发一个既可以存储信息,又可以进行更新、查询、管理等功能,同时价格又能为广大消费者接受的多功能电子人事信息管理系统就显得十分必要。 二、系统框图 输入i 判断i 输入人事信息 显示人事信息 删除人事信息 查询人事信息 读取文件 存储文件 读取文件 人事统计信息 性

4、别统计 人数规模 入公司时间 输入 判断i 开始 关闭 2

5、 三、设计模块 需要有以下模块: 输入模块,显示模块,删除模块 、存储模块 查询模块、读取模块统计模块、退出模块 。 四、系统的软硬件环境 1、硬件环境: CPU intel i3 2GM内存 500G硬盘。 2、软件环境:visual C++ 6.0 操作系统 Windows7。 五、设计分析 1.人事档案管理系统功能: 程序设计一般由两部分组成:算法和数据结构,合理地选择和实现一个数据结构和处理这些数据结构具有同样的重要性。在人事管理过程中,由于预计记录对于一个单位的学生数或人事数来说太大

6、操作除了能够增加、删除、保存等外,更多的情况是查询,且能够实现快速查询。特别是当需要动态变化时利用链表,例如插入和删除数据等操作时,为方便插入和删除人事记录,通过数据的自动的移动数据,实现动态管理。 本系统涉及的模块主要有:开始、系统管理、人事管理、信息查询等四大模块。 (1) 人事管理主要包括:(编号、姓名、性别、年龄、出生日期、政治面貌、家庭住址、图片等)基本 内容的输入,删除,修改,查询 (2) 系统管理主要包括:用户的注册,资料的修改等。 (3) 信息查询主要包括:员工信息的查找、打印等。 2. 模块功能及操作步骤: 各个模块功能及流程图 (1)record

7、)系统将提示输入人事姓名、性别、城市、街道、电话、邮编、进入公司的时间(*****注意:按提示输入******),主要使用”scanf()”及”getchar()”语句。首先利用”malloc”函数在内存的动态存储器中开辟一个长度为”sizeof”长度的空间,以存放预定义的”*worker”指向的内容。并用”new”指向起始地址的指针。若不能执行,返回空指针.否则,利用链表执行输入功能。即:else 流程图 head=NULL 输入 new=head new=this new=>this->next this->next=thisis this->next.=N

8、ULL head=>this 申请内存 记录 (1) Y (2)listall()系统将显示文件中存储的人事档案。此功能利用do{}while;语句。若”this”不指向空。该系统利用语句 do {printf(“\n记录%d”,++i); printf(this); getchar(); this=this->next; } 此外使用“printf()”语句完成显示功能系统。(流程图在7页)

9、3)del()系统将提示输入要删除人事的姓名。输入相应信息。系统将删除您所指定的信息。主要使用”strcmp()”及”printf()”等语句。本系统执行删除语句一条比较函数。即:if(strcmp(p->name,str)==0)break;应用链表的实行地址转换,以便执行查找人名的功能: if(p2) {p1->next=p2->next; free(p2);<*释放内存区,使该区被其他变量使用*> print (“\n**请存盘**\n”); 显示 head=NULL head=this 输出this this->next=this this=NULL 读取

10、 getchar(); } else {printf(“没找到所须删除员工\n”); getchar(); } 流程图: 删除 删除 输入str head=p1 p1=p2 p2=NULL 比较p->name及str p2=p1 p2->next=p2 p2=head head->next=next p2=NULL (3) Y

11、 N Y (4) search()系统将对您指定的信息进行查找。主要使用“strcmp()”“getchar()”等语句。该系统主要运行过程为:若头指针不为空,则利用比较函数if(strcmp(p1->name,nsme)= =0)如果该语句成立,证明输入的信息已被查询到,如果语句(p1==NULL)成立,表示您查找的人不是本公司员工,按任意键可回到主程序执行区。(流程图在11页) (5) rfile()系统将显示您所要读取的信息。主要使用文

12、件指针及“fopen”“fclose”语句。此模块我们系统的重要部分,相对来说较为复杂。开始时要用到”mallo”函数来开辟空间(及模块‘1’中的原理相同),如果能打开目标文件,逐条读取,直到指针指向的下个地址为空,则表明读取完毕。执行此项功能的语句为: else {while(fread(p,sizeof(worker),1,in)= =1) {j++; printf(“\n 记录\n”,j); if(j= =1) head=p; p=p->next; if(p= =NULL) p=(worker*)malloc(sizeof(wor

13、ker)); p2=p; } free(p); p2=NULL; fclose(in); printf(“\n%d条文件读取完毕\n”,j); } if(j = =0) printf(“**磁盘无数据**\n”); printf(“按任意键继续\n”); getchar(); (流程图在下页) head=p1 查询 显示 输入str head=NULL p1=NULL 比较str及姓名 p1->head=p1is 输出 (4)

14、 Y 显示 存储 打开文件 P=NULL 存 储 p->next=p 关闭文件 P=NULL (5) Y Y (6) wfile()系统将自动保存您所要存储的信息。用到了”if”及”for”语句。如果该文件能打开,预将文件存储在1.out文件中,即: while(p) {fwrite(p,

15、sizeof(worker),1.out);/*将p以sizeof长度逐条存储在文件1.out中*/ n++; p =p->next; fclose(out); printf(“\n文件的%d被写入。\n”,n); } printf(“按任意键继续”\n); getchar; 流程图 p=NULL 申请内存 打开文件 提取 j++ j=1 p=>next p->next=>p p=NULL 申请内存 p->p2 释放p 关闭 读取 (6)

16、 N N N (7) total()系统将统计您所输入的信息。这个模块是本组成员最满意的,此模块的执行程序极为简单,但是执行的功能确实非常齐全。本模块主要运用”if()else{}”的循环嵌套;就完成了性别统计、公司人员规模、入公司时间的三项功能。值得一提的是在执行性别统计

17、及公司人员规模的执行语句后加上2个”getchar()”本小组成员在借鉴的同时的提高,这是为了减缓程序运行速度,保证指针所指向的最后一个内容被系统执行,这才使两项功能完整的执行。(流程图在16页) 开 始 Head->p 输入str 判断str p=NULL p=NULL p=NULL x++ y++ i++ 输出 pt->sex pt->next=>pt X+=1 pt->next=>pt 输出日期 pt->next=>pt (8)退出模块:系统将退出到DOS环境。 (7) 1

18、 2 3 Y Y 六、使用说明 初始化界面 输入回车进入主菜单 选择功能,(输入0--7) 录入功能 输入人事信息 输入姓名,性别,城市,街道,电话,邮编,年龄。入公司年份。 显示人事信息 键入6并按回车键以后,保存录入信息,键入2并按回车,可以显示录入的人事信息。 查询功能 键入4,按回车后,就可以进行查询功能。 查询人事信息,需要输入查询人事的姓名。 删除功能 键入3并按

19、回车,可以进行删除功能。一旦删除无法恢复,请审用。 删除人事记录 七、结束语 程序优点: 本系统属于小型应用程序,适用于人事管理系统。使用灵活方便,本系统操作界面友好,有无计算机基础军可使用。能提高工作效率,节约时间,使烦琐的管理变得十分轻松。 程序的不足之处: 本程序虽然使用方便,但是并不十分完善,由于我们的能力和要求的范围有限,对具体细节的内容作的并不是很到位。我们并不能计算学生的借书时间等。设计之初我们也没有把文件这一重要组成部分写到程序里,使得本程序只能使用一次。经过迟老师的细心指导我们才知道一个完整的程序是可以重复使用的并且及时添加了这一功能。由于

20、时间有限,我们只能运用一些简单的函数进行编程本程序。以及对某些函数录入的限制还有待改进和完善。 收获: 成功之处:此系统程序虽然简单,却集结了基本的管理功能。删除,存储,统计等功能还是较为成功的。特别是人事档案的统计管理功能,使烦琐的工作变得简单轻松。 不足之处:由于我们水平和时间有限,难免有不足和差强人意的地方。尤其是对于系统应该配以保密性的设置,可是由于我们的知识积累不够,运行不了。 小结:利用课余时间别编写了这套人事管理系统。通过这次课程设计,使我们所学的知识转化今天的成果。当然,在程序设计的过程中,通过及其他专业同学交流,我们也深刻体会到自计算机水平的有限及不足,为了将我们及

21、其他专业学生以及其他高校学生的差距缩小,我们今后将会以200%的努力投入到学习中去,用汗水和知识衡量我们及成功间的差距! 八、源程序 #include "string.h" #include #include "stdlib.h" #define NULL 0 typedef struct worker { char name[20]; char sex; char age[4]; char te[20]; char zi[10]; char adress[20]; char city[10]; typedef struct da

22、te { int year; int month; int day; }date; }worker; worker *head,*this,*new; /************************主函数********************/ main() { char order; head=NULL; clrscr(); printf("\n\n***提示请先读取文件!!****\n); printf ("\n\n*** 按回车继续!!!***\n); getchar(); do {clrscr(); printf

23、" <<*人事管理系统*>>\n"); printf("\n"); printf("************************************\n"); printf(" ** 1.输入人事信息 $ 2.显示人事信息 **\n"); printf(" ** 3.删除人事信息 $ 4.查询人事信息 **\n"); printf(" ** 5.读取文件 $ 6.存储文件 **\n"); printf(" ** 7.人事统计信息 $ 0.退出系统 **\n"); printf("***************

24、\n"); printf("\n 请您在上述功能(0-7)中选择:\n"); order=getch(); switch(order) { case'1':record();break; case'2':listall();break; case'3':del(head);break; case'4':search();break; case'5':r);break; case'6':w);break; case'7':total(head);break; case'0':w

25、);break; } } while(order!='0'); clrscr(); printf("\n\n\n\n\n\n"); printf("***** c 语言程序设计 *****\n"); printf("* 名称:人事管理系统\n"); printf("* 班级:16网工3班。\n"); printf("* 指导老师:迟立颖老师\n"); printf("* 设计者:刘燕山 \n"); printf("* 设计时间:2017年4月

26、\n"); getchar(); } /*******************************输入信息***********************/ record() { char re,num[30]; new=(worker*)malloc(sizeof(worker));/****(*void)malloc(sizeof(*)) \***malloc(sizeof(*void))是内存的动态存储中分配一个长度为sizeof的连续空间((*void)指向分配域起始地址的指针)若不能执行返回空指针***\ if(head==NULL) head=

27、new; else { this=head; while(this->next!=NULL) this=this->next; this->next=new; } this=new;clrscr(); printf("\n 请您输入姓名:\n"); scanf("%s",this=->name);getchar(); printf("\n 请您输入性别(m代表男,W代表女:\n"); this->sex=getchar();getchar(); printf("\n 请您输入城市:\n"); scan

28、f("%s",this->city);getchar(); printf("\n请您输入街道:\n"); scanf("%s,this->address);getchar(); printf("\n请您输入电话\n"); scanf("%s",this->tel);getchar(); printf("\n请您输入邮编\n"); scanf("%s",this->zi);getchar(); printf("\n请您输入年龄\n"); scanf("%s",this->age);getchar() printf("\n请输入入公司时间年份\

29、n"); scanf("%d",&this->date->year);getchar(); printf("\n请输入入公司时间月份\n"); scanf("%d",&this->date->month);getchar(); printf("\n请输入入公司时间日期\n"); scanf("%d",&this->date->day);getchar(); printf("\n**请存盘!**");getchar(); this->next=NULL; } /************************显示信息*****************

30、/ listall() { int i=0; if(head==NULL) {rfile();return();} this=head; clrscr(); do{ printf("\n记录%d\n",++i); print(this); this=this->next; } while(this!=NULL); (--this)->next=NULL; } void print(worker *t) \**** *t传递链表、储存数据****\ { printf("姓名:%s\n",t->name)

31、 printf("性别:%c\n",t->sex); printf("入公司时间:%4d/%2d/%2d\n", pt->date->year, pt->date->month, pt->date->month); printf("城市:%s\n",pt->city); printf("街道:%s\n",pt->adress); printf("电话:%s\n",pt->te); printf("邮编:%s\n",pt->zi); } /*******

32、查询信息*******************************/ int search() { worker *p1; char name[20]; p1 = head; printf("请输入所需查询员工姓名:"); scanf("%s",name); printf("\n"); if(head == NULL) { printf("记录以空!\n"); return 0; } printf("按回车键继续!!\n"); getchar(); cl

33、rscr(); while(p1!=NULL) { if(strcmp(p1->name,name)!=0) p1 = p1->next; else { printf("所查询人员信息:\n"); print(p1); break; } } if(p1 == NULL) { printf("%s 不是本公司人事.\n"); printf("按任意键继续\n"); getchar(); }

34、 } /**************************删除信息****************************/ void del(worker *pt) { worker *p1,p2; char str[20]; printf("请输入所需删除人员姓名:"); scanf("%s",str); p1 = p5;p2 = p1; while(p2) { if(strcmp(p2->name,str) == 0)break; else{p1 = p2;p2 = p2->next;}

35、 } if(p2) { p1->next = p2->next; free(p2);/**free(void)释放void内存区使该区能被其它变量使用**/ printf("\n** 请存盘 **\n"); } else printf("没找到所需删除员工\n"); if(p2 == head) head = head->next; printf("按回车键继续 \n"); getchar(); } /**

36、存储信息**************************/ void w *p) { int n =0; FILE *out; if((out = fopen("a:\数据.c","wb"))==NULL) { printf("\n不能打开“a:\数据.c”"); } else { if(p) { while(p) { fwrite(p,sizeof(worker),1,out); n++;

37、 p = p->next; } fclose(out); listall(); printf(\n文件的%d条记录被写入。\n",n); } printf("按任意键继续\n"); getchar(); } } /***************************读取信息**************************/ void r *p) { int j=0; FILE *in; if((i

38、n = fopen("a:数据\.c","rb"))== NULL) { printf("不能打开目标文件\n"); return; } else { while(fread(p,sizeof(worker),1,in)==1) { j++; printf("\n记录:%d",j); if(j == 1) head = p; p = p->next; } fclose(in);

39、 printf("\n%d条文件读取完毕.\n",j); } if(j == 0) printf("** 磁盘无数据 **\n"); printf("按任意键继续\n"); getchar(); } /************************** 统计信息**************************/ void total(worker *p) { char str; int i=0,x=0,y=0; float a=0.0; worker pt,

40、/****pt当前变量****/ pt2, /****pt2循环变量 ****/ pri; /*****pri前驱*********/ if(p == NULL) { printf("\n**********请先读文件*********"); printf("\n** 按回车继续 **"); getchar(); return 0; } pri = pt =t; printf("\n******************************"

41、); printf("\n** 1.性别统计 2.公司人数规模*"); printf("\n** 3.工龄 0.退出 *"); printf("\n******************************"); printf("\n 请你在上述功能(0-3)选择 "); str = getchar(); if(str == '0') return; if(str == '1'); { while(pt) { i++;

42、 if(pt->sex == 'm')x++; else y++; pt = pt->next; } printf("\n公司人员总数:%5d\n",i); printf("\n性别比例:%4.2f\n",x/y); printf("\n人员-男:%5d\n",x); printf("\n人员-女:%5d\n",x); } else if(str == '2') { while(pt) { pt2 = pt->next;

43、 while(pt2) { if(pt->age < pt2->age) { pt->next = pt2->next; pt2->next = pt; pri->next = pt2; } /**********交换***********/ pt2 = pt2->next; } pri = pt; pt = pt->

44、next; } pt =p; printf("\n公司员工年龄"); while(pt) { printf("姓名:%s----",pt->name); printf("年龄:%5d\n",pt->age); pt = pt->next; } } else if(str == '3') { printf("\n入公司时间\n"); while(pt) {

45、 printf("姓名:%s-------",pt->name); printf("入公司时间:%4d/%2d/%2d\n", pt->date->year, pt->date->month, pt->date->month); printf(" 城市:%s\n",pt->city); printf(" 街道:%s\n",pt->adress); p

46、rintf(" 电话:%s\n",pt->te); printf(" 邮编:%s\n",pt->zi); printf("\n\n\n"); getchar(); pt = pt->next; } } } 九、参考文献 1、 C语言大学实用教程 -------------------------------------------------------------

47、电子工业出版社 2. 程序设计及c语言引论 -----------------------------------------------------------------------------------------------北京大学出版社 3、c语言程序设计教程 -----------------------------------------------------------------------------------------------北京大学出版社 4、c语言程序设计实例精粹 ------------------------------------------------------------------------------------------------电子工业出版社 : 5、C语言程序设计(第四版)谭浩强著  ----------------------------------------------------------------------------------------------清华大学出版社 38 / 38

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服