数据库课程设计实验报告

西安郵電學院

数据库课程设计 报 告 书 系部名称

学生姓名

专业名称

班 级

时间 计算机 20xx年12月20日至20xx年12

月30日

: : : : :

一. 本课程设计的目的

熟悉数据库的语句语法,将数据库运用到实际的项目中,体会前台与后台的联系。

二.选定的题目

用户需求分析和系统网络投票系统

三.功能描述

被系统功能分为用户登录和投票两个方面。

普通的用户只能登录,注册,投票,查看投票结果。而管理员则可以登录,并且修改投票,删除投票,增加投票

四.概要设计

用户表:(帐号,用户名,用户类型,密码,证件号),帐号为主键

选票表:(编号,投票编号,选票内容,投票数量),编号为主键

投票表:(投票编号,题目),投票编号为主键

数据库课程设计实验报告

Users:

V

数据库课程设计实验报告

ote:

V

数据库课程设计实验报告

ote_title:

数据库课程设计实验报告

五.界面(菜单)设计及主要代码 首页:

数据库课程设计实验报告

$conn = mysqli_connect("localhost","root","1234","liupai"); if(empty($conn)){

die("mysqli_connect failed:".musqli_connect_error()); }

echo("connected to".mysqli_get_host_info($conn)."\n"); $sql = "select * from users ";

$results = $conn -> query($sql);

$uname = $_GET["uname"];

$upassword = $_GET["upassword"];

while( $rows = $results->fetch_row()){

if($rows[0] == $uname&&$rows[3] == $upassword&&$rows[2]==2){

$url1="<script type='text/javascript' language='javascipt'>window.location.href='vote_kind.php'</script>";

echo $url1;

}

}

$url2="<script type='text/javascript' language='javascipt'>window.location.href='wrong.html?temp1=$uname'</script>";

echo $url2;

mysqli_close($conn);

注册页:

数据库课程设计实验报告

<?php

$conn = mysqli_connect("localhost","root","1234","liupa");

if(empty($conn)){

die("mysqli_connect failed:".musqli_connect_error());

echo "error";

}

echo "connected to".mysqli_get_host_info($conn)."\n";

$user_name = $_GET["user_name"];

$account = $_GET["account"];

$password1 = $_GET["password1"];

$password2 = $_GET["password2"];

$card_number = $_GET["card_number"];

$sql = "insert into users values('".$account."','".$user_name."', 2, '".$password1."','".$card_number."') ";

if($password1==$password2){

$results = $conn -> query($sql);

$url1="<script type='text/javascript' language='javascipt'>window.location.href='index.html'</script>";

$url2="<script type='text/javascript' language='javascipt'>window.location.href='wrong.html?temp1=$uname'</script>";

if($results)

echo $url1;

else

echo $url2;

}

else

{

$url3="<script type='text/javascript' language='javascipt'>window.location.href='wrong.html?temp1=$uname'</script>";

echo $url3;

mysqli_close($conn);

}

?>

登录出错页:

数据库课程设计实验报告

$conn = mysqli_connect("localhost","root","1234","liupai");

if(empty($conn)){

die("mysqli_connect failed:".musqli_connect_error());

}

echo("connected to".mysqli_get_host_info($conn)."\n");

$sql = "select * from users ";

$results = $conn -> query($sql);

$uname = $_GET["uname"];

$upassword = $_GET["upassword"];

while( $rows = $results->fetch_row()){

if($rows[0] == $uname&&$rows[3] == $upassword&&$rows[2]==2){

$url1="<script type='text/javascript' language='javascipt'>window.location.href='vote_kind.php'</script>";

echo $url1;

}

}

$url2="<script type='text/javascript' language='javascipt'>window.location.href='wrong.html?temp1=$uname'</script>";

echo $url2;

mysqli_close($conn);

六.实现(编程)时遇到的问题总结

