实验六 实验报告
实验六:遗传算法求解TSP问题实验3篇

实验六:遗传算法求解TSP问题实验3篇以下是关于遗传算法求解TSP问题的实验报告,分为三个部分,总计超过3000字。
一、实验背景与原理1.1 实验背景旅行商问题(Traveling Salesman Problem,TSP)是组合优化中的经典问题。
给定一组城市和每两个城市之间的距离,求解访问每个城市一次并返回出发城市的最短路径。
TSP 问题具有很高的研究价值,广泛应用于物流、交通运输、路径规划等领域。
1.2 遗传算法原理遗传算法(Genetic Algorithm,GA)是一种模拟自然选择和遗传机制的搜索算法。
它通过选择、交叉和变异操作生成新一代解,逐步优化问题的解。
遗传算法具有全局搜索能力强、适用于多种优化问题等优点。
二、实验设计与实现2.1 实验设计本实验使用遗传算法求解TSP问题,主要包括以下步骤:(1)初始化种群:随机生成一定数量的个体(路径),每个个体代表一条访问城市的路径。
(2)计算适应度:根据路径长度计算每个个体的适应度,适应度越高,路径越短。
(3)选择操作:根据适应度选择优秀的个体进入下一代。
(4)交叉操作:随机选择两个个体进行交叉,生成新的个体。
(5)变异操作:对交叉后的个体进行变异,增加解的多样性。
(6)更新种群:将新生成的个体替换掉上一代适应度较低的个体。
(7)迭代:重复步骤(2)至(6),直至满足终止条件。
2.2 实验实现本实验使用Python语言实现遗传算法求解TSP问题。
以下为实现过程中的关键代码:(1)初始化种群```pythondef initialize_population(city_num, population_size): population = []for _ in range(population_size):individual = list(range(city_num))random.shuffle(individual)population.append(individual)return population```(2)计算适应度```pythondef calculate_fitness(population, distance_matrix): fitness = []for individual in population:path_length =sum([distance_matrix[individual[i]][individual[i+1]] for i in range(len(individual) 1)])fitness.append(1 / path_length)return fitness```(3)选择操作```pythondef selection(population, fitness, population_size): selected_population = []fitness_sum = sum(fitness)fitness_probability = [f / fitness_sum for f in fitness]for _ in range(population_size):individual = random.choices(population, fitness_probability)[0]selected_population.append(individual)return selected_population```(4)交叉操作```pythondef crossover(parent1, parent2):index1 = random.randint(0, len(parent1) 2)index2 = random.randint(index1 + 1, len(parent1) 1)child1 = parent1[:index1] +parent2[index1:index2] + parent1[index2:]child2 = parent2[:index1] +parent1[index1:index2] + parent2[index2:]return child1, child2```(5)变异操作```pythondef mutation(individual, mutation_rate):for i in range(len(individual)):if random.random() < mutation_rate:j = random.randint(0, len(individual) 1) individual[i], individual[j] = individual[j], individual[i]return individual```(6)更新种群```pythondef update_population(parent_population, child_population, fitness):fitness_sum = sum(fitness)fitness_probability = [f / fitness_sum for f in fitness]new_population =random.choices(parent_population + child_population, fitness_probability, k=len(parent_population)) return new_population```(7)迭代```pythondef genetic_algorithm(city_num, population_size, crossover_rate, mutation_rate, max_iterations): distance_matrix =create_distance_matrix(city_num)population = initialize_population(city_num, population_size)for _ in range(max_iterations):fitness = calculate_fitness(population, distance_matrix)selected_population = selection(population, fitness, population_size)parent_population = []child_population = []for i in range(0, population_size, 2):parent1, parent2 = selected_population[i], selected_population[i+1]child1, child2 = crossover(parent1, parent2)child1 = mutation(child1, mutation_rate)child2 = mutation(child2, mutation_rate)parent_population.extend([parent1, parent2]) child_population.extend([child1, child2])population =update_population(parent_population, child_population, fitness)best_individual =population[fitness.index(max(fitness))]best_path_length =sum([distance_matrix[best_individual[i]][best_individual[i +1]] for i in range(len(best_individual) 1)])return best_individual, best_path_length```三、实验结果与分析3.1 实验结果本实验选取了10个城市进行测试,遗传算法参数设置如下:种群大小:50交叉率:0.8变异率:0.1最大迭代次数:100实验得到的最佳路径长度为:1953.53.2 实验分析(1)参数设置对算法性能的影响种群大小:种群大小会影响算法的搜索能力和收敛速度。
实验6-实验六 二元合金显微组织分析

