数据结构第二次实验报告

数据结构第二次实验报告
数据结构第二次实验报告

软件实验报告

专业:网络工程课程:数据结构

学号:131124007姓名:郑小玉班级:13级

数据结构第二实验

8583 顺序栈的基本操作 时间限制:1000MS 内存限制:1000K 提交次数:530 通过次数:212 题型: 编程题语言: 无限制 Description 创建一个空的顺序栈,并实现栈的入栈、出栈、返回栈的长度、返回栈顶元素、栈的遍历等基本算法。请将下面的程序补充完整。 #include #include #define OK 1 #define ERROR 0 #define STACK_INIT_SIZE 100 // 存储空间初始分配量 #define STACKINCREMENT 10 // 存储空间分配增量 typedef int SElemType; // 定义栈元素类型 typedef int Status; // Status是函数的类型,其值是函数结果状态代码,如OK等 struct SqStack { SElemType *base; // 在栈构造之前和销毁之后,base的值为NULL SElemType *top; // 栈顶指针 int stacksize; // 当前已分配的存储空间,以元素为单位 }; // 顺序栈 Status InitStack(SqStack &S) { // 构造一个空栈S,该栈预定义大小为STACK_INIT_SIZE // 请补全代码 } Status Push(SqStack &S,SElemType e) { // 在栈S中插入元素e为新的栈顶元素 // 请补全代码 }

