深圳大学算法设计与分析杨煊实验三
算法实验 递归回溯解八皇后问题

深圳大学实验报告课程名称:算法分析与复杂性理论实验项目名称:八皇后问题学院:计算机与软件学院专业:软件工程指导教师:杨烜报告人:学号:班级:15级软工学术型实验时间:2015-12-08实验报告提交时间:2015-12-09教务部制一.实验目的1.掌握选回溯法设计思想。
2.掌握八皇后问题的回溯法解法。
二.实验步骤与结果实验总体思路:根据实验要求,通过switch选择八皇后求解模块以及测试数据模块操作,其中八皇后模块调用摆放皇后函数模块,摆放皇后模块中调用判断模块。
测试数据模块主要调用判断模块进行判断,完成测试。
用一维数组保存每行摆放皇后的位置,根据回溯法的思想递归讨论该行的列位置上能否放置皇后,由判断函数Judge()判断,若不能放置则检查该行下一个位置。
相应结果和过程如下所示(代码和结果如下图所示)。
回溯法的实现及实验结果:1、判断函数代码1:procedure BTrack_Queen(n)皇后问题 2.测试数据0.退出**"<<endl;cout<<"******************************************"<<endl;cin>>n;switch(n){case 0: cout<<"退出程序成功..."<<endl;return 0; //一个程序两个出口case 1: cout<<"八皇后问题的解为:"<<endl;BackTrack_Queen(0);cout<<"共有"<<sum<<"个解"<<endl;break;case 2: cout<<"运行测试数据:"<<endl;while(1) {cout<<"请输入要测试的数据:"<<endl;for(int j=0;j<max;j++)cin>>queen[j];if(Judge(max)==1) cout<<"该数据是八皇后问题的解"<<endl;else cout<<"该数据不是八皇后问题的解"<<endl;}break;default: cout<<"输入非法,请重新输入!"<<endl;}}return 0;}注:MFC实现代码下载:若链接无效可加我百度云好友:123望月台456。
《算法设计与分析》实验报告实验一...

《算法设计与分析》实验报告实验一递归与分治策略应用基础学号:**************姓名:*************班级:*************日期:2014-2015学年第1学期第九周一、实验目的1、理解递归的概念和分治法的基本思想2、了解适用递归与分治策略的问题类型,并能设计相应的分治策略算法3、掌握递归与分治算法时间空间复杂度分析,以及问题复杂性分析方法二、实验内容任务:以下题目要求应用递归与分治策略设计解决方案,本次实验成绩按百分制计,完成各小题的得分如下,每小题要求算法描述准确且程序运行正确。
1、求n个元素的全排。
(30分)2、解决一个2k*2k的特殊棋牌上的L型骨牌覆盖问题。
(30分)3、设有n=2k个运动员要进行网球循环赛。
设计一个满足要求的比赛日程表。
(40分)提交结果:算法设计分析思路、源代码及其分析说明和测试运行报告。
三、设计分析四、算法描述及程序五、测试与分析六、实验总结与体会#include "iostream"using namespace std;#define N 100void Perm(int* list, int k, int m){if (k == m){for (int i=0; i<m; i++)cout << list[i] << " ";cout << endl;return;}else{for (int i=m; i<k; i++){swap(list[m], list[i]);Perm(list, k, m+1);swap(list[m], list[i]);}}}void swap(int a,int b){int temp;temp=a;a=b;b=temp;}int main(){int i,n;int a[N];cout<<"请输入排列数据总个数:";cin>>n;cout<<"请输入数据:";for(i=0;i<n;i++){cin>>a[i];}cout<<"该数据的全排列:"<<endl;Perm(a,n,0);return 0;}《算法设计与分析》实验报告实验二递归与分治策略应用提高学号:**************姓名:*************班级:*************日期:2014-2015学年第1学期一、实验目的1、深入理解递归的概念和分治法的基本思想2、正确使用递归与分治策略设计相应的问题的算法3、掌握递归与分治算法时间空间复杂度分析,以及问题复杂性分析方法二、实验内容任务:从以下题目中任选一题完成,要求应用递归与分治策略设计解决方案。
2021年《算法设计与分析》实验指导

