数据库实验报告宾馆管理.docx
《数据库实验报告宾馆管理.docx》由会员分享,可在线阅读,更多相关《数据库实验报告宾馆管理.docx(19页珍藏版)》请在冰点文库上搜索。
数据库实验报告宾馆管理
数据库概论实验报告
一、项目名称
宾馆管理系统
二、需求分析
本系统针对用户和客户以及客房的管理采用了C/S结构而设计。
用户信息维护、客房信息管理、客房类型维护和个人密码修改几个模块。
前台界面可分为:
显示所有房间信息、显示空闲房间信息和显示客户入住、结算信息。
主要功能是:
1、有关客房类型的制定:
客房类型名、房间面积、床位数量、住房单价、是否有空调、电话等。
2、客房基本信息制定:
包括房间号、客房类型名、客房楼层、房间额定人数、客房实际人数、备注等。
3、剩余空房、客房未满信息的查询或按房间号查询。
4、客户入住信息录入:
客户ID、房间号、客户姓名、性别、籍贯、入住日期等。
5、客户结算:
用于客户退房时按入住时间和结算时间计算房间费用。
三、概念结构设计
实体的属性:
用户:
{用户名,密码}
房间:
{房间号,类型,价格,状态,额定人数,实际人数,所在楼层}
客户:
{客户ID,姓名,性别,籍贯,住宿费用,入住时间,结算时间}
E-R图:
四:
逻辑结构设计
E-R图向关系模型的转换
把E-R图转换为关系模型。
关系的码用下划线标出。
用户(用户ID,用户名,密码)
此为用户实体对应的关系模式。
该关系模式包含了联系“管理房间”所对应的关系模式。
RoomType(ID,类型名称,面积,床位,价钱)
此为联系“房间管理”所对应的关系模式。
Room(房间号,房间类型,房间楼层,额定人数,实际人数)
此为房间实体对应的关系模式。
该关系模式已包含了联系“入住”所对应的关系模式。
Client(客户ID,房间号,客户姓名,性别,籍贯,入住日期,结算日期)
此为客户实体对应的关系模式。
该关系模式已包含了联系“管理”所对应的关系模式。
5、物理结构设计
用户:
列名
数据类型
长度
用户ID
int
4
用户名
varchar
16
密码
varchar
16
RoomType:
列名
数据类型
长度
ID
int
4
类型名称
varchar
16
面积
int
4
床位
int
4
价钱
smallmoney
4
Room:
列名
数据类型
长度
房间号
varchar
8
房间类型
varchar
16
房间楼层
int
4
额定人数
int
4
实际人数
int
4
Client:
列名
数据类型
长度
客户ID
int
4
房间号
varchar
8
客户姓名
varchar
16
性别
char
2
籍贯
varchar
50
入住日期
smalldatetime
4
结算日期
smalldatetime
4
6、部分关键SQL语句
//登录时查询是否有对应的用户名和密码
stringsql="select*from用户where用户名='"+textBox1.Text.Trim()+"'and密码='"+textBox2.Text.Trim()+"'";
//添加客房类型语句
stringsql="insertintoRoomType(类型名称,面积,床位,价钱,空调,电话)values('"+textBox1.Text.ToString()+"','"+Convert.ToInt32(textBox2.Text)+"','"+Convert.ToInt32(textBox3.Text)+"','"+Convert.ToInt32(textBox4.Text)+"','"+comboBox1.Text.ToString()+"','"+comboBox2.Text.ToString()+"')";
//删除对应条件的客房类型
stringsql="deletefromRoomTypewhere类型名称='"+textBox1.Text+"'";
//添加新客房信息sql语句
stringsql1="insertintoRoom(房间号,房间类型,房间楼层,额定人数,实际人数,备注)values('"+textBox1.Text.ToString()+"','"+comboBox1.Text.ToString()+"','"+comboBox2.Text.ToString()+"','"+Convert.ToInt32(comboBox3.Text)+"','"+Convert.ToInt32(comboBox4.Text)+"','"+textBox2.Text.ToString()+"')";
//查询房间未满的客房
stringsql="select*fromRoomwhere额定人数>实际人数";
//查询对应客户ID的房间的价钱
stringsql2="select价钱fromRoomTypewhereRoomType.类型名称=(select房间类型fromRoomwhere(select房间号fromClientwhere客户ID='"+comboBox1.Text+"')=Room.房间号)";
//客户结算后修改对应房间的实际人数(人数-1)
stringsql="updateRoomset实际人数=实际人数-1whereRoom.房间号=(select房间号fromClientwhere客户ID='"+comboBox1.Text+"')";
//客户结算后删除客户信息
stringsql1="deletefromClientwhereClient.客户ID='"+comboBox1.Text+"'";
7、部分功能模块及代码
主页面
添加客房
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.OleDb;
namespace宾馆管理系统
{
publicpartialclassRoom:
Form
{
publicboolflag;
publicRoom()
{
InitializeComponent();
}
publicclassdbClass
{
publicOleDbConnectionMycon=newOleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=db.mdb");
}
dbClassdb1=newdbClass();
privatevoidRoom_Load(objectsender,EventArgse)
{
db1.Mycon.Open();
OleDbDataAdapteradp=newOleDbDataAdapter("select类型名称fromRoomType",db1.Mycon);
DataSetds=newDataSet();
adp.Fill(ds,"RoomType");
comboBox1.DisplayMember="类型名称";
comboBox1.DataSource=ds.Tables["RoomType"];
db1.Mycon.Close();
comboBox1.Text="";
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
textBox1.Clear();
textBox2.Clear();
comboBox1.Text="";
comboBox2.Text="";
comboBox3.Text="";
comboBox4.Text="";
textBox1.Enabled=true;
textBox2.Enabled=true;
comboBox1.Enabled=true;
comboBox2.Enabled=true;
comboBox3.Enabled=true;
comboBox4.Enabled=true;
flag=true;
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
textBox1.Enabled=true;
flag=false;
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
db1.Mycon.Open();
if(flag)
{
if(textBox1.Text.ToString()==""||textBox2.Text.ToString()==""||comboBox1.Text.ToString()==""||comboBox2.Text.ToString()==""||comboBox3.Text.ToString()==""||comboBox4.Text.ToString()=="")
{
MessageBox.Show("请输入完整信息","提示");
}
else
{
stringsql1="insertintoRoom(房间号,房间类型,房间楼层,额定人数,实际人数,备注)values('"+textBox1.Text.ToString()+"','"+comboBox1.Text.ToString()+"','"+comboBox2.Text.ToString()+"','"+Convert.ToInt32(comboBox3.Text)+"','"+Convert.ToInt32(comboBox4.Text)+"','"+textBox2.Text.ToString()+"')";
OleDbCommandcmd=newOleDbCommand(sql1,db1.Mycon);
cmd.ExecuteNonQuery();
}
}
else
{
stringsql2="deletefromRoomwhere房间号='"+textBox1.Text.ToString()+"'";
OleDbCommandcmd=newOleDbCommand(sql2,db1.Mycon);
cmd.ExecuteNonQuery();
}
OleDbDataAdapteradp=newOleDbDataAdapter("select*fromRoom",db1.Mycon);
DataSetds=newDataSet();
adp.Fill(ds,"Room");
dataGridView1.DataSource=ds.Tables["Room"];
db1.Mycon.Close();
textBox1.Clear();
textBox2.Clear();
comboBox1.Text="";
comboBox2.Text="";
comboBox3.Text="";
comboBox4.Text="";
textBox1.Enabled=false;
textBox2.Enabled=false;
comboBox1.Enabled=false;
comboBox2.Enabled=false;
comboBox3.Enabled=false;
comboBox4.Enabled=false;
}
privatevoidbutton4_Click(objectsender,EventArgse)
{
textBox3.Enabled=true;
}
privatevoidbutton5_Click(objectsender,EventArgse)
{
if(textBox3.Text.ToString()=="")
{
MessageBox.Show("请输入房间号","提示");
}
else
{
db1.Mycon.Open();
stringsql="select*fromRoomwhere房间号='"+textBox3.Text.ToString()+"'";
OleDbCommandcmd=newOleDbCommand(sql,db1.Mycon);
if(null!
=cmd.ExecuteScalar())
{
OleDbDataAdapteradp=newOleDbDataAdapter(sql,db1.Mycon);
DataSetds=newDataSet();
adp.Fill(ds,"Room");
dataGridView1.DataSource=ds.Tables["Room"];
textBox3.Clear();
textBox3.Enabled=false;
}
else
{
MessageBox.Show("没有此房间","提示");
}
db1.Mycon.Close();
}
}
privatevoidbutton6_Click(objectsender,EventArgse)
{
this.Close();
}
}
}
客户入住
代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.OleDb;
namespace宾馆管理系统
{
publicpartialclassClientBookIn:
Form
{
publicClientBookIn()
{
InitializeComponent();
}
publicclassdbClass
{
publicOleDbConnectionMycon=newOleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=db.mdb");
}
dbClassdb1=newdbClass();
privatevoidClientBookIn_Load(objectsender,EventArgse)
{
db1.Mycon.Open();
OleDbDataAdapteradp=newOleDbDataAdapter("select房间号fromRoomwhere额定人数>实际人数",db1.Mycon);
DataSetds=newDataSet();
adp.Fill(ds,"Room");
comboBox2.DisplayMember="房间号";
comboBox2.DataSource=ds.Tables["Room"];
//db1.Mycon.Close();
stringsql1="selectcount(*)fromClient";
OleDbCommandcmd=newOleDbCommand(sql1,db1.Mycon);
inti=(int)cmd.ExecuteScalar();
textBox1.Text=Convert.ToString(i+15);
db1.Mycon.Close();
textBox3.Clear();
textBox4.Clear();
comboBox1.Text="";
comboBox2.Text="";
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
textBox3.Clear();
textBox4.Clear();
comboBox1.Text="";
comboBox2.Text="";
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
if(textBox1.Text==""||textBox3.Text==""||comboBox1.Text==""||textBox4.Text=="")
{
MessageBox.Show("请输入完整信息","提示");
}
else
{
db1.Mycon.Open();
stringsql1="insertintoClient(客户ID,房间号,姓名,性别,籍贯,入住日期)values('"+textBox1.Text.ToString()+"','"+comboBox2.Text+"','"+textBox3.Text.ToString()+"','"+comboBox1.Text+"','"+textBox4.Text.ToString()+"','"+dateTimePicker1.Text+"')";
OleDbCommandcmd1=newOleDbCommand(sql1,db1.Mycon);
cmd1.ExecuteNonQuery();
stringsql2="updateRoomset实际人数=实际人数+1where房间号='"+comboBox2.Text+"'";
OleDbCommandcmd2=newOleDbCommand(sql2,db1.Mycon);
cmd2.ExecuteNonQuery();
MessageBox.Show("客户入住成功","提示");
db1.Mycon.Close();
button2.Enabled=false;
}
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
this.Close();
}
}
}
客户结算
代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.OleDb;
namespace宾馆管理系统
{
publicpartialclassClientCheck:
Form
{
publicClientCheck()
{
InitializeComponent();
}
publicclassdbClass
{
publicOleDbConnectionMycon=newOleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=db.mdb");
}
dbClassdb1=newdbClass();
privatevoidClientCheck_Load(objectsender,EventArgse)
{
db1.Mycon.Open();
OleDbDataAdapteradp=newOleDbDataAdapter("select客户IDfromClient",db1.Mycon);
DataSetds=newDataSet();
adp.Fill(ds,"Client");
comboBox1.DisplayMember="客户ID";
comboBox1.DataSource=ds.Tables["Client"];
db1.Mycon.Close();
comboBox1.Text="";
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
db1.Mycon.Open();
stringsql1="select姓名,入住日期fromClientwhere客户ID='"+comboBox1.Text+"'";
OleDbCommandcmd=newOleDbCommand(sql1,db1.Mycon);
OleDbDataAdapteradp1=newOleDbDataAdapter(sql1,db1.Mycon);
DataSetds1=newDataSet();
adp1.Fill(ds1,"Client");
textBox2.Text=ds1.Tables["Client"].Rows[0][0].ToString();
textBox3.Text=ds1.Tables["Client"].Rows[0][1].ToString();
stringsql2="select价钱fromRoomTypewhereRoomType.类型名称=(select房间类型fromRoomwhere(select房间号from