首页 VC++6.0环境下 简单的职工管理系统 课程设计

VC++6.0环境下 简单的职工管理系统 课程设计

举报
开通vip

VC++6.0环境下 简单的职工管理系统 课程设计VC++6.0环境下 简单的职工管理系统 简单的职工管理系统 一、实验目的 1 ()熟练掌握线性表基本操作及应用。 2 ()利用线性表实现简单的职工管理系统。 二、实验内容: 【问题描述】 对单位的职工进行管理,包括插入、删除、查找、排序等功能。 【基本要求】 职工对象包括姓名、性别、出生年月、工作年月、学历、职务、住址、电话等信息。 1 ()新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。2 ()删除一名职工:从职工管理文件中删除一名职工对象。3 ()查询:从职工管理文件中查询符合某些条件的职工。4...

VC++6.0环境下 简单的职工管理系统 课程设计
VC++6.0环境下 简单的职工管理系统 简单的职工管理系统 一、实验目的 1 ()熟练掌握线性表基本操作及应用。 2 ()利用线性表实现简单的职工管理系统。 二、实验内容: 【问题描述】 对单位的职工进行管理,包括插入、删除、查找、排序等功能。 【基本要求】 职工对象包括姓名、性别、出生年月、工作年月、学历、职务、住址、电话等信息。 1 ()新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。2 ()删除一名职工:从职工管理文件中删除一名职工对象。3 ()查询:从职工管理文件中查询符合某些条件的职工。4 ()修改:检索某个职工对象,对其某些属性进行修改。5 ()排序:按某种需要对职工对象文件进行排序。 【测试数据】 自己指定。注意尽量覆盖算法的各种情况。 【实现提示】 职工对象数不必很多,便于一次读入内存,所有操作不经过内外存交换。1 ()由键盘输入职工对象,以文件方式保存。程序执行时先将文件读入内存。2"" ()对职工对象中的姓名按字典顺序进行排序。 3 ()对排序后的职工对象进行增、删、查询、修改、排序等操作。 【选作内容】 将职工对象按散列法存储,并设计解决冲突的方法。在此基础上实现增、删、查询、修改、 排序等操作。 头文件 /*生成单链表*/ int CreatList(Linklist &L) { Linklist h=NULL; Linklist p=(Linklist)malloc(sizeof(LNode)); if(NULL==p) { printf("录入失败提示:内存不足!\n"); return -1; } h=L->next; while(h) { if(h->name==p->name) { free(p); printf("录入失败提示:此职工号已经存在!\n"); return -1; } h=h->next; } printf("请输入员工姓名\n"); scanf("%s",p->name); printf("请输入员工性别\n"); scanf("%s",p->sex); printf("请输入员工出生年月\n"); scanf("%s",p->birthdate); printf("请输入员工工作年月\n"); scanf("%s",p->workdate); printf("请输入员工学历\n"); scanf("%s",p->edu); printf("请输入员工职务\n"); scanf("%s",p->duty); printf("请输入员工电话\n"); scanf("%s",p->phone); printf("请输入员工地址\n"); scanf("%s",p->address); p->next=L->next; L->next=p; printf("录入成功!\n"); return -1; } /*初始化单链表*/ int Initlist(Linklist &L) { L=(Linklist)malloc(sizeof(LNode)); if(!L) return (0); L->next=NULL; return OK; } /*显示所有员工信息*/ void Display(Linklist &L) { Linklist p; for(p=L->next;p;p=p->next) { printf("姓名 %s\n",p->name); printf("性别 %s\n",p->sex); printf("出生年月 %s\n",p->birthdate); printf("工作年月 %s\n",p->workdate); printf("学历 %s\n",p->edu); printf("职务 %s\n",p->duty); printf("电话 %s\n",p->phone); printf("地址 %s\n",p->address); printf("============================\n"); } } /*出生年月查询*/ int SearchBirthdate(Linklist &L,char birthdate[20]) { LNode *p; p=L; while(p) { if(strcmp(p->birthdate,birthdate)==0) { printf("姓名 %s\n",p->name); printf("性别 %s\n",p->sex); printf("出生年月 %s\n",p->birthdate); printf("工作年月 %s\n",p->workdate); printf("学历 %s\n",p->edu); printf("职务 %s\n",p->duty); printf("电话 %s\n",p->phone); printf("地址 %s\n",p->address); return OK; } p=p->next; } printf("没有此人\n"); return 0; } /*姓名查询*/ int SearchName(Linklist &L,char name[10]) { LNode *p; p=L; while(p) { if(strcmp(p->name,name)==0) { printf("姓名 %s\n",p->name); printf("性别 %s\n",p->sex); printf("出生年月 %s\n",p->birthdate); printf("工作年月 %s\n",p->workdate); printf("学历 %s\n",p->edu); printf("职务 %s\n",p->duty); printf("电话 %s\n",p->phone); printf("地址 %s\n",p->address); return OK; } p=p->next; } printf("没有此人\n"); return 0; } /* 性别查询*/ void SearchSex(Linklist &L,char sex[10]) { LNode *p; p=L; int tag=1; while(p) { if(strcmp(p->sex,sex)==0) { printf("姓名 %s\n",p->name); printf("性别 %s\n",p->sex); printf("出生年月 %s\n",p->birthdate); printf("工作年月 %s\n",p->workdate); printf("学历 %s\n",p->edu); printf("职务 %s\n",p->duty); printf("电话 %s\n",p->phone); printf("地址 %s\n",p->address); tag=0; } p=p->next; } if(tag==1) { printf("找不到符合此条件的职工!"); } } /* 地址查询*/ int SearchAddress(Linklist &L,char address[30]) { LNode *p; p=L; while(p) { if(strcmp(p->address,address)==0) { printf("姓名 %s\n",p->name); printf("性别 %s\n",p->sex); printf("出生年月 %s\n",p->birthdate); printf("工作年月 %s\n",p->workdate); printf("学历 %s\n",p->edu); printf("职务 %s\n",p->duty); printf("电话 %s\n",p->phone); printf("地址 %s\n",p->address); return OK; } p=p->next; } printf("没有此人\n"); return 0; } /*姓名排序*/ void SortName(Linklist &L ,char name[10]) { Linklist La; Linklist p,q,m; La=(Linklist)malloc(sizeof(LNode)); La->next =NULL; while(L->next) { for(q=L->next ,p=L->next ;p->next ;p=p->next ) { if((strcmp( p->next->name,q->name ))>0 ) { m=p; q=p->next ; } } if(q==L->next) { L->next =L->next->next ; } else { m->next =q->next ; } q->next =La->next ; La->next =q ; } L=La; Display(L); } /*性别排序*/ void SortSex(Linklist &L ,char sex[10]) { Linklist La; Linklist p,q,m; La=(Linklist)malloc(sizeof(LNode)); La->next =NULL; while(L->next) { for(q=L->next ,p=L->next ;p->next ;p=p->next ) { if((strcmp( p->next->sex,q->sex))>0 ) { m=p; q=p->next ; } } if(q==L->next) { L->next =L->next->next ; } else { m->next =q->next ; } q->next =La->next ; La->next =q ; } L=La; Display(L); } /*出生年月排序*/ void SortBirth(Linklist &L ,char birthdate[20]) { Linklist La; Linklist p,q,m; La=(Linklist)malloc(sizeof(LNode)); La->next =NULL; while(L->next) { for(q=L->next ,p=L->next ;p->next ;p=p->next ) { if((strcmp( p->next->birthdate,q->birthdate))>0 ) { m=p; q=p->next ; } } if(q==L->next) { L->next =L->next->next ; } else { m->next =q->next ; } q->next =La->next ; La->next =q ; } L=La; Display(L); } /*工作年月排序*/ void SortWork(Linklist &L ,char workdate[20]) { Linklist La; Linklist p,q,m; La=(Linklist)malloc(sizeof(LNode)); La->next =NULL; while(L->next) { for(q=L->next ,p=L->next ;p->next ;p=p->next ) { if((strcmp( p->next->workdate,q->workdate))>0 ) { m=p; q=p->next ; } } if(q==L->next) { L->next =L->next->next ; } else { m->next =q->next ; } q->next =La->next ; La->next =q ; } L=La; Display(L); } /*更改*/ int Alter(Linklist &L,char name[10]) { LNode *p; p=L; while(p) { if(strcmp(p->name,name)==0) { printf("请输入员工姓名\n"); scanf("%s",p->name); printf("请输入员工性别\n"); scanf("%s",p->sex); printf("请输入员工出生年月\n"); scanf("%s",p->birthdate); printf("请输入员工工作年月\n"); scanf("%s",p->workdate); printf("请输入员工学历\n"); scanf("%s",p->edu); printf("请输入员工职务\n"); scanf("%s",p->duty); printf("请输入员工电话\n"); scanf("%s",p->phone); printf("请输入员工地址\n"); scanf("%s",p->address); return OK; } p=p->next; } printf("没有此人\n"); return 0; } /*按姓名删除*/ int Del(Linklist &L,char name[10]) { LNode *p; LNode *r; p=L->next; r=L; while(p) { if(strcmp(p->name,name)==0) { r->next=p->next; free(p); printf("删除成功\n"); return OK; } p=p->next; } printf("没有此人\n"); return 0; } 主函数 #include #include #include #define TRUE 1 #define FALSE -1 #define OK 1 #define ERROR 0 #define OVERFLOW -2 typedef struct LNode { char name[10]; char sex[10]; char birthdate[20]; char workdate[20]; char edu[10]; char duty[10]; char phone[20]; char address[30]; struct LNode *next; }*Linklist; #include"Header.h"; void main() { Linklist L; int a; char name[10]; char sex[10]; char birthdate[20]; char workdate[20]; char edu[10]; char duty[10]; char phone[20]; char address[30]; Initlist(L); int y; int x=1; while(x) { printf("\t\t*****************************************\n\n"); printf("\t\t>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<\n\n"); printf("\t\t*****************************************\n"); printf("\t\t**************1-添加员工信息*************\n"); printf("\t\t**************2-查询员工信息*************\n"); printf("\t\t**************3-排序员工信息*************\n"); printf("\t\t**************4-显示员工信息*************\n"); printf("\t\t**************5-更改员工信息*************\n"); printf("\t\t**************6-删除员工信息*************\n"); printf("\t\t**************7-退 出*************\n"); printf("\t\t*****************************************\n"); printf("请选择操作序号并按回车:"); scanf("%d",&y); switch(y) { case 1: CreatList(L);break; case 2: printf("请输入查询方式(1按出生年月查询,2按姓名查找,3按性别查找)"); scanf("%d",&a); if(a==1) { printf("请输入查询员工出生年月\n"); scanf("%s",&birthdate); SearchBirthdate(L,birthdate); } if(a==2) { printf("请输入查询员工姓名\n"); scanf("%s",&name); SearchName(L,name); } if(a==3) { printf("请输入查询员工性别\n"); scanf("%s",&sex); SearchSex(L,sex); } break; case 3: printf("请选择排序条件:1.姓名2.性别3出生年月0.退出\n"); scanf("%d",&a); if(a==1) { printf("姓名排序\n"); SortName(L,name); } if(a==2) { printf("性别排序\n"); SortSex(L,sex); } if(a==3) { printf("出生年月排序\n"); SortBirth(L, birthdate); } break; case 4: printf("所有员工信息如下所示\n"); Display(L); break; case 5: printf("请输入更改员工姓名"); getchar(); scanf("%s",&name); Alter(L,name); break; case 6: printf("请输入删除员工姓名"); getchar(); scanf("%s",&name); Del(L,name); break; case 7: x=0; break; default: printf("请输入正确序号~\n"); break; } } }
本文档为【VC++6&#46;0环境下 简单的职工管理系统 课程设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_153723
暂无简介~
格式:doc
大小:39KB
软件:Word
页数:20
分类:企业经营
上传时间:2017-09-06
浏览量:18