员工信息管理系统(含附源代码)03
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf("\n\t请输入员工姓名:");
scanf("%s",work[i].name);
printf("\n\t请输入员工身份证号:");
scanf("%s",work[i].ID);
printf("\n\t请输入员工性别:");
scanf("%s",work[i].sex);
printf("\n\t请输入员工出生日期(yyyy-mm-dd):");
开始选择更新内容i结束开始选择查询内容i结束按性别统计年龄查询函数isum判断两工作号相等isumworkiworki1sumflag1是否继续输入工作号退出删除结束开始输出信息结束开始开始isum输入年龄输出信息结束判断员工的年龄段变量自加开始输入年龄chisum存在员工输出员工信息继续查询退出查询结束身份证排序
scanf("%s",work[i].sex);
printf("\n\t请输入员工出生日期(yyyy-mm-dd):");
scanf("%d-%d-%d",&work[i].birthday.year,&work[i].birthday.month,&work[i].birthday.day);
printf("\n\t请输入员工年龄:");
printf("\t **输入'e'退出列表**\n");
ch=getche();
if(ch=='e')
break;
clrscr();
printf("\t *****员工基本信息列表*****\n");
printf("\t共%d页第%d页\n\n",j,++page);
PRINT1;
PRINT2;
PRINT3;
{printf("读文件错误!\n");
getch();
return;
}
for(i=0;i<sum;i++)
{if(fwrite(&work[i],sizeof(struct worker),1,fp)!=1)
printf("写文件错误!\n");
}
fclose(fp);
}
/*读取信息*/
int readmessage()
if(work[i].old==0)
break;
else i++;
}
fclose(fp);
return(i);
}
/*信息的输入*/
inputmessage()
{int s=max,i=0;
char ch;
clrscr();
do
{clrscr();
printf("\t请输入员工信息(最多%d人)\n",s);
(6).保存模块:
用于对信息进行保存。
(7).输出模块:
将所有员工信息或想要查询的员工信息显示于屏幕,用于打印员工信息或查找某些员工信息。
(8).退出系统:
选择该项,自动退出该系统。
2、方案设计
对系统进行分析,给出结构图
分析:系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计—自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计
{int year;
int month;
int day;
};
/*员工基本信息*/
struct worker
{char worknum[10];
char name[10];
char ID[10];
char sex[10];
struct date birthday;
int old; /*年龄*/
char duty[10]; /*职务*/
本次实习中遇到了很多以前没有遇到过的问题,也曾想过要放弃,但看到那些同学都在那认真的写程序,给了我继续的信心。
七.参考文献
《C语言程序设计》王曙燕曹锰科学出版社2005年2月
八。附录:
#include"stdio.h"
#include"string.h"
#define max 100
#define PRINT1 printf("*****************************************************************************\n");
由于时间问题和考虑得不够周全,可能在某些功能上不是很完善,不过已有的功能已能基本满足一般企业的需求。不过总的来说,对于自己首次能够自主完成一个这样大的程序来说,还是比较满意。
2、在设计过程中的感受。
本次C语言的实习课让我对C语言的学习又有了更深入的了解,也让我更深刻地领悟到了“实践出真理”这个道理,在上机实践过程中学到的知识远远超过了在课堂上十几周学到的,学校组织的这次实习让我们这些实践知识匮乏的大学生增添了许多社会经验,为我们将来走上工作岗位其了不小的铺垫作用。
scanf("%d",&work[i].old);
printf("\n\t请输入员工职务:");
scanf("%s",work[i].duty);
printf("\n\t请输入员工所属部门:");
scanf("%s",work[i].branch);
printf("\n\t请输入员工工资:");
scanf("%d",&work[i].salary);
printf("\t请输入员工工作证号:");
scanf("%s",work[i].worknum);
printf("\n\t请输入员工姓名:");
scanf("%s",work[i].name);
printf("\n\t请输入员工身份证号:");
scanf("%s",work[i].ID);
printf("\n\t请输入员工性别:");
{FILE *fp;
int i=0;
if((fp=fopen("workman.txt","rt"))==NULL)
{printf("\n\t暂时还没有信息");
printf("\n\t按任意键返回\n");
getch();
return;
}
while(feof(fp)!=1)
{fread(&work[i],sizeof(struct worker),1,fp);
3.程序中设计的查询功能可根据需要从若干数据中查询某个员工信息,并且可根据三种不同的方法查询:按工作证号查询,按年龄查询和按姓名查询。以满足不同的需要。
四、概要设计
1.模块功能说明
对各个模块进行功能的描述
(1).输入模块:
录入需要管理的学生信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。
结构图如下:
五、详细设计及运行结果
流程图,函数之间相互调用的图示,程序设计及编码,运行结果。
统计函数:排序函数:
主函数:输入函数:
添加函数:
按姓名查询函数
输出函数:按工作号查询函数:
更新函数:查询函数:
删除函数:年龄统计函数:
按性别统计年龄查询函数
身份证排序:修改信息函数:
工资排序:
工作证号排序:
密码函数:
char branch[10]; /*部门*/
int salary;
char tel[10];
char pw[10]; /*用来存放用户修改后的密码,不进行输出*/
}t,work[max];
/*信息的保存*/
savemessage(int sum)
{FILE *fp;
int i;
if((fp=fopen("workman.txt","wt"))==NULL)
3.对已存入的员工信息进行更新操作,包括添加一个员工信息、删除某个员工信息和修改某个员工信息。
4.通过输入姓名、工作证号,年龄的方式查询员工信息。
5.最后输出学生信息,供需要时打印。
二、需求分析
1.该程序可用于对员工的雇佣情况基本信息的存储、更新、查询、输出等操作,以实现对员工的管理。
2.其中更新功能包括:添加信息、删除信息、修改信息,可根据需要添加一个或多个员工信息,也可对个别员工信息进行适当的删除或修改,以便随时更新员工信息。
printf("\n\n");
PRINT1;
PRINT4;
PRINT5;
n=2;
}
i++;
}while(i<sum);
printf("\t **按任意键返回**\n");
getch();
}
/*添加员工信息*/
insetmessage()
{int i=sum;
char ch,choice;
loop:clrscr();
修改密码函数:
六.调试情况及运行结果
1、 对自己设计进行评价,指出合理和不足之处,提出改进的方案。
此次实践课编写的是一个应用程序,相对于以前我们见到的程序,它要大得多,开始时,数据的输出格式不太规范,而且各模块也出现了一些小问题,在老师和同学的帮助下,通过自己一次又一次的进行调试和修改,最后运行的结果基本上达到了预期的目的。
}
/*信息的输出*/
outputmessage()
{int page=1,i=0,n=1,j,m=1;
char ch;
clrscr();
if(sum!=0)
{if(sum%5==0)
j=sum/5;
else
{while(sum>5*m)
m++;
j=m;
}
}
if(sum==0)
j=1;
clrscr();
scanf("%d-%d-%d",&work[i].birthday.year,&work[i].birthday.month,&work[i].birthday.day);
(2).添加模块:
可添加一个或多个员工信息,并将所添加员工信息保存,方便查找。
(3).删除模块:
可对辞职或被解雇的员工信息做删除处理。
(4).修改模块:
可根据需要对多个员工信息进行修改,也可随时对个别项进行修改。
(5).查询模块:
可对已建立的员工信息进行查询,并且可根据需要选择按姓名查询,年龄查询或按工作证号查询。
printf("\n\t *****添加新员工信息*****\n\n");
PRINT1;
printf("\n按任意键进入输入界面!!");
bioskey(0);
if(i<max-sum);
{clrscr();
printf("\t请输入员工工作证号:");
scanf("%s",work[i].worknum);
西安郵電學院
高级语言课程设计报告
题目:员工信息管理系统
系部名称
:
电子与信息工程
专业名称
:
电子科学与技术
班级
:
科技0701
班内序号
:
03
学生姓名
:
刘力源
指导教师
:
黄茹
时间
:
2008年6月9日至2008年6月20日
实验题目:员工信息管理系统
一、实验目的
1.熟悉c语言的编译连接和运行过程。
2.掌握c语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。
#define PRINT5 printf("%7d%6s%8s%6d%10s\n",work[i].old,work[i].duty,work[i].branch,work[i].salary,work[i].tel);
int sum; /*用来记录员工人数*/
/*日期结构体*/
struct date
continue;
else
{printf("输入错误,请重新输入\n") ;
goto loop; /*使用goto语句进行循环*/
}
}while(i<=max);
printf("\t %d种信息输入完毕\n",i);
sum=i;
printf("\t ***按任意键返回***\n");
bioskey(0);
#define PRINT2 printf("工作证号--姓名--身份证号--性别--出生日期");
#define PRINT3 printf("--年龄--职务--部门--工资--电话\n");
#define PRINT4 printf("%s%10s%10s%6s%6d-%2d-%2d",work[i].worknum,work[i].name,work[i].ID,work[i].sex,work[i].birthday.year,work[i].birthday.month,work[i].birthday.day);
printf("\n\t请输入员工电话:");
scanf("%s",work[i].tel);
strcpy(work[i].pw,"0");
i++;
loop:printf("\t ***是否继续输入信息?(y/n) ***\n");
ch=getch();
if(ch=='n')
break;
else if(ch=='y')
3.掌握if语句及switch语句的运用方法及ile.、for的使用。
5.掌握函数的定义方法和调用方法。
6.能够采用模块化思想调试程序。
二.实验内容
1.编写程序并进行调试运行。
2.输入员工资料,并保存于文件。每个员工包含信息:工作证号、姓名、性别、年龄、担任职务,工资等信息。
printf("\t *****员工基本信息列表*****\n");
printf("\t共%d页第%d页\n\n",j,page);
PRINT1;
PRINT2;
PRINT3;
printf("\n\n");
PRINT1;
do
{if(n<=5)
{PRINT4;
PRINT5;
n++;
}
else
{printf("\t **按任意键继续**\n");
scanf("%s",work[i].name);
printf("\n\t请输入员工身份证号:");
scanf("%s",work[i].ID);
printf("\n\t请输入员工性别:");
scanf("%s",work[i].sex);
printf("\n\t请输入员工出生日期(yyyy-mm-dd):");
开始选择更新内容i结束开始选择查询内容i结束按性别统计年龄查询函数isum判断两工作号相等isumworkiworki1sumflag1是否继续输入工作号退出删除结束开始输出信息结束开始开始isum输入年龄输出信息结束判断员工的年龄段变量自加开始输入年龄chisum存在员工输出员工信息继续查询退出查询结束身份证排序
scanf("%s",work[i].sex);
printf("\n\t请输入员工出生日期(yyyy-mm-dd):");
scanf("%d-%d-%d",&work[i].birthday.year,&work[i].birthday.month,&work[i].birthday.day);
printf("\n\t请输入员工年龄:");
printf("\t **输入'e'退出列表**\n");
ch=getche();
if(ch=='e')
break;
clrscr();
printf("\t *****员工基本信息列表*****\n");
printf("\t共%d页第%d页\n\n",j,++page);
PRINT1;
PRINT2;
PRINT3;
{printf("读文件错误!\n");
getch();
return;
}
for(i=0;i<sum;i++)
{if(fwrite(&work[i],sizeof(struct worker),1,fp)!=1)
printf("写文件错误!\n");
}
fclose(fp);
}
/*读取信息*/
int readmessage()
if(work[i].old==0)
break;
else i++;
}
fclose(fp);
return(i);
}
/*信息的输入*/
inputmessage()
{int s=max,i=0;
char ch;
clrscr();
do
{clrscr();
printf("\t请输入员工信息(最多%d人)\n",s);
(6).保存模块:
用于对信息进行保存。
(7).输出模块:
将所有员工信息或想要查询的员工信息显示于屏幕,用于打印员工信息或查找某些员工信息。
(8).退出系统:
选择该项,自动退出该系统。
2、方案设计
对系统进行分析,给出结构图
分析:系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计—自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计
{int year;
int month;
int day;
};
/*员工基本信息*/
struct worker
{char worknum[10];
char name[10];
char ID[10];
char sex[10];
struct date birthday;
int old; /*年龄*/
char duty[10]; /*职务*/
本次实习中遇到了很多以前没有遇到过的问题,也曾想过要放弃,但看到那些同学都在那认真的写程序,给了我继续的信心。
七.参考文献
《C语言程序设计》王曙燕曹锰科学出版社2005年2月
八。附录:
#include"stdio.h"
#include"string.h"
#define max 100
#define PRINT1 printf("*****************************************************************************\n");
由于时间问题和考虑得不够周全,可能在某些功能上不是很完善,不过已有的功能已能基本满足一般企业的需求。不过总的来说,对于自己首次能够自主完成一个这样大的程序来说,还是比较满意。
2、在设计过程中的感受。
本次C语言的实习课让我对C语言的学习又有了更深入的了解,也让我更深刻地领悟到了“实践出真理”这个道理,在上机实践过程中学到的知识远远超过了在课堂上十几周学到的,学校组织的这次实习让我们这些实践知识匮乏的大学生增添了许多社会经验,为我们将来走上工作岗位其了不小的铺垫作用。
scanf("%d",&work[i].old);
printf("\n\t请输入员工职务:");
scanf("%s",work[i].duty);
printf("\n\t请输入员工所属部门:");
scanf("%s",work[i].branch);
printf("\n\t请输入员工工资:");
scanf("%d",&work[i].salary);
printf("\t请输入员工工作证号:");
scanf("%s",work[i].worknum);
printf("\n\t请输入员工姓名:");
scanf("%s",work[i].name);
printf("\n\t请输入员工身份证号:");
scanf("%s",work[i].ID);
printf("\n\t请输入员工性别:");
{FILE *fp;
int i=0;
if((fp=fopen("workman.txt","rt"))==NULL)
{printf("\n\t暂时还没有信息");
printf("\n\t按任意键返回\n");
getch();
return;
}
while(feof(fp)!=1)
{fread(&work[i],sizeof(struct worker),1,fp);
3.程序中设计的查询功能可根据需要从若干数据中查询某个员工信息,并且可根据三种不同的方法查询:按工作证号查询,按年龄查询和按姓名查询。以满足不同的需要。
四、概要设计
1.模块功能说明
对各个模块进行功能的描述
(1).输入模块:
录入需要管理的学生信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。
结构图如下:
五、详细设计及运行结果
流程图,函数之间相互调用的图示,程序设计及编码,运行结果。
统计函数:排序函数:
主函数:输入函数:
添加函数:
按姓名查询函数
输出函数:按工作号查询函数:
更新函数:查询函数:
删除函数:年龄统计函数:
按性别统计年龄查询函数
身份证排序:修改信息函数:
工资排序:
工作证号排序:
密码函数:
char branch[10]; /*部门*/
int salary;
char tel[10];
char pw[10]; /*用来存放用户修改后的密码,不进行输出*/
}t,work[max];
/*信息的保存*/
savemessage(int sum)
{FILE *fp;
int i;
if((fp=fopen("workman.txt","wt"))==NULL)
3.对已存入的员工信息进行更新操作,包括添加一个员工信息、删除某个员工信息和修改某个员工信息。
4.通过输入姓名、工作证号,年龄的方式查询员工信息。
5.最后输出学生信息,供需要时打印。
二、需求分析
1.该程序可用于对员工的雇佣情况基本信息的存储、更新、查询、输出等操作,以实现对员工的管理。
2.其中更新功能包括:添加信息、删除信息、修改信息,可根据需要添加一个或多个员工信息,也可对个别员工信息进行适当的删除或修改,以便随时更新员工信息。
printf("\n\n");
PRINT1;
PRINT4;
PRINT5;
n=2;
}
i++;
}while(i<sum);
printf("\t **按任意键返回**\n");
getch();
}
/*添加员工信息*/
insetmessage()
{int i=sum;
char ch,choice;
loop:clrscr();
修改密码函数:
六.调试情况及运行结果
1、 对自己设计进行评价,指出合理和不足之处,提出改进的方案。
此次实践课编写的是一个应用程序,相对于以前我们见到的程序,它要大得多,开始时,数据的输出格式不太规范,而且各模块也出现了一些小问题,在老师和同学的帮助下,通过自己一次又一次的进行调试和修改,最后运行的结果基本上达到了预期的目的。
}
/*信息的输出*/
outputmessage()
{int page=1,i=0,n=1,j,m=1;
char ch;
clrscr();
if(sum!=0)
{if(sum%5==0)
j=sum/5;
else
{while(sum>5*m)
m++;
j=m;
}
}
if(sum==0)
j=1;
clrscr();
scanf("%d-%d-%d",&work[i].birthday.year,&work[i].birthday.month,&work[i].birthday.day);
(2).添加模块:
可添加一个或多个员工信息,并将所添加员工信息保存,方便查找。
(3).删除模块:
可对辞职或被解雇的员工信息做删除处理。
(4).修改模块:
可根据需要对多个员工信息进行修改,也可随时对个别项进行修改。
(5).查询模块:
可对已建立的员工信息进行查询,并且可根据需要选择按姓名查询,年龄查询或按工作证号查询。
printf("\n\t *****添加新员工信息*****\n\n");
PRINT1;
printf("\n按任意键进入输入界面!!");
bioskey(0);
if(i<max-sum);
{clrscr();
printf("\t请输入员工工作证号:");
scanf("%s",work[i].worknum);
西安郵電學院
高级语言课程设计报告
题目:员工信息管理系统
系部名称
:
电子与信息工程
专业名称
:
电子科学与技术
班级
:
科技0701
班内序号
:
03
学生姓名
:
刘力源
指导教师
:
黄茹
时间
:
2008年6月9日至2008年6月20日
实验题目:员工信息管理系统
一、实验目的
1.熟悉c语言的编译连接和运行过程。
2.掌握c语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。
#define PRINT5 printf("%7d%6s%8s%6d%10s\n",work[i].old,work[i].duty,work[i].branch,work[i].salary,work[i].tel);
int sum; /*用来记录员工人数*/
/*日期结构体*/
struct date
continue;
else
{printf("输入错误,请重新输入\n") ;
goto loop; /*使用goto语句进行循环*/
}
}while(i<=max);
printf("\t %d种信息输入完毕\n",i);
sum=i;
printf("\t ***按任意键返回***\n");
bioskey(0);
#define PRINT2 printf("工作证号--姓名--身份证号--性别--出生日期");
#define PRINT3 printf("--年龄--职务--部门--工资--电话\n");
#define PRINT4 printf("%s%10s%10s%6s%6d-%2d-%2d",work[i].worknum,work[i].name,work[i].ID,work[i].sex,work[i].birthday.year,work[i].birthday.month,work[i].birthday.day);
printf("\n\t请输入员工电话:");
scanf("%s",work[i].tel);
strcpy(work[i].pw,"0");
i++;
loop:printf("\t ***是否继续输入信息?(y/n) ***\n");
ch=getch();
if(ch=='n')
break;
else if(ch=='y')
3.掌握if语句及switch语句的运用方法及ile.、for的使用。
5.掌握函数的定义方法和调用方法。
6.能够采用模块化思想调试程序。
二.实验内容
1.编写程序并进行调试运行。
2.输入员工资料,并保存于文件。每个员工包含信息:工作证号、姓名、性别、年龄、担任职务,工资等信息。
printf("\t *****员工基本信息列表*****\n");
printf("\t共%d页第%d页\n\n",j,page);
PRINT1;
PRINT2;
PRINT3;
printf("\n\n");
PRINT1;
do
{if(n<=5)
{PRINT4;
PRINT5;
n++;
}
else
{printf("\t **按任意键继续**\n");