序号: 1200134000101组别: 5深圳大学实验报告课程名称:材料科学基础实验实验项目名称:二元合金显微组织分析学院:材料学院专业:材料科学与工程指导教师:钱海霞报告人:叶淳懿学号:2016200084 班级:实验时间:2018.12.19实验报告提交时间:教务部制数据处理分析纯铁,退火态,4%硝酸酒精腐蚀,物镜10倍,铁素体(α相)由图可知,经过4%硝酸酒精腐蚀的退火态纯铁拥有大小较为明显和均匀的晶粒,且均为铁素体(α相)。
由熔融态纯铁随着温度下降,先析出δ相铁;随着温度继续下降,δ相铁发生转变变成γ相铁。
当温度降至912℃时,γ相铁开始转变为α相铁,即图中铁素体。
20钢,退火态,4%硝酸酒精腐蚀,物镜10倍,铁素体,珠光体经过4%硝酸酒精腐蚀的退火态20钢图中有浅色与黑色两种晶粒分散分布,其中浅色为铁素体,黑色为珠光体。
为亚共析钢。
20钢冷却时先匀晶转变析出δ相固溶体,之后发生包晶转变析出γ相,此时仍有δ相,但随着温度降低全部转变为奥氏体。
温度继续冷却,开始析出铁素体,并逐渐增多。
在770℃发生共析转变形成珠光体(α+FeC)。
345钢,退火态, 4%硝酸酒精腐蚀,物镜10倍,铁素体,珠光体45钢也是亚共析钢,由图可知,相比起20钢,黑色的珠光体含量更加多,且珠光体的晶粒更大。
45钢冷却时先匀晶转变析出δ相固溶体,之后发生包晶转变析出γ相,此时仍有液相,但随着温度降低全部转变为奥氏体。
其余过程与20钢相比并无太大差异,不再赘述。
60钢,退火态,4%硝酸酒精腐蚀,物镜10倍,铁素体,珠光体由图可知60钢仍是亚共析钢,但绝大部分已经是珠光体了,浅色的铁素体只占其中很小的一部分。
45钢冷却时直接匀晶转变析出γ相,无δ相析出。
其余过程与20钢相似,不再赘述。
T8钢,退火态,4%硝酸酒精腐蚀,物镜40倍,铁素体,渗碳体,珠光体T8钢为共析钢,从图中可看到黑绿色为渗碳体,浅色为铁素体。
他们共同构成了珠光体。
实验六

(2)悬滴法 (a)在洁净凹载玻片周围涂少许凡士林。 (b)在盖玻片中央滴一小滴菌液,或用接种环取 1—2环菌液置于中央。 (c)将凹玻片反转,使凹窝中心对准盖玻片上的 菌液滴,液滴不得与凹玻片接触,以接种环柄轻压 使盖玻片与凹玻片粘在一起,液滴处于封闭的小室 中,防止液滴干燥和气流的影响。 (d)小心将凹玻片翻转过来,使菌滴仍悬浮在盖 玻片下和凹窝中心。 (e)先用低倍镜找到悬滴边缘,再用高倍镜观察。 观察时光线要调得暗一些。
五、实验报告
接物镜 接物镜倍 目镜测微尺 镜台测微尺 数 格数 格数 低倍镜 高倍镜 油 镜
接目镜放大倍数: 接目镜放大倍数:_______________
1.结果 (1)将目镜测微尺校正结果填人下表:
目镜测微尺每 格代表的长 度/pm
五、实验报告
宽 长 微生物 目镜测微 名称 尺每格 (2)将各菌测定结果填人 下表: 代表的 长度 /µm 目镜测 宽度/ 目镜测 长度 µm /µm 微尺 微尺 格数 格数 大肠杆 菌 酿酒酵 母 金葡球 菌 菌体大 小范 围 /µm
三、实验器材 菌种:大ห้องสมุดไป่ตู้杆菌。 仪器或其他用具 、凡士林、凹载玻片、 盖玻片、镊子、显微镜等。
四、操作步骤 (1)压滴法 (A)制片:在载玻片上加一滴生理盐水,挑取一环 菌液与水混合,加一环万分之一的美蓝水溶液混匀。 用镊子夹一洁净的盖玻片,使其一边先接触菌液, 然后将整个盖玻片慢慢放下,注意不要产生气泡。 (B)镜检:先以低倍镜找到标本,再用高倍镜观察, 观察时光线要调得暗些。 有鞭毛细菌可做直线、波浪式或翻滚运动,两个细 胞之间出现明显的位移,区别与布朗运动。
细菌的运动性观察
一、目的要求 学习用压滴法和悬滴法观察细菌的运动性 二、实验原理
有机化学实验报告分馏

