企业员工信息管理系统 设计与实现 数据结构Word文件下载.docx
《企业员工信息管理系统 设计与实现 数据结构Word文件下载.docx》由会员分享,可在线阅读,更多相关《企业员工信息管理系统 设计与实现 数据结构Word文件下载.docx(16页珍藏版)》请在冰点文库上搜索。
2.1主界面设计
当输入相应的操作字符(比如:
0-6或者#),通过在主函数中选择并调用对应的子函数程序以及其他函数(比如:
菜单函数)中的辅助调用,实现并完成各自的功能操作(比如:
添加、查找、更改、排序、删除、显示等)。
系统主界面如下:
2.2存储结构设计
依据给定的数据格式,个人信息由九个字段来组成,即编号、姓名、性别、生日、学历、职务、电话和住址,外加一个判断关键字。
如:
编号|姓名|性别|出生年月|学历|职务|电话|住址
01opkn1991-10uq189p
本课程设计根据功能需求,使用线性结构来组织数据,由于要对表中某项数据进行插入、删除操作,所以使用链表比较方便。
2.3系统功能设计
依据程序的数据结构和功能,遵照“自顶向下”原则,描述该程序的层次结构,在总体上包括数据的插入、添加、删除、查找、更改和数据的排序以及数据的显示等功能模块。
(1)输入函数功能:
通过输入各项数据给数据元素,来建立一个数据表。
(2)排序函数功能:
按照指定关键字对员工信息进行排序。
(3)显示函数功能:
输出表中所有节点的信息。
(4)查找函数功能:
按照指定关键字,对相应员工信息进行查找。
(5)更改函数功能:
输入员工编号,查找到员工信息,对其信息进行更新。
(6)删除函数功能:
查找到要删除员工的相应信息,并将其从表中永久的删除。
(7)主函数功能:
调用以上子函数,并用开关语句进行选择性的调用。
(8)其它函数功能:
主要起辅助作用,比如:
菜单函数,主要起到引导作用;
释放空间函数,主要用于释放已经删除节点的信息,或者释放整个链表的节点信息。
模块设计
3.1系统子程序及功能设计
(1)输入函数:
Stuff*App(Stuff*head);
//通过输入各项数据给数据元素,来建立一个数据表。
(2)排序函数:
VoidSort(Stuff*head);
//按照指定关键字对员工信息进行排序。
(3)显示函数:
VoidShow(Stuff*head);
//输出表中所有节点的信息。
(4)查找函数:
Stuff*Search(Stuff*head);
//按照指定关键字,对相应员工信息进行查找。
(5)更改函数:
Stuff*Change(Stuff*head,Charn[10]);
//输入员工编号,查找到员工信息,对其信息进行更新。
(6)删除函数:
Stuff*Del(Stuff*head,Charn[10]);
//查找到要删除员工的响应信息,并将其从表中永久的删除。
(7)主函数:
Voidmain();
//调用以上子函数,并用开关语句进行选择性的调用。
(8)其他函数:
CharMenu();
//主要起到引导作用.
VoidFre(Stuff*head);
//主要用于释放已经删除节点的信息,或者释放整个链表的节点信息。
3.2系统功能图
图3-2系统功能图
详细设计
4.1数据类型定义
结构体定义:
typedefstructStuff
{
charnumber[10];
//编号
charname[10];
//姓名
charsex[8];
//性别
charbirthday[10];
//生日
chardegree[20];
//学历
charbusiness[20];
//职务
charphone[15];
//电话
charplace[50];
//住址
charcon[50];
//判断关键字
structStuff*next;
//指针域
}Stuff;
4.2系统主要子程序详细设计
1.输入函数:
函数原型:
Stuff*App(Stuff*head);
函数功能:
算法要点:
(1)用循环控制输入记录;
(2)为每一结构体数据项输入数据;
(3)返回输入记录数。
主要算法:
while(n)
{
p->
next=NULL;
//指针域为空
printf("
请输入第%d名员工:
\n"
n);
编号|姓名|性别|出生年月|学历|职务|电话|住址:
);
getchar();
scanf("
%s"
p->
number);
if(strcmp(p->
number,"
#"
))
++n;
%s%s%s%s%s%s%s"
name,p->
sex,p->
birthday,p->
degree,p->
business,p->
phone,p->
place);
}
}
}
2.排序函数:
voidSort(Stuff*head);
(1)比较法对信息进行排序;
(2)使用交换函数,对每项信息进行交换。
VoidSort(Stuff*head);
while(p->
next!
=NULL)//选择排序
q=p->
next;
r=p;
while(q!
=NULL)
{
if(Sel(ch,r,q))//调用判断函数
r=q;
q=q->
if(r!
=p)//交换信息
……
p=p->
3.显示函数:
voidShow(Stuff*head);
使用循环输出所有信息。
VoidShow(Stuff*head);
if(head!
printf("
员工信息如下:
while(p!
%d.%s%s%s%s%s%s%s%s\n"
n++,p->
number,p->
place);
p=p->
next;
else
printf("
信息为空!
4.查找函数:
Stuff*Search(Stuff*head);
(1)输入字段和信息相应字段的比较;
(2)函数中调用删除和更改函数。
while(p!
if(strcmp(q->
con,p->
number)==0||strcmp(q->
name)==0)
printf("
编号|姓名|性别|出生年月|学历|职务|电话|住址\n%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n"
是否需要:
1.更改2.删除3.继续\n"
scanf("
%c"
&
sh);
if(sh=='
1'
)
Change(head,p->
number);
//调用更改函数
elseif(sh=='
2'
head=Del(head,p->
//调用删除函数flag=1;
break;
5.更改函数:
Stuff*Change(Stuff*head,charn[10]);
(1)信息查找;
(2)信息重新录入及保存。
while(p!
if(!
strcmp(p->
number,n))
找到员工,请输入新的信息:
\n编号|姓名|性别|出生年月|学历|职务|电话|住址\n"
%s%s%s%s%s%s%s%s"
flag=1;
6.删除函数:
Stuff*Del(Stuff*head,charn[10]);
(1)按关键字查找信息;
(2)链表中删除节点信息,并释放节点空间。
while(strcmp(p->
number,n)&
&
p->
next!
pr=p;
if(!
number,n))
if(p==head)
head=p->
else
pr->
next=p->
free(p);
删除成功!
n--;
}
7.主函数:
主函数主要是调用以上的子函数,用开关语句进行选择性的调用。
大致程序如下:
switch(Menu())
case1:
调用函数语句;
break;
case2:
……
case0:
退出程序语句;
default:
输入错误,请重新输入!
}
8.其他函数:
这些函数主要起到辅助功能,比如:
菜单函数原型:
charMenu();
释放函数原型:
voidFre(Stuff*head);
测试分析
5.程序各功能的运行结果:
5.1系统主界面
5.2添加信息
(1)首先输入操作字符“1”;
(2)接着输入员工信息;
(3)最后输入操作字符“#”结束输入。
5.3排序信息
(1)首先输入操作字符“2”;
(2)接着输入操作字符“1”(即实现按“编号”排序);
5.4查找信息
(1)首先输入操作字符“3”;
(2)接着输入操作字符“1”(即实现按“编号”查找);
(3)再输入编号的字符“01”;
(4)最后输入操作字符“#”结束输入。
5.5输出信息
(1)首先输入操作字符“4”;
(2)最后按Enter键退出输出界面。
5.6更改信息
(1)首先输入操作字符“5”;
(2)接着输入编号的字符“01”;
(3)再输入新的员工信息,
比如:
编号||姓名||性别||出生年月||学历||职务||电话||住址
03gta1892-3jv160l
(4)最后按Enter键退出更改界面。
5.7删除信息
(1)首先输入操作字符“6”;
(2)接着输入编号的字符“03”;
(3)最后按Enter键退出删除界面。
5.8退出系统
(1)首先输入操作字符“0”;
(2)最后按任意键退出系统。
源程序清单
工作总结
通过本次数据结构课程设计,使我深深的意识到以下几个问题。
首先,要善于利用十分强大的互联网。
要不是通过互联网的搜索,找到了相应的程序与代码以及看到了很多人的经典构想与特殊思维,否则,真的不知道自己该如何解决程序中出现的一系列问题。
其次,勿忘好学多思。
经过这次实践,使我深深的意识到自身的严重不足。
知识储备远远不够、自身眼光看得太浅、自身学习精神与意志力缺乏等等。
最后,我想起了一句很有道理的名言。
即:
“感觉有问题,能力不够;
感觉有困难,方法不对。
”
参考文献
[1].耿国华.数据结构—C语言描述.高等教育出版社.2005/067511.
[2].谭浩强.C程序设计.清华大学出版社.2007/014674.