北京理工大学珠海学院实验报告

北京理工大学珠海学院实验报告

ID:44184457

大小:656.40 KB

页数:28页

时间:2019-10-19

北京理工大学珠海学院实验报告_第1页
北京理工大学珠海学院实验报告_第2页
北京理工大学珠海学院实验报告_第3页
北京理工大学珠海学院实验报告_第4页
北京理工大学珠海学院实验报告_第5页
资源描述:

《北京理工大学珠海学院实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、北京理工大学珠海学院实验报告ZHUHAICAMPAUSOFBEIJINGINSTITUTEOFTECHNOLOGY一、实验内容定义一个包含学生信息(学号,姓名,成绩)的的顺序表和链表,使其具有如下功能:(1)根据指定学生个数,逐个输入学生信息;(2)逐个显示学生表中所有学生的相关信息;(3)根据姓名进行查找,返回此学生的学号和成绩;(4)根据指定的位置可返回相应的学生信息(学号,姓名,成绩);(5)给定一个学生信息,插入到表中指定的位置;(6)删除指定位置的学生记录;(7)统计表中学生个数。二、实验要求:(1)程序要添加适当的注释,程序的书写要采用缩进格式。(2)程序要具在一定的健壮性,即当输

2、入数据非法时,程序也能适当地做出反应,如插入删除时指定的位置不对等等。(3)程序要做到界面友好,在程序运行时用户可以根据相应的提示信息进行操作。(4)根据实验报告模板详细书写实验报告,在实验报告中给出链表根据姓名进行查找的算法和插入算法的流程图。(5)上传源程序和实验报告到教师机的相应班级所在文件夹。顺序表的源程序保存为SqList.cpp,链表的源程序保存为LinkList.cpp,实验报告命名为:实验报告1.doc。源程序和实验报告压缩为一个文件(如果定义了头文件则一起压缩),按以下方式命名:15数字媒体技术X班——学号——姓名.rar,如15数字媒体技术X班070814101薛力.rar

3、。二、程序实现(内容、步骤、程序)28顺序表#include#include#include#includeusingnamespacestd;#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;typedefstruct{charno[8];charname[10];intprice;}Student;28//Student为学生信息类型#defineListSizeFirst10//L的初始分配量#d

4、efineListSizeAdd2//L的分配增量typedefstruct{Student*elem;intlength;intlistsize;}SqList;voidInitList(SqList&L)//构造空的顺序表L{L.elem=(Student*)malloc(ListSizeFirst*sizeof(Student));if(!L.elem)exit(OVERFLOW);L.length=0;L.listsize=ListSizeFirst;//初始化存储容量}intListLength(SqListL)//L中有多少个数据元素个数{returnL.length;}28Sta

5、tusGetElem(SqListL,inti,Student&e)//返回L中第i个数据元素的值{if(i<1

6、

7、i>L.length)//如果i不在L的范围之内就报错returnERROR;e=*(L.elem+i-1);//将L的第i个元素的值赋给ereturnOK;}intLocateElem(SqListL,Studente,Status(*namecompare)(Student,Student))//返回L里面第1个与e满足名字相同的元素的位序。{inti=1;//比较元素的次序Student*p=L.elem;//比较元素的地址while(i<=L.length&&!namec

8、ompare(*p++,e))//还没找到满足关系的数据元素++i;if(i<=L.length)returni;//找到满足关系的数据元素就返回其位序elsereturn0;}28StatusListInsert(SqList&L,inti,Studente)//在L中第i个位置前面插入数据元素e,L长度加1{Student*newbase,*q,*p;if(i<1

9、

10、i>L.length+1)returnERROR;if(L.length==L.listsize)//存储空间满了{newbase=(Student*)realloc(L.elem,(L.listsize+ListSizeAd

11、d)*sizeof(Student));L.elem=newbase;//新地址L.listsize+=ListSizeAdd;//加长度}q=L.elem+i-1;//插入位置for(p=L.elem+L.length-1;p>=q;--p)//元素右移*(p+1)=*p;*q=e;//插入e++L.length;//表长增1returnOK;}28StatusListDelete(SqList

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。