内排序实习总结.docx
《内排序实习总结.docx》由会员分享,可在线阅读,更多相关《内排序实习总结.docx(8页珍藏版)》请在冰豆网上搜索。
![内排序实习总结.docx](https://file1.bdocx.com/fileroot1/2022-10/29/aa86b1d8-3d4a-40ad-acb2-1f9a906ed6e1/aa86b1d8-3d4a-40ad-acb2-1f9a906ed6e11.gif)
内排序实习总结
内排序实习总结
篇一:
实习任务与要求
实习任务
实习一
【实习题目】
线性表的基本运算。
【实习目的】
(1)深入理解线性表的逻辑特性,掌握线性表的顺序存储、连接存储表示方法。
(2)熟练掌握线性表的各种基本运算。
【实习内容】
(1)分别在顺序表类和单向链表类中增加成员函数voidReverse(),实现线性表的
逆置运算。
(2)分别在顺序表类和单向链表类中增加成员函数booldeleteX(constT&x),删除
表中所有元素值等于x的元素。
若存在这样的元素,则删除序从键盘读入字符串形式的中缀表
达式,借助两个栈,经过一遍处理,直接在屏幕上输出表达式的值。
实习三
【实习题目】
二叉树的基本操作。
【实习目的】
(1)掌握二叉链表上实现二叉树基本运算的方法。
(2)学会设计基于遍历的求解二叉树应用问题的递归算法。
【实习内容】
(1)设计递归算法,实现下列运算:
删除一棵二叉树,求二叉树的高度,求叶子结
点数,复制一棵二叉树,交换每个分支结点的左右子树。
(2)设计对二叉树进行层次遍历的算法。
(3)编写主函数,验证上述算法。
实习四
【实习题目】
(1)图的基本运算。
(2)飞机换乘次数最少问题。
【实习目的】
(1)掌握图的基本运算。
(2)学会使用图算法解决应用问题的方法。
【实习内容】
(1)验证课堂上所学有关图的所有算法。
(2)在邻接矩阵上实现图的深度遍历和广度遍历。
(3)设有n个城市,编号为0~n-1,m条航线的起点和终点从文本文件中读取。
当
用户从键盘输入始发城市和目的地城市编号后,要求程序能够在屏幕上显示一个换乘次数最少的乘机方案。
这个文本文件共有m+2行:
第1行是一个整数,代表n;第2行也是个整数,代表m;后面的m行,每行两个整数,用空格分隔,代表航线的起点城市编号和终点城市编号。
显示在屏幕上的换乘次数最少的乘机方案是一个用逗号分隔的整数序列:
最左边的整数代表始发城市编号;最右边的整数代表目的地城市编号;中间的整数序列代表中转城市编号。
实习五
【实习题目】
各种内排序算法的实现及性能比较。
【实习目的】
(1)理解和掌握各种内排序算法。
(2)学会测试内排序算法性能的方法。
【实习内容】
(1)验证课堂上所学有关内排序的所有算法。
(2)在每个内排序算法的适当位置插入计数语句,分别统计排序过程中元素间的比
较次数和元素的移动次数。
(3)设待排序的数据是一个整数序列,从文本文件中读取,该文件每行只有一个整
数。
实习报告内容与要求
每个实习结束(:
内排序实习总结)后,都要写一份实习报告。
实习报告内容包括:
1、问题描述;2、解题思路(如:
数据结构的选择,函数的功能以及调用关系描述等);3、测试用例和运行结果;4、源程序。
除源程序以外,实习报告内容要求用a4纸打印(5号宋体字)。
源程序不需要打印,只提供电子版(源程序文件用自己的学号+姓名+实习题号命名)。
第20周交实习报告。
5份实习报告装订在一起,配上学院统一印制的实习报告封面。
实习时间与地点
时间:
15周至18周,周二3:
45~17:
25,周五8:
00~9:
35
地点:
周二在4-5机房(3个班);周五在3-2机房(1班)、3-3机房(2班)、3-4机房(3班)。
篇二:
实训五1学时数据处理排序筛选,分类汇总
实训五数据处理
实验目的:
1、了解Excel数据库或数据列表的特点;2、掌握数据的筛选、分类汇总等操作。
实验内容:
一数据筛选
打开“数据筛选”。
完成:
1.使用“财政支出表”中的数据,筛选出“优抚”大于70万元且“地区”为“胡宁”的各行。
2.使用“工资表1”中的数据,筛选出“科室”名的第二个汉字为“务”的行;3.使用“抽样调查表”中的数据,筛选出“食品”小于87.35,并且“日常生活用品”
大于等于89.30的记录。
4.使用“工资表2”,利用高级筛选的方法,筛选出“教务科”与“财务科”中的“基
本工资大于2000元而小于5000”的人员。
5.使用“成绩表”,利用高级筛选的方法,筛选出姓名为姓“石”或姓“杨”的“总评”
成绩大于等于70分而小于90分的行。
二、数据分类汇总
1.打开“数据分类汇总”。
完成:
2.将“工资表”中的数据,以“科室”为分类字段,将“基本工资”、“补助工资”、“应
发工资”、“扣款”和“实发工资”进行“求和”分类汇总。
3.将“考生登记表”中的数据,以“模块”为分类字段,将“总分”进行“最大值”分类汇总。
4.将“部分装饰材料价格表”中的数据,以“商品名称”为分类字段,将“最高价格”
和“最低价格”进行“平均值”分类汇总。
5.将“销售表”中的数据,先以“销售人员”为分类字段,将“销售数量”进行“求
和”分类汇总,然后以“类型”分类字段,将“销售数量”进行“求和”的嵌套式分类汇总。
三、数据高级筛选(附加)1、筛出姓杨的:
杨*2、筛出姓名中有3字的:
*杨3、筛出文本空值:
*数字空值:
=4、筛出文本非空值:
*数字非空值:
5
6
7
四、筛出系别为英语系、中文系年龄在20岁以上,籍贯为北京、天津的
篇三:
20XXc++实习作业
计算机高级语言课程设计报告
姓名:
xx
学号:
xxxxxxxx
学院:
xxxx专业:
地理信息系统
班级:
xxxxxx
实习题目一
【需求规格说明】
1、有1、2、3、4、5、6六个数,能组成多少个互不相同且无重复数字的三位数?
都是多少?
问题描述及分析:
此题为数学中的排序问题可以利用循环来解决。
【算法设计】
(1)设计思想:
利用for循环,将三位数的百位和十位确定,剩下的利用循环和if语句判断个位的数是否与前两位相同,而百位和十位同样需要利用for循环解决,最后输出显示可以将百位数乘以一百加上十位数乘以十加上个位数即可。
然后再利用mFc工程,将结果输出来
【调试报告】
开始不知道怎么用mFc在文本框中显示,就没有用mFc做,后来了解mFc工程的基本建立后,在其中加入原编程序就可以运行了。
【附录】
重要代码:
//1dlg.cpp:
implementationfile
//
#include”stdafx.h”
#include”1.h”
#include”1dlg.h”
#ifdef_dEBUG
#definenewdEBUG_nEw
#undefTHiS_FiLE
staticcharTHiS_FiLE[]=__FiLE__;
#endif
/////////////////////////////////////////////////////////////////////////////
voidcmy1dlg:
:
onButton1()
{
Updatedata();
cStringstr;
inti,j,k;
m_count=0;
for(i=1;i{
for(j=1;j{
for(k=1;k{
if(i!
=j&&j!
=k&&k!
=i)
{
intb=i*100+j*10+k;
str.Format(“%d”,b);
m_a.addString(str);
m_count++;
}
}
}
}
Updatedata(FaLSE);
//Todo:
addyourcontrolnotificationhandlercodehere
}
运行结果:
实习题目二
【需求规格说明】
5、文本文件中有一组整数,以空格分隔,要求排序后输出到另一个文件中。
问题描述及分析:
此题利用到输入输出流的问题以及排序方法。
【算法设计】
(1)设计思想:
用ofstreamifstream建立对象,然后用这个对象调用open,close来打开和关闭文件。
当打开文件后再用冒泡法排序文件里的整数,并输出到另一个文件中。
【调试报告】
由于对mFc不是很熟练的应用,致使开始无法用mFc中的函数打开文本文件,只能手动打开。
后来用输入输出流对象调用oPEn(),cLoSE()进行了改进。
【附录】
重要代码:
//6dlg.cpp:
implementationfile
//
#include”stdafx.h”
#include”6.h”
#include”6dlg.h”
#include”fstream.h”
#ifdef_dEBUG
#definenewdEBUG_nEw
#undefTHiS_FiLE
staticcharTHiS_FiLE[]=__FiLE__;
#endif
voidcmy6dlg:
:
onPaint()
{
if(isiconic())
{
cPaintdcdc(this);//devicecontextforpainting
Sendmessage(wm_iconERaSEBKGnd,(wPaRam)dc.GetSafeHdc(),0);
//centericoninclientrectangle
intcxicon=GetSystemmetrics(Sm_cXicon);
intcyicon=GetSystemmetrics(Sm_cYicon);
cRectrect;
GetclientRect(&rect);
intx=(rect.width()-cxicon+1)/2;
inty=(rect.Height()-cyicon+1)/2;
//drawtheicon
dc.drawicon(x,y,m_hicon);
}
else
{
cdialog:
:
onPaint();
}}
voidcmy6dlg:
:
onButton4(){
ifstreamfile;
file.open(“old.txt”);ofstreamoutfile;
outfile.open(“new.txt”);inta=1;
charch;
file.get(ch);
while(!
file.eof())
{
if(ch==''||ch=='/n'){
a++;
}
file.get(ch);
}
file.close();
file.open(“old.txt”);int*p=newint[100];for(inti=0;ifile>>p[i];
}
for(intm=1;mintj=m;
inti=p[m];
while(j>0&&ip[j]=p[j-1];j--;
}
p[j]=i;
}
for(intn=0;noutfiledeletep;
messageBox(“已经执行完毕,请单击新文本按钮查看”);