1.开始的时候,不知道怎么连接数据库,是因为没有在计算机上安装服务器的原因。

2.第一天在网上找了一些图片,也做了系统的能用到的所有的界面,但是在用户登录的界面就遇到了问题,但是没有办法和数据库中已经存储的用户表中的内容进行对比,从而验证是不是已经注册的用户。后再在网上查到了如何调用函数来接收参数。

3.本来预想的是还有一个留言板的功能,可以让用户把对投票之外的意见写下来,所以想最后来实现。但是发现投票系统的实现过于拖沓,导致没有时间实现留言板的功能了。

4.在原本的想法里,只想设计一个投票项目,但是后来发现这样的话虽然实现起来比较容易,但是并不符合常理,所以又参考了书上的例子,做出有多个投票项目的系统。

5.在投票的的表中,出现了中文乱码的现象。不知道是因为用的mysql是盗版的原因还是什么其他的原因。

6.在课程设计一开始,设计了很多的细节的问题,但是在实施的过程中,发现由于一开始没有很好的设计全局,导致设计时,没有很好的架构。设计的也过于简单。开始的时候很多的

七.本次课程设计的收获和心得体会

为时两周的课程设计就要结束了,这两周里我学会了很多的东西。

Php以前也只是听说过,没有见识过真面目。第一次学,第一次用,把它和数据库结合在

一起,明白了很多在实际应用中会用到的实质性的技术和技巧。当连接上数据库时,别提多高兴了。因为之前也看了一段时间的这方面的书,但是都是感觉纸上谈兵,这次应用的实战上,挺有成就感的。

数据库课程设计实验报告

细节的地方并不多,关键就是是否可以站在一个足够的高度看待整个软件的架构。这也是我们这个专业最终的目的。

总之,通过这两周的课程设计,受益匪浅,也明白了自己在学习上过多的重视课本的知识,看到很多实践多的同学上手就可以很顺利的实现,自己也是很羡慕,只能勉励自己加油!

八.参考资料

1.《php+mysql+dreamweaver网站建设典型案例》张枭著 清华大学出版社

 

第二篇:数据库课程设计实验报告(宾馆客房管理系统)

数据库原理课程设计

 题 目          宾馆客房管理系统         

学 院         数学与信息工程学院        

专 业        信息管理和信息系统         

班 级            信息071                

学 号            

学生姓名                    

 指导教师               

 编写日期        20##年01月21日        

                       目  录

 1 系统前期分析设计...........................................................2

    1.1系统调查...............................................................2

  1.2用户需求...............................................................2

  1.3系统需求分析...........................................................2

  1.4概念设计...............................................................4

  1.5逻辑结构设计...........................................................6

2 系统具体实施过程...........................................................6

  2.1程序代码...............................................................6

  2.2 数据库的完整性和安全性................................................10

  2.3参考文献..............................................................10                                   

3 总结......................................................................11

                       1.系统前期分析设计

1.1 系统调查

    近年来,宾馆业迅猛发展,市场的竞争日趋激烈,全面提高宾馆的软件管理水准,已成为宾馆业发展的当务之急。尤其是对于星级宾馆,既需要完成前台的一些服务工作,还需要完成后台的管理工作。然而,传统的人工管理模式已经远远不能满足有效、快捷地处理经营中产生的大量信息数据的需要,从而使得企业决策层无法及时、准确地掌握一线资料,继而影响对市场进行正确地分析和预测。像沿海城市三星级以上宾馆引进外方管理,使小部分宾馆管理水准几乎接近或达到国际水平。但对占80%以上的广大中小型宾馆来说,是难以做到的。因此,欲在竞争中甩开对手,取得优势,必须在经营、管理、产品、服务等方面具备独到之处。而对宾馆的经营状况起决定作用的是客房的管理。简单的服务标准已不是制胜的锦囊,只有管理做到最细微之处,才能让顾客体会到宾馆服务的高标准、高质量,而准确、快速、周全往往就是最基本的成功要素。

    传统的管理方法已经不能适应现代社会的需要,因此采用电脑管理业务、财务等诸多环节已成为推动宾馆业迅速发展的先决条件,宾馆客房管理信息系统是各大中小型宾馆所需要使用的一个管理系统。

