实验报告1Word下载.docx

上传人:b****5 文档编号:16440978 上传时间:2022-11-23 格式:DOCX 页数:15 大小:476.96KB
下载 相关 举报
实验报告1Word下载.docx_第1页
第1页 / 共15页
实验报告1Word下载.docx_第2页
第2页 / 共15页
实验报告1Word下载.docx_第3页
第3页 / 共15页
实验报告1Word下载.docx_第4页
第4页 / 共15页
实验报告1Word下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

实验报告1Word下载.docx

《实验报告1Word下载.docx》由会员分享,可在线阅读,更多相关《实验报告1Word下载.docx(15页珍藏版)》请在冰豆网上搜索。

实验报告1Word下载.docx

2、成绩表的基本操作设计

1、掌握顺序表的创建与查询算法的设计和程序实现方法

2、掌握顺序表的插入、删除操作的算法设计和程序实现方法

3、掌握链表的创建与遍历查询算法的设计和程序实现方法

4、掌握链表的插入、删除操作的算法设计和程序实现方法

5、掌握栈和队列的创建算法的设计和程序实现方法

6、掌握入栈和出栈操作、入队列和出队列操作的算法设计和程序实现方法

3、成绩表二叉树排序与过滤的设计

1、掌握二叉树的结构特点

2、掌握二叉排序树的创建算法和程序实现

3、掌握二叉树的遍历算法

4、了解利用二叉树构建过滤规则树的方法

5、学会应用过滤规则树对成绩表的表项进行过滤

4、成绩表的检索和排序设计

1、掌握顺序检索、二分检索和哈希检索的算法设计和程序实现

2、掌握简单插入排序、简单选择排序、冒泡排序和快速排序的算法设计和程序实现。

五、设计原理:

七、实验器材(设备、元器件):

计算机1台,实验软件一套,Windows系统,VC++6.0

八、测试步骤:

/*******************************Copyright(c)*********************************************

**UniversityofElectronicScienceandTechnologyofChina

**SchoolofCommunicationandInformationEngineering

**

**

**---------------------------FileInfo---------------------------------------------------

**Filename:

table.cpp

**LastmodifiedDate:

2012-12-19

**LastVersion:

1.0

**Descriptions:

各种顺序表操作,顺序表结构的定义在mystruct.h中,

**函数中使用的与界面显示有关接口的说明在ui.h

**本文件基于C语言风格

**------------------------------------------------------------------------------------------

**Createdby:

DuanJingshan

**Createddate:

**Modifiedby:

**Modifieddate:

**Version:

*******************************************************************************************/

#include"

stdafx.h"

mystruct.h"

ui.h"

/*******************************************************************************************

**Functionname:

init_table()

**Descriptions:

初始化顺序表

**顺序表利用数组作为基础,其特点是需要事先获得全部元素空间,因此本函数的主要

**功能就是向系统申请足够的空间作为顺序表的存储空间。

涉及的系统函数为:

**malloc()

**此外,良好的习惯是将空间内的各项数据进行适当的初始化

**Input:

NONE

**Output:

**return:

类型:

table_t*,返回顺序表的结构指针

**Createdby:

**CreatedDate:

**Modifiedby:

**ModifiedDate:

table_t*init_table()

{

table_t*t;

t=(table_t*)malloc(sizeof(table_t));

t->

length=0;

returnt;

}

free_table()

释放顺序表空间

**当程序结束时会通过本函数来释放通过malloc获得的顺序表空间

顺序表指针

void

voidfree_table(table_t*t)

free(t);

get_table()

查询顺序表

**查询顺序表中第i个元素

**table_t*table;

**intindex;

查询位置,即第i个元素

**element_t*elem;

元素域指针,用来存放被查询到的元素内容,

**(注意,需要将元素全部内容拷贝到该指针所记录的空间中,即,使用memcpy())

int,返回查询是否成功,为0表示找到指定元素,为-1表示没有找到,一般是因为

**index指示的位置超出了顺序表的范围

intget_table(table_t*table,intindex,element_t*elem)

//判断index是否超出顺序表范围

if(index<

=0||index>

table->

length){

return-1;

}

//复制元素内容到指定空间中;

memcpy(elem,&

(table->

data[index-1]),sizeof(element_t));

//error

return0;

add_table()

将指定元素放入到顺序表的末尾

**element_tdata;

待放入的元素

添加新元素后的顺序表指针

int;

为-1表示放入失败,一般是因为顺序表已经放满,为0表示正确放入

intadd_table(table_t*table,element_tdata)

data[table->

length]=data;

length++;

return0;

insert_table()

将指定元素插入到顺序表的指定位置之前

**intlocation;

插入位置,语义是:

第X个元素前,,当location大于链表元素总数时,该元素

**将插入到表尾。

插入新元素后的顺序表指针

为-1表示插入失败,一般是因为顺序表已经放满或者插入位置不正确,

为0表示正确插入

intinsert_table(table_t*table,element_tdata,intlocation)

location=location-1;

if(location<

0)

elseif(location>

table->

length)

table->

length+1]=data;

else

{

intj;

for(j=table->

length-1;

j>

=location;

j--)

table->

data[j+1]=table->

data[j];

data[location]=data;

length=table->

length+1;

insert_table_by_order()

将指定元素按照学号从小到大顺序插入到顺序表中

intinsert_table_by_order(table_t*table,element_tdata)

intt,i;

t=table->

length;

if(t==MAX_TABLE_SIZE){

i=0;

while(table->

data[i].stuID<

data.stuID){

i++;

insert_table(table,data,++i);

delete_table()

删除顺序表中指定姓名作为关键字的元素

**char*name;

以该姓名为关键字的元素将被删除

删除指定元素后的顺序表指针

为-1表示删除失败,一般是因为顺序表没有找到指定元素,

为0表示正确删除

intdelete_table(table_t*table,char*name)

inti;

i=0;

while(strcmp(name,table->

data[i].stuName)){

if(i==MAX_TABLE_SIZE){

return-1;

}

for(i;

i<

i++){

data[i]=table->

data[i+1];

length-=1;

delete_table_below()

删除顺序表中总分小于某个指定值的所有元素,本算法的特点是

**希望一趟能在顺序表中删除多个元素

**intx;

删除范围,即被删除的元素总分小于这个值

删除元素后的顺序表指针

void;

voiddelete_table_below(table_t*table,intx)

intt[MAX_TABLE_SIZE];

inti,j;

j=0;

for(i=0;

if(x>

data[i].overall){

t[j]=i;

j++;

for(j-=1;

=0;

j--){

for(i=t[j];

length-=1;

return;

九、测试数据及结果分析:

十、设计与测试结论:

程序可编译,功能得到实现

十一、总结及心得体会:

细心思考

十二、对本实验过程及方法、手段的改进建议:

还可以通过一些手段优化

报告评分:

指导教师签字:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1