职工信息管理系统一类优选

上传人:沈*** 文档编号:150656921 上传时间:2022-09-10 格式:DOC 页数:31 大小:704.50KB
返回 下载 相关 举报
职工信息管理系统一类优选_第1页
第1页 / 共31页
职工信息管理系统一类优选_第2页
第2页 / 共31页
职工信息管理系统一类优选_第3页
第3页 / 共31页
点击查看更多>>
资源描述
3武汉长江工商学院计算机科学与技术系,项目名称: 职工信息管理系统 学生姓名: 陈坤 学 号: 13401005 班 级: 13级计科本1 指导教师: 刘莹 2014年05月22日目录1 引言31.1 选题意义31.2 国内外现状综述32 系统需求分析32.1 系统功能概述33 系统存储结构说明43.1 系统存储信息说明43.2 系统存储结构设计53.3 系统文件使用说明54 系统功能实现及代码描述54.1 录入职工信息模式54.2 浏览全体职工信息64.3 查询职工信息模式74.4 删除学生信息84.5 修改职工信息模式95系统测试105.1 职工信息录入模式105.2 职工信息浏览模式:105.3 职工信息查询模式105.4 职工信息删除模式115.5 职工信息修改模式126体会12参考文献12附录:源程序清单13技术发展1 引言1.1 选题意义常言道,百丈之台起于垒土,千里之行始于足下,万丈高楼平地起,无论职位高低,每个员工都有着自己独特的对集体的贡献。职工信息管理系统的建成,对员工信息的收集,整理,梳拢等等都有着促进作用。当今社会,是信息社会,谁能掌握第一手信息,从繁冗的信息库中发现闪光点,在事业的奋斗历程中,就能先于别人立于不败之地。使用者有了这个系统,对员工信息的掌握也就了如指掌,周到,稳固,细致,有条理,这个对于一个庞大的集体的管理统治更加能发挥突出性的作用。1.2 国内外现状综述职工信息管理系统是各大企业团体的主要日常管理工作之一,涉及到职工升迁去向,任职岗位,素质评价,以及团队实力,企业规划,工资待遇等等诸多方面的问题,随着社会经济发展,制度的不断改革,日常管理工作及保存管理日趋繁重、复杂。迫切需要研制开发一款功能强大,操作简单,简洁明了的职工管理系统。 在国外与国内不同,他们一般具有较大规模的稳定的技术队伍来提供服务与技术支持。而国内企业信息化建设相对起步较晚,经济发展比较落后。在数字化信息时代,各国家,地区一方面不断投资购建各种硬件、系统软件和网络,另一方面也不断开发实施了各类教学、科研、办公管理等应用系统,形成了一定规模的信息化建设体系。但是,由于整体信息化程度相对落后,经费短缺,理论体系不健全等原因,国内管理系统在机构设置、服务范围、服务质量及人员要求上与国外高校相比都有一定的差距。 纵观目前国内研究现状,在安全性和信息更新化方面存在有一定的不足,我国信息化网络平台监管力度不强,信息的保护措施也乏善可陈,因此构建安全有效的职工信息管理系统是我们努力的一大方向。2 系统需求分析2.1 系统功能概述(基本实现哪些功能,文字描述)该职工信息管理系统可以满足用户进行一千人以内的任意的职工信息录入;特定要求的查找,按编号,学历,电话号码进行查找;整体信息的浏览;员工信息的删除和修改等等操作,并配以文件及时保存数据,如下图2-1所示:图2-1系统功能模块图2.2 系统模块进入主函数调用菜单函数。打印提示信息里面有5个功能供其选择:菜单1:信息录入功模式,输入选项一进入该功能,根据系统提示输入包括“name,sex,age,salary,education,address,phone,number”等八大类数据,隐含限制人数输入1000人,输入户到末尾有提示信息可以跳出录入环节;菜单2:为员工信息浏览模式,当用户输2选项时,系统自动把文件中的数据调入内存在输出到显示器上。供用户浏览。此功能较为简便,故在此不予以特别阐述;菜单3:为员工信息查询模式,当用户选择3后可以根据自己的需要选择(1.按编号查询;2.按学历查询3.按号码查询0.退出查询模式);菜单4:员工信息删除模式,删除模式之下有三个选项(1.按编号删除;2.按姓名删除0.退出删除模式);当初入查询信息后,系统会根据查询信息结果可能反馈三类提示(“1,找到对应的数据,进行下一步操作;2。未找到相匹配的信息,进行提示操作3。数据库为空);菜单5:职工信息修改模式,用户在主菜单里里面可选择此功能,菜单0:用户选择此操作后结束程序运行。3 系统存储结构说明3.1 系统存储信息说明该系统随机存储以人为单位的员工编号,姓名,年龄,性别,学历,工资,电话号码,地址等信息:其中员工编号随机生成,为长整型数据;姓名,学历,电话号码,地址等均为字符串型数据,由用户输入;性别为单个字符,男性用M 表示,女性用W表示,用户输入;年龄和工资均为普通整型数据,用户输入。3.2 系统存储结构设计在设计系统时定义了一组囊括1000人的结构体变量struct worker-information【1000】,其中,每个结构体变量之中又定义long int型 number;char name,sex,,education,phone,address;int salary, age用以保存一个人的不同信息数据。因为C语言中只能定义同一类型数据的集合,但事实上生活中所接触到的数据多种多样,其中各自之间又有着这样或那样的联系,因此,编程人员才特意开发出结构体型变量,用以储存多种不同类型却又有关联的数据。3.3 系统文件使用说明系统工作时,预先生成或打开以中文“职工信息管理系统”命名的dat格式的文件,在录入员工数据,修改,删除时调用了save()函数打开文件用fwrite(p,sizeof(worker-information),1,fp)函数随即保存数据为二进制形式,在主界面之下,程序一经运行,会进入load()函数,利用fread(p,sizeof(worker-information),1,fp)函数读取文件信息到内存里头。int load(struct worker_information *p)/职工信息读入函数/ FILE *fp;if(fp=fopen(职工信息管理系统.dat,rb)=NULL)return 0; dofread(p,sizeof(struct worker_information),1,fp); p+;while(feof(fp)=0);while(*p1).number0)p1+; fclose(fp);return 0; 4 系统功能实现及代码描述4.1 录入职工信息模式首先是进入input函数,依次输入姓名,年龄,性别.等等,随后会显示一个提示窗口“结束输入请按“#”,此时如果不按#,则会重复调用input函数自身,进入下一位职工信息的录入,否则就会结束input函数的调用,跳出循环。流程图如图4-1所示:图4-1 录用职工信息4.2 浏览全体职工信息在main()主函数菜单之下调用Output 函数,输出已录入现存的职工数据,此功能较为简便,故在此不予以特别概述。流程图如图4-2所示:图4-2 浏览职工信息4.3 查询职工信息模式主函数之下调用search函数进入查询,该功能之下又衍生出三个分支1.按编号查询;2.按学历查询;3.按电话号码查询;凡此三类。查询开始时,先输入所要查询的数据当输入查询信息找到与其相匹配的数据时,输出相应职工信息跳会search()主函数,否则显示“您所查询的用户数据不存在”。流程图4-3如下:图4-3 职工信息按编号删除4.4 删除职工信息主函数之下调用delete函数进入删除页面,该功能之下又衍生出2个分支:1.按编号删除;2.按姓名删除;3.退出删除模式;凡此三类。开始时,先输入所要删除的员工的相应数据,当输入查询信息找到与其相匹配的数据时,执行循环结构从该职工的后一位开始,以叠罗汉的形式从后往前覆盖,否则显示“input error ,please try again”,最后都会返回删除主界面之下。流程图4-4如下:图4-4 删除职工信息4.5 修改职工信息模式该功能运用与删除功能类似,主函数之下调用correct函数进入修改页面,该功能之下只能按职工编号修改,开始时,先输入所要删除的员工的相应数据,当输入查询信息找到与其相匹配的数据时,执行循环结构从该职工的后一位开始,以叠罗汉的形式从后往前覆盖,否则显示“input error ,please try again”,最后都会返回删除主界面之下。图4-5修改职工信息5系统测试5.1 职工信息录入模式首先是进入input函数,依次输入姓名,年龄,性别.等等,随后会显示一个提示窗口“结束输入请按“#”,此时如果不按#,则会重复调用input函数自身,进入下一位职工信息的录入,否则就会结束input函数的调用,跳出循环。程序图5-1所示:图5-1 录入职工信息5.2 职工信息浏览模式:在main()主函数菜单之下调用Output 函数,输出已录入现存的职工数据(职工数据不得大于1000人份),此功能较为简便,故在此不予以特别概述。程序功能如图5-2所示:图5-2 浏览职工信息5.3 职工信息查询模式主函数之下调用search函数进入查询,该功能之下又衍生出三个分支:1.按编号查询;2.按学历查询;3.按电话号码查询;凡此三类。查询开始时,先输入所要查询的数据当输入查询信息找到与其相匹配的数据时,输出相应职工信息跳会search()主函数,否则显示“您所查询的用户数据不存在”。程序图5-3所示:图5-3 查询职工信息5.4 职工信息删除模式主函数之下调用delete函数进入删除页面,该功能之下又衍生出2个分支:1.按编号删除;2.按姓名删除;3.退出删除模式;凡此三类。开始时,先输入所要删除的员工的相应数据,当输入查询信息找到与其相匹配的数据时,执行循环结构从该职工的后一位开始,以叠罗汉的形式从后往前覆盖,否则显示“input error ,please try again”,最后都会返回删除主界面之下。程序图5-4所示:图5-4 删除职工信息5.5 职工信息修改模式该功能运用与删除功能类似,主函数之下调用correct函数进入修改页面,该功能之下只能按职工编号修改,开始时,先输入所要删除的员工的相应数据,当输入查询信息找到与其相匹配的数据时,执行循环结构从该职工的后一位开始,以叠罗汉的形式从后往前覆盖,否则显示“input error ,please try again”,最后都会返回删除主界面之下。程序图如图5-5所示:图5-5 修改职工信息6体会这次的课程设计,准确来说,难度一般,只不过要想办法讲函数各功能之间衔接恰当,就不是那么简单了;再者数据输入时的缓冲溢出问题,要么只能用getchar(),要么就用fflush(stdin)来实现清理缓冲区的功能,始终未能找到一个更妥帖的办法;其次,文件的读写格式,以及文件的运用,使用起来要注意的细节太多,并且形式僵硬,容易出错,限制太多;最后,就是论文的完成,说实话,真是没有话好说,基本是黔驴技穷,还有就是流程图,真是难画。参考文献1谭浩强.C语言程序设计M. 第四版.北京:清华大学出版社 20102谭浩强.C语言程序设计学习辅导. 第四版.北京清华大学出版社 20103何钦铭,颜晖.C语言程序设计M.第二版.北京高等教育出版社 20124颜晖,柳俊.C语言程序设计习题与实验指导M. 北京高等教育出版社 20125杨开成.白话C语言M.北京电子工业出版社,20106杨路明.C语言程序设计M.第二版.北京:北京邮电大学出版社,20077杨路明.C语言程序设计上机指导与习题选解M.第二版.北京北京邮电大学出版 20078张永福.C语言程序设计M.辽宁:辽宁大学出版社,2007附录:源程序清单#include#include#include#includestruct worker_information long number; char name10; char sex; int age; char education9; int salary; char address16; char phone12;#define M 1000struct worker_information *p1;void print1(struct worker_information *);void print2(struct worker_information *);void main()char menu();void input_information(struct worker_information *);void output_information(struct worker_information *);int search_information(struct worker_information *);int delete_information(struct worker_information *);int correct_information(struct worker_information *);void reserve(struct worker_information *);int load(struct worker_information *);struct worker_information informM,*p=inform;p1=inform;load(p);char x;while(x=menu() switch(x) case 1: input_information(p1); reserve(p); printf(信息录入完毕n); break; case 2: printf(您正在进行职工信息浏览:n); output_information(p); break; case 3: search_information(p); break; case 4: printf(您正在进行职工信息删除:n); delete_information(p); reserve(p); break; case 5: printf(您正在进行职工信息修改:n); correct_information(p); reserve(p); break; case 6: printf(确认要格式化全部数据y/n?: ); scanf(%c,&x); getchar(); if(x=y|x=Y) p1=p; reserve(p); printf(格式化成功,谢谢使用.n); break; case 0: exit(0); default: printf(input error,please try again and later.n); system(pause); system(cls); printf(thanks for your using ,bye-byen);char menu() /*菜单选项*/ printf(n 职工信息管理系统:n);printf(*t 莫 不n);printf(*t1.职工信息录入模式 *t 失 离n);printf(*t2.职工信息浏览模式 *t 莫 不n);printf(*t3.职工信息查询模式 *t 忘 弃n);printf(*t4.职工信息删除模式 *n); printf(*t5.职工信息修改模式 *t 仙 芳n); printf(*t6.格式化磁盘数据 *t 寿 龄n);printf(*t0.退出系统 *t 恒 永n);printf(*t 昌 继nn);printf(请输入您的选择);char ch;fflush(stdin);scanf(%c,&ch);return ch;void input_information (struct worker_information *p)/职工信息录入模式/printf(您正在进行职工信息录入环节:n);srand(unsigned(time(NULL);p-number=rand()%1000+2011000; printf(请输入职工号为%d的职工个人信息:n,p-number);printf(请输入职工姓名: );scanf(%s,p-name); printf(请输入职工年龄: ); scanf(%d,&p-age);getchar();printf(请输入职工性别女,M-男: );scanf(%c,&p-sex); printf(请输入职工学历: );scanf(%s,p-education);getchar(); printf(请输入职工薪水: ); scanf(%d,&p-salary); printf(请输入职工地址:); scanf(%s,p-address); printf(请输入电话号码:); scanf(%s,p-phone); getchar(); p+;p1+; printf(按#号键回车后终止:); if(getchar()!=#) system(cls); input_information(p); void output_information(struct worker_information *p)/职工信息浏览模式/printf(_n);print1(p);int i=0;while(pp1)print2(p); p+;i+; if(p=p1)printf(信息在录者共计%d人.n,i);putchar(10); if(p1=p&i=0)printf(nothing at all,please addedn);int search_information(struct worker_information *p)/职工信息查询模式/ int search_information1(struct worker_information *,long ); int search_information2(struct worker_information *,char a ); int search_information3(struct worker_information *,char a ); if(p=p1)printf(数据库空白,该功能暂无法执行,请添加数据.n); return 0;char i,a11;int x; do output_information(p); printf(您正在进行职工信息查询:n);printf(%8d.按职工编号查询.%8d.按职工学历查询.n%8d.按电话号码查询.%8d.退出当前页面.n,1,2,3,0);printf(请输入您的选择:);getchar();scanf(%c,&i);getchar();switch(i) case 1: printf(please input the workers number : ); scanf(%d,&x); search_information1(p,x); break; case 2: printf(please input the workers education: ); scanf(%s,a); search_information2(p,a); break; case 3: printf(please input the workers phone number: ); scanf(%s,a); search_information3(p,a); break; case 0: break; default: printf(input error,try again please :n); break;if(i!=0) system(pause);system(cls); while(i!=0); return 0;int search_information1(struct worker_information *p,long i)/职工信息按编号查询/for(int x=0,n=0;pnumber) if(n=0) printf(the result is :n); print1(p); n+; print2(p); if(p=p1&n!=0) printf(找到适配信息者%d人.n,n); if(n=0) printf(Failed to find a match with ,please try againn); return n;int search_information2(struct worker_information *p,char i)/职工信息按学历查询/for(int n=0;peducation)=0) if(n=0) printf(the result is :n); print1(p); n+; print2(p); if(p=p1&n!=0) printf(找到适配信息者%d人.n,n); if(n=0) printf(Failed to find a match with ,please try againn); return n;int search_information3(struct worker_information *p,char i)/职工信息按电话号码查询/for(int n=0;pphone)=0) if(n=0) printf(the result is :n); print1(p); n+; print2(p); if(p=p1&n!=0) printf(找到适配信息者%d人.n,n); if(n=0) printf(Failed to find a match with ,please try againn); return n;int delete_information(struct worker_information *p)/职工信息删除模式/int delete_information1(struct worker_information *);int delete_information2(struct worker_information *);if(p=p1)printf(数据库空白,该功能暂无法执行,请添加数据.n);return 0;char i;do printf(t您已进入职工信息删除模式:n);printf(t1.按职工编号删除.t2.按职工姓名删除.t0.退出删除模式.n);printf(t请输入您的选择: ); fflush(stdin);scanf(%c,&i);getchar();switch(i) case 1: output_information(p); delete_information1(p); break; case 2: output_information(p); delete_information2(p); break; case 0: printf(谢谢使用,再见n); break; default: printf(input error,try again pleasen); break; if(i!=0)system(pause); system(cls);while(i!=0);return 0;int delete_information1(struct worker_information *p)/职工信息按编号删除/ printf(please input the workers number :); long int i; int n; char ch; scanf(%d,&i); getchar(); n=search_information1(p,i); if(n=0) return 0; printf(_n); printf(确定删除y/n: ); scanf(%c,&ch); getchar(); if(ch=y|ch=Y) for(struct worker_information *p2=p;pnumber!=i) *p2+=*p; p1=p2;printf(finished deleting.n); else printf(谢谢使用,再见.n); putchar(10); return 0;int delete_information2(struct worker_information *p)/职工信息按姓名删除/intdelete_information3(struct worker_information *p,char i,int n);intdelete_information4(struct worker_information *p,char i);printf(please input the workers name:); char i11,ch;scanf(%s,i);getchar(); for(int x=0,n=0;pname)=0) if(x=0) printf(the information of the worker were:n);print1(p);x+; print2(p); p=p1-n; if(x=0) printf(cannot find something matched with,please try again and later.n); return 0; else printf(已找到适配信息者统共%d人n,x); printf(t1.以上信息全部删除t2.按编号选择性删除t3.退出删除模式n); printf(请输入删除方式: ); scanf(%c,&ch); getchar(); switch(ch) case 1: delete_information4(p,i);/转接到全部删除函数/ break; case 2: delete_information3(p,i,n);/在姓名的基础上纳入若干职工编号进一步筛选删除/ break; case 3: printf(谢谢使用,再见.n); break; default: printf(input error,please try again and later.n); return 0; int delete_information4(struct worker_information *p,char i)printf(确定删除y/n?: );char ch;scanf(%c,&ch);getchar(); if(ch=y|ch=Y) for(struct worker_information *p2=p;pname,i)!=0) *p2+=*p; p1=p2;printf(finished deleting.n); else printf(谢谢使用,再见.n); return 0;int delete_information3(struct worker_information *p,char i,int n)int j=0; printf(请输入您想要删除掉的职工编号,以回车键结束:); long int a100; for(int x=0;xn;x+) scanf(%d,&ax); if(getchar()=n) break; for(int y=0;y=x;y+) for(struct worker_information *p2=p;p2number=ay&strcmp(p2-name,i)=0) while(p2p1) *p2=*(p2+1),p2+; p1-,j+; else if(p2=p1-1) printf(职工号%d输入有误,删除失败.n,ay); if(j!=0) printf(成功删除有%d人.n,j); return 0;int correct_information(struct worker_information *p)/职工信息修改模式/int correct_information1(struct worker_information *);int correct_information2(struct worker_information *);if(p=p1)printf(数据库空白,您暂时无法使用该功能,请添加数据后重试.n);return 0;char i;do output_information(p); printf(您已进入职工信息修改模式:n);printf(nt1.按职工编号修改.t2.按职工姓名修改.t0.退出修改模式.n);printf(t请输入修改方式: ); fflush(stdin);scanf(%c,&i);getchar();switch(i) case 1: correct_information1(p); break; case 2: correct_information2(p); break; case 0: printf(谢谢使用,再见n); break; default: printf(input error,try again please and latern); break; if(i!=0)system(pause);system(cls);while(i!=0);return 0;int correct_information1(struct worker_information *p)/职工信息修改模式/ struct worker_information *p2;printf(please input the workers number :); long int i; int n; char ch;scanf(%d,&i);getchar(); n=search_information1(p,i);if(n=0)return 0;for(p2=p;p2number)break; printf(t1.职工姓名修改: ); printf(t2.职工年龄修改: ); printf(t3.职工性别修改:n ); printf(t4.职工学历修改: ); printf(t5.职工薪水修改: ); printf(t6.职工地址修改:n ); printf(t7.电话号码修改: ); printf(t8.退出修改模式:n ); printf(请输入职工号为%d的职工个人信息:n,p2-number);do printf(t请输入您的选择: );scanf(%d,&n);getchar(); switch(n) case 1: printf(请输入职工姓名: ); scanf(%s,&p2-name); break; case 2: printf(请输入职工年龄: ); scanf(%d,&p2-age); break; case 3: printf(请输入职工性别女,M-男: ); scanf(%c,&p2-sex); break; case 4: printf(请输入职工学历: ); scanf(%s,p2-education); break; case 5: printf(请输入职工薪水: ); scanf(%d,&p2-salary); break; case 6: printf(请输入职工地址:); scanf(%s,p2-address); break; case 7: printf(请输入电话号码:); scanf(%s,p2-phone);break; case 0: printf(修改完毕,再见.n); break; default: printf(input error,try again please and latern); break; if(n=0) system(pause),system(cls),output_information(p); else getchar(); while(n!=0);printf(是否需要打印修改之后的员工的个人信息y/n?: n);scanf(%c,&ch);getchar(); if(ch=y|ch=Y)print1(p),print2(p);return 0;int correct_information2(struct worker_information *p)/职工信息修改模式/ void correct_information3(struct worker_information *p,char a); void correct_information4(struct worker_information *p,char a,int);printf(please input the workers name:); char ch,i10;scanf(%s,i);getchar(); for(int x=0,n=0;pname)=0) if(x=0) printf(the information of the worker were:n);print1(p);x+; print2(p); p=p1-n; if(x=0) printf(cannot find something matched with,please try again and later.n); return 0; else printf(已找到适配信息者统共%d人n,x); printf(t1.以上信息全部修改t2.按编号选择修改t0.退出当前页面n); printf(请输入修改方式: ); scanf(%c,&ch); getchar(); switch(ch) case 1: correct_information3(p,i); break; case 2: correct_information4(p,i,n); break; case 0: printf(谢谢使用,再见n); break; default: printf(input error,try again pleasen); break; return 0;void correct_information3(struct worker_information *p,char i)int n;char ch;for(int x=0;pname)=0) printf(t1.职工姓名修改: ); printf(t2.职工年龄修改: ); printf(t3.职工性别修改:n ); printf(t4.职工学历修改: ); printf(t5.职工薪水修改: ); printf(t6.职工地址修改:n ); printf(t7.电话号码修改: ); printf(t0.退出修改模式:n ); printf(您正在对职工号为%d的职工信息进行修改:n,p-number);do pr
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


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

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


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