Status Pop(SqStack &S,SElemType &e) { // 若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERROR // 请补全代码 } Status GetTop(SqStack S,SElemType &e) { // 若栈不空,则用e返回S的栈顶元素,并返回OK;否则返回ERROR // 请补全代码 } int StackLength(SqStack S) { // 返回栈S的元素个数 // 请补全代码 } Status StackTraverse(SqStack S) { // 从栈顶到栈底依次输出栈中的每个元素 SElemType *p = (SElemType *)malloc(sizeof(SElemType)); p = ______________________ //请填空 if(______________________)printf("The Stack is Empty!"); //请填空 else { printf("The Stack is: "); p--; while(______________________) //请填空 { printf("%d ", *p); ______________________ //请填空 } } printf("\n"); return OK; } int main() {

数据结构实验报告格式

《数据结构课程实验》大纲 一、《数据结构课程实验》的地位与作用 “数据结构”是计算机专业一门重要的专业技术基础课程,是计算机专业的一门核心的关键性课程。本课程较系统地介绍了软件设计中常用的数据结构以及相应的存储结构和实现算法,介绍了常用的多种查找和排序技术,并做了性能分析和比较,内容非常丰富。本课程的学习将为后续课程的学习以及软件设计水平的提高打下良好的基础。 由于以下原因,使得掌握这门课程具有较大的难度: (1)内容丰富,学习量大,给学习带来困难; (2)贯穿全书的动态链表存储结构和递归技术是学习中的重点也是难点; (3)所用到的技术多,而在此之前的各门课程中所介绍的专业性知识又不多,因而加大了学习难度; (4)隐含在各部分的技术和方法丰富,也是学习的重点和难点。 根据《数据结构课程》课程本身的技术特性,设置《数据结构课程实验》实践环节十分重要。通过实验实践内容的训练,突出构造性思维训练的特征, 目的是提高学生组织数据及编写大型程序的能力。实验学时为18。 二、《数据结构课程实验》的目的和要求 不少学生在解答习题尤其是算法设计题时,觉得无从下手,做起来特别费劲。实验中的内容和教科书的内容是密切相关的,解决题目要求所需的各种技术大多可从教科书中找到,只不过其出现的形式呈多样化,因此需要仔细体会,在反复实践的过程中才能掌握。 为了帮助学生更好地学习本课程,理解和掌握算法设计所需的技术,为整个专业学习打好基础,要求运用所学知识,上机解决一些典型问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握所用到的一些技术。数据结构中稍微复杂一些的算法设计中可能同时要用到多种技术和方法,如算法设计的构思方法,动态链表,算法的编码,递归技术,与特定问题相关的技术等,要求重点掌握线性链表、二叉树和树、图结构、数组结构相关算法的设计。在掌握基本算法的基础上,掌握分析、解决实际问题的能力。 三、《数据结构课程实验》内容 课程实验共18学时,要求完成以下六个题目: 实习一约瑟夫环问题(2学时)

数据库实验2实验报告 2

数据库第二次试验报告 PB10011020 刘思轶实验内容 本实验有两个可选题目,旅游出行和药品免疫库。本程序即为旅游出行的一个实现。 实验原题摘要如下 数据关系模式: 航班FLIGHTS( String flightNum, int price, int numSeats, int numAvail, String FromCity, StringArivCity); 宾馆房间HOTELS( String location, int price, int numRooms, int numAvail);出租车CARS( String location, int price, int numCars, int numAvail);客户CUSTOMERS( String custName); 预订情况RESERVATIONS( String resvKey, String custName, int resvType) 系统基本功能: 1.航班,出租车,宾馆房间和客户基础数据的入库,更新(表中的属性也可以根据你的需要添加)。 2.预定航班,出租车,宾馆房间。 3.查询航班,出租车,宾馆房间,客户和预订信息。 4.查询某个客户的旅行线路。 5.检查预定线路的完整性。 6.其他任意你愿意加上的功能。 程序功能 本系统由旅行服务提供商运营,发布在支持PHP + MySQL 的服务器上。 系统默认有三个角色,游客、用户和管理员。它们的权限如下 1、游客 查询当前航班、旅馆和出租车的预订情况; 2、注册用户 游客的所用权限; 查询当前预订; 预订航班、旅馆和出租车; 退订航班、旅馆和出租车。 打印旅行路线 检查预定路线的完整性。 检查航班的完备性 3、管理员 注册用户的所用权限

数据结构实验报告

数据结构实验报告 一.题目要求 1)编程实现二叉排序树,包括生成、插入,删除; 2)对二叉排序树进行先根、中根、和后根非递归遍历; 3)每次对树的修改操作和遍历操作的显示结果都需要在屏幕上用树的形状表示出来。 4)分别用二叉排序树和数组去存储一个班(50人以上)的成员信息(至少包括学号、姓名、成绩3项),对比查找效率,并说明在什么情况下二叉排序树效率高,为什么? 二.解决方案 对于前三个题目要求,我们用一个程序实现代码如下 #include #include #include #include "Stack.h"//栈的头文件,没有用上 typedefintElemType; //数据类型 typedefint Status; //返回值类型 //定义二叉树结构 typedefstructBiTNode{ ElemType data; //数据域 structBiTNode *lChild, *rChild;//左右子树域 }BiTNode, *BiTree; intInsertBST(BiTree&T,int key){//插入二叉树函数 if(T==NULL) { T = (BiTree)malloc(sizeof(BiTNode)); T->data=key; T->lChild=T->rChild=NULL; return 1; } else if(keydata){ InsertBST(T->lChild,key); } else if(key>T->data){ InsertBST(T->rChild,key); } else return 0; } BiTreeCreateBST(int a[],int n){//创建二叉树函数 BiTreebst=NULL; inti=0; while(i

数据库实验报告完整

华北电力大学 实验报告 | | 实验名称数据库实验 课程名称数据库 | | 专业班级:学生姓名: 学号:成绩: 指导教师:实验日期:2015/7/9

《数据库原理课程设计》课程设计 任务书 一、目的与要求 1.本实验是为计算机各专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力 而设置的实践环节。通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。 为后继课程和毕业设计打下良好基础。 2.通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。 3.通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界 面设计和软件调试等各方面的能力。是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。 二、主要内容 针对一个具有实际应用场景的中小型系统(见题目附录)进行数据库设计,重点分析系统涉及的实体、实体之间的联系,实现增加、删除、更新、查询数据记录等基本操作。大致分为如下步骤: 1. 理解系统的数据库需求,分析实体及实体间联系,画出E-R图: 1)分析确定实体的属性和码,完成对该实体的实体完整性、用户自定义完整性的定义。 2)设计实体之间的联系,包括联系类型和联系的属性。最后画出完整的E-R图。 2.根据设计好的E-R图及关系数据库理论知识设计数据库模式: 1)把E-R图转换为逻辑模式; 2)规范化设计。使用关系范式理论证明所设计的关系至少属于3NF并写出证明过程;如果不属于3NF则进行模式分解,直到该关系满足3NF为止,要求写出分解过程。 3)设计关系模式间的参照完整性,要求实现级联删除和级联更新。 4)用SQL语言完成数据库内模式的设计。 3.数据库权限的设计: 1)根据系统分析,完成授权操作; 2)了解学习收回权限的操作。 4.完成用户界面的设计,对重要数据进行加密。

