员工管理系统C语言系列

合集下载

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

员工管理系统c语言源代码

员工管理系统c语言源代码

#include〈string.h>#include〈stdio.h〉#define N 10000 /*员工的最大数*/typedef struct wage{float wage1; /*员工的基本工资*/float Bonus;/*员工的奖金*/float tax;/*员工的税金*/float S_fee;/*员工的水费*/float D_fee; /*员工的电费*/float T_fee;/*员工的有线电视费*/float Q_fee; /*员工的清洁费*/float S_wage;/*员工的实发工资*/}WAGE;typedef struct worker{char name[10]; /*员工的姓名*/char ID[10];/*员工的工号*/int ID_P;/*员工的职务代号1-—-—高级工程师2————中级工程师3—--—初级工程师*/char ID_Wage[10]; /*员工的工资卡号*/char depart[10]; /*员工的部门*/int age;/*员工的年龄*/char sex;/*员工的性别*/char m_phone[10];/*员工的手机*/char H_phone[10]; /*员工的住宅电话*/WAGE salary;}WORK;WORK wo[N];int n;/*员工的总数*/void menu();/*员工管理操作主菜单函数声明*/void menu1();/*员工管理操作子菜单函数声明*//********************************************************Author : GTCopyRight :tgao@sohu。

comfunction name :saveComments :保存文件函数input : 无output : 无CreatedDate :2007/06/01*********************************************************/save()/*保存函数,保存n个记录*/{int w=1;FILE *fp;int i;system("cls" );if((fp=fopen("work。

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

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

集成测试
集成测试的定义:将各个模块组合起来进行测试,验证模块间的接口和交互是否正确 集成测试的目的:发现模块间的接口和交互问题,保证系统的稳定性和可靠性 集成测试的方法:自顶向下、自底向上、混合策略等 集成测试的步骤:模块划分、模块集成、集成测试、回归测试等
系统调试与优化
优化方法:优化算法、数据 结构、代码结构等
据库进行数据 存储和管理
接口:使用 RESTful API 进行前后端数
据交互
安全:使用 HTTPS进行数 据传输加密, 使用身份验证 和授权机制进 行用户身份验 证和权限控制
性能优化:使 用缓存、异步 处理等技术进
行性能优化
系统需求分析
用户需求
员工信息管理:包括员工 基本信息、职位、薪资等
员工考勤管理:记录员工 上下班时间、请假、加班 等信息
系统部署与维护
系统部署方案
硬件需求:服务器、网络设备、存储设备等 软件需求:操作系统、数据库管理系统、应用服务器等 部署步骤:安装操作系统、安装数据库管理系统、安装应用服务器、部署应用系统等 维护方案:定期备份数据、定期检查系统运行情况、定期更新系统软件等
系统运行环境配置
操作系统:Windows、Linux、Mac OS等
技术需求
编程语言:C语言
数据库:SQL Server或MySQL
用户界面:Windows Forms或Web Forms
功能模块:员工信息管理、考勤管理、 薪资管理等
性能要求:响应速度快,数据安全可靠
兼容性:支持Windows操作系统,兼 容主流浏览器
系统设计
数据结构设计
数据类型:包括职工信息、 部门信息、职位信息等
员工绩效管理:记录员工 工作表现、绩效考核等信 息

自己用C语言做的职工信息管理系统

自己用C语言做的职工信息管理系统

这是主函数部分是个头文件#include <string.h>#include <malloc.h>#include <stdlib.h>#include <stdio.h>#define ALLMAX 100#include "zhigong.h"int main(){char key[100]="xxyyzz";char s[100];int count=0;while (true){if (count>2) return(0);printf("请输入登录口令:\n");gets(s)if(!strcmp(key,s)){printf("你是合法用户!\n");break;}else{printf("你是非法用户!\n");count++;}}DataType x;SLNode *head;int i,n;FILE *fp;ListInitiate(&head);printf("请输入职工人数n:\n");scanf("%d",&n);printf("请输入职工信息:姓名、性别、出生年、工作年、学历、职务、住址、电话\n"); for(i=0;i<n;i++){scanf("%s %s %d %d %s %s %s %d",,&x.sex,&x.chusheng,&x.gongzuo,x.xueli,x.zhiwu,x .zhuzhi,&x.dianhua);head=ListInsert(head,x);}if((fp=fopen("职工名单.txt","w"))==NULL){printf("无法打开‘职工名单.txt’!\n");exit(0);}put(head,fp);if(fclose(fp)){printf("无法关闭‘职工名单.txt’!\n"); exit(0);}printf("0.结束系统\n1.新增一名职工\n2.删除一名职工\n3.查询职工信息\n4.修改职工信息\n5.对职工信息进行排序\n");for(;;){scanf("%d",&i);if(i==0)break;if(i==1){printf("请输入职工信息:姓名、性别、出生年、工作年、学历、职务、住址、电话\n");scanf("%s %s %d %d %s %s %s %d",,&x.sex,&x.chusheng,&x.gongzuo,x.xueli,x.zhiwu,x .zhuzhi,&x.dianhua);head=ListInsert(head,x);printf("新增成功!请继续操作!\n");put(head,fp);}if(i==2){ListDelete(head);if((fp=fopen("职工名单.txt","w"))==NULL){printf("无法打开‘职工名单.txt’!\n");exit(0);}put(head,fp);if(fclose(fp)){printf("无法关闭‘职工名单.txt’!\n"); exit(0);}}if(i==3)Listfind(*head);if(i==4){Listxiugai(head);if((fp=fopen("职工名单.txt","w"))==NULL){printf("无法打开‘职工名单.txt’!\n");exit(0);}put(head,fp);if(fclose(fp)){printf("无法关闭‘职工名单.txt’!\n"); exit(0);}}if(i==5){SLNode *p=head;Listpaixu(p);}if(i!=0 && i!=1 && i!=2 && i!=3 && i!=4 && i!=5)printf("输入出错!请再次输入!\n");}}还要个头文件zhigong.h这个要另外写成个头文件typedef struct Node{int chusheng,gongzuo,dianhua;charsex,name[ALLMAX],xueli[ALLMAX],zh iwu[ALLMAX],zhuzhi[ALLMAX]; struct Node *next;}SLNode;typedef struct{int chusheng,gongzuo,dianhua;charname[ALLMAX],sex,xueli[ALLMAX],zhiwu[ALLMAX],zhuzhi[ALLMAX];}DataType;void ListInitiate(SLNode **head){if((*head=(SLNode*)malloc(sizeof(SLNode)))==NULL)exit(1);(*head)->next=NULL;}SLNode *ListInsert(SLNode *head,DataType x){SLNode *p,*q,*s;p=head->next;if((q=(SLNode*)malloc(sizeof(SLNode)))==NULL)exit(1);q->chusheng=x.chusheng;q->gongzuo=x.gongzuo;q->dianhua=x.dianhua;strcpy(q->name,);q->sex=x.sex; strcpy(q->xueli,x.xueli);strcpy(q->zhiwu,x.zhiwu);strcpy(q->zhuzhi,x.zhuzhi);if(head->next==NULL){head->next=q;head->next->next=NULL;}else{for(;p;p=p->next){if(p->next!=NULL){if(strcmp(p->name,)<0&&strcmp(p ->next->name,)>0){s=p->next;p->next=q;q->next=s;break;}}elseif(strcmp(p->name,)<0&&p->next ==NULL){p->next=q;q->next=NULL;break;}if(strcmp(p->name,)>0){s=head->next;head->next=q;q->next=s;break;}}}return head;}void ListDelete(SLNode *head){SLNode *p,*s;char x[20];s=head;p=head->next;if(head->next==NULL){printf("名单中无职工信息,无须删除!\n");return;}printf("请输入要删除职工的姓名:\n"); scanf("%s",x);for(p;p;p=p->next){if(strcmp(p->name,x)==0){s->next=p->next;free(p);printf("删除成功!请继续操作!\n");break;}s=p;}if(p==NULL){printf("名单中无职工信息,无须删除!\n");}}void Listxiugai(SLNode *head){DataType x;SLNode *p;p=head->next;if(p==NULL){printf("职工名单无职工信息,无须修改!\n");return;}printf("请输入要修改的职工姓名:\n"); scanf("%s",);printf("依次写入该职工的信息:\n"); for(;p;p=p->next){if(strcmp(,p->name)==0){ scanf("%s %c %d %d %s %s %s %d",p-> name,&p->sex,&p->chusheng,&p->gongz uo,p->xueli,p->zhiwu,p->zhuzhi,&p->dian hua);break;}}if(p==NULL)printf("此职工不存在,无法修改其信息!\n");printf("修改成功!请继续操作!\n"); }void put(SLNode *head,FILE *fp){SLNode *p;if((fp=fopen("职工名单.txt","w"))==NULL){printf("无法打开‘职工名单.txt’!\n"); exit(0);}for(p=head->next;p;p=p->next){fprintf(fp,"%s %c %d %d %s %s %s %d\n ",p->name,p->sex,p->chusheng,p->gongzu o,p->xueli,p->zhiwu,p->zhuzhi,p->dianhu a);}if(fclose(fp)){printf("无法关闭‘职工名单.txt’!\n"); exit(0);}}void Listfind(SLNode head){int i;SLNode *p;DataType x;if(head.next==NULL){printf("名单中无职工信息,无法查询!\n");return;}printf("0.退出查询系统,回到主菜单\n1.对姓名进行查询\n2.对出生年月进行查询\n3.对工作年月进行查询\n4.对学历进行查询\n5.对职务进行查询\n6.对住址进行查询\n7.对电话号码进行查询\n");for(;;){scanf("%d",&i);if(i==0)break;if(i==1){p=head.next;printf("请输入姓名:");scanf("%s",);i=0;for(p;p;p=p->next){if(strcmp(p->name,)==0){++i;printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p ->xueli,p->zhiwu,p->zhuzhi,p->dianhua);}}if(i==0)printf("职工名单中不存在此人!\n");else printf("查询成功!请继续操作!\n");}if(i==2){p=head.next;printf("请输入出生年月:");scanf("%d",&x.chusheng);i=0;for(p;p;p=p->next){if(p->chusheng==x.chusheng){++i;printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p ->xueli,p->zhiwu,p->zhuzhi,p->dianhua);}}if(i==0)printf("职工名单中没有这个时间出生的!\n");else printf("查询成功!请继续操作!\n");}if(i==3){p=head.next;printf("请输入工作年月:");scanf("%d",&x.gongzuo);i=0;for(p;p;p=p->next){if(p->gongzuo==x.gongzuo){++i;printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p ->xueli,p->zhiwu,p->zhuzhi,p->dianhua);}}if(i==0)printf("职工名单中没有这个时间工作的!\n");else printf("查询成功!请继续操作!\n");}if(i==4){p=head.next;printf("请输入学历:");scanf("%s",x.xueli);i=0;for(p;p;p=p->next){if(strcmp(p->xueli,x.xueli)==0){++i;printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p ->xueli,p->zhiwu,p->zhuzhi,p->dianhua);}}if(i==0)printf("职工名单中没有这种学历的!\n");else printf("查询成功!请继续操作!\n");}if(i==5){p=head.next;printf("请输入职务:");scanf("%s",x.zhiwu);i=0;for(p;p;p=p->next){if(strcmp(p->zhiwu,x.zhiwu)==0){++i;printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p ->xueli,p->zhiwu,p->zhuzhi,p->dianhua);}}if(i==0)printf("职工名单中没有这种职务的!\n");else printf("查询成功!请继续操作!\n");}if(i==6){p=head.next;printf("请输入住址:");scanf("%s",x.zhuzhi);i=0;for(p;p;p=p->next){if(strcmp(p->zhuzhi,x.zhuzhi)==0){++i;printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p->xueli,p->zhiwu,p->zhuzhi,p->dianhua);}}if(i==0)printf("职工名单中没有住这的!\n");else printf("查询成功!请继续操作!\n");}if(i==7){p=head.next;printf("请输入电话:");scanf("%d",&x.dianhua);i=0;for(p;p;p=p->next){if(p->dianhua==x.dianhua){++i;printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p ->xueli,p->zhiwu,p->zhuzhi,p->dianhua);}}if(i==0)printf("职工名单中没人用这个号码!\n");else printf("查询成功!请继续操作!\n");}if(i!=0 && i!=1 && i!=2 && i!=3 && i!=4 && i!=5 && i!=6 && i!=7)printf("输入出错!请再次输入!\n"); }}void print(SLNode *head){for(SLNode *p=head->next;p;p=p->next) printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p ->xueli,p->zhiwu,p->zhuzhi,p->dianhua); }void Listpaixu(SLNode *head){int i,n=0,m,flag=1;SLNode *p,*q,*s;if(head->next==NULL){printf("名单中无职工信息,无法排序!\n");return;}printf("0.退出排序系统,回到主菜单\n1.对性别进行排序\n2.对出生年月进行排序\n3.对工作年月进行排序\n");for(;;){scanf("%d",&i);if(i==0)break;if(i==1){n=0,m,flag=1;for(p=head;NULL!=p;p=p->next)n++;for(m=1;flag&&m<=n;n++){flag=0;for(q=head->next,p=head,s=p;q;s=p,p=q,q =q->next){if(p->sex>q->sex){if(head==p){head->next=q->next;head=q;q->next=p;q=head->next;p=head;}else{p->next=q->next;q->next=p;s->next=q;p=q;q=p->next;}flag=1;}}}printf("排好序的信息如下:\n");print(head);}if(i==2){n=0,m,flag=1;for(p=head;NULL!=p;p=p->next)n++;for(m=1;flag&&m<=n;n++){flag=0;for(q=head->next,p=head,s=p;q;s=p,p=q,q =q->next){if(p->chusheng>q->chusheng){if(head==p){head->next=q->next;head=q;q->next=p;q=head->next;p=head;}else{p->next=q->next;q->next=p;s->next=q;p=q;q=p->next;}flag=1;}}}printf("排好序的信息如下:\n"); print(head);}if(i==3){n=0,m,flag=1;for(p=head;NULL!=p;p=p->next)n++;for(m=1;flag&&m<=n;n++){flag=0;for(q=head->next,p=head,s=p;q;s=p,p=q,q =q->next){if(p->gongzuo>q->gongzuo){if(head==p){head->next=q->next;head=q;q->next=p;q=head->next;p=head;}else{p->next=q->next;q->next=p;s->next=q;p=q;q=p->next;}flag=1;}}}printf("排好序的信息如下:\n");print(head);}if(i!=0&&i!=1&&i!=2&&i!=3)printf("输入出错!请再次输入!\n"); }}。

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

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

职工管理系统课程设计报告c语言一、引言职工管理系统是一个针对公司或组织内部职工信息管理的软件系统,主要用于记录职工的基本信息、工作情况、考勤记录等,方便管理人员进行数据统计和分析。

本文将介绍一个基于C语言的职工管理系统的设计与实现。

二、系统设计1. 系统功能职工管理系统主要包括以下功能模块:•添加新职工信息•修改职工信息•删除职工信息•查询职工信息•统计各部门职工人数•统计各职工职务人数2. 数据结构为了有效地存储和管理职工信息,系统采用了以下数据结构:•职工信息结构体•部门信息结构体3. 主要算法系统主要采用以下算法实现各功能模块:•添加职工信息:通过链表添加新结点•修改职工信息:更新结点中的字段信息•删除职工信息:在链表中删除指定结点•查询职工信息:根据输入的关键词在链表中查找•统计职工人数:遍历链表统计人数•统计职务人数:遍历链表统计各职务人数三、系统实现系统采用C语言编写,通过文件读写实现数据的持久化存储。

程序运行时,首先读取保存在文件中的职工信息并加载到内存中,用户可以通过交互式界面选择相应功能进行操作。

操作完成后,系统会将数据写回文件,保证数据的持久性。

四、系统优化与改进为了提高系统的性能和用户体验,可以考虑以下改进方案:•引入数据库存储,提高数据读写效率•添加更多的查询条件,提供更灵活的查询功能•增加权限管理模块,限制不同用户的操作权限•完善异常处理机制,提高系统的稳定性和可靠性五、总结通过本次课程设计,我们深入学习了C语言的应用,掌握了职工管理系统的设计与实现方法。

未来可以基于此系统进行更多功能的扩展和优化,提高系统的实用性和适用性。

以上是本文对职工管理系统课程设计报告的详细介绍,希望能对读者有所帮助。

员工信息管理系统c语言

员工信息管理系统c语言

员工信息管理系统c语言员工信息管理系统是一个使用C语言编写的程序,旨在帮助企业或组织管理员工的相关信息。

这个系统可以有效地记录和管理员工的基本信息、职位、工资、考勤等。

它能够提供一种便捷、高效的方式来管理员工信息,提高工作效率和准确性。

以下是一个简单的员工信息管理系统的参考代码,以展示一些基本功能:```c#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_EMPLOYEES 100struct Employee {char name[50];int id;char position[50];float salary;};struct Employee employees[MAX_EMPLOYEES];int numEmployees = 0;void addEmployee() {if (numEmployees >= MAX_EMPLOYEES) {printf("无法添加新员工,员工数量已达上限。

\n");return;}struct Employee newEmployee;printf("请输入员工姓名: ");scanf("%s", );printf("请输入员工编号: ");scanf("%d", &newEmployee.id);printf("请输入员工职位: ");scanf("%s", newEmployee.position);printf("请输入员工工资: ");scanf("%f", &newEmployee.salary);employees[numEmployees++] = newEmployee;printf("员工添加成功!\n");}void searchEmployee() {char name[50];printf("请输入要查询的员工姓名: ");scanf("%s", name);int found = 0;for (int i = 0; i < numEmployees; i++) {if (strcmp(employees[i].name, name) == 0) {printf("员工姓名: %s\n", employees[i].name); printf("员工编号: %d\n", employees[i].id);printf("员工职位: %s\n", employees[i].position); printf("员工工资: %.2f\n", employees[i].salary);found = 1;break;}}if (!found) {printf("未找到该员工!\n");}}void printAllEmployees() {if (numEmployees == 0) {printf("没有员工信息可打印。

职工管理系统c语言

职工管理系统c语言

职工管理系统c语言职工管理系统C语言是一种常见的计算机编程语言,它可以用于开发各种类型的软件应用程序。

在现代企业中,职工管理系统C语言已经成为了必备的工具之一,它可以帮助企业实现更高效的管理和运营。

职工管理系统C语言主要包含以下几个方面:1. 员工基本信息管理职工管理系统C语言可以帮助企业管理员工的基本信息,包括姓名、性别、年龄、职位、工作经验等等。

这些信息可以用于评估员工的绩效和能力,以便更好地分配工作和提高生产效率。

2. 工资管理职工管理系统C语言还可以帮助企业管理员工的工资,包括基本工资、绩效奖金、福利待遇等等。

这些信息可以用于计算员工的总收入和税前工资,以便更好地控制企业的成本和提高利润率。

3. 员工考勤管理职工管理系统C语言还可以帮助企业管理员工的考勤信息,包括上班时间、下班时间、加班时间、请假时间等等。

这些信息可以用于计算员工的出勤率和工作效率,以便更好地安排工作和提高生产效率。

4. 员工培训管理职工管理系统C语言还可以帮助企业管理员工的培训信息,包括培训时间、培训内容、培训费用等等。

这些信息可以用于评估员工的培训成果和能力,以便更好地提高员工的技能和能力水平。

5. 员工评估管理职工管理系统C语言还可以帮助企业管理员工的评估信息,包括绩效评估、能力评估、晋升评估等等。

这些信息可以用于评估员工的绩效和能力,以便更好地分配工作和提高生产效率。

职工管理系统C语言的开发需要遵循以下步骤:1. 需求分析在开发职工管理系统C语言之前,首先需要进行需求分析,明确系统的功能和特点,以便更好地满足企业的需求和要求。

2. 设计阶段在需求分析之后,需要进行设计阶段,包括系统架构设计、数据库设计、界面设计等等。

这些设计可以帮助开发人员更好地把握系统的整体框架和细节实现。

3. 编码实现在设计阶段之后,需要进行编码实现,即根据设计文档进行具体的编码工作,以实现系统的各项功能和特点。

4. 测试阶段在编码实现之后,需要进行测试阶段,即对系统进行全面的测试和调试工作,以确保系统的稳定性和可靠性。

数据结构与算法(C语言篇)第九章 企业员工管理系统

数据结构与算法(C语言篇)第九章 企业员工管理系统
初心至善 匠心育人
9.1 项目概述
9.1.4 项目技术拓展
(1)普通文件(Regular File)。最常见的文件类型,这种文件的数据形式可以是文本或二进制数据。 (2)目录文件(Directory File)。这种文件包含其他类型文件的名字以及指向与这些文件有关的 信息的 指针。对一个目录文件具有可读权限的任一进程都可以读该目录文件的内容,但只有内核具 有写 目录文件的权限。 (3)字符设备文件(Character Special File)。这种文件被视为对字符设备的一种抽象,它代表的 是应用 程序对硬件设备的访问接口,Linux 应用程序通过对该文件进行操作来实现对设备的访问。 (4)块设备文件(Block Special File)。这种文件类似于字符设备文件,只是这种文件用于磁盘设 备。 Linux 操作系统中的所有设备或者抽象为字符设备文件,或者抽象为块设备文件。 (5)管道(Pipe)文件。这种文件用于进程间的通信,有时也将其称为命名管道。 (6)套接字(Socket)。这种文件用于进程间的网络通信。套接字也可用于在一台宿主机上的进 程之间 的本地通信。 (7)符号连接(Symbolic Link)。这种文件指向另一个文件。 本项目选择普通文件作为操作对象,并通 过一些库函数完成对文件的操作。
本项目案例使用两个文件完成信息的处 理。第一个文件用来保存用户的登录信 息,即用户登录 时需要访问该文件。如 果文件中的信息与输入的登录信息匹配, 则登录成功;如果不匹配,则登录 失败。 第二个文件用来保存用户的详细信息, 用来实现查询、删除、修改等操作,如 图 9.5 所示。 接下来对项目案例中需要实现的功能进 行具体分析。
该函数的参数有两个,一个为文 件名,另一个为打开文件的方式。 打开文件的方式共有 6 种, 且每 一种都有特定的权限。例如, mode 参数传入 r 表示只读,文件 被打开后,程序只能对该文件进 行读操作,不能写入。函数返回 值为流指针,通过对流指针进行 操作,可实现对文件中数据的读 写。

C语言职工管理系统设计

C语言职工管理系统设计

C语言职工管理系统设计这篇文章主要为大家分享了一份C语言职工管理系统设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下:源码:#include<stdio.h>#include<stdlib.h>#include <string.h>struct Worker{int id;//工号char name[16];//姓名char sex[8];//性别int age;//年龄char edu_exp[32];//学历int wage;//工资char adress[32];//地址char phong[16];//电话Worker* next;};//创建表头Worker m_head = { 0 };//用户输入信息int user_input(Worker* w){printf("ID:");scanf("%d", &w->id);getchar();//吸收回车字符printf("name:");gets_s(w->name);printf("sex:");gets_s(w->sex);printf("age:");scanf("%d", &w->age);getchar();//吸收回车字符printf("edu_exp:");gets_s(w->edu_exp);printf("wage:");scanf("%d", &w->wage);getchar();//吸收回车字符printf("adress:");gets_s(w->adress);printf("phone:");gets_s(w->phong);return 0;}//添加对象void add(Worker* w){w->next = m_head.next;m_head.next = w;}//按插入对象int insert(Worker* w){Worker* cur = m_head.next; // 当前节点currentWorker* pre = &m_head; // 上一个节点previouswhile (cur){if (w->id < cur->id) // 找到这个位置break;pre = cur;cur = cur->next; // 找到最后一个对象}// 插入到pre节点的后面w->next = pre->next;pre->next = w;return 0;}//删除对象int remove(int id){Worker* cur = m_head.next;//当前节点为第一个对象Worker* pre = &m_head;//当前节点的前一个节点,为头节点,指向第一个对象while (cur){if (id == cur->id)//找到要删除的节点{pre->next = cur->next;free(cur);//删除该节点return 1;//成功删除返回1}pre = cur;cur = cur->next;}return 0;}//查找对象int find(int id){Worker* p = m_head.next;while (p){if (id == p->id){printf("ID:%d\nName:%s\nSex:%s\nAge:%d\nEdu-exp:%s\nWage:%d\nAdress:%s\nPhone:%s\n", p->id, p->name, p->sex, p->age, p->edu_exp, p->wage, p->adress, p->phong);return 1;//找到目标返回1}p = p->next;}return 0;}//遍历void show_all(){Worker* p = m_head.next;if (!p){printf("暂无员工信息!\n");return;}printf("工号姓名性别年龄学历工资住址电话\n");printf("----------------------------------------------------------------\n");while (p){printf("%d %s %s %d %s %d %s %s\n", p->id, p->name, p->sex, p->age, p->edu_exp,p->wage, p->adress, p->phong);p = p->next;}}//向文件存入数据int save()const char* filename = "F:\\data.txt"; FILE* fp = fopen(filename, "a");if (fp == NULL){printf("can not open the file...."); exit(0);}Worker* p = m_head.next;while (p){fprintf(fp, "\r");fprintf(fp, "%d ", p->id);fprintf(fp, "%s ", p->name);fprintf(fp, "%s ", p->sex);fprintf(fp, "%d ", p->age);fprintf(fp, "%s ", p->edu_exp); fprintf(fp, "%d ", p->wage);fprintf(fp, "%s ", p->adress);fprintf(fp, "%s ", p->phong);fprintf(fp, "\t\r\n");p = p->next;}fclose(fp);return 0;}//修改对象void rewrite(int id){Worker* p = m_head.next;while (p){if (id == p->id){user_input(p);}p = p->next;}//主菜单void List(){Worker* w = NULL;char key;while (1){do{system("cls");printf("*******************************************************\n"); printf("* 主菜单操作界面*\n");printf("* *\n");printf("* 1.录入职工信息*\n");printf("* 2.浏览职工信息*\n");printf("* 3.查询职工信息*\n");printf("* 4.删除职工信息*\n");printf("* 5.修改职工信息*\n");printf("* 6.使用说明*\n");printf("* 7.退出*\n");printf("* *\n");printf("*******************************************************\n"); key = getchar();} while (key != '1'&&key != '2'&&key != '3'&&key != '4'&&key != '5'&&key != '6'&&key != '7');switch (key){case '1':system("cls");while (1){Worker* w = (Worker*)malloc(sizeof(Worker));user_input(w);insert(w);if (getchar() == 'N'){break;}}save();free(w);break;case '2':system("cls");show_all();system("pause");break;case '3':system("cls");if (!m_head.next){printf("暂无员工信息!\n");system("pause");break;}while (1){int n;printf("---------------------------------\n");printf("请输入要查找的ID号:");scanf("%d", &n);if (!find(n)){printf("找不到ID号为%d 的职工信息...\n", n); }char ch = getchar();if (ch == 'N'){break;}}break;case '4':system("cls");if (!m_head.next){printf("暂无员工信息!\n");system("pause");break;}while (1){int n;printf("---------------------------------\n");printf("请输入要删除的ID号:");scanf("%d", &n);if (remove(n)){printf("成功删除ID号为%d的职工信息.\n", n);}elseprintf("无法删除ID号为%d的职工信息.\n", n);char ch = getchar();if (ch == 'N')//摁N退出{break;}}break;case '5':system("cls");//if (!m_head.next){printf("暂无员工信息!\n");system("pause");break;}while (1){int n;printf("请输入要修改的ID号:\n");scanf("%d", &n);printf("请修改:\n");rewrite(n);if (getchar() == 'N'){break;}}break;case '6':system("cls");printf("职工系统使用说明:摁相应数字进入相应的子菜单,若想退出则摁N\n开始无数据,需要先进行录入.\n");system("pause");break;case '7':system("cls");//return;break;}}}int main() {List(); return 0; }。

C语言案例员工管理系统

C语言案例员工管理系统
//职工出生年月 //职工学历 //职工职位 //职工工资
• 2,链表节点: • typedef struct node • { • struct wokers data; • struct node *next;
}Node;
1.3,程序结构
职工信息管理系统
从文 件载 入
保存 职工 信息
添加 职工 信息
1,结构体:
struct wokers
{ char num[10]; char name[15]; //职工号 //职工姓名
char sex[15];
char birthday[15]; char degree[10]; char position[10]; int salary; };
//职工性别
2.1
结束
开始 文件未结束 同意载入则继续否则退出 新建一个节点 清空链表 读入该节点内容 打开文件 附加到链表尾部
2.2 , 文 件 读 功 能 流 程
循环从文件读取记录
关闭文件
结束
开始 同意覆盖则继续否则退出 是否空链表 打开文件 未到链表尾则循环写入文件 关闭文件
2.2 , 文 件 写 功 能 流 程
按 职 位
按 薪 资 范 围
主 菜 单
, 功查 能询 流职 程工 信 息
结束
开始
3.1
链表非空
输入职工号 找到记录 显示该记录 用户确认
从链表删除该节点
结束
, 功删 能除 流职 程工 信 息
开始
4.1
链表非空
输入职工号 找到记录 显示该记录 用户确认
重新输入该节点数据
结束
, 功修 能改 流职 程工 信 息
5.1

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

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

C语言职工管理系统课程设计一、教学目标本课程的目标是使学生掌握C语言的基本语法,通过职工管理系统的案例,让学生能够运用C语言实现简单的数据结构和算法。

在知识目标方面,学生需要熟练掌握C语言的数据类型、运算符、控制结构、函数等基本概念。

在技能目标方面,学生需要具备使用C语言进行程序设计的能力,能够编写和调试C语言程序。

在情感态度价值观目标方面,学生应该培养对计算机科学的兴趣,树立编程自信心,同时培养良好的编程习惯和团队协作精神。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、算法和编程实践。

具体来说,将讲解C语言的数据类型、运算符、控制结构、函数等基本概念,并通过职工管理系统的案例,让学生掌握如何使用C语言实现数据结构和算法。

教学内容将按照教材的章节进行安排,每个章节都会有相应的课堂讲解和实践环节。

三、教学方法为了激发学生的学习兴趣和主动性,将采用多种教学方法进行教学。

包括讲授法、讨论法、案例分析法和实验法等。

在讲授法中,教师将讲解C语言的基本概念和语法;在讨论法中,学生将分组讨论编程问题和解决方案;在案例分析法中,学生将通过分析职工管理系统的案例,掌握C语言的应用;在实验法中,学生将在实验室进行编程实践,巩固所学知识。

四、教学资源为了支持教学内容和教学方法的实施,将选择和准备适当的教学资源。

教材将是《C语言程序设计》一书,为学生提供全面、系统的C语言知识。

参考书将包括一些经典的C语言编程指南,供学生深入学习。

多媒体资料将包括教学PPT、视频教程等,帮助学生更好地理解C语言的概念和语法。

实验设备将包括计算机和网络设施,为学生提供编程实践的环境。

五、教学评估本课程的评估方式将包括平时表现、作业和考试三个部分。

平时表现将占课程总评的30%,主要评估学生的课堂参与度、提问和回答问题的积极性等。

作业将占课程总评的30%,主要评估学生的编程能力和对知识的理解运用。

考试将占课程总评的40%,包括期中和期末两次考试,主要评估学生的知识掌握程度和编程能力。

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

HUNAN UNIVERSITY 程序设计训练报告2011级电气工程及其自动化三班成员学号张磊20110701318谭天翔20110701319杨昌烨20110701321时间:6月1号——6月30号C语言员工管理系统电气与信息工程学院目录1 软件开发平台........................................................................................... 错误!未定义书签。

2 软件功能说明 (2)2.1 功能分析说明图 (3)2.2 各项功能说明 (4)3 软件设计详细内容 (5)3.1 采用的主要数据结构类型 (5)3.2 主要函数流程图 (6)4 软件测试 (10)4.1 软件测试用例 (10)4.2 软件测试报告 (13)5 总结和致谢 (14)6 附录 (14)6.1 软件使用说明 (14)6.2 源码 (14)6.3 参考文献 (26)1.软件开发平台配置环境Windows XP/7 系统运行环境Windows XP/7 系统开发工具visual C++ 6.0程序语言 C 语言2.软件功能说明1.录入职工信息2.浏览职工职工信息3.查询职工信息4.删除职工信息5.添加职工信息6.修改职工信息2.1功能分析说明图开始2.2各项功能说明对以上各个功能做详细的文字说明1.录入职工信息:包括录入职工的性别,年龄,学历,工资,住址,电话。

2.用save函数将以上信息导入到文件夹里面。

并存在load的导入函数以进入到所创建的文件夹。

3.浏览职工职工信息:包括了对各个职工的以上录入的信息的浏览。

4.查询职工信息:可以以电话,职工号,学历等为媒介来搜寻职工的个人信息。

5.删除职工信息:以姓名为媒介导入,来删除以员工的个人信息,主要是将后面的信息前移一位。

6.添加职工信息:这个主要是重新编号,与录入信息相类似,7.修改员工信息:输入员工的姓名后,通过导入,浏览函数可以对员工的职工号,地址,工资,电话,年龄,性别等信息进行修改。

3.软件设计详细内容3.1采用的主要数据结构类型#include<stdio.h>//各个源文件#include<windows.h>#include<time.h>#include<string.h>#define N 100 //定义一个宏变量struct employee //定义一个结构体{int num;char name[10];char sex;int age;char xueli[30];int wage;char addr[30];long int tel;}em[100]; /*定义一个结构体*/3.2 主要函数流程图0.主函数main流程图1.void input() /*录入函数*/2. save(int m) /*保存文件函数*/3. load() /*导入函数*/4.display() /*浏览函数*/5. del() /*删除函数*/4.软件测试1.Main及其主函数input 函数2.浏览录入信息3查询职工信息4.删除职工信息5添加职工信息6.修改员工信息5.总结和致谢经过差不多10天的努力,终于完成了关于员工管理系统的编写,当然这是由于团队合作共同的成果,虽然我(张磊)主要负责编程,而他们两(杨昌烨,谭天翔)主要负责收集材料,但是没有他们的数据和材料,我是不可能这么快就编出程来。

还有本系统报告是根据邮箱里面的电自二班的戴艺凯同学的,模仿而作。

谢谢戴同学的模版。

6.附录6.1游戏使用说明运行环境是:visual C++6.2源码#include<stdio.h>#include<windows.h>#include<time.h>#include<string.h>#define N 100 //定义一个宏变量struct employee //定义一个结构体{int num;char name[10];char sex;int age;char xueli[30];int wage;char addr[30];long int tel;}em[100]; /*定义一个结构体*/void menu();void input();void save(int);void display();void del();void add();void search();void search_num();void search_xueli();void search_tel();void modify(); /*定义各函数*/void menu() /*菜单函数*/{printf(" ☆☆☆电气与信息工程学院☆☆☆\n");printf("\n");printf(" ∮电自3班∮姓名:张磊;谭天翔;杨昌烨\n");printf("##张磊(20110701318)##;**谭天翔(20110701319);**杨昌烨(20110701321)");printf("\n");printf(" ******************职工信息管理****************\n"); printf(" 1.录入职工信息");printf(" 2.浏览职工信息\n");printf(" 3.查询职工信息");printf(" 4.删除职工信息\n");printf(" 5.添加职工信息");printf(" 6.修改职工信息\n");printf(" 7.退出\n");printf(" ********************谢谢使用******************\n");printf("\n");printf("\n");}void main(){int n,flag;char a;menu(); /*调用菜单函数*/do{printf("请选择你需要操作的步骤(1--7):\n");scanf("%d",&n);if(n>=1&&n<=7){flag=1;break;}else{flag=0;printf("您输入有误,请重新选择!");}}while(flag==0);while(flag==1){switch(n){case 1:printf(" ◆◆◆输入职工信息◆◆◆\n");printf("\n");input();break;case 2:printf(" ◆◆◆浏览职工信息◆◆◆\n");printf("\n");display();break;case 3:printf(" ◆◆◆按职工号查询职工信息◆◆◆\n");printf("\n");search();break;case 4:printf(" ◆◆◆删除职工信息◆◆◆\n");printf("\n");del();break;case 5:printf(" ◆◆◆添加职工信息◆◆◆\n");printf("\n");add();break;case 6:printf(" ◆◆◆修改职工信息◆◆◆\n");printf("\n");modify();break;case 7:exit(0);break;default :break;}getchar();printf("\n");printf("是否继续进行(y or n):\n");scanf("%c",&a);if(a=='y'){flag=1;system("cls"); /*清屏*/menu(); /*调用菜单函数*/printf("请再次选择你需要操作的步骤(1--6):\n");scanf("%d",&n);printf("\n");}elseexit(0);}}void input() /*录入函数*/{int i,m;printf("请输入需要创建信息的职工人数(1--100):\n");scanf("%d",&m);for (i=0;i<m;i++){printf("职工号:");srand((int)time(0));em[i].num=rand()%10000+20120000; if(em[i].num!=em[i-1].num)printf("%8d ",em[i].num);printf("\n");printf("请输入姓名: ");scanf("%s",em[i].name);getchar();printf("请输入性别(f--女m--男): "); scanf("%c",&em[i].sex);printf("请输入年龄: ");scanf("%d",&em[i].age);printf("请输入学历: ");scanf("%s",em[i].xueli);printf("请输入工资: ");scanf("%d",&em[i].wage);printf("请输入住址: ");scanf("%s",em[i].addr);printf("请输入电话: ");scanf("%d",&em[i].tel);printf("\n");}printf("\n创建完毕!\n");save(m);}void save(int m) /*保存文件函数*/{int i;FILE*fp;if ((fp=fopen("employee_list","wb"))==NULL) /*创建文件并判断是否能打开*/{printf ("cannot open file\n");exit(0);}for (i=0;i<m;i++) /*将内存中职工的信息输出到磁盘文件中去*/if (fwrite(&em[i],sizeof(struct employee),1,fp)!=1)printf("file write error\n");fclose(fp);}int load() /*导入函数*/{FILE*fp;int i=0;if((fp=fopen("employee_list","rb"))==NULL) {printf ("cannot open file\n");exit(0);}else{do{fread(&em[i],sizeof(struct employee),1,fp);i++;}while(feof(fp)==0);}fclose(fp);return(i-1);}void display() /*浏览函数*/{int i;int m=load();printf("\n 职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");for(i=0;i<m;i++) /*m为输入部分的职工人数*/printf("\n %d\t%s\t%c\t%d\t%s\t%d\t%s\t%ld\n",em[i].num,em[i].nam e,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);}void del() /*删除函数*/{int m=load();int i,j,n,t,flag;char name[20];printf("\n 原来的职工信息:\n");display(); /* 调用浏览函数*/printf("\n");printf("请输入要删除的职工的姓名:\n");scanf("%s",name);for(flag=1,i=0;flag&&i<m;i++){if(strcmp(em[i].name,name)==0){printf("\n已找到此人,原始记录为:\n");printf("\n职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");printf("\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%ld\n",em[i].num,em[i].name, em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);printf("\n确实要删除此人信息请按1,不删除请按0\n");scanf("%d",&n);if(n==1) /*如果删除,则其他的信息都往上移一行*/ {for(j=i;j<m-1;j++){strcpy(em[j].name,em[j+1].name);em[j].num=em[j+1].num;em[j].sex=em[j+1].sex;em[j].age=em[j+1].age;strcpy(em[j].xueli,em[j+1].xueli);em[j].wage=em[j+1].wage;strcpy(em[j].addr,em[j+1].addr);em[j].tel=em[j+1].tel;}flag=0;}}}if(!flag)m=m-1;elseprintf("\n对不起,查无此人!\n");printf("\n 浏览删除后的所有职工信息:\n");save(m); /*调用保存函数*/display(); /*调用浏览函数*/printf("\n继续删除请按1,不再删除请按0\n"); scanf("%d",&t);switch(t){case 1:del();break;case 0:break;default :break;}}void add()/*添加函数*/{FILE*fp;int n;int count=0;int i;int m=load();printf("\n 原来的职工信息:\n");display(); /* 调用浏览函数*/printf("\n");fp=fopen("emploee_list","a");printf("请输入想增加的职工数:\n"); scanf("%d",&n);for (i=m;i<(m+n);i++){printf("\n 请输入新增加职工的信息:\n"); printf("请输入职工号: ");srand((int)time(0));em[i].num=rand()%10000+20120000;if(em[i].num!=em[i-1].num)printf("%8d ",em[i].num);printf("\n");printf("请输入姓名: ");scanf("%s",em[i].name);getchar();printf("请输入性别(f--女m--男): ");scanf("%c",&em[i].sex);printf("请输入年龄: ");scanf("%d",&em[i].age);printf("请输入学历: ");scanf("%s",em[i].xueli);printf("请输入工资: ");scanf("%d",&em[i].wage);printf("请输入住址: ");scanf("%s",em[i].addr);printf("请输入电话: ");scanf("%d",&em[i].tel);printf("\n");count=count+1;printf("已增加的人数:\n");printf("%d\n",count);}printf("\n添加完毕!\n");m=m+count;printf("\n浏览增加后的所有职工信息:\n"); printf("\n");save(m);display();fclose(fp);}void search()/*查询函数*/{int t,flag;do{printf("\n按职工号查询请按1 ; 按学历查询请按2 ; 按电话号码查询请按3,进入主函数按4\n");scanf("%d",&t);if(t>=1&&t<=4){flag=1;break;}else{flag=0;printf("您输入有误,请重新选择!");}}while(flag==0);while(flag==1){switch(t){case 1:printf("按职工号查询\n");search_num();break;case 2:printf("按学历查询\n");search_xueli();break;case 3:printf("按电话号码查询\n");search_tel();break;case 4:main();break;default:break;}}}void search_num(){int num;int i,t;int m=load();printf("请输入要查找的职工号(20121111---20129999):\n");scanf("%d",&num);for(i=0;i<m;i++)if(num==em[i].num){printf("\n已找到此人,其记录为:\n");printf("\n职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n"); printf("\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%ld\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);break;}if(i==m)printf("\n对不起,查无此人\n");printf("\n");printf("返回查询函数请按1,继续查询职工号请按2\n");scanf("%d",&t);switch(t){case 1:search();break;case 2: break;default:break;}}void search_xueli(){char xueli[30];int i,t;int m=load();printf("请输入要查找的学历:\n");scanf("%s",xueli);for(i=0;i<m;i++)if(strcmp(em[i].xueli,xueli)==0){printf("\n已找到,其记录为:\n");printf("\n职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");printf("\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%ld\n",em[i].num,em[i].name, em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);}if(i==m)printf("\n对不起,查无此人\n");printf("\n");printf("返回查询函数请按1,继续查询学历请按2\n");scanf("%d",&t);switch(t){case 1:search();break;case 2:break;default :break;}}void search_tel(){long int tel;int i, t;int m=load();printf("请输入要查找的电话号码:\n");scanf("%ld",&tel);for(i=0;i<m;i++)if(tel==em[i].tel){printf("\n已找到此人,其记录为:\n");printf("\n职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n"); printf("\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%ld\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);break;}if(i==m)printf("\n对不起,查无此人\n");printf("\n");printf("返回查询函数请按1,继续查询电话号码请按2\n");scanf("%d",&t);switch(t){case 1:search();break;case 2:break;default :break;}}void modify() /*修改函数*/{int num;char name[10];char sex;int age;char xueli[30];int wage;char addr[30];long int tel;int b,c,i,n,t,flag;int m=load(); /*导入文件内的信息*/printf("\n 原来的职工信息:\n");display(); /* 调用浏览函数*/printf("\n");printf("请输入要修改的职工的姓名:\n");scanf("%s",name);for(flag=1,i=0;flag&&i<m;i++){if(strcmp(em[i].name,name)==0){printf("\n已找到此人,原始记录为:\n");printf("\n职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");printf("\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%ld\n",em[i].num,em[i].name, em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);printf("\n确实要修改此人信息请按1 ; 不修改请按0\n");scanf("%d",&n);if(n==1){printf("\n需要进行修改的选项\n 1.职工号2.姓名3.性别4.年龄5.学历6.工资7.住址8.电话\n");printf("请输入你想修改的那一项序号:\n");scanf("%d",&c);if(c>8||c<1)printf("\n选择错误,请重新选择!\n");}flag=0;}}if(flag==1)printf("\n对不起,查无此人!\n");do{switch(c) /*因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人*/{case 1:printf("职工号改为: "); scanf("%d",&num);em[i-1].num=num; break;case 2:printf("姓名改为: ");scanf("%s",name);strcpy(em[i-1].name,name);break;case 3:printf("性别改为: ");getchar();scanf("%c",&sex);em[i-1].sex=sex;break;case 4:printf("年龄改为: ");scanf("%d",&age);em[i-1].age=age; break;case 5:printf("学历改为: ");scanf("%s",xueli);strcpy(em[i-1].xueli,xueli); break;case 6:printf("工资改为: ");scanf("%d",wage);break;case 7:printf("住址改为: ");scanf("%s",addr);strcpy(em[i-1].addr,addr);break;case 8:printf("电话改为: ");scanf("%ld",&tel);em[i-1].tel=tel;break;}printf("\n");printf("\n是否确定所修改的信息?\n 是请按1 ; 不,重新修改请按2: \n");scanf("%d",&b);}while(b==2);printf("\n浏览修改后的所有职工信息:\n");printf("\n");save(m);display();printf("\n继续修改请按1,不再修改请按0\n");scanf("%d",&t);switch(t){case 1:modify();break;case 0:break;default :break;}}6.3参考文献1.《The C programming Language》2. 《A Book on C:proramming in C》3.谭浩强的c系列书籍。

相关文档
最新文档