有机化学实验报告分馏有机化学实验六简单分馏有机化学实验六简单分馏实验六简单分馏一.实验目的:1. 了解分馏的原理和意义,分馏柱的种类和选用的方法。
2. 学习实验室里常用分馏的操作方法。
二.实验重点和难点:1. 简单分馏原理;2. 分馏的操作方法;实验类型:基础性实验学时:4学时三.实验装置和药品:主要实验仪器:酒精灯圆底烧瓶分馏柱冷凝管接液器温度计量筒锥形瓶(3个)主要化学试剂:甲醇和水的混合物(1:1) 50mL沸石四.实验装置图:五.实验原理:1. 分馏:是应用分馏柱将几种沸点相近的混合物进行分离的方法。
它在化学工业和实验室中分离液态的有机化合物的常用方法之一。
普通的蒸馏技术要求其组分的沸点至少要相差30℃,才能用蒸馏法分离。
但对沸点相近的混合物,用蒸馏法不可能将它们分开。
若要获得良好的分离效果,就非得采用分馏不可。
现在最精密的分馏设备巳能将沸点相差仅1--2℃的混合物分开,利用蒸馏或分馏来分离混合物的原理是一样,实际上,分馏就是多次蒸馏。
基本原理:2. 蒸馏是提纯液体物质和分离混合物的一种常用方法。
蒸馏时混合液体中各组分的沸点要相差30℃以上,才可以进行分离。
应用分馏柱将几种沸点相近的混合物进行分离的方法称为分馏。
它在化学工业和实验室中被广泛应用。
现在最精密的分馏设备已能将沸点相差仅1-2℃的混合物分开。
利用分馏来分离混合物的原理与蒸馏是一样的,实际上分馏就是多次蒸馏。
有机化学实验六简单分馏将几种具有不同沸点而又可以完全互溶的液体混合物加热,当其总蒸气压等于外界压力时,就开始沸腾气化,蒸气中易挥发液体的成分较在原混合液中为多。
为了简化,我们仅讨沦混合物是二组分理想溶液的情况,所谓理想溶液即是指在这种溶液中,相同分子间的相互作用与不同分子间的相互作用是一样的。
也就是各组分在混合时无热效应产生,体积没有改变。
只有理想溶液才遵守拉乌尔定律。
拉乌尔定律溶液中每一组分的蒸气压等于此纯物质的蒸气压和它在溶液中的摩尔分数的乘积。
实验六_网络攻击与防范

《网络攻击与防范》实验报告(2)单击“下一步”按钮·进人如图 4-2 所示的“禁止功能选项”设定界面.根据需要进行设定。
例如。
如果选中“禁止右键菜单”复选框.当运行了该病毒后.右击时将无法弹出快捷菜单。
图 4-2 设置“禁止功能选项”(3)单击“下一步”按钮.进入如图 4-3 所示的“病毒提示对话框”设定界面时。
根据需要设置有关开机时病毒的执行情况。
当选中“设置开机提示对话框”复选框.并设置了提示框标题和内容等后,相关信息将以对话框方式在开机时自动显示图4-3 设置开机时病毒的执行情况(4)单击“下一步”按钮,进入如图 4-4 所示的“病毒传播选项”设定界面,根据需要进行设定。
当选中“通过电子邮件进行自动传播(蠕虫)”复选框时.病毒可以向指定数量的用户发送垃圾邮件。
图4-3 设置开机时病毒的执行情况下一步夏上一步图4-4“病毒传播选项”设定界面(5)单击“下一步”按钮,进入“IE 修改选项”设定界面,根据需要进行设定。
注意.当选中“设置默认主页”复选框后,会弹出“设置主页”对话框,需要读者输人要修改的IE 浏览器主页地址(即每次打开IE 浏览器时默认打开的主页地址).如图 4-5 所示图4-5设置IE浏览器修改选项(6)单击“下一步”按钮,在出现的如图 4-6 所示的对话框中选择所生成的脚本病毒存放的位置,单击“开始制造”按钮,生成病毒文件。
图4-6选择所生成的脚本病毒存放的位置此时,可看到相应路径下,已经生成了脚本病毒文件3.2感染病毒并观察感染后的系统变化情况(1)将生成的脚本病毒文件置于虚拟机中,在其上双击使之运行。
为保证完整准确地查看病毒的感染效果.可重启已经感染了病毒的虚拟机系统。
然后,根据病毒文件生成时的设置,观察系统感染了病毒后的表现情况。
主要操作步骤如下。
(2)观察系统文件夹下的异常变化,可以发现,在 C:\ Windows,C:\Windows\system32下多了不明来源的脚本文件。
最新实验六(实验报告)

