版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
案例1基于WebService的无线餐饮管理系统1.1现行系统概述1.1.1开发背景春景海鲜酒楼位于烟台市莱山区黄海路附近,面积500平方米,近20个雅间,一个零点大厅,可容乃300人就餐,菜品以本地海鲜、鲁菜、家常菜为主,客源以政府、机关、事业单位团体等为主,春景酒楼以其海鲜、鲁菜特色和决策层完善的经营理念,占领着烟台市餐饮行业的很大部分市场。1.1.2组织结构分析目前,春景海鲜酒楼主要划分为六个部门:经理部、人事部、餐厅部、后厨部、财务部、后勤部。春景海鲜酒楼组织结构图如图1-1所示。图1-1春景海鲜酒楼组织结构图各个部门的岗位划分及职责如下:经理部设有总经理一个,副经理两个。副经理分别管理人事部、餐厅部、后厨部和财务部、后勤部。经理部的主要职责:负责酒楼员工的任职、财务管理、酒楼经营及高层决策等工作。人事部设有人事主管一个。人事部的主要职责:负责制定和实施酒楼人才资源规划;机构设置与编制管理;人事管理的规章制度建设;人员调配工作;员工人事任免、业绩考核、劳资发放等工作。餐厅部设有餐厅主管一个。餐厅主管下设前厅领班、楼层领班、跑菜主管、酒水主管和吧台各一个。主要工作人员有迎宾员、服务员、跑菜员、酒水员。餐厅部的主要职责:负责酒楼的迎宾接待、前台点菜、传菜、酒水提供等工作。后厨部设有行政总厨一个。行政总厨下设厨师长一个,厨师长下设炉头主管、冷菜主管、配菜主管、点心主管各一个,主要工作人员有蒸煲厨师、冷菜厨师、配菜厨师、点心厨师。后厨部的主要职责:负责酒楼的菜例拟定、菜例制作分工及菜例制作等工作。财务部设有财务主管一个,主要工作人员有库管员、收银员和会计。负责酒楼的收银结账、财务管理等工作。后勤部设有后勤主管一个,主要工作人员有采购员、维护员、保洁员。负责酒楼的原料采购、设施维护和卫生管理等工作。1.1.3现行系统运行状况分析烟台市春景海鲜酒楼目前使用的系统,主要有人事管理、预定管理、点菜管理、财务管理四个功能模块,分别负责了人事管理、预定接待、顾客点菜、财务上报等功能。虽然现行系统已经脱离了传统的手动操作,在一定程度上减轻了工作人员的劳动强度,但现行系统各功能之间信息不能很好的交互处理,并未充分体现餐饮业务处理的智能化和人性化;其次,现行系统是基于C/S结构的客户机/服务器模式,软件使用时每台计算机都要装上客户端,这样既占用了终端计算机CPU资源,又给软件升级带来了不便;最后,会员管理功能在现有系统功能中并未体现,已经不适应现代餐饮行业经营管理中客户关系管理理念的要求。所以需要重新开发一个系统来辅助管理者,提高管理效率和酒楼的经营效益。1.2系统需求分析1.2.1系统目标与需求分析新系统的设计宗旨是方便厨房与前台和服务生之间的信息交流,酒店管理人员可以通过此系统了解厨房工作人员的工作情况,并能实时监控当前餐厅的预定情况、上座情况、就餐客人数量、每桌客人消费金额、消费明细,还包括整个餐厅当前收银结算的情况和收入明细等。预定接待⑴远期预订:可提前任意天、周、月、年预订,记录客人的姓名、到达时间、预订的时间、餐台和订金及预订菜品、及客人特别交代的事项。可以查询预订、取消预订和打印预订表,可以避免餐台的重复预订和漏订,支持同一餐台不同时间多次预订,可以方便地从已建立的客户资料中选择预订客户。⑵餐台状态查看:实时动态显示餐台状态和历史预订信息,可以方便切换预订时间,快速查看预订情况,并可按所有餐台、已预订餐台、未预订餐台过滤显示。⑶预订人抵达后可自动开台,所预订菜品和订金自动转入。前台管理⑴开台点菜:包括开台、换台、并台、退台,支持一台多账单,可实时动态显示餐台状态,包括点菜、退菜、加菜、催菜、等叫等功能,可按菜品编码、拼音字头、菜品名称、菜品类别等多种方式点菜,提高了点菜速度。⑵收银结账:支持现金、会员储值卡的混合结账。支持按菜品打折、整账单会员打折(按预设的打折方式执行),支持预订订金转结账。⑶换班交接:可记录当班情况,查询已结账单和未结账单,打印班结表。后厨分单打印⑴分单:分单就是要解决哪道菜由哪个厨房制作的问题。前台点完菜后,软件会自动按照预先的设定自动进行分单,即不同的菜品按照设定由不同的厨房打印机进行打印。打单:厨房打印机配备网络打印服务器,用以支持远程打印,只有打过单子的菜才说明厨房已经开始制作了。出菜:菜品制作完毕,传菜部通过扫描条码确认出菜,扫过单子的菜品说明已经在送菜的途中了。特殊情况:服务员用手持点菜机或前台管理软件点菜时,将客人所点的菜品分为“即起”与“等叫”两种状态,“即起”就是立即制作,“等叫”是指等客人叫上菜时才开始制作,这些信息都会在厨房制作单上打印出来。同时客人如有催菜信息,通过终端操作,系统会自动打印提示信息以提示后厨加紧制作该菜。1.2.2系统开发方法的选择在系统开发的早期,由于缺乏系统开发思想,没能形成工程的概念,以至于60年代出现了所谓“软件危机”,也促使了一门新科学——“软件工程”的诞生。管理信息系统工作者对信息系统的开发提出了许多开发方法,其中常用的有结构化法(StructuredDevelopment)、原型法(PrototypingDevelopment)、面向对象法(Object-OrientedDevelopment)三种。结构化法结构化法是基于系统的思想,系统工程的方法,以用户至上为原则,采用结构化、模块化等手段对信息系统进行分析、设计和实施。在实际开发过程中,对应于系统开发的一般过程(见图1),主要应用的结构化设计方法有结构化分析(StructuredAnalysis),结构化设计(StructuredDesign),结构化编程(StructuredProgram)。原型法原型法与传统的生命周期法LC相比滨弃了一步步周密细致地调查、分析、整理文档、再进行逻辑设计、物理设计等繁琐过程而快速构造系统的物理原型。但是,并不能说开发人员用原型法就没有一个分析、设计、实施的过程。实际上开发人员在运用原型法时有意识或无意识地对系统进行了一个分析、设计、比较的过程,才能快速构造一个原型系统,这个原型系统蕴含着开发人员分析、设计、比较的思路,只不过开发人员直接用物理模型表达了对系统的理解,而省却了结构化法中的大量的文档资料。面向对象法面向对象法(OO)是近年来发展起来的一种系统开发方法,它与原型方法的设计与实现有一定的共同之处。不同的是,面向对象法是一种从系统调查分析之后就开始面向对象进行分析的开发方法。它强调系统设计之前的系统分析,强调以系统中的数据或信息为主线,全面、系统、详尽地描述系统的信息,建立系统的信息模型,指导系统的设计。面向对象法按系统开发的一般过程分为面向对象分析(OOA)、面向对象设计(OOD)、面向对象编程(OOP)。由于本系统是我院自行开发,以前也没开发过类似系统,而结构化系统开发方法强调系统开发过程的整体性和全局性,强调在整体优化的前提下考虑具体设计的问题,即自顶向下的开发方法。严格的区分系统开发的各个阶段,强调一步一步的进行严格的系统设计和分析,对每一步工作及时总结,发现问题及时反馈和纠正,避免了开发过程的混乱状态,在目前被广泛采用。所以本系统的开发方法采用了结构化开发方法。1.2.3系统开发的可行性研究在新的系统开发之前,要进行可行性研究,主要包括技术可行性、经济可行性和社会可行性三方面。1技术可行性研究
先进的软件技术、数据库技术和网络技术作为计算机技术的一部分在过去的几十年中都得到了迅猛的发展,这为本系统的开发提供了技术后盾。本系统开发基于.Net框架的管理信息系统架构;设计模式采用MVC,开发环境采用微软的MicrosoftVisualStudio2005,应用服务器选择IISWeb服务器,数据库选择MicrosoftSQLServer2005;在技术上讲有一定的挑战性,但具有很高的研究价值。经济可行性研究在现代的餐饮行业,餐饮经营管理仍是一项比较繁重的工作,把点菜、预定、财务等的工作交给计算机来处理,充分利用计算机运算速度快的优势来减轻工作人员的负担,成为一项亟待解决的问题。实现酒店经营的信息化,可以大大减轻酒店工作和管理人员的负担,节省大量的人力、物力。而且本系统系本校自己研究开发,拥有版权。社会可行性研究本系统的使用者都是计算机能力很低的工作人员,本系统开发时充分考虑了用户的操作习惯,系统运行时尽量减少数据的键盘录入,界面通过浏览器输出,其中的无线点菜系统,是运用比较常见的PDA作为客户端运行环境,可以用笔触方式进行操作,简单易懂。本系统开发前的准备活动、开发以及系统的运行等活动不违反现行的法律法规,没有对他人的专利、版权构成侵犯,与现行的管理制度没有冲突。1.3结构化系统分析1.3.1系统业务流程分析本章主要列出各分系统的主要业务流程,以体现本酒楼管理信息系统的主要业务及部门之间的数据关系,为系统分析提供依据。业务流程参考图例参见图1-2。业务实体 业务处理决策与判断 数据存储单据 业务流业务实体 业务处理决策与判断 数据存储单据 业务流图1-2业务流程图参考图例会员管理业务流程业务描述:顾客可持春景海鲜酒楼消费结账单到柜台办理会员卡,会员卡可以当成储值卡使用,可充值、兑现,系统会根据会员累计消费金额升级会员等级。业务流程图如图1-3所示。
成功顾客顾客消费验证会员档案顾客资料”领取厂\- 无效结账单打印消费台帐会员卡消费结账单按消费累计金额升级会员登记会员资料失败---添加记录柜台办卡读取会员信息图1-3会员管理业务流程图预定管理业务流程业务描述:接待顾客前台预定,登记预定信息业务流程图如图1-4成功顾客顾客消费验证会员档案顾客资料”领取厂\- 无效结账单打印消费台帐会员卡消费结账单按消费累计金额升级会员登记会员资料失败---添加记录柜台办卡读取会员信息图1-3会员管理业务流程图预定管理业务流程业务描述:接待顾客前台预定,登记预定信息业务流程图如图1-4所示。验证非会员历史预定记录.预定台帐 k检索匹配餐台推荐餐台/菜例生成预定订单图1-4预定管理业务流程图无线点菜业务流程业务描述:顾客进店,服务员安排入座,顾客点菜后,服务员通过手持终端提交点菜清5.收银结账业务流程业务描述:顾客消费结束后到柜台结账,顾客可凭会员卡享受相应折扣优惠。业务流程图如图1-6所示。卡号密,会员卡顾客4余额验证”/现金消费结账单消费台帐失败成功消费小票修改消费账单状态修改餐台状态餐台台帐 :柜台结账读取账号余额打印结账单卡号密,会员卡顾客4余额验证”/现金消费结账单消费台帐失败成功消费小票修改消费账单状态修改餐台状态餐台台帐 :柜台结账读取账号余额打印结账单提醒充值图1-6收银结账业务流程图1.3.2数据流程分析数据流程分析是对业务流程的抽象,数据流程图从数据传递和加工的角度,以图形的方式刻画数据流输入、输出、存储和处理的逻辑关系。数据流程图是结构画系统分析的主要工具,它表示了系统内部信息的流程,并表示系统的逻辑处理的功能,也称逻辑数据流程图用到的基本图例参考,见图1-7。本系统的分层数据流程图参见图1-8至图1-14。外部实体数据存储数据处理数据流图1-7数据流程图参考图例图1-8餐饮管理系统顶层数据流程图D9DID2D3D5D6■P^经理D8餐台预定占用信,息餐台预定参考台帐员工信息考勤信息预定台帐预定信息餐台台帐会员资料工作人员会员管理子系统菜例信息菜例信息员工信息 ►一顾客消费记录D10预定信息D10消费台帐会员档案人事档案查询统计子系统营业统计—信息一各部门考勤—信息—菜例台帐考勤台帐再、~ 信息D9DID2D3D5D6■P^经理D8餐台预定占用信,息餐台预定参考台帐员工信息考勤信息预定台帐预定信息餐台台帐会员资料工作人员会员管理子系统菜例信息菜例信息员工信息 ►一顾客消费记录D10预定信息D10消费台帐会员档案人事档案查询统计子系统营业统计—信息一各部门考勤—信息—菜例台帐考勤台帐再、~ 信息收银结账子系统会员信息人事管理子系统餐台信息无线点菜子系统各部门人事部P1预定管理子系统1图1-9餐饮管理系统第一层数据流程图图1-10预订管理数据流程图D5P2进店消费P2顾客D2D1预定菜例信息D9会员档案预定台帐消费记录D10消费台帐会员餐台台帐餐台信息■P24推荐餐台\菜例检索历史消费信息餐台预定占用信息餐台预定参考台帐检索匹配餐台T非会员■P2.3 P25修改餐台状态—P2b—手持终端点菜判断是否会员图1-11无线点菜数据流程图顾客柜台打印消费清单手持终端下单顾客催菜缓菜D3菜例台帐D9预定台帐D2•、一丿* P26.4 修改上菜
状态顾客加菜后厨分单
打印上菜小票图1-12无线点菜第二层数据流程图图1-13收银结账数据流程图
图1-14会员管理数据流程图1.3.3数据字典本系统的数据字典的例子如表1-1至1-6所示。(条目尽可能多些)表1-1数据元素条目编号名称别名说明数据值类型取值范围长度有关数据结构1-001菜例编码food_code酒店菜例编码离散0001-99994菜例表1-002消费清单编码sell_list_code消费单流水号离散xxxxxxxxOOOl—xxxxxxxx999912消费清单表、消费清单详细表表1-2数据结构条目编号名称说明结构有关数据流2-001菜例表菜例基本信息菜例编码、菜例名称、菜例简拼、菜例类别、计价单位、成本单价、销售单价、服务员提成比例、打折比例菜例类别信息,消费清单详细信息2-002消费清单表顾客消费结账单消费清单编码、会员编码、清单状态、餐台编码、顾客人数会员信息,预定信息,餐台信息
表1-3 数据流条目编号名称说明来源去向组成数据流量最大流量3-001预定单前台登记的预订单前台预定餐台消费预定清单编码、顾客姓名、预定状态、联系方式、预定餐台、预定日期、预定时段、预定押金、操作员10份/天100份/天表1-4数据存储条目编号名称说明输入输出组成有关数据流4-001预订单顾客预定信息前台预定登记经理、后厨查询预定清单编码、顾客姓名、预定状态、联系方式、预定餐台、预定日期、预定时段、预定押金、操作员P1—D9D9—P2D9—P64-002消费清单表顾客消费结账单前台点菜柜台结账消费清单编码、会员编码、清单状态、餐台编码、顾客人数P2—D10D10—P3表1-5处理过程条目编号说明输入处理逻辑输出5-001顾客点菜下单餐台信息,顾客信息,菜例信息根据餐台占用信息,检索数据文件,确定餐台使用状态,根据顾客人数确定餐台,根据菜例信息,点菜下单顾客消费单详细表1-6外部实体条目编号名称别名说明输入数据流输出数据流5-001预定单t_order登记顾客预定信息餐台信息预定清单1.4结构化系统设计1.4.1系统总体结构设计综合考虑改进后的系统逻辑模型和设计系统原则、目标的要求,绘制新系统的系统总体设计功能结构图参见图1-15。
图1-15系统总体设计功能结构图1.4.2数据库设计数据库设计是系统设计的核心。数据库系统应具有数据的共享性、数据的安全保密性数据的完整性。数据库数据一般要经过概念结构设计、逻辑结构设计、物理结构设计。概念结构设计概念设计是在数据分析的基础上,自底向上建立整个系统的数据库概念结构。本系统用实体联系模型(E-R图)进行数据库概念设计,E-R图参见图1-16,实体属性图参见图1-17。图1-16系统E-R图1房间类型,2餐台编码,3所在区域,4餐台名称,5容纳人数1员工编码,2厨师编码,3所在窗口1菜例编码,2菜例名称,3菜例简拼,41房间类型,2餐台编码,3所在区域,4餐台名称,5容纳人数1员工编码,2厨师编码,3所在窗口图1-17实体属性图逻辑结构设计逻辑设计的任务是把E-R模型所表示的概念结构转换为关系模型,即把概念结构转换为相应的逻辑结构。根据图1-16的系统E-R图进行逻辑结构设计,设计结构如下:(1)房间区域(区域编码、区域名称)房间类型(房间类型编码、房间类型、初始消费)餐台(餐台编码、餐台名称、房间类型、所在区域、容纳人数)菜例类别(菜例类别编码、菜例类别)厨师(厨师编码、员工编码、所在窗口)菜例(菜例编码、菜例名称、菜例简拼、菜例类别、计价单位、成本单价、销售单价、服务员提成比例、打折比例)菜例制作(菜例编码、厨师编码)(8)点菜备注(备注编码、菜例备注)(9)退菜说明(说明编码、退菜说明)预定时段(时段编码、时段名称、起始时间、终止时间)用餐时段表(时段编码、餐台编码、餐台状态)餐台预定参考表(餐台编码、预定日期、时段编码、预定状态)(13)部门(部门编码、部门名称、备注)岗位(岗位编码、岗位名称、职责、备注)会员等级(等级编码、等级名称、享受折扣比例、积分下线)员工档案(员工编码、员工姓名、姓名简拼、性别、出生日期、身份证号、籍贯所属部门、所任岗位、入职日期、在职状态、联系方式)员工调动台帐(员工编码、原始部门、调入部门、所任岗位、调动日期)会员档案(会员编码、会员姓名、姓名简拼、性别、出生日期、账户余额、会员等级、当前累计积分、办理日期、会员状态、联系方式)消费清单表(消费清单编码、会员编码、清单状态、餐台编码、消费数量、顾客人数、进店时间、离店时间、应收金额、实收金额、结账单金额、收银员)消费清单详细表(消费项目编码、消费清单编码、菜例编码、上菜状态、菜例数量、金额、厨师编码、点菜时间、上菜时间、点菜备注、退菜说明、服务员)预定清单(预定清单编码、顾客姓名、性别、预定状态、联系方式、预定餐台、预定日期、预定时段、预抵时间、取消时间、预定押金、顾客留言、顾客人数)物理结构设计物理设计的目的是确定数据库的物理储存结构。设计结构参照表1-7至表1-13。字段名称字段描述数据类型…是否主键room_type_code房间类型编码varchar(2)是room_type_name房间类型varchar(20)start_money初始消费decimal(8,1)
表1-8餐台设置表(tdesk)字段名称字段描述数据类型是否主键desk_code餐台编码varchar(4)是desk_name餐台名称varchar(20)room_type_name房间类型varchar(20)area_name所在区域varchar(20)person_count容纳人数int表1-9会员表(member)字段名称字段描述数据类型是否主键member_code会员编码varchar(12)是member_name会员姓名varchar(20)member_name_jp姓名简称varchar(20)Sex性别varchar⑵birth出生日期datetimeaccounting账户余额decimal(8,1)level_name会员等级varchar(20)current_point当前累计积分intreg_date办理日期datetimemember_state会员状态varchar(4)phone联系方式varchar(20)表1-10菜例表(tfood)字段名称字段描述数据类型是否主键food_code菜例编码varchar(4)是food_name菜例名称varchar(20)food_name_jp菜例简拼varchar(20)food_type_name菜例类别varchar(20)jjdw计价单位varchar(20)in_price成本单价decimal(8,1)out_price销售单价decimal(8,1)staff_discount服务员提成比例decimal(3,2)food_discount打折比例decimal(3,2)表1T1预定表(torder)字段名称字段描述数据类型是否主键order_code预定清单编码varchar(12)是person_name顾客姓名varchar(20)sex性别varchar(2)orde_state预定状态varchar(4)phone联系方式varchar(20)desk_code预定餐台varchar(4)order_date预定日期datetimeorder_time_code预定时段varchar(2)in_time预抵时间datetimecancel_time取消时间datetimeorder_money预定押金decimal(8,1)person_remark顾客留言varchar(20)person_count顾客人数int表1-12消费清单表(tselllist)字段名称字段描述数据类型—是否主键sell_list_code消费清单编码varchar(12)是member_code会员编码varchar(12)list_type清单类别varchar(4)list_state清单状态varchar(4)desk_code餐台编码varchar(4)person_count顾客人数intin_time进店时间date_timeout_time离店时间datetimetotle_money应收金额decimal(8,1)real_money实收金额decimal(8,1)write_money结账单金额decimal(8,1)staff_code收银员varchar(4)表1-1,消费清单详细表(tselldetail)字段名称字段描述数据类型是否主键sellitemcode消费项目编码varchar(12)是selllistcode消费清单编码varchar(12)foodcode菜例编码varchar(12)foodstate上菜状态varchar(4)foodcount数量inttotlemoney金额decimal(8,1)foodstaffcode分工编码varchar(4)foodregtime点菜时间datetimefoodcometime上菜时间datetimeorderremarkname点菜备注varchar(20)exitintroname退菜说明varchar(20)staffcode服务员varchar(4)1.4.3代码设计代码设计是一种科学管理的问题,合理的代码设计将便于管理人员的管理工作和用户查询。代码就是以数字或者字符来代替各种客观实体。本系统中的重要代码有会员编码、消费清单编码等这些编码的编码方式都是层次码。⑴本系统的会员编码格式为:XXXXXXXXXXXX其中XX为“hy”,XXXXXXXX代表会员办理日期,XX代表会员顺序编号。例如:hy2009051701表示会员2009051701的办理日期为2009年05月17日。⑵本系统的消费清单编码格式为:XXXXXXXXXXXX其中XX为“xf”,XXXXXXXX代表消费日期,XX代表账单顺序编号。例如:xf2009051701表示消费单2009051701登记日期为2009年05月17日。1.4.4输入输出设计1.输出设计输出是由计算机对输入的原始信息进行加工处理,形成高质量的有效信息,并使之具有一定的格式,提供管理者使用,这是输出设计的主要职责和目标。计算机系统对输入的数据进行加工处理的结果,只有通过输出才能为用户所使用。输出形式的好坏也要影响到系统的功能。输出的信息要精确、及时、直观、易为用户所接受。在报表设计中,本系统采用了水晶报表软件,可以把报表输出的和上报格式一模一样从而减轻了管理人员的工作量。下面给出了营业报表汇总统计报表的输出设计界面,参见图1-17所示。
营业报表汇总铳计汇总时间段: 2009-05-31至2009-07-02清单編码洁单状态消费数量密台名称消费金额结账日期跟单员200906070001已皓213号餐台128.002009年06月0T日白收银200906070002挂账7也号餐台58.002009年06月0T日白收银200906070003已皓19玫瑰厅181.402009年06月0T日白收银200906070004挂账71号密台42.402009年06月0T日白收银200906080001已皓31号密台27.502009年06月疋旧白收银200906080002已皓21号密台50.002009年06月疋旧白收银200906080003已皓22号密台50.002009年06月疋旧白收银yd2009060801已皓10梅花厅185.002009年06月疋旧白收银金额合计:T22.30汇总时间:2009-06-15图1-17营业报表汇总统计2.输入设计输入设计担负着将系统外的数据以一定的格式送入计算机的任务。输入设计的一条重要原则是确保系统输入的信息准确无误,还应做到输入方法简单、迅速、经济及方便用户。图1-18给出了手持终端无线点菜的输入设计界面。图1-18无线点菜终端-选择菜例1.4.5模块功能与处理过程设计以预定接待流程处理为例,其处理流程如图1-19所示。
图1-19预定接待处理流程图1.4.6信息系统安全设计下面从系统架构设计、角色及用户权限控制、数据库访问等方面分析本系统如何保障数据和系统的安全。系统架构设计安全性本系统采用三层系统架构,由显示层、中间层、数据层组成。每层的功能清楚,层与层之间不能跨越,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,中间层经过ADO.NET实现对数据层的数据进行访问,实现了显示、数据、逻辑的分开,减少了耦合度°ASP.NET在网页中使用基于事件的处理,显示层的页面代码和后台的代码分离。.NET中可以方便地实现组件的装配,后台代码通过命名控件可以方便地使用自己定义的组件。显示层放在ASP页面中,数据库操作和业务逻辑用组件来实现,方便地实现了三层架构,减少入口点,防止客户端被破坏而给数据库带来损失的风险,保证系统的安全。角色及用户权限控制ASP.NET应用的安全性系统利用ASP.Net与MicrosoftInternet信息服务联合起来协同工作提供了优秀的安全控制,包括身份验证和权限控制两部分。身份验证是对发送请求信息的用户进行身份识别,一旦验证通过,权限控制程序就会决定用户是否有权限访问所调用的资源。ASP.NET支持三种类型的身份验证,分别是Windows身份验证、表单身份验证、Passport身份验证。基于表单的验证,是三种验证方式中最灵活的一种。基于表单的验证服务使用Session来验证用户,Session是一小段文本信息,伴随着用户请求和页面在Web服务器和浏览器之间传递,用户每次访问站点时,Web应用程序都可以读取Session包含的信息。在登
录页面中,用户输入用户名和密码,提交该页面送回服务器,应用程序根据存储在数据库中的数据来验证请求,用户通过验证后,ASP.NET发出一个Session,里面包括了为此用户产生的一个有效的身份票据,该身份票据是用户进行系统访问的“通行证”。在随后发出的请求页面的请求报头里包含此Session,假如没有通过验证则用户被重新定位到登录页面。3.数据库访问安全性数据库访问的安全性在基于网络的系统中,用户的信息安全是非常重要的,一旦用户的密码被盗取后,系统的数据和整个数据库也就不安全了,通过对用户的口令加密可以解决这个问题,用户密码不以明文的方式存储在数据库中,而是存储它们加密后的版本。当需要对用户进行验证时,只是对用户的口令再进行加密,然后把它与数据库中的加密口令进行比较即可。1.4.7网络系统方案设计系统网络拓扑结构图,参见图1-20。顾客来电显示设备手持录页面中,用户输入用户名和密码,提交该页面送回服务器,应用程序根据存储在数据库中的数据来验证请求,用户通过验证后,ASP.NET发出一个Session,里面包括了为此用户产生的一个有效的身份票据,该身份票据是用户进行系统访问的“通行证”。在随后发出的请求页面的请求报头里包含此Session,假如没有通过验证则用户被重新定位到登录页面。3.数据库访问安全性数据库访问的安全性在基于网络的系统中,用户的信息安全是非常重要的,一旦用户的密码被盗取后,系统的数据和整个数据库也就不安全了,通过对用户的口令加密可以解决这个问题,用户密码不以明文的方式存储在数据库中,而是存储它们加密后的版本。当需要对用户进行验证时,只是对用户的口令再进行加密,然后把它与数据库中的加密口令进行比较即可。1.4.7网络系统方案设计系统网络拓扑结构图,参见图1-20。顾客来电显示设备手持PDA点菜1前台预定系统大厅收银台数据库服务器【域网交换机无线AP局域网集线器经理查询端后厨打印机1手持PDA点菜2手持PDA点菜3局域网
打印服务器包厢收银台图1-20网络拓扑结构图1.5系统主要界面与核心代码1.5.1系统主界面本系统的主界面参见图1-21。图1-21系统主界面1.5.2基础数据界面1.餐台设置图1-22餐台设置界面(注:宽图的宽度13厘米,高度合适)2.菜例管理请输入菜例简拼关犍字: 检索添加菜例编码菜例名称菜倒简拼菜倒类别计价单隹战本单价销售单价提威比例打折比倒选择0001酸菜鱼scy热菜元/份15.02^.00.151.00选择ULILI2水煮鱼gzy热菜元f份13.030.00.2U1riu选择0003麻辣呈腐tnldf热菜元/份5.010.00.001.00123图1-23菜例管理界面图1-22和图1-23中的“插入”按钮均使用中FormView控件集成的“插入”事件代码。1.5.3主要业务界面1.顾客开台当前餐台时段:午餐请填写顾客人数: 检索餐台开台点菜注销餐台名称所在区域餐台狀态容纳人数进店时间消费金额选择3号餐台大厅占用6212009-6-723:43:37128D选择 4号餐台大厅空闲 812当前餐台的点菜清单莱例名称上菜状态菜例数量单价金额点菜时间上菜时间蜃务员酸菜鱼即起425.050.02009-6-723:44:07白收银麻棘豆腐 即起 3 10.0 30.0 2009-6-723:44:32 白收银米饭等叫62.012.02009-6-723:45:05白收银标准赛具 即起 6 1.0 6.0 2009-6-723:45:31 白收银水煮鱼即起230.030.02009-6-723:46:02白收银图1-24顾客开台界面图1-24中“开台”按钮的代码如下:(注意字号五号,注意缩进,注释尽可能多)if(GridView1.SelectedIndex!=-1)//当选择项不为空时{ (注意字号小五号,行距10,注意缩进)LabelLabelt=(Label)GridView1.SelectedRow.FindControl("Label6");MsgAlert("当前餐台已经占用或者被预定,不能开台!");if(Labelt.Text!="空闲")//如果选中项的餐台状态不是空闲状态{MsgAlert("当前餐台已经占用或者被预定,不能开台!");else//如果选中项的餐台状态是空闲状态{ObjectDataSource5.Insert();//此处调用存储过程“p_sell_list_add“GridView1.DataBind();}}else{MsgAlert("请先选择餐台!");}其中,存储过程“p_sell_list_add”的创建代码如下:createprocedure[dbo].[p_sell_list_add]@order_time_codevarchar(2),@desk_codevarchar(4),@person_countintasdeclare@sell_list_codevarchar(12)//声明消费编码变量declare@current_datevarchar(8)declare@index_codevarchar(4)declare@start_moneydecimal(8,1)beginset@current_date=(selectconvert(varchar(12),getdate(),112))//格式化当前日期字符串,如果当前日期是2009年7月6日,格式化后变成20090706select@sell_list_code=max(sell_list_code)fromt_sell_listwheresubstring(sell_list_code,1,8)=@current_dateif(@sell_list_codeisnull)//如果数据表中没有记录,定义初始消费编码。beginset@sell_list_code=@current_date+'0001'endelse//数据表中已经有记录的情况下beginif(substring(@sell_list_code,1,8)<>@current_date)//如果数据表中没有当天的数据记录,定义初始消费编码。beginset@sell_list_code=@current_date+'0001'endelse//如果数据表中已经有当天的数据记录,系统将进行自动编码。beginset@index_code=substring(@sell_list_code,9,4)set@index_code=@index_code+1while(len(@index_code)<4)beginset@index_code='0'+@index_code//当序号编码,即消费编码的后四位,如果相加之后不满足四位,进行补“0”处理。endset@sell_list_code=@current_date+@index_code//拼消费编码,即当天日期格式化后字符串连接序号编码。endendset@start_money=(selectstart_moneyfromv_deskwheredesk_code=@desk_code)//读取餐台初始消费价格。insertintot_sell_list//向消费清单表中添加记录。(sell_list_code,desk_code,person_count,totle_money)values(@sell_list_code,@desk_code,@person_count,@start_money)updatet_desk_timesetdesk_state='占用'wheredesk_code=@desk_codeandorder_time_code=@order_time_code//增加记录后,将当前餐台的使用状态改为“占用”状态。end2.终端点菜图1-25终端点菜界面图1-25中“确定”按钮的代码如下:if(myMobileService.InsertSellDetail(frmFoodlist.sell_list_code,myMobileService.GetFoodById(frmFoodlist.food_code).Tables[0].Rows[0][3].ToString(),comboBox2.Text.ToString(),Convert.ToInt32(numericUpDown1.Value.ToString()),frmEnter.operator_code,comboBoxl.Text.ToString())〉T)//调用存储过程:p_sell_detail_add//如果点菜成功,即向消费清单详细表中添加记录成功。{frmFoodlistfrmfoodlist=newfrmFoodlist();//实例化窗体“frmFoodlist"frmfoodlist.Show();this.Hide();}其中,存储过程“p_sell_detail_add”的创建代码如下:createPROCEDURE[dbo].[p_sell_detail_add]@sell_list_codevarchar(12),@food_codevarchar(4),@food_statevarchar(4),@food_countint,@staff_codevarchar(4),@order_remark_namevarchar(20)ASdeclare@sell_item_codevarchar(12)declare@out_pricedecimal(8,1)declare@food_discountdecimal(3,2)BEGINselect@sell_item_code=max(sell_item_code)//项目自动编号fromt_sell_detail//读取数据表记录中字段“sell_item_code"的最大编码if(@sell_item_codeisnull)beginset@sell_item_code='000000000001'endelsebeginset@sell_item_code=@sell_item_code+l//对消费清单详细表中项目编码字段进行累加处理。while(len(@sell_item_code)<12)beginset@sell_item_code='0'+@sell_item_code//当项目编码相加之后不满足12位,进行补“0”处理。endendset@out_price=(selectout_pricefromt_foodwherefood_code=@food_code)//读取菜例价格set@food_discount=(selectfood_discountfromt_foodwherefood_code=@food_code)//读取菜例的折扣insertintot_sell_detail//向消费清单详细表中添加记录(sell_item_code,sell_list_code,food_code,food_state,food_count,staff_code,totle_money,order_remark_name)values(@sell_item_code,@sell_list_code,@food_code,@food_state,@food_count,@staff_code,@food_count*@out_price*@food_discount,@order_remark_name)updatet_sell_listsetfoods_count=(selectsum(food_count)fromt_sell_detailwheresell_list_code=@sell_list_code),totle_money=(selectsum(totle_money)fromt_sell_detailwheresell_list_code=@sell_list_code)wheresell_list_code=@sell_list_code//更新消费帐单表END1.5.4主要查询界面1.菜例管理请输人菜例简拼关键字: 检索1添加菜倒编码菜例名称菜例筒拼菜例类别计价单童成本单价销售单价提成比倒打折比倒选择0001酸菜鱼scy热菜元/份15.025.00.151.00选择0002水煮鱼Sj7,r热菜元/份13.03U.0U.201.00选择0003麻辣呈腐mldf热菜元/份5.010.00.001.00123图1-26菜例管理界面图1-26中“检索”按钮的代码如下:if(TextBox8.Text=="")//如果文本框为空,将检索所有记录。{GridView1.DataSourceID="ObjectDataSource4";GridView1.DataBind();}else//如果文本框不为空,将检索出菜例简拼匹配的记录。{GridView1.DataSourceID="ObjectDataSource1";GridView1.DataBind();}2.挂账处理请输人顾客姓名: 顾客娄型:非会员□检索 解除挂账■雞单号挂雞人挂薙人编号雖单狀态清费数量人数应时金额挂雖日期0200906070002王顾客gsdOOOOOOOOOl挂账7058.02009-06-07图1-27挂账处理界面图1-27中“检索”按钮的代码如下:if(TextBox9.Text==""&&DropDownListl.SelectedValue=="非会员")//如果文本框为空,且下拉框选择项为“非会员”,将读取所有挂账类型为非会员的记录。{GridView2.DataSourceID="ObjectDataSource4";GridView2.DataBind();}if(TextBox9.Text!=""&&DropDownList1.SelectedValue=="非会员")//如果文本框不为空,且下拉框选择项为“非会员”,将读取挂账类型为非会员姓名与文本框匹配的记录。{GridView2.DataSourceID="ObjectDataSource5";GridView2.DataBind();}if(TextBox9.Text==""&&DropDownList1.SelectedValue=="会员")//如果文本框为空,且下拉框选择项为“会员”,将读取所有挂账类型为会员的记录。{GridView2.DataSourceID="ObjectDataSource6";GridView2.DataBind();}if(TextBox9.Text!=""&&DropDownList1.SelectedValue=="会员")//如果文本框不为空,且下拉框选择项为“会员”,将读取挂账类型为会员姓名与文本框匹配的记录。{GridView2.DataSourceID="ObjectDataSource7";GridView2.DataBind();}1.5.5报表1.顾客消费打印账单当前位置:功能目录>收银结账>账单打印请输人已结账的账单编码:200906070003打印预览牌号固K« ►M1/1Q主报表H 36 HBu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 感恩节主题创意活动策划方案
- 教师培训讲座材料
- FIB-4与PLR预测肝部分切除术后肝功能衰竭的价值研究
- 二零二五年度建筑施工安全文明施工责任书3篇
- 二零二五年度建筑材料销售聘用合同范本3篇
- 二零二五年度民间借贷债务催收代理合同3篇
- 多水下机器人编队自适应行为控制方法研究
- 双十一吃龙虾活动策划案
- 二零二五年度个人艺术品委托拍卖协议书3篇
- 酒店管理工作实操指南
- 2025年合资经营印刷烟包盒行业深度研究分析报告
- 天津市五区县重点校2024-2025学年高一上学期1月期末联考试题 化学 含答案
- 吉林省吉林市普通中学2024-2025学年高三上学期二模试题 生物 含答案
- 2025年湖南省通信产业服务限公司春季校园招聘76人高频重点提升(共500题)附带答案详解
- 《电影之创战纪》课件
- 开题报告-铸牢中华民族共同体意识的学校教育研究
- 公司2025年会暨员工团队颁奖盛典携手同行共创未来模板
- 新沪科版八年级物理第三章光的世界各个章节测试试题(含答案)
- 人教版五年级上册四则混合运算300道及答案
- 非遗国粹川剧变脸的传统文化知识了解原创模板
- 2024年四川省成都市成华区中考二诊物理试题
评论
0/150
提交评论