*******************
实践教学
*******************
兰州理工大学
计算机与通信学院
2014年春季学期
C程序设计 课程设计
题 目:职工信息管理系统
专业班级
姓 名:
学 号:
指导教师:
成 绩:_______________
前言
随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展要高效率的把内部活动有机的组织起来,就必须建立自身特点相适应的管理信息系统。
本组设计的是一个关于职工信息管理的数据库系统,通过这个系统,管理员可以简捷方便的对职工信息进行查询、删除、修改、排序等功能,而用户也可以通过这个系统对职工信息进行查询等功能。
摘要
建立一个“职工信息管理系统”,系统以菜单方式工作,编写存放有职工基本信息,包含职工工号,姓名,性别,年龄,学历,工资,住址,电话等,并且要求录入职工号不重复;录入的职工号信息要求用文件形式保存,并可以对其进行浏览、查询、修改、删除、排序等基本操作,建立职工信息管理的文件。
关键词:职工信息管理;文件;浏览;查询;修改;排序
目录
前言 I
摘要 II
目录 III
一、系统需求分析 1
1.系统需求分析 1
2.系统流程图 1
二、系统总体设计 3
1.总体思想 3
2.总体软件模块结构图 3
3.总体数据结构 4
三、详细设计 5
1.数据结构 5
2.主要功能模块的处理过程 6
四、系统测试 10
1.设置测试数据及方案 10
2.测试结果示意图 10
五、软件使用说明 19
设计总结 20
参考文献 21
致 谢 22
附录:源程序代码 23
一、系统需求分析
1.系统需求分析
1.1需求概述:
(1)职工信息录入功能;
(2)职工信息浏览功能;
(3)职工信息查询功能;
(4)职工信息删除功能;
(5)职工信息修改功能;
(6)职工信息排序功能。
1.2 需求说明:
(1)职工信息包括职工号、姓名、性别、年龄、学历、工资、地址、电话等,并且要求职工号不重复。
(2)录入的职工信息要求用文件形式保存,并可以对其进行浏览、查询、修改、删除、排序等基本操作。
(3)职工信息的显示要求有一定的规范格式。
(4)对职工信息应能够分别安编号及按姓名两种方式进行查询,要求能返回所有符合条件的职工的信息。
(5)对职工信息的修改应逐个地进行,在一个职工的信息的更改不影响其他的职工记录。
(6)所设计的系统应以菜单方式工作,应为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并要求在此过程中能尽可能地兼容用户使用过程中的异常情况。
2.系统流程图
如图1-1所示:
1.总体思想
本系统主要的设计思想是实现对职工信息的录入、删除、修改、查询、排序等主要功能。职工信息以文件的形式存储。系统的人机接口采用简单的字符界面进行交互。系统的设计方法是结构化设计方法,采用C语言进行开发。软件开发平台采用Visual C++6.0。根据需求分析文档,初步提出问题的解决方案,以及软件系统的体系结构和数据结构的设计方案,并写出书面文档总体设计说明书,为下一步进行详细设计做准备。
2.总体软件模块结构图
2.1该系统可以按功能进行模块划分,如图2-1所示:
其中:
(1) 退出模块用于退出信息管理系统。
(2) 信息修改模块完成职工信息的修改功能。
(3) 信息排序模块完成职工信息的排序功能。
(4) 信息删除功能模块完成职工信息的删除功能。
(5) 信息查询模块完成职工信息的查询,查询时对应有按编号查询和按学历查询两种方式。
(6) 信息输入模块完成职工信息的输入功能、姓名、性别、年龄、学历、工资、住址、电话等。
(7) 信息浏览模块完成已录入职工信息的显示。
3.总体数据结构
本系统中主要的数据结构就是职工的信息,包含职工号、姓名、性别、年龄、学历、工资、住址、电话等,在处理过程中各项可以作为一个职工的不同属性来进行处理。
根据系统要求,系统中需要保存的数据有职工的信息,其结构如表1所示:
表1 数据结构表:
三、详细设计
1.数据结构
1.1定义数组
定义一维数组struct worker work[50];用于定义员工的总人数,当员总人数超过50后便不能再录入员工资料。
1.2定义结构体
结构体struct worker用于存放存放员工的资料,包括员工的基本信息:工号,姓名,年龄,学历,工资,住址,电话号码。
struct worker
{
int num; 工号
char name[15]; 姓名
char xingbie; 性别
int age; 年龄
char exp[6]; 学历
int wage; 工资
char address[20]; 住址
char tel[12]; 电话号码
};
int count=0; 当前工人个数
int sort_type=0; 当前排序类型
1.3函数功能描述
函数主界面:void homepage();
显示职工成绩信息:void display();
录入职工信息信息:void input();
删除职工信息:void del();
查询职工信息:void find();
修改职工信息:void modify();
排序职工信息:void sort();
用户等待函数:void waiting();
退出系统函数: void quit();
2.主要功能模块的处理过程
2.1职工信息显示函数
2.2输入函数
2.3查询函数
2.4修改函数
2.5删除函数
2.6排序函数
四、系统测试
1.设置测试数据及方案
根据以下几个列子分析测试:
(1).录入:职工号:1001 ,姓名:张扬,性别:男
年龄:24 , 学历:本科,工资:3000:
地址:兰州七里河区;电话:133********;
职工号:1002,姓名:张馨,性别:女
年龄:22,学历:本科,工资:3500
地址:兰州安宁区,电话:187********;
职工号:1003,姓名:李明,性别:男
年龄:25,学历:硕士,工资:5000
地址:兰州城关区,电话:188********
(2)对员工信息进行排序;
(3)查询单个职工号1002的职工信息;
(4)修改姓名李明的职工信息;
(5)删除职工号为1001的职工信息;
(6)浏览所有职工信息;
(7)退出。
2.测试结果示意图
2.1登陆界面
此模块用于欢迎界面,同时要求用户输入用户名和密码,只有当两者都正确时,才能进入到系统,当有三次错误,系统就会自动退出,如图4-1所示:
图4-1 登陆界面
2.2主界面
此模块主要实现进入主界面和根据用户需要进入相应界面,包括显示界面,录入界面,查询界面,删除界面,排序界面和修改界面并可以选择退出,如图4-2所示:
图4-2 主界面
2.3职工信息录入示意图
这个模块主要是录入员工资料,录入的顺序如图所示,当录入的员工人数满到50后,便不能再进行录入员工资料,此时已经达到了录入人数的最大值,如图4-3所示:
图4-3 职工信息录入示意图
2.4职工信息排序示意图
此模块用来对员工信息进行排序,可以按照职工号从小到大排序,也可以按照工资从大到小排序。
排序前:如图4-4所示:
图4-4 排序前示意图
排序操作:如图4-5所示:
图4-5 排序操作示意图
排序后:如图4-6所示:
图4-6 排序后示意图
2.5职工信息查询示意图
此模块用于职工信息的查询,共分为两种查询方式,一是按工号查询,二是按学历查询。用if函数来实现,可快速查询到职工的姓名、学历、电话等信息。
查询操作:如图4-7所示:
图4-7 查询操作示意图
查询结果:如图4-8所示:
图4-8 查询结果示意图
2.6职工信息修改示意图
此模块用于修改职工的部分或全部信息,修改前需要通过职工姓名来查找需要修改的职工信息并加以改正,如图4-9所示:
图4-9 信息修改示意图
修改结果:如图4-10所示:
图4-10修改结果示意图
2.7职工信息删除示意图
此模块用于删除员工信息,对于已经无用的员工信息进行删除,采用按工号删除的模式。
删除前:如图4-11所示:
图4-11 删除前示意图
删除操作:如图4-12所示:
图4-12 删除操作示意图
删除后:如图4-13所示:
图4-13 删除后示意图
2.7职工信息浏览示意图
此模块是用来显示员工的资料信息的,包括工号,姓名,性别,年龄,学历,工资,住址,电话等基本信息,一边管理员能够及时的掌握到所要员工的资料,如图4-14所示:
图4-14 信息浏览示意图
2.8退出管理系统示意图
如图4-15所示:
图4-15 退出系统示意图
五、软件使用说明
(1)在windows XP/windows 7等系统上都可运行。编程语言为C语言。软件开发平台采用Visual C++6.0。
(2)打开该程序系统,登陆系统并浏览主界面,根据需要选择功能,进行各项操作。
操作如下:
登陆管理系统,进入主界面(此模块主要实现进入主界面和根据用户需要进入相应界面,包括显示界面,录入界面,查询界面,删除界面,排序界面和修改界面并可以选择退出。);
录入界面:这个模块主要是录入员工资料,主要录入职工的职工号、姓名、性别、年龄、学历、工资、住址、电话等。当录入的员工人数满到50后,便不能再进行录入员工资料,此时已经达到了录入人数的最大值;
排序界面:此模块用来对员工信息进行排序,可以按照职工号从小到大排序,也可以按照工资从大到小排序;
查询界面:此模块用于职工信息的查询,共分为两种查询方式,一是按工号查询,二是按学历查询。用if函数来实现,可快速查询到职工的姓名、工号、学历、电话等详细信息。
修改界面:此模块用于修改职工的部分或全部信息,修改前需要通过职工姓名来查找需要修改的职工信息并加以改正。
删除界面:此模块用于删除员工信息,对于已经无用的员工信息进行删除,采用按工号删除的模式。
浏览界面:此模块是用来显示员工的资料信息的,包括工号,姓名,性别,年龄,学历,工资,住址,电话等基本信息,一边管理员能够及时的掌握到所要员工的资料。
设计总结
在进行课程设计的两周内,由于是初次开发软件,在知识、经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存在一些缺陷和不足。因为对职工信息管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。在编写代码时没有添加注解,降低了在调试测试时程序的可读性,同时也降低了与其他同学的交流,虽然在测试过程中我把全部的注解加上, 但也延长了整个程序的开发时间。
本系统需要将所学的C语言知识都灵活得用进去,在刚刚拿到这个题目时,感到很迷茫不知道从何下手经过老师的讲解和组员的讨论,找到了思路,将其分成几个模块,将各个功能分开完成,最后再用主程序将其调用。在编写程序时许多知识都忘了,或不了解,像switch语句和while语句等。通过看书和上网查资料才完成这个题目。在调试程序时也遇到了不小的困难,有时还找不出错误在哪里。最后在小组成员的帮助下总算调试好了程序。
通过这次C程序设计课程设计,我在多方面都有所提高。通过这次C程序设计,综合运用本专业所学课程的理论和实际操作知识编写了一个职工信息管理系统程序从而培养和学生实际工作能力,巩固和扩充了C语言课程中所学的内容,熟练掌握C语言编程思路与方法,懂得如何去分析程序的基本构造,提高编写能力,同时对C语言这门课程又进行了一次全面、仔细的复习,独立思考和团队合作的能力也有提高。
在这次课程设计过程中,也体现出自己与他人合作设计编写程序的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。
参考文献
[1] 王连相 c++程序设计教程 ,中国铁道出版社,2007
[2] 谭浩强 C语言程序设计教程,安徽出版社,1999
[3] 谭浩强 C程序设计题解与上机指导,清华大学出版社,1999
[4] C语言的实际应用,安徽科学技术出版社,2000
[5] C语言函数手册,机械工业出版社,1999
[6] C语言实用程序荟萃,西安电子科技大学出版社,1993
[7] 严蔚敏,吴伟民.数据结构(C语言版).北京:清华大学出版社,2007
致 谢
在编写程序的过程中,我们得到了滕永晨老师的精心指导以及孜孜不倦的教诲,在滕老师的指导下,我们的能力得到了提高,同时养成了科学、严谨的作风和习惯,在此,我们对滕老师的精心栽培表示衷心的感谢!
感谢我们小组同学对我的帮助和指点,尤其感谢我的舍友在非常时期,在生活和学习上帮我许多忙。在课设即将完成之际,我的心情无法平静,从开始进入课题到课设的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意。
附录:源程序代码
#include
#include
#include
#include
void homepage(); //主界面
void display(); //显示全部信息
void input(); //录入 插入
void find(); //查询
void del(); //删除记录
void modify(); //修改
void sort(); //排序
void waiting(); //等待界面
void quit(); //退出界面
struct worker
{
int num; //工号
char name[15]; //姓名
char xingbie; //性别
int age; //年龄
char exp[6]; //学历
int wage; //工资
char address[20];//住址
char tel[12]; //电话号码
};
int count=0; //当前工人个数
int sort_type=0; //当前排序类型
struct worker work[50];
void main() /*登陆界面*/
{ int i=0,k=0;
char username[15],pwd[6];
system("color 3f");
printf("\n\n");
printf(" \t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf(" \t┃**********************************************************┃\n");
printf(" \t┃***┏━━━━━━━━━━━━━━━━━━━━━━━━┓***┃\n");
printf(" \t┃***┃************************************************┃***┃\n");
printf(" \t┃***┃*** ****┃***┃\n");
printf(" \t┃***┃*** ****┃***┃\n");
printf(" \t┃***┃*** ****┃***┃\n");
printf(" \t┃***┃*** 欢迎使用职工信息管理系统 ****┃***┃\n");
printf(" \t┃***┃*** ****┃***┃\n");
printf(" \t┃***┃*** ****┃***┃\n");
printf(" \t┃***┃*** ****┃***┃\n");
printf(" \t┃***┃*** ****┃***┃\n");
printf(" \t┃***┃************************************************┃***┃\n");
printf(" \t┃***┗━━━━━━━━━━━━━━━━━━━━━━━━┛***┃\n");
printf(" \t┃**********************************************************┃\n");
printf(" \t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");
for(i=0;i<3;i++)
{
printf("\n请输入用户名:");
gets(username);
printf("\n请输入6位密码:");
gets(pwd);
if((strcmp(username,"admin")==0)&&(strcmp(pwd,"123456")==0))
{
printf("\n您已经成功登录");
k=1;
for(i=0;i<20;i++)
{
printf(".");
Sleep(100);
}
system("cls");
homepage();
break;
}
else
printf("\n用户名或密码无效 请重新输入:\n");
continue;
}
if(k==0)
printf("\n连续输入错误3次 将退出程序\n");
Sleep(2000);
quit();
}
void homepage() /*主界面*/
{
char n;
printf("\n\n");
printf("\t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf("\t┃************************************************************┃\n");
printf("\t┃* 1.显示员工资料 * 2.录入员工资料 *┃\n");
printf("\t┃************************************************************┃\n");
printf("\t┃* 3.员工信息查询 * 4.删除员工记录 *┃\n");
printf("\t┃************************************************************┃\n");
printf("\t┃* 5.员工信息排序 * 6.员工信息修改 *┃\n");
printf("\t┃************************************************************┃\n");
printf("\t┃* 0.退出信息系统 *┃\n");
printf("\t┃************************************************************┃\n");
printf("\t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");
while ((n!='1')&&(n!='2')&&(n!='3')&&(n!='4')&&(n!='5')&&(n!='6')&&(n!='0'))
{
printf("\n请选择:");
fflush(stdin);
scanf("%c",&n);
switch(n)
{
case '1':
display();
break;
case '2':
if(count<50)
input();
else
{
printf("记录数已满\n");
Sleep(2000);
system("cls");
homepage();
}
break;
case '3':
find();
break;
case '4':
del();
break;
case '5':
sort();
break;
case '6':
modify();
break;
case '0':
quit();
break;
default:
printf("\n选项错误\n");
}
}
}
void display() /*职工信息显示函数*/
{
int i;
char c;
system("cls");
printf("备注:学历(1=中专,2=大专,3=本科,4=硕士,5=博士,6=其它);性别(F=女,M=男):\n\n\n");
switch(sort_type)
{
case 0:
printf("\t\t未排序:\n\n");
break;
case 1:
printf("\t\t按工号排序:\n\n");
//sort();
break;
case 2:
printf("\t\t按工资排序:\n\n");
//sort();
break;
}
printf("\n职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t\t电话\n");
if (count==0) printf("\n\t无员工信息!\n");
for(i=0;i
{
printf("\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%s\n",work[i].num,work[i].name,work[i].xingbie,work[i].age,work[i].exp,work[i].wage,work[i].address,work[i].tel);
}
printf("\n\n按任意键返回\n");
c=getch();
system("cls");
homepage();
}
void input() /*信息输入函数*/
{
int i,numcheck;
char c;
system ("cls");
do
{
printf("职工号:\n");
scanf("%d",&work[count].num);
numcheck=1;
if(work[count].num<0)
printf("请输入正整数:\n");
for(i=0;i
{
if(work[count].num==work[i].num)
{
numcheck=0;
printf("工号重复,重新输入:\n");
}
}
}while(!numcheck);{
printf("姓名:");
fflush(stdin);
scanf("%s",work[count].name);
fflush(stdin);
printf("性别(F=女:M=男):");
scanf("%c",&work[count].xingbie);
printf("年龄:");
scanf("%d",&work[count].age);
fflush(stdin);
printf("学历(1=中专,2=大专,3=本科,4=硕士,5=博士,6=其它):\n");
scanf("%s",work[count].exp);
printf("工资:");
scanf("%d",&work[count].wage);
printf("住址:");
scanf("%s",work[count].address);
printf("电话:");
scanf("%s",work[count].tel);
}
printf("\n是否继续输入(y/n):\n");
do
{
c=getchar();
if(c=='y'||c=='Y')
{
count++;
if(count<50)
input();
else
{
printf("记录数已满\n");
Sleep(2000);
system("cls");
homepage();
}
}
else if(c=='n'||c=='N')
{
count++;
system("cls");
homepage();
}
else;
}while((c!='y')&&(c!='n')&&(c!='Y')&&(c!='N'));
}
void del() /*信息删除函数*/
{
int i,j,del_num,match=0;
char c;
system("cls");
printf("请输入要删除的员工工号:\n");
scanf("%d",&del_num);
waiting();
for(i=0;i
{
if(work[i].num==del_num)
{
match=1;
for(j=i;j
work[j]=work[j+1];
count--;
}
}
if(!match) printf("\n没有要找的工号.\n");
printf("\n是否继续删除?(y/n)");
fflush(stdin);
do
{
c=getchar();
if(c=='y'||c=='Y')
{
del();
}
else if(c=='n'||c=='N')
{
system("cls");
}
}while((c!='y')&&(c!='n'));
printf("\n 浏览删除后的所有职工信息:\n");
display(); /*调用浏览函数*/
}
void sort() /*信息排序函数*/
{
int i,j;
int choice=0;
struct worker temp;
system("cls");
printf("\t\t请选择排序功能:\n");
printf("\t1.按工号排序\n");
printf("\t2.按工资排序\n");
printf("请输入选择:");
do
{
scanf("%d",&choice);
}while((choice!=1)&&(choice!=2));
switch(choice)
{
case 1:
{
for(i=0;i
{
for(j=0;j
{
if(work[j].num>work[j+1].num)
{
temp=work[j];
work[j]=work[j+1];
work[j+1]=temp;
}
}
}
sort_type=1;
break;
}
case 2:
{
for(i=0;i
{
for(j=0;j
{
if(work[j].wage
{
temp=work[j];
work[j]=work[j+1];
work[j+1]=temp;
}
}
}
sort_type=2;
break;
}
}
waiting();
printf("排序完成!请按任意键返回查看!");
getch();
system("cls");
homepage();
}
void modify() /*信息修改函数*/
{ int num;
char name[10];
char xingbie;
int age;
char exp[6];
int wage;
char address[30];
char tel[12];
int b,c,i,n,t,flag;
system("cls");
printf("请输入要修改的职工的姓名:\n");
scanf("%s",name);
for(flag=1,i=0;flag&&i
{
if(strcmp(work[i].name,name)==0)
{
printf("\n已找到此人,原始记录为:\n");
printf("\n\n学历(1=中专,2=大专,3=本科,4=硕士,5=博士,6=其它);性别(F=女,M=男):\n");
printf("\n职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t\t电话 \n");
printf("\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%s\n",work[i].num,work[i].name,work[i].xingbie,work[i].age,work[i].exp,work[i].wage,work[i].address,work[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);
work[i-1].num=num;
break;
case 2:printf("姓名改为: ");
scanf("%s",name);
strcpy(work[i-1].name,name);
break;
case 3:printf("性别改为: ");
getchar();
scanf("%c",&xingbie);
work[i-1].xingbie=xingbie;
break;
case 4:printf("年龄改为: ");
scanf("%d",&age);
work[i-1].age=age;
break;
case 5:printf("学历改为: ");
scanf("%s",exp);
strcpy(work[i-1].exp,exp);
break;
case 6:printf("工资改为: ");
scanf("%d",&wage);
work[i-1].wage=wage;
break;
case 7:printf("住址改为: ");
scanf("%s",address);
strcpy(work[i-1].address,address);
break;
case 8:printf("电话改为: ");
scanf("%s",tel);
strcpy(work[i-1].tel,tel);
break;
}
printf("\n");
printf("\n是否确定所修改的信息?\n 是 请按1 ; 不,重新修改 请按2: \n");
scanf("%d",&b);
}while(b==2);
printf("修改成功\n");
printf("\n继续修改请按1,不再修改请按0\n");
scanf("%d",&t);
switch(t)
{
case 1:modify();break;
case 0:system("cls");break;
default :system("cls");break;
}
printf("\n浏览修改后的所有职工信息:\n");
printf("\n");
display(); /*调用浏览函数*/
}
void find() /*信息查询函数*/
{
int i;
int choice=0;
int find_num;
char findedu[6];
char c;
system("cls");
printf("\t\t请选择查询功能:\n");
printf("\t1.按工号查询\n");
printf("\t2.按学历查询\n");
printf("请输入选择:");
do
{
scanf("%d",&choice);
}while ((choice!=1)&&(choice!=2));
if (choice==1)
{
printf("\n\t请输入要查询的职工号\n");
scanf("%d",&find_num);
printf("\n正在查询,请稍候");
for(i=0;i<20;i++)
{
printf(".");
Sleep(100);
}
system("cls");
for (i=0;i<=count;i++)
{
if (find_num==work[i].num)
{
printf("\n\n学历(1=中专,2=大专,3=本科,4=硕士,5=博士,6=其它);性别(F=女,M=男):\n");
printf("\n工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t\t电话\n");
printf("\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%s\n",work[i].num,work[i].name,work[i].xingbie,work[i].age,work[i].exp,work[i].wage,work[i].address,work[i].tel);
}
}
}
else if (choice==2)
{
printf("\n\n学历(1=中专,2=大专,3=本科,4=硕士,5=博士,6=其它):\n");
printf("\n\t\n请输入要查询的学历:");
scanf("%s",findedu);
printf("\n正在查询,请稍候");
for(i=0;i<20;i++)
{
printf(".");
Sleep(100);
}
system("cls");
printf("\n\n学历(1=中专,2=大专,3=本科,4=硕士,5=博士,6=其它);性别(F=女,M=男):\n");
printf("\n工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t\t电话\n");
for (i=0;i<=count;i++)
{
if(!strcmp(findedu,work[i].exp))
{
printf("\t%d\t%s\t%c\t%d\t%s\t%d\t%s\t%s\n",work[i].num,work[i].name,work[i].xingbie,work[i].age,work[i].exp,work[i].wage,work[i].address,work[i].tel);
}
}
}
printf("\n\n按任意键返回\n");
c=getch();
system("cls");
homepage();
}
void waiting()
{
int i;
printf("\n\t请稍侯...........");
for(i=0;i<25;i++)
{
switch(i%4)
{
case 1:printf("\b\\");break;
case 2:printf("\b-");break;
case 3:printf("\b/");break;
case 0:printf("\b|");break;
}
Sleep(100);
}
system("cls");
}
void quit()
{
system("cls");
printf("\n\n");
printf("\t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf("\t┃************************************************************┃\n");
printf("\t┃* *┃\n");
printf("\t┃* 谢谢使用本程序 *┃\n");
printf("\t┃* *┃\n");
printf("\t┃************************************************************┃\n");
printf("\t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n");
}