数据库原理实验报告二.pdf

LIAOCHENG UNIVERSITY 计算机学院实验报告 【2015 ~2016 学年第 2 学期】 【一、基本信息】 【实验课程】数据库原理与应用 【设课形式】独立□非独立【课程学分】 【实验项目】实验二、SQL数据操作及查询 【项目类型】基础综合□设计□研究创新□其它[ ]【项目学时】4【学生姓名】傅雪晨【学号】59 【系别专业】电子商务 【实验班组】 【同组学生】 【实验室名】综合实验楼 【实验日期】【报告日期】 【二、实验教师对报告的最终评价及处理意见】 实验成绩:(涂改无效) 指导教师签名:年月日注:要将实验项目、实验课程的成绩评定及课程考核办法明确告知学生,并报实验管理中心备案

【三、实验预习】 实验条件(实验设备、软件、材料等): 实验2 SQL数据操作及查询 实验目的: 1. 向实验1建立的表中添加数据(元组), 掌握INSERT语句的用法; 2. 修改基本表中的数据, 掌握UPDATE语句的用法; 3. 删除基本表中的数据,掌握DELETE语句的用法; 4. 体会数据完整性约束的作用, 加深对数据完整性及其约束的理解。 5. 熟练掌握SELECT语句,能够运用该语句完成各种查询。 实验内容: 1.使用INSERT语句将教材P82表中的数据添加到数据库STUDENTDB中. 2. Insert into student59 select'1','李勇','男','20','CS','',''union select'2','刘晨','女','19','CS','',''union select'3','王敏','女','18','MA','',''union select'5','张立','男','19','IS','','' select*from student59 select*from course59 select*from sc59 alter table course59NOCHECK Constraint fk_cpno Insert into course59 select'1','数据库','5','4'union select'2','数学','','2'union select'3','信息系统','1','4'union select'4','操作系统','6','3'union select'5','数据结构','7','4'union select'6','数据处理','','2'union select'7','PASCAL语言','6','4' alter table course59CHECK Constraint FK_course59_course59 Insert into sc59 select'1','1',92 union select'1','2',85 union select'1','3',88 union select'2','2',90 union select'2','3',80 alter table sc59CHECK Constraint fk_S_c alter table sc59NOCHECKConstraint fk_S_c

数据结构(第4版)习题及实验参考答案数据结构复习资料完整版(c语言版)