1.2  用户需求

    建立一套功能完善的管理信息系统,既能满足业务人员日常处理的需要,增强企业经营全过程的数字化管理水平;又能满足管理人员决策分析的需要,提高公司管理层对公司经营反馈信息的响应速度。从而大幅度提高工作效率,提高实施管理的准确性、科学性,使担负管理的工作人员从繁杂的手工劳作中解脱出来。

﹡快速实现客人入住登记和账务处理,减少客人住店及离店时的等待时间

﹡准确实现客人预订入住的要求,实现有效及有保障的前台系统作业

﹡快速响应住宿客人的有关项目查询要求

﹡实现入住、消费、结账一条龙服务,方便客人在店内的各类消费要求

﹡提供清晰、准确的各类明细报表、账单,给客人留下良好的管理印象

1.3  系统需求分析

需求分析图:

数据库课程设计实验报告(宾馆客房管理系统)                                      

宾馆客房管理系统的数据字典:

(宾馆客房管理系统的数据流——客人信息)   

(宾馆客房管理系统的数据流——订单)

(宾馆客房管理系统的数据流——客房信息)

(宾馆客房管理系统的数据流——入住单)

(宾馆客房管理系统的数据流——帐单)

宾馆客房管理系统的数据项:

1.4  概念设计

E-R图:

数据库课程设计实验报告(宾馆客房管理系统) 

数据库课程设计实验报告(宾馆客房管理系统)

1.5逻辑结构设计

客人信息 (预定人姓名,身份证号,VIP)

订单 (订单编号,姓名,身份证号,客房编号,客房类型,抵店时间,入住人数,预定人,电话,住几天,订单状态)

客房信息(客房编号,客房类型,客房价格,客房状态)

入住单(入住单号,客房编号,客房类型,入住时间,入住人数,姓名,退房时间,订单编号,入住单状态)

帐单(帐单编号,客房编号,姓名,消费金额,入住时间,退房时间,备注)

                      2.系统具体实施过程

create table roominfo     /*创建数据表roominfo*/

(rid char(6) not null,

 rstyle varchar(10),

 kfzt char(2) not null)

go

create table liveorder    /*创建数据表liveorder*/

(lno varchar(36) not null,

 rid char(6) not null,

 rstyle varchar(10),

 btime datetime not null,

 cno char(10),

 cname varchar(10) not null,

 etime datetime,

 ono varchar(36),

 lzt char(4) )

go

create table bill     /*创建数据表bill*/

(bno varchar(36) not null,

 rid char(6) not null,

 cname varchar(10),

 cust money,

 btime datetime,

 etime datetime,

 remarks varchar(40))

go

create table roomsp    /*创建数据表roomsp*/

(rstyle varchar(10) not null,

 rprice money)

go

create table hordform    /*创建数据表hordform*/

(ono varchar(36) not null,

 cname varchar(10) not null,

 csex char(2),

 cid char(18),

 rid char(6) not null,

 rstyle varchar(10),

 arrivetime datetime,

 cno char(10) not null,

 dingname varchar(10),

 livetime char(10),

 dingph char(15) not null,

 ozt char(4))

go

create table hliveorder   /*创建数据表hliveorder*/

(lno varchar(36) not null,

 rid char(6) not null,

 rstyle varchar(10),

 btime datetime not null,

 cno char(10),

 cname varchar(10) not null,

 etime datetime,

 ono varchar(36),

 lzt char(4) )

go

insert into cusinfo values('mao','zcl','330227198805060071','n')

insert into cusinfo values('qxb','zyy','330227198603070022','n')

go

