文档库 最新最全的文档下载
当前位置:文档库 › 上机实验七 一维数组

上机实验七 一维数组

上机实验七 一维数组
上机实验七 一维数组

上机实验七一维数组

学号:201536410128 姓名:高凌峰

一.目的要求

1.掌握一维数组的基本概念,定义和初始化方法;

2.掌握一维数组的基本操作,如输入、输出、引用数组元素;

3.掌握与数组有关的基本算法,如寻找最大/最小值、排序等。

二.实验内容

【实验题1】程序填空:给定平面上10个点,求其中离原点最近的点。源程序用一维数组x存放这10个点的x坐标,用一维数组y存放相应的y坐标,即第i个点的坐标为(x[i], y[i])。用变量index记录最近点的下标。程序中使用距离的平方做比较:x*x+y*y。

#include

int main()

{ int i, index; //index是离原点最近的点的下标

double d, min; //min是到原点的最近距离的平方

double x[]={1.1, 3.2, -2.5, 5.67, 3.42, -4.5, 2.54, 5.6, 0.97, 4.65};// 赋初值

double y[]={-6, 4.3, 4.5, 3.67, 2.42, 2.54, 5.6, -0.97, 4.65, -3.33};// :赋初值

index=0; min=x[0]*x[0]+y[0]*y[0]; //设第0个点为最近点

for(i=1; i<10; i++){

d= x[i]*x[i]+y[i]*y[i];

if(d

min=d;

index=i;

}

}

printf("%d: x=%.2f, y=%.2f \n", index,x[index],y[index] ); //输出最近点的下标和坐标}

程序运行结果为:

数组x和y的长度应该各是多少?

x=10,y=10

如果将程序功能改为求10个点中离原点最远的点,语句行Line 11又应如何填写?if(d>min){ //Line 11

【实验题2】程序填空:输入5个整数, 将这5个数按逆时针顺序转动一次后再输出,如输入1 2 3 4 5,逆时针转动一次后,输出2 3 4 5 1。要求用数组实现。

提示:设存放整数的数组为a。要实现数组逆时针转动,只要先将首元素a[0]“搬”至一个变量t中; 然后从第1个元素到最后1个元素,依次向前移一位, 即a[i-1]= a[i] ( i= 1, … , 4);最后将存放在t中的首元素放入最后的元素。

#include

int main()

{ int i, t, a[5];

printf("Input 5 integers:\n");

for(i=0; i<5; i++) scanf("%d",&a[i]);

t= a[0]; //Line 7

for(i=1; i<5; i++) //Line 8

a[i-1]=a[i]; //Line 9

a[4]= t; //Line 10

printf("After rotation:\n");

for(i=0;i<5;i++) printf("%5d",a[i]);

printf("\n");

}

运行程序,输入1 2 3 4 5, 结果为:

如果将Line 8 改为“a[i]= a[i+1]; ”,则Line 7应改为:for(i=o;i<4;i++)

如果要求程序实现数组元素的顺时针转动,那么Line 7、Line 8、Line 9 、Line 10应该如何修改?

4.t=a[4]; //Line 7: 将最后一个元素搬至t

for(i=4; i>; i--) //Line 8: 前4个元素依次后移一位

a[i]=a[i-1]; //Line 9:后移一位

a[0]= t; //Line 10:将t中存放的最后一个元素放入首元素的位置

【实验题3】程序填空:输入整数x, 要求在给定的数组a中查找x, 若在a中找到了x,删除之;如果x在数组a中不出现,输出提示信息“Not Found”.

提示:要删除数组元素a[k],将a[k+1]…a[n-1]各向前移动一位:a[i-1]= a[i] (i= k, …, n-1)

源程序:

#include

int main()

{ int x, i, k=-1, a[5]={1,3,5,7,9}; //k--记录x在数组a中的下标,初值为-1,表示尚未找到

printf("Input x:"); scanf("%d",&x);

for(i=0; i<5; i++)//在a中寻找x

if(a[i]==x) {

k=i;

break;

}

if(i==5) //line 10

printf("Not Found!\n");

else{ //找到x,则删除之

for(i=k; i<5; i++) a[i]=a[i+1];

for(i=0;i<4; i++) printf("%d ", a[i]);//输出剩余的数组元素

}

}

运行程序,输入2,结果是. 当程序运行至line 10, 变量i的值为5.

输入3,结果是_. 当程序运行至line 10, 变量i的值为2.

MATLAB基本操作实验报告

南昌航空大学 数学与信息科学学院 实验报告 课程名称:数学实验 实验名称: MATLAB基本操作 实验类型:验证性■综合性□ 设计性□ 实验室名称:数学实验室 班级学号: 10 学生姓名:钟 X 任课教师(教师签名): 成绩: 实验日期: 2011-10- 10

一、实验目的 1、熟悉MATLAB基本命令与操作 2、熟悉MATLAB作图的基本原理与步骤 3、学会用matlab软件做图 二、实验用仪器设备、器材或软件环境 计算机MATLAB软件 三、实验原理、方案设计、程序框图、预编程序等 问题1:在区间【0,2π】画sinx 实验程序: >> x=linspace(0,2*pi,30); >> y=sin(x); >> plot(x,y) 问题2:在【0,2π】用红线画sinx,用绿圈画cosx,实验程序:

>> x=linspace(0,2*pi,30); >> y=sin(x); >> z=cos(x); >> plot(x,y,'r',x,z,'co') >> 问题3:在【0,π】上画y=sinx的图形。 实验程序: >> ezplot('sin(x)',[0,pi]) >> 问题4:在【0,π】上画x=cos3t,y=sin3t星形图形。

实验程序: >> ezplot('cos(t).^3','sin(t).^3',[0,pi]) >> 问题5:[-2,0.5],[0,2]上画隐函数 实验程序: >> ezplot('exp(x)+sin(x*y)',[-2,0.5,0,2]) >> 问题6:在[-2,2]范围内绘制tanh的图形。实验程序: >> fplot('tanh',[-2,2])

上机实验8 二维数组&字符数组--参考答案

上机实验八二维数组与字符数组—参考答案 一.目的要求 1.掌握二维数组的基本概念,如何定义二维数组,如何初始化二维数组。 2.掌握二维数组的基本操作:引用数组元素、行(列)求和,行(列)最大最小值,整个数组的输入输出等。 3.掌握与二维数组有关的算法,如找最大最小值(或位置)、矩阵转置等。 4.掌握字符串与字符数组的基本应用方法 5.掌握字符串有关的算法,如字符转换、查询、统计和进制转换等 二.实验内容 【实验题1】程序填空:输入一个4×4矩阵,求出主对角线上的元素之和sum1、副对角线上的元素之和sum2,并输出结果。 提示:每一行只有一个主对角线元素a[i][i](特征:i==j),也仅有一个副对角线元素a[i][n-i-1](特征:i+j==n-1,即j=n-1-i) 源程序: #include void main() { int i,j,sum1=0,sum2=0, a[4][4]; printf("Input a 4*4 matrix:\n"); for(i=0; i<4; i++) //输入矩阵元素 for( j=0; j<4; j++) scanf("%d", &a[i][j]); for(i=0; i<4; i++ ){ //计算sum1和sum2 sum1 +=a[i][i]; sum2 +=a[i][3-i]; } printf("sum1=%d, sum2=%d\n", sum1,sum2); //输出结果 } 运行程序,并输入数据: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 运行结果:sum1= 34, sum2= 34 【实验题2】程序填空:打印杨辉三角形前10行: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 …………………… 算法提示:分析一个10行的杨辉三角,需要一个10×10的二维矩阵a,则: 1)杨辉三角为下三角矩阵,只需要求出第i行(i=0,1,2,…,9)前i+1个元素,即a[i][j]!=0 (j=0…i). 2)每行的第0列元素均为1,即a[i][0]=1; 3)每行的主对角线元素也均为1,即a[i][i]=1; 4)从第2行开始,每行夹在第0列元素与主对角线元素之间的元素a[i][j]( i=2,3,…,9, j=1,..,i-1 ) 等于其左上方元素a[i-1][j-1]与正上方元素a[i-1][j]之和,即a[i][j]=a[i-1][j-1]+a[i-1][j]; 5)输出该矩阵的下三角,即得出杨辉三角的前10行。

第5章上机实验报告

第5章上机实验报告 一、实验目的 (1)观察程序运行中变量的作用域74。 (2)学习类的静态成员的使用。 (3)学习多文件结构的C++程序中的使用。 二、实验任务 (1)运行下面的程序,观察变量x,y的值。 【代码lab5-1】 #include"iostream" usingnamespace std; void fun(); int x=1,y=2; int main() { cout<<"Begin..."<

图的遍历操作实验报告

. .. . .. .. 实验三、图的遍历操作 一、目的 掌握有向图和无向图的概念;掌握邻接矩阵和邻接链表建立图的存储结构;掌握DFS及BFS对图的遍历操作;了解图结构在人工智能、工程等领域的广泛应用。 二、要求 采用邻接矩阵和邻接链表作为图的存储结构,完成有向图和无向图的DFS 和BFS操作。 三、DFS和BFS 的基本思想 深度优先搜索法DFS的基本思想:从图G中某个顶点Vo出发,首先访问Vo,然后选择一个与Vo相邻且没被访问过的顶点Vi访问,再从Vi出发选择一个与Vi相邻且没被访问过的顶点Vj访问,……依次继续。如果当前被访问过的顶点的所有邻接顶点都已被访问,则回退到已被访问的顶点序列中最后一个拥有未被访问的相邻顶点的顶点W,从W出发按同样方法向前遍历。直到图中所有的顶点都被访问。 广度优先算法BFS的基本思想:从图G中某个顶点Vo出发,首先访问Vo,然后访问与Vo相邻的所有未被访问过的顶点V1,V2,……,Vt;再依次访问与V1,V2,……,Vt相邻的起且未被访问过的的所有顶点。如此继续,直到访问完图中的所有顶点。 四、示例程序 1.邻接矩阵作为存储结构的程序示例

#include"stdio.h" #include"stdlib.h" #define MaxVertexNum 100 //定义最大顶点数 typedef struct{ char vexs[MaxVertexNum]; //顶点表 int edges[MaxVertexNum][MaxVertexNum]; //邻接矩阵,可看作边表int n,e; //图中的顶点数n和边数e }MGraph; //用邻接矩阵表示的图的类型 //=========建立邻接矩阵======= void CreatMGraph(MGraph *G) { int i,j,k; char a; printf("Input VertexNum(n) and EdgesNum(e): "); scanf("%d,%d",&G->n,&G->e); //输入顶点数和边数 scanf("%c",&a); printf("Input Vertex string:"); for(i=0;in;i++) { scanf("%c",&a); G->vexs[i]=a; //读入顶点信息,建立顶点表 }

(2)组策略的配置及使用

一、实验名称 组策略的配置及使用 二、实验类型 验证性实验 三、实验目的 通过对服务器进行本地安全策略的配置,使学生掌握组策略的概念,配置组策略的方法,及使用组策略配置用户、配置计算机及配置软件的具体实例操作。 四、实验内容 (1)通过控制台访问组策略 (2)对用户设置密码策略 (3)对用户设置登录策略 (4)退出系统时清除最近打开的文件的历史 五、相关知识 1、组策略对象的类型 组策略对象有两种类型:本地和非本地。 本地组策略对象:对于每台运行Windows 2000以上操作系统的计算机,无论该计算机是否连接在网络上,或者是否是Active directory环境的一部分,它都存储着一个本地组策略对象。然而,若计算机处在Active directory的网络中,那么非本地组策略对象将覆盖本地组策略对象,从而将本地组策略对象对系统的影响降到最小。在非网络环境中,或非Active directory中,由于本地组策略对象的设置并没有被非本地组策略对象覆盖,所以仍然可以发挥作用。 非本地组策略对象:非本地组策略对象是与Active directory对象联系起来使用的。非本地组策略对象也可以应用于用户或计算机。如果要使用非本地组策略对象,那么必须在网络中安装一台域控制器。根据Active directory服务的属性,系统会分层次地应用非本地组策略对象中的策略。 2、组策略模板 组策略模板(GPT)是域控制器上SYSVOL文件夹中的一个目录层次结构。该文件夹是一个共享文件夹,其中存储着域中公共文件的服务器拷贝,这些拷贝来自域中所有的域控制器。当创建一个组策略对象时,服务器会创建一个相应的组策略模板文件夹层次结构。组策略模板包含了所有的组策略设置和信息,包括管理模板、安全设置、软件安装、脚本和文件夹重

实验5 数组1答案

实验数组1 实验目的: 1、进一步掌握循环结构的程序设计 2、掌握在循环结构里面使用break、continue 3、掌握一维数组的定义与使用 实验内容: 一、观察下列代码(有语法问题自己解决) 1、利用无限循环输入数据,直到条件满足利用break跳出循环: #include using namespace std; int main( ) { int x,sum=0; while(1) { cin >> x; if(x <= 0) break; sum += x; } return 0; } 2、利用continue语句实现输出1-100之间的偶数: #include using namespace std; int main() { for (int i = 0;i <= 100; i++) { if (i % 2 != 0) continue; cout << i << ' '; } return 0; } 二、编码训练 1、利用break语句写一程序:循环从键盘输入数据并累加起来,直到输入的数为零时结束循环,打印累加结果。(参考前面第1题) #include using namespace std; int main( )

{ int x,sum=0; while(1) { cin >> x; sum += x; if(x == 0) break; } cout << "The sum is " << sum << endl; return 0; } 2、利用continue语句写一程序:输出1-20之间不能被3整除的数。(参考前面第2题) #include using namespace std; int main() { for (int i = 1;i <= 20; i++) { if (i % 3 == 0) continue; cout << i << ' '; } return 0; } 3、实现求6位学生c++的平均成绩。(参考案例书的P47案例1) #include using namespace std; int main() { double score[6]; double avg = 0,sum = 0; for (int i = 0;i <= 5; i++) { cin >> score[i]; sum = sum + score[i]; } avg = sum/6; cout << "平均成绩是:" << avg; return 0; } 4、利用一维数组编写一个程序:从键盘上输入10个float类型的数据,找出它们的最大值和最小值,并输出(定义两个变量分别保存最大值和最小值)。(参考案例书的P47案例1)#include using namespace std; int main() { float numb[10]; float min = 0.0,max = 0.0; int i; for (i = 0;i <= 9; i++) { cin >> numb[i]; } min = numb[0]; max = numb[0]; for (i = 1;i <= 9; i++) { if (numb[i] >= max ) max = numb[i];

计算机上机实验内容及实验报告要求(完整版)

报告编号:YT-FS-1915-76 计算机上机实验内容及实验报告要求(完整版) After Completing The T ask According To The Original Plan, A Report Will Be Formed T o Reflect The Basic Situation Encountered, Reveal The Existing Problems And Put Forward Future Ideas. 互惠互利共同繁荣 Mutual Benefit And Common Prosperity

计算机上机实验内容及实验报告要 求(完整版) 备注:该报告书文本主要按照原定计划完成任务后形成报告,并反映遇到的基本情况、实际取得的成功和过程中取得的经验教训、揭露存在的问题以及提出今后设想。文档可根据实际情况进行修改和使用。 一、《软件技术基础》上机实验内容 1.顺序表的建立、插入、删除。 2.带头结点的单链表的建立(用尾插法)、插入、删除。 二、提交到个人10m硬盘空间的内容及截止时间 1.分别建立二个文件夹,取名为顺序表和单链表。 2.在这二个文件夹中,分别存放上述二个实验的相关文件。每个文件夹中应有三个文件(.c文件、.obj 文件和.exe文件)。 3.截止时间:12月28日(18周周日)晚上关机时为止,届时服务器将关闭。 三、实验报告要求及上交时间(用a4纸打印)

1.格式: 《计算机软件技术基础》上机实验报告 用户名se××××学号姓名学院 ①实验名称: ②实验目的: ③算法描述(可用文字描述,也可用流程图): ④源代码:(.c的文件) ⑤用户屏幕(即程序运行时出现在机器上的画面): 2.对c文件的要求: 程序应具有以下特点:a 可读性:有注释。 b 交互性:有输入提示。 c 结构化程序设计风格:分层缩进、隔行书写。 3.上交时间:12月26日下午1点-6点,工程设计中心三楼教学组。请注意:过时不候哟! 四、实验报告内容 0.顺序表的插入。 1.顺序表的删除。

实验报告1windows的基本操作范例

实验名称:Windows的基本操作 一、实验目的 1.掌握桌面主题的设置。 2.掌握快捷方式的创建。 3.掌握开始菜单的组织。 4.掌握多任务间的数据传递——剪贴板的使用。 5.掌握文件夹和文件的创建、属性查看和设置。 6.掌握文件夹和文件的复制、移动和删除与恢复。 7.熟悉文件和文件夹的搜索。 8.熟悉文件和文件夹的压缩存储和解压缩。 二、实验环境 1.中文Windows 7操作系统。 三、实验内容及步骤 通过上机完成实验4、实验5所有内容后完成该实验报告 1.按“实验4--范例内容(1)”的要求设置桌面,将修改后的界面复制过来。 注:没有桌面背景图“Autumn”的,可选择其它背景图。 步骤:在桌面空白区域右击,选择菜单中的“个性化”,在弹出的窗口中点击“桌面背景”,在背景栏内选中“某一张图片”,单击“确定”。 修改后的界面如下图所示: 2.将画图程序添加到“开始”菜单的“固定项目列表”上。 步骤:右击“开始/所有程序/附件”菜单中的画图程序项,在弹出的快捷菜单中选“附到「开始」菜单”命令。 3.在D盘上建立以“自己的学号+姓名”为名的文件夹(如01108101刘琳)和其子文件 夹sub1,然后:

步骤:选定D:\为当前文件夹,选择“文件/新建/文件夹”命令,并将名字改为“学号+姓名”;选定“ D:\学号+姓名”为当前文件夹,选择“文件/新建/文件夹”命令,并将名字改为“sub1” ①在C:\WINDOWS中任选2个TXT文本文件,将它们复制到“学号+姓名”文件夹中;步骤:选定“C:\WINDOWS”为当前文件夹,随机选取2个文件, CTRL+C复制,返回“D:\学号+姓名”的文件夹,CTRL+V粘贴 ②将“学号+姓名”文件夹中的一个文件移到其子文件夹sub1中; 步骤:选定“ D:\学号+姓名”为当前文件夹,选中其中任意一个文件将其拖拽文件到subl ③在sub1文件夹中建立名为“”的空文本文档; 步骤:选定“ D:\学号+姓名\ sub1”为当前文件夹,在空白处单击右键,选择“新建\文本文档”,把名字改为test,回车完成。 ④删除文件夹sub1,然后再将其恢复。 步骤:选定“ D:\学号+姓名”为当前文件夹,右键单击“sub1”文件夹,选择“删除”,然后打开回收站,右键单击“sub1”文件夹,在弹出的快捷菜单中选择“还原”。 4.搜索C:\WINDOWS\system文件夹及其子文件夹下所有文件名第一个字母为s、文件长 度小于10KB且扩展名为exe的文件,并将它们复制到sub1文件夹中。 步骤:选定“ C:\WINDOWS\system”为当前文件夹,单击“搜索”按钮,在左侧窗格选择“所有文件和文件夹”,在“全部或部分文件名”中输入“s*.exe”,在“大小”中,选择“0~10KB”。 5.用不同的方法,在桌面上创建名为“计算器”、“画图”和“剪贴板”的三个快捷方式, 它们应用程序分别为:、和。并将三个快捷方式复制到sub1文件夹中。 步骤:①在"开始"菜单的"所有程序"子菜单中找到"计算器",单击右键,在弹出的快捷菜单中选择“发送到\桌面快捷方式”。 ②在"开始"菜单的"所有程序"子菜单中找到"画图",将其拖至桌面空白处。 ③在桌面上单击右键,在弹出的快捷菜单中选择“新建\快捷方式”,在“创建快捷方式”

实验5-数组答案

VB程序设计实验五 实验目的 ●掌握一维数组和二维数组的操作 ●学习跟数组相关的控件:列表框和组合框 复习 1.列表框 列表框(ListBox)控件允许用户查看和选择列表中的多个元素。 表5-11 列表框的常用属性和事件 2.组合列表框(ComboBox)整合了列表框和文本框的功能,以一个文本框控件(TextBox) 右边加上一个向下箭头的样式显示。有Simple(简单组合框)、DropDown(下拉组合框)和DropDownList(下拉列表框)。其中,Simple选项不显示下拉箭头,而是在控件的旁边显示一个滚动条;DropDown风格(默认值)在单击向下箭头时显示一个下拉列表,且在ComboBox中输入一个值;DropDownList显示一个下拉列表,但不允许用户在ComboBox中输入。 表5-13 组合列表框的常用属性和事件

(1) Items.Count属性:列表框或组合框中项目数量。最后一项的序号为Items.Count-1,该属性只能在程序中设置或引用。 (2) Text属性:被选定的选项的文本内容。该属性只能在程序中设置或引用。 注意:ListBox1.Items(ListBox1.SelectedIndex)等于ListBox1.Text。 (3) Items.Add方法 把一个选项加入列表框,格式:对象.Items.Add(选项);如:ListBox1.Items.Add("周海涛") (4) Insert方法 在指定位置插入一个项目。格式:对象.Items.Insert(序号, 添加项内容) (5)Items.Remove方法 从列表框中删除指定的项。格式:对象. Items.Remove (选项)。 例如:ListBox1.Items.Remove ("华成") (6)Items.RemoveAt方法 格式:对象.RemoveAt(Index) 从列表框中删除指定的项。Index表示被删除项目在列表框中的位置,从0开始。 例如:ListBox1.Items.RemoveAT(4) (7) Items.Clear方法 格式:对象.Items.Clear 用于清除列表框所有项目,例如:ListBox1.Items.Clear 4.单选按钮、复选框和框架 1)单选按钮(RadioButton) 单选按钮以组的形式出现,允许选择其中一项。 ?Text属性:按钮上显示的文本 ?TextAlign属性:文本对齐方式 ?Checked属性:表示单选按钮的状态,True ——被选定,False ——未被选定?Click事件:单击后,使Checked属性为True ?CheckedChanged事件:当某个单选按钮的状态被发生变化,该事件随之被触发。2)复选框(CheckBox) 与RadioButton具有相同属性和事件,之外还有: ?CheckState属性:表示复选框状态,Unchecked——未选定,Checked——被选定,Indeterminate——灰色 3)框架(GroupBox分组框) ?Text属性:标题文本 ?Enabled属性:框架和其中的控件

