c语言程序设计__企业员工管理系统
基于C的企业员工管理系统

基于C的企业员工管理系统一、引言企业员工管理系统是指集成了管理员、员工和积极性评分三个角色的信息系统。
管理员可以使用该系统进行员工信息管理、新增员工、离职员工管理、调薪管理、考勤管理等操作,员工则可以查看个人信息、调整照片、查询工资条等操作,积极性评分用来评估员工的绩效和动力水平。
本文将介绍一款基于C语言的企业员工管理系统的设计与实现。
二、需求分析1.管理员模块管理员可以通过该系统管理员工信息,包括但不限于员工基本信息、入职记录、离职记录、考勤记录、薪酬记录等。
管理员可以通过该系统对员工的信息进行查询、修改、添加和删除等操作。
2.员工模块员工模块主要用于展示员工个人信息,包括但不限于员工编号、姓名、性别、所属部门、职位等。
员工可以查看个人信息、调整照片、查询工资条等操作。
3.积极性评分模块积极性评分模块主要用于评估员工的职业动力水平和工作绩效,管理员可以通过该系统对员工的绩效和动力水平进行评估,从而能够制定相应的奖励措施。
三、系统设计1.数据库设计(1)员工表员工表主要包括员工编号、姓名、性别、入职时间、所属部门、职位等信息。
(2)离职表离职表主要包括员工编号、离职时间等信息。
(3)考勤表考勤表主要包括员工编号、考勤时间等信息。
(4)薪酬表薪酬表主要包括员工编号、基本工资、奖励等信息。
(5)管理员表管理员表主要包括管理员编号、管理员用户名、管理员密码等信息。
2.系统架构(1)客户端客户端主要包括数据库连接、查询、添加、修改、删除、打印等功能。
(2)数据库数据库主要存储员工信息、部门信息、薪酬信息、管理员信息等。
(3)服务器服务器主要用于数据传输和处理,实现一定程度上的数据中心化,方便管理员和员工查看自己的信息。
四、系统实现1.客户端实现客户端主要包括用户登录、数据查询、员工添加、修改、删除等功能。
用户登录:管理员登录后进入主界面,可以选择员工信息管理、考勤管理、薪酬管理等功能。
数据查询:管理员可以通过系统查询员工信息、部门信息、考勤记录、薪酬记录等。
c语言课设职工管理系统

c语言课设职工管理系统《C语言课设职工管理系统》在当前社会中,职工管理对于一个企事业单位来说至关重要。
如何高效地管理职工,是每个企事业单位都要面临的问题。
为了解决这一问题,我们本次课程设计选择了使用C语言来开发一个职工管理系统。
下面将一步一步回答与该系统相关的问题。
1.系统需求分析人力资源管理系统对于企事业单位来说十分重要,所以我们的职工管理系统必须具备以下基本功能:-能够录入、修改和删除职工信息;-能够查询和打印职工信息表;-能够计算和输出职工薪资;-具备良好的用户操作界面。
2.系统设计与实现在设计与实现过程中,我们可以使用结构体来表示职工的信息,如下所示:cs t r u c t E m p l o y e e{c h a r n a m e[20];职工姓名i n t a g e;职工年龄c h a r g e nde r[5];职工性别f l o a t s a l a r y;职工薪资};同时,我们还可以设计一个数组来存储多个职工的信息:cs t r u c t E m p l o y e ee m p l o y e e s[M A X_E M P L O Y E E S];职工信息数组在实现过程中,我们可以使用菜单功能来提供用户操作选项,并根据用户选择进行相应的操作。
下面是一个示例菜单代码:cw h i l e(1){p r i n t f("职工管理系统\n");p r i n t f("1.录入职工信息\n");p r i n t f("2.修改职工信息\n");p r i n t f("3.删除职工信息\n");p r i n t f("4.查询职工信息\n");p r i n t f("5.计算薪资\n");p r i n t f("6.打印职工信息表\n");p r i n t f("0.退出系统\n");p r i n t f("请输入你的选择:");s c a n f("d",&c h o i c e);s w i t c h(c h o i c e){c a s e1:录入职工信息的代码逻辑b r e a k;c a s e2:修改职工信息的代码逻辑b r e a k;c a s e3:删除职工信息的代码逻辑b r e a k;c a s e4:查询职工信息的代码逻辑b r e a k;c a s e5:计算薪资的代码逻辑b r e a k;c a s e6:打印职工信息表的代码逻辑b r e a k;c a s e0:退出系统的代码逻辑b r e a k;d e f a u l t:p r i n t f("无效的选择,请重新输入!\n");b r e a k;}}3.系统测试与调试在系统功能完成后,我们要进行测试与调试,以确保系统的稳定性和正确性。
原创c语言职工管理系统课程设计报告

原创C语言职工管理系统课程设计报告1. 引言职工管理系统是一个可以对职工信息进行录入、查询、修改和删除的软件系统。
在这个项目中,我们将使用C语言来实现这个系统。
通过设计这个项目,我们旨在提高学生们对C语言的理解和应用能力。
2. 项目背景和目的职工管理系统是一个常见的实际应用场景,他在许多企事业单位中都有使用。
通过设计和实现这个系统,我们可以帮助管理人员更有效地管理职工信息,提高管理效率。
我们的目标是设计一个简单易用、功能完善的职工管理系统,可以实现以下功能:职工信息录入、职工信息查询、职工信息修改和职工信息删除。
3. 系统设计我们将使用C语言来实现职工管理系统。
系统设计主要包括以下几个方面的功能模块:3.1 菜单功能模块在这个模块中,我们将设计一个菜单来显示系统的功能选项。
用户可以通过输入相应的选项来进入不同的功能模块。
3.2 职工信息录入功能模块在这个模块中,用户可以输入职工的信息,包括职工编号、职工姓名、职工性别、职工年龄等。
系统将会将这些信息保存到一个文件中以后的查询和修改操作。
3.3 职工信息查询功能模块在这个模块中,用户可以输入职工的编号或者姓名来查询职工的信息。
系统将会根据用户输入的信息在文件中查找相应的职工信息并显示出来。
3.4 职工信息修改功能模块在这个模块中,用户可以输入职工的编号来修改职工的信息。
用户需要输入修改后的信息,并将更新后的信息保存到文件中。
3.5 职工信息删除功能模块在这个模块中,用户可以输入职工的编号来删除职工的信息。
系统将会在文件中查找相应的职工信息并删除。
4. 系统实现系统实现主要有以下几个步骤:4.1 设计程序结构首先,我们需要设计系统的程序结构。
我们将使用函数来实现不同功能模块,通过调用不同的函数来实现系统不同的功能。
4.2 实现菜单功能模块我们将使用printf函数来输出菜单,并使用scanf函数来获取用户的输入。
根据用户的输入,我们将使用switch语句来进入相应的功能模块。
公司员工管理系统(c语言)

