数据结构课程设计员工信息管理系统docWord文档格式.docx
《数据结构课程设计员工信息管理系统docWord文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计员工信息管理系统docWord文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
4、可对员工信息进行删除;
5、可对员工信息进行修改,但应注意员工号不能修改,修改应逐个进行,一个员工记录的更改不应影响其他的员工记录;
6、可对全部的员工信息进行显示v(员工信息浏览),注意员工信息的显示规范;
员工信息应包括姓名、员工编号、性别、年龄、生日、学历、职务、联系电话、住址。
二、概要设计
2.1、抽象数据类型
ADTList{
数据对象:
D={ai|ai∈ElemSet,i=1,2,·
·
,n,n>
=0}
数据关系:
R1={<
ai-1,ai>
|ai-1,ai∈D,i=1,2,·
,n}
基本操作:
InitList(&
L);
操作结果:
构造一个空的线性表L。
DestroyList(&
初始条件:
线性表L存在。
销毁线性表L。
LocateElem(L,I,&
e);
线性表L存在,1<
i<
Listlength(L)。
用e返回线性表L中第i个数据元素的值。
ClearList(&
将线性表L重置为空表。
}ADTGraph
2.2、程序流程
系统的执行从菜单的选择开始,依据用户的选择进行相应的处理,直到用户选择退出系统为止。
其间应对用户的选择做出判断及异常处理。
系统的流程如图1所示:
图1员工信息管理系统流程图
三、详细设计
3.1函数构成
(1)主函数:
voidmain();
(2)文件读入函数:
voidreaddata();
(3)文件写入函数:
voidwritedata();
(4)菜单函数
函数原型:
voidMenu()
功能:
此函数的功能为依据用户选择的功能来进行相应的处理,直到用户选择退出系统为止,包括员工信息的查询、更新、列表及退出管理;
(5)信息查询函数
voidchaxun()
该函数的功能是按照用户的选择进行不同方式的查找,本程序实现了按三种方式进行查找,包括按编号、姓名、生日查找;
(6)信息更新函数
voidgengxin()
此函数的功能为使用户修改记录。
首先判断用户要修改的记录是否存在,因为只有员工编号是唯一的,所以根据员工编号进行查找。
若存在则用用户输入的新的信息替换原信息;
若不存在则函数结束。
在此函数中要注意的是文件的打开方式应为”rb+”,因为在这个函数中不仅要读文件,还要向文件中写入数据,所以要用读写的方式打开二进制文件;
(7)信息一览函数
voidliebiao()
此函数的功能为从文件中依次取出每条记录并将其显示出来。
因为只需读文件不需要向文件中写入数据,所以文件的打开方式是只读。
3.2模块程序清单(详细程序见附录)
1、员工信息的结构体:
Typedefstructemp
{
longintnum;
//编号
charname[20];
//姓名
intage;
//年龄
charsex[4];
//性别
charbirthday[10];
//生日
chartel[15];
//电话
charedu[8];
//学历
charpos[20];
//职务
charadd[30];
//住址
structemp*next;
};
2、菜单函数:
voidmenu(void)
{chari,lj[100];
intflog;
time_tT;
structtm*timenow;
time(&
T);
timenow=localtime(&
flog=0;
while
(1)
{
system("
cls"
);
printf("
\n\n\n\n\n"
printf("
┏━━━━━━━━━员工信息管理系统━━━━━━━━━┓\n"
┃┃\n"
┃1.员工信息查询┃\n"
┃2.员工信息更新┃\n"
┃3.员工信息列表┃\n"
┃0.退出管理系统┃\n"
┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"
%s"
asctime(timenow));
请输入您的选择(数字0-3):
\n"
scanf("
%c"
&
i);
gets(lj);
if(lj[0])i='
a'
;
switch(i)
{case'
1'
:
chaxun();
break;
case'
2'
gengxin();
3'
liebiao();
0'
flog=1;
default:
printf("
输入有误,请按回车键重新输入\n"
}if(flog)break;
}}
3、信息查询函数:
chari,lj[100];
time_tT;
┏━━━━━━━━━员工信息查询系统━━━━━━━━━┓\n"
┃┃\n"
┃1.按照编号查询┃\n"
┃2.按照姓名查询┃\n"
┃3.按照生日查询┃\n"
┃0.退出管理系统┃\n"
┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"
%s"
switch(i)
{
case'
bianhao();
case'
xingming();
shengri();
default:
输入有误,请重新输入\n"
}if(flog)break;
4、信息更新函数:
while
(1)
┏━━━━━━━━员工信息更新系统━━━━━━━━━┓\n"
┃┃\n"
┃1.员工信息添加┃\n"
┃2.员工信息删除┃\n"
┃3.员工信息修改┃\n"
┃0.退出管理系统┃\n"
┗━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"
asctime(timenow));
gets(lj);
if(lj[0])i='
tianjia();
shanchu();
xiugai();
}
if(flog)break;
}