insert into roominfo values('2010','s','n')

insert into roominfo values('2201','s','n')

insert into roominfo values('2301','s','n')

insert into roominfo values('3010','s','y')

insert into roominfo values('3012','s','n')

insert into roominfo values('3015','s','n')

insert into roominfo values('4210','d','n')

insert into roominfo values('4110','d','n')

insert into roominfo values('4010','d','n')

insert into roominfo values('5220','d','n')

insert into roominfo values('5210','d','n')

insert into roominfo values('5201','d','n')

go

insert into roomsp values('s',200)

insert into roomsp values('d',300)

go

insert into ordform values('o0201001','zcl','f','330227198805060071','2301','s','20##-01-02','1',

'mao','1','883060089','n')

go

insert into liveorder values('l2010001','2301','s','20##-01-02','1','zcl','20##-01-03','o0201001','n')

insert into liveorder values('l2010002','3010','s','20##-01-03','1','qxb','20##-01-04','o0201002','y')

insert into liveorder(lno,rid,rstyle,btime,cno,cname,ono,lzt)

values('l2010003','5220','d','20##-01-09','1','myy','o0201003','y')

insert into liveorder(lno,rid,rstyle,btime,cno,cname,ono,lzt)

values('l2010004','5201','d','20##-01-02','2','zxx',null,'y')

go

insert into bill(bno,rid,cname,cust,btime) values('b2010003','5220','myy',0,'20##-01-10')

insert into bill(bno,rid,cname,cust,btime) values('b2010004','5201','zxx',0,'20##-01-02')

go

alter table cusinfo add primary key(dingname)

alter table ordform add primary key(ono)

alter table roominfo add primary key(rid)

alter table liveorder add primary key(lno)

alter table bill add primary key(bno)

alter table roomsp add primary key(rstyle)

go

create proc ordformproc @lno varchar(36)  /*保存入住单*/

as

begin tran

update roominfo set kfzt='y' from roominfo,liveorder where liveorder.rid=roominfo.rid and liveorder.lno=@lno      /*修改客房信息*/

update ordform set ozt='y' from ordform,liveorder where liveorder.ono=ordform.ono and liveorder.lno=@lno     /*修改预订单信息*/

insert into hordform select * from ordform where ozt='y'   /*将已入住的预订单放入历史*/

delete from ordform where ozt='y'   /*清除已入住预订单*/

commit

go

select * from roominfo

select * from ordform

go

exec ordformproc 'l2010001'

exec ordformproc 'l2010004'

select * from roominfo

select * from ordform

go

create proc liveorderproc @lno varchar(36)  /*收银退房*/

as

begin tran

update liveorder set etime=getdate(),lzt='n' where lno=@lno 

update roominfo set kfzt='n' from roominfo,liveorder where roominfo.rid=liveorder.rid and liveorder.lno=@lno   /*修改客房状态*/

insert into hliveorder select * from liveorder where lno=@lno  /*导入历史*/

delete from liveorder where lno=@lno  /*清除入住单*/

commit

go

select * from liveorder

select * from hliveorder

go

exec liveorderproc 'l2010004'

go

select * from liveorder

select * from hliveorder

select *from roominfo where rid='5201'

go

create proc billproc @lno varchar(36)   /*计算应收款*/

as

begin tran

declare @total money

declare @datecount int

update liveorder set etime=getdate() where lno=@lno  /*设置离店时间*/

select @datecount=datediff(dd,btime,getdate()) from liveorder where lno=@lno /*计算住店天数*/

select @total=0

select @total=@datecount*(isnull(rprice,0)) from liveorder,bill,roomsp

where bill.rid=liveorder.rid and liveorder.rstyle=roomsp.rstyle and lno=@lno /*计算住店金额*/

update bill set etime=getdate(),cust=@total from bill,liveorder where bill.rid=liveorder.rid and lno=@lno   /*修改账单*/

commit

go

select * from liveorder