《大学计算机基础》上机实验报告

《大学计算机基础》 上机实验报告 班级: 姓名: 学号: 授课教师: 日期:年月日

目录 一、Windows操作系统基本操作......................................................... - 1 - 二、Word文字处理基本操作 .............................................................. - 4 - 三、Excel电子表格基本操作 ............................................................ - 6 - 四、PowerPoint幻灯片基本操作....................................................... - 8 - 五、网页设计基本操作 ...................................................................... - 9 - 六、Access数据库基本操作 ............................................................ - 10 - 上机实验作业要求: ○1在实验报告纸上手写并粘贴实验结果; ○2每人将所有作业装订在一起(要包封面); ○3全部上机实验结束后全班统一上交; ○4作业内容不得重复、输入的数据需要有差别。

实验名称一、Windows操作系统基本操作 实验目的1、掌握Windows的基本操作方法。 2、学会使用“画图”和PrntScr快捷键。 3、学会使用“计算器”和Word基本操作。 实验内容1、日历标注 利用“画图”和Word软件,截取计算机上日历的图片并用文字、颜色、图框等标注出近期的节假日及其名称,并将结果显示保存在下面(参考下面样图)。 运行结果是: 主要操作步骤是: 2、科学计算 利用“计算器”和Word软件,计算下列题目,并将结果截图保存在下面(参考样图)。 ○1使用科学型计算器,求8!、sin(8)、90、74、20、67、39、400、50.23、ln(785)的平均值、和值,并用科学计数法显示。 运行结果是: ②将以下十、八、十六进制数转换为二进制数:(894.8125)10、(37.5)8、(2C.4B)16 运行结果是:(需要下载使用“唯美计算器”) ○3计算下列二进制数的加法与乘法:101.1+11.11;1101*1011 运行结果是:(参考样图) 写出主要操作步骤: 3、实验心得体会

