天津理工大学中加计算机数据库实验二

合集下载

天津理工大学计算机专业数据库实验二

天津理工大学计算机专业数据库实验二

实验报告学院(系)名称:计算机与通信工程学院姓名范学号2009 专业计算机科学与技术班级中加4班实验项目数据库控制与编程课程名称数据库系统概论课程代码实验时间2011年11月29日实验地点主校区7—219批改意见成绩教师签字:一.实验目的以一种开发环境为例,使学生初步掌握通过编程的方式对数据库进行操作,为进行数据库课程设计做准备。

二.实验工具软硬件环境编写访问数据库的应用程序来对数据库进行各种数据操作,编程工具由导师指定,学生可以使用指导老师指定的工具,也可自己选择编程工具。

软件环境:Windows 2000MS SQL Server硬件环境:P4 2.4GHz 256内存三.实验内容和要求所有的SQL操作均在自己建立的TEMP数据库里进行,根据以下要求认真填写实验报告,并且提交源程序,保证可正确编译运行。

使用SQL对数据进行完整性控制,用实验验证:当操作违反了完整性约束条件的时候,系统是如何处理的。

熟悉存储过程的建立及使用,熟悉带输入参数和输出参数的存储过程。

I.使用SQL对数据进行完整性控制,用实验验证:当操作违反了完整性约束条件的时候,系统是如何处理的。

II.熟悉存储过程的建立及使用,熟悉带输入参数和输出参数的存储过程。

a)查询学生表中的所有学生,并实现调用。

b)修改学号为@sno学生的姓名,性别,年龄,系别,并实现调用。

c)向学生表中插入学生,并实现调用。

d)查询姓名为@sname选修的数据库课程的成绩,并实现调用。

e)查询选修了课程名为@cname并且成绩高于该门课程平均分的学生学号和成绩,并实现调用。

III.利用指定的编程语言完成一个简单程序,要求具有对数据的增加、修改和删除操作;基于一个给定的java应用程序,熟悉掌握建立ODBC和利用ODBC来凝结数据库的编程方法,建立一个应用程序,具有向学生、课程、选课表增加修改删除记录的功能,选取其中一个功能用存储过程实现。

需要接取程序运行界面。

天津理工大学计算机专业数据库实验一

天津理工大学计算机专业数据库实验一

实验报告学院(系)名称:计算机与通信工程学院姓名范学号2009 专业计算机科学与技术班级中加4班实验项目数据库创建与交互式SQL数据操作课程名称数据库系统概论课程代码0660096实验时间2011年10月19日实验地点主校区7—219批改意见成绩教师签字:一、实验目的二、实验的软硬件环境软件环境:Windows 2000MS SQL Server硬件环境:P4 2.4GHz 256内存三、实验内容1.熟悉SQL2008基本操作:包括服务器的启动、关闭;数据的备份、恢复;交互式SQL 窗口的打开;基本的可视化数据操作。

2.创建数据库,建立基本表,用SQL语句建立所需要的基本表,不得少于三个,并插入元组(课本第三章3.3节例1-7,全做)。

3.基本表的修改与删除(课本第三章3.3节例8-12,全做)。

4.索引的建立与删除(课本第三章3.3节例13-15,全做)5.针对单个基本表的查询。

