东北大学数据库实验报告2014

东北大学数据库实验报告2014
东北大学数据库实验报告2014

数据库实验报告

班级:计算机1105班

学号:20113263

姓名:张少杰

时间:2014年6月19日

实验(一): 熟练掌握SQL语言

实验目的:熟悉上机环境,创建数据库,在数据库上建立关系模式,插入数据,进行相应的查询操作。

实验内容:具体包括如下三部分。

一、熟悉上机环境。

客户/服务器结构,数据库服务器在一台NT服务器上,同学们通过客户机(操作系统为Windows 2000)上安装的SQL Server客户端程序, 使用SQL Server数据库服务器。具体包括:

1.了解SQL Server 环境。鼠标点击开始,进入“Microsoft SQL

Server→企业管理器”,点击SQL Server组下的数据库服务器(服务器名称为NEUC-201S(Windows NT)), 可以看到服务器上的圆形标志变为绿色,说明客户端程序已与服务器连接成功。点击服务器(NEUC-201S(Windows NT))下的数据库,可以看到服务器上已建立的数据库,你可访问你有权访问的数据库,并进行相应的操作功能。因为,数据库服务器上建有许多数据库, 每个数据库都有一些合法的用户。

2.鼠标点击开始,进入“Microsoft SQL Server→查询分析器”,输

入用户名和口令,进入SQL查询分析器。如:你登录的客户机为27号,那么请以用户名user27,口令为user27登录,登录后缺省连到数据库user27上,user27/user27是数据库user27的创建者,因此用户user27/ user27具有在数据库user27上创建表等一切权力。

3.在SQL查询分析器环境下,你就可进行SQL命令语句操作了。

二、在数据库useri上创建学生选课有关关系模式,并插入相应的

数据,实现有关查询。

1.描述学生、课程情况的E-R图如下,请将其转化为用关系数据模

型描述的关系模式

根据E-R图按如下代码建立三个表:

CREATE TABLE Student

(Sno CHAR(9) PRIMARY KEY,

Sname CHAR(20) UNIQUE,

Ssex CHAR (2),

Sage SMALLINT,

Sdept CHAR(20)

);

CREATE TABLE Course

(Cno CHAR(4) PRIMARY KEY,

Cname CHAR(40),

Cpno CHAR(4),

Credit SMALLINT,

FOREIGN KEY (Cpno) REFERENCES Course(Cno)

);

CREATE TABLE SC

(Sno CHAR(9),

Cno CHAR(4),

Grade SMALLINT,

PRIMARY KEY(Sno,Cno),

FOREIGN KEY(Sno) REFERENCES Student(Sno),

FOREIGN KEY(Cno) REFERENCES Course(Cno)

);

在Course 表中插入学时字段

alter table Course add Ctime smallint NULL

运行后建表成功。

2.在数据库中定义这些关系模式,并向基本表中插入如下数据:

INSERT

INTO Student(Sno,Sname,Ssex,Sdept,Sage)

V ALUES('201100001','张一','男','IS',18);

INSERT

INTO Student(Sno,Sname,Ssex,Sdept,Sage)

V ALUES('201100002','张二','女','IS',18);

INSERT

INTO Student(Sno,Sname,Ssex,Sdept,Sage)

V ALUES('201100003','张三','男','IS',18);

INSERT

INTO Student(Sno,Sname,Ssex,Sdept,Sage)

V ALUES('201100004','张四','女','IS',18);

INSERT

INTO Student(Sno,Sname,Ssex,Sdept,Sage)

V ALUES('201100005','张五','男','IS',18);

INSERT

INTO Student(Sno,Sname,Ssex,Sdept,Sage)

V ALUES('201100006','张六','女','IS',18);

INSERT

INTO Course(Cno,Cname,Cpno,Credit)

V ALUES('1','数据库原理',NULL,2);

INSERT

INTO Course(Cno,Cname,Cpno,Credit)

V ALUES('2','数据结构',NULL,2);

INSERT

INTO Course(Cno,Cname,Cpno,Credit)

V ALUES('3','C语言',NULL,2);

INSERT

INTO Course(Cno,Cname,Cpno,Credit)

V ALUES('4','算法',NULL,2);

INSERT

INTO Course(Cno,Cname,Cpno,Credit)

V ALUES('5','高等数学',NULL,2);

INSERT

INTO SC(Sno,Cno)

V ALUES('201100001','1');

INSERT

INTO SC(Sno,Cno)

V ALUES('201100002','2');

INSERT

INTO SC(Sno,Cno)

V ALUES('201100003','3');

INSERT

INTO SC(Sno,Cno)

V ALUES('201100004','4');

INSERT

INTO SC(Sno,Cno)

V ALUES('201100005','5');

3.插入相应的数据,试着插入重复的元组,结果如何?

INSERT

INTO SC(Sno,Cno)

V ALUES('201100005','5');

4.在已建立的关系模式之上(已插入一些数据)建立主键约束,参

照约束和用户定义的约束(要求学生年龄不小于14岁,不大于35岁),如果约束不能建立,请分析原因,修改后建立上述约束。alter table student add check (Sage between 14 and 35)

在建立主键约束前如果存在数据不满足将要建立的主键约束条件,则不能建立主键约束。先将相关数据修改为满足主键约束条件再建立主键约束则操作成功。

5.如果约束建立后,请试着插入重复元组,结果如何?试着插入重复元组,无法插入:

INSERT

INTO Student(Sno,Sname,Ssex,Sage,Sdept)

V ALUES('201100005','张五','男',18,'IS');

实验(二): 熟练掌握SQL语言

用SQL完成下列查询

1.求选修了课程的学生的学号,要求:

(1) 不使用distinct语句,写出其SQL语句

Select Sno from SC

(2) 使用distinct语句,消除重复元组,写出其SQL语句select distinct Sno from SC

(3) 如果该查询写成:

select Student.Sno from Student, SC where Student.Sno=SC.Sno

请问该查询结果和上面哪个结果是相同的?

(3) 和(1)的结果相同

2.求开设的课程号、课程名、学时和学分,要求对查询结果

的列重新命名。