数据结构基础及深入及考试 复习资料 习题及实验参考答案见附录 结论 1、数据的逻辑结构是指数据元素之间的逻辑关系。即从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。 2、数据的物理结构亦称存储结构,是数据的逻辑结构在计算机存储器内的表示(或映像)。它依赖于计算机。存储结构可分为4大类:顺序、链式、索引、散列 3、抽象数据类型:由用户定义,用以表示应用问题的数据模型。它由基本的数据类型构成,并包括一组相关的服务(或称操作)。它与数据类型实质上是一个概念,但其特征是使用与实现分离,实行封装和信息隐蔽(独立于计算机)。 4、算法:是对特定问题求解步骤的一种描述,它是指令的有限序列,是一系列输入转换为输出的计算步骤。 5、在数据结构中,从逻辑上可以把数据结构分成( C ) A、动态结构和表态结构 B、紧凑结构和非紧凑结构 C、线性结构和非线性结构 D、内部结构和外部结构 6、算法的时间复杂度取决于( A ) A、问题的规模 B、待处理数据的初态 C、问题的规模和待处理数据的初态 线性表 1、线性表的存储结构包括顺序存储结构和链式存储结构两种。 2、表长为n的顺序存储的线性表,当在任何位置上插入或删除一个元素的概率相等时,插入一个元素所需移动元素的平均次数为( E ),删除一个元素需要移动的元素的个数为( A )。 A、(n-1)/2 B、n C、n+1 D、n-1 E、n/2 F、(n+1)/2 G、(n-2)/2 3、“线性表的逻辑顺序与存储顺序总是一致的。”这个结论是( B ) A、正确的 B、错误的 C、不一定,与具体的结构有关 4、线性表采用链式存储结构时,要求内存中可用存储单元的地址( D ) A、必须是连续的 B、部分地址必须是连续的C一定是不连续的D连续或不连续都可以 5、带头结点的单链表为空的判定条件是( B ) A、head==NULL B、head->next==NULL C、head->next=head D、head!=NULL 6、不带头结点的单链表head为空的判定条件是( A ) A、head==NULL B、head->next==NULL C、head->next=head D、head!=NULL 7、非空的循环单链表head的尾结点P满足( C ) A、p->next==NULL B、p==NULL C、p->next==head D、p==head 8、在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是( B ) A、O(1) B、O(n) C、O(n2) D、O(nlog2n) 9、在一个单链表中,若删除p所指结点的后继结点,则执行( A )

数据结构实验报告全集

数据结构实验报告全集 实验一线性表基本操作和简单程序 1.实验目的 (1)掌握使用Visual C++ 6.0上机调试程序的基本方法; (2)掌握线性表的基本操作:初始化、插入、删除、取数据元素等运算在顺序存储结构和链表存储结构上的程序设计方法。 2.实验要求 (1)认真阅读和掌握和本实验相关的教材内容。 (2)认真阅读和掌握本章相关内容的程序。 (3)上机运行程序。 (4)保存和打印出程序的运行结果,并结合程序进行分析。 (5)按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果 实验代码: 1)头文件模块 #include iostream.h>//头文件 #include//库头文件-----动态分配内存空间 typedef int elemtype;//定义数据域的类型 typedef struct linknode//定义结点类型 { elemtype data;//定义数据域 struct linknode *next;//定义结点指针 }nodetype; 2)创建单链表

nodetype *create()//建立单链表,由用户输入各结点data域之值,//以0表示输入结束 { elemtype d;//定义数据元素d nodetype *h=NULL,*s,*t;//定义结点指针 int i=1; cout<<"建立一个单链表"<> d; if(d==0) break;//以0表示输入结束 if(i==1)//建立第一个结点 { h=(nodetype*)malloc(sizeof(nodetype));//表示指针h h->data=d;h->next=NULL;t=h;//h是头指针 } else//建立其余结点 { s=(nodetype*) malloc(sizeof(nodetype)); s->data=d;s->next=NULL;t->next=s; t=s;//t始终指向生成的单链表的最后一个节点

数据库应用及开发实验报告

课程名:数据库应用与开发时间:2014.9.11 实验一安装SQL Server 2008和Visual Studio2010 一、实验目的 学习和掌握SQL Server 2008 命名实例的安装,启动和连接服务器。 二、实验器材 486及以上微机,Windows xp/7/vista操作系统,安装了SQL SERVER。 三、实验容和步骤 1、SQL Server 2008的安装 (1)将安装盘放入光驱,光盘会自动运行。在开始界面中选择“服务器组件、工具,联机丛 书和示例命令,执行安装程序” (2)接受许可条款和条件,安装必备组件;使用Sql server 安装向导;进行“系统配置检查”; 输入相关注册信息;选择需要升级或安装的组件,如图1.1 (3)单击下一步按钮,在出现的实例的命令方式为命名示例,并输入实例名称,单击下一步 按钮继续进行安装。 (4)根据向导完成SQLServer2008 的安装。 图附1.1“安装中心”对话框