(课本第三章3.4节例1-例32,任选6个查询,覆盖单条件、多条件、去除重复行、使用别名、排序子句的使用、在目标列中包含一些计算值以及分组子句的使用等。

6.多表连接查询(课本第三章3.4节例33-例38,任选5个)。

7.嵌套查询(课本第三章3.4节例39-例47,任选5个)。

8.集合查询(课本第三章3.4节例48-例52,任选3个)。

9.复杂更新操作,带子查询的插入、修改和删除(选做)10.个人自拟题目实验前准备工作:供应商-工程-零件”应用场景概念模型(用E-R图表示)概念模型转换成关系模型:S:主码:SNO;外码:SNO数据类型和约束条件:SNO CHAR(3),SNAME VARCHAR(5),STAT SMALLINT,CITY CHAR(20) P:主码: PNO外码:PNO数据类型和约束条件:PNO CHAR(3),PNAME VARCHAR(20),COLOR CHAR(2),WEIGHT_ SMALLINT,J:主码:JNO外码:JNO数据类型和约束条件:JNO CHAR(3),JNAME VARCHAR(20),CITY CHAR(5) SPJ:数据类型和约束条件:SNO CHAR(3),PNO CHAR(3),JNO CHAR(3),QTY INT,四、实验过程及结果实验所基于的表供应商表S(SNO,SNAME,STAT,CITY);零件表P(PNO,PNAME,COLOR,WEIGHT);工程项目表J(JNO,JNAME,CITY);供应情况表SPJ(SNO,PNO,JNO,QTY);1.打开SQL Server 2008登录如图:使用默认设置单击连接登录2.新建数据库:自己输入一个数据库名称3.单机系统的新建查询开始进行各类查询操作:4.使用SQL语言在数据库fanjixiang中创建表:供应商表SCREATE TABLE S(SNO CHAR(3) PRIMARY KEY , //以SNO作为主键SNAME V ARCHAR(50),STAT SMALLINT,CITY CHAR(20));单机执行后刷新表刷新后如图表S建立成功!依次创建零件表P 工程项目表J 供应情况表SPJ所有表建好后如图一共有四个表表的建立和删除建立student表删除表student5.向表中添加元组向S表中插入元素时,若重复插入,由于设置了主键,所以会报错所有元素插入完后右键单击表刷新,查看表S中的内容说明所有都插入成功~6.删除,修改表中的元祖的值以P表为例P表给P表增加一新列名为"Product_Date",执行以下代码效果图删除PNO="P4"的行,执行刷新之后的效果图为:PNO="P4"的行已删除将P3的名称改为"螺丝刀",执行以下代码之后效果如图最后完善P表如图7.J表,8.SPJ表如图9.索引的建立与删除(以P,J表为例)P表中建立以WEIGTH_为降序的聚簇索引查看索引文件中有在J表中建立以JNO降序的唯一索引执行代码为查看索引文件中有是唯一的。

天津理工大学C#实验二学习资料

天津理工大学C#实验二学习资料

天津理工大学C#实验二实验报告学院(系)名称:计算机科学与工程学院textBox3.Text = (x * y).ToString();}}private void Form1_Load(object sender, EventArgs e) {}}}运行结果:2、Timer 组件的使用,要求利用 Timer 组件实现一时钟。

代码实现:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace _2._2{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){timer1.Tick += new EventHandler(timer1_Tick);timer1.Interval = 1000;timer1.Start();}private void timer1_Tick(object sender, EventArgs e){textBox1.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");}}}运行结果:3、ComboBox 控件的使用已知数组 data 中存放政治面貌的值,试将 data 中的值初始化到 ComboBox控件中,并实现当选中某个值时将其显示在一个 TextBox 控件中。

代码实现:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace _2._3{public partial class Form1 : Form{string[] data = {"中共党员","共青团员","群众","民主党派","无党人士","其他"};public Form1(){InitializeComponent();}private void label2_Click(object sender, EventArgs e){}private void Form1_Load(object sender, EventArgs e){for (int i = 0; i < data.Length; i++){comboBox1.Items.Add(data[i]);}}private void comboBox1_SelectedIndexChanged(object sender, EventArgs e){textBox1.Text = comboBox1.Text;}}}运行结果:4、ListView 控件的使用将二维数组中的信息在 ListView 控件中。

天津理工大学数据库实验一

天津理工大学数据库实验一

实验报告学院(系)名称:计算机与通信工程学院
4.实验报告
①建立的三个表的内容。

②书写的SQL语句和执行结果。

②书写的SQL语句和执行结果。

1)查询信息系和计算机系的学生,并按学生所在系和学号排序。

2)查询学生表中最小的年龄。

③查询课程名中包含“设计”的课程名
④查询先行课程为空值的课程号、课程名及学分。

⑤查询marci选修的数据库课程的成绩
⑥查询平均成绩80分以上的学生的学号。

⑦求计算机系没有选修数据库课程的学生姓名。

⑧求至少选修了学号为S1所选修的全部课程的学生学号
⑨求各系的系的学生人数的,并将结果按学生人数的降序排序。

⑩查询选修了数据库课程并且成绩高于该门课程平均分的学生学号和成绩
3)执行复杂SQL语句
(1) 将学习了数据库课程的学生成绩加5分
(2) 将李勇的数据库成绩改为85。

(kevin)
(3) 将选修了2号课程且成绩为空的选课记录删除。

(由于没有涉及成绩为空,所以结果是图上显示的效果) (4) 从课程表中删除在选课表中没有选课记录的课程记录。

(5) 求各系的系名及男女生人数并将结果保存到另一个表中。

(6) 将平均成绩80分以上的学生的学号,选学的课程数和平均成绩保存到另一个表中。

(7) 创建一个视图,查询没有选修课程的学生学号、姓名和所在系,并利用该视图查询所有没有选修课程的学生信息。

(8) 创建一个视图,求选修了2号课程且成绩高于该门课程平均分的学生学号和成绩。

(我不清楚错误出在哪里)。

理工大学数据库实验报告