select Cno MyCno ,Cname MyCname,Ctime MyCtime,Credit MyCredict from Course

3.求计算机系和数学系的学生学号、姓名和年龄。

select Sno,Sname,Sage from Student where Sdept='CS' or Student ='Math'

4.求不是数学系、计算机系的学生的情况,要求select后写*

代替列出所有的列名。

select * from Student where Student.Sdept!='CS' and Student.Sdept!='Math'

5.求全体学生的信息,要求按年龄升序排列。select * from Student order by Sage asc

6.求计算机系年龄在18~20岁之间的学生姓名和年龄。select Sname,Sage from Student where Sage>=18 and Sage<=20 and Sdept='CS'

7.求姓名是以“XX”开头的计算机系学生。

select * from Student where Sname like '张李%' and Sdept='CS'

实验(三): 熟练掌握SQL语言

1.求选修了2课程的学生的学号、姓名、成绩。

select Student.Sno,Student.Sname,SC.Grade from Student,SC where SC.Sno=Student.Sno and https://www.360docs.net/doc/4313509089.html,o=2

2.求学号为95开头的学生的学号和所选修的课程的学分。

select Student.Sno,Course.Credit from Student,SC,Course where Student.Sno like'2012%' and Student.Sno=SC.Sno and https://www.360docs.net/doc/4313509089.html,o=https://www.360docs.net/doc/4313509089.html,o

3 求选修2课程且成绩为80分以上的学生的学号、姓名和成绩。

select Student.Sno,Student.Sname,SC.Grade from Student,SC where Student.Sno=SC.Sno and https://www.360docs.net/doc/4313509089.html,o=2 and SC.Grade>80

4求计算机系每个学生的姓名,选修的课程名和成绩。

select Student.Sname,https://www.360docs.net/doc/4313509089.html,o,SC.Grade from Student,SC where Student.Sdept='CS' and Student.Sno=SC.Sno

5求每个学生的学号及平均成绩。

select Sno,A VG(Grade) from SC group by Sno

6求男学生每一年龄组中超过1人的年龄组及人数。

select Sage,Count(Sno) from Student group by Sage having Count(Sno)>1

7求每一门课程的间接先行课号。

select https://www.360docs.net/doc/4313509089.html,o,C2.Cpno from Course C1,Course C2 where C1.Cpno=https://www.360docs.net/doc/4313509089.html,o

8. 求选修了全部课程的学生的学号。

select Sno from Student where not exists (select * from Course where not exists(select * from SC where Sno=Student.Sno and Cno=https://www.360docs.net/doc/4313509089.html,o));

实验(四):数据库的安全性

实验目的:了解和使用安全子系统和检查。

实验内容:具体包括如下二部分。

一熟练掌握SQL(续)

1.修改表Students,在其中加入一个字段性别sex char(1)

CREATE TABLE Student

(Sno CHAR(9) ,

Sname CHAR(20) ,

Sage SMALLINT,

Sdept CHAR(20)

);

CREATE TABLE SC

(Sno CHAR(9),

Cno CHAR(4),

Grade SMALLINT

);

INSERT

INTO Student(Sno,Sname,Sdept,Sage)

V ALUES('201100003','张一','IS',18);

INSERT

INTO Student(Sno,Sname, Sdept,Sage)

V ALUES('201100002','张二','CS',18);

INSERT

INTO Student(Sno,Sname,Sdept,Sage)

V ALUES('201100001','张三','CS',18);

INSERT

INTO Student(Sno,Sname,Sdept,Sage)

V ALUES('201100004','张四','CS',18);

INSERT

INTO Student(Sno,Sname,Sdept,Sage)

V ALUES('201100005','张五','CS',18);

INSERT

INTO Student(Sno,Sname,Sdept,Sage)

V ALUES('201100006','张六','IS',18);

INSERT

INTO SC(Sno,Cno,Grade)

V ALUES('201100002','2',88);

INSERT

INTO SC(Sno,Cno,Grade)

V ALUES('201100002','1',98);

INSERT

INTO SC(Sno,Cno,Grade)

V ALUES('201100001','2',77);

INSERT

INTO SC(Sno,Cno,Grade)

V ALUES('201100001','1',80);

INSERT

INTO SC(Sno,Cno,Grade)

V ALUES('201100005','2',92);

alter table Student add sex char(1);

2.创建索引:在Students表的Sno上创建唯一聚簇索引, 在SC表的(Sno, Cno)

上创建唯一索引. 查询Students表的内容, 记录的顺序有变化吗? 查询SC表的内容, 记录的顺序有变化吗?

东北大学操作系统第一次实验报告

实验1:熟悉Linux系统 一、题目:熟悉Linux系统 二、目的: 熟悉与掌握Linux系统基本命令,熟悉Linux编程环境,为以后的实验打下基础。 1、启动、退出、ls(显示目录内容)、cp(文件或目录的复制)、mv(文件、目录更名或移动)、rm(删除文件或目录)、mkdir(创建目录)、rmdir(删除空目录)、cd(改变工作目录)… 2、C语言编辑、编译 三、内容及要求: 1、熟练掌握Linux基本文件命令; 2、掌握Linux编辑程序、对源代码进行编译、连接、运行及调试的过程; 3、认真做好预习,书写预习报告; 4、实验完成后要认真总结、完成实验报告。 四、内容及要求: 在Linux环境下编制、调试源程序的实际过程(每一步的具体说明)。 实验2:进程状态 一、题目:进程状态 二、目的: 自行编制模拟程序,通过形象化的状态显示,使学生理解进程的概念、进程之间的状态转换及其所带来的PCB内容、组织的变化,理解进程与其PCB间的一一对应关系。 三、内容及要求 1、设计并实现一个模拟进程状态转换及其相应PCB组织结构变化的程序; 2、独立设计、编写、调试程序; 3、程序界面应能反映出在模拟条件下,进程之间状态转换及其对应的PCB组织的变化。 4、进程的状态模型(三状态、五状态、七状态或其它)可自行选择, 5、代码书写要规范,要适当地加入注释; 6、鼓励在实验中加入新的观点或想法,并加以实现;

7、认真进行预习,完成预习报告; 8、实验完成后,要认真总结,完成实验报告。 四、程序流程图 图4、1 进程转换流程五、使用的数据结构及其说明 struct PCB //进程控制块PCB { char name; //名字标识 string state; //状态 int time; //执行时间 }; typedef struct PCB ElemType; struct QNode { ElemType data; struct QNode *next; }; //链式队列结点 typedef struct QNode QNode; //结点 typedef struct QNode *PNode;

山东大学数据库第四次实验实验报告

實驗4 視圖操作 實驗目の:掌握創建、刪除視圖のSQL語句の用法,掌握使用企業管理器創建、視圖の方法。 實驗准備: 1)了解創建視圖方法。 2)了解修改視圖のSQL 語句の語法格式。 實驗內容: 1)使用企業管理器創建視圖 a)在pubs數據庫中以authors表為基礎,建立一個名為CA_authorの視圖, 使用該視圖時,將顯示所有state為CAの作者の基本信息。 2)使用SQL語句創建視圖 a)在查詢分析器中利用author表建立一個每個作者のID,lname,fname, phone,addressの視圖S_author。 b)建立一個employee_date視圖,利用employee表中信息,顯示1991年 1月1日之後雇傭の雇員のid,name,minit,job_id。 3)刪除視圖 a)使用企業管理器S_author視圖 b)使用SQL語句刪除CA_author、employee_date視圖 實驗要求: 用不同の方法創建視圖。 實驗步驟如下: 一、使用企業管理器創建視圖 a )在pubs數據庫中以authors表為基礎,建立一個名為CA_author の視圖,使用該視圖時,將顯示所有state為CAの作者の基本信息。