《算法设计与分析》实验指导《算法分析与设计》实验指导 .1 实验一锦标赛问题 [实验目的] 1. 基本掌握分治算法的原理. 2. 能用程序设计语言求解锦标赛等问题的算法; [预习要求] 1. 认真阅读数据结构教材和算法设计教材,了解分治算法原理; 2. 设计用分治算法求解背包问题的数据结构与程序代码. [实验题] 【问题描述】设有 n=2 k 个运动员要进行网球循环赛。
现要设计一个满足以下要求的比赛日程表:(1)每个选手必须与其他 n-1 个选手各赛一次;(2)每个选手一天只能参赛一次;(3)循环赛在 n-1 天内结束。
请按此要求将比赛日程表设计成有 n 行和 n-1 列的一个表。
在表中的第 i 行,第 j 列处填入第 i 个选手在第 j 天所遇到的选手。
其中 1≤i≤n,1≤j≤n-1。
[实验提示] 我们可以按分治策略将所有的选手分为两半,则 n 个选手的比赛日程表可以通过 n/2个选手的比赛日程表来决定。
递归地用这种一分为二的策略对选手进行划分,直到只剩下两个选手时,比赛日程表的制定就变得很简单。
这时只要让这两个选手进行比赛就可以了。
1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 2 1 4 3 6 7 8 5 3 4 1 2 7 8 5 6 1 2 3 4 3 2 1 8 5 6 7 1 2 3 4 5 6 7 8 1 4 3 2 1 2 1 4 3 6 5 8 7 2 1 4 3 1 2 3 4 1 2 7 8 5 6 3 2 1 4 2 1 4 3 2 1 8 7 6 5 4 3 2 1 (1)(2)(3)图 1 2 个、4 个和 8 个选手的比赛日程表图 1 所列出的正方形表(3)是 8 个选手的比赛日程表。
其中左上角与左下角的两小块分别为选手 1 至选手 4 和选手 5 至选手 8 前 3 天的比赛日程。
据此,将左上角小块中的所有数字按其相对位置抄到右下角,又将左下角小块中的所有数字按其相对位置抄到右上角,这2 样我们就分别安排好了选手 1 至选手 4 和选手 5 至选手 8 在后 4 天的比赛日程。
《算法设计与分析》实验大纲

《算法设计与分析》课程实验教学大纲Design and Analysis of Computer Algorithm总学时 16 总学分 0.5 实验学时 16一、基本情况1. 课程性质:专业实践2. 设课方式:独立设课3. 适用专业:计算机科学与技术专业4. 开课学期:第5学期5. 实验教材:《算法设计与分析》实验指导书6. 先修课程:高级语言程序设计、离散数学、数据结构二、课程简介算法设计与分析实验将覆盖计算机软件实现中的大部分算法,具有一定的深度和广度,目的是让学生掌握递归与分治策略、动态规划、贪心算法、回溯法、分支限界法等算法思想;能独立运用相关算法策略来分析、解决实际问题并编程实现。
同时,算法设计与分析实验是对学生在软件设计方面的综合训练,包括问题分析,总体结构设计,程序设计基本技能和技巧等,以培养良好的编程风格和科学作风。
通过理论联系实际,最终提高学生动手操作的能力以及分析问题和解决问题的能力,培养对算法的复杂性进行分析的逻辑思维能力。
三、实验目的与任务实验是教学内容的重要一环,其目的一方面是为了让学生掌握算法设计与分析中的一些常用的典型的算法设计思想和方法;另一方面是为了让学生切实掌握各种算法的具体实现方法,培养学生的实际动手能力,加强学生创新思维能力的培养。
四、课程的基本要求(1)了解实验目的,熟悉实验环境。
(2)预习实验,准备好实验题目和操作步骤。
(3)能编译调试源程序,分析错误原因并加以修改,得出正确结果。
(4)能运用所学的知识正确分析程序得出的结果,并能给出改进的方案。
(5)将上述各项要求及实验结果编写成实验报告。
实验前学生要认真预习实验内容,按要求编写源程序及准备测试数据。
实验中,要按操作规程操作计算机,集中精力调试程序,并认真测试实验数据。
对实验程序的故障应自行分析解决,不拷贝其它人的成果。
对实验得出的结果能加以分析,提出改进的具体措施。
掌握递归与分治策略、动态规划、贪心算法、回溯法、分支限界法等算法思想;能独立运用相关算法策略分析问题、解决实际问题并编程实现。
算法设计与分析实验报告

