一个项目设计:职工信息管理系统
企业员工信息管理系统【范本模板】

本科毕业设计说明书企业员工信息管理系统的设计与实现EMPLOYEE INFORMATION MANAGEMENT SYSTEM DESIGN AND IMPLEMENTATION学院(部):专业班级:学生姓名:指导教师:2012年5月25日企业员工信息管理系统的设计与实现摘要现今互联网发展越来越迅速,给人们的工作和生活带来了极大的便利和高效,信息化,电子化已经成为节约运营成本,提高工作效率的首选.因此在信息化科技飞速发展的今天,借助于电脑,通过员工信息管理系统管理各部门职工,能为企业人力资源的管理者提供人性化的服务。
同时也能为企业的员工提供一定的方便。
本系统具有多方面特点:系统功能完备,用户使用方便简捷,人性化的用户界面,安全保密设置齐全,大大减少了操作人员和用户的工作负担,提高了企业员工信息管理的工作效率和企业的信息化的水平.本论文从员工信息管理系统的初步调查开始,详细介绍员工信息管系统的需求分析和数据流程分析,并进行了系统总体结构设计、数据结构和数据库设计、输入输出设计等。
关键词:J2EE,Mysql,struts2,企业员工信息管理EMPLOYEE INFORMATION MANAGEMENT SYSTEMDESIGN AND IMPLEMENTATIONABSTRACTNowadays, the Internet development is fast, bringing people's work and life tremendous convenience with efficiently.Therefore,the rapid development of technology of information technology today, through the use of computers,employee information management system to manage the various departments and workers,to provide personalized service for corporate human resources managers.Also provides a convenience for the employees of the enterprise。
员工信息管理系统

员工信息管理系统一、前言随着科技的不断发展,企业的人事管理方式也在不断进步和更新。
人员信息管理系统(以下简称员工信息管理系统)是一个能够帮助企业进行人事管理的软件系统,它可以对企业员工的基本信息、工作经历、薪资福利等进行科学管理和有效记录,从而提高企业的管理效率和工作质量。
本文旨在介绍员工信息管理系统的实现过程和运用价值,旨在提高企业人事管理的效率和精度。
二、员工信息管理系统的设计思路1.需求分析针对企业人事管理存在的问题,我们想要设计一个能够便捷高效管理员工信息的系统,使员工简历等绝密信息得到全面保护,同时提高企业人事管理的效率。
为此,我们对需求进行了以下五个方向的分析:1)便捷的员工信息查看:员工信息管理系统应该具有员工信息查看功能,管理员可快速查看员工信息,对信息进行修改。
2)权限分类:员工信息管理系统应该根据管理者的权限不同而区分相应的操作权限,管理者可以选择开放或关闭员工信息某些内容的展示和修改。
3)完善的系统安全:为了保护企业员工及其机密信息的安全,员工信息管理系统必须具有安全性,需要带有完善的登录验证、权限分配、数据备份等功能。
4)多样化的数据统计工具:员工信息管理系统应该具备多种统计工具,能够方便地进行数据分析和报表生成。
5)用户友好的界面设计:员工信息管理系统的界面设计应该简单明了、美观易用。
能够满足用户在使用系统时的使用习惯和心理需求。
基于以上需求,我们最终确定了员工信息管理的系统功能体系,并进行了构建。
2.设计思路根据上述需求,我们的系统采用B/S架构,网站端为管理员工操作提供各种功能。
通过此架构能够方便用户远程访问,无需下载安装。
此外,我们将系统进行了数据库分离设计,系统安全性得到了有效保证。
管理员可进行新员工信息录入、员工信息查询、修改、离职操作、导出表格、员工数据分析统计以及权限管理等操作。
三、系统功能说明1.用户登录在员工信息管理系统中,用户登录是首要步骤。
管理员需要输入正确的账号和密码才能够进入系统,并进行信息管理操作。
企业员工信息管理系统设计

企业员工信息管理系统设计毕业设计(论文)企业员工信息管理系统设计教学系:指导教师:专业班级:学生姓名:二零一零年五月注:1. 开题报告应根据教师下发的毕业设计(论文)任务书,在教师的指导下由学生独立撰写,在毕业设计开始后三周内完成;2.设计的目的及意义至少800字,基本内容和技术方案至少400字;3.指导教师意见应从选题的理论或实际价值出发,阐述学生利用的知识、原理、建立的模型正确与否、学生的论证充分否、学生能否完成课题,达到预期的目标。
郑重声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包括任何其他个人或集体已经发表或撰写的成果作品。
本人完全意识到本声明的法律后果由本人承担。
本人签名:日期:目录摘要 (I)ABSTRACT.............................................................................................................................................................. I I 1 绪论 (1)1.1 研究背景 (1)1.2 本课题研究现状 (1)2 企业信息管理系统分析 (3)2.1需求分析 (3)2.2 技术可行性 (4)2.3 环境可行性分析........................................................................................................... 错误!未定义书签。
2.4 系统结构可行性分析................................................................................................... 错误!未定义书签。
企业员工信息管理系统设计与实现

企业员工信息管理系统设计与实现摘要本论文首先对现阶段企业员工信息管理的基本情况进行了分析,提出开发本系统要解决的问题,以及从长远考虑所要达到的目的,对系统进行了详细的需求分析,其次根据系统的实现功能和使用环境对系统做了总体规划,最后完成了模块的划分和数据库的设计与实现,并对系统进行了测试。
本系统开发主要包括前台应用程序的开发和后台数据库的建立与维护两方面。
系统前台主要实现用户薪资、考勤、文章信息的查看,以及发表意见建议等功能。
系统前台选用了Css javascript、html等作为主要的编程语言。
后台主要实现了员工的查询、员工变动信息更新、考勤管理、薪资管理、事项管理、站内文章信息管理以及意见建议管理等功能。
系统选用SQL 数据库。
利用.NET动态网页编程技术实现前后台的数据交互。
在企业的经营生产中,员工信息已成为企业经营管理中不可缺少的一部分,为管理者进行管理和进行各种人士调配活动提供了重要的依据,在生产分配安排中将发挥越来越重要的作用。
关键词:员工信息管理系统、前台、后台、交互。
Enterprise Personnel Management System design andimplementationAt frirst,this paper analyse the situation of enterprise personnel management at the present stage.Point out the question needing to solve for development the system and the long.term purpose. So that the system carried out a detailed needs analysis, then it completed the module design and the design and realization of database and test according to the functions and main implementation for the system.The system mainly includes developing the application inrerface of front-end and building up data-base of back-end. The main functions of the before part include salary,attendance,checking theinformation of article, as well as publishing suggestions, etc. The system use Css javascript, html, etc., as the main programming language.The main functions of background part include the staff inquiry, the staff changes in the information update, attendance management, payroll management, issues management, the article in the station management, as well as suggestions management. The system use SQL database as background database. Using .NET pagesDynamic web page programming to achieve the data Interactive.In the progress of enterprises operating and production, the information of staffs has become a business management of most important part. It will provides an more and more important function for the management of decision-making and personnel.Keywords:Personnel Management System、beforeground、background、interactive第一章.绪论1.1.企业员工信息管理系统的开发背景目前,一些企业对员工信息的管理还存在诸多问题,单靠人力进行员工信息的管理是不够的。
C语言课程设计报告:职工信息管理系统程序设计