①右鍵點擊pubs數據庫文件下の視圖,選擇“新建視圖”,在彈出來の“添加表”中添加表authors。 ②在“添加表”一欄中添加表authors後點擊“關閉”,並全選author表中所有項目。 ③點擊保存,從彈出來の“選擇名稱”框中輸入視圖名稱“CA_author”。

④添加名為CA_author の視圖成功。 ⑤顯示所有state為CAの作者の基本信息。

[东北大学]18年6月考试《数据库技术及应用Ⅱ》考核作业

东北大学继续教育学院 数据库技术及应用II 试卷(作业考核线上) B 卷学习中心:院校学号:姓名 (共 7 页) 一、单选题(每小题2分,共10小题,20分) [ ] 1.网状数据库中记录与记录之间的联系是通过 A.指针 B.索引 C.公共属性 D.数据项 [ ] 2.在数据库的三级模式结构中,模式有 A.0个 B.1个 C.2个 D.任意多个 [ ] 3.关系数据库中,实现主码标识元组的作用是通过 A.实体完整性规则 B.参照完整性规则 C.用户自定义的完整性 D.属性的值域 [ ] 4.设计ER图,属于数据库设计中的 A.需求分析 B.逻辑设计 C.概念设计 D.物理设计· [ ] 5. 为了使索引键的值在基本表中唯一,在建立索引的语句中应使用保留字 A. UNIQUE B. COUNT C. DISTINCT D. UNION [ ] 6.在数据库的三级模式结构中,外模式可能有 A.1个 B.2个 C.0个 D.任意多个 [ ] 7. 在某个数据库中建立了表person(no,name,sex,birthday),其中No为表的主码,表中已有的记录如下图所示:

以下四个语句中能够正确执行的插入操作是 A. INSERT INTO person VALUES(6,′王中′,′男′,′1964/03/08′) B. INSERT INTO person (name,sex) VALUES(′王中′,′男′) C. INSERT INTO person VALUES(2,′男′,′王中′,′1964/03/08′) D. INSERT INTO person(no,sex) VALUES(2,′男′) [ ] 8.下面的说法不确切的是 A. 索引用来加速数据的访问速度和保证表的实体完整性的。 B. 索引有聚簇和非聚簇索引两种。 C. 聚簇索引使表的物理顺序与索引顺序一致,一个表只能有一个群聚索引。 D. 非聚簇索引与表的物理顺序无关,一个表应该建立多个非聚簇索引。 [ ] 9. 在并发操作中,加锁不能解决的问题是 A. 数据更新丢失 B. 事务故障 C. 读未提交数据 D. 不一致性检索 [ ] 10. 用来记录对数据库中数据进行的每一次更新操作的是 A. 数据字典 B. 后援副本 C. 日志文件 D. 数据库 二、填空题(每小题1分,共10小题,10分) 11.数据模型通常由数据结构、数据操作和()三部分组成。 12.数据操作描述了系统的()特性。 13. 对数据库的操作主要有数据检索和()两大类。 14.将关系模式R分解为3NF,一定可以满足既具有无损连接性,又保持()。15.行列子集视图是指,从单个()导出,只是去掉了其中的某些行和某些列。16.嵌入式SQL引入了()机制,用来协调两种不同的处理方式. 17.系统函数为三类:标量函数、聚合函数和()函数。 18.在SQL Server的建立索引的原则之一,在经常()的字段上最好建立索引。19.一级封锁协议是指任一事务在修改某数据之前,必须先对其加上()锁,直至事务结束才能释放之。 20.触发器能够对数据库中的相关表实现()更改。 三、简答题(每小题5分,共6小题,30分) 21.数据库的三级模式描述。

40875][东北大学]20年7月考试《数据结构Ⅱ》考核作业(答案)