算法设计与分析实验报告算法设计与分析实验报告引言:算法设计与分析是计算机科学中的重要课程,它旨在培养学生解决实际问题的能力。
本次实验旨在通过设计和分析不同类型的算法,加深对算法的理解,并探索其在实际应用中的效果。
一、实验背景算法是解决问题的步骤和方法的描述,是计算机程序的核心。
在本次实验中,我们将重点研究几种经典的算法,包括贪心算法、动态规划算法和分治算法。
通过对这些算法的设计和分析,我们可以更好地理解它们的原理和应用场景。
二、贪心算法贪心算法是一种基于局部最优选择的算法,它每一步都选择当前状态下的最优解,最终得到全局最优解。
在实验中,我们以背包问题为例,通过贪心算法求解背包能够装下的最大价值物品。
我们首先将物品按照单位重量的价值从大到小排序,然后依次将能够装入背包的物品放入,直到背包无法再装下物品为止。
三、动态规划算法动态规划算法是一种通过将问题分解为子问题,并记录子问题的解来求解整体问题的算法。
在实验中,我们以斐波那契数列为例,通过动态规划算法计算斐波那契数列的第n项。
我们定义一个数组来保存已经计算过的斐波那契数列的值,然后通过递推公式将前两项的值相加得到后一项的值,最终得到第n项的值。
四、分治算法分治算法是一种将问题分解为更小的子问题,并通过递归求解子问题的算法。
在实验中,我们以归并排序为例,通过分治算法对一个无序数组进行排序。
我们首先将数组分成两个子数组,然后对子数组进行递归排序,最后将两个有序的子数组合并成一个有序的数组。
五、实验结果与分析通过对以上三种算法的设计和分析,我们得到了以下实验结果。
在贪心算法中,我们发现该算法能够在有限的时间内得到一个近似最优解,但并不能保证一定得到全局最优解。
在动态规划算法中,我们发现该算法能够通过记忆化搜索的方式得到准确的结果,但在问题规模较大时,其时间复杂度较高。
在分治算法中,我们发现该算法能够将问题分解为更小的子问题,并通过递归求解子问题,最终得到整体问题的解。
算法设计与分析实验报告

