c语言程序设计 企业员工管理系统

合集下载

c语言课程设计职工信息管理系统

c语言课程设计职工信息管理系统

c语言课程设计职工信息管理系统一、课程目标知识目标:1. 理解C语言的基本语法和结构,掌握基本数据类型、运算符、控制语句的使用;2. 学会使用C语言进行模块化编程,了解函数的定义、调用和参数传递;3. 了解结构体类型及其应用,掌握结构体数组的创建和使用;4. 理解文件操作的基本概念,掌握文件的读写方法。

技能目标:1. 能够运用C语言设计并实现一个职工信息管理系统,具备基本的编程能力;2. 能够运用结构体和文件操作,实现数据的存储和读取;3. 能够通过模块化编程,提高代码的可读性和可维护性;4. 学会使用调试工具,分析和解决程序中的错误。

情感态度价值观目标:1. 培养学生主动探究、积极思考的学习态度,增强解决问题的信心和兴趣;2. 培养学生的团队合作意识,学会与他人共同分析和解决问题;3. 通过编程实践,使学生认识到计算机编程在现实生活中的应用价值,激发学习计算机科学的兴趣。

本课程针对高年级学生,他们已具备一定的编程基础,能理解较为复杂的概念。

课程性质为实践性较强的学科,要求学生通过动手实践,将理论知识应用于实际项目中。

课程目标旨在培养学生具备独立设计、编程和调试程序的能力,提高学生的编程水平和实际问题解决能力。

通过本章节学习,学生将能够掌握C语言在实际项目中的应用,为后续深入学习计算机科学奠定基础。

二、教学内容1. C语言基本语法与结构复习:回顾数据类型、变量、常量、运算符、控制语句(包括循环和分支)等基本概念,巩固学生的语法基础。

相关教材章节:第一章至第四章2. 函数与模块化编程:介绍函数的定义、声明、调用,参数传递,以及模块化编程思想。

相关教材章节:第五章3. 结构体与结构体数组:讲解结构体的定义和使用,结构体数组的创建和管理。

相关教材章节:第六章4. 文件操作:阐述文件的概念,文件的打开、读写、关闭等基本操作。

相关教材章节:第十章5. 职工信息管理系统设计:a. 需求分析:明确系统功能,包括职工信息的增加、删除、修改和查询等。

c语言课设职工管理系统

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语言)
{
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语言企业员工管理系统

C语言企业员工管理系统
else break;
}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语言课程设计职工信息管理系统源程序
福利等
系统管理:包 括用户管理、 权限管理、系
统设置等
系统开发背景
企业信息化需求:提高工作效率,降低管理成本 技术发展:云计算、大数据等技术的成熟 市场竞争:提高企业竞争力,满足客户需求 企业内部管理:优化人力资源管理,提高员工满意度
系统目标
提高工作效率
简化工作流程
提高数据准确性
加强信息安全管理
Part Five
系统实现
数据库连接实现
连接方式:使用JDBC(Java Database Connectivity)进行 数据库连接
连接参数:包括数据库地址、用户 名、密码等
添加标题
添加标题
添加标题
添加标题
数据库类型:支持MySQL、 Oracle、SQL Server等多种数据 库
连接过程:通过JDBC驱动程序建 立与数据库的连接,执行SQL语句 进行数据操作
数据需求分析
员工信息:包括姓名、性别、年龄、职位、部门等信息 考勤信息:包括上下班时间、请假、加班等信息
薪资信息:包括基本工资、绩效工资、奖金等信息 培训信息:包括培训课程、培训时间、培训效果等信息
绩效评估信息:包括绩效考核标准、绩效考核结果等信息 系统管理信息:包括用户管理、权限管理、系统日志等信

性能需求分析
系统响应时间:要求系统响应时间不超过3秒 数据处理速度:要求系统数据处理速度不低于每秒1000条记录 系统稳定性:要求系统在连续运行72小时后,仍能保持稳定运行 系统安全性:要求系统具备防病毒、防黑客等安全措施,确保数据安全
Part Four
系统设计
系统架构设计
架构设计原则:高 内聚、低耦合、可 扩展、可维护
系统维护
定期备份数据:确保数据安全,防止数据丢失 定期更新系统:确保系统安全,防止病毒攻击 定期检查硬件:确保硬件正常运行,防止硬件故障 定期培训员工:确保员工熟练掌握系统操作,提高工作效率

c语言课程设计职工管理系统

c语言课程设计职工管理系统

c语言课程设计职工管理系统一、教学目标本课程的教学目标是使学生掌握C语言编程的基本技能,能够运用C语言设计职工管理系统。

具体目标如下:1.知识目标:学生需掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。

2.技能目标:学生能够熟练使用C语言进行编程,具备解决实际问题的能力,如设计简单的职工管理系统。