东北大学继续教育学院 数据结构II 试卷(作业考核线上1) A 卷 学习中心:奥鹏远程教育沈阳学习中心(直属)[32]院校学号:C09024011930344 姓名何家强 (共 6 页) [ A]1.抽象数据类型的三个组成部分分别为 A.数据对象、数据关系和基本操作 B.数据元素、逻辑结构和存储结构 C.数据项、数据元素和数据类型 D.数据元素、数据结构和数据类型 [ B]2.要求相同逻辑结构的数据元素具有相同的特性,其含义为 A. 数据元素具有同一的特点 B. 不仅数据元素包含的数据项的个数相同,而且其对应数据项的类型要一致 C. 每个数据元素都一样 D. 仅需要数据元素包含的数据项的个数相同 [ D]3.下列各式中,按增长率由小至大的顺序正确排列的是 A.n,n!,2n ,n3/2 B.n3/2,2n,n logn,2100 C.2n,log n,n logn,n3/2 D.2100,logn, 2n, n n [B ]4. 在下列哪种情况下,线性表应当采用链表表示为宜 A.经常需要随机地存取元素 B.经常需要进行插入和删除操作 C.表中元素需要占据一片连续的存储空间 D.表中元素的个数不变 [ C]5.设指针p指向双链表的某一结点,则双链表结构的对称性是 A. p->prior->next=p->next->next; B. p->prior->prior=p->next->prior; C. p->prior->next=p-> next->prior; D. p->next->next= p->prior->prior;

[D ]6. 已知指针p和q分别指向某带头结点的单链表中第一个结点和最后一个结点。假设指 针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为 A. s->next=q;p->next=s->next; B. s->next=p;q->next=s->next; C. p->next=s->next;s->next=q; D. q->next=s->next;s->next=p; [A ]7. 栈和队列的共同特点是 A.只允许在端点处插入和删除元素 B.都是先进后出 C.都是先进先出 D.没有共同点 [D ]8. 对于链队列,在进行插入运算时. A. 仅修改头指针 B. 头、尾指针都要修改 C. 仅修改尾指针 D.头、尾指针可能都要修改 [B ]9.设有一个顺序栈的入栈序列是1、2、3,则3个元素都出栈的不同排列个数为 A.4 B.5 C. 6 D. 7 [D ]10.设一个栈的输入序列为A,B,C,D,则借助一个栈所得到的输出序列不可能是 A.A,B,C,D B.D,C,B,A C. A,C,D,B D. D,A,B,C [ C]11.表达式a*(b+c)-d的后缀表达式是 A.abcd*+- B.abc*+d- C.abc+*d- D.-+*abcd [B ]12.某二叉树的先序序列和后序序列正好相反,则该二叉树的特点一定是 A. 空或只有一个结点 B.高度等于其结点数 C. 任一结点无左孩子 D.任一结点无右孩子 [ B]13.下面的说法中正确的是 (1)任何一棵二叉树的叶子结点在种遍历中的相对次序不变。 (2)按二叉树定义,具有三个结点的二叉树共有6种。 A.(1),(2) B.(1) C.(2) D.(1),(2)都错 [ B]14.树有先序遍历和后序遍历,树可以转化为对应的二叉树。下面的 说法正确的是 A.树的后序遍历与其对应的二叉树的先序遍历相同 B.树的后序遍历与其对应的二叉树的中序遍历相同 C.树的先序序遍历与其对应的二叉树的中序遍历相同 D.以上都不对 [D ]15.下列说法正确的是 (1)二又树按某种方式线索化后,任一结点均有前趋和后继的线索 (2)二叉树的先序遍历序列中,任意一个结点均处于其子孙结点前 (3)二叉排序树中任一结点的值大于其左孩子的值,小于右孩子的值 A.(1)(2)(3) B.(1)(2) C.(1)(3) D.都不对 [D ]16. 二叉树的第k层的结点数最多为 A.2k-1 B.2K+1

东北大学DIP实验一

实验一 一、插值和采样 1 (a)读入图像head.jpg并显示。 >> A=imread('C:\Documents and Settings\Administrator\桌面\head.jpg'); imshow(A) (b)计算图像维度。 >> size(A) ans = 256 256 (c)此图像大小为40cm*40cm,计算图像的采样距离。 x=40cm/256=0.15625cm=1.5625mm 同理,y=1.5625mm (d)逻辑坐标(图像坐标)为(22, 54)、(126, 241)的点,其空间坐标是多少? 逻辑坐标(图像坐标)为(22, 54)的点,空间坐标为

(22*1.5625mm,54*1.5625mm)=(34.375mm,84.375mm); 同理,逻辑坐标(图像坐标)为(126, 241)的点,空间坐标为(196.875mm,376.05625mm)。 (e)求空间坐标为(14.2188, 5.3125)、(21.4063,34.5313)处的像素值。>>b=40/256; b = 0.1563 >> x3=(14.2188/b)-1 x3 = 90.0003 >> y3=(5.3125/b)-1 y3 = 33 >> x4=floor(x3) x4 = 90 >> x5=ceil(x3) x5 = 91 >> C1=A([x4],[y3]) C1 = 115 >> C2=A([x5],[y3]) C2 = 108 >> C3=0.9997*C1+0.0003*C2 C3 = 115 >> x6=(21.4063/b)-1

东北大学软件学院数据库系统概论期末复习题

这是数据库期末复习题1 1.用SQL的有关语句定义 1)学生关系Student,包括学号Sno、姓名SN、年龄SA; 2)课程关系Course,包括课程号Cno、课程名CN、任课教师CT; 3)学生选课关系,包括Sno、Cno和成绩G。 注意:说明主键码和外键码(如果有的话),并在键码属性上建立索引。(12分) 1.参考答案 1) CREATE TABLE Student( Sno INT PRIMARY KEY, SN CHAR(30), SA INT ); 2) CREATE TABEL Course( Cno INT PRIMARY KEY, CN CHAR(30), CT CHAR(30) ); 3) CREATE TABEL SC( Sno INT, Cno INT, G INT, PRIMAYR KEY(Sno,Cno), FOREIGN KEY(Sno) REFERENCES Student(Sno), FOREIGN KEY(Cno) REFERENCES Course(Cno) ); 1.按题1的学生关系模式,用SQL的有关语句 1)授予赵华对学生关系Student的插入和修改权限; 2)插入任意3个学生的完整信息; 3)修改所有学生的年龄(加1)。(12分) 2.参考答案 1) GRANT INSERT, UPDATE, ON Student TO 赵华; 2) INSERT INTO Student (TABLE (01001,’赵华’,19),

(01002,’李芳’,18), (01003,’刘红’,20), ); 3)UPDATE Student SET SA=SA+1; 2.结合题1定义的学生选课数据库,用SQL语句查询计算机系学生数据库课的成绩,输出学生姓名和成绩,按成绩排序(降序),若成绩相同,再按 学号排序(升序)。(6分) 3.参考答案 SELECT SN,G FROM Student,Course,SC WHERE = AND = AND =’数据库’ ORDER BY G DESC,Sno; 4.已知关系R、S如下所示,求域演算表达式的结果。 R A B C S D E F a c 5 4 d 8 b d 3 5 a 1 m e 4 3 e 2 (4分) 4参考答案 4. R1 X Y Z a c 5 b d 3 m e 4 4 d 8 5.按嵌入式SQL的格式插入任意一个学生的学号、姓名、系别和年龄。(6分)5.参考答案 1)说明: EXEC SQL BEGIN DECLARE SECTION; int sno; char sname[30]; int sage; char SQLSTATE[6]; EXEC SQL END DECLARE SECTION; 赋值: sno:=01001; sname:=’赵华’; sage:=19; 4)插入: EXEC SQL INSERT INTO Student