数据结构实验图的基本操作

浙江大学城市学院实验报告 课程名称数据结构 实验项目名称实验十三/十四图的基本操作 学生姓名专业班级学号 实验成绩指导老师(签名)日期2014/06/09 一.实验目的和要求 1、掌握图的主要存储结构。 2、学会对几种常见的图的存储结构进行基本操作。 二.实验内容 1、图的邻接矩阵定义及实现: 建立头文件test13_AdjM.h,在该文件中定义图的邻接矩阵存储结构,并编写图的初始化、建立图、输出图、输出图的每个顶点的度等基本操作实现函数。同时建立一个验证操作实现的主函数文件test13.cpp(以下图为例),编译并调试程序,直到正确运行。 2、图的邻接表的定义及实现: 建立头文件test13_AdjL.h,在该文件中定义图的邻接表存储结构,并编写图的初始化、建立图、输出图、输出图的每个顶点的度等基本操作实现函数。同时在主函数文件test13.cpp中调用这些函数进行验证(以下图为例)。

3、填写实验报告,实验报告文件取名为report13.doc。 4、上传实验报告文件report13.doc到BB。 注: 下载p256_GraphMatrix.cpp(邻接矩阵)和 p258_GraphAdjoin.cpp(邻接表)源程序,读懂程序完成空缺部分代码。 三. 函数的功能说明及算法思路 (包括每个函数的功能说明,及一些重要函数的算法实现思路) 四. 实验结果与分析 (包括运行结果截图、结果分析等)