图附1.2“支持规则”对话框 图附1.3“服务器配置”对话框 (5)参考教材安装Microsoft Visual Studio 2010 2、visual studio2010的安装 步骤抄书(课本P22) 四、实验结果 能够按要求安装SQL Server 2008数据库管理系统软件和visual studio2010 软件,并认识和体验SQL Server 2008软件的功能。 五、实验心得 课程名:数据库应用与开发时间:2014.9.18 实验二创建数据库和修改数据库 一、实验目的与要求 1、熟悉数据库的创建命令的使用 2、学会查看和修改数据库 3、学会删除数据库 二、实验器材 微机+windows操作系统+SQL SERVER2008+SSMS 三、实验容 1.在D盘根目录下创建一个数据库db_temp,该数据库中有两个数据文件,其中主数据文件db_temp.mdf为10MB,最大大小为100MB,按10MB方式增长,一个数据文件db_temp1.ndf,,初始大小为10MB,最大大小为不限制,按10%增长,db_temp_log1,db_temp_log两个日志

数据库实验报告二

《数据库原理》实验报告 实验三: 数据库完整性与安全性控 制 实验四: 视图与索引 学号姓名 班级日期 2013302534 杨添文10011303 2015.10.1 7 实验三:数据完整性与安全性控制 一、实验内容 1.利用图形用户界面对实验一中所创建的Student库的S表中,增加以下的约束和索引。 (18分,每小题3分) (1)非空约束:为出生日期添加非空约束。 (2)主键约束:将学号(sno)设置为主键,主键名为pk_sno。 (3)唯一约束:为姓名(sname)添加唯一约束(唯一键),约束名为uk_sname。 (4)缺省约束:为性别(ssex)添加默认值,其值为“男”。 (5)CHECK约束:为SC表的成绩(grade)添加CHECK约束,约束名为ck_grade,其检查 条件为:成绩应该在0-100之间。

(6)外键约束:为SC表添加外键约束,将sno,cno设置为外键,其引用表为分别是S 表和C表,外键名称分别为fk_sno,fk_cno。 2.在图形用户界面中删除上小题中已经创建的各种约束,用SQL语言分别重新创建第1小题中的(2)-(6)小题。(15分,每小题3分,提示:alter table add constraint)(2)alter table s add constraint pk_sno primary key(sno) (3)alter table s add constraint uk_sname unique(sname) (4)alter table s add constraint a default('男')for ssex (5) alter table sc add constraint ck_grade check(grade between 0 and 100) (6) alter table sc add constraint fk_sno foreign key(sno)references s(sno) alter table sc add constraint fk_cno foreign key(cno)references c(cno)

数据结构实验报告模板

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&List) //单链表排序 ListClear(&L); //将单链表L中的所有元素删除,使单链表变为空表 ListDestroy(&L);//将单链表销毁 }ADT List 其他函数: 主函数; 结点类; 约瑟夫函数 2.1 存储结构

[内容要求] 1、存储结构:顺序表、单链表或其他存储结构,需要画示意图,可参考书上P59 页图2-9 2.2 关键算法分析 结点类: template class CirList;//声明单链表类 template class ListNode{//结点类定义; friend class CirList;//声明链表类LinkList为友元类; Type data;//结点的数据域; ListNode*next;//结点的指针域; public: ListNode():next(NULL){}//默认构造函数; ListNode(const Type &e):data(e),next(NULL){}//构造函数 Type & GetNodeData(){return data;}//返回结点的数据值; ListNode*GetNodePtr(){return next;}//返回结点的指针域的值; void SetNodeData(Type&e){data=e;}//设置结点的数据值; void SetNodePtr(ListNode*ptr){next=ptr;} //设置结点的指针值; }; 单循环链表类: templateclass CirList { ListNode*head;//循环链表头指针 public: CirList(){head=new ListNode();head->next=head;}//构造函数,建立带头节点的空循环链表 ~CirList(){CirListClear();delete head;}//析构函数,删除循环链表 void Clear();//将线性链表置为空表 void AddElem(Type &e);//添加元素 ListNode *GetElem(int i)const;//返回单链表第i个结点的地址 void CirListClear();//将循环链表置为空表 int Length()const;//求线性链表的长度 ListNode*ListNextElem(ListNode*p=NULL);//返回循环链表p指针指向节点的直接后继,若不输入参数,则返回头指针 ListNode*CirListRemove(ListNode*p);//在循环链表中删除p指针指向节点的直接后继,且将其地址通过函数值返回 CirList&operator=(CirList&List);//重载赋