数据结构实验-互联网域名查询实验报告

实验报告 实验课程:数据结构 实验项目:实验三互联网域名查询 专业:计算机科学与技术 班级: 姓名: 学号: 指导教师:

目录一、问题定义及需求分析 (1)问题描述 (2)实验任务 (3)需求分析 二、概要设计: (1)抽象数据类型定义 (2)主程序流程 (3) 模块关系 三、详细设计 (1)数据类型及存储结构 (2)模块设计 四、调试分析 (1)调试分析 (2)算法时空分析 (3)经验体会 五、使用说明 (1)程序使用说明 六、测试结果 (1)运行测试结果截图 七、附录 (1)源代码

一、问题定义及需求分析 (1)实验目的 互联网域名查询 互联网域名系统是一个典型的树形层次结构。从根节点往下的第一层是顶层域,如cn、com等,最底层(第四层)是叶子结点,如www等。因此,域名搜索可以看成是树的遍历问题。 (2)实验任务 设计搜索互联网域名的程序。 (3)需求分析: 1)采用树的孩子兄弟链表等存储结构。 2)创建树形结构。 3)通过深度优先遍历搜索。 4)通过层次优先遍历搜索。 二、概要设计: 采用孩子兄弟链表存储结构完成二叉树的创建; 主程序流程: 创建根节点域名输入域名拆分根据孩子兄弟链表表示的树进行插入调用层次优先遍历输出遍历结果调用深度优先遍历输出遍历结果结束程序 模块关系: 输入域名 创建孩子兄弟树 层次优先遍历输出结果 深度优先遍历输出结果 结束 三、详细设计 孩子兄弟链表结构: typedef struct CSNode{ ElemType data[10]; struct CSNode *firstchild, *nextsibling; }*CSTree;

2016年东北大学实验室安全考试 96分

1、[判断题]火灾对实验室构成的威胁最为严重,最为直接。应加强对火灾三要素(易燃物、助燃物、点火源)的控制。(分值1.0) 你的答案:正确 2、[判断题]同位素试剂是非密封型放射源。(分值1.0) 你的答案:正确 3、[判断题]内照射指放射性物质呼吸道吸入、消化道进入、皮肤伤口渗入等途径进入体内,造成 放出的射线及化学毒性对人体器官的双重损伤。(分值1.0) 你的答案:正确 4、[判断题]Ⅴ类放射源为极低危险源。不会对人造成永久性损伤。(分值1.0) 你的答案:正确 5、[判断题]辐射事故分为特别重大辐射事故、重大辐射事故、较大辐射事故和一般辐射事故四个 等级。(分值1.0) 你的答案:正确 6、[判断题]离开放射性实验室前必须洗手。(分值1.0) 你的答案:正确 7、[判断题]万用表电阻档可测量绝缘电阻。(分值1.0) 你的答案:错误 8、[判断题]50毫安的工频电流就可以使人遭到致命电击。(分值1.0) 你的答案:正确 9、[判断题]在进行电子线路板焊接后的剪脚工序时,剪脚面应背离身体特别是脸部,防止被剪下 引脚弹伤。(分值1.0) 你的答案:正确 10、[判断题]漏电保护器对两相触电(人体双手触及两相电源),不起保护作用。(分值1.0)你的答案:正确 11、[判断题]打开含有高压变压器或电容器的电子仪器的盖子是危险的。(分值1.0) 你的答案:正确 12、[判断题]声级计可放置在高温、潮湿、有污染的地方。(分值1.0) 你的答案:错误 13、[判断题]大型设备运行不需要两名以上工作人员在场。(分值1.0) 你的答案:错误 14、[判断题]高速设备和精密设备应在管理人员指导下使用。(分值1.0) 你的答案:正确 15、[判断题]消防队在扑救火灾时,有权根据灭火的需要,拆除或者破损临近火灾现场的建筑。(分值1.0)

东北大学数据库应用程序设计实践报告

课程编号:B080109004 数据库应用程序设计实践 报告 东北大学软件学院

1.问题定义 银行代收费系统给电力公司开发的一套缴费系统,方便用户通过网银支付电费。 主要的用例图: 图1 银行代收费系统用例图 根据用例图得出主要的业务需求: (1)抄表 系统管理员把抄表记录录入系统,抄表记录包括当前电表数、抄表日期、抄表人等信息,根据抄表记录,系统自动计算每个计费设备当月的应收电费。每个计费设备有唯一编号。 (2)查询 用户随时查询欠费金额。一个用户名下可能多个计费设备,查询欠费时,将所有计费设备欠费总和输出。需要考虑设备的余额问题。如果余额大于欠费,则欠费为0,更新余额,修改receivable中flag标志。 (3)缴费 在当月电费清单生成完毕后,用户可进行电费缴纳,缴纳金额可是任意金额。系统将缴费金额存入设备余额中,再次查询则欠费应该减少。 (4)冲正 用户在缴费过程中如果给其他用户缴费了,在当日0点前可以冲正,即把钱收回,放入余额,向payfee表中添加一个负数金额、相同银行流水号的记录。并且修改设备余额,此时查询欠费应该有改变。 (5)对帐 每个银行每日凌晨给电力公司的代缴费系统发送对账信息,代缴费系统记录对账结果,对账明细,对账异常信息进行存储。错误信息为100银行没有此记录。101企业没有此流水号.102银行企业金额不等。 2.数据库设计