五.心得体会

程序比较难写,但是可以通过之前的一些程序来找到一些规律 (记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。) 【附录----源程序】 256: //p-255 图的存储结构以数组邻接矩阵表示, 构造图的算法。 #include #include #include #include typedef char VertexType; //顶点的名称为字符 const int MaxVertexNum=10; //图的最大顶点数 const int MaxEdgeNum=100; //边数的最大值 typedef int WeightType; //权值的类型 const WeightType MaxValue=32767; //权值的无穷大表示 typedef VertexType Vexlist[MaxVertexNum]; //顶点信息,定点名称 typedef WeightType AdjMatrix[MaxVertexNum][MaxVertexNum]; //邻接矩阵typedef enum{DG,DN,AG,AN} GraphKind; //有向图,有向网,无向图,无向网typedef struct{ Vexlist vexs; // 顶点数据元素 AdjMatrix arcs; // 二维数组作邻接矩阵 int vexnum, arcnum; // 图的当前顶点数和弧数 GraphKind kind; // 图的种类标志 } MGraph; void CreateGraph(MGraph &G, GraphKind kd)// 采用数组邻接矩阵表示法,构造图G {//构造有向网G int i,j,k,q; char v, w; G.kind=kd; //图的种类 printf("输入要构造的图的顶点数和弧数:\n"); scanf("%d,%d",&G.vexnum,&G.arcnum); getchar();//过滤回车 printf("依次输入图的顶点名称ABCD...等等:\n"); for (i=0; i