1.课程论文题目职工信息管理系统程序设计一、题目要求职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:(1)系统以菜单的方式工作。
(2)职工信息录入功能(职工信息用文件保存)。
(3)职工浏览功能。
(4)职工信息查询功能,查询方式可按学历查询或者工号查询。
(5)职工信息的删除、修改功能(可选项)。
2.程序设计思路1、设计思路(1)根据题目要求,应该把职工工资信息用结构体形式输入,在定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;(2)在程序中需实现职工工资浏览、查询、统计等功能的操作,所以需要建立相应的功能模块来实现;(3)另外还需要提供键盘式选择菜单实现功能,在运行时达到所要的目的。
3.功能模块图5.算法设计1.主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。
2浏览模块【分析】该模块的功能是浏览职工的全部信息3排序模块4查询模块【分析】该模块的功能是根据输入的职工按照工号和学历查找对应的记录,找到以后,可进行继续查找或修改信息的操作。
流程图如下:5修改模块【分析】该模块的功能是显示所有职工的信息,考虑到记录较多,建议采用分屏显示。
显示完所有记录后,输入要修改的职工的工号,根据工号查到职工的记录,并提示用户修改该记录的哪部分信息,根据用户做的选择修改相应信息。
流程图如下:6.程序代码#include<stdio.h>#define N 50struct worker{char id[50];char name[20];char sex[10];char age[10];char edu[20];char salary[10];char address[20];char tel[20];}worker[N];void save(int n) //保存函数,保存n个记录{ FILE *fp;int i;if((fp=fopen("worker.txt","wb"))==NULL) //以只写方式为输出打开一个二进制文件{ printf("\nCannot open file\n");}for(i=0;i<n;i++)if(fwrite(&worker[i],sizeof(struct worker),1,fp)!=1)printf("file write error\n");fclose(fp);}int load() //加载函数{ FILE *fp;int i;if((fp=fopen("worker.txt","rb"))==NULL){printf("\nCannot open file\n");return NULL;}for(i=0;!feof(fp);i++)fread(&worker[i],sizeof(struct worker),1,fp);fclose(fp);return(i-1);}void no_input(int i,int n) //工号输入函数,i表示第i个职工的信息,n 表示比较到第n个职工{ int j,k,w1;do{w1=0;printf("工号:");scanf("%s",worker[i].id);for(j=0;worker[i].id[j]!='\0';j++)if(worker[i].id[j]<'0'||worker[i].id[j]>'9') //判断工号是否为数字{puts("请重新输入!\n");w1=1;break;}if(w1!=1)for(k=0;k<n;k++) //比较到第N个职工if(k!=i&&strcmp(worker[k].id,worker[i].id)==0) //判断职工号是否有雷同{puts("请重新输入!\n");w1=1;break;}}while(w1==1);}void input(int i) //输入一个记录的函数{ no_input(i,i);printf("姓名:");scanf("%s",worker[i].name);printf("性别:");scanf(" %s",&worker[i].sex);printf("年龄:");scanf("%s",&worker[i].age);printf("工资:");scanf("%s",worker[i].salary);printf("学历:");scanf("%s",&worker[i].edu);printf("住址:");scanf("%s",worker[i].address);printf("电话:");scanf("%s",worker[i].tel);}void printf_one(int i) //显示一个记录的函数{printf("%10s %10s %5s %5s %8s %6s %10s %10s\n",worker[i].id,worker[i].name,worker[i].sex,worker[i].age,worker[i].salary,worker[i].edu,worker[i].address,worker[i].tel); }void printf_back() //一个任务结束后选择是好似浏览还是返回{ int k,w;printf("\n\n\tSuccessful^-^.\n\n");printf("接下来做什么?\n\n\t1).浏览全部\t2).返回: [ ]\b\b");scanf("%d",&w);if(w==1)browse();else menu();}modify_data(int i,int n) //修改函数{ int c,w1;do{puts("\nmodify by=>\n\n 1).工号 2).姓名 3).性别 4).年龄 5).工资6).学历 7).地址 8).电话 9).取消");printf("请选择?:[ ]\b\b");scanf("%d",&c);if(c>9||c<1){puts("\nChoice error!please again!");getchar();}}while(c>9||c<1);do{switch(c){case 1:no_input(i,n);break;case 2:printf("name:");scanf("%s",worker[i].name);break;case 3:printf("sex:");scanf("%s",worker[i].sex);break;case 4:printf("age:");scanf("%s",worker[i].age);break;case 5:printf("salary:");scanf("%s",worker[i].salary);break;case 6:printf("edu:");scanf("%s",worker[i].edu);break;case 7:printf("address:");scanf("%s",worker[i].address);break;case 8:printf("tel:");scanf("%s",worker[i].tel);break;case 9:menu();break;}puts("\nNow:\n");printf_face();printf_one(i);printf("\n确定?\n\n\t1).是2).否,重新修改3).不保存退出[ ]\b\b");scanf("%d",&w1);if(w1==1)save(n);}while(w1==2);return(w1);}printf_face() //显示数据结构项目{ printf("\n\t工号姓名性别年龄工资学历地址电话号码\n"); }void enter() //输入模块{ int i,n;printf("输入多少个职工信息(0-%d):",N-1);scanf("%d",&n);printf("\n 请输入职工信息\n\n");for(i=0;i<n;i++)input(i);if(i!=0)save(n);printf_back();}browse() //浏览模块{ int i,j,n;n=load();printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)){printf("\n\n按任意键显示下一页...");getch();puts("\n\n");}printf_one(i);}printf("\t这里有 %d 条记录.\n",n);printf("\n按任意键返回...");getch();menu();}modify() //修改模块{struct worker s;FILE *fp;int i,n,k,w0=1,w1,w2=0;n=load();do{k=-1;printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)) //目的是分屏显示{printf("\n\n记住要修改的工号.按任意键显示下一页");getch();puts("\n\n");}printf_one(i); //调用显示一个记录的函数}do{printf("\n\n输入要修改的职工工号! 工号:");scanf("%s",s.id); //输入要修改的IDfor(i=0;i<n;i++) //查找要修改的数据if(strcmp(s.id,worker[i].id)==0){k=i; //找到要修改的记录s=worker[i]; //把worker[i]备份,以便恢复}if(k==-1)printf("\n\n未找到请重输");}while(k==-1); //当k=-1表示没有找到printf_face(); //调用显示数据结构项目的函数printf_one(k); //调用显示一个记录的函数w1=modify_data(k,n); //修改记录并返回保存控制值w1,w1=1表示用户已确认修改if(w1==1){printf("\Successful^_^.\n\n修改另一个?\n\n\t1).是 2).否,保存退出\t[ ]\b\b");scanf("%d",&w0);w2=1; //用来控制保存,使w2=1是标记已有过修改}else{w0=0;if(w2==1)worker[k]=s;}if(w0!=1&&w2==1)save(n);}while(w0==1);menu();}search() //查询模块{ int c,w1;do{puts("\nsearch by=>\n\n1).工号 2}.学历 3).取消并返回"); printf("Which you needed?:[ ]\b\b");scanf("%d",&c);if(c>3||c<1){ puts("\nchoice error!please again!");getchar();}}while(c>3||c<1);{switch(c){case 1:search1();break;case 2:search2();break;case 3:menu();break;}}}search1() //按工号查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n输入要查询的工号! id:");scanf("%s",s.id);printf_face();for(i=0;i<n;i++)if(strcmp(s.id,worker[i].id)==0){k=i;printf_one(k);break;}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search1();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}search2() //按学历查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n请输入你要查询的学历:\n");scanf("%s",);printf_face();for(i=0;i<n;i++)if(strcmp(,worker[i].edu)==0){k=i;printf_one(k);}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search2();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}menu(){int n,w1;do{puts("\t\t*******************菜单*******************\n\n");puts("\t\t\t\t1.录入职工信息");puts("\t\t\t\t2.浏览职工信息");puts("\t\t\t\t3.查询职工信息");puts("\t\t\t\t4.修改职工信息");puts("\t\t\t\t5.退出");puts("\t\t****************************************\n\n");printf("请选择(1~5): [ ]\b\b");scanf("%d",&n);if(n<1||n>5) //对选择的数字作判断{w1=1;getchar();}else w1=0;} while(w1==1);switch(n){case 1:enter();break; //录入 case 2:browse();break; //浏览 case 3:search();break; //查询 case 4:modify();break; //修改 case 5:exit(0); //退出}}main(){menu();}7.程序运行结果下面是各个模块的的界面截图(1)、主菜单(2)、输入模块(3)、浏览模块(3)、查找模块(4)、修改模块8.编程中遇到的困难及解决方法温故而知新,可以为师矣。
软件课程设计-员工信息管理系统

