《数据结构》 实验报告4
xxx实验报告
课程名称数据结构实验
名称
实验四排序操作
系部班级姓名学号
实验时间2012 年12月10日时分~时
分
地点
机位
评语指导教师:成绩
一、实验目的
1. 掌握常用的排序方法,并掌握用高级语言实现排序算法的方法;
2. 深刻理解排序的定义和各种排序方法的特点,并能加以灵活应用;
3. 了解各种方法的排序过程及其时间复杂度的分析方法。
二、实验内容
统计成绩:给出n个学生的考试成绩表,每条信息由姓名和分数组成,试设计一个算法:
(1)按分数高低次序,打印出每个学生在考试中获得的名次,分数相同的为同一名次;
(2)按名次列出每个学生的姓名与分数。
三、实验步骤
1. 定义结构体。
2. 定义结构体数组。
3. 定出主程序,对数据进行排序。
四、程序主要语句及作用
1. 程序原代码如下:
#include
#include "stdio.h"
#include
#include
typedef struct BSTNODE
{
int data;
struct BSTNODE *lchild;
struct BSTNODE *rchild;
}BSTNODE;
BSTNODE* initBST(int n, BSTNODE *p)
{
if(p==NULL)
{p=(BSTNODE*)malloc(sizeof(BSTNODE));
p->lchild=NULL;
p->rchild=NULL;
p->data=n;
}
else if(n>p->data)
p->rchild=initBST(n,p->rchild);
else
p->lchild=initBST(n,p->lchild);
return p;
}
void inorder(BSTNODE *BT){
if(BT!=NULL){
inorder(BT->lchild);
printf("%d ",BT->data);
inorder(BT->rchild);
}
}
BSTNODE *search_btree(BSTNODE *root,int key) { if (!root)
{printf("Emptu btree\n"); return root; }
while(root->data!=key)
{ if(key
root=root->lchild;
else
root=root->rchild;
if(root==0)
{ printf("Search Failure\n");
break ;
}
} /* while(root->info!=key) */
if (root !=0)
printf("Successful search\n key=%d\n",root->data);
return root ;
} /* *search_btree(root,key) */
int main()
{
BSTNODE *p=NULL;
int i,n,sd;
int a[100];
printf("enter the number of nodes:");
scanf("%d",&n);
printf("enter the number of the tree:");
for(i=0;i { scanf("%d",&a[i]); p=initBST(a[i],p); } inorder(p); printf("\n please input search data:"); scanf("%d",&sd); search_btree(p,sd); getch(); 《数据结构课程实验》大纲 一、《数据结构课程实验》的地位与作用 “数据结构”是计算机专业一门重要的专业技术基础课程,是计算机专业的一门核心的关键性课程。本课程较系统地介绍了软件设计中常用的数据结构以及相应的存储结构和实现算法,介绍了常用的多种查找和排序技术,并做了性能分析和比较,内容非常丰富。本课程的学习将为后续课程的学习以及软件设计水平的提高打下良好的基础。 由于以下原因,使得掌握这门课程具有较大的难度: (1)内容丰富,学习量大,给学习带来困难; (2)贯穿全书的动态链表存储结构和递归技术是学习中的重点也是难点; (3)所用到的技术多,而在此之前的各门课程中所介绍的专业性知识又不多,因而加大了学习难度; (4)隐含在各部分的技术和方法丰富,也是学习的重点和难点。 根据《数据结构课程》课程本身的技术特性,设置《数据结构课程实验》实践环节十分重要。通过实验实践内容的训练,突出构造性思维训练的特征, 目的是提高学生组织数据及编写大型程序的能力。实验学时为18。 二、《数据结构课程实验》的目的和要求 不少学生在解答习题尤其是算法设计题时,觉得无从下手,做起来特别费劲。实验中的内容和教科书的内容是密切相关的,解决题目要求所需的各种技术大多可从教科书中找到,只不过其出现的形式呈多样化,因此需要仔细体会,在反复实践的过程中才能掌握。 为了帮助学生更好地学习本课程,理解和掌握算法设计所需的技术,为整个专业学习打好基础,要求运用所学知识,上机解决一些典型问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握所用到的一些技术。数据结构中稍微复杂一些的算法设计中可能同时要用到多种技术和方法,如算法设计的构思方法,动态链表,算法的编码,递归技术,与特定问题相关的技术等,要求重点掌握线性链表、二叉树和树、图结构、数组结构相关算法的设计。在掌握基本算法的基础上,掌握分析、解决实际问题的能力。 三、《数据结构课程实验》内容 课程实验共18学时,要求完成以下六个题目: 实习一约瑟夫环问题(2学时) 数据结构实验报告 一.题目要求 1)编程实现二叉排序树,包括生成、插入,删除; 2)对二叉排序树进行先根、中根、和后根非递归遍历; 3)每次对树的修改操作和遍历操作的显示结果都需要在屏幕上用树的形状表示出来。 4)分别用二叉排序树和数组去存储一个班(50人以上)的成员信息(至少包括学号、姓名、成绩3项),对比查找效率,并说明在什么情况下二叉排序树效率高,为什么? 二.解决方案 对于前三个题目要求,我们用一个程序实现代码如下 #include 作业格式要求 一、作业题目 围绕如何学习信息安全专业课程,掌握专业知识等内容自拟题目并进行论述。 二、用纸、页面设置要求 作业应按规定格式用计算机打印,纸张大小一律使用A4复印纸,单面打印。 页面设置:每一面的上方(天头)和下方(地脚)应留边25mm左右,左侧(订口)和右侧(切口)应分别留边317mm左右。页码设置为:插入页码,居中。 三、作业内容打印要求 作业中所有标点符号必须是中文全角逗号、句号。 (一)目录 采用四号字,其中每章题目用黑体字,每节题目用宋体字,并注明各章节起始页码,题目和页码用“……”相连,如下所示: 目录(黑体小3号) (自然空一行) 第一章 XXXXXXXX ……………………………………………1 (黑体小4号) 1.1 XXXXXX ………………………………………………2 (宋体小4号) 1.1.1 XXXXX …………………………………………6 (宋体小4号) 第二章 XXXXXXXXXX ………………………………………40(黑体小4号)(二)正文字体要求 每章题目居中、黑体小三号;每节题目左顶边、宋体四号加黑;每小节题目左顶边、宋体小四号加黑。正文文字用宋体小四号汉字和小四号“Times New Roman”英文字体,每自然段首行缩进2个字符。 (三)行间距要求 每章题目与每节题目之间的行距设置:每章题目后设单倍行距,段后0.5 行。 每节题目与小节题目之间的行距设置:每节题目后设单倍行距,段后0.5 行。 正文行距设置:设多倍行距,设置值为1.25。 (四)正文章节序号编制 章,编写为:第一章,第二章…。 节,编写为:1. 1、1. 2…,2. 1、2. 2…。 小节,编写为:1. 1. 1, 1. 1. 2…。 小节以下层次,先以括号为序,如(1),(2)…;再以圈圈为序,如①, ②…。层次采用如下格式: 例如: 第一章 XXXXXXXX(黑体小三号)(单倍行距,段后0.5行) 1. 1 XXXXXXXX(宋体四号加黑)(单倍行距,段后0.5行) 1.1. 1 xxxxxx(宋体小四号加黑) (首行缩进2个字符)(1)xxxxx(小四号宋体) (首行缩进2个字符)① xxxxxx(小四号宋体) (下一章另起一页) 第二章 XXXXXXXX(黑体小三号)(单倍行距,段后0.5行) 2. 1 XXXXXXXX(宋体四号加黑)(单倍行距,段后0.5行) 2.1. 1 xxxxxx(宋体小四号加黑) (首行缩进2个字符)(1)xxxxx(宋体小四号) (首行缩进2个字符)① xxxxxx(宋体小四号) (五)报告的公式、图与表 公式号以章分组编号,如(2-4)表示第二章的第4个公式。 公式尽量采用公式编辑应用程序输入,选择默认格式,公式号右对齐,公式调整至基本居中。 图与表中的文字小于正文中的文字字号。 图与表以章分组编序号,如图3-5表示第三章的第5幅图。 数据库实验报告(四) 姓名:学号:班级: 1.简单查询: (1) 查询“数据库开发技术”课程的学分; SQL语句: select credit from course where course_name='SQL Server数据库开发技术'; 或者模糊查询: select credit from course where course_name like'%数据库开发技术'; 执行结果: (2) 查询选修了课程编号为“dep04_s004”的学生的学号和成绩,并将成绩按降序输出; SQL语句: select student_id,grade from student_course where course_id='dep04_s003' order by grade desc; 执行结果: (3) 查询学号为“g9940205”的学生选修的课程编号和成绩; SQL语句: select course_id,grade from student_course where student_id='g9940205'; 执行结果: (4) 查询选修了课程编号为“dep04_s001”且成绩高于85分的学生的学号和成绩。 SQL语句: select student_id,grade from student_course where course_id='dep04_s001'and grade>'85'; 执行结果: 2.在多表连接的查询实验中,用Transact SQL语句完成以下查询操作: (1)查询选修了课程编号为“dep04_s002”且成绩高于85分的学生的学号、姓名和成绩; SQL语句: select student.student_id,student_name,grade from student,student_course where student.student_id=student_course.student_id and student_course.course_id='dep04_s002' and student_course.grade>'85'; 执行结果: (2)查询所有学生的学号、姓名、选修的课程名称和成绩; SQL语句: select student.student_id,student_name,course_name,grade from student,course,student_course where student.student_id=student_course.student_id and student_course.course_id=course.course_id; 执行结果: 数据结构实验报告全集 实验一线性表基本操作和简单程序 1.实验目的 (1)掌握使用Visual C++ 6.0上机调试程序的基本方法; (2)掌握线性表的基本操作:初始化、插入、删除、取数据元素等运算在顺序存储结构和链表存储结构上的程序设计方法。 2.实验要求 (1)认真阅读和掌握和本实验相关的教材内容。 (2)认真阅读和掌握本章相关内容的程序。 (3)上机运行程序。 (4)保存和打印出程序的运行结果,并结合程序进行分析。 (5)按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果 实验代码: 1)头文件模块 #include iostream.h>//头文件 #include nodetype *create()//建立单链表,由用户输入各结点data域之值,//以0表示输入结束 { elemtype d;//定义数据元素d nodetype *h=NULL,*s,*t;//定义结点指针 int i=1; cout<<"建立一个单链表"< 一实验题目 .索引的建立和删除操作 .视图的创建、修改、更新和查询操作 二实验目的 .掌握数据库索引建立与删除操作,掌握数据库索引的分类,并了解建立数据库索引的意义、作用。 .掌握视图的创建和查询操作,理解视图的使用,理解实图在数据库安全性中的作用。 三实验内容 1.索引的建立和删除操作 (1)在表中,建立按照升序的惟一性索引。 (2)在表中,建立按照学号升序和课程号降序的唯一性索引。 (3)在表中,按照生日建立一个非聚簇索引。 (4)在表中,建立一个按照课程名升序的聚簇索引。 (5)删除索引。 2.视图的创建、修改、更新和查询操作 (1)建立一个关于所有女生信息的视图。 (2)将各系学生人数,平均年龄定义为视图 (3)建立一个视图反映学生所选课程的总学分情况。 (4)建立一个所有学生课程成绩的视图,包括基本学生信息,课程信息和成绩。 (5)在视图基础之上,建立一个两门课以上成绩不及格的学生情况视图。 (6)建立一个至少选修了门课及门课以上的学生信息的视图。 (7)修改视图,要求只显示年以前出生的女生信息。 (8)在视图查询不及格超过门课的学生信息。 (9)删除视图。 (10)通过视图,将“王丹”的名字修改为“汪丹”,并查询结果。 (11)通过视图,新增一个学生信息(“刘兰兰”,“女”,“计算机学院”,),并查询结果。 (12)通过视图,删除年出生的女生信息,并查询结果。 (13)通过视图,将“汪丹”的名字修改为“王丹”,是否可以实现,请说明原因。 (14)通过视图,将“”学生的平均分改为分,是否可以实现,请说明原因。 四实验要求 .要求掌握索引的类型,以及创建索引时的注意事项,例如每个表只能创建一个聚集索引,可以创建非聚集索引最多为个,等等。 .理解创建视图的目的和意义。掌握创建视图时需要考虑的原则:只能在当前数据库中创建视图、视图名不得与该用户的表名相同、可在视图上建立视图、定义视图不能包括等关键字、不能建立临时视图,等等。 .报告中由同学写明具体的操作意图(文字描述)、操作命令(语句)、和执行结果(文字描述适当截图)。 化学实验报告格式 例一定量分析实验报告格式 (以草酸中h2c2o4含量的测定为例) 实验题目:草酸中h2c2o4含量的测定 实验目的: 学习naoh标准溶液的配制、标定及有关仪器的使用; 学习碱式滴定管的使用,练习滴定操作。 实验原理: h2c2o4为有机弱酸,其ka1=5.9×10-2,ka2=6.4×10-5。常量组分分析时cka1>10-8,cka2>10-8,ka1/ka2<105,可在水溶液中一次性滴定其两步离解的h+: h2c2o4+2naoh===na2c2o4+2h2o 计量点ph值8.4左右,可用酚酞为指示剂。 naoh标准溶液采纳间接配制法获得,以邻苯二甲酸氢钾标定: -cook -cooh +naoh=== -cook -coona +h2o 此反应计量点ph值9.1左右,同样可用酚酞为指示剂。 实验办法: 一、naoh标准溶液的配制与标定 用台式天平称取naoh1g于100ml烧杯中,加50ml蒸馏水,搅拌使其溶解。移入500ml试剂瓶中,再加200ml蒸馏水,摇匀。 准确称取0.4~0.5g邻苯二甲酸氢钾三份,分别置于250ml锥形瓶中,加20~30ml蒸馏水溶解,再加1~2滴0.2%酚酞指示剂,用naoh标准溶液滴定至溶液呈微红色,半分钟别褪色即为终点。 二、h2c2o4含量测定 准确称取0.5g左右草酸试样,置于小烧杯中,加20ml蒸馏水溶解,然后定量地转入100ml 容量瓶中,用蒸馏水稀释至刻度,摇匀。 用20ml移液管移取试样溶液于锥形瓶中,加酚酞指示剂1~2滴,用naoh标准溶液滴定至溶液呈微红色,半分钟别褪色即为终点。平行做三次。 实验数据记录与处理: 一、naoh标准溶液的标定 实验编号123备注 mkhc8h4o4 /g始读数 2009级数据结构实验报告 实验名称:约瑟夫问题 学生姓名:李凯 班级:21班 班内序号:06 学号:09210609 日期:2010年11月5日 1.实验要求 1)功能描述:有n个人围城一个圆圈,给任意一个正整数m,从第一个人开始依次报数,数到m时则第m个人出列,重复进行,直到所有人均出列为止。请输出n个人的出列顺序。 2)输入描述:从源文件中读取。 输出描述:依次从显示屏上输出出列顺序。 2. 程序分析 1)存储结构的选择 单循环链表 2)链表的ADT定义 ADT List{ 数据对象:D={a i|a i∈ElemSet,i=1,2,3,…n,n≧0} 数据关系:R={< a i-1, a i>| a i-1 ,a i∈D,i=1,2,3,4….,n} 基本操作: ListInit(&L);//构造一个空的单链表表L ListEmpty(L); //判断单链表L是否是空表,若是,则返回1,否则返回0. ListLength(L); //求单链表L的长度 GetElem(L,i);//返回链表L中第i个数据元素的值; ListSort(LinkList [内容要求] 1、存储结构:顺序表、单链表或其他存储结构,需要画示意图,可参考书上P59 页图2-9 2.2 关键算法分析 结点类: template 数据库上机实验报告 4 学号:姓名:日期:年月日 实验目的:(1)练习连接查询;(2)练习视图的创建与使用;(3)学习使用ODBC的方法;(4)体验T-SQL的功能;体验存储过程的功能;体验表值函数、标量值函数的作用;体验ranking等功能。 1 练习视图及连接查询。 (1)创建一个视图,视图名为viNF,视图内容为select id,count(*) as nf from friends group by id。执行成功后,将SQL语句复制到下方。 (2)基于viNF视图,查找拥有最多好友的用户、最少好友的用户。执行成功后,将SQL语句复制到下方。 (3)基于users表和viNF视图进行连接查询。分别进行内连接、全外连接、左外连接、右外连接四种操作。执行成功后,将SQL语句复制到下方,并回答:四种结果表,哪两个的结果是一致的,为什么? (4)将题(3)中全外连接保存为一个新的视图viUAF。 2 通过ODBC用Excel打开users表。 3 体验T-SQL。 回顾实验2中的题目: 定义最低价格为成本价;依据此成本价做如下计算: 连接Goods,Goods_Extent,Sellers表,按照总利润,输出前10名;要求输出表的格式为(商品名称,卖家名称,商品价格,运费,卖家信誉,卖家好评率,历史销量,历史利润,期内销量,期内利润,总销量,总利润) 利用如下语句进行查询,体会和之前有什么不同。如感兴趣,自己可以仿照写一个变量定义、赋值及应用的例子。 declare @cost as float; select @cost=min(good_price)from goods; select top 10 good_name as商品名称, goods.seller_name as卖家名称, good_price as商品价格, good_shipping as运费, 报告编号:LX-FS-A55866 实验报告标准范本 The Stage T asks Completed According T o The Plan Reflect The Basic Situation In The Work And The Lessons Learned In The Work, So As T o Obtain Further Guidance From The Superior. 编写:_________________________ 审批:_________________________ 时间:________年_____月_____日 A4打印/ 新修订/ 完整/ 内容可编辑 实验报告标准范本 使用说明:本报告资料适用于按计划完成的阶段任务而进行的,反映工作中的基本情况、工作中取得的经验教训、存在的问题以及今后工作设想的汇报,以取得上级的进一步指导作用。资料内容可按真实状况进行条款调整,套用时请仔细阅读。 一、实验目的及要求: 本实例是要创建边框为1像素的表格。 二、仪器用具 1、生均一台多媒体电脑,组建内部局域网,并且接入国际互联网。 2、安装windows xp操作系统;建立iis服务器环境,支持asp。 3、安装网页三剑客(dreamweaver mx;flash mx;fireworks mx)等网页设计软件; 4、安装acdsee、photoshop等图形处理与制作软件; 5、其他一些动画与图形处理或制作软件。 三、实验原理 创建边框为1像素的表格。 四、实验方法与步骤 1) 在文档中,单击表格“”按钮,在对话框中将“单元格间距”设置为“1”。 2) 选中插入的表格,将“背景颜色”设置为“黑色”(#0000000)。 3) 在表格中选中所有的单元格,在“属性”面版中将“背景颜色”设置为“白色”(#ffffff)。 4) 设置完毕,保存页面,按下“f12”键预览。 五、实验结果 六、讨论与结论 本实验主要通过整个表格和单元格颜色的差异来衬托出实验效果,间距的作用主要在于表现这种颜色 数据库实验报告4 《数据库原理》实验报告 题目:实验四视图与索引学号姓名班级日期Xxxx Xx xxxxx 2016.10.20 一. 实验内容、步骤以及结果 1.在Student数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是 1986年出生的学生的视图,视图中包括学号,性别,成绩三个信息。 2.用两种不同的SQL语句创建第五版教材第三章第9题中要求的视图(视图名:V_SPJ) 方法一: create view V_SP as select sno,pno,qty from spj where spj.jno in (select jno from j where j.jname=' 三建') 方法二: create view V_SPJ as select sno,pno,qty from spj,j where j.jno=spj.jno and j.jname='三建' INTO V_SPJ(SNO,PNO,QTY) VALUES( 's5','p3',900) 提示: -SPJ表中JNO允许为空时,数据可以插入基本表,此时JNO为NULL,由 于JNO为NULL,所以视图中没有该 条数据。 -SPJ表中JNO不能为空时,可以使用instead of触发器实现。 (1)修改视图V_SPJ中的任意一条数据的供 应数量。 update V_SPJ set qty=111 where sno='s1' and pno='p1' (2)删除视图V_SPJ中的任意一条数据(注意 所创建视图可以视图消解时,才能正常删除,否则会删除失败;也可以考虑用 instead of触发器实现)。 DELETE V_SPJ where sno='s1' and pno='p1' and qty=111 用instead of触发器实现 CREATE TRIGGER trdV_SPJ ON V_SPJ INSTEAD OF DELETE AS BEGIN Delete from V_SPJ WHERE sno='s1' and pno='p1' and qty=111 END 实验报告评语 1、书写认真,干净。实验步骤清晰 2、书写整齐,实验数据真实,明确 3、书写杂乱, 4、实验目的明确,经过数据分析等到的结果很好 5、实验过程有些乱,但总体还好 6、实验设计合理,数据正确 7、通过这份实验报告,可以看出你能很好的完成实验 8、看了这份实验报告,可以看出你对知识的掌握很好 9、通过实验报告,可以看出你严谨的实验态度 学校班级 组别姓名 实验题目:氧气的实验室制取及其化学性质 实验用品:铁架台、大试管、带导管的单孔橡胶塞、集气瓶、水槽、毛玻璃片、药匙、酒精灯、火柴、高锰酸钾、木炭、澄清的石灰水、脱脂棉、水、细木条、剩余药品的回收容器。 实验过程:按照实验内容和步骤完成实验,并将表格中空格部分补充完整。 1 2 学校班级 组别姓名 实验题目:燃烧的条件 实验用品:酒精灯、蜡烛、玻璃棒、玻璃片、火柴、纸盒、小木条、水、坩埚钳、剩余药品的回收容器。 实验过程:按照实验内容和步骤完成实验,并将表格中空格部分补充完整。 3 4 学校班级 组别姓名 实验题目:质量守恒定律 实验用品:托盘天平、砝码、烧杯、镊子、CuSO4溶液、铁钉、砂纸、剩余药品的回收容器。 实验过程:按照实验内容和步骤完成实验,并将表格中空格部分补充完整。 石家庄铁道大学 实验报告 课程名称:管理信息系统任课教师: 陈艳春实验日期: 班级: 姓名:学号: 第 1 页共 4 页 第 2 页共 4 页 第 3 页共 4 页 第 4 页共 4 页 1、书写认真,干净。实验步骤清晰 2、书写整齐,实验数据真实,明确 3、书写杂乱, 4、实验目的明确,经过数据分析等到的结果很好 5、实验过程有些乱,但总体还好 6、实验设计合理,数据正确 实验报告纸格式 肇庆学院 肇庆学院学院电子电工课实验报告 12 年级机械4 班组实验日期 姓名老师评定 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 实验题目实验二射极跟随器 一、实验目的 1、掌握射极跟随器的特性及测试方法 2、进一步学习放大器各项参数测试方法 二、实验原理 射极跟随器的原理图如图5-1所示。它是一个电压串联负反馈放大电路,它具有输入电阻高,输出电阻低,电压放大倍数接近于1,输出电压能够在较大范围内跟随 输入电压作线性变化以及输入、输出信号同相等特点。 图5-1 射极跟随器 射极跟随器的输出取自发射极,故称其为射极输出器。 1、输入电阻R i 图5-1电路 R i =r be +(1+β)R E 如考虑偏置电阻R B 和负载R L 的影响,则 R i =R B ∥[r be +(1+β)(R E ∥R L )] 由上式可知射极跟随器的输入电阻R i 比共射极单管放大器的输入电阻R i =R B ∥r be 要高得多,但由于偏置电阻R B 的分流作用,输入电阻难以进一步提高。 输入电阻的测试方法同单管放大器,实验线路如图5-2所示。 图5-2 射极跟随器实验电路 R U U U I U R i s i i i i -== 即只要测得A 、B 两点的对地电位即可计算出R i 。 2、输出电阻R O 图5-1电路 β r R ∥βr R be E be O ≈= 如考虑信号源内阻R S ,则 β ) R ∥(R r R ∥β)R ∥(R r R B S be E B S be O +≈+= 由上式可知射极跟随器的输出电阻R 0比共射极单管放大器的输出电阻R O ≈R C 低得多。三极管的β愈高,输出电阻愈小。 输出电阻R O 的测试方法亦同单管放大器,即先测出空载输出电压U O ,再测接入负载R L 后的输出电压U L ,根据 O L O L L U R R R U += 即可求出 R O L L O O 1)R U U ( R -= 3、电压放大倍数 图5-1电路 2011~2012第一学期数据结构实验报告 班级:信管一班 学号:201051018 姓名:史孟晨 实验报告题目及要求 一、实验题目 设某班级有M(6)名学生,本学期共开设N(3)门课程,要求实现并修改如下程序(算法)。 1. 输入学生的学号、姓名和 N 门课程的成绩(输入提示和输出显示使用汉字系统), 输出实验结果。(15分) 2. 计算每个学生本学期 N 门课程的总分,输出总分和N门课程成绩排在前 3 名学 生的学号、姓名和成绩。 3. 按学生总分和 N 门课程成绩关键字升序排列名次,总分相同者同名次。 二、实验要求 1.修改算法。将奇偶排序算法升序改为降序。(15分) 2.用选择排序、冒泡排序、插入排序分别替换奇偶排序算法,并将升序算法修改为降序算法;。(45分)) 3.编译、链接以上算法,按要求写出实验报告(25)。 4. 修改后算法的所有语句必须加下划线,没做修改语句保持按原样不动。 5.用A4纸打印输出实验报告。 三、实验报告说明 实验数据可自定义,每种排序算法数据要求均不重复。 (1) 实验题目:《N门课程学生成绩名次排序算法实现》; (2) 实验目的:掌握各种排序算法的基本思想、实验方法和验证算法的准确性; (3) 实验要求:对算法进行上机编译、链接、运行; (4) 实验环境(Windows XP-sp3,Visual c++); (5) 实验算法(给出四种排序算法修改后的全部清单); (6) 实验结果(四种排序算法模拟运行后的实验结果); (7) 实验体会(文字说明本实验成功或不足之处)。 三、实验源程序(算法) Score.c #include "stdio.h" #include "string.h" #define M 6 #define N 3 struct student { char name[10]; int number; int score[N+1]; /*score[N]为总分,score[0]-score[2]为学科成绩*/ }stu[M]; void changesort(struct student a[],int n,int j) {int flag=1,i; struct student temp; while(flag) { flag=0; for(i=1;i 太原理工大学学生实验报告 (1)了解SQL Serer数据库系统中数据完整性控制的基本方法 (2)熟练掌握常用CREATE 或ALTER 在创建或修改表时设置约束 (3)了解触发器的机制和使用 (4)验证数据库系统数据完整性控制 二、实验内容和原理 结合school 数据库中的各个表,设置相关的约束,要求包括主键约束、外键约束、唯一约束、检查约束、非空约束等,掌握各约束的定义方法。设置一个触发器,实现学生选课总学分的完整性控制,了解触发器的工作机制。设计一些示例数据,验证完整性检查机制。 3.1要求包括如下方面的内容: 使用 SQL 语句设置约束 使用 CREATE 或 ALTER 语句完成如下的操作,包括: 1.设置各表的主键约束 2.设置相关表的外键 3.设置相关属性的非空约束、默认值约束、唯一约束 4.设置相关属性的 CHECK 约束 3.2使用触发器 创建一个触发器,实现如下的完整性约束: (1)当向 SC 表中插入一行数据时,自动将学分累加到总学分中。 (2)记录修改学分的操作。 3.3检查约束和触发器 分别向相关表插入若干条记录,检查你设置的完整性约束是否有效: 1.插入若干条包含正确数据的记录,检查插入情况 2.分别针对设置的各个约束,插入违反约束的数据,检查操作能否进行 3.向 SC 表插入若干行数据,检查触发器能否实现其数据一致性功能。 三、主要仪器设备(必填) HP6460 SQL SERVER2008 四、方法与实验步骤(可选) 一、声明完整性约束 创建学生选课数据库 TEST,包括三个基本表,其中 Student 表保存学生基本信息,Course 表保存课程信息,SC 表保存学生选课信息,其结构如下表: 表 1. Student 表结构 表 2. Course 表结构 表 3. SC 表结构 图实验 一,邻接矩阵的实现 1.实验目的 (1)掌握图的逻辑结构 (2)掌握图的邻接矩阵的存储结构 (3)验证图的邻接矩阵存储及其遍历操作的实现 2.实验内容 (1)建立无向图的邻接矩阵存储 (2)进行深度优先遍历 (3)进行广度优先遍历 3.设计与编码 #ifndef MGraph_H #define MGraph_H const int MaxSize = 10; template 南京晓庄学院 《数据库原理与应用》课程实验报告 实验四查询设计实验 所在院(系):数学与信息技术学院 班级: 学号: 姓名: 1.实验目的 (1)了解查询的目的,掌握SELECT语句的基本语法和查询条件的表示方法。 (2)掌握数据排序和数据联接查询的方法。 (3)掌握SQL Server查询分析器的使用方法。 2.实验要求 (1)针对“TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下单表查询 操作,并将将调试成功的T-SQL命令,填入实验报告中。 a)查询所有课程的详细情况。 b)查询来自江苏或山东的学生学号和姓名,并以中文名称显示输出的列名。 c)查询选修了课程的学生学号(一人选了多门课程的话,学号只显示一次)。 d)查询选修课程号为07253001的学号和成绩,并要求对查询结果按成绩降 序排列,如果成绩相同则按学号升序排列。 e)查询所有学生的学号、姓名和年龄。 f)查询选修课程号为07253001的成绩在85-95之间的学生学号和成绩,并 将成绩乘以0.7输出。 g)查询数学与信息技术学院(DEPT_ID为07)或物理与电子工程学院 (DEPT_ID为09)姓张的学生的信息。。 h)查询所有核心课程(课程名中带*的)的情况。 i)查询缺少了成绩的学生的学号和课程号,查询结果按课程号升序排列。 (2)在SQL Server查询分析器中,用T-SQL语句实现下列数据联接查询操作: a)查询每个学生的情况以及他(她)所选修的课程。 b)查询学生的学号、姓名、选修的课程名及成绩。 c)查询选修C语言程序设计且成绩为85分以上的学生学号、姓名及成绩。 d)查询和学生柏文楠是同一个民族的学生(用自身联接实现)。 e)分别用等值联接和内联接查询有授课记录的老师的姓名。 f)用外联接查询所有老师的授课情况,输出老师的工号、姓名、职称、院 系、担任的课程号和授课的学期,结果按院系和职称升序排列。如果该 老师没有授课历史,在课程号和授课的学期中显示空值 (3)在SQL Server Management Studio中新建查询,完成以上查询命令的同时,熟悉SQL编 辑器工具栏中各快捷按钮的作用。 (4)按要求完成实验报告。 实验4 类与java对象 专业:班级:姓名:学号: 实验报告文档的名称为:实验**专业班级姓名学号.doc 举例:实验4EC1姓名学号.doc 一、类的定义与对象的创建 【1】实验指导文档的实验内容一:有理数的类封装 【代码1】~【代码5】分别是什么? 【代码1】r1=new Rational(1,5); 【代码2】r2=new Rational(3,2); 【代码3】ational result=r1.add(r2) 【代码4】a=result.getNumerator(); 【代码5】b=result.getDenominator(); 在computer.java中增加计算有理数除法的代码? Rational r1; r1=new Rational(1,5); Rational r2; r2=new Rational(3,2); Rational result=r1.div(r2); 在computer.java中增加计算1+3/2+5/3+8/5+13/8………的前10项和的代码 public class Computer { public static void main(String args[]) { Rational sum; sum=new Rational(1,1); int i; for(i=2;i<11;i++){ sum=sum.add(new Rational(2*i-1,i)); } int A=sum.getNumerator(); // result调用方法返回自己的分子 int B=sum.getDenominator();// result调用方法返回自己的分母 1.使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。(5分) exec sp_rename v_spj, v_spj_三建; 2.针对SPJ数据库,创建并执行如下的存储过程:(共计35分) (1)创建一个带参数的存储过程—jsearch。该存储过程的作用是:当任意输入一个工 程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME) 以及工程的名称(JNAME)。执行jsearch存储过程,查询“J1”对应的信息。(10 分) create proc jsearch @jno char(2) as select sname, pname, jname from s,p,j,spj where s.sno=spj.sno and p.pno=spj.pno and j.jno=spj.jno and spj.jno=@jno; 执行: exec jsearch 'J1' (2)使用S表,为其创建一个加密的存储过程—jmsearch。该存储过程的作用是:当执 行该存储过程时,将返回北京供应商的所有信息。(10分) 创建加密存储过程: create proc jmsearch with encryption as select * from s where s.city='北京'; sp_helptext jmsearch; (3)使用系统存储过程sp_helptext查看jsearch, jmsearch的文本信息。(5分) 用系统存储过程sp_helptext查看jsearch: exec sp_help jsearch; exec sp_helptext jsearch; 数据结构(C语言版) 实验报告 专业班级学号姓名 实验1 实验题目:单链表的插入和删除 实验目的: 了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。 实验要求: 建立一个数据域定义为字符串的单链表,在链表中不允许有重复的字符串;根据输入的字符串,先找到相应的结点,后删除之。 实验主要步骤: 1、分析、理解给出的示例程序。 2、调试程序,并设计输入数据(如:bat,cat,eat,fat,hat,jat,lat,mat,#),测试程序 的如下功能:不允许重复字符串的插入;根据输入的字符串,找到相应的结点并删除。 3、修改程序: (1)增加插入结点的功能。 (2)将建立链表的方法改为头插入法。 程序代码: #include"stdio.h" #include"string.h" #include"stdlib.h" #include"ctype.h" typedef struct node //定义结点 { char data[10]; //结点的数据域为字符串 struct node *next; //结点的指针域 }ListNode; typedef ListNode * LinkList; // 自定义LinkList单链表类型 LinkList CreatListR1(); //函数,用尾插入法建立带头结点的单链表 LinkList CreatList(void); //函数,用头插入法建立带头结点的单链表 ListNode *LocateNode(); //函数,按值查找结点 void DeleteList(); //函数,删除指定值的结点 void printlist(); //函数,打印链表中的所有值 void DeleteAll(); //函数,删除所有结点,释放内存数据结构实验报告格式
数据结构实验报告
实验报告格式与要求
北邮数据库实验报告
数据结构实验报告全集
数据库实验报告 (4)
化学实验报告格式
数据结构实验报告模板
数据库上机实验报告4
实验报告标准范本_4
数据库实验报告4
实验报告评语
实验报告纸格式
数据结构实验报告及心得体会
数据库4实验报告
数据结构实验报告图实验
数据库原理实验报告四(有答案)
实验4实验报告格式说明
数据库实验报告1
数据结构实验报告 - 答案汇总