最新实验六(实验报告)实验目的:本次实验旨在探究特定物质在不同条件下的反应特性,以及通过实验数据分析物质的性质和变化规律。
通过对实验过程的观察和结果的记录,加深对理论知识的理解,并提高实验操作技能。
实验材料:1. 试样:待测物质样品2. 试剂:所需的化学反应试剂3. 仪器:天平、烧杯、量筒、滴定管、温度计、pH计、光谱仪等实验步骤:1. 准备阶段:根据实验要求,准确称取适量的试样和试剂,准备好所有实验仪器。
2. 实验操作:按照实验指导书的步骤,进行化学反应操作,记录下每个步骤的具体条件,如温度、pH值、反应时间等。
3. 数据收集:对反应过程中产生的数据进行收集,包括但不限于颜色变化、沉淀形成、气泡产生等。
4. 结果分析:根据收集到的数据,分析反应过程中物质的变化,以及反应的动力学特征。
5. 结论撰写:根据实验结果,撰写实验结论,总结物质的性质和反应特点。
实验结果:1. 反应速率:通过观察和记录,发现在特定条件下,反应速率与预期相符,具体数据见附录。
2. 产物分析:实验中产生的主要产物为X和Y,通过光谱分析确认了其结构。
3. 副反应:在实验过程中,未观察到明显的副反应现象。
4. 影响因素:实验中发现温度和pH值对反应速率有显著影响。
实验讨论:本次实验中,反应的速率和产物与理论预测基本一致,但在实际操作中存在一定的误差,可能的原因包括实验操作的不精确、环境条件的波动等。
未来可以通过改进实验方法和控制实验条件来减少误差。
结论:通过本次实验,我们成功地研究了特定物质在不同条件下的反应特性,并通过数据分析得到了物质的性质和反应规律。
实验结果对理解相关化学反应机制具有重要意义,并为进一步的实验研究提供了基础。
计算机网络课程实验6

计算机网络课程实验报告《用户数据报协议(UDP)》一、实验内容IPV4协议实验六:用户数据报协议UDP二、实验原理一. 进程到进程的通信在学习UDP协议之前,首先应该了解主机到主机的通信和进程到进程的通信,以及这两种通信之间的区别。
IP协议负责主机到主机的通信。
作为一个网络层协议,IP协议只能把报文交付给目的主机。
这是一种不完整的交付,因为这个报文还没有送交到正确的进程。
像UDP这样的传输层协议负责进程到进程的通信。
UDP协议负责把报文交付到正确的进程。
下图描绘了IP协议和UDP协议的作用范围。
图6-1 UDP与IP的区别1. 端口号在网络中,主机是用IP地址来标识的。
而要标识主机中的进程,就需要第二个标识符,这就是端口号。
在TCP/IP协议族中,端口号是在0~65535之间的整数。
在客户/服务器模型中,客户程序使用端口号标识自己,这种端口号叫做短暂端口号,短暂的意思是生存时间比较短。
一般把短暂端口取为大于1023的数,这样可以保证客户程序工作得比较正常。
服务器进程也必须用一个端口号标识自己。
但是这个端口号不能随机选取。
如果服务器随机选取端口号,那么客户端在想连接到这个服务器并使用其服务的时候就会因为不知道这个端口号而无法连接。
TCP/IP协议族采用熟知端口号的办法解决这个问题。
每一个客户进程都必须知道相应的服务器进程熟知端口号。
UDP的熟知端口号如下表所示:表6-1 UDP的熟知端口号在一个IP数据包中,目的IP地址和端口号起着不同的寻址作用。
目的IP地址定义了在世界范围内惟一的一台主机。
当主机被选定后,端口号定义了在这台主机上运行的多个进程中的一个。
2. 套接字地址一个IP地址与一个端口号结合起来就叫做一个套接字地址。
客户套接字地址惟一地定义了客户进程,而服务器套接字地址惟一地定义了服务器进程。
要使用UDP的服务,就需要一对套接字地址:客户套接字地址和服务器套接字地址。
客户套接字地址指定了客户端的IP地址和客户进程,服务器套接字地址指定了服务器的IP地址和服务器进程。
实验六二叉树实验报告

