实验报告5.docx
《实验报告5.docx》由会员分享,可在线阅读,更多相关《实验报告5.docx(14页珍藏版)》请在冰豆网上搜索。
实验报告5
电子科技大学通信学院
标准实验报告
(实验)课程名称软件技术基础
实验名称软件技术实验
学生姓名郭健煜
学号2015010913021
指导老师杨建军
实验地点科A508
实验时间16.11..09
电子科技大学教务处制表
一、实验室名称:
骨干与传输系统实验室
二、项目名称:
通信软件设计
三、实验学时:
20
四、设计目的:
主要内容
目标
1、软件技术基础基本技能训练
1、掌握设计软件平台的基本使用方法
2、掌握在设计软件平台上编写数据结构模块的方法
2、成绩表的基本操作设计
1、掌握顺序表的创建与查询算法的设计和程序实现方法
2、掌握顺序表的插入、删除操作的算法设计和程序实现方法
3、掌握链表的创建与遍历查询算法的设计和程序实现方法
4、掌握链表的插入、删除操作的算法设计和程序实现方法
5、掌握栈和队列的创建算法的设计和程序实现方法
6、掌握入栈和出栈操作、入队列和出队列操作的算法设计和程序实现方法
3、成绩表二叉树排序与过滤的设计
1、掌握二叉树的结构特点
2、掌握二叉排序树的创建算法和程序实现
3、掌握二叉树的遍历算法
4、了解利用二叉树构建过滤规则树的方法
5、学会应用过滤规则树对成绩表的表项进行过滤
4、成绩表的检索和排序设计
1、掌握顺序检索、二分检索和哈希检索的算法设计和程序实现
2、掌握简单插入排序、简单选择排序、冒泡排序和快速排序的算法设计和程序实现。
五、设计原理:
七、实验器材(设备、元器件):
计算机1台,实验软件一套,Windows系统,VC++6.0
八、测试步骤:
EX5_1
#include
#include
intbin_search(inttable[],intval);
intshunxu(intx,inttable[]);
intmain()
{inttable[8]={3,10,13,17,40,43,50,70};
printf("输º?
入¨?
所¨´需¨¨查¨¦找¨°的Ì?
关?
键¨¹字Á?
:
êo");
intx;
for(;;)
{scanf("%d",&x);
//shunxu(x,table);
erfen(x,table[]);
}
}
intbin_search(inttable[],intval)
{
intlow,mid,high;
low=0;
high=49;
printf("查¨¦找¨°过y程¨¬中D......\n");
while(low<=high&&val!
=-1)
{
mid=(low+high)/2;
if(val
{
printf("%d介¨¦于®¨²位?
置?
%d[%3d]和¨ª中D间?
值¦Ì%d[%3d],ê?
找¨°左Á¨®半ã?
边À?
\n",val,low+1,table[low],mid+1,table[mid]);
high=mid-1;
}
elseif(val>table[mid])
{
printf("%d介¨¦于®¨²中D间?
值¦Ì位?
置?
%d[%3d]和¨ª%d[%3d],ê?
找¨°右®¨°半ã?
边À?
\n",val,mid+1,table[mid],high+1,table[high]);
low=mid+1;
}
else
returnmid;
}
return-1;
}
interfen(intx,inttable[])
{
inti,j,val,num;
while
(1)
{
num=0;
val=x;
if(val==-1)
break;
num=bin_search(table,val);
if(num==-1)
printf("#####没?
有®D找¨°到Ì?
[%3d]#####\n",val);
else
printf("在¨²第̨²%2d个?
位?
置?
找¨°到Ì?
[%3d]\n",num+1,table[num]);
}
printf("数ºy据Y内¨²容¨Y:
êo\n");
for(i=0;i<5;i++)
{
for(j=0;j<10;j++)
printf("%3d-%-3d",i*10+j+1,table[i*10+j]);
printf("\n");
}
printf("\n");
system("pause");
return0;
}
shunxu(intx,inttable[])
{
inti,j,find,val=0,data[80]={0};
for(i=0;i<80;i++)
data[i]=(rand()%150+1);
while(val!
=-1)
{
find=0;
scanf("%d",&val);
for(i=0;i<80;i++)
{
if(data[i]==val)
{
printf("在¨²第̨²%3d个?
位?
置?
找¨°到Ì?
键¨¹值¦Ì[%3d]\n",i+1,data[i]);
find++;
}
}
if(find==0&&val!
=-1)
printf("######没?
有®D找¨°到Ì?
[%3d]######\n",val);
}
printf("数ºy据Y内¨²容¨Y:
êo\n");
for(i=0;i<10;i++)
{
for(j=0;j<8;j++)
printf("%2d[%3d]",i*8+j+1,data[i*8+j]);
printf("\n");
}
system("pause");
return0;
}
EX5_2
#include
#include
intxuanze(intdata[]);
intcharu(intdata[]);
intmaopao(intdata[]);
voidselect(intdata[]);
voidinser(intdata[]);
voidshowdata(intdata[]);
intmain()
{intdata[10]={513,87,512,61,908,170,897,275,653,462};
printf("数ºy组Á¨¦数ºy据Y为a:
êo\n");
inti=0;
for(;i<10;i++)
{printf("%d\n",data[i]);}
system("pause");
printf("简¨°单Ì£¤选?
择?
的Ì?
排?
序¨°结¨¢果?
为a:
êo");
xuanze(data);
printf("直¡À接¨®插?
入¨?
的Ì?
排?
序¨°结¨¢果?
为a:
êo");
charu(data);
printf("冒¡ã泡Y法¤¡§的Ì?
排?
序¨°结¨¢果?
为a:
êo");
maopao(data);
}
intxuanze(intdata[])
{
select(data);
printf("排?
序¨°后¨®数ºy据Y:
êo");
inti;
for(i=0;i<10;i++)
printf("%3d\n",data[i]);
printf("\n");
system("pause");
return0;
}
voidselect(intdata[])
{
inti,j,tmp;
for(i=0;i<9;i++)/*扫¦¡§描¨¨5次ä?
*/
{
for(j=i+1;j<10;j++)/*从䨮i+1比À¨¨较?
起e,ê?
比À¨¨较?
5次ä?
*/
{
if(data[i]>data[j])/*比À¨¨较?
第̨²i个?
和¨ª第̨²j个?
元a素?
*/
{
tmp=data[i];
data[i]=data[j];
data[j]=tmp;
}
}
}
printf("\n");
}
voidshowdata(intdata[])
{
inti;
for(i=0;i<10;i++)
printf("%3d\n",data[i]);/*打䨰印®?
数ºy组Á¨¦数ºy据Y*/
printf("\n");
}
voidinser(intdata[])
{
inti;/*i为a扫¦¡§描¨¨次ä?
数ºy*/
intno;/*以°?
j来¤¡ä定¡§位?
比À¨¨较?
的Ì?
元a素?
*/
inttmp;/*tmp用®?
来¤¡ä暂Y存ä?
数ºy据Y*/
for(i=1;i<10;i++)/*扫¦¡§描¨¨循-环¡¤次ä?
数ºy为aSIZE-1*/
{
tmp=data[i];
no=i-1;
while(no>=0&&tmp果?
第̨²二t个?
元a素?
小?
于®¨²第̨²一°?
个?
元a素?
*/
{
data[no+1]=data[no];/*就¨ª把ã?
所¨´有®D元a素?
往ª¨´后¨®推ª?
一°?
个?
位?
置?
*/
no--;
}
data[no+1]=tmp;/*最Á?
小?
的Ì?
元a素?
放¤?
到Ì?
第̨²一°?
个?
元a素?
*/
}
}
intcharu(intdata[])
{
inser(data);
printf("排?
序¨°后¨®数ºy组Á¨¦是º?
:
êo");
showdata(data);
system("pause");
return0;
}
intmaopao(intdata[])
{inti,j,tmp;
for(i=9;i>0;i--)/*扫¦¡§描¨¨次ä?
数ºy*/
{
for(j=0;j
、¡é交?
换?
次ä?
数ºy*/
{
if(data[j]>data[j+1])/*比À¨¨较?
相¨¤邻¢¨²两¢?
数ºy,ê?
如¨?
第̨²一°?
个?
数ºy较?
大䨮则¨°交?
换?
*/
{
tmp=data[j];
data[j]=data[j+1];
data[j+1]=tmp;
}
}
//printf("第̨²%d次ä?
排?
序¨°后¨®的Ì?
结¨¢果?
是º?
:
êo",6-i);/*把ã?
各¡Â次ä?
扫¦¡§描¨¨后¨®的Ì?
结¨¢果?
输º?
出?
*/
for(j=0;j<10;j++)
//printf("%3d",data[j]);
printf("");
}
printf("排?
序¨°后¨®结¨¢果?
为a:
êo");
for(i=0;i<10;i++)
printf("%3d",data[i]);
printf("\n");
system("pause");
return0;
}
EX5_3
#include
#include
#defineSIZE8/*定¡§义°?
数ºy组Á¨¦大䨮小?
*/
voidinser(int*);/*声¦¨´明¡Â插?
入¨?
排?
序¨°法¤¡§子Á¨®程¨¬序¨°*/
voidshowdata(int*);/*声¦¨´明¡Â打䨰印®?
数ºy组Á¨¦子Á¨®程¨¬序¨°*/
intmain()
{
intdata[SIZE]={16,25,39,27,12,8,45,63};
printf("原-始º?
数ºy组Á¨¦是º?
:
êo");
showdata(data);
printf("\n");
inser(data);
printf("排?
序¨°后¨®数ºy组Á¨¦是º?
:
êo");
showdata(data);
system("pause");
return0;
}
voidshowdata(intdata[])
{
inti;
for(i=0;iprintf("%3d",data[i]);/*打䨰印®?
数ºy组Á¨¦数ºy据Y*/
printf("\n");
}
voidinser(intdata[])
{
inti;/*i为a扫¦¡§描¨¨次ä?
数ºy*/
intno;/*以°?
j来¤¡ä定¡§位?
比À¨¨较?
的Ì?
元a素?
*/
inttmp;/*tmp用®?
来¤¡ä暂Y存ä?
数ºy据Y*/
for(i=1;i数ºy为aSIZE-1*/
{
tmp=data[i];
no=i-1;
while(no>=0&&tmp果?
第̨²二t个?
元a素?
小?
于®¨²第̨²一°?
个?
元a素?
*/
{
data[no+1]=data[no];/*就¨ª把ã?
所¨´有®D元a素?
往ª¨´后¨®推ª?
一°?
个?
位?
置?
*/
no--;
}
data[no+1]=tmp;/*最Á?
小?
的Ì?
元a素?
放¤?
到Ì?
第̨²一°?
个?
元a素?
*/
}
}
九、测试数据及结果分析:
十、设计与测试结论:
程序可编译,功能得到实现
十一、总结及心得体会:
细心思考
对一些陌生函数的用法不熟练.
十二、对本实验过程及方法、手段的改进建议:
还可以通过一些手段优化
报告评分:
指导教师签字:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
-
实验
报告
冰豆网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。