如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:河北工业大学计算机软件技术基础(VC)课程设计报告一、题目:利用单项链表实现简单的学生信息管理(07)二、设计思路1、总体设计分析程序的功能创建单项链表保存学生的各项信息,学号、姓名、成绩。并能够完成学生信息的插入、删除及信息的显示功能。系统总体结构:按照程序要求的功能采用结构化的设计思想,划分为五个功能模块,即创建链表、插入函数、删除函数、显示函数和主函数。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<iostream.h>#include"头文件.h"intn;student*creatlist(){student*head;student*p1;student*p2;n=0;head=NULL;p1=new(student);//创建一个新结点p2=p1;cin>>p1->num>>p1->name>>p1->score;while(p1->num!=0)//链表建立过程结束的判断条件{n++;if(n==1)//将链表中第一个新建结点作为表头head=p1;elsep2->next=p1;//原链表结点指向新建结点p2=p1;p1=new(student);cin>>p1->num>>p1->name>>p1->score;}delete(p1);p2->next=NULL;returnhead;//返回表头}2、insert.cpp文件清单#include<iostream.h>#include"头文件.h"student*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;}else{while((p0->num>p1->num)&&(p1->next!=NULL))//查找待插入点{p2=p1;p1=p1->next;}if(p0->num<=p1->num){if(p1==head)//要插入的位置在表头{head=p0;p0->next=p1;}else//要插入的位置不是表头{p2->next=p0;p0->next=p1;}}else//插入表尾结点之后{p1->next=p0;p0->next=NULL;}}returnhead;//返回表头}3、del.cpp文件清单#include<iostream.h>#include"头文件.h"student*del(student*head,intnum){student*p1;student*p2;if(head==NULL)//原链表是空表{cout<<"ListisNULL\n";returnhead;}p1=head;while((num!=p1->num)&&(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);//释放被删除结点所占的内存空间cout<<"delete:"<<num<<endl;}elsecout<<"notfound"<<endl;returnhead;//返回表头}4、out