3.情感态度价值观目标:培养学生对计算机编程的兴趣,提高学生自主学习、合作探究的能力,培养学生的创新精神和实践能力。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等。

具体安排如下:1.第一章:C语言概述,介绍C语言的发展历程、特点及基本语法。

2.第二章:数据类型和运算符,学习整型、浮点型、字符型数据以及各类运算符的使用。

3.第三章:控制结构,学习顺序结构、分支结构、循环结构等。

4.第四章:函数,学习函数的定义、声明、调用以及函数指针等。

5.第五章:数组和字符串,学习一维、多维数组的操作以及字符串的基本操作。

6.第六章:指针,学习指针的概念、运算以及指针在函数中的应用。

7.第七章:结构体和联合体,学习结构体、联合体的定义和使用。

8.第八章:文件操作,学习文件的基本操作,如打开、读写、关闭等。

9.第九章:职工管理系统的设计与实现,运用所学知识设计一个简单的职工管理系统。

三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法相结合,以激发学生的学习兴趣和主动性。

1.讲授法:通过讲解C语言的基本概念、语法和编程技巧,使学生掌握知识要点。

2.案例分析法:通过分析实际案例,使学生学会将所学知识应用于解决实际问题。

3.实验法:安排实验课,让学生亲自动手编写程序,巩固所学知识,提高编程能力。

四、教学资源1.教材:《C程序设计语言》(K&R)或《C语言 Primer》(第五版)。

2.参考书:《C语言编程思想》、《C语言深度探索》等。

3.多媒体资料:教学PPT、视频教程等。

c语言课程设计职工管理系统

c语言课程设计职工管理系统

c语言课程设计职工管理系统一、课程目标知识目标:1. 掌握C语言基础语法,包括变量声明、数据类型、运算符、控制语句等;2. 学会使用数组、结构体等数据结构,并能应用于实际问题;3. 理解函数的定义与调用,掌握模块化编程思想;4. 了解文件操作的基本方法,实现对数据的存储与读取。

技能目标:1. 能够运用C语言编写简单的职工管理系统,实现职工信息的增加、删除、修改和查询功能;2. 培养学生的逻辑思维能力,使其能够分析问题、设计算法并编写程序解决问题;3. 提高学生的编程实践能力,熟练使用C语言开发工具进行程序设计与调试。

情感态度价值观目标:1. 培养学生对待编程的兴趣和热情,激发他们主动探索新技术、新方法的积极性;2. 培养学生的团队合作精神,学会与他人共同分析问题、解决问题;3. 增强学生的自信心,使他们相信自己具备解决实际问题的能力;4. 培养学生的责任心,让他们明白编程在现实生活中的应用价值,为我国软件产业发展贡献自己的力量。

课程性质:本课程为C语言程序设计课程的实践环节,旨在通过实际项目开发,让学生将所学理论知识与实际应用相结合。

学生特点:学生已具备一定的C语言基础,具有一定的编程能力,但实践经验不足,需要通过课程设计提高自己的实际操作能力。

教学要求:注重理论与实践相结合,以项目为导向,引导学生主动探索、积极实践,培养其编程能力和解决问题的能力。

在教学过程中,将课程目标分解为具体的学习成果,以便于教学设计和评估。

二、教学内容1. C语言基础知识复习:变量、数据类型、运算符、控制语句(包括分支和循环)、函数定义与调用;相关教材章节:第一章至第四章。

2. 数据结构应用:数组、结构体;相关教材章节:第五章、第六章。

3. 模块化编程:函数封装、模块间通信;相关教材章节:第七章。

4. 文件操作:文件打开、读写、关闭;相关教材章节:第八章。

5. 职工管理系统功能实现:a. 职工信息增加、删除、修改和查询;b. 系统界面设计与交互;c. 数据存储与读取。

员工管理系统课程设计c语言

员工管理系统课程设计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语言基本数据类型和变量,为后续学习打下基础;- 接着两节课学习结构体的定义和使用,为员工信息管理提供数据结构支持;- 紧接着两节课学习文件操作,为数据持久化存储奠定基础;- 然后两节课进行员工管理系统功能设计,明确项目需求;- 最后三节课编程实现员工管理系统,并进行项目展示和总结。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、课程设计目的通过本课程设计,强化上机动手能力,使学生在理论和实践的基础上进一步巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法。

学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。

为后续各门计算机课程的学习打下坚实基础。

为毕业设计和以后工作打下必要基础。

二、课程设计内容针对某企业的员工,对其信息进行系统的管理。

三、需求分析对所开发系统功能、性能的描述,想要实现的目标。

此系统可对该厂员工进行信息的录入,修改,删除,添加,查询,排序,统计,打印等功能。

