第一篇:數據庫實驗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 程中,有的看不懂題意,通過詢問同學解決了,也有的不會做,答案也看不懂,最后詢問老師,然后自己認真看看,最后解決問題了。