用简单链表管理员工信息文档格式.docx
- 文档编号:16893769
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:12
- 大小:150.02KB
用简单链表管理员工信息文档格式.docx
《用简单链表管理员工信息文档格式.docx》由会员分享,可在线阅读,更多相关《用简单链表管理员工信息文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
王传华销售部3920
殷泳培训部2940
杨柳青软件部5440
四、课程设计要求:
1.程序质量:
●贯彻结构化的程序设计思想。
●用户界面友好,功能明确,操作方便。
●用户界面的菜单至少应包括“输入员工信息”,“显示员工信息”,“保存员工信息”,“退出”4项。
●代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:
课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下:
●封面
●课程设计任务书
●目录
●需求分析(分析题目的要求)
●程序流程图(总体流程图和主要功能模块流程图)
●核心技术的实现说明及相应程序段
●个人总结
●参考资料
●源程序及适当的注释
指导教师:
_刘成_______学生签名:
_董洪杰_______
目录
一、需求分析4
二、程序流程图5
三、核心技术的实现说明及相应程序段7
四、个人总结10
五、参考文献10
六、源程序11
一、需求分析
经过对程序设计题目的分析可知,整个程序的设计实现大致分为二个模块,其中每一个模块对应一个函数,他们的功能分别是输入员工信息函数和显示员工信息的函数,具体如下:
1.结构体,分别输入员工的姓名、所在部门和编号信息。
2.创建两个自定义子函数,用于输入和显示。
3.创建主函数,通过主函数实现对子函数的调用执行程序设计任务
4..退出函数,实现终止程序的执行.
退出函数属于附加函数,可以在一次运行当中循环执行所有的功能,并根据需要最终终止程序的执行。
每一个员工的纪录都包含姓名、所在部门、编号、三个信息。
在程序当中,将员工信息类型定义为结构体类型,添加的员工信息直接写入E盘的myfile.dat文件中,现实函数每次对员工纪录的访问,其数据来源都是myfile.dat文件。
二、程序流程图
1.总体设计
2.模块设计
(1)插入结点的函数InsertList
(2)显示员工数据Print
三、核心技术的实现说明及相应程序段
本程序主要有一个定义的结构体,一个主函数,函数InsertList和函数Print构成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。
在这些函数当中,InsertList和Print是程序中较为核心的部分,下面进行分别说明。
1.添加数据的函数InsertList
对于员工信息的添加,这里应用了InsertList函数。
(1)、用于插入结点,定义了文件指针,打开员工管理系统的文件。
(2)、输入员工的姓名,所在部门,编号,当姓名重复时则不能打开文件,也就不可输入信息,当不重复时可以继续输入新的员工信息。
具体的程序段如下:
structemployee*InsertList(structemployee*p,conststructemployee*in)
{
structemployee*newPtr=NULL;
if(!
p||strcmp(p->
name,in->
name)>
0)
if((newPtr=(structemployee*)malloc(sizeof(structemployee)))==NULL)
exit(0);
/*如果不能创建一个员工的信息,就退出*/
*newPtr=*in;
newPtr->
next=p;
p=newPtr;
}
elseif(strcmp(p->
name)<
0)
p->
next=InsertList(p->
next,in);
returnp;
2.Print
Print的作用在于显示出以入的员工信息,当进入系统后通过选择自动显示所有员工的信息。
Out先指向第一个结点,爱输出完第一个结点之后,out指向第二个结点。
程序中out=->
next的作用是将out原来所指向的结点中next的值赋给out,而out->
next的值就是第二个结点的起始地址。
将它赋给out,就是使out指向第二个结点。
具体函数段如下,
voidPrint
(FILE*stream,conststructemployee*out)
printf("
**************************************************************************\n"
);
%-30s%-30s%-30s\n"
"
Name"
"
Department"
Num"
while(out!
=NULL){
fprintf(stream,"
%-30s%-30s%-30d\n"
out->
name,out->
branch,out->
num);
out=out->
next;
3.关于主函数
在主函数中期我应用了swich这个函数,应用选择结构对两个子菜单进行调用,供选择。
具体程序段如下:
main()
intchoice;
structemployee*start=NULL,temp;
FILE*fp;
if((fp=fopen("
E:
\\myfile.dat"
w"
))==NULL)
return0;
/*如果不能打开文件就返回*/
while((choice=MenuChoice())!
=3)
switch(choice)
case1:
***Pleaseenteremployee'
sName,Department,Num:
***\n"
scanf("
%s%s%d"
&
temp.name,&
temp.branch,&
temp.num);
start=InsertList(start,&
temp);
break;
case2:
Print(stdout,start);
case3:
default:
puts("
cuowu:
feifademingling!
"
Print(fp,start);
四、个人总结
一周的课设已经在我们辛勤努力中过去了,回顾这短短的一周,我觉得我收获很大,这是一段难忘的时光。
C语言我们已经学习了一个学期了,但它所包含的内容是我们短短一学期所无法学精的,再经过这一周的课设我更是深有体会。
特别的我这次的题目是用链表处理实际问题,链表是难点但在上学期的学习中不是重点我并没有太重视,甚至有些忽略。
现在我是非常的后悔,这几天下来我经过查阅各种资料,并且在课余时间向高年级的学长请教,几天下来我感觉对于链表问题有了大概的印象,但还不过深入,答辩就能很好的说明,对于我这次答辩的失败我感到非常后悔。
我在今后的学习过程中一定要更加专心仔细,对于细节不怕麻烦深入研究。
总之经过这一周的课设的学习我不只是学到C程序设计的方法,这对我今后生活处理各种问题也有很大的帮助,很感谢能有这次机会让我能力得到较大的提高,让我更好的认清自己。
五、参考文献
1谭浩强.C程序设计.北京:
清华大学出版社,2005
2刘成等.C语言程序设计实验指导与习题集.北京:
中国铁道出版社,2006
六、源程序
#include<
stdio.h>
#include<
string.h>
stdlib.h>
structemployee
charname[30];
/*员工姓名*/
charbranch[30];
/*所在部门*/
intnum;
/*编号*/
structemployee*next;
};
intMenuchoice(void);
structemployee*InsertList(structemployee*p,conststructemployee*in);
voidPrint(FILE*stream,conststructemployee*out);
main()
intMenuChoice(void);
printf("
Print(stdout,start);
break;
case3:
exit(0);
puts("
return0;
/*显示所有员工的信息*/
voidPrint
printf("
while(out!
=NULL)
{
/*向链表中添加以为员工的信息i*/
0)
/*如果不能创建一个员工的信息就返回*/
/*菜单*/
intMenuChoice(void)
intret;
******************************************************\n"
***1-Pleaseentertheemployeename***\n"
"
***2-Showtheemployeemessage***\n"
***3-Exit***\n"
scanf("
%d"
ret);
getchar();
return(ret);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 管理 员工 信息