实验一找最大和最小元素与归并分类算法实现(用分治法)一、实验目的1.掌握能用分治法求解的问题应满足的条件;2.加深对分治法算法设计方法的理解与应用;3.锻炼学生对程序跟踪调试能力;4.通过本次实验的练习培养学生应用所学知识解决实际问题的能力。
二、实验内容1、找最大和最小元素输入n 个数,找出最大和最小数的问题。
2、归并分类将一个含有n个元素的集合,按非降的次序分类(排序)。
三、实验要求(1)用分治法求解问题(2)上机实现所设计的算法;四、实验过程设计(算法设计过程)1、找最大和最小元素采用分治法,将数组不断划分,进行递归。
递归结束的条件为划分到最后若为一个元素则max和min都是这个元素,若为两个取大值赋给max,小值给min。
否则就继续进行划分,找到两个子问题的最大和最小值后,比较这两个最大值和最小值找到解。
2、归并分类使用分治的策略来将一个待排序的数组分成两个子数组,然后递归地对子数组进行排序,最后将排序好的子数组合并成一个有序的数组。
在合并过程中,比较两个子数组的首个元素,将较小的元素放入辅助数组,并指针向后移动,直到将所有元素都合并到辅助数组中。
五、源代码1、找最大和最小元素#include<iostream>using namespace std;void MAXMIN(int num[], int left, int right, int& fmax, int& fmin); int main() {int n;int left=0, right;int fmax, fmin;int num[100];cout<<"请输入数字个数:";cin >> n;right = n-1;cout << "输入数字:";for (int i = 0; i < n; i++) {cin >> num[i];}MAXMIN(num, left, right, fmax, fmin);cout << "最大值为:";cout << fmax << endl;cout << "最小值为:";cout << fmin << endl;return 0;}void MAXMIN(int num[], int left, int right, int& fmax, int& fmin) { int mid;int lmax, lmin;int rmax, rmin;if (left == right) {fmax = num[left];fmin = num[left];}else if (right - left == 1) {if (num[right] > num[left]) {fmax = num[right];fmin = num[left];}else {fmax = num[left];fmin = num[right];}}else {mid = left + (right - left) / 2;MAXMIN(num, left, mid, lmax, lmin);MAXMIN(num, mid+1, right, rmax, rmin);fmax = max(lmax, rmax);fmin = min(lmin, rmin);}}2、归并分类#include<iostream>using namespace std;int num[100];int n;void merge(int left, int mid, int right) { int a[100];int i, j,k,m;i = left;j = mid+1;k = left;while (i <= mid && j <= right) {if (num[i] < num[j]) {a[k] = num[i++];}else {a[k] = num[j++];}k++;}if (i <= mid) {for (m = i; m <= mid; m++) {a[k++] = num[i++];}}else {for (m = j; m <= right; m++) {a[k++] = num[j++];}}for (i = left; i <= right; i++) { num[i] = a[i];}}void mergesort(int left, int right) { int mid;if (left < right) {mid = left + (right - left) / 2;mergesort(left, mid);mergesort(mid + 1, right);merge(left, mid, right);}}int main() {int left=0,right;int i;cout << "请输入数字个数:";cin >> n;right = n - 1;cout << "输入数字:";for (i = 0; i < n; i++) {cin >> num[i];}mergesort(left,right);for (i = 0; i < n; i++) {cout<< num[i];}return 0;}六、运行结果和算法复杂度分析1、找最大和最小元素图1-1 找最大和最小元素结果算法复杂度为O(logn)2、归并分类图1-2 归并分类结果算法复杂度为O(nlogn)实验二背包问题和最小生成树算法实现(用贪心法)一、实验目的1.掌握能用贪心法求解的问题应满足的条件;2.加深对贪心法算法设计方法的理解与应用;3.锻炼学生对程序跟踪调试能力;4.通过本次实验的练习培养学生应用所学知识解决实际问题的能力。
算法设计算法实验报告(3篇)

第1篇一、实验目的本次实验旨在通过实际操作,加深对算法设计方法、基本思想、基本步骤和基本方法的理解与掌握。
通过具体问题的解决,提高利用课堂所学知识解决实际问题的能力,并培养综合应用所学知识解决复杂问题的能力。
二、实验内容1. 实验一:排序算法分析- 实验内容:分析比较冒泡排序、选择排序、插入排序、快速排序、归并排序等基本排序算法的效率。
- 实验步骤:1. 编写各排序算法的C++实现。
2. 使用随机生成的不同规模的数据集进行测试。
3. 记录并比较各算法的运行时间。
4. 分析不同排序算法的时间复杂度和空间复杂度。
2. 实验二:背包问题- 实验内容:使用贪心算法、回溯法、分支限界法解决0-1背包问题。
- 实验步骤:1. 编写贪心算法、回溯法和分支限界法的C++实现。
2. 使用标准测试数据集进行测试。
3. 对比分析三种算法的执行时间和求解质量。
3. 实验三:矩阵链乘问题- 实验内容:使用动态规划算法解决矩阵链乘问题。
- 实验步骤:1. 编写动态规划算法的C++实现。
2. 使用不同规模的矩阵链乘实例进行测试。
3. 分析算法的时间复杂度和空间复杂度。
4. 实验四:旅行商问题- 实验内容:使用遗传算法解决旅行商问题。
- 实验步骤:1. 设计遗传算法的参数,如种群大小、交叉率、变异率等。
2. 编写遗传算法的C++实现。
3. 使用标准测试数据集进行测试。
4. 分析算法的收敛速度和求解质量。
三、实验结果与分析1. 排序算法分析- 通过实验,我们验证了快速排序在平均情况下具有最佳的性能,其时间复杂度为O(nlogn),优于其他排序算法。
- 冒泡排序、选择排序和插入排序在数据规模较大时效率较低,不适合实际应用。
2. 背包问题- 贪心算法虽然简单,但在某些情况下无法得到最优解。
- 回溯法能够找到最优解,但计算量较大,时间复杂度较高。
- 分支限界法结合了贪心算法和回溯法的特点,能够在保证解质量的同时,降低计算量。
3. 矩阵链乘问题- 动态规划算法能够有效解决矩阵链乘问题,时间复杂度为O(n^3),空间复杂度为O(n^2)。
深圳大学算法设计与分析杨煊实验三

