DS上机实验题
DS综合练习A
一.单项选择题(每小题1分,共10分)1.计算机算法必须具备输入、输出和等5个特性。
[A]可执行性、可移植性和可扩充性[B]可行性、确定性和有穷性[C]确定性、有穷性和稳定性[D]易读性、稳定性和安全性2.线性表采用链式存储时,结点的存储地址。
[A]必须是不连续的[B]连续与否均可[C]必须是连续的 [D]和头结点的存储地址相连续3.在一个单链表HL中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行。
[A]q->next=p->next;p->next=q;[B] p->next=q->next;q=p;[C]q->next=p->next;q->next=p;[D]p->next=q->next;q->next=p;4.设循环队列Q[N]的头尾指针分别为F,R,则进行出队操作需要的指针变化为。
[A]F=F+1 [B]F=(F+1)%N[C]R=(R+1)%N [D]R=R+15.在一个具有n个顶点的无向图中,要连通全部顶点,至少需要条边。
[A]n [B]n+1 [C]n-1 [D]n/26.在含n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为( )[A] e [B] 2e [C] n2-e[D]n2-2e7.假设以I和O分别表示入栈和出栈操作,栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅有I和O组成的序列。
下面所示的序列中哪些是不合法的?[A]IOIIOIOO [B]IOIOIIOO[C] IIIOIOIO [D] IIIOOIOO8.如图所示的4棵二叉树,是平衡二叉树。
[B]9.下面的序列中, ____是堆。
[A] 9,8,7,6,4、8,2,1 [B] 9,8,7,6,5,4,3,7[C] 1,5,10,6,7,8,9,2 [D] 1,2,8,4,3,9,10,510.有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当二分查找值为82的结点时,次比较后查找成功。
DS课程设计题
“数据结构”课程设计题目1、城市链表[问题描述]将若干城市的信息,存入一个带头结点的单链表。
结点中的城市信息包括:城市名,城市的位置坐标。
要求能够利用城市名和位置坐标进行有关查找、插入、删除、更新等操作。
[基本要求](1)给定一个城市名,返回其位置坐标;(2)给定一个位置坐标P和一个距离D,返回所有与P的距离小于等于D的城市。
[测试数据]由学生依据软件工程的测试技术自己确定。
注意测试边界数据。
2、约瑟夫生死者游戏[问题描述]约瑟夫(Joeph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。
一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。
报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。
试设计一个程序求出出列顺序。
[基本要求]利用单向循环链表存储结构模拟此过程,按照出列的顺序印出各人的编号。
[测试数据]m的初值为20;密码:3,1,7,2,4,8,4(正确的结果应为6,1,4,7,2,3,5)。
[实现提示]程序运行后首先要求用户指定初始报数上限值,然后读取各人的密码。
设n≤30。
[选作内容]向上述程序中添加在顺序结构上实现的部分。
3、括号匹配的检验[问题描述]假设表达式中允许有两种括号:圆括号和方括号,其嵌套的顺序随意,即(()[ ])或[([ ] [ ])]等为正确格式,[( ])或(((]均为不正确的格式。
检验括号是否匹配的方法可用“期待的紧迫程度”这个概念来描述。
例如:考虑下列的括号序列:[ ( [ ] [ ] ) ]1 2 3 4 5 6 7 8当计算机接受了第1个括号以后,他期待着与其匹配的第8个括号的出现,然而等来的却是第2个括号,此时第1个括号“[”只能暂时靠边,而迫切等待与第2个括号相匹配的第7个括号“)”的出现,类似的,因只等来了第3个括号“[”,此时,其期待的紧迫程度较第2个括号更紧迫,则第2个括号只能靠边,让位于第3个括号,显然第3个括号的期待紧迫程度高于第2个括号,而第2个括号的期待紧迫程度高于第1个括号;在接受了第4个括号之后,第3个括号的期待得到了满足,消解之后,第2个括号的期待匹配就成了最急迫的任务了,…… ,依次类推。
前面上机实验部分参考答案
上机实验部分参考答案实验二:1、温度转换Private Sub Command1_Click()f = Val(Text1.Text)c = (f - 32) * 5 / 9Text2.Text = Str(c)End SubPrivate Sub Command2_Click()c = Val(Text2.Text)f = 9 * c / 5 + 32Text1.Text = Str(f)End Sub3、Print方法练习Private Sub Form_Click()For i = 1 To 5Print Tab(i); String(6 - i, "*"); Spc(6); String(i, "*") Next iEnd Sub4、圆周长面积Private Sub Command1_Click()Dim r!, m!, z!Const p = 3.14r = InputBox("请输入半径")m = p * r * r / 4z = 2 * p * rPrint "圆的面积为:", mPrint "圆的周长为:", zEnd Sub5、鸡兔同笼Private Sub Form_Click()Dim m%, n%m = InputBox("请输入总头数")n = InputBox("请输入总脚数")If n Mod 2 = 0 And n >= 2 * m And n <= 4 * m Theny = n / 2 - mx = m - yElseMsgBox "参数错误,请重新输入!"End IfPrint "已知,总头数m为:"; m, "总脚数n为:"; n Print "求得,鸡数x为:"; x, "兔数y 为:"; y End Sub实验三:2、计算电话费Private Sub Command1_Click()Dim st!, hours!, Money!'Dim date1 As Data, date2 As Datadate1 = CDate(Text1.Text)date2 = CDate(Text2.Text)st = DateDiff("s", date1, date2) / 60 '求两时间相差的分钟数Text3.Text = Format(st, "0.00") + " 分钟"If st <= 3 Then '计算通话费Money = 0.5ElseMoney = 0.5 + (st - 3) * 0.15End Ifhours = Val(Mid(Text1, 1, 2))If hours < 7 Or hours > 19 Then '是否在优惠的时间段内Money = Money * 0.5End IfText4.Text = Format(Str(Money), "¥0.00") + " 元"End Sub实验四:1、水仙花数Private Sub Form_Click()Dim i%, a%, b%, c%For a = 1 To 9For b = 0 To 9For c = 0 To 9If a * 100 + b * 10 + c = a * a * a + b * b * b + c * c * c ThenPrint a * 100 + b * 10 + cEnd IfNext cNext bNext aEnd Sub2、猴子吃桃Private Sub Command1_Click()Dim n%, i%x = 1Print "第七天桃子数为:"; x; "只"For i = 6 To 1 Step -1x = (x + 1) * 2Print "第"; i; "天的桃子数为:"; x; "只"Next iEnd Sub3、钢管下料Private Sub Command1_Click()Dim r%, a%, b%r = 321For b = 1 To 321 \ 27For a = 1 To 321 \ 17 - bt = 321 - b * 27 - a * 17If t >= 0 And t < r Thenr = tia = aib = bEnd IfNext aNext bPrint Tab(20); "17m长料下"; ia; "段"Print Tab(20); "27m长料下"; ib; "段"Print Tab(20); "余料="; r; "最少"End Sub实验五:1、字符串统计Private Sub Command1_Click()Dim a(1 To 26) As Integer, c As String * 1le = Len(Text1) '求字符串的长度For I = 1 To lec = UCase(Mid(Text1, I, 1)) '取一个字符,转换成大写If c >= "A" And c <= "Z" Thenj = Asc(c) - 65 + 1 '将A~Z大写字母转换成1~26的下标a(j) = a(j) + 1 '对应数组元素加1End IfNext IFor j = 1 To 26 '输出字母及其出现的次数If a(j) > 0 Then Picture1.Print " "; Chr(j + 64); "="; a(j);Next jEnd Sub2、统计成绩Private Sub Command1_Click()Dim mark(1 To 100) As Integer, aver!, n%, i%aver = 0For i = 1 To 100mark(i) = Int(Rnd * 101)aver = aver + mark(i)Next iaver = aver / 100n = 0For i = 1 To 100If mark(i) > aver Then n = n + 1Next iPrint aver, nEnd Sub实验六:1、点菜Private Sub Form_Load()List1.AddItem "宫爆鸡丁10元"List1.AddItem "鱼香肉丝8元"List1.AddItem "青菜蘑菇6元"List1.AddItem "清蒸鲈鱼20元"List1.AddItem "红烧牛肉15元"End SubPrivate Sub Command1_Click()Dim i As Integer, money As SingleList2.ClearFor i = 0 To List1.ListCount - 1If List1.Selected(i) ThenList2.AddItem List1.List(i)End IfNextEnd Sub2、滚动字幕Private Sub Form_Load()Timer1.Interval = 100HScroll1.Min = 1HScroll1.Max = 10HScroll1.Value = 5HScroll1.SmallChange = 1rgeChange = 2Label1.Top = Int(Rnd * ScaleHeight)Label1.FontSize = Int(1 + Rnd * 30)Label1.Left = Form1.WidthEnd SubPrivate Sub Timer1_Timer()Label1.Move Label1.Left - HScroll1.Value * 100 If Label1.Left < 0 ThenLabel1.Left = Form1.WidthLabel1.Top = Int(Rnd * ScaleHeight)Label1.FontSize = Int(1 + Rnd * 30)End IfEnd Sub。
上机实验五_答案(请自行校对)
//下面这个for语句打印前4行*
for (i=1; i<=4; i++) {
//这个for语句打印空格数量
for (j=0; j < 4-i; j++)
printf("%c ", ' '); //这里也可以是printf(" ");
//这个for语句打印*,其中*的数量为2*i-1
*/
#include <stdio.h>
void main(){
int k, sum;
printf("请输入一批正整数:");
scanf("%d", &k);
sum = 0; //最开始赋初值0给变量
while ( k>0 )//如果是正整数,那么一直循环,直到输入的为0或负数时停止
{
if ( k%2 == 0) //如果读入的正整数k为偶数
9)输出2位精度的结果
// while语句
#include <stdio.h>
void main(){
float sum, term, a, b, c;
int i;
sum = 0;
a = 2; b = 1;
i = 1;
while (i<=20) {
term = a/b;
sum = sum + term;
sum = sum + k; //求和
scanf("%d", &k); //继续读入下一个正整数
}
printf("正整数的偶数和为:%d\n", sum);
第三次上机检索实习题目(2012.10.19)
第三次上机检索实习题目一、实习题目:1、使用“国家知识产权局”网站或“中国专利信息网”(1)检索“哈尔滨市松花江专利事务所”代理的外观设计专利申请案,按时间顺序选择前十篇摘录下来。
(2)查询2001年03月23日申请,一种芦荟饮料及其制备方法的中国专利,写出配方提到果汁原液含量;写出申请日期及专利有效期截止日期;写出专利的IPC分类号、公开号及发明人等信息记录下来。
答:IPC号为A23L2/022、使用美国专利数据库检索:检索课题:2000到2006年有关Technology of Activated Carbon Desulphurrization(活性炭脱硫技术)方面的专利。
检索要求:分析课题,列出检索词并编写检索式,输出检索结果记录两条并将其题录形式复制在答案的文本文件中。
检索词:(1)activated carbon(2) desulphurization检索式:TTL/"activated carbon" AND desulphurization检索过程:打开高级检索界面,在检索框输入检索式。
检索结果命中2条,分别是:1 6,932,956 Production of sulphur and activated carbon2 5,672,323 Activated carbon flue gas desulfurization systems for mercury removal符合检索要求的为第一条。
3、检索发明名称中包含Heat stabilizer(热稳定剂)且专利号为TW201229214 (A)的专利。
指出该件专利的优先申请国别。
4、“中国国家图书馆”网站中查找一篇学位授予单位为北京大学的“计算机”研究领域的博士论文,共有几篇?5、李老师去南宁出差,他不清楚北京到南宁坐火车最快需要多少小时,坐飞机每日有几次航班,请帮他查查。
坐火车最快需要1小时40分坐飞机有九次航班,如下:6、如果你想查找本专业的文献,请总结(1) 图书馆的可利用的数据库有哪些?(2) 有哪些门户网站?(3) 还有哪些资源可以利用(不限定在图书馆,包括网络上的、文献单位的资源等) 答:(1)图书馆可利用的数据库分两大类:中文数据库和西文数据库。
计算机网络上机实验题
计算机网络上机实验题
实验题目
请编写一个简单的计算机网络实例来展示数据包的传输过程。
实验要求
1. 使用至少2台计算机来模拟网络环境。
2. 实现一个简单的客户端和服务器端程序。
3. 客户端程序向服务器端发送数据包,并在服务器端输出接收
到的数据包内容。
实现步骤
1. 搭建网络环境:连接两台计算机,并确保它们可以相互通信。
2. 编写服务器端程序:使用一种编程语言(如Python)编写服
务器端程序,监听指定端口并等待数据包的到达。
3. 编写客户端程序:使用同一种编程语言编写客户端程序,向
服务器端指定的IP地址和端口发送数据包。
4. 数据包传输:客户端程序发送数据包,服务器端程序接收并输出数据包内容。
5. 测试:运行客户端和服务器端程序,观察数据包的传输过程和服务器端输出的内容是否正确。
实验注意事项
- 确保计算机之间的网络连接正常,可以相互通信。
- 检查防火墙设置,确保指定的端口可以通信。
- 在编写程序时,注意数据包的格式和传输方式。
实验评估标准
- 搭建网络环境成功。
- 程序能够正常运行,客户端能够发送数据包,服务器端能够接收并输出数据包内容。
- 能够准确理解和解释实验的目的和过程。
参考文献
- 无。
上机实习题.doc
2、分别利用经典 Runge-Kutta 方法,求初值问题
2tu ,0 t 2 u 1 1 t2 u (0) 0
的数值解. 步长 h=0.1, 计算结果取 7 位有效数字. 将计算结果与精确解做比较. 已知精确解 u (t )
t (3 t 2 ) 3(1 t 2 )
3、
从(1,1,1)T 开始,利用牛顿法迭代求解非线性方程组 xy=z 2 1 2 2 xyz y x 2 ex z e y 3
的根满足 x
107
4、编写一个用牛顿法解方程 x tan x 的程序,求接近于 4.5 和 7.7 的根,并编 制 Steffensen 法的程序,求解此方程的根(控制精度 10 ) ,并比较两者的收 敛速度。 Steffensen 法:迭代公式为:
f ( x, y ) x 2 y 2 5 0 , 在(1,1)附近的解 g ( x , y ) ( x 1) y (3 x 1) 0
24、已知某直升飞机旋转机翼外形轮廓线部分坐标如下表: x y 0.52 5.28749 3.10 9.40 8.00 17.95 28.65 39.62 24.90 28.44 50.65 31.1 78 35
6 5.78
7 5.40
8 5.57
9 5.70
10 5.80 0.2
写出三次样条插值函数的分段表达式,并计算车门曲线在 1.5,5.2,9.1 的值。 6、利用直接法(列主元消去法,分解法等)求解系数矩阵为 5 阶 Hilbert 矩阵的 方程组 Ax=b,其中 aij
1 , b (1,0,0,0,0)T i j 1
26、利用四阶 Runge-Kutta 方法和各种 的值,如 10, 5,5 ,数值求解下 列初值问题
多媒体技术上机实验作业答案
实验1:用GoldWave软件解决音频素材准备:音频素材(MP3、W AV、MIDI,至少准备两种格式的文献,每种格式准备2个以上文献)实验内容1、文献拆分与合并打开一个音频文献,将该音频文献拆提成两个文献分别存盘;拆分前: 音频时长3分28秒拟定在1分50秒处拆分,设定好剪裁位置运用剪切功能可以方便的剪切掉需要拆为第二个文献的部分,并新建一个文档保存拆分后前段音频时长1分50秒,后段音频时长1分38秒.打开两个音频文献,将两个音频文献合成一个音频文献。
打开两个W AV文献,W A V-1和W A V-2.运用”剪切”和”粘贴到”功能将第二个文献合成到第一个文献中.已完毕合成,保存文献.2、文献格式转换打开多个同种格式文献,将其批量转换成另一种格式文献存盘。
打开批解决对话框,选择多个文献.切换到”转换”选项卡,选择转换格式及进行设定选择目的文献保存位置点击开始进行转换,目的文献生成,MP3转换WA V成功…3、音频内容编辑选择音频段、音频段静音、音频段删除、插入空白区域、撤消误操作、声音段内容移动位置。
鼠标选择音频段,在”编辑”菜单中,选择相应菜单完毕作业规定, 音频段静音、音频段删除、插入空白区域、撤消误操作的操作,声音段内容移动位置,可以借用”剪切”和”粘贴”功能实现.4、音频效果编辑淡入淡出效果、频率均衡控制、回声效果、改变音高、倒序声音原音频实现淡入淡出效果频率均衡控制、回声效果、改变音高、倒序声音实验2:用Phtotoshop批解决轻松制作网页相册操作环节:1. 准备好图片素材;并统一将图片放在一个文献夹下。
2. 打开Photoshop的“Web照片画廊”对话框。
3. 设立“Web照片画廊”对话框中的选项。
(1)选择“样式”;(2)选择源图像存放位置;(3)选择目的图像存放位置;(4)设立“选项”。
“Web照片画廊”对话框中的“选项”里面有6个具体选项,它们是:“常规”、“横幅”、“大图像”、“缩览图”、“自定颜色”和“安全性”。
地理信息系统上机实习二
实习2.创建自己的项目文件目的1、掌握如何创建自己的项目文件。
2、了解如何编辑图层的图例,设置图层的比例尺显示开关。
3、掌握GIS的一般查询和检索工具;4、掌握图形输出的排版设计。
1.创建自己的新项目⑴启动ArcView单击开始→程序(P)→ESRI→ArcView GIS 3.2a→ArcView GIS 3.2a⑵在欢迎对话框中,选择“As a blank project”,单击“Ok”。
如右图2.1⑶单击视图图标,单击“New”命令按钮激活Project窗口,可以发现已经新建了一个名字为“View1”的视图。
⑷双击“View1”,在出现的子窗口中,执行“View”下的“Properties”命令。
在弹出的对话框中,作如右图2.2的修改,然后单击“Ok”单击菜单“Windows”下的“Untitled”子菜单,激活Project窗口,观察视图名有什么变化,然后回到View窗口。
⑸单击菜单“View”下的“Add theme”,或者单击工具按钮,出现如右图2.3的添加图层对话框⑹在“Add theme”对话框中,改变驱动器和文件夹到$HomeDriver\ESRI\ A V_GIS30\ A VTUTOR\ ARCVIEW\QSTAR,选择“Deg30.shp”文件,单击“Ok”图2.1 欢迎对话框图2.2 View Properties 对话框图2.3 增加图层对话框⑺重复第⑸步操作,分别加入“World94.shp”、“State.shp”与“Uscities.shp”图层。
如右图2.42.改变图层的显示效果⑴在“TOC”中双击“Deg30.shp”图层,或者先激活“Deg30.shp”图层,然后单击工具按钮,打开如右图2.5的图例编辑框⑵在“Legend Editor”窗体中,双击“Symbol”栏下的图例进行编辑。
在弹出的窗体中,单击“Fill Palette”,选择“无填充”项,如右图2.6,然后关闭该窗体。
DS_上机实验的目的、要求和评分标准
上机实验的目的、要求和评分标准一、实验目的上机实践是各位对本门课程所学知识的一种全面、综合的能力训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节,也是对课堂教学与实践教学效果的一种检验。
通常,实验题中的问题比平时的习题复杂得多,也更接近实际。
实验着眼于原理与应用的结合,使你们学会如何把书上学到的知识运用于解决实际问题的过程中去,培养从事软件开发设计工作所必需的基本技能;另一方面,能使书上的知识变“活”,起到深化理解和灵活掌握教学内容的目的。
平时的练习较偏重于如何编写功能单一的“小”算法,而实验题是软件设计的综合训练,包括问题分析(需求分析)、总体结构设计和用户界面设计(概要设计)、程序设计基本技能和技巧等,即一整套软件工程规范的训练和科学作风的培养。
此外,还有很重要的一点是:机器是比任何教师都严厉的主考者。
为了达到上述目的,本课程共安排了10个实验单元,各单元的训练重点在于基本的数据结构,而不强调面面俱到。
各实验单元与教科书的各章具有紧密的对应关系。
二、要求:⒈做好每一次上机前的准备以提高上机效率:①预先认真阅读相关实验内容,做到心中有明确的目的要求和任务,要有备而来,应该自己独立的思考和设计你的算法和程序,并争取在规定的时间内如期完成上机工作任务。
对于个别目前基础较差的同学,实在是没法完成任务的建议你先参考其他同学的算法,勤学好问,最终自己独立完成,以增强你的感性认识,强化你的实践基础,提高你的实践能力。
②按照实验内容规定的习题题目,事先在实验预习报告上编写好源程序及运行程序所需的典型数据,并经人工静态检查认为无误;手编程序应书写整齐,应在每个题目之间留出一定的空间,以备记录上机调试情况和运行结果等;对程序中自己有疑问的地方,应作出记号,以便上机时给以注意。
③将想要上机验证的问题草拟提纲;制定一个简捷的程序调试计划。
⒉上机时输入和调式自己所编写的程序。
对“出错信息”,应善于自己分析判断,并充分利用开发工具提供的错误信息和调试手段解决出现的问题,及时修改与完善算法、源程序,随时记录有价值的内容。
计算机网络上机实验 题目
实验一网络简单观察实验一、实验目的1.观察了解网卡、线缆、集线器等设备;2.了解WINDOWS中的网络组成及参数;3.了解通过TCP/IP协议连接上网的方法;4.了解Ethereal软件的作用,以及利用Ethereal软件捕获、查看网络数据包的方法。
二、原理概述Ethereal是一个免费的网络协议分析软件,支持Linux、Windows等多种平台。
由于网络上产生的数据包很多,通常我们只对其中一部分数据包感兴趣,因此在捕捉具体的数据包之前需要定义一个过滤器(filter),以滤除不需要的信息。
一个过滤器实质上是一组规则,只有收到的数据满足规则时才保存,否则丢弃。
过滤器通常可以是多个规则的逻辑组合。
在Ethereal中捕捉数据包前,首先要选择要监听的接口。
点击菜单中“Capture” “Interface”,此处选择接口“NDIS5 Driver”。
在捕捉前还要设置一些参数,如过滤器。
点击“prepare”,出现设置窗口,在“Capture Filter”一栏中填写感兴趣的数据包对应规则(见使用手册)。
点击“Start”按钮开始捕捉。
打开浏览器访问一些站点后,然后关闭浏览器,最后点击“Stop”按钮,结束数据包的捕捉。
所有捕捉的数据包都显示在主窗口中。
窗口中上面的列表框为所有捕获数据包(帧)的列表,记录了这些数据包的捕获时间、来源、目的地、协议等信息。
中间的文本框为当前选中的捕获帧经Ethereal解释后的协议信息。
屏幕最下面的窗口中以二进制形式显示当前选中的数据包的原始内容。
如果需要保存所捕获的数据,可选择菜单“File”中的“Save as…”进行保存。
Ethereal支持多种文件格式。
三、实验内容1.了解网卡的配置情况;2.了解对等网的相关数据;3.了解TCP/IP协议的相关参数配置;4.阅读Ethereal软件的相关使用手册。
四、实验方法1.实验原理本实验是是在实验室的基于WINDOWS的网络上,观察网络的硬件软件,和相关的网络参数,并可以进行进一步的上网和共享硬盘等网络应用。
人工智能上机试验报告
人工智能上机实验报告人工智能上机实验题目:自动求解八数码难题。
八数码难题:在3×3的方格棋盘上,分别放置了标有数字1,2,3,4,5,6,7,8的八张牌,初始状态S0,目标状态如下图所示,可以使用的操作有:空格左移,空格上移,空格右移,空格下移。
图1 八数码难题的目标状态请上机参考给定的类用C++实现八数码难题的自动求解,给出操作步骤。
参考代码的说明如下:1.CSearchEngine类:搜索引擎基类,你可以在它的基础上编写更好的搜索引擎2.CGSESearchEngine类:使用全局择优搜索算法的搜索引擎3.CEveluation类: 节点估价类, 对棋盘局面进行估值, 以引导搜索4.CMoveGenerator类:走法产生器,对某一局面产生合适的走法具体要求:1.对于指定的(程序内定的)初始问题状态,上机输入调试运行程序,给出自动求解步骤。
2.原估价函数为“不在位”的数码个数,请修改估价函数为“不在位的数码距离正确位置的距离”。
3.选做1:通过输出扩展节点,比较2中两种不同估价函数的效率。
选做2:编写随机生成初始状态的类,增强程序功能。
思考:是不是任意初始状态都能找到解?问题一:上图各节点中的数据,前三行为八个数字的布局,最后一行是评价结果,红色框和箭头指出最优路径。
搜索过程使用广度优先策略。
估价函数为:不在位的数码个数。
以下为运行结果步骤:2 8 31 6 47 0 52 8 31 0 47 6 5press enter to continue the next step:2 0 31 8 47 6 5press enter to continue the next step:0 2 31 8 47 6 5press enter to continue the next step:1 2 30 8 47 6 5press enter to continue the next step:1 2 38 0 47 6 5You've have the solution!问题二: //新的评价函数,不在位的数码距离正确位置的距离int CEvaluation::Evaluate(BYTE byBoard[][3]){BYTE destBoard[3][3] = { {1,2,3}, {8,0,4}, {7,6,5} };int iDist = 0;int i_1, j_1, i_2, j_2;BYTE num;for( num = 0; num <= 8; num ++ ){GetNumPos(byBoard, i_1, j_1, num);GetNumPos(destBoard, i_2, j_2, num);iDist += abs(i_1 - i_2) + abs(j_1 - j_2);}return iDist;}void CEvaluation::GetNumPos(BYTE byBoard[][3], int &i, int &j, BYTE num) {for( i = 0; i < 3; i ++ )for( j = 0; j < 3; j ++ )if( byBoard[i][j] == num )return;}问题三:上图各节点中的数据,前三行为八个数字的布局,最后一行是评价结果,红色框和箭头指出最优路径。
DS实验报告模板
南昌航空大学实验报告课程名称:数据结构实验名称:线性表的顺序存储结构班级: 122011 学生姓名:杨敏晖学号: 11201133 指导教师评定:签名:上机前预习:阅读所给程序,上机输入该程序,并调试运行,分析功能。
题目:设计并实现以下算法:有两张单调递减有序的线性表A,B,采用顺序存储结构,将这两张表合并成C表,要求C表单调递增有序,并删除值相同的元素。
一、需求分析⒈本演示程序根据已有的6位学生的信息,实现两张表的合并及删除值相同元素的操作,不需要用户重新输入学生的信息。
⒉在演示过程序中,用户敲击键盘,即可观看演示结果。
⒊程序执行的命令包括:(1)构造线性表A (2)构造线性表B (3)求两张表的并(4)删除C中值相同的元素二、概要设计⒈为实现上述算法,需要线性表的抽象数据类型:ADT Stack {数据对象:D={a i:|a i∈ElemSet,i=1…n,n≥0}数据关系:R1={<a i-1,a i>|a i-1,a i∈D,i=2,…n≥0}基本操作:init(list *L)操作结果:构造一个空的线性表L。
ListLength(List *L)初始条件:线性表L已经存在操作结果:返回L中数据元素的个数。
GetElem(List L, int i, ElemType *e)初始条件:线性表L已经存在,1≤i≤ListLength(&L)操作结果:用e返回L中第i个数据元素的值。
EqualList(ElemType *e1,ElemType *e2)初始条件:数据元素e1,e2存在操作结果:以e1,e2中的姓名项作为判定e1,e2是否相等的依据。
Less_EquaList(ElemType *e1,ElemType *e2)初始条件:数据元素e1,e2存在操作结果:以e1,e2中的姓名项(为字符串)的≤来判定e1,e2是否有≤的关系。
LocateElem(List *La,ElemType e,int type)初始条件:线性表La已经存在操作结果:判断La中是否有与e相同的元素。
2013级DS作业和实验参考答案总汇(1)
2013级DS作业和实验参考答案总汇目录第一次作业:复习C++ 9000,9002第二次作业:顺序表插入和删除操作9003,9004第三次作业:顺序表查找操作和单链表建立9012,9006第四次作业:单链表操作9014,9016,9017第五次作业:特殊线性表栈操作9045,9042,9041第六次作业:特殊线性表队列操作9038,9040第七次作业:二叉树的顺序存储9050第八次作业:复制二叉树9063第九次作业:二叉树的高度宽度9057,9067第十次作业:图的邻接矩阵及遍历9070,9072,9087第十一次作业:图的生成树9076,9077,9088第十二次作业:图的最短路径9092,9091,9085 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!第一次实验:顺序表9010,9005第二次实验:顺序表2 9097第三次实验:单链表9007第四次实验:循环链表9008第五次实验:递归9039第六次实验:二叉树的建立及遍历9019第七次实验:二叉树的结点9054,9056第八次实验:二叉树的存储转换9049第九次实验:哈夫曼编码9068第十次实验:图的邻接表及度9071,9079第十一次实验:图的存储转换9089,9084,9083第十二次实验:模拟考试!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!第一次作业:复习C++9000,90029000:矩形面积Problem Description声明一个名为rect的矩形类,其属性为矩形的左下角和右上角两个点的x和y坐标,该类有效矩形只存在于直角坐标系的第一象限内。
若所构成的矩形有效,则计算矩形的面积;若所构成的矩形无效,则输出“data error”。
11DS上机指导1实验报告 (2)
《数据结构》实验指导(一)顺序表初始化、创建和输出一、实验目的1、学会使用VC6.0的集成开发环境。
2、掌握线性表的顺序存储结构及其编程。
二、实验内容1、根据下列程序环境的设置,完成顺序表的初始化函数status InitList_Sq(SqList *L)的编写。
#include "stdio.h"#include "stdlib.h"#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define OVERFLOW -2typedef int status;typedef int elemtype; //元素为整型#define LIST_INIT_SIZE 100#define LISTINCREMENT 10typedef struct{elemtype *elem;int length;int listsize;}SqList;status InitList_Sq(SqList *L) //构造一个空的顺序表{L->elem=(elemtype*)malloc(LIST_INIT_SIZE*sizeof(elemtype)); if(!L->elem) exit(OVERFLOW);L->length=0;L->listsize=LIST_INIT_SIZE;return OK;}2、在第1题的基础上,输入下面的创建顺序表函数。
status create_Sq(SqList *L)//建立一个顺序表,含有n个数据元素。
{int m,n;printf("请输入元素的个数:");scanf("%d",&n);for(m=0;m<n;m++){printf("请输入第%d个元素:",m+1);scanf("%d",&L->elem[m]);L->length++;}return OK;}3、在第1和第2题的基础上,补充完整输出顺序表中元素和元素个数的输出函数。
第三次上机实验参考答案.doc
第三次上机实验参考答案1、类对象的定义【项目要求】定义一个圆类,计算圆的面积和周长。
(1)控制台应用程序的参考代码如下:namespace SY3_1{class Program{static void Main(string[] args){double r;Console.Write(”请输入圆的半径:”);r = Convert.ToDouble(Console.ReadLine());Circle cl = new Circle(r);Console.WriteLineC'圆周长={0}\n 圆面积={1}", cl.getCircumference(), cl.getAreaO);Console.ReadLine();}}class Circle{private double radius;public Circle(double r){radius = r;}图3-1 1MI类求面积和周长public double getArea(){return Math.PI * radius * radius;}public double getCircumference(){return 2 * Math.PI * radius;}〃定义一个圆类,计算圆的面积和周长。
(2)用面向对彖的思想实现Windows应用程序,用八输入圆的半径,点击计算按钮能输出圆的面积和周长。
界面如图3・2所示。
private void buttonl_Click(object sender, EventArgs e) {double r;r = Convert.ToDouble(tbRadius>Text); Circle cl = new Circle(r);tbArea.Text = cl .getArea().ToString("F2M ); tbPeri.Text = c 1 .getCircumference().ToString("F2"); }class Circle {private double radius; public Circle(double r) {radius = r; }public double getArea() {return Math.PI * radius * radius; }public double getCircumference() {return 2 * Math.PI * radius;〃用面向对彖的思想实现Windows 应用程序,用八输入圆的半径,点击计算按钮能输出圆的面积和 周长。
数值计算方法上机实验题
数值计算方法上机实验实验内容:1.要求:分别用复化梯形法,复化Simpson 法和 Romberg 公式计算.2.给定积分dx e x⎰31和dx x ⎰311 ,分别用下列方法计算积分值要求准确到510- ,并比较分析计算时间. 1)变步长梯形法; 2)变步长 Simpson 法; 3) Romberg 方法.算法描述:1、复合梯形法:⎰=tdt t a t V 0)()( ))()(2)((211∑-=++=n k k n b f x f a f hT输入 被积函数数据点t,a. 输出 积分值.n T复合Simpson 法:⎰=tdt t a t V 0)()( ))()(2)(4)((6101121∑∑---=++++=n k n k k k n b f x f x f a f hS输入 被积函数f(x),积分区间[a,b]和n 输出 复合Simpson 积分值n S步1 .);()(;a x b f a f S nab h n ⇐-⇐-⇐ 步2 对n k ,,2,1 =执行).(2;2);(4;2x f S S hx x x f S S h x x n n n n +⇐+⇐+⇐+⇐步3 n n S hS ⨯⇐6步4 输出n SRomberg 积分法:根据已知数据对其进行多项式拟合得出p(x);f(x)⇐p(x); 输入 被积函数f(x),积分区间端点a,b,允许误差ε 输出 Romberg 积分值n R 2 步1 .0;0;0;0));()((2;1111⇐===+⇐-⇐k R C S b f a f hT a b h 步2 反复执行步3→步9. 步3 .2;0h a x S +⇐⇐ 步4 反复执行步5→步6. 步5 ;);(h x x x f S S +⇐+⇐步6 若x ≥b,则退出本层循环. 步7 执行.6316364;1511516;3134;2212212212212C C R S S C T T S S h T T -⇐-⇐-⇐+⇐步8 执行.1;;;;;2;2121212112+⇐⇐⇐⇐⇐⇐-⇐k k R R C C S S T T hh R R e 步9 若e ≤ε且k ≥5,则退出循环. 步10 .22R R n ⇐ 步11 输出.2n R2、变步长梯形算法:功能 求积分⎰ba)(dx x f ,允许误差为ε。
DS上机实验题
数据结构实验每一个实验有两个题目,题目一属于综合性实验(全部都做),题目二属于设计性实验(至少必选4题)。
此外,鼓励自选1至2道创新性实验题(自拟题)。
指导老师:刘波,李宇时间:双周星期二(3~4节课)。
要求:上机前先准备编写程序。
实验后及时完成实验报告,采用学校统一规定实验报告格式书写。
实验报告按照以下内容书写:(一)实验目的和要求;(二)实验主要内容;(三)实验原理(抽象数据类型的定义,自定义结构类型说明,算法基本操作说明等)(四)实验步骤及调试分析;(五)实验结果及分析;(六)附录:源程序实验1 抽象数据类型题目一:三元组抽象数据类型的表示与实现1 实验目的:熟悉抽象数据类型的表示和实现方法2 实验内容:(1)定义三元组抽象数据类型Triplet,说明三元组存储结构以及基本操作原型;(2)实现对三元组的构造、读取、求最大、最小值等基本操作3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。
.题目二:复数四则运算1实验目的:熟悉抽象数据类型的表示和实现方法,利用高级程序语言中已存在的数据类型说明新的结构。
2 实验内容(1)定义复数抽象数据类型Complex,说明其基本操作原型;(2)实现下类基本运算:由输入的实部和虚部生成一个复数;两个复数求和;两个复数求差;两个复数求积。
运算结果以相应的复数或实数的表示形式显示。
3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。
实验2 线性表及其应用题目一:线性表的操作1 实验目的:熟练掌握线性表的基本操作在顺序或链式存储结构上的实现。
2 实验内容:(1)建立n个元素的顺序或链式表,实现顺序或链式表的基本操作;(2)在线性表中元素i之后插入一个元素,实现顺序或链式表插入的基本操作;(3)在线性表中删除指定位置i上的元素,实现顺序或链式表删除的操作。
3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。
题目二:学生课程管理系统1 实验目的:熟练掌握线性表基本操作的实现及应用2 实验内容:利用顺序表完成一个班级的一个学期的课程的管理:能够增加、删除、修改学生的成绩记录。
gmdss实操习题分类
=========习题分类====基本定义、属性(进动性等等)=D1384、所谓自由陀螺仪________。
(37290:第七章航海仪器:3217)A.重心与其中心相重合的三自由度陀螺仪,B.主轴可指向空间任意方向的陀螺仪C.不受任何外力矩作用的平衡陀螺仪,D.A+B+C31d.不受任何外力矩作用,重心与支架中心重合的陀螺仪称为:A、三自由度陀螺仪B、下重武陀螺仪,C、自由陀螺仪D、平衡陀螺仪53c.自由陀螺仪的定义是:A、重心与中心重合的三自由陀螺仪B、主轴可指向任意方向的陀螺仪C、不受任何外力矩作用的平衡陀螺仪D、A+B+CA1385、从工程技术角度,陀螺仪的定义为________。
(37293:第七章航海仪器:3218) A.高速旋转的对称转子及保证转子主轴指向空间任意方向的悬挂装置,B.转子及其悬挂装置的总称C.具有三自由度的转子,D.高速旋转的对称刚体C1386、何谓陀螺仪的定轴性________。
(37298:第七章航海仪器:3219)A.其主轴指向地球上某一点的初始方位不变,B.其主轴动量矩矢端趋向外力矩矢端C.其主轴指向空间的初始方向不变,D.相对于陀螺仪基座主轴指向不变A1387、三自由度陀螺仪在高速转动时,其主轴将指向________,若在垂直主轴方向上加外力矩,主轴将________。
(37301:第七章航海仪器:3220)A.空间某一方向,产生进动,B.真北,指向真北C.空间某一方向,保持指向不变,D.A和C对26c.三自由度陀螺仪定轴性是力图保持主轴相对于不变。
A、船舶B、地理方位,C、宇宙空间D、任意方位D1388、满足下列________时,陀螺仪才具有定轴性。
(37305:第七章航海仪器:3221) A.高速旋转,B.陀螺仪中心与其重心重合,C.不受任何外力矩,D.A+B+C======习题分类=======基本定义、属性(进动性等等)=C1383、高速旋转的三自由度陀螺仪其进动性可描述为________。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
以下是数据结构这门课要做的实验,每一个实验有两个题目,题目一属于综合性实验(全部都做),题目二属于设计性实验(至少必选3题)。
鼓励自选1至2道创新性实验。
指导老师:刘波,郑亚光
时间:双周星期五(3~4节课)。
要求:上机前先写好程序。
实验后及时完成实验报告.采用学校统一规定实验报告格式写。
实验报告按照以下内容书写:
(一)实验目的和要求;
(二)实验主要内容;
(三)实验原理(抽象数据类型的定义,自定义结构类型说明,基本操作说明,主函数与其他函数的调用关系图等)
(四)实验步骤及调试分析;
(五)实验结果及分析;
(六)附录:源程序
实验1 抽象数据类型
题目一:三元组抽象数据类型的表示与实现
1 实验目的:熟悉抽象数据类型的表示和实现方法
2 实验内容:
(1)定义三元组抽象数据类型Triplet,说明三元组存储结构以及基本操作原型;
(2)实现对三元组的构造、读取、求最大、最小值等基本操作
3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。
.
题目二:复数四则运算
1实验目的:熟悉抽象数据类型的表示和实现方法,利用高级程序语言中已存在的数据类型说明新的结构。
2 实验内容
(1)定义复数抽象数据类型Complex,说明其基本操作原型;
(2)实现下类基本运算:由输入的实部和虚部生成一个复数;两个复数求和;两个复数求差;两个复数求积。
运算结果以相应的复数或实数的表示形式显示。
3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。
实验2 线性表及其应用
题目一:顺序表的操作
1 实验目的:熟练掌握线性表的基本操作在顺序存储结构上的实现。
2 实验内容:
(1)建立n个元素的顺序表SqList,实现顺序表的基本操作;
(2)在SqList}的元素i之后插入一个元素,实现顺序表插入的基本操作;
(3)在SqList中删除指定位置i上的元素,实现顺序表删除的操作。
3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。
题目二:学生课程理系统
1 实验目的:熟练掌握线性表基本操作的实现及应用
2 实验内容:利用顺序表完成一个班级的一个学期的课程的管理:能够增加、删除、
修改学生的成绩记录。
3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。
实验3 栈和队列及其应用
题目一:栈及队列的操作
1 实验目的:熟练掌握栈及队列基本操作的实现
2 实验内容:
(1)建立栈并进行一些元素入栈,实现链栈的建立及入栈的基本操作;
(2)实现某些元素的出栈,实现链栈的出栈的操作;
(3)建立链队列,并实现一些元素入队,实现链队列的建立和入队的基本操作;
(4)实现某些元素出队,实现链队列的出队的基本操作
3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。
题目二:停车场管理
1 实验目的:熟练栈和队列的结构特性,掌握在实际问题背景下的应用
2 实验内容:
问题描述:
设停车场是一个可停放n 辆汽车的狭长通道,且只有一个大门可供汽车进出。
汽车在停车场内按车辆达到时间的先后顺序,依次由北向南排列(大门在最南端,最先达到的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退车车场为它让路,待赶辆车开出大门外,其它车辆在按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短叫纳费用。
试为停
车场编制按上述要求进行管理的模拟程序。
●基本要求
以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。
每一组输入数据包括三个数据项:汽车“达到”或“离去”信息、汽车牌照号码以及达到或离去的时刻。
对每一组输入数据进行操作后的输出信息为:若是车辆达到、则输出汽车在停车场内或便道上停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。
栈以顺序结构实现,队列以链表结构实现。
●测试数据
设n=2,输入数据为(“A”,1,5), (“A”,2,10), (“D”,1, 15), (“A”,3,20),(“D”,2, 35), (“E”,0,0), (“A”,1,5), 其中:“A”表示达到(Arrival);“D”表示离去(Departure); “E”表示输入结束(End)。
3实现提示:
需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。
输入数据按达到或离去的时刻有序。
栈中每个元素表示一辆汽车,包括两个数据项:汽车的牌照号码和进入停车场的时刻。
4 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。
实验4 树及其应用
题目一:排序二叉树的建立与操作
1 实验目的:通过二叉树的建立来了解二叉树的定义及有关概念,熟悉二叉树的存储结构及性质,掌握用指针类型处理二叉树。
2 实验内容:
(1)构建一颗二叉树;
(2)实现二叉树中所有结点的左、右子树相互交换。
3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。
题目二:哈夫曼码编
1 实验目的:熟练哈夫曼树的定义,掌握构造哈夫曼树的方法、哈夫曼编码的方法
2 实验内容:
●问题描述:
利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。
但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码。
对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编码或译码系统。
试为这样的信息发送站写一个哈夫曼码的编码系统。
●基本要求:
一个完整的系统应具有以下功能:
(1)初始化。
从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树。
(2)编码。
利用以建好的哈夫曼树对文件的正文进行编码。
●测试数据
利用教科书P148 例6-2中数据调试程序
3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。
实验5 图及其应用
题目一:求最短路径
1 实验目的:掌握图的基本存储方法,了解最短路径的概念,掌握求最短路径的方法
2 实验内容:
(1)建立一个包含6个结点的有向图,
2)利用Dijkstra算法求顶点v0到其它顶点的最短路径。
3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。
题目二:校园导游咨询
1 实验目的:掌握图的基本操作方法及应用
2 实验内容:
●问题描述:
设计一个校园导游程序,为来访的客人提供各种信息咨询服务。
●基本要求:
(1)设计你所在的学校的校园平面图,所含景点不少于5个。
以图中顶点表示校内各景点,存放景点的名称、代号、简介等信息;以边表示路径,存放路径长度
等相关信息。
(2)为来访客人提供图中任意景点相关信息的咨询。
(3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
●测试数据
由同学们根据实际情况指定
3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。
实验6 查找及应用
题目一:顺序、折半查找
1 实验目的:熟悉并掌握顺序、折半查找的过程及方法。
2 实验内容:
(1)在输入数组的记录中顺序查找所需的数据;
(2)对已有的有序序列进行折半查找;
(3)比较以上两种方法的查找次数。
3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。
题目二:电话号码的查询
1 实验目的:熟练并掌握查找的过程、方法和应用
2 实验内容:
●问题描述:
设计一个电话号码查找程序,为来查询人提供电话号码的查询服务。
●基本要求:
(1)以你所在的班级为查询范围,假设人名为中国人姓名的汉语拼音形式。
人数不能少
于10人。
(2)完成根据人名来查找相应的电话号码。
测试数据
由同学们根据实际情况指定
3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。
实验7 排序及应用
题目一:统计成绩
1 实验目的:掌握常用的排序方法,深刻理解排序的定义和各种排序方法的特点,并能灵活应用。
2 实验内容:
(1)输入n个学生的考试成绩,每个学生信息由姓名与分数组成;
(2)选择一种排序算法,按分数高低次序,打印出每个学生的名次,分数相同的为同一名次。
(3)按名次给出每个学生的姓名与分数。
3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。