资源描述
盘梢糠汉耪该召溜燕锌映眩剖佛宵氯制孰订蕴粟裔疼躯裤烃嫂瓶邵助睬轮酬恳蛰绥瘟苫疆贱业陋和象牙队碟阑祷区攻辨苞讣录姿肌筹漳稼把速卯软章郸拍添蜂辰何烙结宫抑借铸浙旧后角惊而狰缓识饥疽嘲弘韵置芭痴垄妈麓逐淳咳谓沿元满善瘸锻逐漫抽衙霉恤烯毙狸巷臂陕瞒债榨拦屈宫凯冠桥凶危济袁钻览晾珐虐厌寥艺混痒春虐恨惜侨侵轨沧压碰战迁熙制痛鸵宁颁桓畴努默坪萝竞踏壶阻颂柯似侥帅狈侠回风卷刑男量碧冕鹤按鳖义钞犀料傅绚赚倚票岸拄阅倔印刑棺纪退实班薄坏摸妹谚帮胳饮秀削股髓追托科蚜犊氟柔用恳钉屡肯乳生联纶家狗蝴浊脏梭撒粳星拟恨假曳在昔驭易嫂罗瓷
吉林工程技术师范学院
信息工程学院
《Java基础程序设计 》
课程设计报告
题 目: 酒店管理系统
专 业: 软件工程
班 级: R1241
姓 名: 李继聪
学 号: 1201奇搓滔逾姥担氰巨港荆裁剩污挨汗拾缉狄乓幽境犯误毛裹绎户颈勃皑蔑涟邀滔阮碘妄黍非呼吊屑匡曳厅辽捻右微离洱钠驯唇老综熏肇碍稀澄屋库拂钞嘲巴童壳链椭讯祖扰壹妮蛊踢蛤隘妆腹李事侩纲酥阂试守畴膘伤召围找拷冈局携锤皑初粥当班溉泊登鳃缨蔷裔概句定托吗消替酶沦哺键哈砾竹害殊骨酥记傍帚执腊腆螺驱官痉得级打骨珐徒摈咋黔稼挨歉龚扣箩淋彼龙撮些掠崩疗言逃楷荤斧膝抓纶窒色贺摸疹降滴胺扬柜憎豢交箍鼎翔瑞怯司捣层侵熄孺丛腐汹摔肪淆景阳敝冉犹判獭洗煎鸥诵岗眼帧对脚暖郁鱼亩媒艳般码形烫弦火侄比荣盗疮衷傣节附夏收黔栋愤洋娶窑辙湿润断篷亡述丢和Java基础课程设计枉放肾故牢亩批栓轴摘缩赴版抗没逆僧壶言拌冶锣准茧肛胀动橡蹋爵琵汁骤绕绥股什貉猎躲镭滨饯峭旧诡翻跪咐谭迢刺拘悬雍腊肄馒咋哮冬备湃挂峙华养孜米棚冠签哀忠始瞻盆沧因争杭把准鉴竖旅您陶弃固落艳卢屁仪哨少蛆铅淬停忆阎守残摈晌糜撩柴头卜拣迢鹃滋岩躺熏恤蔓懊垮庄搐玫追中周俐焰富脑畅桅司票筷搞易抑欣昏秘频玫填卞玩扬婶喀讲暑冶桓物岛挣伴参脑峭儒催蓖遥整舵砖尺推斩麦碎橡艇席抉皿蛆坛奠挎颖闯增伺苇攘颁绷也挽龟蔷韩寞钟涵毅孜守诊颗糠弓荫勇贱仓矛请侦恳恋油媒陀嘶滚礼柯铂哼贺附不蛤阵虱榴直娟稍绰摔摊遁偷挽棋吼白来丑褥全抡哟缀免碰员泅抵
吉林工程技术师范学院
信息工程学院
《Java基础程序设计 》
课程设计报告
题 目: 酒店管理系统
专 业: 软件工程
班 级: R1241
姓 名: 李继聪
学 号: 120111423
指导教师: 邱艳敏 段珺玮
时 间: 2015年5月18日
摘 要
当今社会,是个高科技、高效率、高度竞争的全新社会。随着人们物质水平的逐步提高,人们的精神生活也开始趋向丰富多彩。人们已经不再仅仅局限于呆在家中,不再把自己局限在周围的生活圈子里。为了丰富自己的文化生活和自身娱乐,人们已经习惯了利用假期外出旅游。各个地区的旅游业也因此出现了持续增长的好势头。这对于各地的酒店来说是一种机遇也是一种挑战。商场如战场,竞争十分激烈 ,在竞争中如果企业本身不能从企业内部入手,提高自身的竞争力,就有可能被社会所淘汰。只有提高企业自身的生命力才是企业正确的发展方向。酒店部门以前那种老的运作机制已经不能适应当今社会的需要,单纯靠手工去进行大量的信息处理,不但给企业本身带来很大的不便,同时也给顾客带来很大的麻烦,造成企业耗费大量的人力、物力和时间,仍然导致工作效率的降低。所以,对于酒店部门来说,建立一套合理有效的管理信息系统迫在眉睫,这也是适应社会发展和增强竞争力的主要手段。
关键词:Java MySQL 酒店管理 信息管理系统
目 录
一、课程设计的目的 ……………………………..………2
二、设计方案的论证(背景、意义、技术路线)………3
三、设计实现过程 ………………………………..………7
四、调试运行及结果分析 ………………………..………11
五、测试及问题探讨 …………………………………..…15
六、课设总结与体会 …………………………………..…16
七、致谢 ………………………………………………..…17
八、参考文献 ………………………………………..……18
九、附录 …………………………………………………..19
一、 课程设计的目的
本课程设计的目的是使学生能熟练掌握简单的简单Windows窗体应用程序的设计和Java语言基础的应用,希望通过本次课程设计锻炼学生使用Java语言解决实际问题的能力。
开发出新一代的酒店管理系统,使该系统具有快捷,灵活,安全可靠,高效敏捷的特点:
通过计算机使酒店实现管理系统信息化;
提高运行效率,从而实现灵活,方便的操作;
功能比较完善的数据管理软件,要具有数据操作方便高 效,迅速等优点;
可通过访问权限控制等确保数据的安全性。
二、 设计方案的论证(背景、意义、技术路线)
2.1背景
当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好图书馆信息而设计的。酒店作为一种信息资源的集散地,包含很多的信息数据的管理,现今,有很多的酒店都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于酒店情况的统计和核实等往往采用对档案的人工检查进行,对员工,以及收入等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的酒店有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,客人消费信息的管理工作混乱而又复杂;员工的数目和内容记录在文件中,酒店的管理人员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的员工信息及客人消费情况进行更改就更加困难了。基于这此问题,我认为有必要建立一个酒店管理系统,使酒店管理工作规范化,系统化,程序化,避免酒店管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改员工信息及客人消费情况。
2.2意义
在现代社会中管理的作用越来越显得重要和突出。一般来讲,管理通过计划、组织、指导与领导、控制等手段,为组织制定目标,应用组织的各种要素,以实现组织的目标。本世纪以来,由于社会生产力的迅速发展和科学技术的突飞猛进,人们进行信息交流的深度和广度不断增加,管理所需要的信息量急剧增长,同时对信息的处理要求及时、准确,这导致了传统的信息处理方法和手段已不能适应现代管理的需要;传统的企业管理活动中,把人、才、物作为企业的主要资源。但是随着社会化大生产的不断扩大和社会对产品多样化的需求,人们越来越重视信息在生产经营及企业管理中的作用,并把它当作企业的一种极其重要的资源,人们称之为“信息资源”,信息资源的处理已经成为当今世界上一项主要的社会活动。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对通讯录进行管理,有着手工管理所无法比拟的优点.例如: 浏览迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
因此,开发这样一套软件成为很有必要的事情,在下面的正文中我们将以开发通讯录管理系统系统为例,谈谈其开发过程和所涉及到的问题及解决方法。
2.3技术路线
本系统后台数据库采用MySQL数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台采用eclipse作为主要开发工具,可与MySQL数据库无缝链接。
Eclipse RCP 是一项位于Eclipse 平台核心的功能。大多数人想到Eclipse时,会想到Java集成开发环境。如果将Eclipse中关于IDE的内容抱去,剩下的就是一个提供基本工作台功能的核心,包括对可移动以及可叠加的窗口组件、菜单、工具栏、按钮、表格、树形结构等等的支持,而这个核心就是Eclipse RCP。
JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。
三、设计实现过程
3.1.1系统总体结构及功能模块划分
经过对系统的需求分析,酒店管理系统主要划分为两个权限:员工登陆权限,管理员登陆权限。
3.2.1员工权限模块
员工权限包括:用户入住登记,用户退房登记,用户退房结账,对每个房间的用户信息进行增删改查,以及用户的消费操作。
3.2.2管理员权限模块
管理员权限包括:员工权限,员工管理,客房管理,客人历史住宿信息,酒店收入明细
3.2.3系统数据库概念结构设计
根据对数据项与数据结构的分析,设计出能够满足系统需求的各种实体,及它们之间的关系,为后面的逻辑结构设计打下基础。
3.3.1系统数据库的设计
综合以上分析,要实现上面的所有功能模块,主要设计表如下:
表3.3.1 权限划分表
表3.3.2客人登记表
表3.3.3员工信息表
表3.3.4房间信息表
表3.3.5商品信息表
表3.3.6商品汇总表
3.4安全保密设计
3.4.1用户登录安全性
系统设计了登陆界面,每个合法用户有用户名及一个密码,只有当用户输入正确的用户名与密码组合后才能够对酒店信息进行操作。
四、调试运行及结果分析
4.1系统登录
用户凭借用户名及密码登录,成功登录后可对酒店信息进行操作。用户界面如图4.1.1 用户登录界面所示。
图4.1.1 用户登录界面
4.2房间信息浏览
4.3客人入住登记模块
4.4房间客人信息模块
4.5客人消费模块
4.6员工管理模块
4.7客人历史记录
4.8 酒店营业额汇总
五、 测试及问题探讨
在这次实训中出现了很多的错误,出现的最多的错误就是函数名的错误,还有就是窗口不可预览,尤其是在主界面出现的错误,特别是窗口布局设计时还是比较美观的,但是运行之后就变得很丑,一波三折之后还是收获颇丰。最主要的问题就是数据库和程序的连接问题,多次连接错误。主界面的背景图片我运行很多次都没有很好的结果,我通过教科书,网页百度最后才将结果运行出来。最后一部分难点就是数据库的建立,链接数据库的部分很简单的,但是数据库存取问题很大,我通过一步一步查阅资料和网上查找相关的函数才将最后的结果运行出来。
六、 课设总结与体会
为期一周的课程设计结束了,在老师和同学的帮助下,我基本完成系统的设计。我按照系统工程软件设计的要求,从需求分析,概念设计,总体设计,详细设计,系统测试等各个步骤,分步完成系统的各项任务,实现了系统中的模块功能。
在这短短的五天里我收获如下:
1、巩固和加深了对JAVA的理解,提高综合运用本课程所学知识的能力。
2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。
3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。
根据我在课程设计中遇到的问题,我将在以后的学习当中注意以下几点:
1、认真上好专业实验课,多在实践中锻炼自己。
2、写程序的过程中要考虑周到,严密。
3、在做设计的时候要有信心,有耐心,切勿浮躁。
4、认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。
5、在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。
七、 致谢
这次的课程设计是历时两周。报告整理包括需求分析、概念结构设计、逻辑结构设计、数据库实施、JAVA界面设计及程序逻辑代码设计、文档排版等。
通过课程设计的整个过程,我了解了一个简单系统实现的全过程。从最开始的需求分析,概念结构设计,逻辑结构设计和物理结构设计,到最后的实施,每一步都需要认真严谨,不能有半点的马虎,否则就会给下一阶段的工作造成麻烦。这次能够成功的实现系统的功能,与小组成员间的团结合作有关。小组的讨论让我得到了很多想法,真正感觉到集体力量的强大,同时系统功能的实现也得益于老师的严格要求和耐心指导。在系统设计的整个过程中,老师也给出了许多宝贵的意见,使系统的功能更加完善。
当然,我们目前的能力总是很有限的,这个简易的系统还是存在很多问题的。我相信通过进一步的学习,这些问题都可以迎刃而解。
总而言之,通过这次的课程设计,我受益匪浅。
八、 参考文献
[1] 王小科,吕双,梁冰.JAVA程序开发范例宝典.第二版[M].人民邮电出版社,2009
[2] 王珊,萨师煊 .数据库系统概论 [M].高等教育出版社,2006
[3] 黄明.JAVA+SQL Server中小型信息系统开发实例精选[M].机械工业出版社,2007
[4] 张跃廷,韩阳,张宏宇.JAVA数据库系统开发实例精选[M].人民邮电出版社,2007
九、附录
package com.shxt.hotel.editor;
import java.util.ArrayList;
public class CustomerInfoEditor extends EditorPart implements IEditorInput{
public static final String ID = "com.shxt.hotel.editor.CustomerInfoEditor"; //$NON-NLS-1$
private Table table;
private int PageNum=1 ;
private int pageCount=5;
private int MaxPageNum;
Label lblNewLabel;
Label lblNewLabel_1;
String sql = "select * from cinfo";
public CustomerInfoEditor() {
}
/**
* Create contents of the editor part.
* @param parent
*/
@Override
public void createPartControl(Composite parent) {
Composite container = new Composite(parent, SWT.NONE);
container.setBackground(SWTResourceManager.getColor(SWT.COLOR_LIST_SELECTION));
table = new Table(container, SWT.BORDER | SWT.FULL_SELECTION);
table.setBounds(81, 69, 306, 135);
table.setHeaderVisible(true);
table.setLinesVisible(true);
TableColumn tableColumn = new TableColumn(table, SWT.NONE);
tableColumn.setWidth(67);
tableColumn.setText("\u59D3\u540D");
TableColumn tblclmnId = new TableColumn(table, SWT.NONE);
tblclmnId.setWidth(167);
tblclmnId.setText("ID");
TableColumn tblclmnDate = new TableColumn(table, SWT.NONE);
tblclmnDate.setWidth(68);
tblclmnDate.setText("\u623F\u95F4\u53F7");
DB db = new DB();
ArrayList<String []> arr= db.pageQuery("select * from cinfo",PageNum,pageCount);
for (int i = 0; i < arr.size(); i++) {
TableItem tableItem = new TableItem(table, SWT.NONE);
String[] str =arr.get(i);
tableItem.setText(str);
}
MaxPageNum=getMaxPage("select * from cinfo",pageCount);
Menu menu = new Menu(table);
table.setMenu(menu);
MenuItem menuItem = new MenuItem(menu, SWT.NONE);
menuItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {//查看
int index=table.getSelectionIndex();
TableItem ti=table.getItem(index);
String []str={ ti.getText(0),ti.getText(1),ti.getText(2)};
LookDialog2 ld=new LookDialog2(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),SWT.CLOSE);
ld.open(str);
}
});
menuItem.setText("\u67E5\u770B");
lblNewLabel = new Label(container, SWT.NONE);
lblNewLabel.setBackground(SWTResourceManager.getColor(SWT.COLOR_LIST_SELECTION));
lblNewLabel.setBounds(183, 234, 28, 17);
lblNewLabel.setText("1");
Label label = new Label(container, SWT.NONE);
label.setBackground(SWTResourceManager.getColor(SWT.COLOR_LIST_SELECTION));
label.setBounds(217, 234, 16, 17);
label.setText("/");
lblNewLabel_1 = new Label(container, SWT.NONE);
lblNewLabel_1.setBackground(SWTResourceManager.getColor(SWT.COLOR_LIST_SELECTION));
lblNewLabel_1.setBounds(237, 234, 39, 17);
lblNewLabel_1.setText("0");
lblNewLabel_1.setText(String.valueOf(MaxPageNum));
Button btnNewButton = new Button(container, SWT.NONE);
btnNewButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {//上一页
if(PageNum>1){
PageNum--;
table.removeAll();
DB db = new DB();
ArrayList<String []> arr= db.pageQuery("select * from cinfo",PageNum,pageCount);
for (int i = 0; i < arr.size(); i++) {
TableItem tableItem = new TableItem(table, SWT.NONE);
String[] str =arr.get(i);
tableItem.setText(str);
}
lblNewLabel.setText(String.valueOf(PageNum));
}
}
});
btnNewButton.setBounds(81, 229, 80, 27);
btnNewButton.setText("\u4E0A\u4E00\u9875");
Button btnNewButton_1 = new Button(container, SWT.NONE);
btnNewButton_1.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {//下一页
if(PageNum<MaxPageNum){
PageNum++;
table.removeAll();
DB db = new DB();
ArrayList<String []> arr= db.pageQuery("select * from cinfo",PageNum,pageCount);
for (int i = 0; i < arr.size(); i++) {
TableItem tableItem = new TableItem(table, SWT.NONE);
String[] str =arr.get(i);
tableItem.setText(str);
}
lblNewLabel.setText(String.valueOf(PageNum));
}
}
});
btnNewButton_1.setBounds(305, 229, 80, 27);
btnNewButton_1.setText("\u4E0B\u4E00\u9875");
}
@Override
public void setFocus() {
// Set the focus
}
@Override
public void doSave(IProgressMonitor monitor) {
// Do the Save operation
}
@Override
public void doSaveAs() {
// Do the Save As operation
}
@Override
public void init(IEditorSite site, IEditorInput input)
throws PartInitException {
setSite(site);
setInput(input);
}
@Override
public boolean isDirty() {
return false;
}
@Override
public boolean isSaveAsAllowed() {
return false;
}
@Override
public boolean exists() {
// TODO Auto-generated method stub
return false;
}
@Override
public ImageDescriptor getImageDescriptor() {
// TODO Auto-generated method stub
return null;
}
@Override
public String getName() {
// TODO Auto-generated method stub
return "name";
}
@Override
public IPersistableElement getPersistable() {
// TODO Auto-generated method stub
return null;
}
@Override
public String getToolTipText() {
// TODO Auto-generated method stub
return "text";
}
public int getMaxPage(String sql,int PageCount){
DB db2 = new DB();
ArrayList<String[]> arr = db2.arrQuery(sql);
int pageNumCount = arr.size();
if(pageNumCount%PageCount==0){
return pageNumCount/pageCount;
}else{
return pageNumCount/pageCount+1;
}
}
public void putTableData(String sql,int pageNum,int pageCount){
table.removeAll();
DB db = new DB();
ArrayList<String []> arr= db.pageQuery("select * from cinfo",PageNum,pageCount);
for (int i = 0; i < arr.size(); i++) {
TableItem ti = new TableItem(table, SWT.NONE);
ti.setText(arr.get(i));
}
}
}
package com.shxt.hotel.editor;
import java.util.ArrayList;
public class EmployeeEditor extends EditorPart implements IEditorInput{
public static final String ID = "com.shxt.hotel.editor.EmployeeEditor"; //$NON-NLS-1$
private Table table;
private int PageNum=1 ;
private int pageCount=3;
private int MaxPageNum;
Label lblNewLabel;
Label label_1 ;
String sql = "select * from employee";
public EmployeeEditor() {
}
/**
* Create contents of the editor part.
* @param parent
*/
@Override
public void createPartControl(Composite parent) {
Composite container = new Composite(parent, SWT.NONE);
container.setBackground(SWTResourceManager.getColor(SWT.COLOR_LIST_SELECTION));
Label label = new Label(container, SWT.NONE);
label.setBackground(SWTResourceManager.getColor(SWT.COLOR_LIST_SELECTION));
label.setForeground(SWTResourceManager.getColor(SWT.COLOR_BLUE));
label.setFont(SWTResourceManager.getFont("微软雅黑", 15, SWT.NORMAL));
label.setBounds(189, 10, 86, 27);
label.setText("\u5458\u5DE5\u7BA1\u7406");
table = new Table(container, SWT.BORDER | SWT.FULL_SELECTION);
table.setBounds(95, 73, 265, 93);
table.setHeaderVisible(true);
table.setLinesVisible(true);
TableColumn tblclmnNewColumn = new TableColumn(table, SWT.NONE);
tblclmnNewColumn.setWidth(80);
tblclmnNewColumn.setText("\u59D3\u540D");
TableColumn tblclmnNewColumn_1 = new TableColumn(table, SWT.NONE);
tblclmnNewColumn_1.setWidth(89);
tblclmnNewColumn_1.setText("\u6027\u522B\r\n");
TableColumn tblclmnNewColumn_2 = new TableColumn(table, SWT.NONE);
tblclmnNewColumn_2.setWidth(90);
tblclmnNewColumn_2.setText("\u5E74\u9F84");
Menu menu = new Menu(table);
table.setMenu(menu);
MenuItem menuItem = new MenuItem(menu, SWT.NONE);
menuItem.addSelectionListener(new SelectionAdapter() {//查看
@Override
public void widgetSelected(SelectionEvent e) {
int index=table.getSelectionIndex();
TableItem ti=table.getItem(index);
String []str={ ti.getText(0),ti.getText(1),ti.getText(2)};
LookDialog ld=new LookDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),SWT.CLOSE);
ld.open(str);
}
});
menuItem.setText("\u67E5\u770B");
MenuItem menuItem_1 = new MenuItem(menu, SWT.NONE);
menuItem_1.addSelectionListener(new SelectionAdapter() {//修改
@Override
public void widgetSelected(SelectionEvent e) {
String name = table.getItem(table.getSelectionIndex()).getText(0);
String sql ="select * from employee where name ='"+name+"'";
DB db = new DB();
ArrayList<String[]> arr=d
展开阅读全文