利用单项链表实现简单的学生信息管理.doc_第1页
利用单项链表实现简单的学生信息管理.doc_第2页
利用单项链表实现简单的学生信息管理.doc_第3页
利用单项链表实现简单的学生信息管理.doc_第4页
利用单项链表实现简单的学生信息管理.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编号:07河北工业大学计算机软件技术基础(VC)课程设计报告一、题目:利用单项链表实现简单的学生信息管理(07)二、设计思路1、总体设计1) 分析程序的功能创建单项链表保存学生的各项信息,学号、姓名、成绩。并能够完成学生信息的插入、删除及信息的显示功能。2) 系统总体结构:按照程序要求的功能采用结构化的设计思想,划分为五个功能模块,即创建链表、插入函数、删除函数、显示函数和主函数。2、各功能模块的设计:说明各功能模块的实现方法 头文件:对自己定义的函数进行函数声明。 主函数:进行函数的调用,实现各函数的功能,达到预期的目的。 函数定义部分:定义各个功能函数,创建链表函数、插入新信息函数、删除信息函数、显示信息函数。3、设计中的主要困难及解决方案1)在插入新信息时,有插入点在表头、中间、表尾三种情况,为此采用讨论的方法,把三种情况进行讨论使其分开进行。2)在删除信息时,有删除的为头结点和中间结点的情况,采用讨论的方法,把两种情况分开来进行。4、你所设计的程序最终完成的功能1)创建链表、插入新信息、删除信息、显示信息。2)测试数据输入的数据学号姓名成绩98023LiLi8598044WangTao6999764ZhangXiaobao7299812LiuLifang91插入的数据学号姓名成绩96085WangLiPing7798120ZhangLi7599912LiuHai80删除的数据学号姓名成绩99812liulifang91运行结果三、程序清单本程序包含creatlist.cpp、insert.cpp、del.cpp、output.cpp、main.cpp、头文件.h六个文件1、creatlist.cpp文件清单#include#include头文件.hint n;student *creatlist() student *head; student *p1;student *p2;n=0;head=NULL;p1=new(student); /创建一个新结点p2=p1;cinp1-nump1-namep1-score;while(p1-num!=0) /链表建立过程结束的判断条件n+;if(n=1) /将链表中第一个新建结点作为表头head=p1;else p2-next=p1; /原链表结点指向新建结点p2=p1;p1=new(student);cinp1-nump1-namep1-score;delete(p1); p2-next=NULL;return head; /返回表头2、insert.cpp文件清单#include#include头文件.hstudent *insert(student *head,student *t)student *p0; /待插入点student *p1;student *p2; /p0插入p1之前,p2之后p1=head;p0=t;if(p1=NULL) /原链表是空表head=p0;p0-next=NULL;elsewhile(p0-nump1-num)&(p1-next!=NULL) /查找待插入点p2=p1;p1=p1-next;if(p0-numnum) if(p1=head) /要插入的位置在表头 head=p0; p0-next=p1; else /要插入的位置不是表头 p2-next=p0; p0-next=p1; else /插入表尾结点之后 p1-next=p0;p0-next=NULL;return head; /返回表头3、del.cpp文件清单#include#include头文件.hstudent *del(student *head,int num)student *p1;student *p2;if(head=NULL) /原链表是空表coutnum)&(p1-next!=NULL) /查找带要删除的结点p2=p1;p1=p1-next;if(num=p1-num)if(p1=head) /要删除的是头结点head=p1-next;else /要删除的不是头结点 p2-next=p1-next;delete(p1); /释放被删除结点所占的内存空间coutdelete: numendl;elsecoutnot foundendl;return head; /返回表头4、output.cpp文件清单#include#include头文件.hvoid output(student *head)if(head=NULL) /原链表是空表coutlist is NULLn;elsestudent *p1;p1=head;cout学生的成绩信息endl;cout学号t姓名t成绩n;do /输出链表中各个同学的信息coutnumtnametscorenext;while(p1!=NULL);5、main.cpp文件清单#include#include头文件.hvoid main()student *headl;cout输入学生的成绩信息endl;cout学号t姓名t成绩endl;headl=creatlist();int k;while(1) /菜单选项coutendl;cout-菜单选项-endl;cout1.插入新信息 ,请选择:1endl;cout2.删除信息, 请选择:2endl;cout3.显示信息, 请选择:3endl;cout4.结束程序, 请选择:4endl;coutk;if(k=1) /插入新信息int m;cout输入插入学生人数m;cout学号t姓名t成绩endl;for(int i=0;istu-numstu-namestu-score; headl=insert(headl,stu);else if(k=2) /删除信息int num;coutnum;headl=del(headl,num);else if(k=3) /显示信息output(headl);else /结束程序break;6、头文件.h文件清单struct student /定义结构体类型int num;char name20;double score;student *next;student *creatlist(); /创建链表函数原型说明student *insert(student * ,student * ); /插入函数原型说明student *del(student * ,int ); /删除函数原型说明void output(student * ); /显示函数原型说明四、对该设计题目有何更完善的方案1、对自己完成程序进行自我评价。完成了课程设计的基本要求,同时在此基础上进行了一些创新,使用了多文件,使程序看起来更清晰更有条理。但由于能力有限,以及对C+的认识不深,其中还有不够完善合理的地方。2、对课题提出更完善的方案增加按照成绩对链表进行排序的功能,使学生信息能够按照成绩的高低进行显示,能够更清晰地显示学生的学习情况五、收获及心得体会1、通过本次课程设计,自己在哪些方面的能力有所提高。加深了对利用C+语言进行程序设计的理解,提高了对函数的运用能力,提高了软件系统分析能力和使用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论