while(p->link!=0)
{
if(q->info->Lessthan(*p->link->info,i))
while(p1->link!=0){
p(p1->link->info);
p1=p1->link;
}
}
private:
Node<T> *llist; //指向链表表头的指针
vector<T *> my_vc; //可变大小的数组
while(p->link!=0){
p=p->link;
}
p->link=q;
q->link=0;
}
}
void find_t(char app[],int i=1)//遍历链表查找符合条件的元素
{ //比较行为
switch(i)
{
case 1:
return strcmp(app,)==0;break;
case 2:
return strcmp(app,peo.sex)==0;break;
case 4:
return strcmp(peo.work_year,node.peo.work_year)<0;break;
case 5:
return strcmp(peo.school_record,node.peo.school_record)<0;break;
{
staff peo; //员工信息对象
bool Lessthan(staff_Node &node,int i)//小于操作 通过第二参数选择
C语言企业员工管理系统

}while(1);
if((fp1=fopen("config.bat","wb"))==NULL)
{
printf("\n系统创建失败,请按任意键退出!");
getch();
exit(1);
}
i=0;
while(pwd[i])
{
pwd2[i]=(pwd[i]^ strt);
putw(pwd2[i],fp1);
(strcmp(name,emp1->mobile)==0))
return emp1;
emp1=emp1->next;
}
return NULL;
}
EMP *findqq(char *name)
{
EMP *emp1;
emp1=emp_first;
while(emp1)
{
if(strcmp(name,emp1->qq)==0) return emp1;
emp1=emp1->next;
}
return NULL;
}
void findemp()
{
int choice,ret=0,num;
char str[13];
EMP *emp1;
system("cls");
do{
printf("\t查询员工信息\n");
bound('_',30);
printf("\t1.按查询\n");
printf("工资:%d\n",emp1->salary);
printf("办公:%s\n",emp1->tel_office);
员工管理系统课程设计c语言

员工管理系统课程设计c语言一、课程目标知识目标:1. 理解C语言基本数据类型、变量定义及作用域;2. 学会使用C语言进行结构体定义,掌握结构体的初始化和操作;3. 掌握C语言文件操作,能够实现数据的读写功能;4. 了解员工管理系统的基本功能需求,能够运用所学知识实现简单员工管理功能。
技能目标:1. 能够运用C语言编写结构体,实现对员工信息的存储和读取;2. 能够利用文件操作,实现员工信息的持久化存储;3. 能够编写简单的员工管理系统,完成增删查改等基本功能;4. 能够通过调试和修改程序,解决实际编程过程中遇到的问题。
情感态度价值观目标:1. 培养学生对C语言编程的兴趣,激发学生的学习热情;2. 培养学生的团队协作意识,学会与他人共同解决问题;3. 培养学生的逻辑思维能力,提高分析问题和解决问题的能力;4. 增强学生的自信心,使其在编程实践中获得成就感。
课程性质:本课程为实践性较强的学科,以项目驱动的方式进行教学,旨在让学生在实际项目中掌握C语言编程技巧。
学生特点:学生已经掌握了C语言的基本语法和编程技巧,具有一定的编程基础。
教学要求:结合学生特点,注重实践操作,通过项目实践提高学生的编程能力和解决问题的能力。
同时,关注学生的情感态度,培养其团队协作和逻辑思维能力。
在教学过程中,将目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. C语言基本数据类型和变量复习(1课时)- 复习基本数据类型:整型、浮点型、字符型等- 变量的定义、赋值和作用域2. 结构体的定义和使用(2课时)- 结构体的定义、成员变量及初始化- 结构体数组的创建和操作- 结构体指针的使用3. 文件操作(2课时)- 文件打开、关闭、读写操作- 文件指针的使用- 文件错误处理4. 员工管理系统功能设计(2课时)- 需求分析:明确员工管理系统的基本功能- 功能模块划分:增删查改、数据存储等5. 编程实现员工管理系统(3课时)- 实现员工信息录入、显示、查询、删除和修改功能- 实现员工信息文件存储和读取- 项目调试和优化6. 项目展示和总结(1课时)- 学生分组展示项目成果- 总结项目实现过程中的问题和经验教学内容安排和进度:- 前两节课复习C语言基本数据类型和变量,为后续学习打下基础;- 接着两节课学习结构体的定义和使用,为员工信息管理提供数据结构支持;- 紧接着两节课学习文件操作,为数据持久化存储奠定基础;- 然后两节课进行员工管理系统功能设计,明确项目需求;- 最后三节课编程实现员工管理系统,并进行项目展示和总结。
企业员工管理系统c课程设计

企业员工管理系统c 课程设计一、教学目标本课程旨在让学生掌握企业员工管理系统的C语言编程技能,通过对基本概念、语法及实际案例的学习,使学生能够熟练运用C语言进行简单的员工管理系统开发。
具体的教学目标如下:1.理解C语言的基本语法和数据类型。
2.掌握控制结构、函数、数组和指针等编程基础。
3.了解结构体和文件操作等高级概念。
4.能够使用C语言编写简单的程序。
5.能够独立完成企业员工管理系统的核心功能模块。
6.具备调试和优化代码的能力。
情感态度价值观目标:1.培养学生对计算机编程的兴趣和热情。
2.培养学生解决问题的能力和团队合作精神。
3.培养学生良好的编程习惯和职业道德。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、控制结构、函数、数组和指针等编程基础,以及结构体和文件操作等高级概念。
具体的教学大纲如下:1.C语言概述和基本语法:介绍C语言的历史和发展,熟悉C语言的编译环境和基本语法。
2.数据类型和变量:学习整型、浮点型、字符型等数据类型,以及变量的声明和赋值。
3.控制结构:掌握顺序结构、选择结构和循环结构的使用。
4.函数:学习函数的定义、声明和调用,了解递归函数和外部函数。
5.数组和指针:掌握一维、二维数组的操作,了解指针的概念和应用。
6.结构体:学习结构体的定义和使用,了解联合体和枚举类型。
7.文件操作:掌握文件的打开、关闭、读写等基本操作。
8.企业员工管理系统实例:通过实际案例,引导学生运用所学知识开发简单的员工管理系统。
三、教学方法本课程采用讲授法、案例分析法和实验法等多种教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:通过讲解C语言的基本语法和概念,使学生掌握编程基础。
2.案例分析法:分析实际案例,让学生了解如何将理论知识应用于实际开发。
3.实验法:安排上机实验,让学生动手编写代码,培养实际编程能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备等。
c语言程序设计__企业员工管理系统

一、课程设计目标【1 】经由过程本课程设计,强化上机着手才能,使学生在理论和实践的基本长进一步巩固《C说话程序设计》课程进修的内容,控制工程软件设计的根本办法.学会将常识运用于现实的办法,进步剖析息争决问题的才能,增长分解才能.为后续各门盘算机课程的进修打下坚实基本.为毕业设计和今后工作打下须要基本.二.课程设计内容针对某企业的员工,对其信息进行体系的治理.三.需求剖析对所开辟体系功效.机能的描写,想要实现的目标.此体系可对该厂员工进行信息的录入,修正,删除,添加,查询,排序,统计,打印等功效.用户可经由过程提醒选择进入某一功效界面,然落后行对员工的信息治理.每一功效模块都充分为用户斟酌,编排具体.运用户可以便利快捷的懂得员工信息,实时有用的对员工进行信息的治理.四.概要设计1.体系构造图(功效模块图)对体系进行剖析,给出体系构造图;剖析:此体系,为便利客户输入,以及使程序清楚化,因而本身采取模块法,将每一功效模块化,使程序中各函数间挪用加倍清楚明了.以下为体系模块图.2.功效模块解释对各个模块进行功效的描写.录入模块:输入该厂现有员工信息并保管与文件中,便利日落后行排序,更新,统计,打印等操纵.输出模块:将所有员工信息,或所需员工信息输出于屏幕上,用于打印或查询员工信息.更新模块:此模块又分为删除,添加,修正三个模块.删除模块:对已退休或分开该厂的员工进行删除操纵.添加模块:添加新入厂的员工信息并保管起来.修正模块:找到该员工并,选择所要修正的选项.排序模块:本程序只对员工年纪进行从小到大排序.查询模块:此模块分为按姓名,年纪,工作查询.姓名查询模块:输入要查找的姓名,找到就输出其信息.找不到则输出无此人.年纪查询模块:输入要查找的年纪,找到就输出其信息.找不到则输出无此人.工作查询模块:输入要查找的工作,找到就输出其信息.找不到则输出无此人. 统计模块:此模块分为,统计年纪,性别和工作.统计年纪:输入要统计的年纪,查找并输出,若无此年纪则输出暂无此年纪员工.统计性别:输入要统计的性别,查找并输出,若无此性别则输出暂无此性别员工. 统计工作:输入要统计的工作,查找并输出,若无此工作则输出暂无此工作员工.保管模块:将现有信息保管于文件中,以防丧掉.体系模块图流程图, 函数之间互相挪用的图示 ,程序设计及编码, 运行成果. 主函数:六.,.,愁闷的心问题,就只能去求先生了.此次最大的感触感染就是当你竭尽全力的干一件事时,就没有能挡住你的艰苦.七.参考文献C 说话教材. 八.附录:源代码#include<stdio.h> #include<string.h> #define MAX 100char filename[20]; /*文件名*/ FILE *fp;int n; /*当前该厂人数*/struct date /*时光构造体*/{ int year;int mouth;int day;} ;struct person /*员工信息构造体*/ { char name[10]; /*姓名*/int age; /*年纪*/char job[10]; /*工作*/char sex[10]; /*性别*/char address[20]; /*地址*/char phone[10]; /*德律风*/struct date in_time; /*入厂时光*/}t,worker[MAX];/*录入模块*/void input(){int i;clrscr();printf("\n\n请输入文件名\n");scanf("%s",filename);printf("开端输入员工的信息\n");printf("\n请输入现有员工人数\n");scanf("%d",&n);if((fp=fopen(filename,"w"))==NULL) { printf("不克不及树立!\n");exit();}for(i=0;i<n;i++){ printf("第%d小我的信息:\n",i+1);printf("姓名\n");scanf("%s",worker[i].name);printf("年纪\n");scanf("%d",&worker[i].age);printf("工作\n");scanf("%s",worker[i].job);printf("性别\n");scanf("%s",worker[i].sex);printf("地址\n");scanf("%s",worker[i].address);printf("德律风\n");scanf("%s",worker[i].phone);printf("入厂年\n");scanf("%d",&worker[i].in_time.year);printf("入厂月\n");scanf("%d",&worker[i].in_time.mouth);printf("入厂日\n");scanf("%d",&worker[i].in_time.day);}printf("录入完毕,按随意率性键返回主菜单\n");getch();for(i=0;i<n;i++)fprintf(fp,"%s %d %s %s %s %s %d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,wo rker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);fclose(fp);}/*输出模块*/void output(){ int i;if((fp=fopen(filename,"r"))==NULL){ printf(" 临时未有任何信息,请按随意率性键返回主菜单进行信息录入\n");getch();exit();}clrscr();printf(" 该厂的员工信息:\n");printf("姓名\t年纪\t工作\t性别\t地址\t德律风\t入厂时光 \n");for(i=0;i<n;i++){ fscanf(fp,"%s %d %s %s %s %s %d-%d-%d",worker[i].name,&worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,& worker[i].in_time.year,&worker[i].in_time.mouth,&worker[i].in_time.day);printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worke r[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);}fclose(fp);printf(" 输出完毕,按随意率性键返回主菜单\n");getch();}/*保管模块*/void save(){ int i;if((fp=fopen(filename,"w"))==NULL) /*打开文件*/{ printf("\n 不克不及打开该文件!");exit();}for(i=0;i<n;i++)fprintf(fp,"%s %d %s %s %s %s %d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,wo rker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);fclose(fp);}/*读守信息*/void read_message(){ int i;printf("输入文件名\n");scanf("%s",filename);printf("\n请输入现有员工人数\n");scanf("%d",&n);if((fp=fopen(filename,"r"))==NULL){ printf(" 临时未有任何信息,请按随意率性键返回主菜单进行信息录入\n");getch();}for(i=0;i<n;i++)fscanf(fp,"%s %d %s %s %s %s %d-%d-%d",worker[i].name,&worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,&worker[i].in_time.year,&worker[i].in_time.mouth,&worker[i].in_time.day);fclose(fp);}/*修正模块*/void modify(){ int i,flag,choice; char ch,namekey[10];flag=0;clrscr();printf(" 开端修正\n");do{printf("请输入要修正的员工姓名\n");scanf("%s",namekey);for(i=0;i<n;i++){ if(strcmp(worker[i].name,namekey)==0){ printf("是否修正此人(y/n)\n");printf("姓名\t年纪\t工作\t性别\t地址\t德律风\t入厂时光 \n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worke r[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);getchar(); /*吸收回车*/ch=getchar();if(ch=='y'){ printf(" ****您要修正那一项?***\n\n");printf(" ***1,姓名***\n\n");printf(" ***2,年纪***\n\n");printf(" ***3,工作***\n\n");printf(" ***4,性别***\n\n");printf(" ***5,地址***\n\n");printf(" ***6,德律风***\n\n");printf(" ***7,入厂年***\n\n");printf(" ***8,入厂月***\n\n");printf(" ***9,入厂日***\n\n");printf(" 请选择(1-9)\n");scanf("%d",&choice);switch(choice){ case 1: printf("输入修正后的姓名\n");scanf("%s",worker[i].name); break;case 2: printf("输入修正后的年纪\n");scanf("%d",&worker[i].age); break;case 3: printf("输入修正后的工作\n");scanf("%s",worker[i].job); break;case 4: printf("输入修正后的性别\n");scanf("%s",worker[i].sex); break;case 5: printf("输入修正后的地址\n");scanf("%s",worker[i].address); break;case 6: printf("输入修正后的德律风\n");scanf("%s",worker[i].phone); break;case 7: printf("输入修正后的入厂年\n");scanf("%d",&worker[i].in_time.year); break; case 8: printf("输入修正后的入厂月\n");scanf("%d",&worker[i].in_time.mouth); break; case 9: printf("输入修正后的入厂日\n");scanf("%d",&worker[i].in_time.day); break;}printf("修正后的信息\n");printf("姓名\t年纪\t工作\t性别\t地址\t德律风\t入厂时光 \n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worke r[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);}else break;}elseif(i==n) printf("此人不消失\n");}printf("\n是否持续输入(y/n)\n");getchar(); /*吸收回车*/ch=getchar();if(ch=='y'){ printf("持续\n");flag=1;}else flag=0;}while(flag==1);printf("修正完毕,按随意率性键返回主菜单\n") ;getch();}/*添加模块*/{ int i,flag=0; char ch;clrscr();printf("\n 开端添加新员工\n");printf(" *----------------------------------*\n\n");do{ i=n;printf("\n 请输入添加职工的信息(姓名,年纪,工作,性别,地址,德律风,入厂时光)\n"); printf("姓名\n");scanf("%s",worker[i].name);printf("年纪\n");scanf("%d", &worker[i].age);printf("工作\n");scanf("%s",worker[i].job);printf(" 性别\n");scanf("%s",worker[i].sex);printf("地址\n");scanf("%s",worker[i].address);printf("德律风\n");scanf(" %s",worker[i].phone);printf("入厂年\n");scanf("%d",&worker[i].in_time.year);printf("入厂月\n");scanf("%d",&worker[i].in_time.mouth);printf("入厂日\n");scanf("%d",&worker[i].in_time.day);n++;{ printf("持续\n");flag=1;}else flag=0;}while(flag==1);printf("添加完毕,按随意率性键返回主菜单\n") ;getch();}/*删除模块*/void del(){ int i,flag; char ch,namekey[10];flag=0;clrscr();printf("开端删除\n");do{ printf("请输入要删除员工的名字\n");scanf("%s",namekey);for(i=0;i<n;i++)if(strcmp(worker[i].name,namekey)==0) /*查找此人*/{ printf("是否删除此人(y/n)\n");printf("姓名\t年纪\t工作\t性别\t地址\t德律风\t入厂时光 \n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worke{ for(;i<n;i++)worker[i]=worker[i+1];n--;}else break;}elseif(i==n)printf("此人不消失\n");printf("\n是否持续输入(y/n)\n");getchar(); /*吸收回车*/ch=getchar();if(ch=='y'){ printf("持续\n");flag=1;}else flag=0;}while(flag==1);printf("操纵完毕,按随意率性键返回主菜单\n") ; getch();}/*更新模块*/void renew()do{ clrscr();printf("\n\n\n ****更新员工信息****\n\n"); printf(" 按1,添加员工信息\n\n");printf(" 按2,删除员工信息\n\n");printf(" 按3,修正员工信息\n\n");printf(" 按0,返回主菜单\n");printf(" 请选择(0-3)\n");scanf("%d",&i);switch(i){ case 1: add(); break;case 2: del(); break;case 3: modify(); break;case 0: break;}}while(i!=0);save();}/*按姓名查找*/void name_cha(){ int i,j; char namekey[10];j=0;clrscr();printf(" 输入要查询的员工姓名\n");scanf("%s",namekey);for(i=0;i<n;i++){ printf("---------员工信息------\n");printf("姓名\t年纪\t工作\t性别\t地址\t德律风\t入厂时光 \n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worke r[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);}else j++;if(j==n)printf("此人不消失\n");printf("按随意率性键返回主菜单\n");getch();}/*按年纪查找*/void age_cha(){ int i,j; int agekey;j=0;clrscr();printf(" 输入要查询员工的年纪\n");scanf("%d",&agekey);for(i=0;i<n;i++)if(worker[i].age==agekey){ printf("-------员工信息------\n");printf("姓名\t年纪\t工作\t性别\t地址\t德律风\t入厂时光 \n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worke r[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);else j++;if(j==n)printf("此人不消失\n");printf("按随意率性键返回主菜单\n");getch();}/*按工作查找*/void job_cha(){ int i,j; char jobkey[10];j=0;clrscr();printf("输入要查询的员工职务\n");scanf("%s",jobkey);for(i=0;i<n;i++)if(strcmp(worker[i].job,jobkey)==0){ printf("-------员工信息------\n");printf("姓名\t年纪\t工作\t性别\t地址\t德律风\t入厂时光 \n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worke r[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);}else j++;if(j==n)printf("此人不消失\n");printf("按随意率性键返回主菜单\n");getch();/*查询模块*/void inquire(){ int i;do{ clrscr();printf("\n\n\n ****查询员工信息*****\n\n"); printf(" ****1,按姓名查询*****\n\n");printf(" ****2,按年纪查询*****\n\n");printf(" ****3,按工作查询*****\n\n");printf(" ****0,返回主菜单\n");printf(" 请选择(0-3)\n");scanf("%d",&i);switch(i){ case 1: name_cha();break;case 2: age_cha(); break;case 3: job_cha();break;case 0: break;}}while(i!=0);}/*分列模块*/void line(){ int i,j;clrscr();printf("-------按年纪排序-------\n\n");for(i=0;i<n-1;i++)if(worker[i].age>worker[j].age){ t=worker[i];worker[i]=worker[j];worker[j]=t;}printf("姓名\t年纪\t工作\t性别\t地址\t德律风\t入厂时光 \n");for(i=0;i<n;i++)printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worke r[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);printf("按随意率性键返回主菜单\n");getch();}/*按年纪统计*/void count_age(){ int i,j; int agekey;j=0;clrscr();printf(" 输入要统计员工的年纪\n");scanf("%d",&agekey);for(i=0;i<n;i++)if(worker[i].age==agekey){ printf("-------员工信息------\n");printf("姓名\t年纪\t工作\t性别\t地址\t德律风\t入厂时光 \n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worke}else j++;if(j==n)printf("暂无该年纪段员工\n");printf("按随意率性键返回主菜单\n");getch();}/*按职务统计*/void count_job(){ int i,j; char jobkey[10];j=0;clrscr();printf("输入要统计的员工职务\n");scanf("%s",jobkey);for(i=0;i<n;i++)if(strcmp(worker[i].job,jobkey)==0){ printf("-------员工信息------\n");printf("姓名\t年纪\t工作\t性别\t地址\t德律风\t入厂时光 \n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worke r[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、课程设计目的通过本课程设计,强化上机动手能力,使学生在理论和实践的基础上进一步巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法。
学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。
为后续各门计算机课程的学习打下坚实基础。
为毕业设计和以后工作打下必要基础。
二、课程设计内容针对某企业的员工,对其信息进行系统的管理。
三、需求分析对所开发系统功能、性能的描述,想要实现的目标。
此系统可对该厂员工进行信息的录入,修改,删除,添加,查询,排序,统计,打印等功能。
用户可通过提示选择进入某一功能界面,然后进行对员工的信息管理。
每一功能模块都充分为用户考虑,编排详细。
使用户可以方便快捷的了解员工信息,及时有效的对员工进行信息的管理。
四、概要设计1.系统结构图(功能模块图)对系统进行分析,给出系统结构图;分析:此系统,为方便客户输入,以及使程序清晰化,因而本人采用模块法,将每一功能模块化,使程序中各函数间调用更加明了。
以下为系统模块图。
2.功能模块说明对各个模块进行功能的描述。
录入模块:输入该厂现有员工信息并保存与文件中,方便日后进行排序,更新,统计,打印等操作。
输出模块:将所有员工信息,或所需员工信息输出于屏幕上,用于打印或查询员工信息。
更新模块:此模块又分为删除,添加,修改三个模块。
删除模块:对已退休或离开该厂的员工进行删除操作。
添加模块:添加新入厂的员工信息并保存起来。
修改模块:找到该员工并,选择所要修改的选项。
排序模块:本程序只对员工年龄进行从小到大排序。
查询模块:此模块分为按姓名,年龄,工作查询。
姓名查询模块:输入要查找的姓名,找到就输出其信息。
找不到则输出无此人。
年龄查询模块:输入要查找的年龄,找到就输出其信息。
找不到则输出无此人。
工作查询模块:输入要查找的工作,找到就输出其信息。
找不到则输出无此人。
统计模块:此模块分为,统计年龄,性别和工作。
统计年龄:输入要统计的年龄,查找并输出,若无此年龄则输出暂无此年龄员工。
统计性别:输入要统计的性别,查找并输出,若无此性别则输出暂无此性别员工。
统计工作:输入要统计的工作,查找并输出,若无此工作则输出暂无此工作员工。
保存模块:将现有信息保存于文件中,以防丢失。
系统模块图厂王氏企业员工信息管理系统五、详细设计及运行结果流程图,函数之间相互调用的图示,程序设计及编码,运行结果主函数:i=6y录输入出模模块块i=2更新模块输入i查询模块统计模块退出系统输出模块:开始判断i ti排录入模块:(开始保存模块打开文件结束3/17关闭文件(开始)1 厂打开文件1 ri=0—--------►输出员I •信息否是输入员工信息是关闭文件结束六、调试情况,设计技巧及体会1、 对自己设计进行评价,指出合理和不足之处,提出改进的方案。
自我评价:本人自我觉得此系统还不错,程序简洁明了,功能齐全,而且充分从用户的角度 进行编排,易于执行。
经本人多次调试终于出现0个错误与警告 而且从未有过死循环,用户 一旦输错,立即会有提示,此程序相当的健壮。
因本人定义了全局变量,使操作更加简单易行,使用了结构体数组,避开链表那样的复杂操 作。
但不足之处便是没有链表那样节省内存。
如有机会下次可能会用链表。
2、 在设计过程中的感受。
在把字符一个个敲上屏幕时,坐在那一动不动相当的枯燥,一想到过会儿就能看到自己亲自 编的程序,就只能忍吧。
当看到模块一个个运行后与预料中的完全一样时,郁闷的心情立 马被一种成就感替代。
就想赶紧编完看看自己的杰作。
然而也会遇到自己解决不了的问题, 就只能去求老师了。
统计模块:开始4 ----------------------查询模块:/输入j /返冋主界面这次最大的感受就是当你竭尽全力的干一件事时,就没有能挡住你的困难七、 参考文献C 语言课本。
八、 附录:源代码#include<stdio.h> #include<string.h> #define MAX 100 char filename[20]; /*文件名 */struct date in_time;广入厂时间 */}t,worker[MAX];广录入模块Vvoid input() {int i ;clrscr();printf(H \n\n 请输入文件名 \n H ); scanf(n %s H ,filename); printf (” 开始输入员工的信息 \n H ); printf(An 请输入现有员工人数\rT);scanf(M %d H ,&n); if((fp=fopen(filename,H w n ))==NULL) { printf (” 不能建立! \n n ); exit(); }for(i=0;ivn;i++){ printf(*'第%d 个人的信息:\n u ,i+1); printf(n 姓名 \n n ); scanf(n %s n 5worker[i].name); printf (” 年龄 \n“); scanf("%d",&worker[i].age); printf (” 工作 \n H );scanf (” %s”,worker[i].job); printf (” 性别 \n n );scanf (” %s”,worker[i].sex); printf (” 地址 \n H );scanf("%s'\worker[i].address);FILE *fp; int n; struct date {int year; int mouth; int day;};struct person {char name[10]; int age;char job[10]; char sex[10]; char address[20]; char phone[10];/*当前该厂人数*/ 广时间结构体V /*员工信息结构体*/ 广姓名*/ 广年龄*7 广工作*/ 广性别★/ 广地址7/*电话*/printf(” 电话\rT);scanf(”%s”,worker[i].ph one);printf(” 入厂年\n H);scanf("%d",&worker[i].in_tiine・year);printf(” 入厂月\n H); —scanf(”%d”,&worker[i]・in_time. mouth);printf(” 入厂日\n n); —scanf(n%d'\&worker[i].in_time.day);printf(”录入完毕,按任意键返回主菜单\n n);getch();for(i=0;ivn;i++)fprintf(fp,"%s %d %s %s %s %s %d-%d-%d\n',3worker[i].name,worker[i].age)worker[i].job,worker[i].sex,worker[i],address,worker[i].phone,worker[i].in_time.year,worker [i].in_time.mouth5worker[i].in_time.day);fclose(fp);}广输出模块*/void output(){inti; if((fp=fopen(filename/'r n))==NULL){ printf(n暂时未有任何信息,请按任意键返回主菜单进行信息录入\n n);getch();exit();)clrscr();printf(”该厂的员工信息:\n H);printf(”姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\rT); for(i=0;i<n;i++) {fscanf(fp,”%s %d %s %s %s %s %d-%d-%d n,worker[i].name,&worker[i].age5worker[i].j ob,worker[i].sex,worker[i].address,worker[i].ph one,&worker[i].in_time.year,&worker[i].i n _time.mouth,&worker[i].in_time.day);printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n n,worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].p hone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);} ———fclose(fp);printf(”输出完毕,按任意键返回主菜单\rT);getch();广保存模块*/void save(){inti;if((fp=fopen(filename,n w n))==NULL) 广打开文件7{ printf(An不能打开该文件!”);exit();}for(i=0;ivn;i++)fprintf(fp,n%s %d %s %s %s %s %d-%d-%d\n'\worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i],address,worker[i].phone,worker[i].in_time.year,worker [i].in_time.mouth5worker[i].in_time.day);fclose(fp);)厂读取信息*/void read_message(){int i;printf(”输入文件名\n n);scanf(” %s",filename); printf(An请输入现有员工人数\n n);scanf(”%d”,&n); if((fp=fopen(filename,H r,,))==NULL){ printf(H暂时未有任何信息,请按任意键返回主菜单进行信息录入\n n);getch();for(i=0;i<n;i++)fscanf(fp,"%s %d %s %s %s %s %d-%d-%d,',worker[i].name,&worker[i].age)worker[i].job ,work er[i].sex,worker[i].address,worker[i].ph one,&worker[i].in_time.year,&worker[i].in_time.mouth,&worker[i].in_time.day);fclose(fp);}广修改模块*/void modify(){int i,flag,choice; char ch,namekey[10];flag=O;clrscr();printf(” 开始修改\n H);doprintf"请输入要修改的员工姓名\n H);scanf("%s",namekey);for(i=0;ivn;i++){if(strcmp(worker[i].name,namekey)==0){ printf(H是否修改此人(y/n)\n n);prints姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\rT);printf(,'%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].p hone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);getchar(); 厂接收回车*/ch=getchar();if(ch==y){ printf(” **** 您要修改那一项?***\n\n H);printf(”***1, 姓名***\n\n'f);printf(”年龄***\n\n n);printf(”***3, 工作***\n\n M);printf(”性别***\n\n M);printf(”***5, 地址***\n\n n);printf(”***6, 电话***\n\n n);printf(”***7, 入厂年 ***\n\n»);printf(”入厂月***\n\n H);printf(”入厂日***\n\n u);printf(” 请选择(1-9)\n n); scanf(”%d",&choice);switch(choice) { case 1: printf(” 输入修改后的姓名\n H); scanf("%s",worker[i].name); break;case 2: printf("输入修改后的年龄\n”); scanf(”%d”,&worker[i].age); break; case 3: printf(”输入修改后的工作\rT); scanf(H%s,,,worker[i].job); break;case 4: printf("输入修改后的性别\n”);scanf(”%s”,worker[i].sex);break; case 5: printf("输入修改后的地址\n”); scanfC^s'^workerfi].address); break; case 6: printf("输入修改后的电话\rT); scanf("%s n,worker[i].phone); break; case 7: printf(”输入修改后的入厂年\rT); scanf(”%cT,&worker[i].in_time.year); break;case 8: printf("输入修改后的入厂月\n”); scanf("%d'\&worker[i].in_time.mouth); break;case 9: printf("输入修改后的入厂日\n”); scanf("%d n,&worker[i].in_time.clay); break;}printf(H修改后的信息\n M);prints姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\rT);printf(,'%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n'\worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);} ——— else break;)else if(i==n) printf("此人不存在\n H);)printf(”\n 是否继续输入(y/n)\n n); getchar();/* 接收回车 */ ch=getchar();if(ch==y){ printf(” 继续\n H);flag=1;}else flag=0;}while(flag==1);printf"修改完毕,按任意键返回主菜单\n H);getch();}广添加模块7void add(){int i,flag=0; char ch; clrscr();printf(H\n开始添加新员工\n H); printf(" * ........ *\n\n");do{i=n;printf(An请输入添加职工的信息(姓名,年龄,工作,性别,地址,电话,入厂时间)\rf); printf(, 1姓名\n H);scanf("%s H,worker[i]. name);printf(” 年龄\n H);scanf(”%d”, &worker[i].age); printf(” 工作\n H);scanf("%s H,worker[i].job); printf (”性别\rf);sea nf(”%s”,worker[i].sex); printf(” 地址\n H);scanf("%s H,worker[i].address); printf(” 电话\n M);seanf(” %s,!,worker[i].phone);printf(n入厂年\n n);scanf("%d",&worker[i].in_time.year);printf(M入厂月\rT);scanf("%d",&worker[i].in_time. mouth);printf(H入厂日\n,f);scanf(” %d",&worker[i].in_time.day);n++;printf(u\n添加成功!是否继续输入(y/n)\n n); getchar(); 广接收回车*/ch=getchar();if(ch==y){ printf(”继续\rf);flag=1;}else flag=O;}while(flag==1);printf(”添加完毕,按任意键返回主菜单\n n) ;getch();广删除模块*/void del(){int i,flag; char ch,namekey[10];flag=O;clrscr();printf(”开始删除\n H);do{ printf(”请输入要删除员工的名字\n n);scanf(”%s”, namekey);for(i=0;ivn;i++)if(strcmp(worker[i].name,namekey)==0) 厂查找止匕人 */ { printf(” 是否删除此人(y/n)\n n);printf(”姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n”);printf(,,%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n'\worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].p hone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);getchar(); 广接啟回车*/ch=getchar();if(ch==y){for(;ivn;i++)worker[i]=worker[i+1 ];n-;else break;}elseif(i==n)printf(H此人不存在\n n);printf(”\n 是否继续输入(y/n)\n M);getchar(); 广接收回车7ch=getchar();if(ch==y){ printf(”继续\rT);flag=1;else flag=O;}while(flag==1);printf(M操作完毕,按任意键返回主菜单\n n); getch();广更新模块*/void renew() {inti; do{clrscr();printf(n\n\n\n printf(” printf(" printf(” printf(” printf(” scanf(n%d n,&i); switch(i) { case 1: add(); break; case 2: del(); break; case 3: modify(); ****更新员工信息****\n\n n);按1,添加员工信息\n\n n);按2,删除员工信息\n\n H);按3,修改员工信息\n\n M);按0,返回主菜单\rT);请选择(0-3)\rf);break; case 0: break;»}while(i!=0); save();*/ void name_cha() {int i,j; charnamekey[10]; j=0; clrscr(); printf(” 输入要查询的员工姓名\n H); scanf(n%s n,namekey); for(i=0;i<n;i++) if(strcmp(worker[i].name,namekey)==0) { printf(”员工信息\n");printf(‘姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\rT);printf(H%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n'\worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);)else j++;if(j=n) printf(”此人不存在\rf); printf(”按任意键返回主菜单\rT); getch();尸按年龄查找*/ void age_cha(){int i,j; int agekey;j=0; clrscr();printf(”输入要查询员工的年龄\n n);scant (n%d n,&agekey);for(i=0;ivn;i++) if(worker[i].age==agekey){ printf(H............. 员工信息 -------- \n n); 广查找此人*/printf(”姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\rT);printf(n%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n n,worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);} ———else j++;if(j==n)printf(”此人不存在\n”);printf(”按任意键返回主菜单\n");getch();}广按工作查找*/void job_cha(){int ij; char jobkey[10];j=0;clrscr();printf("输入要查询的员工职务\n H);scanf("%s H,jobkey);for(i=0;ivn;i++)if(strcmp(worker[i].job,jobkey)==0){printf(”................. 员工信息一-\n H);printf(”姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\F);printf(n%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n n,worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i]・in_time ・year,worker[i]・in_time ・rnouth ,worker[i]・in_time.day);} — — —else j++;if(j==n)printf (”此人不存在\rT);printf(M 按任意键返回主菜单\n n );getch();广查询模块7void inquire(){inti;do{clrscr();printf(n \n\n\n **** 查询员工信息 *****\n\n'f );****1,按姓名查询 ****2, 按年龄查询 ****3,按工作查询****0,返回主菜单 printf(n 请选择(0-3)\n H );scanf(”%cf,&i);switch(i){ case 1: name_cha();break; case 2: age_cha(); break; case 3: job_cha();break; case 0: break; >}while(i!=0);广排列模块*/void line(){int i,j ;clrscr();printf (” 按年龄排序 ---------- \n\n H );for(i=0;i<n-1 ;i++) for(j=i+1 ;jvn;j++) if(worker[i].age>worker[j].age) {t=worker[i]; worker[i]=worker[j];worker[j]=t;printf(,'姓名\t 年龄\t 工作\t 性别\t 地址\t 电话\t 入厂时间\n“); for(i=0;i<n;i++)printf(',%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].p hon e,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);printtf*按任意键返回主乗单Tn"); getch();广按年龄统计*/void count_age(){int ij; int agekey;j=0;clrscr();printf (” 输入要统计员工的年龄\n n );scanf("%d n ,&agekey);for(i=0;ivn;i++)if(worker[i].age==agekey){printf (” .............. 员工信息 ------- \n H );printf (”printf(nprintf (” printf(" \F);printf(”姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\rT);printf(” %s\t%d\t%s\t%s\t%s\t%s\t%d・%d・%d\n'\worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);) ——— else j++;if(j==n)printf (”暂无该年龄段员工\rT);printf("按任意键返回主菜单\n n); getch();}广按职务统计*/void countjob(){int ij; char jobkey[10];j=0; clrscr();printf(” 输入要统计的员工职务\n M); scanf(H%s H Jobkey);for(i=0;i<n;i++) if(strcmp(worker[i].job,jobkey)==0) { printf("员工信息\n H); printf(”姓名\t年龄\t工作\t 性别\t地址\t电话\t入厂时间\F); printf(n%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n'\worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);)else j++;if(j==n)printf(n暂无该职务或该职务暂时无人\n“);printf(”按任意键返回主菜单\n H); getch();}广按性别统计7 void count_sex(){int i,j; char sexkey[10]; j=0;clrscr();printf(n输入要统计的员工性别\n H);scanf("%s M,sexkey);for(i=0;i< n;i++) if(strcmp(worker[i].sex,sexkey)==0) { printf(H员工信息\n M);printf(“姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\rT);printf(n%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n'\worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].p hone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);»else j++;if(j==n)printf暂无该性别员工\n“); printf(n按任意键返回主菜单\n M); getch();)厂统计模块*/ voidcount(){int i;do{ clrscr(); printf("\n\n\n **** 统计员工信息****\n\n n); printf(” 按1,统计某年龄职工\n\n n); printf(”按2,统计某职务员工\n\n n);printf(”按3,统计某性别职工\n\n n);printff1按0,返回主菜单\n\n n);printf(” 请选择(0-3):\n n); scanf(n%d H,&i);switch(i){ case 1: count_age(); break; case 2: countjob(); break; case 3: count_sex(); break; case 0: break; }while(i!=0);广主函数7main(){int choice; read_message();do{clrscr();printf("\n\n *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*\0,!); printf(n #*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#\n H );printfC*printf (”#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#\n H ); scanf("%d n ,&choice);switch(choice){ case 1: input(); break;case 2: renew(); break;case 3: inquire(); break;case 4: line(); break;case 5: count(); break;case 6: output(); break; case 0: break;*\n n );*\n n );*\n n );*\n n );*\n n );printf (”printf(H.................. #\n M ); # --1, -按 录入员工信息 -------- —— ............... #\n n ); ■ # --2, -按 更新员工信息 -------- —— .............. #\n H ); ■ # -按 查询员工信息 -------- —— .............. #\n H ); ■ # --4, -按 排列员工信息 -------- —— ............... #\n n ); ■ # --5, -按 统计员工信息 -------- —— ......... #\n”); ■ # 一 6, -按 输出员工信息 -------- —— ............... #\n n ); ■ # --o, -按 退出系统 ------------ ― ................ #\n n ); #*#*#*#*#*#*# 制作者:王增 QQ : 815604901printf (”printff'printf("printf(Hprintf("printf(Hprintf (”printff'printf (”printff*printf (”printff'printf (”printff'printf (” # ----欢迎进入王氏企业员工管理系统・}while(choice!=0);save();printf(n现有员工数:%d\n M,n);printf(n\n以上信息已保存!文件名为:%s\n H,filename);范文素材和资料部分来自网络,供参考。