1、2系统开发技术概述2.1开发语言简介Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。Java平台由Java虚拟机(Java Virtual Machine)和Java应用编程接口(Application Programming Interface、简称API)构成。Java应用编程接
2、口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。非常实用。(1) Java语言是简单的。Java语言的语法与C语言和C+语言很接近,使得大多数程序员很容易学习和使用Java。(2)Java语言是一个面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单
3、继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。(3)Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。(4)Java语言是健壮的。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。(5) Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。(6)Java语言是体系结
4、构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。(7)Java语言是可移植的。这种可移植性来源于体系结构中立性。Java系统本身也具有很强的可移植性,Java编译器是用Java实现,Java的运行环境是用ANSI C实现的。(8)Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。(9
5、)Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。(10)Java语言是多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。(11)Java语言是动态的。Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。2.2研究内容本系统用java语言来编写宾馆管理系统,数据库用Microsoft SQL Server 2000来连接系统,通过C/S模式完成整个设计工作。在设计系统是要实现以下功能模块:(1)登录界面部分登陆界面部分,包括用户名输入,密码输入。
6、(2)主界面部分房间管理模块:客房预定管理模块,包括身份录入,房间编号,房间信息;房间设置管理模块,包括信息录入,添加,查询,删除。营业管理模块:点菜/结账,酒菜设置,添加商品和商家信息。系统管理模块:用户密码重置,管理用户。(3)数据库部分 用eclipse进行数据库连接以及对数据的处理。2.3拟采用的研究思路方法本系统的设计大体可分为两个模块:前台用户操作系统、后台管理系统。用Java语言来编写两个模块,数据库用Microsoft SQL Server 2000来连接系统。本系统以Java语言对系统进行开发该系统主要采用eclipse开发实现各方面的功能。 同时该系统采用SQL Serve
7、r作为数据库平台,既可以被应用程序访问,又可在后台操作,完成对数据的整理等。基于java的小型宾馆管理系统系统是典型的C/S,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。因此本人结合基于java的小型宾馆管理系统的要求,对SQL Server2000数据库管理系统、SQL语言原理、进行了较深入的学习和应用,主要完成对基于java的系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。基于java的宾馆管理系统系统包括三类用户:操作员、C/S系统后台管理员。前台部分主要包括用户登录用户及相关信息管理等功能后台部分由管理员使用,主要包括对用户的管理
8、的小型宾馆管理系统。3概要设计3.1系统概述宾馆管理系统系统用java语言来编写宾馆管理系统,数据库用Microsoft SQL Server 2000来连接系统,通过C/S模式完成整个设计工作。本系运用了Java Swing,即抽象窗口工具包,它是Java的平台独立的窗口系统。用户界面:采用Windows的通用图形界面,对用户友好,管理端设备以pc机和鼠标键盘输入为主。界面设计应遵循:(1)尽量保持一致性:界面规范应遵循MS Windows软件界面的规范。(2)设计完整的对话过程:系统的每一次对话都应该有明确的次序。(3)提供简单的错误处理机制。(4)提供信息反馈:用多种信息提示用户当前软件
9、运行状态,界面元件的功能。(5)操作可逆:其动作可以是单个的操作,或者是一个相对独立的操作序列。(6)设计良好的联机帮助。本系运用了Java AWT以及Swing,即抽象窗口工具包,它是Java的平台独立的窗口系统,AWT工具图形和用户界面器件工具包。在设计系统是要实现以下主要功能模块:详细模块见表3-1。表3-1功能模块图序号功能名称功能需求分析描述1用户登录子系统用户登录系统用户按级限登录2房间管理子系统房间管理系统客房预定、客房设置功能3营业管理营业管理系统点菜、酒菜、收银、查询供应商信息4信息查询子系统信息查询系统按不同方式了解宾馆的营销情况5系统管理子系统系统管理退出系统重置密码、管
10、理用户6用户帮助帮助使用手册、系统退出3.2功能模块详细描述系统流程图如图3-1所示。图3-1系统流程图根据以上的系统功能分析,可以画系统的功能模块图,本系统包含了客房管理、营业管理、信息查询、系统管理以及帮助功能模块,如图3-2所示。图3-2功能模块图该系统分为超级管理员、管理员、操作员三个权限操作,它们可实现的功能分别是:(1)超级管理员房间管理、营业管理、信息管理、系统管理、帮助。(2)管理员房间管理、营业管理、信息管理、系统管理。(3)操作员客房设置、酒菜设置、重置密码。4系统详细设计4.1前台系统详细设计4.1.1各功能模块详细介绍(1)管理人员登录数据库调置了管理人员登录用户名密码
11、,若登录信息与数据库不符则提示“错误的用户名及密码”,需重新输入,如果输入错误三次,自动退出系统。登陆页面截图,如图4-1所示。图4-1系统登陆图核心代码:public void login_actionPerformed(ActionEvent e) /取得用户输入的用户名 String operator=username.getText(); /取得用户输入的密码 char temp=password.getPassword();String tempPass=new String(temp); /检查用户是否为合法用户 if(cUser.isValidUser(operator,temp
12、Pass)=false) JOptionPane.showMessageDialog(this, 错误的用户名或密码, 错误, JOptionPane.WARNING_MESSAGE);logincount+; /如果输入错误三次,自动退出系统 setBounds(inset, inset, screenSize.width - inset*2, screenSize.height-inset*2);frame.setLocation(screenSize.width - frameSize.width) / 2, (screenSize.height frameSize.height) /将
13、当前用户的名称传送给主界面 frame.setOperator(operator); /设置用户可以使用的功能frame.setMenuStatus(userType); /显示主界面 frame.setVisible(true); /关闭登陆窗口this.dispose();(2)客房预订由操作员填写客人的信息并进行客房登记。该功能将客人的私人信息以及所定的房间记录并存入数据库。如图4-2所示。图4-2房台预定图void ok_actionPerformed(ActionEvent e) /验证输入参数的合法性 boolean occupied=this.roomOccupied(roomN
14、o.getSelectedItem().toString(); Connection conn=null; void cancel_actionPerformed(ActionEvent e) this.dispose(); (3)客房设置根据需求设置房间详细信息如:客房编号、所属部门、客房类型以及可容纳人数等。并可添加删除房间号,如图4-3所示。图4-3房台设置图 void addRoom_actionPerformed(ActionEvent e) if(roomNo.getText().trim().equals() 客房编号不能为空错误,JOptionPane.ERROR_MESSAG
15、E); return; boolean roomExist=this.roomExist(); JButton refreshButton=DBNavToolBar.getRefreshButton(); refreshButton.doClick();已成功增加该客房操作,JOptionPane.PLAIN_MESSAGE); void deleteRoom_actionPerformed(ActionEvent e) PreparedStatement ps=null;已成功删除该客房 JOptionPane.PLAIN_MESSAGE); (4)点菜/结账输入客人所点食物的信息以及房间号
16、、容纳人数及顾客的姓名联系电话,并结账。如图4-4所示。图4-4点菜结账图void doOrder_actionPerformed(ActionEvent e) String roomId=roomNo.getSelectedItem().toString(); boolean occupied=this.roomOccupied(roomId); if(!occupied) 该房台没有客人!提示 MenuInfo mInfo= new MenuInfo(null,菜单列表,true,roomNo.getSelectedItem().toString(),customer.getText(),
17、cusTel.getText(),this.operator); mInfo.setLocation(screenSize.width - frameSize.width) / 2, (screenSize.height frameSize.height) / 2); mInfo.setVisible(true);(5)酒菜设置设置酒菜详细信息如:酒菜的生产地点,所属单位、批发价、零售价等,如图4-5所示。图4-5酒菜设置图 if(this.foodExist(foodName.getText() JOptionPane.showMessageDialog(this, 已存在该名称的酒菜 re
18、turn; refreshButton.doClick();已成功增加该食品 void deleteFood_actionPerformed(ActionEvent e) if(ps.executeUpdate()=1) /刷新列表显示 JButton refreshButton = DBNavToolBar.getRefreshButton();已成功删除该食品 JOptionPane.PLAIN_MESSAGE); (6)商品入库添加入库信息如:商品名称、供应商、单价、经手人、数量等功能实现截图,如图4-6所示。图4-6商品入库void ok_actionPerformed(ActionE
19、vent e) if(price.getText().trim().equals()|discount.getText().trim().equals()|amount.getText().trim().equals(单价、数量和折扣不能为空,无折扣请输入1!警告 JOptionPane.ERROR_MESSAGE); temp=amount.getText().trim(); void commodity_actionPerformed(ActionEvent e) if(commodity.getSelectedIndex()=-1) String selectedFood=commodi
20、ty.getSelectedItem().toString(); supplier.setText(foodSupplier.get(selectedFood).toString();(7)供应商信息查询供应商信息如图4-7所示。图4-7供应商信息public SupplierConfiguration(String title,boolean resizable,boolean closable,boolean maximizable,boolean iconifiable) super(title,resizable,closable,maximizable,iconifiable);(8
21、)按酒菜查询按酒菜查询得知宾馆的营业情况,宾馆便可以根据情况实时地调整营销策略如图4-8所示。图4-8查询酒菜消费情况图void byTime_actionPerformed(ActionEvent e) void ok_actionPerformed(ActionEvent e) String startDate; String endDate; QueryByFoodResult dlg = new QueryByFoodResult(查询结果,foodName.getSelectedItem().toString(),startDate,endDate); dlg.setVisible(
22、true); desktop.add(dlg); (9)重置密码管理人员修改密码,如图4-9所示。图4-9密码重置图 MainFrame k=(MainFrame)this.getOwner(); String operator=k.getOperator(); if(!cUser.isValidUser(operator,tempPass) JOptionPane.showMessageDialog(this,错误的原密码,JOptionPane.WARNING_MESSAGE); elsepass1.equals(pass2)两次输入的新密码不一致密码已成功修改 (10)管理用户添加删除用户,
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2