(1)ER图设计: 自己设计的ER图: 经过老师修正统一的ER图: (2)建表语句 -- Create table create table Bank ( id number(4), name varchar2(20), code char(2) )

东北大学数据结构上机实验报告3

实验三树和图应用 一、实验目的 光纤管道铺设施工问题 问题描述 设计校园内有N个教学楼及办公楼,要铺设校园光纤网,如何设计施工方案使得工程总的造价为最省。 二、实验要求 设计校园光纤网铺设的最小生成树模拟程序。 1)采用邻接表或邻接矩阵存储结构。 2)分别采用普利姆算法和克鲁斯卡尔算法实现。 输入形式 对应的教学楼、办公楼数目n,各边权值即每栋楼之间的距离 输出形式 最小生成树,即总路程最小的路 程序功能 设计校园光纤网铺设的最小生成树模拟程序 三、设计概要 流程图 抽象数据类型的定义 class prims { private:

int n; //节点的个数 int graph_edge[99][4]; //图的边 int g; //图中边的个数 int tree_edge[99][4]; //树的边 int t; //树的边的个数 int s; //源节点 int T1[50],t1; // 第一部分 int T2[50],t2; //第二部分 public: void input(); int findset(int); void algorithm(); void output(); }; 各程序模块之间的调用关系 四、详细设计 定义prims类 private中进行对图的创建 public: void input(); int findset(int); void algorithm();

void output(); 开始界面 实现prims类中图的初始化 分别输入图中的顶点个数、图的边及其权值 算法构造 t=0;//初始化边的个数为0 t1=1; T1[1]=1; //资源节点 t2=n-1; int i; for(i=1;i<=n-1;i++) T2[i]=i+1; cout<<"\n\n*****运算开始*****\n\n\n"; while(g!=0 && t!=n-1) { int min=99; int p; int u,v,w; for(i=1;i<=g;i++) { if(findset(graph_edge[i][1])!=findset(graph_edge[i][2])) //如果u和v在不同的部分{ if(min>graph_edge[i][3]) { min=graph_edge[i][3]; u=graph_edge[i][1]; v=graph_edge[i][2]; w=graph_edge[i][3]; p=i; } } } for(int l=p;l

东北大学汇编实验

(附录二) 汇编语言程序设计 实验报告

实验1 数据传送指令 1、实验目的:了解和掌握 MOV、PUSH、POP、XCHG四条指令的作用和在编程中的用法。 2、实验要求: (Ⅰ)采用立即数寻址方式将19E0H,3F56H,0AF37H,9A81H 分别送给EAX、EBX、ECX、EDX四个寄存器。 记录:操作前 EAX= 750A3388 、 EBX= 7EFDE000 、 ECX= 00000000 、 EDX= 01361005 操作后 EAX= 000019E0 、 EBX= 00003F56 、 ECX= 0000AF37 、 EDX= 00009A81 操作过程中所用到的指令: INCLUDE Irvine32.inc .code main PROC call DumpRegs mov eax,19E0H mov ebx,eax mov ecx,ebx mov edx,ecx call DumpRegs

exit main ENDP END main (Ⅱ)采用采用寄存器寻址方式将19E0H送给EBX、ECX、EDX 三个寄存器。 记录:操作前 EAX= 750A3388 、 EBX= 7EFDE000 、 ECX= 000000000 、 EDX= 013C1005 操作后 EAX= 000019E0 、 EBX= 000019E0 、 ECX= 000019E0 、 EDX= 000019E0 操作过程中所用到的指令: INCLUDE Irvine32.inc .code main PROC call DumpRegs mov eax,19E0H mov ebx,eax mov ecx,ebx

东北大学数据库期末试卷样例

东北大学数据库期末试 卷样例 -CAL-FENGHAI.-(YICAI)-Company One1

2)R2 =σB > 2(R) 3)R3 = R S 4)R4 = Aɡsum(B)

4) Create a view BusyFaculty that records the ids and names of faculties who teach more than 3 classes. 5) Find the names of all students that enroll in a class where students meet in room R128 (i.e., Class.room = R128) or a class in which five or more than five students enroll. 6) Find the names of all students who are enrolled in two classes that meet at the same time

E→F}holds on R. 1) Give all candidate keys of this relation, motivate. (3 points) 2) Indicate all extraneous attributes in F, motivate. (3 points) 3) Is this relation in 3NF?If it is not, decompose it into relations in 3NF. (6 points)

数据结构实验二-

实 验 报 告 一、实验目的 1) 加深对图的表示法和图的基本操作的理解,并可初步使用及操作; 2) 掌握用图对实际问题进行抽象的方法,可以解决基本的问题; 3) 掌握利用邻接表求解非负权值、单源最短路径的方法,即利用Dijkstra 算法求最短 路径,同时掌握邻接表的建立以及使用方法,能够解决相关的问题; 4) 学会使用STL 中的map 抽象实际问题,掌握map ,List,,priority_queue 等的应 用。 二、实验内容与实验步骤 (1) 实验内容: 使用图这种抽象的数据结构存储模拟的欧洲铁路路线图,通过Dijkstra 算法求出欧洲旅行最少花费的路线。该实验应用Dijkstra 算法求得任意两个城市之间的最少路费,并给出路费最少的路径的长度和所经过的城市名。 (2) 抽象数据类型及设计函数描述 1) 抽象数据类型 class City : 维护一个城市的信息,包括城市名name ,是否被访问过的标记visted ,从某个城市到达该城市所需的总费用total_fee 和总路径长度total_distance ,求得最短路径后路径中到达该城市的城市名from_city 。 class RailSystem : 用邻接表模拟欧洲铁路系统,该邻接表使用数据结构map 实现,map 的key-value 课程名称:数据结构 班级: 实验成绩: 实验名称:欧洲旅行 学号: 批阅教师签字: 实验编号:实验二 姓名: 实验日期:2013 年6 月 18 日 指导教师: 组号: 实验时间:

