员工管理系统数据结构课程设计.docx
- 文档编号:17960447
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:21
- 大小:369.25KB
员工管理系统数据结构课程设计.docx
《员工管理系统数据结构课程设计.docx》由会员分享,可在线阅读,更多相关《员工管理系统数据结构课程设计.docx(21页珍藏版)》请在冰点文库上搜索。
员工管理系统数据结构课程设计
郑州轻工业学院
课程设计任务书
题目员工管理系统
专业、班级电子商务082学号************姓名陈超
主要内容、基本要求、主要参考资料等:
主要内容:
在进行了专业基础课和《数据结构》课程的基础上,设计一个实际的应用软件,初步软件设计的基本方法,提高进行工程设计的基本技能及分析、解决实际问题的能力,为毕业设计和以后的工程实践打下良好的基础。
基本要求:
巩固和加深对数据结构的理解,提高综合运用本课程所学知识的能力。
培养学生选用参考书,查阅手册及文献资料的能力。
培养独立思考,深入研究,分析问题、解决问题的能力。
过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。
够按要求编写课程设计报告书,能正确阐述设计和实验结果,正确绘制系统和程序框图。
通过课程设计,培养学生严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。
主要参考资料:
[1]严蔚敏,吴伟民.数据结构:
C语言版.清华大学出版社,2007.
完成期限:
2011年7月1日
指导教师签名:
课程负责人签名:
2011年6月27日
郑州轻工业学院本科
数据结构课程设计总结报告
设计题目:
员工管理系统
*******
系别:
国际教育学院
专业:
电子商务
班级:
08-02
学号:
************
*******
2011年6月30日
第一章设计题目
员工管理系统。
每个员工的信息包括:
编号、姓名、性别、出生年月、学历、职务、电话、住址等。
系统能够完成员工信息的查询、更新、插入、删除、排序等功能。
(1)排序:
按不同关键字,对所有员工的信息进行排序。
(2)查询:
按特定条件查找员工。
(3)更新:
按编号对某个员工的某项信息进行修改。
(4)插入:
加入新员工的信息。
(5)删除:
按编号删除已离职的员工的信息。
第二章运行环境
第一节硬件
处理器:
Pentium级处理器;推荐使用Pentium90或更高级处理器。
内存:
Windows95或更新版本需32兆内存(推荐使用48兆);WindowsNT4.0需要32兆(推荐使用48兆)。
硬盘:
VB典型安装需116兆,最大安装需135兆;VC需302至403兆;VFP需85兆至90兆;VID需81兆至98兆;VJ需86兆至104兆;VSS需59兆至141兆;IE需43兆至59兆;MSDN需57兆至493兆;NT4.0OptionPack:
Win95需用20兆,WinNT需用200兆;SQL(只用于NT)需80兆至95兆;SNA(只用于NT)50兆至100余兆;升级可能需要更多空间。
第二节软件
操作系统:
Win9x/NT/2000/XP
编译软件:
MrosoftVisualC++6.0/MrosoftVisualStudio6.0
第三章算法设计的思想
构造链表存储用户记录。
第四章
算法的流程图
图4.1算法的流程图
第五章算法设计分析
(1)构造链表存储用户记录。
(2)利用冒泡法对用户名和号码分别进行排序
(3)利用直接查找法进行查找
第六章源代码
第一节头文件
/*Linklist.h*/
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#defineTRUE1
#defineFALSE0
#defineOK1
#defineERROR0
#defineOVERFLOW-2
typedefstructLNode
{
charid[20];
charname[10];
charsex[10];
charbirth[10];
charedu[10];
charduty[10];
charphone[20];
charaddress[30];
structLNode*next;
}LNode,*Linklist;//定义节点类型
intCreatList(Linklist&L)
{
Linklistp;
p=(Linklist)malloc(sizeof(LNode));
if(!
p)
{
return(0);
}
else
{
printf("请输入员工编号\n");
scanf("%s",p->id);
printf("请输入员工姓名\n");
scanf("%s",p->name);
printf("请输入员工性别\n");
scanf("%s",p->sex);
printf("请输入员工生日\n");
scanf("%s",p->birth);
printf("请输入员工学历\n");
scanf("%s",p->edu);
printf("请输入员工职务\n");
scanf("%s",p->duty);
printf("请输入员工电话\n");
scanf("%s",p->phone);
printf("请输入员工地址\n");
scanf("%s",p->address);
}
p->next=L->next;
L->next=p;
}//头插法生成单链表
intInitlist(Linklist&L)
{
L=(Linklist)malloc(sizeof(LNode));
if(!
L)
return(0);
L->next=NULL;
returnOK;
}//初始化单链表
voidDisplay(Linklist&L)
{
Linklistp;
for(p=L->next;p;p=p->next)
{
printf("编号%s\n",p->id);
printf("姓名%s\n",p->name);
printf("性别%s\n",p->sex);
printf("生日%s\n",p->birth);
printf("学历%s\n",p->edu);
printf("职务%s\n",p->duty);
printf("电话%s\n",p->phone);
printf("地址%s\n",p->address);
printf("============================\n");
}
}//显示所有员工信息
intSearchID(Linklist&L,charid[20])
{
LNode*p;
p=L;
while(p)
{
if(strcmp(p->id,id)==0)
{
printf("编号%s\n",p->id);
printf("姓名%s\n",p->name);
printf("性别%s\n",p->sex);
printf("生日%s\n",p->birth);
printf("学历%s\n",p->edu);
printf("职务%s\n",p->duty);
printf("电话%s\n",p->phone);
printf("地址%s\n",p->address);
}
p=p->next;
}
returnOK;
}//查询ID
intSearchName(Linklist&L,charname[10])
{
LNode*p;
p=L;
while(p)
{
if(strcmp(p->name,name)==0)
{
printf("编号%s\n",p->id);
printf("姓名%s\n",p->name);
printf("性别%s\n",p->sex);
printf("生日%s\n",p->birth);
printf("学历%s\n",p->edu);
printf("职务%s\n",p->duty);
printf("电话%s\n",p->phone);
printf("地址%s\n",p->address);
}
p=p->next;
}
returnOK;
}//查询姓名
voidSort(Linklist&L)
{
LinklistLa;
Linklistp,q,m;
La=(Linklist)malloc(sizeof(LNode));
La->next=NULL;
while(L->next)
{
for(q=L->next,p=L->next;p->next;p=p->next)
{
if((strcmp(p->next->id,q->id))>0)
{
m=p;
q=p->next;
}
}
if(q==L->next)
{
L->next=L->next->next;
}
else
{
m->next=q->next;
}
q->next=La->next;
La->next=q;
}
L=La;
Display(L);
}//排序
intAlter(Linklist&L,charid[20])
{
LNode*p;
p=L;
while(p)
{
if(strcmp(p->id,id)==0)
{
printf("请输入员工编号\n");
scanf("%s",p->id);
printf("请输入员工姓名\n");
scanf("%s",p->name);
printf("请输入员工性别\n");
scanf("%s",p->sex);
printf("请输入员工生日\n");
scanf("%s",p->birth);
printf("请输入员工学历\n");
scanf("%s",p->edu);
printf("请输入员工职务\n");
scanf("%s",p->duty);
printf("请输入员工电话\n");
scanf("%s",p->phone);
printf("请输入员工地址\n");
scanf("%s",p->address);
}
p=p->next;
}
returnOK;
}//更改
intDel(Linklist&L,charid[20])
{
LNode*p;
LNode*r;
p=L->next;
r=L;
while(!
(strcmp(p->id,id)==0)&&p)
{
r=p;
p=p->next;
}
if(!
p)
printf("\n删除位置不合理\n");
else
{
r->next=p->next;
free(p);
printf("删除成功\n");
}
returnOK;
}//按ID删除
第二节主程序
#include"Linklist.h"
//主函数
voidmain()
{
LinklistL;
inta;
charm;
charname[10];
charid[20];
Initlist(L);
inty;
intx=1;
while(x)
{
printf("****************************\n");
printf("欢迎进入陈超的员工管理系统!
\n");
printf("****************************\n");
printf("1-添加员工信息\n");
printf("2-查询员工信息\n");
printf("3-排序员工信息\n");
printf("4-显示所有员工信息\n");
printf("5-更改员工信息\n");
printf("6-删除员工信息\n");
printf("7-退出\n");
printf("****************************\n");
printf("请选择操作序号并按回车:
");
scanf("%d",&y);
switch(y)
{
case1:
CreatList(L);
do
{
printf("是否继续输入?
(y/n)");
getchar();
scanf("%c",&m);
if(m=='y')
{
CreatList(L);
}
}
while(m!
='n');
break;
case2:
printf("请输入查询方式(1按编号查询,2按姓名查找)");
scanf("%d",&a);
if(a==1)
{
printf("请输入查询员工编号\n");
scanf("%s",&id);
SearchID(L,id);
}
if(a==2)
{
printf("请输入查询员工姓名\n");
scanf("%s",&name);
SearchName(L,name);
}
break;
case3:
Sort(L);
break;
case4:
printf("所有员工信息如下所示\n");
Display(L);
break;
case5:
printf("请输入更改员工编号");
getchar();
scanf("%s",&id);
Alter(L,id);
break;
case6:
printf("请输入删除员工编号");
getchar();
scanf("%s",&id);
Del(L,id);
break;
case7:
x=0;
break;
default:
printf("请输入正确序号!
\n");
break;
}
}
}
第七章运行结果分析
图7.1员工管理系统主界面
图7.2添加员工信息
图7.3按编号查询员工信息
图7.4按姓名查询员工信息
图7.5排序员工信息
图7.6显示所有员工信息
图7.7更改员工信息
图7.8删除员工信息
图7.9退出员工管理系统
图7.10操作序号输入错误
第八章
收获及体会
一周的数据结构课程设计结束了,在考试前组织这次课程设计是非常有必要的也是很有效的,让我把数据结构这门课课堂上学习的知识更实际地运用到生活实践中,加深了对相关知识的理解,现实的来说更有助于考试。
在本次课程设计中我的学号01%8+1=2,所以我的题目是第二题员工管理系统。
事实上拿到这个题目的第一感觉就是我想用ROSE来做系统,因为在上周刚刚做了系统设计分析的课程设计。
在网上搜索了一下这个课题,发现有很多相同题目的报告书和源代码,但是这些系统其中不是有界面不美观的错误就是有漏洞,但是主体思想都是以链表结构来实现管理系统的录入查询等功能,所以只能作为参考自己新设计一套东西,使之人性化一些。
相比较SQL或UML来讲,在我现有的C语言知识层面下,我的这个系统与这两种数据库和建模语言有很大差距,而且实现起来不那么方便,没有数据库来得直观。
在数据录入时,我不知道哪个函数可以用来检验数据是否溢出,这对于我的系统来讲是个致命的打击,尤其是在溢出后查询时找不到查询项。
我不得不把数据项的字符数写大一些,这又造成了内存的冗余,很是纠结。
但是总体来讲,对于链表的数据结构思想大致还是熟悉了,这应该算是达到了课程设计的目的吧。
以后如果需要用到员工管理系统我还是比较倾向于那两种语言,对于是否能用C语言来细化编写和增加人机交互,这取决于自己的能力能否更加提高。
在这里感谢王捷老师和王治国老师的悉心指导,为我的系统解决了很多难题,但是能力所限有些人机交互做的还不是很好,希望在日后的编程工作中能够进步。
第九章
参考文献
[1]严蔚敏,吴伟民.数据结构:
C语言版.清华大学出版社,2007.
[2]教育部考试中心.全国计算机等级考试二级教程.高等教育出版社,2007.8.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 员工 管理 系统 数据结构 课程设计