深圳大学实验报告课程名称:算法设计与分析实验项目名称:高斯消元学院:专业、班级:指导教师:杨烜报告人:学号:实验报告提交时间: 2015.5.15教务处制一、实验目的1.掌握变治法思想。
2.学会高斯列主元消去法及其应用。
二、实验内容1. 高斯列主元消去法求解线性方程组。
2. 高斯列主元消去法判断矩阵是否可逆?需要说明理由,如果可逆,求出其逆矩阵。
三、实验原理算法:GaussElimination(A[1...n,1...n],b[1...n])//用部分选主元法实现高斯消去法//输入:矩阵A[1...n,1...n]和列向量b[1...n]//输出:一个代替A的上三角形等价矩阵图,相应的右边的值位于第(n+1)列中for i<-1 to n do A[i,n+1]<-b[i] //把b作为最后一列添加到A中for i<-1 to n-1 dopivotrow<-ifor j<-i+1 to n doif |A[j,i]|>|A[pivotrow,i]|pivotrow<-jfor k<-i to n+1 doswap(A[i,k],A[pivotrow,k])for j<-i+1 to n dotemp<-A[j,i]/A[i,i]for k<-i to n+1 doA[j,k]<-A[j,k]-A[i,k]*temp算法:GaussBackSub(A[1...n,1...n+1])//实现高斯消去法的反向替换//输入:一个代替A的上三角形等价矩阵图,相应的右边的值位于第(n+1)列中 //输出:方程组的n个解for i<-n downto 1 dotemp<-0.0for j<-n downto i+1temp<-temp+A[i,j]*x[j]x[i]<-(A[i,n+1]-temp)/A[i,i]return x算法:IsInverseMatrix(A[1...n,1...n],b[1...n])//用高斯消去法判断是否为逆矩阵//输入:矩阵A[1...n,1...n]//输出:如果是逆矩阵输出1,否则输出0for i<-1 to n do A[i,n+1]<-b[i] //把b作为最后一列添加到A中for i<-1 to n-1 dopivotrow<-ifor j<-i+1 to n doif |A[j,i]|>|A[pivotrow,i]|pivotrow<-jfor k<-i to n+1 doswap(A[i,k],A[pivotrow,k])for j<-i+1 to n dotemp<-A[j,i]/A[i,i]for k<-i to n+1 doA[j,k]<-A[j,k]-A[i,k]*tempfor i<-1 to nif(A[i,i]=0)return 0return 1算法:求矩阵的逆矩阵(伪代码篇幅较长,仅描述主要思想)思想描述:设待求矩阵B的逆矩阵为X,根据逆矩阵的定义,满足BX=I(其中I为n阶单位矩阵)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
深圳大学实验报告
课程名称:算法设计与分析
实验项目名称:高斯消元
学院:
专业、班级:
指导教师:杨烜
报告人:学号:
实验报告提交时间: 2015.5.15
教务处制
一、实验目的
1.掌握变治法思想。
2.学会高斯列主元消去法及其应用。
二、实验内容
1. 高斯列主元消去法求解线性方程组。
2. 高斯列主元消去法判断矩阵是否可逆?需要说明理由,如果可逆,求出其逆矩阵。
三、实验原理
算法:GaussElimination(A[1...n,1...n],b[1...n])
//用部分选主元法实现高斯消去法
//输入:矩阵A[1...n,1...n]和列向量b[1...n]
//输出:一个代替A的上三角形等价矩阵图,相应的右边的值位于第(n+1)列中for i<-1 to n do A[i,n+1]<-b[i] //把b作为最后一列添加到A中
for i<-1 to n-1 do
pivotrow<-i
for j<-i+1 to n do
if |A[j,i]|>|A[pivotrow,i]|
pivotrow<-j
for k<-i to n+1 do
swap(A[i,k],A[pivotrow,k])
for j<-i+1 to n do
temp<-A[j,i]/A[i,i]
for k<-i to n+1 do
A[j,k]<-A[j,k]-A[i,k]*temp
算法:GaussBackSub(A[1...n,1...n+1])
//实现高斯消去法的反向替换
//输入:一个代替A的上三角形等价矩阵图,相应的右边的值位于第(n+1)列中 //输出:方程组的n个解
for i<-n downto 1 do
temp<-0.0
for j<-n downto i+1
temp<-temp+A[i,j]*x[j]
x[i]<-(A[i,n+1]-temp)/A[i,i]
return x
算法:IsInverseMatrix(A[1...n,1...n],b[1...n])
//用高斯消去法判断是否为逆矩阵
//输入:矩阵A[1...n,1...n]
//输出:如果是逆矩阵输出1,否则输出0
for i<-1 to n do A[i,n+1]<-b[i] //把b作为最后一列添加到A中
for i<-1 to n-1 do
pivotrow<-i
for j<-i+1 to n do
if |A[j,i]|>|A[pivotrow,i]|
pivotrow<-j
for k<-i to n+1 do
swap(A[i,k],A[pivotrow,k])
for j<-i+1 to n do
temp<-A[j,i]/A[i,i]
for k<-i to n+1 do
A[j,k]<-A[j,k]-A[i,k]*temp
for i<-1 to n
if(A[i,i]=0)
return 0
return 1
算法:求矩阵的逆矩阵(伪代码篇幅较长,仅描述主要思想)
思想描述:设待求矩阵B的逆矩阵为X,根据逆矩阵的定义,满足BX=I(其中I为n阶单位矩阵)。
显然,对于一个n*n的矩阵B,其逆矩阵X同样为n*n。
将待求矩阵X的第i 列xi看做一组未知数,同样的将单位矩阵I的第i列ei看作方程组右边的值。
(1<=i<=n) 求解 Bxi=ei;所得解即为所求可逆矩阵第i列的值。
即利用高斯消元法进行n次的方程求解,最终得到的矩阵即为逆矩阵。
四、实验代码(由于篇幅有限,实验源代码作为附件上传,此处仅列出部分代码)
高斯消元法求解线性方程组部分代码:
求解逆矩阵的部分代码:
五、实验结果
程序运行截图如下:
结果一:方程组AX=B的解
结果二:矩阵B的逆矩阵
利用MATLAB计算的结果如下:
结果一:方程组AX=B的解
结果二:矩阵B的逆矩阵
实验结果:通过实验验证以及对比可以得出,实验结果和MATLAB验证结果基本一致。
六、实验分析
1.实验正确性分析:对比结果如上,理论上来说,高斯消去法要么在一个线性方程组有唯一解时生成它的精确解,要么确定该方程组不存在这样的解。
在后一种情况下,该方程要么无解,要么有无穷多个解。
在实践中,用该方法在计算机解一个规模比较大的方程组,最主要的困难在于如何防止舍入误差的累积。
也就是说,一定的误差是在所难免的,因此,通过MATLAB的验证,可以认为,这次实验结果基本正确。
2.实验效率分析:
函数功能基本操作效率
GaussElimination(int n,double a[N][N]) 高斯消元,使系数矩
阵变为上三角矩阵
a[j][k]=a[j][k]-a[i][k]*t
emp
n^3
GaussBackSub(int n,double a[N][N]) 反向替换,利用上三
角矩阵求出解集
temp=temp+a[i][j]*x[j] n^2
IsInverseMatrix(int n,double a[N][N]) 判断是否为逆矩阵,
判断主对角线元素
a[j][k]=a[j][k]-a[i][k]*t
emp
n^3
GetInverseMatrix(int n,double a[N][N]) 求逆矩阵,通过n次
高斯消元法进行求解
进行n次的高斯消元以及反向
替换
n*(n^3+n
^2)=n^4
可以看出,无论是求解方程组的解还是求解逆矩阵,算法效率都主要取决于高斯消元的消去阶段n^3。
对于求解逆矩阵,效率达到了n^4,可以肯定的是,当数据规模达到一定程度时,该算法已经失去了实际意义。
因此我们可以寻找其他效率更高的算法(比如利用LU 分解来求解),当然,该算法的优点在于简单易懂,算法主要进行了n次高斯消元的操作。
因此,在一定的意义下,还是有着它的作用。
七、实验总结
指导教师批阅意见:
成绩评定:
指导教师签字:
年月日备注:
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。