您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 数据结构实验报告要求及范例
实验报告要求在每一次实验完成后,要提交相应的实验报告,包括以下几方面内容。1.基本信息基本信息是指实验人员的基本信息,包括:实验项目名称、实验类型、班级、学号、姓名、实验日期。2.问题描述问题描述是对问题背景、问题内容、问题约束条件等进行的叙述。其主要任务是弄清要解决的问题是什么,阐述问题的基本要求及应实现的功能,明确要完成的任务,以及数据的输入、输出形式。3.数据结构设计通过对问题的分析,给出由具体语言描述的数据结构定义,并阐述定义理由。4.算法设计算法设计主要介绍本设计从整体上划分为几个模块,每个模块需要完成的功能是什么?给出功能(函数)说明,画出函数之间的调用关系图。就每一个函数,给出算法思想以及伪代码的算法描述。5.抽象数据类型的设计根据所设计的数据结构和函数接口,设计抽象数据类型。6.界面设计介绍提供给用户操作的界面及必要的使用说明。适当说明程序的使用流程。7.运行、测试与分析给出有代表性的测试用例,并加以简单的文字说明,注意程序运行要覆盖算法的各种情况。给出程序运行结果的截图,并分析程序的时间复杂度和空间复杂度。8.实验收获及思考主要指出算法的特点,在实现该实验基本要求的前提下,还可以进行哪些方面的功能扩展,特别是重点说明实验最有价值的内容。上机实验后有哪些想解决、但尚未解决的问题,在哪些方面需要进一步了解或得到帮助,以及编程实现实验的感悟等内容。附录:源代码源程序要按照编写程序的规则来编写,结构须清晰。每个函数均需要在函数头前注释说明该函数的简要功能,函数中的关键语句需添加注释。实验报告样例实验名称:学生基本信息管理实验类型:设计性实验班级:软件工程学号:150姓名:王一航实验日期:2008.3.151.问题描述设计一个简单的管理系统,实现学生基本信息(学号、姓名、性别、入学时间、入学成绩、专业、特长)的存储,以便查询、显示等。系统具备以下功能:记录添加、记录删除、按学号查询、记录显示等。2.数据结构设计每个学生的基本信息含有多个属性,为此可根据学生信息建立结构体,如下:typedefstruct{intxh;//学号char*xm;//姓名timerxsj;//入学时间intrxcj;//入学成绩char*zy;//专业char*hoppy;//特长}student入学时间,包括年、月、日,年是4位数,月和日均为2位数,为此建立下面结构体,表示入学时间类型。typedefstruct{charyear[5];//年charmonth[3];//月charday[3];//日}time本问题范畴内,学生记录可按录入顺序或学号形成唯一前驱和后继关系,所以选用线性表存储学生记录。若考虑到变动的学生数及经常进行插入与删除,宜采用链式存储。存储结构定义如下:typedefstruct{studentxs;//学生记录student*next;//指向下一个记录的指针}XsNode,*XsList为简化插入与删除算法,采用具有头结点的单链表。为方便查询及插入与删除的定位,表按学号有序存储。3.算法设计系统规定的功能设计的算法有:记录插入、记录删除、按学号查询及记录显示。如果记录以交互方式创建,还将涉及创建算法。(1)记录插入因为表按学号有序存储,记录插入将按新记录的学号进行插入。算法如下。setp1:创建一新结点,输入新结点的数据,为了界面友好,可提供输入提示。如:s=newXsNode;//创建一新结点cout”输入学号”;cins-xs.xh;cout”输入姓名”;cins-xs.name;cout”输入入学时间”;cins-xs.rxsj.yearxs.rxsj.monthxs.rxsj.day;cout”输入入学成绩”;cins-xs.rxcj;cout”输入专业”;cins-xs.zy;cout”输入特长”;cins-xs.hoppy;setp2:插入位置定位。根据单链表结点插入算法,指针定位到插入点之前,设此处为p,则插入位置满足关系:p-xs.xhxh并且xh≤p-next-xs.xh。所以,寻找插入位置的方法则是从表头开始,寻找满足此关系的p。主要代码如下:p=L;while(p-next-xs.xhxh&&p-next)p=p-next;setp3:将新结点s插入在p之后,即:s-next=p-next;p-next=s;(2)表创建算法对于有头结点的单链表,操作步骤如下:setp1:创建头结点。主要代码如下:XsListL;L=newXsNode;L-next=NULL;cout”输入学号”;cins-xs.xh;setp2:调用结点插入算法,创建各个记录。(3)按学号查询实现按学号的记录查找。操作步骤如下。setp1:输入要查询的学号xh。setp2:从表头开始,顺序查找,找到,返回该结点指针;否则,返回空。即:cout”输入要查询的学号”;cinxh;p=L-next;//查找起始位置while(p-xs.xh!=xh&&p-next)p=p-next;//顺序查找if(p-xs.xh==xh)returnp;//找到,返回结点位置elsereturnNULL;//未找到,返回空(4)记录删除实现删除指定学号的记录。操作步骤如下:setp1:输入要删除的记录的学号xh。setp2:从表头开始,顺序查找,定位到删除点的前驱。即:pre=L;q=pre-next;while(q&&q-xs.xh!=xh){pre=q;q=q-next;}setp3:如果未找到,不删除;否则,从链表删除该结点。即:if(q){pre-next=q-next;deleteq;}(5)记录显示通过遍历,显示各结点的值,即:p=L-next;//首元结点while(p){//所有结点coutp-xs.xh’\t’p-xs.xm’\t’p-xs.rxsj.year’\t’p-xs.rxsj.month’\t’p-xs.rxsj.day’\t’p-xs.rxcj’\t’p-xs.zy’\t’p-xs.hoppy;//输出记录各属性值coutendl;}4.界面设计程序包含有多个功能,所以,采用菜单,以方便用户进行功能选择。菜单如下:5.运行、测试与分析(1)运行程序,显示菜单,如图1.1所示。请选择操作1创建表2插入新纪录3删除记录4查询5浏览记录6退出请选择相关操作[]请选择操作图1.1启动界面(2)按“1”创建表。根据提示,输入记录个数,并输入各条记录,插入过程与插入记录类似。(3)按“2”插入记录。根据提示输入记录内容,如图1.2所示。欢迎使用本程序1.创建表2.插入新记录3.删除记录4.查询5.浏览记录6.退出请选择操作1创建表2插入新纪录3删除记录4查询5浏览记录6退出请选择相关操作[2]请选择操作输入学号:50输入姓名:陈抗抗输入入学时间(年,月,日):200791输入入学成绩:588输入专业:软件工程输入特长:赏车图1.2记录插入界面(4)按“3”,进行删除记录操作,如图1.3所示。请选择操作1创建表2插入新纪录3删除记录4查询5浏览记录6退出请选择相关操作[3]请选择操作请输入要删除的学生学号:53删除成功!按任意键继续图1.3记录删除界面根据提示,输入要删除记录的学号,若存在,显示删除存在;否则,显示不存在,无法删除。(5)按“4”,进行记录查找,如图1.4所示。请选择操作1创建表2插入新纪录3删除记录4查询5浏览记录6退出请选择相关操作[4]请选择操作请输入查询的学号:54----------------查找成功,记录如下所示-------------学号:54姓名:郭锅成绩:580入学时间:2007年9月1日专业:软件工程特长:才华横溢请按任意键继续…图1.4记录查找界面根据提示,输入要查询学生的学号,若存在,显示该记录;否则,显示不存在该学生。(6)按“5”,进行记录浏览,如图1.5所示。请选择操作1创建表2插入新纪录3删除记录4查询5浏览记录6退出请选择相关操作[5]请选择操作--------------------------------------------------------------------------------------------------------学号姓名成绩入学时间业特长50陈抗抗5882007年9月1日软件工程赏车49谢鹏鹏5802007年9月1日软件工程打篮球52帅帅5802007年9月1日软件工程看书53山山5802007年9月1日软件工程数学54郭锅5802007年9月1日软件工程才华横溢请按任意键继续…图1.5记录浏览界面(7)按“6”,退出程序。6.实验收获及思考给出调试中遇到的问题及解决的方法和过程。总结本次实验的收获及思考的问题等。此处略。
本文标题:数据结构实验报告要求及范例
链接地址:https://www.777doc.com/doc-7081459 .html