理工大学数据库实验报告
4.集合查询
例如,查询计算机科学系的学生以及年龄不及十九岁的学生:
Select *
Form student
Where sdept = ‘cs’
Union
Select *
From student
Where sage < 19
三.视图操作
例如,建立信息系学生的视图:
Create view
IS_student
where
Sname='刘晨');
查询选修了课程名为“信息系统”的学生学号和姓名.
select Sno,Sname
from student where
Sno in
(select Sno from sc
Where
Cno in
(select
Cno from course
where
Cname='信息系统'));
查询所有姓刘的学生的姓名、学号和性别。
select Sname,Sno,Ssex from student where Sname like '刘%';
2.连接查询
例如,查询每个学生及其选修课程的情况:
select student.*,sc.*
from student,sc
where student.Sno=sc.Sno
打开SQL SERVER配置管理器工具,单击“SQL SERVER2005服务”
节点,其中的“SQL SERVER”服务就是我们所说的数据库引擎。与SQL
SERVER 2000一样,可以通过这个配置管理器来启动、停止所安装的服
务,如“SQLSERVER(MSSQLSERVER)”。
3.了解RDBMS系统的体系结构。

操作系统---实验二

操作系统---实验二

实验报告学院(系)名称:计算机与通信工程学院【实验过程记录(源程序、测试用例、测试结果及心得体会等)】一.处理机调度算法的实现:(见如下算法表)二.代码的实现:#include <stdio.h>#include <stdlib.h>typedef struct pcb{int name;int right;int needt;}PCB;typedef PCB SeqList[7]; //声明所要创建的索引表用来存放各个进程的信息void inputPro(SeqList R){ //初始化及输入所需要的进程的所有信息包括进程名,int i; //优先级以及运行时间R[0].name=0;R[0].right=0;R[0].needt=0;R[6].name=0;R[6].right=0;R[6].needt=0;printf("------请输入五个进程的信息------\n\n");for(i=1;i<=5;i++) {printf("请输入进程第%d个进程信息:\n",i);scanf("%d,%d,%d",&(R[i].name),&(R[i].right),&(R[i].needt));}}void insertSort(SeqList M,int n,int count){ //利用顺序索引表来对各个进程按照其各自int i,j; //优先级进行排序for(i=n;i<=count;i++)if(M[i].right>=M[i-1].right){M[0]=M[i];for(j=i-1;M[0].right>=M[j].right;j--)M[j+1]=M[j];M[j+1]=M[0];}}void move_PCB(SeqList S){ //对排好的进程选出优先级最大的进程,然后进行输出其PCB *p,*s; //信息,进而使之后的满足条件的进程同样输出int count=5,n=2;s=S;s=s+1;p=s;insertSort(S,n,count);while(s->name!=0){if(s->needt==0){s=s+1;p=s;count--;n++;}printf("当前进程名是%d,当前优先级是:%d,剩余时间是:%d,运行之后的信息是:\n\n",s->name,s->right,s->needt);s->right=s->right-1;s->needt=s->needt-1;printf("\n --当前运行的进程--\t--优先级--\t--时间--\n\n");printf("---%d---\t\t---%d---\t\t---%d---\n\n",s->name,s->right,s->needt);insertSort(S,n,count);}printf("全部进程运行完毕\n\n");}void main() //主函数通过调用上述函数,从而实现本次试验的功能效果{SeqList A;inputPro(A);move_PCB(A);}三.实例测试:四.实验的心得体会:在本次实验中,我没有利用链式队列将各个进程进行排序,而是选用数组来对进程的排序进行处理,在今后的实验中希望自己能够多利用指针来处理问题。

天津理工大学数据结构实验报告2

