资源描述:
《用简单链表管理员工信息》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、沈阳航空工业学院课程设计学号200604021080班级6402103姓名董洪杰指导教师刘成2007年9月18日13沈阳航空工业学院课程设计任务书院系:电子专业:电子信息工程班级:6402103一、课程设计题目:用简单链表管理员工信息二、课程设计工作自2007年9月14日,共计一周,20学时。三、课程设计内容:用C语言编写软件完成以下任务:从键盘输入4位员工的信息到动态创建的线形单向链表中;然后通过访问该链表,将其中的所有节点中的员工信息存放到文件myfile.dat中。每位员工信息如下:杜永宁软件部5760王传华销售部3920殷泳培训部2940杨柳青软件部5440四、课程设计要求:1.程
2、序质量:l贯彻结构化的程序设计思想。l用户界面友好,功能明确,操作方便。l用户界面的菜单至少应包括“输入员工信息”,“显示员工信息”,“保存员工信息”,“退出”4项。l代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书:课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下:l封面l课程设计任务书l目录l需求分析(分析题目的要求)l程序流程图(总体流程图和主要功能模块流程图)l核心技术的实现说明及相应程序段l个人总结l参考资料l源程序及适当的注释指导教师:_刘成_______学生签名:_董洪杰_______13目录一、需求分析4二、程序流程图5三、核心技术的实现说明
3、及相应程序段7四、个人总结10五、参考文献10六、源程序1113一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为二个模块,其中每一个模块对应一个函数,他们的功能分别是输入员工信息函数和显示员工信息的函数,具体如下:1.结构体,分别输入员工的姓名、所在部门和编号信息。2.创建两个自定义子函数,用于输入和显示。3.创建主函数,通过主函数实现对子函数的调用执行程序设计任务4..退出函数,实现终止程序的执行.退出函数属于附加函数,可以在一次运行当中循环执行所有的功能,并根据需要最终终止程序的执行。每一个员工的纪录都包含姓名、所在部门、编号、三个信息。在程序当中,将员工信息类型定
4、义为结构体类型,添加的员工信息直接写入E盘的myfile.dat文件中,现实函数每次对员工纪录的访问,其数据来源都是myfile.dat文件。13二、程序流程图1.总体设计132.模块设计(1)插入结点的函数InsertList13(2)显示员工数据Print三、核心技术的实现说明及相应程序段本程序主要有一个定义的结构体,一个主函数,函数InsertList和函数Print构成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,InsertList和Print是程序中较为核心的部分,下面进行分别说明。131.添加数据的函数InsertList对于员工信息的添加,这里应
5、用了InsertList函数。(1)、用于插入结点,定义了文件指针,打开员工管理系统的文件。(2)、输入员工的姓名,所在部门,编号,当姓名重复时则不能打开文件,也就不可输入信息,当不重复时可以继续输入新的员工信息。具体的程序段如下:structemployee*InsertList(structemployee*p,conststructemployee*in){structemployee*newPtr=NULL;if(!p
6、
7、strcmp(p->name,in->name)>0){if((newPtr=(structemployee*)malloc(sizeof(structemplo
8、yee)))==NULL)exit(0);/*如果不能创建一个员工的信息,就退出*/*newPtr=*in;newPtr->next=p;p=newPtr;}elseif(strcmp(p->name,in->name)<0)p->next=InsertList(p->next,in);returnp;}2.PrintPrint的作用在于显示出以入的员工信息,当进入系统后通过选择自动显示所有员工的信息。Out先指向第一个结点,爱输出完第一个结点之后,out指向第二个结点。程序中out=->next的作用是将out原来所指向的结点中next的值赋给out,而out->next的值就是第二个结
9、点的起始地址。将它赋给out,就是使out指向第二个结点。具体函数段如下,voidPrint(FILE*stream,conststructemployee*out){printf("**************************************************************************");13printf("%-30s%-30s%-30s","Name","Depa