数据库实验报告实验二

湘潭大学 数据库实验报告 实验名称SQL操作 班级软件工程一班 指导老师郭云飞(老师)学生姓名汤能武 系(院)信息工程学院实验时间2011年12月

SQL操作 一、实验目的 1.了解和掌握MS SQL Server 工具的使用; 2.熟悉掌握SQL' 3.训练学生设计与编写过程,函数与触发器的能力; 二、实验环境 1. 硬件:数据库服务器,客户机,局域网; 2.软件:MS SQL Server 2008 ,建模软件; 三、实验内容 根据给定的问题建立数据库模型,在MS SQL Management Studio 中建立该数据库,并利用SQL语句建立表格与视图,录入数据,进行查询,插入,删除,修改等操作,编写过程,函数,触发器等; 给定问题如下: 1.一个学校有若干教学楼和若干班; 2.一个教室有若干教室和若干管理人员; 3.一间教室只有一个管理人员,但一个管理人员可以管理若干个教室; 4.每周7天,每周上午,下午,晚上都可以安排上课,每周的课表都不变; 5.一间教室或班在一段时间内只能安排一堂课,但可以是合班上课;

四、实验准备 1.理论知识预习及要求 ①使用SQL语句建立数据库; ②使用SQL语句进行查询,修改等操作; ③使用SQL语句建立过程,函数,触发器等; ④使用SQL创建数据表; 2.实验指导书预习及要求 上机前先预习数据库原理指导书的实验,理解和掌握SQL语言的常用操作。 五、实验原理或操作要点简介 注意服务器要先启动,才能与服务器建立连接。 使用SQL命令,完成预定功能。 六、实验步骤 1. 分析给定问题,设计E-R 模型;

2.根据E-R图设计出该问题的关系数据模型,分析数据模型并规范之;关系模型

SQL数据库实验报告 实验二

实验2 SQL Server数据库的管理 1.实验目的 (1)了解SQL Server 数据库的逻辑结构和物理结构的特点。 (2)掌握使用SQL Server管理平台对数据库进行管理的方法。 (3)掌握使用Transact-SQL语句对数据库进行管理的方法。 2.实验内容及步骤 (1)在SQL Server管理平台中创建数据库。 ①运行SQL Server管理平台,在管理平台的对象资源管理器中展开服务器。 ②右击“数据库”项,在快捷菜单中选择“新建数据库”菜单项。在新建数据库对话框的数据库名称文本框中输入学生管理数据库名studentsdb,单击“确定”按钮。 (2)选择studentsdb数据库,在其快捷菜单中选择“属性”菜单项,查看“常规”、“文件”、“文件组”、“选项”、“权限”和“扩展属性”等页面。 (3)打开studentsdb数据库的“属性”对话框,在“文件”选项卡中的数据库文件列表中修改studentsdb数据文件的“分配的空间”大小为2MB。指定“最大文件大小”为5MB。修改studentsdb数据库的日志文件的大小在每次填满时自动递增5%。 (4)单击“新建查询”打开查询设计器窗口,在查询设计器窗口中使用Transact-SQL 语句CREATE DA TABASE创建studb数据库。然后通过系统存储过程sp_helpdb查看系统中的数据库信息。 (5)在查询设计器中使用Transact-SQL语句ALTER DATABASE修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小为1MB。 (6)在查询设计器中为studb数据库增加一个日志文件,命名为studb_Log2,大小为5MB,最大文件大小为10MB。 (7)使用SQL Server管理平台将studb数据库的名称更改为student_db。 (8)使用Transact-SQL语句DROP DATABASE删除student_db数据库。 3.实验思考 (1)数据库中的日志文件是否属于某个文件组? (2)数据库中的主数据文件一定属于主文件组吗? (3)数据文件和日志文件可以在同一个文件组吗?为什么? (4)删除了数据库,其数据文件和日志文件是否已经删除?是否任何人都可以删除数据库? (5)能够删除系统数据库吗?

