数据库课程设计报告客房管理系统.docx
- 文档编号:4257560
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:36
- 大小:1.39MB
数据库课程设计报告客房管理系统.docx
《数据库课程设计报告客房管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告客房管理系统.docx(36页珍藏版)》请在冰豆网上搜索。
数据库课程设计报告客房管理系统
山东交通学院
数据库课程设计
客房管理系统
(院)系:
信电学院
班级:
计算111
姓名:
学号:
x
指导教师:
x
时间:
x
课程设计任务书
一、设计内容及要求
1.设计目的
学生根据所学的数据库原理与程序设计的知识,能够针对一个小型的数据库管理系统,进行系统的需求分析,系统设计,数据库设计,编码,测试等,完成题目要求的功能,从而达到掌握开发一个小型数据库的目的。
2.设计内容
1.必须设计的基本数据表:
用户表,客房表,客户信息表,客房预订表等。
2.功能模块
1)客房各种信息,包括客房的类别、当前的状态、负责人等。
2)客房信息的查询和修改,包括按房间号查询住宿情况、按客户信息查询房间状态等。
3)退房、订房、换房等信息的修改。
4)对查询、统计结果输出。
二、设计原始资料
(1)电子出版社出版的《VISUALC++程序设计及应用》,贺怀清等编著.
(2)高等教育出版社出版的《数据库系统简明教程》,王珊。
三、设计完成后提交的文件
1.课程设计报告(3000—5000字),纸质打印稿及电子版
(1)需求分析(功能模块层次图)
(2)系统设计(包括详细设计和界面设计)
(3)代码设计(主要功能函数)
(4)测试记录(测试各项功能的正确性、容错性)
(5)课程设计总结
2.系统程序演示。
3.课程设计任务书。
2.图纸部分:
序流程图程序
四、
03月18日-03月20日完成需求分析和系统设计;
10月13日-10月16日完成代码设计;
10月17日-10月20日测试和调试;
10月21日参加答辩。
五、主要参考资料
1.李闽溟等.VisualC++6.0数据库系统开发实例导航[M].北京:
人民邮电出版社
2.闪四清.《数据库系统原理与应用教程[M].清华大学出版社
成绩评定表
作品成绩
报告成绩
口试(答辩)
成绩
总评成绩
摘要
对于我们,随着学习的深入,已经大体掌握了应用数据库的程序开发。
为了将我们的编程能力提升到一个更高的水平,深化面向对象的编程思维和解决问题的能力,值此课程设计周期间,进行基于VisualC++6.0环境的软件开发,先以数据库程序开发作为开始,对VisualC++6.0环境和数据库方面的知识进行回忆和熟悉,使得在此基础上的下一个课程设计的开发进行的更加顺利。
本文档详细叙述了基于VisualC++6.0环境下的客房管理系统软件的设计过程以及程序源代码。
本文档从概要设计,详细设计,参考源程序代码以及显示程序运行的截屏等方面详尽的介绍了软件开发过程。
程序在设计的过程中遇到的问题已及时更正,但由于编者的能力和水平有限,字符统计软件和文档中不免会出现一些不期待的错误,望文档读者能够理解和体谅,并欢迎提醒和纠正,在此表示感谢以及敬意。
1.课程设计概述1
1.1.客房管理系统题目及简介1
1.2.开发环境概述1
2.总体设计1
2.1.项目规划1
2.2.系统结构流程图2
2.3.数据库逻辑结构3
3.功能模块界面及程序代码4
3.1.数据库登录界面模块设计4
3.2.主界面模块设计7
3.3.客房信息模块设计7
3.3.1客房信息添加7
3.3.2客房信息删除9
3.3.3客房信息修改10
3.3.4客房信息查询11
3.3.5客房信息刷新13
3.3.6客房预定13
3.4.退房记录15
3.4.1退房记录查询15
3.5.客户信息17
3.5.1客户信息查询17
3.5.2客户信息删除19
3.5.3客房信息刷新19
3.5.4入住20
3.5.5换房22
3.5.6退房23
4.触发器24
4.1.住房触发器24
4.2.退房触发器24
4.3.订房触发器24
5.设计体会25
参考文献25
1.1.客房管理系统题目及简介
根据软件需求,要求软件具有以下功能:
1)客房各种信息,包括客房的类别、当前的状态、负责人等。
2)客房信息的查询和修改,包括按房间号查询住宿情况、按客户信息查询房间状态等。
3)退房、订房、换房等信息的修改。
4)对查询、统计结果输出。
1.2.开发环境概述
硬件要求
CPU:
300MHz以上的处理器
内存:
128MB,推荐256MB
硬盘:
150MB以上剩余空间
显示像素:
最低800*600,最佳效果1024*768
软件要求
操作系统:
Windows2000/NT/XP/Vista/Win7。
数据库:
SQLServer2005
2.1.项目规划
根据需求分析,设计程序框架。
客房管理系统软件由3大部分组成。
设计各部分具体功能如下:
1)查询模块。
客房信息和客户信息的查询,包括按房间号查询住宿情况、按客户信息查询房间状态等。
2)用户密码模块。
包括用户名,密码。
3)数据库模块。
包括四个表,用户表,客房信息表,客户信息表,客房预订表。
可以实现各个表信息的添加,修改,删除。
4)系统测试。
2.2.系统结构流程图
2.3.数据库逻辑结构
本系统采用SQLServer2005数据库,系统数据库名为客房管理,其中共包含4个自己建的表。
表2.1客户信息表
字段名
类型
长度
客户ID
int
3
姓名
nchar
10
性别
nchar
2
年龄
int
4
身份证号
nchar
18
房间号
nchar
10
入住时间
datetime
10
离开时间
datetime
10
电话号码
nchar
11
表2.2客房信息表:
字段名
类型
长度
房间号
nchar
10
客房等级
nchar
10
客房类型
nchar
10
客房价格
nchar
10
客房状态
nchar
10
有无空调
nchar
10
负责人
nchar
10
表2.3客房预订表:
字段名
类型
长度
姓名
nchar
10
性别
nchar
10
客房类型
nchar
10
房间号
nchar
10
预定时间
datetime
10
保留时间
int
4
联系方式
nchar
11
表2.4用户表:
字段中文名
字段名
类型
长度
用户名
username
nchar
10
密码
password
nchar
10
3.1数据库登陆框设计
数据库登录按钮实现的代码:
voidCKefangguanliDlg:
:
OnOK()
{
//TODO:
Addextravalidationhere
UpdateData(TRUE);
denglusetuserset;
CStringsqlStr;
CDatabasem;
m.Open(_T("客房管理"));
if(!
m.IsOpen())
{
MessageBox("不能打开数据库!
");
return;
}
if(m_strusername.IsEmpty())
{
MessageBox("请输入用户名!
","Prompt");
m_cstrname.SetFocus();
return;
}
if(m_strpassword.IsEmpty())
{
MessageBox("请输入密码!
","Prompt");
m_cstrpassword.SetFocus();
return;
}
sqlStr.Format("select*from[user]whereusername='%s'ANDpassword='%s'",m_strusername,m_strpassword);
if(!
userset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr))
{
MessageBox("不能打开数据库!
","DatabaseError",MB_OK);
return;
}
/////////////////////////////RECORDCOUNT////////////////////////////
if(userset.GetRecordCount()==0)
{
userset.Close();
MessageBox("密码错误!
请再次输入!
","Error!
");
m_strpassword="";
m_cstrpassword.SetFocus();
UpdateData(FALSE);
}
else
{
userset.Close();
CDialog:
:
OnOK();
kefangguanlixitongdlg;
dlg.DoModal();
}
}
若用户名为空,则提示(容错性):
若密码错误,则提示:
3.2主界面模块设计
若再登陆界面输入的用户名和密码都正确,则进入主界面。
3.3客房信息模块设计
客房信息主界面:
3.3.1客房信息添加
实现代码:
voidkefangxinxi:
:
OnButtonAdd()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
kefangxinxisetb;
UpdateData();
b.Open();
if(m_fangjianhao==_T("")||m_kefangdenji==_T("")||m_kefangleixing==_T("")||m_kefangjiage==_T("")||m_kefangzhuangtai==_T("")||m_youwukongtiao==_T("")||m_fuzeren==_T(""))
{
MessageBox("请您将信息填写完整","温馨提示");
return;
}
else
{
inti;
b.MoveFirst();
b.AddNew();
b.m_column1=m_fangjianhao;
b.m_column2=m_kefangdenji;
b.m_column3=m_kefangleixing;
b.m_column4=m_kefangjiage;
b.m_column5=m_kefangzhuangtai;
b.m_column6=m_youwukongtiao;
b.m_column7=m_fuzeren;
b.Update();
b.Requery();
b.MoveLast();
m_listroom.SetItemText(i,0,b.m_column1);
m_listroom.SetItemText(i,1,b.m_column2);
m_listroom.SetItemText(i,2,b.m_column3);
m_listroom.SetItemText(i,3,b.m_column4);
m_listroom.SetItemText(i,4,b.m_column5);
m_listroom.SetItemText(i,5,b.m_column6);
m_listroom.SetItemText(i,6,b.m_column7);
i++;
MessageBox("成功添加一条客房信息");
}
b.Close();
UpdateData(FALSE);
}
3.3.2客房信息删除
实现代码:
voidkefangxinxi:
:
OnButtonDelete()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
longrow=m_listroom.GetSelectionMark();//返回列表控件中的一处文本
kefangxinxisetus;
CStringstr;
str=m_listroom.GetItemText(row,0);
if(str=="")
{
MessageBox("请选择一行!
");
}
else
{
if(MessageBox("确定要删除记录吗?
","删除询问",MB_OKCANCEL)==IDOK)
{
us.Open();
us.Move(row);
us.Delete();
m_listroom.DeleteItem(row);
}
}
}
3.3.3客房信息修改
实现代码:
voidkefangxinxi:
:
OnButtonEdit()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
kefangxinxisetgy;
UpdateData(TRUE);
inti=0,j=0;
CStrings;
gy.Open();
gy.MoveFirst();//指向第一条记录
for(i=0;i gy.MoveNext();//指向下一条记录 if(m_listroom.GetSelectionMark()! =-1)//检索列表视图控件的选择标记 { s=gy.m_column1; gy.Edit(); gy.m_column1=s; if(m_kefangdenji! =_T("")) gy.m_column2=m_kefangdenji; if(m_kefangleixing! =_T("")) gy.m_column3=m_kefangleixing; if(m_kefangjiage! =_T("")) gy.m_column4=m_kefangjiage; if(m_kefangzhuangtai! =_T("")) gy.m_column5=m_kefangzhuangtai; if(m_youwukongtiao! =_T("")) gy.m_column6=m_youwukongtiao; if(m_fuzeren! =_T("")) gy.m_column7=m_fuzeren; m_listroom.DeleteAllItems();//删除列表控件在中的行 gy.Update();//数据表更新 gy.Requery();//记录集更新 gy.MoveLast(); OnButtonAll(); MessageBox("成功修改一条客房信息"); } } 3.3.4客房信息查询 实现代码: voidkefangxinxi: : OnButtonCheck() { //TODO: Addyourcontrolnotificationhandlercodehere UpdateData(); kefangxinxisetset; CStrings; m_listroom.DeleteAllItems(); m_shuru.GetWindowText(s); if(s.IsEmpty()) { MessageBox("请输入查询内容! ","提示",MB_ICONSTOP); return; } else { intn=0; set.Open(); set.MoveFirst(); while(! set.IsEOF()) { set.m_column1.TrimRight(""); set.m_column2.TrimRight(""); set.m_column3.TrimRight(""); if(set.m_column1==s) { m_listroom.InsertItem(n,set.m_column1);//重新添加一行,参数n: 插入项的索引值,后面为插入的字符串 m_listroom.SetItemText(n,1,set.m_column2);//n: 行索引,1: 列索引,最后为: 文本字符串 m_listroom.SetItemText(n,2,set.m_column3); m_listroom.SetItemText(n,3,set.m_column4); m_listroom.SetItemText(n,4,set.m_column5); m_listroom.SetItemText(n,5,set.m_column6); m_listroom.SetItemText(n,6,set.m_column7); n++; } if(set.m_column2==s) { m_listroom.InsertItem(n,set.m_column1);//重新添加一行,参数n: 插入项的索引值,后面为插入的字符串 m_listroom.SetItemText(n,1,set.m_column2);//n: 行索引,1: 列索引,最后为: 文本字符串 m_listroom.SetItemText(n,2,set.m_column3); m_listroom.SetItemText(n,3,set.m_column4); m_listroom.SetItemText(n,4,set.m_column5); m_listroom.SetItemText(n,5,set.m_column6); m_listroom.SetItemText(n,6,set.m_column7); n++; } if(set.m_column3==s) { m_listroom.InsertItem(n,set.m_column1);//重新添加一行,参数n: 插入项的索引值,后面为插入的字符串 m_listroom.SetItemText(n,1,set.m_column2);//n: 行索引,1: 列索引,最后为: 文本字符串 m_listroom.SetItemText(n,2,set.m_column3); m_listroom.SetItemText(n,3,set.m_column4); m_listroom.SetItemText(n,4,set.m_column5); m_listroom.SetItemText(n,5,set.m_column6); m_listroom.SetItemText(n,6,set.m_column7); n++; } set.MoveNext(); } set.Close(); } } 3.3.5客房信息刷新 实现代码: voidkefangxinxi: : OnButtonAll() { //TODO: Addyourcontrolnotificationhandlercodehere kefangxinxisetgy; inti=0,j=0; CStrings; m_listroom.DeleteAllItems(); gy.Open(); while(! gy.IsEOF()) { m_listroom.InsertItem(j,""); m_listroom.SetItemText(i,0,gy.m_column1); m_listroom.SetItemText(i,1,gy.m_column2); m_listroom.SetItemText(i,2,gy.m_column3); m_listroom.SetItemText(i,3,gy.m_column4); m_listroom.SetItemText(i,4,gy.m_column5); m_listroom.SetItemText(i,5,gy.m_column6); m_listroom.SetItemText(i,6,gy.m_column7); i++; j++; gy.MoveNext(); } gy.Close(); } 3.3.6客房预定 由客房信息界面跳转客房预订界面代码: voidkefangxinxi: : OnBUTTONyuding() { //TODO: Addyourcontrolnotificationhandlercodehere yudingdlg; dlg.DoModal(); } 预定客房实现代码: voidyuding: : OnBUTTONyuding() { //TODO: Addyourcontrolnotificationhandlercodehere yudingsetb; UpdateData(); b.Open(); if(m_xingming==_T("")||m_xingbie==_T("")||m_kefangleixing==_T("")||m_fangjianhao==_T("")||m_yudingshijian==_T("")||m_baoliushijian==_T("")||m_lianxifangshi==_T("")) { MessageBox("请您将信息填写完整","温馨提示"); return; } else { inti; b.MoveFirst(); b.AddNew(); b.m_column1=m_xingming; b.m_column2=m_xingbie; b.m_column3=m_kefangleixing; b.m_column4=m_fangjianhao; b.m_column5=m_yudingshijian; b.m_column6=m_baoliu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 报告 客房 管理 系统