枣庄学院信息科学与工程学院课程设计任务书题目: 企业员工信息管理系统学生1: 贺佳学生2:安新学生3:武艳飞学生4:区丽君专业:计算机科学与技术课程: 软件工程指导教师: 姜振凤职称:讲师完成时间: 2013年5 月--—-2013 年6月枣庄学院信息科学与工程学院制2013年6月30日课程设计任务书及成绩评定目录1 概述 (1)1。
1 设计目的 (1)1.2 设计背景 (1)1.3开发环境 (2)1。
4小组分工 (2)2 可行性分析 (2)2。
1技术可行性分析 (2)2.2社会可行性分析 (2)2。
3经济可行性分析 (2)2。
4操作可行性分析 (3)3需求分析 (3)3。
1需分析的任务求 (3)3.1.1界面要求 (3)3。
1。
2功能要求 (3)3。
2子功能需求 (3)3。
3数据流图DFD (5)3。
3。
1顶层数据流图 (5)3.3.2一层数据流图 (5)3.3.3二层数据流图 (6)3。
4数据字典 (7)3。
4。
1数据源点描述: (7)3。
4.2加工逻辑词条描述 (7)3。
4.3数据流名词条描述: (7)3.4.4数据文件词条描述: (8)4。
软件设计 (8)4。
1概要设计 (8)4.1。
1 系统层次结构图 (8)4.1。
2系统IPO图 (8)4。
2 详细设计 (10)4。
2.1登录模块 (10)4。
2。
2 人事管理模块 (11)4.2。
3 工资管理模块 (12)4.2。
4系统管理模块 (13)4.3数据库设计 (14)5 软件实现 (14)5。
1登陆界面 (14)5。
2添加员工基本信息 (15)5.3修改员工基本信息 (16)5。
4 查询员工基本信息 (17)6 软件测试报告 (17)6。
1.测试方案 (17)6.2. 测试条目 (17)6.3设计测试用例 (18)6。
4。
测试结论 (19)7 总结 (19)参考文献 (20)1 概述自上个世纪90年代以来,计算机技术的迅猛发展和推广普及,为各行各业突飞猛进的发展带来了新生的动力,推动了各个行业向更高的层次进步.当今时代是飞速发展的信息时代。
典型信息系统项目案例

