企业员工信息管理系统 设计与实现c语言Word下载.docx
- 文档编号:7448327
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:32
- 大小:159.59KB
企业员工信息管理系统 设计与实现c语言Word下载.docx
《企业员工信息管理系统 设计与实现c语言Word下载.docx》由会员分享,可在线阅读,更多相关《企业员工信息管理系统 设计与实现c语言Word下载.docx(32页珍藏版)》请在冰点文库上搜索。
编号|姓名|性别|出生年月|学历|职务|电话|住址
01fdfn1991-10bq189p
本课程设计根据功能需求,使用线性结构来组织数据,由于要对表中某项数据进行插入、删除操作,所以使用链表比较方便。
2.3系统功能设计
依据程序的数据结构和功能,遵照“自顶向下”原则,描述该程序的层次结构,在总体上包括数据的插入、添加、删除、查找、更改和数据的排序以及数据的显示等功能模块。
(1)输入函数功能:
通过输入各项数据给数据元素,来建立一个数据表。
(2)排序函数功能:
按照指定关键字对员工信息进行排序。
(3)显示函数功能:
输出表中所有节点的信息。
(4)查找函数功能:
按照指定关键字,对相应员工信息进行查找。
(5)更改函数功能:
输入员工编号,查找到员工信息,对其信息进行更新。
(6)删除函数功能:
查找到要删除员工的相应信息,并将其从表中永久的删除。
(7)主函数功能:
调用以上子函数,并用开关语句进行选择性的调用。
(8)其它函数功能:
主要起辅助作用,比如:
菜单函数,主要起到引导作用;
释放空间函数,主要用于释放已经删除节点的信息,或者释放整个链表的节点信息。
模块设计
3.1系统子程序及功能设计
1.创建成员表函数
Stuff*Cre(Stuff*head)//创建一个员工的信息列表
2.添加成员函数
Stuff*App(Stuff*head)//添加其他员工的信息列
3.排序函数
voidSort(Stuff*head)//按照编号等对员工进行排序
4.判断函数
intSel(charch,Stuff*p,Stuff*q)//判断该员工是否存在
5.查找函数
Stuff*Search(Stuff*head)//查找该员工的信息情况
6.更改函数
Stuff*Change(Stuff*head,charn[10])//更改员工的信息情况
7.删除函数
Stuff*Del(Stuff*head,charn[10])//删除员工的信息情况
3.2系统功能图
详细设计
4.1数据类型定义
1.员工结构体定义
structStuff
{
charnumber[10];
charname[10];
charsex[8];
charborth[10];
chardegree[20];
charbusiness[20];
charphone[15];
charplace[50];
charcon[50];
structStuff*next;
};
4.2系统主要子程序详细设计
1.输入函数:
Stuff*App(Stuff*head)
Stuff*p=NULL,*q=head;
while(n)
{
p=(Stuff*)malloc(sizeof(Stuff));
//申请结构体空间
if(p==NULL)
{
printf("
空间不足,自动退出系统!
\n"
);
exit(0);
}
p->
next=NULL;
//指针域为空
printf("
请输入第%d名员工:
n);
编号|姓名|性别|出生年月|学历|职务|电话|住址:
getchar();
scanf("
%s"
p->
number);
if(strcmp(p->
number,"
#"
))
++n;
scanf("
%s%s%s%s%s%s%s"
name,p->
sex,p->
birthday,p->
degree,p->
business,p->
phone,p->
place);
con[0]='
\0'
;
//防止后面判断出现随机值
if(head==NULL)
head=p;
else
{
while(q->
next!
=NULL)
q=q->
next;
q->
next=p;
}
q=p;
//尾插法
if(!
strcmp(p->
number,"
free(p);
//完成添加,释放多余空间
break;
}
returnhead;
}
2.排序函数:
voidSort(Stuff*head)
charch;
Stuff*p,*q,*r;
while
(1)
printf("
请选择排序条件:
1.编号|2.姓名|0.退出\n"
getchar();
%c"
&
ch);
if(ch=='
0'
)
if(ch<
'
1'
||ch>
2'
输入错误,请重新输入!
continue;
p=head;
while(p->
next!
=NULL)//选择排序
q=p->
next;
r=p;
while(q!
=NULL)
if(Sel(ch,r,q))//调用判断函数
r=q;
if(r!
=p)//交换信息
Scpy(r->
number,p->
number);
Scpy(r->
name,p->
name);
sex,p->
sex);
birthday,p->
birthday);
degree,p->
degree);
business,p->
business);
phone,p->
phone);
place,p->
place);
p=p->
Show(head);
//输出
3.显示函数:
voidShow(Stuff*head)
Stuff*p=head;
intn=1;
if(head!
员工信息如下:
while(p!
%d.%s%s%s%s%s%s%s%s\n"
n++,p->
number,p->
p=p->
信息为空!
4.查找函数:
Stuff*Search(Stuff*head)
Stuff*p=NULL,*q,a={"
\0"
"
intflag;
//查找判断
charch,sh;
//两个控制变量
q=&
a;
请输入要查找的条件:
1.编号2.姓名0.退出\n"
%c"
continue;
请输入:
"
gets(q->
con);
p=head;
//指向表头
flag=0;
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("
sh);
if(sh=='
Change(head,p->
//调用更改函数
elseif(sh=='
head=Del(head,p->
//调用删除函数
flag=1;
break;
p=p->
if(flag==0)
没有找到该员工信息!
5.更改函数:
Stuff*Change(Stuff*head,charn[10])
intflag=0;
信息表为空,请先建立信息表!
if(!
number,n))
找到员工,请输入新的信息:
\n编号|姓名|性别|出生年月|学历|职务|电话|住址\n"
%s%s%s%s%s%s%s%s"
未找到该员工信息!
//删除函数
Stuff*Del(Stuff*head,charn[10])
Stuff*p,*pr;
flag=0;
p=head,pr=head;
未找到员工信息!
while(strcmp(p->
number,n)&
&
p->
pr=p;
number,n))
if(p==head)
head=p->
else
pr->
next=p->
删除成功!
n--;
else
6.删除函数:
voidFre(Stuff*head)
Stuff*p;
while(head!
head=head->
free(p);
}
7.主函数:
voidmain()
charIndex[10];
Stuff*head=NULL;
//链表头指针定义
---------------欢迎使用《员工信息管理系统》-------------\n"
Sleep(1000);
switch(Menu())
//case1:
//head=Cre(head);
//break;
case1:
请输入员工信息,直接输入'
#'
结束\n"
head=App(head);
case2:
Sort(head);
case3:
head=Search(head);
case4:
case5:
请输入员工编号:
Index);
Change(head,Index);
case6:
head=Del(head,Index);
case0:
-------------------欢迎下次光临!
-----------------\n"
Sleep(2000);
break;
default:
按Enter键继续~"
system("
cls"
//清屏效果
Fre(head);
8.其他函数:
charMenu();
//菜单函数
voidShow(Stuff*head);
//输出函数
测试分析
各功能的运行结果:
(1)添加界面
(2)排序界面
(3)查找界面
(4)输出员工界面
(5)更改员工信息界面
(6)删除员工信息界面
数据域指针域
源程序清单
#include"
stdio.h"
stdlib.h"
windows.h"
string.h"
typedefstructStuff
charsex[8];
charbirthday[10];
}Stuff;
//Stuff*Cre(Stuff*head);
Stuff*App(Stuff*head);
voidSort(Stuff*head);
Stuff*Search(Stuff*head);
Stuff*Change(Stuff*head,charn[10]);
voidScpy(char*p,char*q);
Stuff*Del(Stuff*head,charn[10]);
intSel(charch,Stuff*p,Stuff*q);
voidFre(Stuff*head);
intn=1;
//菜单函数
charMenu(void)
intch;
printf("
--------------------欢迎光临-------------------\n"
//printf("
1.建立员工信息\n"
*1.添加员工信息2.员工信息排序*\n"
*3.查找员工信息4.输出员工信息*\n"
*5.更改员工信息6.删除员工信息*\n"
*0.退出*\n"
-----------------------------------------------\n"
请选择你的操作:
%d"
returnch;
//创建成员表函数
//Stuff*Cre(Stuff*head)
//{
//Stuff*p=NULL,*q=head;
//p=(Stuff*)malloc(sizeof(Stuff));
//App(head);
//returnhead;
//}
//添加成员函数
//排序函数
if(Sel(ch,r,q))
=p)
//交换函数
voidScpy(char*p,char*q)
charc[50];
strcpy(c,p);
strcpy(p,q);
strcpy(q,c);
//判断函数
intSel(charch,Stuff*p,Stuff*q)
switch(ch)
case'
:
returnstrcmp(q->
number)<
0||strcmp(q->
con,p->
number)==0;
returnstrcmp(q->
name)<
name)==0;
default:
//查找函数
\
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 企业员工信息管理系统 设计与实现 c语言 企业 员工 信息管理 系统 设计 实现 语言