天津理工大学数据结构实验报告2
栈底的位置固定不变,栈顶的位置随着进栈和退栈操作而动态变化,所以顺序栈需要 一个变量top来指示当前栈顶的位置。 1.1 初始化栈 为顺序栈分配连续的栈空间,同时置空栈; 1.2 判断栈是否为空栈 空栈标志为:栈顶指针=栈底指针; 1.3 销魂栈 栈为空则返回1,否则返回0; 1.4 进栈操作 首先判断栈的状态,若未满,则top+1,然后将入栈元素置于栈顶指针top所指的存储单元 中,使之指向新的栈顶,若栈满,发生"上溢",程序退出。 1.5 退栈操作 首先判断栈的状态,若不空,则top-1,使其指向新的栈顶,若为空,发生"下溢",程序 退出。 2. 运用顺序栈结构实现回文问题
Байду номын сангаас
int judge_huiwen(char a[],int n){ //判断一个字符串是否是回文 SeqStack *s; s=InitStack(); int i=1,j=1; while(i<=n/2){ Push(s,a[i]); i++; } if(n%2!=0)i++; while(i<=n&&j==1){ if(a[i]==Pop(s)) i++; else{j=0; break; } } return j;
使用栈,将字符串的前一半入栈,再依次出栈,与后一半进行比较,若不相等,则不 是回文,否则是回文 2.1 初始化栈s; 2.2 利用i记录循环次数,i的初始值为1,循环直到i=字符串的一半时结束 字符串下标为i的字符依次入栈。 2.3 若字符串长度为偶数,i值不变,否则i+1; 2.4 利用while循环,依次比较下标为i的字符串中的字符与出栈元素是否相等,以j=1, 作为标志,若不等j=0并打断循环 2.5 返回j的值,j=1,则字符串是回文,否则不是回文 3. 主函数 3.1 首先输入字符串的长度,然后依次输入字符; 3.2 输出字符串; 3.3 调用函数判断字符串是否是回文。

大二数据库实验报告

大二数据库实验报告

大二数据库实验报告1.引言1.1 概述概述部分的内容应该对整个实验和实验报告进行简要介绍和概括。

可以从以下几个方面进行撰写:概述部分主要从以下几个方面进行撰写:1. 引入数据库实验的背景:可以描述数据库实验是大学计算机科学专业中重要的实践环节之一,通过实验可以加深对数据库管理系统的理解和应用,并提高学生的实践能力和问题解决能力。

2. 对实验目标的概述:可以说明本次实验的主要目的是通过设计和实现一个小规模数据库系统,熟悉数据库的基本操作和编程接口,掌握数据库设计和管理的基本要点。

3. 对实验内容的概述:可以简要介绍实验涉及的主要内容,如数据库的概念和基本原理、关系型数据库的设计和实现、SQL语言的基本操作、数据库表的创建和查询等方面。

同时,可以提及实验所使用的工具和技术,如MySQL数据库管理系统、SQL编程语言等。

4. 对实验报告结构的概述:可以提及实验报告的整体结构,介绍本报告的章节组成和每个章节的主要内容,以帮助读者了解报告的组织架构和阅读顺序。

以上是概述部分的内容撰写建议,可以结合实际情况进行适当调整和扩充。

文章结构部分的内容:本实验报告共包含三个主要部分,即引言、正文和结论。

首先,引言部分(Chapter 1)是整篇实验报告的开篇之章,用于引入该实验的背景和目的,使读者对实验的内容有一个初步的了解。

在引言部分,我们将首先对本次实验进行概述(1.1 概述),介绍该实验的基本背景、研究领域和应用场景。

然后,我们将对本报告的文章结构进行介绍(1.2 文章结构),概括性地列出报告的主要章节和各个章节的内容概要。

最后,我们将明确本次实验的目的(1.3 目的),说明在本次实验中我们需要实现的具体目标和解决的问题。

接下来,正文部分(Chapter 2)是实验报告的核心,包含了本次实验的详细过程、实验设计、实验结果以及相应的分析和讨论。

在正文部分的第一个要点(2.1 第一个要点)中,我们将详细介绍本次实验的背景和相关的理论知识,对数据库的概念、结构和操作进行深入阐述。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告
学院(系)名称:计算机与通信工程学院
姓名学号专业计算机科学与技术(中加)班级2011级实验项目数据库控制与编程
课程名称数据库与功能分析课程代码0666226
实验时间2013.11.21 实验地点7-215
批改意见成绩
教师签字:
1.实验目的
1) 熟悉完整性约束创建;
2) 熟悉存储过程的调用;
3) 熟悉带输入参数和输出参数的存储过程。

2.实验工具
MS SQL server
3.实验要求
完整性验证实验:
(1)建立一个完整性约束,要求学生年龄在21-25之间。

并通过插入一个18岁的学生进行验证。

(2)建立触发器,要求当插入的学生成绩低于60时按60分对待。

针对以下要求建立存储过程并调用:
(1)查询学生表中的所有学生,并实现调用。

(2)根据学生的学号,查询该生的详细信息,并实现调用。

(3)根据学生的学号,查询学生的姓名(姓名为输出参数),并实现调用。

(4)删除学号为@sno的学生,并实现调用。

(5)修改学号为@sno学生的姓名,性别,年龄,系别,并实现调用。

(6)向学生表中插入学生,并实现调用。

(7)查询姓名为@sname选修的数据库课程的成绩,并实现调用。

(8)查询选修了课程名为@cname并且成绩高于该门课程平均分的学生学号和成绩,并实现调用。

【实验过程记录(源程序、测试用例、测试结果及心得体会等)】。

相关文档
最新文档