典型信息系统项目案例以下是一个典型的信息系统项目案例:项目名称:智慧校园信息系统项目背景:随着信息技术的快速发展,智慧校园建设已经成为高校信息化建设的重要方向。
智慧校园信息系统旨在整合校园内各类资源,提高学校管理效率,提升教学质量,为师生提供更好的服务。
项目内容:智慧校园信息系统包括以下几个模块:1. 教务管理系统:实现课程安排、考试管理、成绩录入与查询等功能。
2. 人力资源管理系统:管理教职工信息、考勤、工资发放等人事相关事务。
3. 财务管理系统:管理学校财务收支、财务报表等财务相关事务。
4. 办公自动化系统:实现学校内部公文流转、文件管理、会议管理等办公事务的自动化处理。
5. 校园一卡通系统:实现校园内消费、门禁、图书馆借阅等功能的统一管理。
6. 信息资源共享平台:整合学校各类信息资源,提供在线学习、资料查询等服务。
7. 智能安防系统:实现校园内监控、报警等安全防范功能。
项目实施:项目实施分为以下几个阶段:1. 需求调研与分析:对学校各部门的需求进行调研与分析,确定系统功能模块与技术要求。
2. 系统设计:根据需求调研结果,进行系统架构设计与数据库设计。
3. 系统开发与测试:按照设计要求进行系统开发,并进行功能测试与性能测试。
4. 系统部署与集成:将各模块集成在一起,进行系统部署与调试。
5. 培训与推广:对学校教职工进行系统培训,推广智慧校园信息系统的使用。
6. 后期维护与升级:定期对系统进行维护与升级,保证系统的稳定运行。
项目成果:智慧校园信息系统成功地整合了校园内各类资源,提高了学校管理效率与教学质量,为师生提供了更加便捷的服务。
具体成果如下:1. 教务管理系统实现了课程安排、考试管理、成绩录入与查询等功能的自动化处理,提高了教务管理效率。
2. 人力资源管理系统实现了教职工信息、考勤、工资发放等人事相关事务的信息化管理,提高了人事管理水平。
3. 财务管理系统实现了学校财务收支、财务报表等财务相关事务的信息化管理,提高了财务管理水平。
信息管理系统设计