值对的数据类型分别为string和list<*Service>,对应出发城市名和该城市与它能 够到达的城市之间的Service链表。 class Service: 为铁路系统模拟了两个城市之间的直接路线,包括两个城市之间直接到达的费用 fee,两城市之间的直接距离distance。 部分设计函数描述 ●RailSystem(const string& filename) 构造函数,调用load_services(string const &filename)函数读取数据 ●load_services(string const &filename) 读取传入的文件中的数据并建立上述两个map以模拟欧洲铁路路线图 ●reset(void) 遍历cities图,初始化所有城市的信息:visted未访问,total_distance最大 值,total_fee费用最大值,from_city为空 ●~RailSystem(void) 析构函数,用delete将两个map中所有使用new操作符开辟的空间删除 ●void output_cheapest_route(const string& from, const string& to, ostream& out); 输出两城市间的最少费用的路径,调用calc_route(string from, string to)函 数计算最少费用 ●calc_route(string from, string to) 使用Dijkstra算法计算from和to两个城市间的最少费用的路径 (3)采用的存储结构 1)map > outgoing_services 用来保存由一个城市出发可以直接到达的城市名及这两个城市之间的路径信息。 2)list 以service为指针的list表,保存两城市间的路径。 3)map cities 用来保存所有城市信息,通过城市名查找该城市有关信息。 4)priority_queue, Cheapest> candidates 存储候选的遍历城市,City*是优先队列存储的对象类型,vector是该对象的向量集合,Cheapest是比较规则。 三、实验环境 操作系统:Windows 8 调试软件:Microsoft visual studio 2012 上机地点:综合楼311 机器台号:笔记本

东北大学操作系统第一次实验报告

实验1:熟悉Linux系统 一、题目:熟悉Linux系统 二、目的: 熟悉和掌握Linux系统基本命令,熟悉Linux编程环境,为以后的实验打下基础。 1、启动、退出、ls(显示目录内容)、cp(文件或目录的复制)、mv(文件、目录更名或移动)、rm(删除文件或目录)、mkdir(创建目录)、rmdir(删除空目录)、cd(改变工作目录)… 2、C语言编辑、编译 三、内容及要求: 1、熟练掌握Linux基本文件命令; 2、掌握Linux编辑程序、对源代码进行编译、连接、运行及调试的过程; 3、认真做好预习,书写预习报告; 4、实验完成后要认真总结、完成实验报告。 四、内容及要求: 在Linux环境下编制、调试源程序的实际过程(每一步的具体说明)。 实验2:进程状态 一、题目:进程状态

二、目的: 自行编制模拟程序,通过形象化的状态显示,使学生理解进程的概念、进程之间的状态转换及其所带来的PCB内容、组织的变化,理解进程与其PCB间的一一对应关系。 三、内容及要求 1、设计并实现一个模拟进程状态转换及其相应PCB组织结构变化的程序; 2、独立设计、编写、调试程序; 3、程序界面应能反映出在模拟条件下,进程之间状态转换及其对应的PCB 组织的变化。 4、进程的状态模型(三状态、五状态、七状态或其它)可自行选择, 5、代码书写要规范,要适当地加入注释; 6、鼓励在实验中加入新的观点或想法,并加以实现; 7、认真进行预习,完成预习报告; 8、实验完成后,要认真总结,完成实验报告。 四、程序流程图

图4.1 进程转换流程五、使用的数据结构及其说明 struct PCB //进程控制块PCB { char name; //名字标识 string state; //状态 int time; //执行时间 }; typedefstruct PCB ElemType; structQNode { ElemType data; structQNode *next; }; //链式队列结点 typedefstructQNodeQNode; //结点 typedefstructQNode *PNode; typedefstruct { PNodefrnt; PNode rear;

东北大学数据结构实验报告

. / 实验报告 课程名称:数据结构班级:实验成绩: 实验名称:顺序表和链表的应用学号:批阅教师签字: 实验编号:实验一:实验日期:2017-11-25 指导教师:组号:实验时间:18:30~22:30 一、实验目的 (1)掌握线性表的基本操作(插入、删除、查找)以及线性表合并等运算在顺序存储结构、链式存储结构上的实现。重点掌握链式存储结构实现的各种操作。 (2)掌握线性表的链式存储结构的应用。 二、实验内容与实验步骤 (1)实验内容: 实现约瑟夫环,约瑟夫环(Joseph)问题的一种描述是:编号为1、2、3……n的n个人按照顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按照顺时针的方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他的顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。设计一个程序求出出列顺序。 (2)抽象数据类型和设计的函数描述,说明解决设想。 首先定义一个链表,用其中的data项存储每个人的编号,用password项存储每个人所持有的密码,并且声明一个指针。之后使用CreatList_CL函数来创建一个循环链表,在其中的data和password中存入编号和密码,最后使最后一个节点的next指向L,使其能够形成循环队列。定义了函数Display来显示链表当中的内容,以确定存储的数据没有错误。定义了函数Delete_L来实现约瑟夫环中依次删除的功能,依次比较,如果某个人所持的密码和m值相等,则删除这个结点,并且输出此时该结点的编号和密码,实现出列的功能。 (3)简短明确地写出实验所采用的存储结构,并加以说明。 该实验我主要采用的是线性表的链式存储结构,首先定义了链表的结构,其中包括data 项和password项,分别存储每个人的编号和所持密码,还声明了指向下一个结点的指针,该指针可以连接各个结点,并且将最后一个结点的指针指向第一个结点使之成为一个循环链表。 三、实验环境 操作系统:Windows 7 调试软件名称:Visio Studio2017 上机地点:信息楼B405 四、实验过程与分析 (1)主要的函数或操作内部的主要算法,分析这个算法的时、空复杂度,并说明设计的巧妙之处。

东北大学c++实验报告