组策略终极应用技巧

组策略终极应用技巧 出处:中国IT实验室责任编辑:ANSON2006-03-17 15:39:34 关闭缩略图的缓存(Windows XP/2003) Windows XP/20003系统系统具有缩略图的功能,为加快那些被频繁浏览的缩略图显示速度,系统还会将这些显示过的图片置于缓存中,以便下次打开时直接读取缓存中的信息,从而达到快速显示的目的。若你不希望系统进行缓存的话,则可利用组策略轻松地关闭缓存功能。由于不进行缓存处理,反而会大大加快第一次浏览的速度。方法如下:打开“组策略控制台→用户配置→管理模板→Windows组件→Windows资源管理器”中的“关闭缩略图的缓存”并启用此策略。提示:若你的电脑是一个网络中的共享工作站,为了数据安全,建议你启用该设置以关闭缩略图视图缓存,因为缩略图视图缓存可以被任何人读取。

屏蔽系统自带的CD刻录功能(Windows XP/2003) Windows XP/2003系统自带CD刻录功能,若你有刻录机连接在电脑上,在Windows 资源管理器中可以直接将数据犹如复制一样写到CD-R上。这样虽然方便,但是会影响系统性能和资源管理器的执行速度,再加之大部分用户都习惯了运用专用刻录软件进行刻录,所以我们建议无论电脑上有无刻录机,都可以利用组策略来屏蔽此功。方法如下:打开“组策略控制台→用户配置→管理模板→Windows组件→Windows资源管理器”中的“删除CD刻录功能”并启用此策略。提示:该设置不会阻止用户使用第三方应用程序来刻录或修改CD-R。 限制IE浏览器的保存功能(Windows 2000/XP/2003)