select * from bill

go

exec billproc 'l2010004'

go

select * from liveorder

select * from bill2.1程序代码

create database hotelmanager     /*创建数据库hotelmanager*/

go

use hotelmanager

go

create table cusinfo      /*创建数据表cusinfo*/

(dingname varchar(10) not null,

 cname varchar(10),

 cid char(18),

 vip char(2))

go

create table ordform     /*创建数据表ordform*/

(ono varchar(36) not null,

 cname varchar(10) not null,

 csex char(2),

 cid char(18),

 rid char(6) not null,

 rstyle varchar(10),

 arrivetime datetime,

 cno char(10) not null,

 dingname varchar(10),

 livetime char(10),

 dingph char(15) not null,

 ozt char(4))

go

2.2 数据库的完整性和安全性

1.数据库的完整性

    数据库的完整性是指数据的正确性和相容性。数据库管理系统(DBMS)用一定的机制来检查数据库中的数据是否满足规定的条件——完整性约束条件,数据的约束条件是语义的体现,将作为模式的一部分存入数据库中。

    本系统中定义了表与表之间的联系有助于实现完整性规则,一般在程序中实现具体的完整性控制。

2.数据库的安全性

    数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。在数据库系统中,大量的数据集中存放,而且为许多用户直接共享,是宝贵的信息资源,系统的安全保护措施就显得更为重要,它保护数据库防止恶意的破坏和非法的存取。

本系统包括数据库的安全和服务器的安全。采用管理员表示和鉴定的方法实现数据库的安全,此安全管理措施并不在前台开发工具中实现,而是在后台数据库中实现。在登录数据库时,系统让管理员户表示自己的身份,不同的管理员权限不同,系统进行核实,鉴别此管理员是否为合法用户,若是,系统进一步核实用户,通常要求用户输入口令,系统和对用户口令以鉴别用户身份。服务器的安全也是通过用户在登录服务器时输入合法的用户名和密码来实现的。这是一种简单可行的方法,实现起来比较方便。没有采用更加复杂的系统安全管理措施是因为本管理系统一般是应用在校园网中,采用安全管理措施主要是为了防止没有修改权限的用户无意间修改了数据,因此采用用户标识和鉴定的安全管理措施就能够保障数据库的安全性。

2.3参考文献

[1] 王晟 马里杰 .SQL Server 数据库开发经典例解析[J].北京:清华大学出版社,2006.

[2] 张俊玲.数据库原理与应用[M].北京:清华大学出版社,2005.

[3] 李昆.SQL Server2000课程设计案例精编[M].中国水利水电出版社,2006.

                                总 结

通过本次实验,对于数据的一个完整体系有了深刻的理解。一个从需求分析,概念结构设计,逻辑结构设计,物理设计,数据库实施,数据库运行与维护的完整过程。

在这个数据库建设过程中,需求分析是关键,因为只有明确你的分析需求,系统才能决定要完成什么功能,设计哪些功能模块来完成这些内容的。如:快速实现客人入住登记和账务处理,减少客人住店及离店时的等待时间;准确实现客人预订入住的要求,实现有效及有保障的前台系统作业;快速响应住宿客人的有关项目查询要求;实现入住、消费、结账一条龙服务,方便客人在店内的各类消费要求;提供清晰、准确的各类明细报表、账单,给客人留下良好的管理印象。这些就是我们这个系统的需求,我我们就要争对些来设计。

不过,对于我们来说,编写程序代码是比较困难的一个步骤,如存储过程的创建,触发器的编写,由于平时上课,这些内容也不是掌握的很好,这次在课程设计过程中遇到了许多问题。而且对于系统的庞大,自己也有些理不清思绪,不过最后在老师的指导下,参考了各种资料,顺利完成了程序的编写。

但是由于时间有限,自己的能力也有限,系统还是有些不足之处,有些小问题的出现,以后会努力改正。

相关推荐