实验四二叉树的操作班级:计算机1002班姓名:唐自鸿学号:201003010207 完成日期:2010.6.14 题目:对于给定的一二叉树,实现各种约定的遍历。
一、实验目的:(1)掌握二叉树的定义和存储表示,学会建立一棵特定二叉树的方法;(2)掌握二叉树的遍历算法(先序、中序、后序遍历算法)的思想,并学会遍历算法的递归实现和非递归实现。
二、实验内容:构造二叉树,再实现二叉树的先序、中序、后序遍历,最后统计二叉树的深度。
三、实验步骤:(一) 需求分析1. 二叉树的建立首先要建立一个二叉链表的结构体,包含根节点和左右子树。
因为树的每一个左右子树又是一颗二叉树,所以用递归的方法来建立其左右子树。
二叉树的遍历是一种把二叉树的每一个节点访问并输出的过程,遍历时根结点与左右孩子的输出顺序构成了不同的遍历方法,这个过程需要按照不同的遍历的方法,先输出根结点还是先输出左右孩子,可以用选择语句来实现。
2.程序的执行命令为:1)构造结点类型,然后创建二叉树。
2)根据提示,从键盘输入各个结点。
3)通过选择一种方式(先序、中序或者后序)遍历。
4)输出结果,结束。
(二)概要设计1.二叉树的二叉链表结点存储类型定义typedef struct Node{DataType data;struct Node *LChild;struct Node *RChild;}BitNode,*BitTree;2.建立如下图所示二叉树:void CreatBiTree(BitTree *bt)用扩展先序遍历序列创建二叉树,如果是当前树根置为空,否则申请一个新节点。
3.本程序包含四个模块1) 主程序模块:2)先序遍历模块3)中序遍历模块4)后序遍历模块4.模块调用关系:主程序模块(三)详细设计1.建立二叉树存储类型//==========构造二叉树=======void CreatBiTree(BitTree *bt)//用扩展先序遍历序列创建二叉树,如果是当前树根置为空,否则申请一个新节点//{char ch;ch=getchar();if(ch=='.')*bt=NULL;else{*bt=(BitTree)malloc(sizeof(BitNode));//申请一段关于该节点类型的存储空间(*bt)->data=ch; //生成根结点CreatBiTree(&((*bt)->LChild)); //构造左子树CreatBiTree(&((*bt)->RChild)); //构造右子树}}2. 编程实现以上二叉树的前序、中序和后序遍历操作,输出遍历序列1)先序遍历二叉树的递归算法如下:void PreOrder(BitTree root){if (root!=NULL){Visit(root ->data);PreOrder(root ->LChild); //递归调用核心PreOrder(root ->RChild);}}2)中序遍历二叉树的递归算法如下:void InOrder(BitTree root){if (root!=NULL){InOrder(root ->LChild);Visit(root ->data);InOrder(root ->RChild);}}3)后序遍历二叉树的递归算法如下:void PostOrder(BitTree root){if(root!=NULL){PostOrder(root ->LChild);PostOrder(root ->RChild);Visit(root ->data);}}4)计算二叉树的深度算法如下:int PostTreeDepth(BitTree bt) //求二叉树的深度{int hl,hr,max;if(bt!=NULL){hl=PostTreeDepth(bt->LChild); //求左子树的深度hr=PostTreeDepth(bt->RChild); //求右子树的深度max=hl>hr?hl:hr; //得到左、右子树深度较大者return(max+1); //返回树的深度}else return(0); //如果是空树,则返回0}四、调试分析及测试结果1. 进入演示程序后的显示主界面:请输入二叉树中的元素;先序、中序和后序遍历分别输出结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
云南大学软件学院
实验报告
课程:数据库原理与实用技术实验任课教师:包崇明
姓名:匿名学号:2013…….专业:软件工程成绩:
实验6 数据库完整性
实验6-1 完整性约束
1、在学生表上面创建下列CHECK约束
【注】:因为学生表已经存在,所以这里使用添加check约束的方法实现:
(1)创建入学日期约束“Enter_University_date_rule”,假定该学校于1923年4月30日创建。
要求:入学日期必须大于等于学校创建日期,并且小于等于当前日期
测试语句:
结果(添加的check约束起作用了),如图:
(2)创建学生年龄约束“Age_rule”。
要求:学生年龄必须在15~30岁之间
测试语句
结果(添加”Age_rule”成功,并且年龄为’2015/4/27’没有违反”Enter_University_date_rule”
约束,进一步说明了(1)中的check约束添加成功,如图:
【注】:考虑到时间关系,下面的部分解答中将会省略测试约束的步骤。
(3)创建学生性别约束“Sex_rule”。
要求:性别只能为“男”或“女”
(4)创建学生成绩约束“Score_rule”。
要求:学生成绩只能在0~100之间
(5)用图形方法查看学生成绩约束“Score_rule”,截图为:
2、删除约束Enter_University_date_rule
测试语句:
结果:(更新成功)
3、创建声明式默认约束:在创建表的过程中创建默认约束
(1)创建表“default_example”,表中包含字段pid、name、sex、age。
要求设定sex的默认值为“男”、age的默认值为18。
创建default_example表语句:
采用SQL语句进行插入元祖:
执行结果为:(默认值起作用了!!)
(2)插入一条编号为100 的记录,执行结果为:
(3)修改默认值
一般先删除老的默认约束,再新建一个默认约束方法如下:
删除约束:alter TABLE default_example drop 约束名
新建默认约束:alter TABLE default_example add constraint df_age default(20) for age
①删除老的默认约束:
②新建默认约束:
请将年龄默认值更改为19,执行结果为:
测试语句:
结果(默认年龄被修改为19),如图:
3、在“学生管理数据库”各个数据表中建立相应的主键、外键、惟一值、以及check约束,
要求:学生的年龄必须是两位数,其中第一位是1或2:
(1)学生表【添加主键和年龄约束】:
(2)授课表【添加主键和外键】:
(3)课程表【添加主键】:
(4)成绩表【添加主键和外键】:
第一次添加外键失败,因为两个表中的学号长度不等,所以我需要修改使其相等再添加。
修改后添加外键约束:
我将成绩表中学号的长度由char(20)修改为char(10),这样添加外键约束就能成功:
删除check 约束:
删除学生表中的年龄约束:Age_rule:
5、完成教科书456页如下习题:
[7.1]a:
实验6-2 触发器
1、使用触发器
(1)创建一个触发器trig_update,返回对“学生表”进行更新操作后,被更新的记录条数
(2)执行触发器
①测试触发器:
②测试结果:
(3)修改触发器trig_update,除返回被更新的记录条数外,再返回学生的所有基本信息
测试:
结果:
2、使用触发器的两个特殊表:插入表(inserted)和删除表(deleted)。
(1)在“学生表”上创建触发器ins_del_sample,在对学生表进行插入、删除或更新操作后,分别从inserted表和deleted表中查询学生学号、姓名、性别、年龄和所在院系。
(请同学们在做删除操作时,注意备份)
(2)执行插入、删除和更新操作后返回的表有什么区别?
3、使用系统存储过程查看触发器
(1)显示触发器trig_update的一般信息
(2)显示触发器trig_update的源代码
(3)显示“学生表”上所有的依赖关系
(4)显示触发器trig_update所引用的对象
4、难题(注意inserted表和deleted表的使用,并请自己修改数据表)
(1)为“成绩表”创建一个触发器,当向表中插入数据时,如果成绩大于等于60分,该学生就能得到相应的学分,否则,该学生不能得到学分。
(2)为“学生表”创建一个触发器,当删除表中的一个学生资料时,将“成绩表”中的相应记录也删除掉
(3)为“成绩表”创建一个触发器,如果成绩由原来的小于60分更改为大于等于60分时,该学生就得到相应的学分,如果成绩由原来的大于等于60分更改为小于60分,则该学生的相应学分更改为0。
5、完成教科书456页如下习题:
[7.11]a:
[7.11]b:。