信息管理系统设计信息管理系统是指为了有效地组织和处理大量的信息而设计的一套系统。
随着信息技术的快速发展,信息管理系统在各个领域中得到了广泛应用,如企业管理、学校管理、医院管理等。
本文将从需求分析、系统设计、功能模块和技术选型等方面来论述信息管理系统的设计。
一、需求分析在设计信息管理系统之前,我们首先要进行需求分析。
需求分析是指通过对用户需求的调研和分析,明确系统所需要具备的功能和特性。
在进行需求分析时,应该充分考虑用户的实际需求,避免设计出无用的功能,从而提高系统的可用性和用户满意度。
二、系统设计在需求分析的基础上,开始进行系统设计。
系统设计是指将需求分析结果转化为系统的结构和功能的过程。
设计一个良好的信息管理系统需要考虑以下几个方面的因素:系统架构、数据库设计、界面设计、安全性等。
1. 系统架构系统架构是指系统的整体结构和组织方式。
常见的系统架构包括单层架构、两层架构、三层架构等。
在选择系统架构时,需要综合考虑系统的规模、性能要求、易用性和可扩展性等因素。
2. 数据库设计数据库设计是系统设计中非常重要的一环。
数据库设计应考虑到系统的数据存储、查询、更新和删除等操作的效率和安全性。
合理设计数据库的表结构和关系,能够提高系统的数据处理效率和数据的完整性。
3. 界面设计界面设计是用户与系统进行交互的重要环节。
良好的界面设计应该符合用户的使用习惯,简洁明了、易于操作。
同时需要注意设计合适的图标、按钮和颜色搭配,以提高用户的使用体验。
4. 安全性信息管理系统通常涉及到大量的敏感信息,如个人隐私、财务数据等。
为了保护这些信息的安全,必须在系统设计过程中考虑安全性的问题。
可以采取加密技术、访问控制、备份策略等手段来提高系统的安全性。
三、功能模块一个完整的信息管理系统通常由多个功能模块组成。
每个功能模块负责系统的某一特定功能。
在设计功能模块时,需要充分调研用户需求,并根据需求设计相应的模块。
常见的功能模块包括用户管理模块、数据管理模块、报表管理模块等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <time.h>#include <conio.h>#define N 100struct employee//职工基本情况{int num; //工号char name[10]; //姓名int sex; //性别int position; //职位int age; //年龄int cult; //学历int salary; //工资int state; //健康情况long tel; //联系电话char adr[50]; //住址}em[N];int num[N]={0};struct employee newem;void mainmenu(); //主菜单void input(); //输入模块void display(); //显示模块void del(); //删除模块void add(); //添加模块void count(); //统计模块void change(); //修改模块int changeposition(); //修改职位int changecult(); //修改学历int changesalary(); //修改工资int changestate(); //修改身体状况void changmany(); //修改多项信息void print(); //打印函数void select(); //查询模块void numselect(); //按工号查询void nameselect(); //按姓名查询void cultselect(); //按学历查询void positionselect(); //按职位查询•2010-7-11 11:46•回复••LUZIF200826•2位粉丝•2楼void stateselect(); //按身体状况查询void sexselect(); //按性别查询void ageselect(); //按年龄区间查询void salaryselect(); //按工资区间查询void paixu(); //排序模块void numpx(); //按工号排序void cultpx(); //按学历排序void positionpx(); //按职位排序void statepx(); //按身体状况排序void agepx(); //按年龄排序void salarypx(); //按工资排序void main() //主函数{char password[7]="1";char s[7];int flag=0;int n=3;system("mode con: lines=100 cols=120 ");do{printf("请你输入密码:\n");scanf("%s",s);if(!strcmp(s,password)) //若密码正确{printf("恭喜你成功登陆了\n\n\n");flag=1;break;}else{printf("输入有错误请重新输入:\n");n--;}}while(n>0);if(!flag){printf("你的输入次数已到再见\n");•2010-7-11 11:46•回复••LUZIF200826•2位粉丝•3楼exit(0);}printf("请按任意键继续!\n");getch();mainmenu();}void mainmenu() //主菜单{int choicemanage=0;while(1){system("cls");printf("\t\t欢迎进入职工信息管理系统\n");printf("\t\t============================\n");printf("\t\t请你选择操作类型:\n");printf("\t\t1输入职工信息\n");printf("\t\t2显示职工信息\n");printf("\t\t3查询职工信息\n");printf("\t\t4修改职工信息\n");printf("\t\t5追加一个职工信息\n");printf("\t\t6删除一个职工信息\n");printf("\t\t7统计职工信息\n");printf("\t\t8对职工信息进行排序\n");printf("\t\t0退出\n");printf("\t\t===========================\n");scanf("%d",&choicemanage);switch(choicemanage){case 1:input(); //输入职工信息break;case 2:display(); //显示职工信息break;case 3:select(); //查询职工信息break;case 4:change(); //修改职工信息break;case 5:add(); //追加一个职工信息break;case 6:del(); //删除一个职工信息•2010-7-11 11:46•回复••LUZIF200826•2位粉丝•4楼break;case 7:count(); //统计职工信息break;case 8:paixu(); //对职工信息进行排序break;case 0:printf("谢谢你的使用再见\n");exit(0);default:printf("你的输入有错请重新输入\n");}}}void input() //输入模块{FILE *fp;int k,j,flag=0,i=0;char choice;system("cls");if((fp=fopen("employee.txt","w"))==NULL)exit(0);srand(time(NULL));while(1){i++;system("cls");printf("第%d个职工\n",i);printf("\n");do{em[i].num=rand()%6000+2000; //自动生成工号for(j=0;num[j];j++){if(num[j]==em[i].num){flag=1;break;}}if(flag!=1){num[i]=em[i].num;break;}}while(1);•2010-7-11 11:46•回复••LUZIF200826•2位粉丝•5楼printf("工号:%d\n",num[i]);printf("请输入姓名:\n"); //输入姓名scanf("%s",em[i].name);printf("\n");do{printf("请选择性别以1为男2为女:\n"); //输入性别scanf("%d",&k);if(k>=1&&k<=2){em[i].sex=k;break;}elseprintf("您的输入有误,请重新输入!\n");}while(1);printf("\n");do{printf("请选择职位1.董事长2.总经理3.副总经理4.经理5.副经理6.秘书7.技术员8.领班9.普通员工:\n");//输入职位scanf("%d",&k);if(k>=1&&k<=9){em[i].position=k;break;}elseprintf("您的输入有误,请重新输入!\n");}while(1);printf("\n");printf("请输入年龄:");scanf("%d",&em[i].age);printf("\n");do{printf("请选择文化程度1为专家2为博士3为硕士4为学士5为其他:\n");//输入文化程度scanf("%d",&k);if(k>=1&&k<=5){em[i].cult=k;break;•2010-7-11 11:46•回复••LUZIF200826•2位粉丝•6楼}elseprintf("您的输入有误,请重新输入!\n");}while(1);printf("\n");printf("请输入工资:\n");//输入工资scanf("%d",&em[i].salary);printf("\n");do{printf("请你选择身体情况1好2为一般3为差:\n");//身体情况scanf("%d",&k);if(k>=1&&k<=3){em[i].state=k;break;}elseprintf("您的输入有误,请重新输入!\n");}while(1);printf("\n");printf("请输入联系电话:");scanf("%ld",&em[i].tel);printf("\n");printf("请输入地址:");scanf("%s",em[i].adr);printf("\n");fwrite(&em[i],sizeof(struct employee),1,fp);printf("是否继续输入?(y/n)\n");scanf("%s",&choice);if(choice=='n'||choice=='N')break;}fclose(fp);if((fp=fopen("num.txt","w"))==NULL)exit(0);for(i=0;num[i];i++)fwrite(&num[i],sizeof(int),1,fp);fclose(fp);printf("输入完毕,任意键返回\n");getch();}void display() //显示职工信息{FILE *fp;int i;system("cls");if((fp=fopen("employee.txt","r+"))==NULL){printf("文件不存在或为空,请先输入员工信息!\n");mainmenu();}printf("输出结果:\n");printf("工号\t姓名\t年龄\t性别\t职位\t \t文化程度\t身体情况\t工资\t电话\t住址\n");for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++){print(em[i]);}printf("完毕按任意键返回\n");getch();fclose(fp);}•2010-7-11 11:46•回复•KLZ毕业7楼一大伙作业党要幸福的笑了……•阿宾和白洁•289位粉丝••2010-7-11 11:50 •回复••LUZIF200826•2位粉丝•8楼void change() //修改模块{FILE *fp;int i,k,l=0;int chnum;int choicechange;system("cls");printf("请你输入要修改的人的工号:\n");scanf("%d",&chnum);if((fp=fopen("employee.txt","r+"))==NULL){printf("不能够打开这个文件\n");exit(0);}for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++) ;k=i;fclose(fp);if((fp=fopen("employee.txt","w+"))==NULL){printf("不能够打开这个文件\n");exit(0);}for(i=0;i<k;i++){if(chnum==em[i].num){l=1;printf("这是你要修改的人的信息\n");printf("工号\t姓名\t年龄\t性别\t职位\t \t文化程度\t身体情况\t工资\t电话\t住址\n");print(em[i]);printf("------------------------------------------------------------\n");printf("请选择要修改的部分:\n");printf("\t\t===============================\n");printf("\t\t1仅修改职位\n");printf("\t\t2仅修改文化程度\n");printf("\t\t3仅修改工资\n");printf("\t\t4仅修改身体情况\n");printf("\t\t5修改多项\n");printf("\t\t0返回主菜单\n");printf("\t\t============================\n");•2010-7-11 12:11•回复••LUZIF200826•2位粉丝•9楼printf("请选择\n");scanf("%d",&choicechange);switch(choicechange){case 1:em[i].position=changeposition();break;case 2:em[i].cult=changecult();break;case 3:em[i].salary=changesalary();break;case 4:em[i].state=changestate();break;case 5:newem=em[i];changmany();em[i]=newem;break;case 0:mainmenu();default :printf("输入有错误");}}fwrite(&em[i],sizeof(struct employee),1,fp);}fclose(fp);if(l==0){printf("该员工不存在,请查证后再输入!\n");select();}•2010-7-11 12:11•回复••LUZIF200826•2位粉丝•10楼elseprintf("操作完成按任意键返回主菜单\n");getch();}int changeposition(){int newposition;printf("请选择新职位1为董事长2为总经理3为副总经理4为经理5为副经理6为秘书7为技术员8为领班9为普通员工:\n");scanf("%d",&newposition);return(newposition);}int changecult(){int newcult;printf("请选择新的文凭1为专家2为博士3为硕士4为学士5为其他:\n");scanf("%d",&newcult);return(newcult);}int changesalary(){int newsalary;printf("请输入新的工资:\n");scanf("%d",&newsalary);return(newsalary);}int changestate(){int newstate;printf("请选择现在的身体情况1好2为一般3为差:\n");scanf("%d",&newstate);return(newstate);}void changmany(){int k;system("cls");printf("请依次输入该员工的新信息\n");do{printf("请选择职位1.董事长2.总经理3.副总经理4.经理5.副经理6.秘书7.技术员8.领班9.普通员工:\n");//输入职位scanf("%d",&k);if(k>=1&&k<=9){newem.position=k;break;}elseprintf("您的输入有误,请重新输入!\n");}while(1);printf("\n");printf("请输入年龄:");scanf("%d",&newem.age);printf("\n");do{printf("请选择文化程度1为专家2为博士3为硕士4为学士5为其他:\n");//输入文化程度scanf("%d",&k);if(k>=1&&k<=5){newem.cult=k;•2010-7-11 12:11•回复••LUZIF200826•2位粉丝•11楼break;}elseprintf("您的输入有误,请重新输入!\n");}while(1);printf("\n");printf("请输入工资:\n");//输入工资scanf("%d",&newem.salary);printf("\n");do{printf("请你选择身体情况1好2为一般3为差:\n");//身体情况scanf("%d",&k);if(k>=1&&k<=3){newem.state=k;break;}elseprintf("您的输入有误,请重新输入!\n");}while(1);printf("\n");printf("请输入联系电话:");scanf("%ld",&newem.tel);printf("\n");printf("请输入地址:");scanf("%s",newem.adr);printf("\n");}void add()//追加一个职工信息{struct employee emp;FILE *fp;int l,k,j,flag=0,i=0;system("cls");if((fp=fopen("num.txt","r+"))==NULL)exit(0);for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++);l=i;fclose(fp);if((fp=fopen("employee.txt","ab+"))==NULL){printf("不能够打开这个文件\n");getch();exit(0);}printf("请你输入新人的内容:\n");srand(time(NULL));do{emp.num=rand()%6000+2000; //自动生成工号for(j=0;num[j];j++){if(num[j]==emp.num)•2010-7-11 12:11•回复••LUZIF200826•2位粉丝•12楼{flag=1;break;}}if(flag!=1){num[l]=emp.num;l++;break;}}while(1);printf("请输入姓名:\n"); //输入姓名scanf("%s",);printf("\n");do{printf("请选择性别以1为男2为女:\n"); //输入性别scanf("%d",&k);if(k>=1&&k<=2){emp.sex=k;break;}elseprintf("您的输入有误,请重新输入!\n");}while(1);printf("\n");do{printf("请选择职位1.董事长2.总经理3.副总经理4.经理5.副经理6.秘书7.技术员8.领班9.普通员工:\n");//输入职位scanf("%d",&k);if(k>=1&&k<=9){emp.position=k;break;}elseprintf("您的输入有误,请重新输入!\n");}while(1);printf("\n");printf("请输入年龄:");scanf("%d",&emp.age);printf("\n");do{printf("请选择文化程度1为专家2为博士3为硕士4为学士5为其他:\n");//输入文化程度•2010-7-11 12:11•回复••LUZIF200826•2位粉丝•13楼scanf("%d",&k);if(k>=1&&k<=5){emp.cult=k;break;}elseprintf("您的输入有误,请重新输入!\n");}while(1);printf("\n");printf("请输入工资:\n");//输入工资scanf("%d",&emp.salary);printf("\n");do{printf("请你选择身体情况1好2为一般3为差:\n");//身体情况scanf("%d",&k);if(k>=1&&k<=3){emp.state=k;break;}elseprintf("您的输入有误,请重新输入!\n");}while(1);printf("\n");printf("请输入联系电话:");scanf("%ld",&emp.tel);printf("\n");printf("请输入地址:");scanf("%s",emp.adr);printf("\n");fwrite(&emp,sizeof(struct employee),1,fp);rewind(fp);fclose(fp);if((fp=fopen("num.txt","w+"))==NULL)exit(0);for(i=0;i<l;i++)fwrite(&num[i],sizeof(int),1,fp);fclose(fp);printf("插入完毕,按任意键返回\n");getch();}void del()//删除一个职工信息{int i=0,j=0,l=0,k,b;char choice;int delnum;FILE *fp;if((fp=fopen("employee.txt","r+"))==NULL){printf("文件为空,不能够打开\n");printf("按任意键返回\n");getch();•2010-7-11 12:11•回复••LUZIF200826•2位粉丝•14楼mainmenu();}printf("请你输入要删除的人的工号:\n");//删除的职工的信息scanf("%d",&delnum);for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++) {if(em[i].num==delnum){j=i;l=1;}}k=i;fclose(fp);if(l==0){printf("该员工不存在!\n");mainmenu();}printf("你要删除的职工信息为:\n");printf("工号\t姓名\t年龄\t性别\t职位\t \t文化程度\t身体情况\t工资\t电话\t住址\n");print(em[j]);printf("是否真的删除该职工信息[y/n]\n");scanf("%s",&choice);if(choice=='n'||choice=='N'){printf("取消删除,按任意键返回主菜单!\n");getch();mainmenu();}if((fp=fopen("employee.txt","w+"))==NULL){printf("文件为空,不能够打开\n");printf("按任意键返回\n");getch();mainmenu();}for(i=0;i<k;i++){if(i!=j)fwrite(&em[i],sizeof(struct employee),1,fp);}fclose(fp);if((fp=fopen("num.txt","r+"))==NULL)exit(0);for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++);b=i;fclose(fp);if((fp=fopen("num.txt","w+"))==NULL)exit(0);for(i=0;i<k;i++){•2010-7-11 12:11•回复••LUZIF200826•2位粉丝•15楼if(num[i]!=delnum)fwrite(&num[i],sizeof(int),1,fp);}fclose(fp);printf("删除成功,按任意键返回!\n");getch();}void count(){FILE *fp;int i=0;int num=0;//总人数统计int mnum=0,fnum=0;//性别人数统计int zjnum=0,bsnum=0,ssnum=0,xsnum=0,othernum=0;//学位人数统计int dsznum=0,zglnum=0,fzglnum=0,glnum=0,fglnum=0;//职位人数统计int mishunum=0,jsynum=0,lbnum=0,ygnum=0;system("cls");if((fp=fopen("employee.txt","r+"))==NULL){printf("不能够打开这个文件\n");exit(0);}do{fread(&em[i],sizeof(struct employee),1,fp);if(feof(fp))break;num++;if(em[i].sex==1) //性别统计mnum++;if(em[i].sex==2)fnum++;if(em[i].cult==1) //文凭统计zjnum++;if(em[i].cult==2)bsnum++;if(em[i].cult==3)ssnum++;if(em[i].cult==4)xsnum++;if(em[i].cult==5)othernum++;if(em[i].position==1) //职位统计dsznum++;if(em[i].position==2)zglnum++;•2010-7-11 12:11•回复••LUZIF200826•2位粉丝•16楼if(em[i].position==3)fzglnum++;if(em[i].position==4)glnum++;if(em[i].position==5)fglnum++;if(em[i].position==6)mishunum++;if(em[i].position==7)jsynum++;if(em[i].position==8)lbnum++;if(em[i].position==9)ygnum++;i++;}while(1);printf("总人数为%d\n",num);printf("=======性别分类========\n");printf("男人数为%d\n",mnum);printf("女人数为%d\n",fnum);printf("========文凭分类========\n");printf("专家数为%d\n",zjnum);printf("博士数为%d\n",bsnum);printf("硕士数为%d\n",ssnum);printf("学士数为%d\n",xsnum);printf("其他的数为%d\n",othernum);printf("========职位分类===========\n");printf("董事长数为%d\n",dsznum);printf("总经理数为%d\n",zglnum);printf("副总经理数为%d\n",fzglnum);printf("经理数为%d\n",glnum);printf("副经理数为%d\n",fglnum);printf("秘书数为%d\n",mishunum);printf("技术员数为%d\n",jsynum);printf("领班人数为%d\n",lbnum);printf("普通员工数为%d\n",ygnum);printf("统计完毕,按任意键返回\n");getch();fclose(fp);}void select() //查询模块{int choice;system("cls");printf("请选择查询方式\n");printf("\t\t============================\n");printf("\t\t1按工号查询\n");printf("\t\t2按姓名查询\n");printf("\t\t3按学历查询\n");•2010-7-11 12:11•回复••LUZIF200826•2位粉丝•17楼printf("\t\t4按职位查询\n");printf("\t\t5按身体状况查询\n");printf("\t\t6按性别查询\n");printf("\t\t7按年龄区间查询\n");printf("\t\t8按工资区间查询\n");printf("\t\t0返回主菜单\n");printf("\t\t============================\n"); printf("请选择\n");scanf("%d",&choice);switch(choice){case 1:numselect();break;case 2:nameselect();break;case 3:cultselect();break;case 4:positionselect();break;case 5:stateselect();break;case 6:sexselect();break;case 7:ageselect();break;case 8:salaryselect();break;case 0:mainmenu();break;default:printf("你的输入有错请重新输入\n");select();}}void numselect() //按工号查询{FILE *fp;int i=0;int quenum;if((fp=fopen("employee.txt","r"))==NULL) {printf("不能够打开文件\n");exit(0);}printf("请你输入要查询的人的工号\n");scanf("%d",&quenum);for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++){if(em[i].num==quenum) /*找到,并显示该职工记录*/•2010-7-11 12:11•回复••LUZIF200826•2位粉丝•18楼{printf("工号\t姓名\t年龄\t性别\t职位\t \t 文化程度\t身体情况\t工资\t电话\t住址\n");print(em[i]);printf("查询完毕,按任意键返回\n");getch();fclose(fp);mainmenu();}}printf("没有这样的人,按任意键返回\n");getch();fclose(fp);}void nameselect() //按姓名查询{FILE *fp;int l=0,i=0;char ch;char quename[10];if((fp=fopen("employee.txt","r"))==NULL){printf("不能够打开文件\n");exit(0);}printf("请你输入要查询的人的姓名\n");scanf("%s",quename);printf("工号\t姓名\t年龄\t性别\t职位\t \t文化程度\t身体情况\t工资\t电话\t住址\n");for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++){if(strcmp(em[i].name,quename)==0) /*找到,并显示该职工记录*/{print(em[i]);l++;}}if(l==0)printf("没有这样的人!\n");elseprintf("查询完毕!共查找到%d条记录\n",l);fclose(fp);printf("按1返回上一级菜单,按其他键返回主菜单\n");ch=getch();switch(ch){case '1':select();break;default:mainmenu();•2010-7-11 12:11•回复••LUZIF200826•2位粉丝•19楼}}void cultselect() //按学历查询{FILE *fp;int i=0;char ch;int k,l=0;if((fp=fopen("employee.txt","r"))==NULL){printf("不能够打开文件\n");exit(0);}printf("请选择要查询的人的学历:1为专家2为博士3为硕士4为学士5为其他\n");scanf("%d",&k);printf("工号\t姓名\t年龄\t性别\t职位\t \t文化程度\t身体情况\t工资\t电话\t住址\n");for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i+ +){if(em[i].cult==k) /*找到,并显示该职工记录*/{print(em[i]);l++;}}if(l==0){printf("没有这样的人!\n");getch();}elseprintf("共找到符合条件的%d个职工!\n",l);fclose(fp);printf("按1返回上一级菜单,按其他键返回主菜单\n");ch=getch();switch(ch){case '1':select();break;default:mainmenu();}}void positionselect() //按职位查询{FILE *fp;int i=0;char ch;int k,l=0;if((fp=fopen("employee.txt","r"))==NULL){printf("不能够打开文件\n");exit(0);}printf("请选择要查询的人的职位:1.董事长2.总经理3.副总经理4.经理5.副经理6.秘书7.技术员8.领班9.普通员工\ n");scanf("%d",&k);printf("工号\t姓名\t年龄\t性别\t职位\t \t文化程度\t身体情况\t工资\t电话\t住址\n");for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i+ +){if(em[i].position==k) /*找到,并显示该职工记录*/{print(em[i]);l++;}}if(l==0){printf("没有您所要查询的员工信息!\n");}elseprintf("共找到符合条件的%d个职工!\n");fclose(fp);printf("按1返回上一级菜单,按其他键返回主菜单\n");ch=getch();switch(ch){case '1':select();break;default:mainmenu();}}•2010-7-11 12:11•回复••LUZIF200826•2位粉丝•21楼printf("请选择\n");scanf("%d",&choicechange);switch(choicechange){case 1:em[i].position=changeposition();break;case 2:em[i].cult=changecult();break;case 3:em[i].salary=changesalary();break;case 4:em[i].state=changestate();break;case 5:newem=em[i];changmany();em[i]=newem;break;case 0:mainmenu();default :printf("输入有错误");}}fwrite(&em[i],sizeof(struct employee),1,fp);}fclose(fp);if(l==0){printf("该员工不存在,请查证后再输入!\n");select();}•2010-7-11 12:11•回复••LUZIF200826•2位粉丝•22楼elseprintf("操作完成按任意键返回主菜单\n");getch();}int changeposition(){int newposition;printf("请选择新职位1为董事长2为总经理3为副总经理4为经理5为副经理6为秘书7为技术员8为领班9为普通员工:\n");scanf("%d",&newposition);return(newposition);}int changecult(){int newcult;printf("请选择新的文凭1为专家2为博士3为硕士4为学士5为其他:\n");scanf("%d",&newcult);return(newcult);}int changesalary(){int newsalary;printf("请输入新的工资:\n");scanf("%d",&newsalary);return(newsalary);}int changestate(){int newstate;printf("请选择现在的身体情况1好2为一般3为差:\n");scanf("%d",&newstate);return(newstate);}void changmany(){int k;system("cls");printf("请依次输入该员工的新信息\n");do{printf("请选择职位1.董事长2.总经理3.副总经理4.经理5.副经理6.秘书7.技术员8.领班9.普通员工:\n");//输入职位scanf("%d",&k);if(k>=1&&k<=9){newem.position=k;break;}elseprintf("您的输入有误,请重新输入!\n");}while(1);printf("\n");printf("请输入年龄:");scanf("%d",&newem.age);printf("\n");do{printf("请选择文化程度1为专家2为博士3为硕士4为学士5为其他:\n");//输入文化程度scanf("%d",&k);if(k>=1&&k<=5){newem.cult=k;•2010-7-11 12:11•回复••LUZIF200826•2位粉丝•23楼break;}elseprintf("您的输入有误,请重新输入!\n");}while(1);printf("\n");printf("请输入工资:\n");//输入工资scanf("%d",&newem.salary);printf("\n");do{printf("请你选择身体情况1好2为一般3为差:\n");//身体情况scanf("%d",&k);if(k>=1&&k<=3){newem.state=k;break;}elseprintf("您的输入有误,请重新输入!\n");}while(1);printf("\n");printf("请输入联系电话:");scanf("%ld",&newem.tel);printf("\n");printf("请输入地址:");scanf("%s",newem.adr);printf("\n");}void add()//追加一个职工信息{struct employee emp;FILE *fp;int l,k,j,flag=0,i=0;system("cls");if((fp=fopen("num.txt","r+"))==NULL)exit(0);for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++);l=i;fclose(fp);if((fp=fopen("employee.txt","ab+"))==NULL){printf("不能够打开这个文件\n");getch();exit(0);}printf("请你输入新人的内容:\n");srand(time(NULL));do{emp.num=rand()%6000+2000; //自动生成工号for(j=0;num[j];j++){if(num[j]==emp.num)•2010-7-11 12:11•回复••LUZIF200826•2位粉丝•24楼{flag=1;break;}}if(flag!=1){num[l]=emp.num;l++;break;}}while(1);printf("请输入姓名:\n"); //输入姓名scanf("%s",);printf("\n");do{printf("请选择性别以1为男2为女:\n"); //输入性别scanf("%d",&k);if(k>=1&&k<=2){emp.sex=k;break;}elseprintf("您的输入有误,请重新输入!\n");}while(1);printf("\n");do{printf("请选择职位1.董事长2.总经理3.副总经理4.经理5.副经理6.秘书7.技术员8.领班9.普通员工:\n");//输入职位scanf("%d",&k);if(k>=1&&k<=9){emp.position=k;break;}elseprintf("您的输入有误,请重新输入!\n");}while(1);printf("\n");printf("请输入年龄:");scanf("%d",&emp.age);printf("\n");do{printf("请选择文化程度1为专家2为博士3为硕士4为学士5为其他:\n");//输入文化程度•2010-7-11 12:11•回复••LUZIF200826•2位粉丝•25楼scanf("%d",&k);if(k>=1&&k<=5){emp.cult=k;break;}elseprintf("您的输入有误,请重新输入!\n");}while(1);printf("\n");printf("请输入工资:\n");//输入工资scanf("%d",&emp.salary);printf("\n");do{printf("请你选择身体情况1好2为一般3为差:\n");//身体情况scanf("%d",&k);if(k>=1&&k<=3){emp.state=k;break;}elseprintf("您的输入有误,请重新输入!\n");}while(1);printf("\n");printf("请输入联系电话:");scanf("%ld",&emp.tel);printf("\n");printf("请输入地址:");scanf("%s",emp.adr);printf("\n");fwrite(&emp,sizeof(struct employee),1,fp);rewind(fp);fclose(fp);if((fp=fopen("num.txt","w+"))==NULL)exit(0);for(i=0;i<l;i++)fwrite(&num[i],sizeof(int),1,fp);fclose(fp);printf("插入完毕,按任意键返回\n");getch();}void del()//删除一个职工信息{int i=0,j=0,l=0,k,b;char choice;int delnum;FILE *fp;if((fp=fopen("employee.txt","r+"))==NULL){printf("文件为空,不能够打开\n");printf("按任意键返回\n");getch();•2010-7-11 12:11•回复••LUZIF200826•2位粉丝•27楼if(num[i]!=delnum)fwrite(&num[i],sizeof(int),1,fp);}fclose(fp);printf("删除成功,按任意键返回!\n");getch();}void count(){FILE *fp;int i=0;int num=0;//总人数统计int mnum=0,fnum=0;//性别人数统计int zjnum=0,bsnum=0,ssnum=0,xsnum=0,othernum=0;//学位人数统计int dsznum=0,zglnum=0,fzglnum=0,glnum=0,fglnum=0;//职位人数统计int mishunum=0,jsynum=0,lbnum=0,ygnum=0;system("cls");if((fp=fopen("employee.txt","r+"))==NULL){printf("不能够打开这个文件\n");exit(0);}do{fread(&em[i],sizeof(struct employee),1,fp);if(feof(fp))break;num++;if(em[i].sex==1) //性别统计mnum++;if(em[i].sex==2)fnum++;if(em[i].cult==1) //文凭统计zjnum++;if(em[i].cult==2)bsnum++;if(em[i].cult==3)ssnum++;if(em[i].cult==4)xsnum++;if(em[i].cult==5)othernum++;if(em[i].position==1) //职位统计dsznum++;if(em[i].position==2)zglnum++;•2010-7-11 12:11•回复••LUZIF200826•2位粉丝•28楼if(em[i].position==3)fzglnum++;if(em[i].position==4)glnum++;if(em[i].position==5)fglnum++;if(em[i].position==6)mishunum++;。