当多人共用一台计算机时,为了保持硬盘的整洁,对浏览器的保存功能进行限制使用是很有必要。那么怎样才能实现呢?具体步骤如下:打开“组策略控制台→用户配置→管理模板→Windows组件→Internet Explorer→浏览器菜单”,然后将右侧窗格中的“…文件?菜单:禁用…另存为...?菜单项”、“…文件?菜单:禁用另存为网页菜单项”、“…查看?菜单:禁用…源文件?菜单项”和“禁用上下文菜单”等策略项目全部启用即可。如果不希望别人对IE 浏览器的设置随意更改,可以将“…工具?菜单:禁用…Internet选项...?”策略启用。此外,如果个人需要的话,还可以在该窗格中禁用其他项目。 禁止修改IE浏览器的主页(Windows 2000/XP/2003) 在IE浏览器中可以设置默认主页,如果不希望他人对自己设定的IE浏览器主页进

语言程序设计实验答案数组指针与字符串

实验06 数组、指针与字符串(4学时) (第6章数组、指针与字符串) 一、实验目的 二、实验任务 6_1(习题6-25)编写并测试3×3矩阵转置函数,使用数组保存3×3矩阵。 6_2(习题6-26)使用动态内存分配生成动态数组来重新完成上题(n阶方阵),使用指针实现函数的功能。 6_3 编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。