用户可通过提示选择进入某一功能界面,然后进行对员工的信息管理。

每一功能模块都充分为用户考虑,编排详细。

使用户可以方便快捷的了解员工信息,及时有效的对员工进行信息的管理。

四、概要设计1.系统结构图(功能模块图)对系统进行分析,给出系统结构图;分析:此系统,为方便客户输入,以及使程序清晰化,因而本人采用模块法,将每一功能模块化,使程序中各函数间调用更加明了。

以下为系统模块图。

2.功能模块说明对各个模块进行功能的描述。

录入模块:输入该厂现有员工信息并保存与文件中,方便日后进行排序,更新,统计,打印等操作。

输出模块:将所有员工信息,或所需员工信息输出于屏幕上,用于打印或查询员工信息。

更新模块:此模块又分为删除,添加,修改三个模块。

删除模块:对已退休或离开该厂的员工进行删除操作。

添加模块:添加新入厂的员工信息并保存起来。

修改模块:找到该员工并,选择所要修改的选项。

排序模块:本程序只对员工年龄进行从小到大排序。

查询模块:此模块分为按姓名,年龄,工作查询。

姓名查询模块:输入要查找的姓名,找到就输出其信息。

找不到则输出无此人。

年龄查询模块:输入要查找的年龄,找到就输出其信息。

找不到则输出无此人。

工作查询模块:输入要查找的工作,找到就输出其信息。

找不到则输出无此人。

统计模块:此模块分为,统计年龄,性别和工作。

统计年龄:输入要统计的年龄,查找并输出,若无此年龄则输出暂无此年龄员工。

统计性别:输入要统计的性别,查找并输出,若无此性别则输出暂无此性别员工。

统计工作:输入要统计的工作,查找并输出,若无此工作则输出暂无此工作员工。

保存模块:将现有信息保存于文件中,以防丢失。

六、调试情况,设计技巧及体会1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。

自我评价:本人自我觉得此系统还不错,程序简洁明了,功能齐全,而且充分从用户的角度进行编排,易于执行。

经本人多次调试终于出现0个错误与警告,而且从未有过死循环,用户一旦输错,立即会有提示,此程序相当的健壮。

因本人定义了全局变量,使操作更加简单易行,使用了结构体数组,避开链表那样的复杂操作。

但不足之处便是没有链表那样节省内存。

如有机会下次可能会用链表。

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,worker[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,worke r[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].addre ss,worker[i].phone,worker[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,worker[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.ye ar,&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].addre ss,worker[i].phone,worker[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].addre ss,worker[i].phone,worker[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();}/*添加模块*/void add(){ 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添加成功!是否继续输入(y/n)\n");getchar(); /*接收回车*/ch=getchar();if(ch=='y'){ 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,worker[i].in_time.year,worker[i].in_time.mouth,worker[i]. in_time.day);getchar(); /*接收回车*/ch=getchar();if(ch=='y'){ 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(){ 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: 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++)if(strcmp(worker[i].name,namekey)==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].addre ss,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 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].addre ss,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 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].addre ss,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 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++)for(j=i+1;j<n;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].addre ss,worker[i].phone,worker[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].addre ss,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 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].addre ss,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 count_sex(){ int i,j; char sexkey[10];j=0;clrscr();printf("输入要统计的员工性别\n");scanf("%s",sexkey);for(i=0;i<n;i++)if(strcmp(worker[i].sex,sexkey)==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].addre ss,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 count(){ 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\n");printf(" 请选择(0-3):\n");scanf("%d",&i);switch(i){ case 1: count_age(); break;case 2: count_job(); break;case 3: count_sex(); break;case 0: break;}}while(i!=0);}/*主函数*/main(){ int choice;read_message();do{ clrscr();printf("\n\n*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*\n");printf("#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#\n");printf(" * *\n");printf(" #----------------欢迎进入王氏企业员工管理系统-----------------#\n");printf(" * *\n");printf(" #----------------------按1,录入员工信息----------------------#\n");printf(" * *\n");printf(" #----------------------按2,更新员工信息----------------------#\n");printf(" * *\n");printf(" #----------------------按3,查询员工信息----------------------#\n");printf(" * *\n");printf(" #----------------------按4,排列员工信息----------------------#\n");printf(" * *\n");printf(" #----------------------按5,统计员工信息----------------------#\n");printf(" * *\n");printf(" #----------------------按6,输出员工信息----------------------#\n");printf(" * *\n");printf(" #-----------------------按0,退出系统-------------------------#\n");printf(" * *\n");printf("#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#\n");scanf("%d",&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;}}while(choice!=0);save();printf("现有员工数:%d\n",n);printf("\n以上信息已保存!文件名为:%s\n",filename);}。

相关文档
最新文档