企业员工信息管理系统 设计与实现 c语言.docx
- 文档编号:4844605
- 上传时间:2022-12-10
- 格式:DOCX
- 页数:13
- 大小:154.08KB
企业员工信息管理系统 设计与实现 c语言.docx
《企业员工信息管理系统 设计与实现 c语言.docx》由会员分享,可在线阅读,更多相关《企业员工信息管理系统 设计与实现 c语言.docx(13页珍藏版)》请在冰豆网上搜索。
企业员工信息管理系统设计与实现c语言
《算法与数据结构》
课程设计
题目:
企业员工信息管理系统
设计与实现
院、系:
计算机信息与技术系
学科专业:
计算机科学与技术
学号:
B
学生姓名:
**************
2012年9月16日
设计要求
问题描述
近年来,随着企业彼此间的竞争日趋激烈,信息管理技术在企业的发展中占据着越来越重要的地位。
在企业的经营生产中,员工信息已成为企业经营管理中不可缺少的一部分,为管理者进行管理决和进行各种人事调配活动提供了重要的依据,在生产分配安排中发挥了越来越重要的作用。
此次课程设计应该具有的功能是能够查看员工的个人信息,每个员工的信息包括:
编号、姓名、性别、部门、工资;系统能够完成员工信息的查询、更新、插入、删除、排序等功能。
需求分析
(1)在相应的每条记录中,应该包括该员工的所有信息,譬如:
编号、姓名、性别、出生年月、学历、职务、电话、住址等;
(2)根据不同关键字(如编号,姓名等),对所有员工的信息进行排序;
(3)按照指定条件查找某个员工的所有信息;
(4)按编号对某个员工的信息进行更改;
(5)添加新员工的信息,并实现排序;
(6)按编号删除已离职的员工的信息;
(7)与此同时,除了以上基本的需求以外,该企业员工信息管理系统的程序源代码还应具有良好的编程结构和适当的注释,运行界面清晰,提示内容明确,易于操作。
概要设计
主界面设计
当输入相应的操作字符(比如:
0-6或者#),通过在主函数中选择并调用对应的子函数程序以及其他函数(比如:
菜单函数)中的辅助调用,实现并完成各自的功能操作(比如:
添加、查找、更改、排序、删除、显示等)。
系统主界面如下:
存储结构设计
依据给定的数据格式,个人信息由九个字段来组成,即编号、姓名、性别、生日、学历、职务、电话和住址,外加一个判断关键字。
如:
编号|姓名|性别|出生年月|学历|职务|电话|住址
01fdfn1991-10bq189p
本课程设计根据功能需求,使用线性结构来组织数据,由于要对表中某项数据进行插入、删除操作,所以使用链表比较方便。
系统功能设计
依据程序的数据结构和功能,遵照“自顶向下”原则,描述该程序的层次结构,在总体上包括数据的插入、添加、删除、查找、更改和数据的排序以及数据的显示等功能模块。
(1)输入函数功能:
通过输入各项数据给数据元素,来建立一个数据表。
(2)排序函数功能:
按照指定关键字对员工信息进行排序。
(3)显示函数功能:
输出表中所有节点的信息。
(4)查找函数功能:
按照指定关键字,对相应员工信息进行查找。
(5)更改函数功能:
输入员工编号,查找到员工信息,对其信息进行更新。
(6)删除函数功能:
查找到要删除员工的相应信息,并将其从表中永久的删除。
(7)主函数功能:
调用以上子函数,并用开关语句进行选择性的调用。
(8)其它函数功能:
主要起辅助作用,比如:
菜单函数,主要起到引导作用;释放空间函数,主要用于释放已经删除节点的信息,或者释放整个链表的节点信息。
模块设计
系统子程序及功能设计
1.创建成员表函数
Stuff*Cre(Stuff*head)排序函数
voidSort(Stuff*head)判断函数
intSel(charch,Stuff*p,Stuff*q)查找函数
Stuff*Search(Stuff*head)删除函数
Stuff*Del(Stuff*head,charn[10])
工结构体定义
structStuff
{
charnumber[10];
charname[10];
charsex[8];
charborth[10];
chardegree[20];
charbusiness[20];
charphone[15];
charplace[50];
charcon[50];
structStuff*next;
};
系统主要子程序详细设计
1.输入函数:
Stuff*App(Stuff*head)
{
Stuff*p=NULL,*q=head;
while(n)
{
p=(Stuff*)malloc(sizeof(Stuff));序函数:
voidSort(Stuff*head)
{
charch;
Stuff*p,*q,*r;
while
(1)
{
printf("请选择排序条件:
1.编号|2.姓名|0.退出\n");
getchar();
scanf("%c",&ch);
if(ch=='0')
break;
if(ch<'1'||ch>'2')
{
printf("输入错误,请重新输入!
\n");
continue;
}
p=head;
while(p->next!
=NULL)示函数:
voidShow(Stuff*head)
{
Stuff*p=head;
intn=1;
if(head!
=NULL)
{
printf("员工信息如下:
\n");
printf("编号|姓名|性别|出生年月|学历|职务|电话|住址:
\n");
while(p!
=NULL)
{
printf("%d.%s%s%s%s%s%s%s%s\n"
n++,p->number,p->name,p->sex,p->birthday,p->degree,p->business,p->phone,p->place);
p=p->next;
}
}
else
{
printf("信息为空!
\n");
}
}
4.查找函数:
Stuff*Search(Stuff*head)
{
Stuff*p=NULL,*q,a={"\0","\0","\0","\0","\0","\0","\0","\0"};
intflag;号2.姓名0.退出\n");
scanf("%c",&ch);
if(ch=='0')
break;
if(ch<'1'||ch>'2')
{
printf("输入错误,请重新输入!
\n");
continue;
}
getchar();
printf("请输入:
");
gets(q->con);
p=head;改2.删除3.继续\n");
scanf("%c",&sh);
if(sh=='1')
Change(head,p->number);改函数:
Stuff*Change(Stuff*head,charn[10])
{
Stuff*p=head;
intflag=0;
if(head==NULL)
printf("信息表为空,请先建立信息表!
\n");
else
{
while(p!
=NULL)
{
if(!
strcmp(p->number,n))
{
printf("找到员工,请输入新的信息:
\n编号|姓名|性别|出生年月|学历|职务|电话|住址\n");
scanf("%s%s%s%s%s%s%s%s",p->number,p->name,p->sex,p->birthday,p->degree,p->business,p->phone,p->place);
printf("员工信息如下:
\n");
flag=1;
}
p=p->next;
}
if(flag==0)
printf("未找到该员工信息!
\n");
}
Show(head);
returnhead;
}
Del除函数:
voidFre(Stuff*head)
{
Stuff*p;
while(head!
=NULL)
{
p=head;
head=head->next;
free(p);
}
}
7.主函数:
voidmain()
{
charIndex[10];
Stuff*head=NULL;Del他函数:
charMenu();
数据域指针域
Del立员工信息\n");
printf("*1.添加员工信息2.员工信息排序*\n");
printf("*3.查找员工信息4.输出员工信息*\n");
printf("*5.更改员工信息6.删除员工信息*\n");
printf("*0.退出*\n");
printf("-----------------------------------------------\n");
printf("请选择你的操作:
");
scanf("%d",&ch);
returnch;
}
号|2.姓名|0.退出\n");
getchar();
scanf("%c",&ch);
if(ch=='0')
break;
if(ch<'1'||ch>'2')
{
printf("输入错误,请重新输入!
\n");
continue;
}
p=head;
while(p->next!
=NULL)
{
q=p->next;
r=p;
while(q!
=NULL)
{
if(Sel(ch,r,q))
r=q;
q=q->next;
}
if(r!
=p)
Scpy(r->number,p->number);
Scpy(r->name,p->name);
Scpy(r->sex,p->sex);
Scpy(r->birthday,p->birthday);
Scpy(r->degree,p->degree);
Scpy(r->business,p->business);
Scpy(r->phone,p->phone);
Scpy(r->place,p->place);
}
p=p->next;
}
Show(head);
}
}
号2.姓名0.退出\n");
scanf("%c",&ch);
if(ch=='0')
break;
if(ch<'1'||ch>'2')
{
printf("输入错误,请重新输入!
\n");
continue;
}
getchar();
printf("请输入:
");
gets(q->con);
p=head;
flag=0;
while(p!
=NULL)
{
if(strcmp(q->con,p->number)==0||strcmp(q->con,p->name)==0)
{
printf("员工信息如下:
\n");
printf("编号|姓名|性别|出生年月|学历|职务|电话|住址\n%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->number,p->name,p->sex,p->birthday,p->degree,p->business,p->phone,p->place);
printf("是否需要:
1.更改2.删除3.继续\n");
scanf("%c",&sh);
if(sh=='1')
Change(head,p->number);
elseif(sh=='2')
head=Del(head,p->number);
flag=1;
break;
}
p=p->next;
}
if(flag==0)
printf("没有找到该员工信息!
\n");
}
returnhead;
}
Del%s%s%s%s%s%s%s%s\n"
n++,p->number,p->name,p->sex,p->birthday,p->degree,p->business,p->phone,p->place);
p=p->next;
}
}
else
{
printf("信息为空!
\n");
}
}
[1].Del据结构—C语言描述.高等教育出版社.2005/067511.
[2].谭浩强.C程序设计.清华大学出版社.2007/014674.
[3].严蔚敏,吴伟民.数据结构:
C语言版.清华大学出版社,2007.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 企业员工信息管理系统 设计与实现 c语言 企业 员工 信息管理 系统 设计 实现 语言