数据结构第二次实验报告

数据结构与算法分析课程设计报告 课题名称: A Text Editor Imlementation 提交文档学生姓名:苟丁 提交文档学生学号: 0843042229 同组成员名单:无 指导教师姓名:孙界平 指导教师评阅成绩: 指导教师评阅意见: . . 提交报告时间:2010 年 5 月 7 日

1. 实验题目:带括号的算术表达式求值 2. 实验的目的和要求: 1.采用C++的ASCII码文件和串函数实现; 2.熟练掌握串运算的应用; 3.熟练掌握计算机系统的基本操作方法,了解如何编辑、编译、链接和运行一 个C++程序; 4.上机调试程序,掌握查错、排错使程序能正确运行 3.实验的环境: 1、硬件环境:联想笔记本电脑,Intel(R) Pentium(R) Dual T3400 ,2GB内存 2、软件环境:Windows XP 下的Microsoft Visual Studio 2008 4.算法描述: ●具体操作与函数描述 (1)编辑一个文本文件,命名为text.txt. (2)函数run()提供给用户选择符的输入:w,r,I,d,f,c,q,h,n,p,b,e,g,v. 用户可以选择H选择符寻求帮助,得知操作符分别代表的动作。 (3) R代表函数Read()将文本读入缓冲区,缓冲区以前的任何内容都将将消失。 (4) W代表函数Write()将缓冲区的内容写入文本文件。 (5) I代表函数Insert()插入新行,用户可以在适当的提示下键入新行并提供新行。 (6) D代表delete()行数所执行的删除操作,可以删除当前行,并进入下一行。 (7) F代表函数findChar(),用于查找目标行。 (8) C代表函数changLine(),将用户请求的字符串修改成用户请求的替换文本,可选择的是仅在当前行中有效。 (9) Q代表函数quit(),用户执行此命令可以退出编辑。 (10)N代表函数next(),用户可以从当前行移到下一行。 (11)P代表函数pre(),用户可以从当前行移到下一行。 (12)E代表end(),可以移到最后一行。 (13)G代表go(),用户可以指定到选择的行。 (14)V查看缓冲区的全部内 ●测试程序说明:

数据库实验报告2.

实验报告 ( 2015 / 2016 学年第 2 学期)题目:数据库系统原理 专业:物联网工程 学生: 班级学号: 指导教师: 指导单位:物联网学院 日期: 2016-5-12

实验名称:约束、视图、索引与存储过程 一、 实验容和要求 1、用create database 命令创建电影数据库(以自己的学号命名)。 2、在电影数据库中用create table 命令创建如下5个关系模式。 3、用alter table 命令修改movies 关系模式,增加引用完整性约束cproducerc ,要求movies 表中的producerC 必须是在MovieExec 表中已有的导演。若违反了此约束,则拒绝更新操作。 4、用alter table 命令修改StarsIn 关系模式,增加引用完整性约束cmovies ,要求StarsIn 表中的电影名称和年份必须是在movies 表中已有的电影名称和年份。若违反了此约束,则拒绝更新操作。 5、用alter table 命令修改movies 关系模式,增加完整性约束cyear ,要求电影年份不能是1915年以前的。 6、用alter table 命令修改movies 关系模式,增加完整性约束clength ,要求电影长度不能小于60也不能多于250。 7、设计数据对3~6的容进行验证。 8、用create view 命令创建如下视图。 a)视图RichExec 给出了所有资产在10000000以上的导演的、地址、证书号和资产; b)视图StudioPress 给出了既是电影公司经理又是导演的那些人的名字、地址和证书号; c)视图ExecutiveStar 给出了既是演员又是导演的那些人的名字、地址、性别、生日、证书号和资产总值。 9、用create index 命令在StarsIn 的StarName 属性上创建索引aindex 。 10、编写存储过程(函数) ① 求产品数据库Laptop 存容量的平均值和总和。 然后调用该存储过程(函数)。 二、 实验环境 PostGreSQL9.3 三、 实验设计 CREATE TABLE Movies ( title char(20), year int, length int, genre char(10), studioName char (30), producerC int, PRIMARY KEY (title, year ));CREATE TABLE MovieStar ( name char(12), address char(30), gender char(2), birthdate date, PRIMARY KEY (name ));CREATE TABLE StarsIn ( movieTitle char(20), movieYear int, starName char(12), PRIMARY KEY (movieTitle , movieYear , starName ));CREATE TABLE MovieExec ( name char(12), address char(30), cert int, netWorth int, PRIMARY KEY (cert ));CREATE TABLE Studio ( name char(30), address char(30), presC int, PRIMARY KEY (name )); 说明: Movies 关系中,title 为电影名称、year 为发行年份、length 为电影长度(分钟)、genre 为电影流派、studioName 为电影公司名称、producerC 为导演证书号;MovieStar 关系中,name 为影星的姓名、address 为影星住址、gender 为性别、birthdate 为出生日期;StarsIn 关系中,movieTitle 为电影名称、movieYear 为发行年份、starName 为参演影星姓名;MovieExec 关系中,name 导演姓名、address 为住址、cert 为导演证书号、netWorth 为导演净资产值;Studio 关系中,name 为电影公司名称、address 为电影公司地址、presC 为电影公司老总证书号。