6_4 使用string类声明字符串对象,重新实现上一小题。 6_5(习题6-27)声明一个Employee类。 其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性,实现并测试这个类。 6_6(习题6-27)声明包含5个元素的对象数组,每个元素都是Employee 类型的对象。 6_7 修改实验4中的people(人员)类。 具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。其中“出生日期”声明为一个“日期”类内嵌子对象。 用成员函数实现对人员信息的录入和显示。 要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。 在测试程序中声明people类的对象数组,录入数据并显示。 三、实验步骤 1.(编程,习题6-25)编写矩阵转置函数,输入参数为3×3整型数组。 使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入输出。程序名:。 参考运行结果:

C++上机实验报告实验五

实验五继承与派生 1.实验目的 1.学习定义和使用类的继承关系,定义派生类 2.熟悉不同继承方式下对基类成员的访问控制 3.学习利用虚基类解决二义性问题 2.实验要求 1.定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge (int n)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程尝试。 2.定义一个基类BaseClass,有整型变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。 3.定义一个车(vehicle)基类,具有Maxspeed、Weight等成员,Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车(bicycle)类有高度(Height)等属性,汽车(motorcar)类有座位数(SeatNun)等属性。从bicycle和motorcar派生出摩托车(motorbicycle)类,在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle 设置为虚基类,会有什么问题?编程尝试。 3.实验容及实验步骤 1.编写程序定义基类Animal,成员变量age定义为私有的。构造派生类dog,在其成员函数SetAge(int n)中直接对age赋值时,会出现类似以下的错误提示: error C2248 : ‘age’ : cannot access private member declared in class ‘Animal’error C2248 : ‘age’ : cannot access private member declared in class ‘Animal’把age改为公有成员变量后重新编译就可以了。程序名:lab7_1.cpp。 2.编写程序定义一个基类BaseClass,构造其派生类DerivedClass,在构造函数和析构函数中用cout输出提示信息,观察构造函数和析构函数的执行情况。程序名:lab7_2.cpp。 3.用debug功能跟踪程序lab7_2的执行过程,观察基类和派生类的构造函数和析构函数的执行情况。 4.编写程序定义一个车(vehicle)基类,由此派生出自行车(bicycle)类、汽车(motorcar)类,注意把vehicle派生为虚基类。再从bicycle和motorcar派生出摩托车(motorcycle)类,在main()函数中测试这个类。程序名:lab7_3.cpp。 编译成功后,把vehicle设置为非虚基类,再编译一次,此时系统报错,无法编译成功。这是因为若不把vehicle设置为虚基类,会出现二义性错误,程序不能成功编译。 4.思考题 1.如何在已有的类的基础上设计新的类? 采用类的派生的方法,利用基类派生出子类,子类继承基类的属性,从而在已有基类的基础上设计新的派生类,模式如下: class 派生类名:继承方式基类名1,继承方式基类名2,…,继承方式基类名n { 派生类成员声明; }; 2.基类和派生类对象的构造顺序是怎样的? 先调用基类的构造函数,然后再调用嵌对象(派生类中的对象)的构造函数。基类构造函数的调用顺序是按照派生类定义时的顺序,而嵌对象的构造函数调用顺序是按照成员在类中声

数字图像处理实验报告

目录 实验一:数字图像的基本处理操作 (4) :实验目的 (4) :实验任务和要求 (4) :实验步骤和结果 (5) :结果分析 (8) 实验二:图像的灰度变换和直方图变换 (9) :实验目的 (9) :实验任务和要求 (9) :实验步骤和结果 (9) :结果分析 (13) 实验三:图像的平滑处理 (14) :实验目的 (14) :实验任务和要求 (14) :实验步骤和结果 (14) :结果分析 (18) 实验四:图像的锐化处理 (19) :实验目的 (19) :实验任务和要求 (19) :实验步骤和结果 (19) :结果分析 (21)

