第一篇:数据库实验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、管理员
注册用户的所用权限 添加航班、旅馆和出租车信息; 更改航班、旅馆和出租车信息; 注册用户;
更改用户密码和权限; 删除注册用户; 查询用户预订; 取消用户预订; 查询用户旅行线路。
运行平台
本系统在Windows 7 32位 下由PHP-now虚拟的网络运行平台上测试.所需环境为: PHP Apache MySQL PhmyAdmin 环境搭建
打开集成环境php-now文件夹,点击init.cmd,会自动安装所需环境 接着在PHP后台中载入所需要的表
CREATE TABLE FLIGHTS(flightNum varchar(30), price int(6), numSeats int(6), numAvail int(6), FromCity varchar(30), ArivCity varchar(30), PRIMARY KEY(flightNum));CREATE TABLE HOTELS(location varchar(30), price int(6), numRooms int(6), numAvail int(6), PRIMARY KEY(location));CREATE TABLE CARS(location varchar(30), price int(6), numCars int(6), numAvail int(6), PRIMARY KEY(location));CREATE TABLE CUSTOMERS(custName varchar(30), password varchar(50), type varchar(20), PRIMARY KEY(custName));CREATE TABLE RESERVATIONS(resvKey int(20)AUTO_INCREMENT, custName varchar(30), resvType varchar(20), detail varchar(20), PRIMARY KEY(resvKey));
该程序所实现的功能
1.登录功能
登陆者身份分为游客和管理员,在数据库中信息都存放在customer表中,区别为type项不同,管理员为admin,游客为users,决定了权限不同.(1)普通游客登录后界面
(2)管理员登陆后界面
2.查询功能
登入http://127.0.0.1 可以选择查询航班,旅馆和出租车.3.游客-预订功能
4.游客-管理预订信息功能
点击自己的id可进入该功能页面,可以看到自己的旅游路线和预订信息,并可以取消预订.5.游客-检查线路完整性功能
当游客预订了从A到B的机票,则必须检查啊在A定了车(去机场),在B订了车和旅馆(下飞机后坐车和住宿),以此实现完整性检查.在从nanjing to beijing的旅游路线后面点击check,会提示游客还需要在nanjing预订汽车,在beijing预定旅馆。
6.管理员-管理航班,旅馆和出租车表
可以有insert delete 和update 几种操作.delete:
直接点击cancel就可删除相应的信息。insert & update: 点击edit后,程序会自动将想要编辑的行的信息填入供管理员编辑,不用再手动输入。
7.管理员-管理用户表
可以添加新用户,对用户的权限升级,查看用户信息.用户的密码是md5加密保存的。
实验小结
仍然存在的问题: 1.软件界面过于简单,仅仅实现了功能没有在用户可用性上多做考虑。
2.新用户想要登录该系统预订必须要由管理员登入信息后才可操作。缺少了游客注册的功能。
3.不能根据用户的需求点对点得查询相应信息,只能罗列出所有的信息。
实验心得: 1.在搭建PHP环境中遇到了许多问题:如用户权限不够,域名已使用使得Apache-20安装不成功,通过网上查阅资料解决问题。
2.了解到自己对问题的调研还是不足,如旅游系统,各种表之间到底应该怎么建立关系,哪些项是主键,自己建的表中的信息是否已经充足了,参照现实中旅游系统才能不断完善.
第二篇:实验报告格式--实验2
实验报告一、二、三、四、五、六、七、实验名称:分析PL0词法分析程序 试验目的 学习PL0程序的词法分析程序GenSym的实现过程 结合具体的程序了解词法分析过程 实验设备 PC兼容机 DOS操作系统或Windows操作系统 TurboPascal软件等 实验要求 独立完程序的分析过程 自己跟踪程序的执行过程 记录程序的执行过程 记录程序的运行结果 实验内容 实验过程记录 源程序
第三篇:数据库原理及技术实验报告2
《数据库原理及技术》实验报告
姓名: 莫鸿斌
学号:201601030137
班级:2016级计算机科学与技术
实验日期: 2018-3-16
一、实验项目
了解SQL Server2012常用组件
二、实验目的
1.掌握SQL Server Management Studio的运用; 2.掌握SQL Server 2012常用组件;
3.如何使用SQL Server Management Studio创建数据库及表。
三、实验内容
1.了解SQL Server2012常用组件;
2.使用SQL Server management studio创建数据库factory,要求将数据库文件factory_data.MDF存放在E:data下面,其文件初始大小5MB,自动按5MB增长,将事务日志文件factory_log.LDF存放在E:data目录下,其文件大小按1MB自动增长。3.在数据库factory下创建如下表: 职工表(职工号(int),姓名(char(10)),性别(char(2)),出生日期(datetime),党员否(bit),参加工作时间(datetime),部门号(int)),其中职工号作为主键。部门表(部门号(int),部门名(char(10)),其中部门号作为主键。工资表(职工号(int),发放年份(int),发放月份(int),工资(decimal(6,1))),其中职工号、年份、月份作为主键。
4.建立第三步创建的表之间的参照完整性规则。5.在上述表中输入数据,每个表至少10条记录。6.备份数据库,考走以备下次试验使用。
四、实验环境
安装有SQL Server2008的PC一台。
五、实验步骤及结果
1.了解SQL Server2012常用组件;
2.使用SQL Server management studio创建数据库factory;要求将数据库文件factory_data.MDF存放在E:data下面,其文件初始大小5MB,自动按5MB增长,将事务日志文件factory_log.LDF存放在E:data目录下,其文件大小按1MB自动增长。
3.在数据库factory下创建如下表: 职工表(职工号(int),姓名(char(10)),性别(char(2)),出生日期(datetime),党员否(bit),参加工作时间(datetime),部门号(int)),其中职工号作为主键。部门表(部门号(int),部门名(char(10)),其中部门号作为主键。工资表(职工号(int),发放年份(int),发放月份(int),工资(decimal(6,1))),其中职工号、年份、月份作为主键。
4.建立第三步创建的表之间的参照完整性规则。
5.在上述表中输入数据,每个表至少10条记录。
6.备份数据库,考走以备下次试验使用。
六、结论及思考
第四篇:重庆邮电大学数据库实验2
二叉树操作 实验日志
指导教师: 黎贵友 实验时间: 2010 年 某 月 某 日 学院 : 计算机科学与技术学院 专业: 计算机科学与技术 班级: 3110903 学号 : 2009214458 姓名: 骆潇龙 实验室: S331-b 实验目的:掌握二叉树的定义、性质及存储方式,各种遍历算法。
实验要求:采用二叉树链表作为存储结构,完成二叉树的建立,先序、中序和后序以及按层次遍历的操作,求所有叶子及结点总数的操作。
实验主要步骤:
1、分析、理解程序 #include“stdio.h” #include“string.h” #include“stdlib.h” #include“ctype.h” #define Max 20
//结点的最大个数 typedef struct node { char data;
struct node *lchild,*rchild;}BinTNode;
//自定义二叉树的结点类型 typedef BinTNode *BinTree;
//定义二叉树的指针
int NodeNum,leaf;
//NodeNum为结点数,leaf为叶子数
//==========基于先序遍历算法创建二叉树============== //=====要求输入先序序列,其中加入虚结点“#”以示空指针的位置===== BinTree CreatBinTree(void){
BinTree T;
char ch;
if((ch=getchar())=='#')return(NULL);
//读入#,返回空指针
else {
T=(BinTNode *)malloc(sizeof(BinTNode));
//生成结点
T->data=ch;
T->lchild=CreatBinTree();
//构造左子树
T->rchild=CreatBinTree();
//构造右子树
{
int hl,hr,max;
if(T){
hl=TreeDepth(T->lchild);
//求左深度
hr=TreeDepth(T->rchild);
//求右深度
max=hl>hr? hl:hr;
//取左右深度的最大值
NodeNum=NodeNum+1;
//求结点数
if(hl==0&&hr==0)
leaf=leaf+1;//若左右深度为0,即为叶子。
return(max+1);
} else return(0);}
//====利用“先进先出”(FIFO)队列,按层次遍历二叉树========== void Levelorder(BinTree T){
int front=0,rear=1;
BinTNode *cq[Max],*p;
//定义结点的指针数组cq
cq[1]=T;
//根入队
while(front!=rear)
{
front=(front+1)%NodeNum;
p=cq[front];
//出队
printf(“%c”,p->data);
//出队,输出结点的值
if(p->lchild!=NULL)
{
rear=(rear+1)%NodeNum;
cq[rear]=p->lchild;
//左子树入队
}
if(p->rchild!=NULL)
{
rear=(rear+1)%NodeNum;
cq[rear]=p->rchild;
//右子树入队
} } }
default: exit(1);
}
printf(“n”);} while(i!=0);}
2、调试程序,设计一棵二叉树,输入完全二叉树的先序序列,用#代表虚结点(空指针),如ABD###CE##F##,建立二叉树,求出先序、中序和后序以及按层次遍历序列,求所有叶子及结点总数.实验结果:
1.当输入测试数据(输入完全二叉树的先序序列,用#代表虚结点,如ABD###CE##F##)时(如图1-1),回车运行时,结果如图1-2所示;
图1-1
图1-2
2.按层次遍历之前,输入数字4(如图2-1,);回车运行时,求出测试数据的深度、结点数及叶子数分别为3,6,3(如图2-2);
图2-1
789-
第五篇:数据库实验2
山东建筑大学 计算机学院 实验报告
班级: 姓名: 学号: 实验成绩:
课程:数据库系统概论 同组者: 实验日期: 2018.04.24
实验二 数据查询
一.实验目的
1.理解数据库中数据的其他查询方法和应用; 2.学会各种查询要求的实现;
3.学会各种查询的异同及相互之间的转换方法。
二.实验内容
1.实验代码
--1.查询供应商号码为S1的供应商的名称SNAME,所在城市CITY
Select SNAME,CITY FROM S WHERE SNO='S1';
--2.查询颜色为红色的零件号码 select pno from p where color='红';
--3.查询工程所在地为天津的工程名称JNAME select jname from j where city='天津';
--4.查询供应商号和名称,分别用小写字母和大写字母表示供应商代码 select upper(sno)大写,lower(sno)小写, sname from s;
--5.查询零件的详细信息,用结果属性名用中文显示
select pno 零件代码,pname 零件名,color 颜色, weight 重量 from p;
--6.查询供应工程J1零件P1的供应商号SNO select sno from spj where jno='j1' and pno='p1';
--7.查询供应商的名称和所在城市,并按照所在城市升序排序,同一个城市的按照供应商的名称降序排序
select sname,city from s order by city ASC,sname DESC;山东建筑大学 计算机学院 实验报告
班级: 姓名: 学号: 实验成绩:
课程:数据库系统概论 同组者: 实验日期: 2018.04.24--8.查询使用供应商S1所供应零件的工程号码 select jno from spj where sno='s1';
--9.查询各种零件的平均重量 select AVG(weight)from p;
--修改货物表中的P表的weight的数据类型 alter table p alter column weight float;
--10.查询零件的总个数
select sum(QTY)零件总和 from spj;
--11.from p where pname like '螺%';
--12.查询各个供应商供应的零件P3总数量
select sum(qty)from spj where pno='p3';
--13.供应工程J1红色零件的供应商号SNO
select distinct sno from spj, p where p.pno=spj.pno and(jno='j1' and color='红');
--14.工程项目J2使用的各种零件的名称及数量
select distinct pname,qty from p, spj where p.pno=spj.pno and jno='j2';
--15.使用上海产的零件的工程的名称
select distinct jname from s, j, spj where s.city='上海' and(s.sno=spj.sno and j.jno=spj.jno);查询所有以“螺”字开头的零件的零件号、零件名和颜色
select pno,pname,color 山东建筑大学 计算机学院 实验报告
班级: 姓名: 学号: 实验成绩:
课程:数据库系统概论 同组者: 实验日期: 2018.04.24--16.所有项目的使用零件的情况(无论有没有使用零件),包括项目代码、项目名称、零件代码和零件数量
select distinct spj.jno, j.jname, pno, qty from spj, j where spj.jno=j.jno;
--17.供应商S1和S3供应的相同的零件编号
select pno from spj where sno='s1' intersect select pno from spj where sno='s3';
--18.没有使用天津产的零件的工程号码
select distinct jno from spj where sno in((select sno from s where city!= '天津'));--19.没有使用天津供应商生产的红色零件的工程号
select distinct jno from spj where jno not in(select jno from spj,s,p where(s.city='天津' and p.color='红')and(s.sno=spj.sno and p.pno=spj.pno));
--20.至少用了供应商S1所供应的全部零件的工程号Jno
select jno from spj where pno='p1' and jno in(select jno
--21.基于学生选课数据库,验证课本上数据查询相关的示例
select *
from spj where pno='p2');山东建筑大学 计算机学院 实验报告
班级: 姓名: 学号: 实验成绩:
课程:数据库系统概论 同组者: 实验日期: 2018.04.24 from student;
select sname,'Year of Birth:',2014-sage,lower(sdept)from student;
--查询至少选修了学生201215122选修的全部课程的学生号码--不存在这样的课程y,学生201215122选修了y,而学生x没有选 select distinct sno from sc scx where not exists
(select *
select distinct sno from sc scx where not exists
(select scy.cno
--查询选修了课程名为“信息系统”的学生学号和姓名 select sno,sname from student where sno in(select sno
from sc where cno in(select cno
from course
where cname='信息系统'));
from sc scy
where scy.sno='201215122' and scy.cno not in(select scz.cno from sc scz
where scz.sno=scx.sno));
from sc scy
where scy.sno='201215122' and not exists(select *
from sc scz where scz.sno=scx.sno and scz.cno=scy.cno));山东建筑大学 计算机学院 实验报告
班级: 姓名: 学号: 实验成绩:
课程:数据库系统概论 同组者: 实验日期: 2018.04.24
运行结果 1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、山东建筑大学 计算机学院 实验报告
班级: 姓名: 学号: 实验成绩:
课程:数据库系统概论 同组者: 实验日期: 2018.04.2417、18、21、19、20、1、2、三. 实验总结
3、通过本次实验,我了解了理解数据库中数据的其他查询方法和应用,学会各种查询要求的实现,学会各种查询的异同及相互之间的转换方法。在实验过山东建筑大学 计算机学院 实验报告
班级: 姓名: 学号: 实验成绩:
课程:数据库系统概论 同组者: 实验日期: 2018.04.24 程中,有的看不懂题意,通过询问同学解决了,也有的不会做,答案也看不懂,最后询问老师,然后自己认真看看,最后解决问题了。