北京邮电大学数据结构第二次实验车厢重排实验报告

数据结构实验报告 实验名称:实验二——车厢重排 学生姓名: 班级: 班内序号: 学号: 日期: 1.实验要求 (1)、实验目的: ①进一步掌握指针、模板类、异常处理的使用 ②掌握栈的操作的实现方法 ③掌握队列的操作的实现方法 ④学习使用栈解决实际问题的能力 ⑤学习使用队列解决实际问题的能力 (2)、实验内容: 一列货车共有n节车厢,每个车厢都有自己的编号,编号范围从1~n。给定任意次序的车厢,通过转轨站将车厢编号按顺序重新排成1~n。转轨站共有k个缓冲轨,缓冲轨位于入轨和出轨之间。开始时,车厢从入轨进入缓冲轨,经过缓冲轨的重排后,按1~n的顺序进入出轨。缓冲轨按照先进先出方式,编写一个算法,将任意次序的车厢进行重排,输出每个缓冲轨中的车厢编号。 2. 程序分析 2.1 存储结构 链队列: 2.2 关键算法分析 (1)、入队操作:(时间复杂度为O(1)) ①.建立新结点:rear->next=new Node ②.移动队尾指针:rear=rear->next

③.赋值:rear->data=x ④.将新结点的next指针域赋为空:rear->next=NULL 入队结构示意图如下: (2)、出队操作:(时间复杂度为O(1)) 算法伪代码如下: ①.保存队头元素指针:Node*p=front->next; ②.如果为空队则抛出异常:if(!p)throw"下溢"; ③.原队头元素出列:front->next=p->next; ④.保存队头数据:T x=p->data; ⑤.释放原队头:delete p; ⑥.若队列变为空队,修改队尾指针:if(!(front->next))rear=front; ⑦.返回出队数据:return x; 出队结构示意图如下: (3)、查找队头元素:(时间复杂度为O(1)) 算法分析:1.如果是空队列,则抛出异常:if (!(front->next))throw"上溢"; 2. 否则返回队头元素:return front->next->data; (4)、查找队尾元素:(时间复杂度为O(1)) 算法分析:1.如果是空队列,返回0:if(rear==front) return 0; 2.否则返回队尾元素return rear->data; (5)、车厢重排函数:(时间复杂度为O(n)) 算法分析:1. 建立k+2个新队列:LinkQueue *rail; rail=new LinkQueue[k+2] 2.将n节乱序的车厢放进入轨:cin>>arr[j]; rail[k].EnQueue(arr[j]) 3. 将入轨中的车厢放进缓冲轨中,设置一个变量判断车厢是否成功放进缓冲轨: while((i

数据结构实验报告及心得体会

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;ia[i+1].score[j]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; flag=1; } for(i=0;ia[i+1].score[j]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; flag=1;

相关文档
最新文档