实验六 1?实验要求 (1)定义Point类,有坐标_x, _y两个成员变量;对Point类重载牛+ ”(自增)、“一-(自减)运算符,实现对坐标值的改变。 (2)定义一个车(vehiele)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。观察虚函数的作用。 2.实验容及实验步骤 (1)编写程序定义Point类,在类中定义整型的私有成员变量_x_y,定义成员函数Point& operato叶+() ; Point operato叶+(int);以实现对Point 类重载++ ”(自增)运算符,定义成员函数Point& operator ------------------------------ ();Point operator -------- (int);以实现对Point类重载(自减)运算符,实现对坐标值的改变。程序名:1ab8_1. cpp。 ⑵编写程序定义一个车(vehicle)基类,有Run、Stop等成员函数,由此派 生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。在main()函数中定义vehicle、bicycle、motorcar、motorcycle 的对象,调用其Run()、Stop()函数,观察其执行情况。再分别用vehicle类型的指针来调用这几个对象的成员函数,看看能否成功;把Run、Stop定义为虚函数,再试试看。程序名:lab8_2. cpp。 3.源程序 Lab8 1 #in clude using n amespace std;

数据库实验报告4

数据库-实验报告4 学号:11122604 姓名:陆亮 第4周(第四章:数据更新、视图、嵌入式SQL部分自学) 一、实验课: 1.建立计算机学院总评不及格成绩学生的视图,包括学生学号、姓名、性别、手机、所选 课程和成绩。 2.在E表中插入记录,把每个学生没学过的课程都插入到E表中,使得每个学生都选修每 门课。 3.求年龄大于所有女同学年龄的男学生姓名和年龄。 4.在E表中修改08305001课程的平时成绩,若成绩小于等于75分时提高5%,若成绩大于 75分时提高4%。 5.删除没有开课的学院。//删除记录而不是表。删除表要用其他。 6.查询优、良、中、及格、不及格学生人数 二,代码: create view student_fail(xh,xm,xb,sjhm,kh,zpcj)as(select distinct S.xh,S.xm,S.xb,S.sjhm,E.kh,E.zpcj from S,E where S.xh=E.xh and E.zpcj<'60'); insert into E select distinct S.xh,O.xq,O.kh,O.gh ,null,null,null from S,O where not exists(select*from E where E.xh =S.xh and E.kh =O.kh ); select S.xm,S.csrq from S where S.csrq<(select min(csrq)from S group by S.xb having xb ='女') update E set pscj = pscj*1.04 where pscj>75; update E set pscj = pscj*1.05 where pscj<75; delete from D where yxh not in(select yxh from T ,O where T.gh = O.gh)

东北大学数据结构实验报告

实验报告 课程名称:数据结构班级:实验成绩: 实验名称:顺序表和链表的应用学号:批阅教师签字: 实验编号:实验一:实验日期:2017-11-25 指导教师:组号:实验时间:18:30~22:30 一、实验目的 (1)掌握线性表的基本操作(插入、删除、查找)以及线性表合并等运算在顺序存储结构、链式存储结构上的实现。重点掌握链式存储结构实现的各种操作。 (2)掌握线性表的链式存储结构的应用。 二、实验容与实验步骤 (1)实验容: 实现约瑟夫环,约瑟夫环(Joseph)问题的一种描述是:编号为1、2、3……n的n个人按照顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按照顺时针的方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他的顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。设计一个程序求出出列顺序。 (2)抽象数据类型和设计的函数描述,说明解决设想。 首先定义一个链表,用其中的data项存储每个人的编号,用password项存储每个人所持有的密码,并且声明一个指针。之后使用CreatList_CL函数来创建一个循环链表,在其中的data和password中存入编号和密码,最后使最后一个节点的next指向L,使其能够形成循环队列。定义了函数Display来显示链表当中的容,以确定存储的数据没有错误。定义了函数Delete_L来实现约瑟夫环中依次删除的功能,依次比较,如果某个人所持的密码和m 值相等,则删除这个结点,并且输出此时该结点的编号和密码,实现出列的功能。 (3)简短明确地写出实验所采用的存储结构,并加以说明。 该实验我主要采用的是线性表的链式存储结构,首先定义了链表的结构,其中包括data 项和password项,分别存储每个人的编号和所持密码,还声明了指向下一个结点的指针,该指针可以连接各个结点,并且将最后一个结点的指针指向第一个结点使之成为一个循环链表。 三、实验环境 操作系统:Windows 7 调试软件名称:Visio Studio2017 上机地点:信息楼B405 四、实验过程与分析 (1)主要的函数或操作部的主要算法,分析这个算法的时、空复杂度,并说明设计的巧妙之处。

东北大学图像处理实验报告

计算机图像处理实验报告 哈哈哈哈哈哈实验台31 1.应用MATLAB语言编写显示一幅灰度图像、二值图像、索引图像及 彩色图像的程序,并进行相互之间的转换 1)彩色图像转换为灰度图像、索引图像、二值图像 A=imread('F:\colorful.jpg'); subplot(221);imshow(A);title('彩色图像'); I1=rgb2gray(A); subplot(222);imshow(I1);title('灰度图像'); [X1,map]=rgb2ind(A,256); subplot(223);imshow(X1);title('索引图像'); BW=im2bw(A); subplot(224);imshow(BW);title('二值图像'); 彩色图像灰度图像 索引图像二值图像

2)灰度图像转换为索引图像、二值图像 clear A=imread('F:\colorful.jpg'); B=rgb2gray(A); subplot(131);imshow(B);title('灰度图像'); [X2,map]=gray2ind(B,128); subplot(132);imshow(X2);title('索引图像'); BW2=im2bw(B); subplot(133);imshow(BW2);title('二值图像'); 灰度图像索引图像二值图像 3)索引图像转为灰度图像、二值图像、彩色图像 clear A=imread('F:\colorful.jpg'); [X,map]=rgb2ind(A,256); subplot(221);imshow(X);title('索引图像'); I3=ind2gray(X,map); subplot(222);imshow(I3);title('灰度图像'); BW3=im2bw(X,map,0.5); subplot(223);imshow(BW3);title('二值图像'); RGB=ind2rgb(X,map); subplot(24);imshow(RGB);title('还原彩色图像'); 索引图像灰度图像 二值图像还原彩色图像

相关文档
最新文档