实验一:数字图像的基本处理操作 :实验目的 1、熟悉并掌握MATLAB、PHOTOSHOP等工具的使用; 2、实现图像的读取、显示、代数运算和简单变换。 3、熟悉及掌握图像的傅里叶变换原理及性质,实现图像的傅里叶变换。:实验任务和要求 1.读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分 成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。 2.对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分 别显示,注上文字标题。 3.对一幅图像进行平移,显示原始图像与处理后图像,分别对其进行傅里叶变换, 显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系。 4.对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里 叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的 对应关系。 :实验步骤和结果 1.对实验任务1的实现代码如下: a=imread('d:\'); i=rgb2gray(a); I=im2bw(a,; subplot(1,3,1);imshow(a);title('原图像'); subplot(1,3,2);imshow(i);title('灰度图像'); subplot(1,3,3);imshow(I);title('二值图像'); subplot(1,3,1);imshow(a);title('原图像'); 结果如图所示:

实验五 数组的应用(1)

实验五数组的应用(1) 一、实验目的: 1、掌握静态数组的定义和使用方法。 2、用数组解决实际问题。 二、实验准备: 1、计算机基本操作练习。 2、VisualBasic软件使用预习。 3、设计出下面问题的程序。 三、实验步骤及内容: 1、静态数组的声明,语法格式如下: Dim 数组名[(各维下标)] [As 数据类型],… 例如:Dim num(6) As Integer 定义了一个包含()个元素的数组,从()到()。 静态数组的上下标必须是(),如果希望数组下标下界默认从1开始,则可在窗体的“通用|声明”部分使用: ________________________________语句来改变默认值。 2、Array函数的使用。 Dim a() As Variant A = Array(154,135,121) 请说明以上语句的作用,()。 Lbound函数和Ubound函数可以分别返回数组的指示维数的最小、最大可用下标。 3、应用一维静态全局数组求10个100以内的最大值、最小值、平均值和方差。程序运行界面如图所示。

4、利用数组排序。按“生成随机数”按钮,在第一个文本框中生成10个10~99之间的随机数,然后按“按大小排序”按钮,将这10个数按从大到小的顺序排列放在第二个文本框中。设计界面及运行结果如图1和图2 所示:

图1 设计界面 图2 运行界面 要求: 提示: (1)设计窗体,添加控件:两个文本框(Text)、两 个按钮(Command)。 (2)如表1 所示设置窗体控件属性。 (4)自行编辑代码。 窗体通用声明代码如下: Option Base 1 Dim a() As Integer 窗体控件代码自行编辑。 Private Sub Command1_Click()

C上机实验报告实验五

C上机实验报告实验五 This manuscript was revised by the office on December 22, 2012

实验五继承与派生 1.实验目的 1.学习定义和使用类的继承关系,定义派生类 2.熟悉不同继承方式下对基类成员的访问控制 3.学习利用虚基类解决二义性问题 2.实验要求 1.定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge(intn)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程尝试。 2.定义一个基类BaseClass,有整型变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。 3.定义一个车(vehicle)基类,具有Maxspeed、Weight等成员,Run、Stop 等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车(bicycle)类有高度(Height)等属性,汽车(motorcar)类有座位数(SeatNun)等属性。从bicycle和motorcar派生出摩托车(motorbicycle)类,在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什么问题?编程尝试。 3.实验内容及实验步骤 1.编写程序定义基类Animal,成员变量age定义为私有的。构造派生类dog,在其成员函数SetAge(intn)中直接对age赋值时,会出现类似以下的错误提示: errorC2248:‘age’:cannotaccessprivatememberdeclaredinclass‘Animal’errorC2248:‘age’:cannotaccessprivatememberdeclaredinclass‘Animal’把age改为公有成员变量后重新编译就可以了。程序名:lab7_1.cpp。 2.编写程序定义一个基类BaseClass,构造其派生类DerivedClass,在构造函数和析构函数中用cout输出提示信息,观察构造函数和析构函数的执行情况。程序名:lab7_2.cpp。 3.用debug功能跟踪程序lab7_2的执行过程,观察基类和派生类的构造函数和析构函数的执行情况。 4.编写程序定义一个车(vehicle)基类,由此派生出自行车(bicycle)类、汽车(motorcar)类,注意把vehicle派生为虚基类。再从bicycle和motorcar派生出摩托车(motorcycle)类,在main()函数中测试这个类。程序名:lab7_3.cpp。 编译成功后,把vehicle设置为非虚基类,再编译一次,此时系统报错,无法编译成功。这是因为若不把vehicle设置为虚基类,会出现二义性错误,程序不能成功编译。 4.思考题 1.如何在已有的类的基础上设计新的类?

相关文档
相关文档 最新文档