数据结构课程设计员工信息管理系统.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12信计2013-2014(一)
数据结构课程设计
设计题目员工信息管理系统
设计时间2014.1.6~2014.1.10
学生姓名葛考
学生学号20120402127
所在班级12精算
指导教师刘风华
徐州工程学院数学与物理科学学院
题目员工信息管理系统
一、需求分析
员工信息管理系统设计,具体功能如下:
1、系统以菜单方式工作,应为用户提供清晰的使用提示,依据用户的选择来进行各种处
理,并且在此过程中能够尽可能的兼容用户使用过程中的输入异常情况。
2、员工信息录入系统(员工信息用文件保存),注意员工按员工编号进行区分,即每个
员工的员工编号都是唯一的,不允许出现两个员工或员工编号相同的情况。
3、可对员工信息进行查询,具体分为:按姓名查询、按员工号查询、按生日查询;
4、可对员工信息进行删除;
5、可对员工信息进行修改,但应注意员工号不能修改,修改应逐个进行,一个员工记录
的更改不应影响其他的员工记录;
6、可对全部的员工信息进行显示v(员工信息浏览),注意员工信息的显示规范;
员工信息应包括姓名、员工编号、性别、年龄、生日、学历、职务、联系电话、住址。
二、概要设计
2.1、抽象数据类型
ADT List{
数据对象:D={ai|ai∈ElemSet,i=1,2,······,n,n>=0}
数据关系:R1={
基本操作:
Init List(&L);
操作结果:构造一个空的线性表L。
DestroyList(&L);
初始条件:线性表L存在。
操作结果:销毁线性表L。
LocateElem(L,I,&e);
初始条件:线性表L存在,1
操作结果:用e返回线性表L中第i个数据元素的值。
ClearList(&L);
初始条件:线性表L存在。
操作结果:将线性表L重置为空表。
}ADT Graph
2.2、程序流程
系统的执行从菜单的选择开始,依据用户的选择进行相应的处理,直到用户选择退出系统为止。其间应对用户的选择做出判断及异常处理。系统的流程如图1所示:
图1 员工信息管理系统流程图
三、详细设计
3.1函数构成
(1)主函数:void main();
(2)文件读入函数:void read data();
(3)文件写入函数:void write data();
(4)菜单函数
函数原型:void Menu()
功能:此函数的功能为依据用户选择的功能来进行相应的处理,直到用户选择退出系统为止,包括员工信息的查询、更新、列表及退出管理;
(5)信息查询函数
函数原型:void chaxun()
功能:该函数的功能是按照用户的选择进行不同方式的查找,本程序实现了按三种方式进行查找,包括按编号、姓名、生日查找;
(6)信息更新函数
函数原型:void gengxin()
功能:此函数的功能为使用户修改记录。首先判断用户要修改的记录是否存在,因为只有员工编号是唯一的,所以根据员工编号进行查找。若存在则用用户输入的新的信息替换原信息;若不存在则函数结束。在此函数中要注意的是文件的打开方式应为”rb+”,因为在这个函数中不仅要读文件,还要向文件中写入数据,所以要用读写的方式打开二进制文件;
(7)信息一览函数
函数原型:void liebiao()
功能:此函数的功能为从文件中依次取出每条记录并将其显示出来。因为只需读文件不需要向文件中写入数据,所以文件的打开方式是只读。
3.2模块程序清单(详细程序见附录)
1、员工信息的结构体:
Typedef struct emp
{
long int num; //编号
char name[20]; //姓名
int age; //年龄
char sex[4]; //性别
char birthday[10]; //生日
char tel[15]; //电话
char edu[8]; //学历
char pos[20]; //职务
char add[30]; //住址
struct emp *next;
};
2、菜单函数:
void menu(void)
{ char i,lj[100]; int flog;time_t T;
struct tm * timenow;
time ( &T );timenow = localtime ( &T );
flog=0;
while(1)
{
system("cls"); printf("\n\n\n\n\n");
printf(" ┏━━━━━━━━━员工信息管理系统━━━━━━━━━┓\n");
printf(" ┃┃\n");
printf(" ┃┃\n");
printf(" ┃┃\n");
printf(" ┃ 1.员工信息查询┃\n");
printf(" ┃┃\n");
printf(" ┃┃\n");
printf(" ┃┃\n");
printf(" ┃ 2.员工信息更新┃\n");
printf(" ┃┃\n");
printf(" ┃┃\n");
printf(" ┃┃\n");
printf(" ┃ 3.员工信息列表┃\n");
printf(" ┃┃\n");
printf(" ┃┃\n");
printf(" ┃┃\n");
printf(" ┃0.退出管理系统┃\n");
printf(" ┃┃\n");
printf(" ┃┃\n");
printf(" ┃┃\n");
printf(" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");
printf(" %s", asctime (timenow) );
printf("请输入您的选择(数字0-3):\n");