面向对象分析与设计课程设计(餐厅点菜系统)
点餐系统uml课程设计
点餐系统uml课程设计一、课程目标知识目标:1. 学生能理解UML图的基本概念,掌握点餐系统中常用的UML图表,如用例图、类图、顺序图等。
2. 学生能够运用UML图描述点餐系统的功能需求和业务流程。
3. 学生了解点餐系统的基本模块及其相互关系,并能够利用UML图表进行表达。
技能目标:1. 学生能够运用UML工具进行点餐系统的建模,提高系统分析与设计的能力。
2. 学生通过小组合作,培养团队协作和沟通能力,能够共同完成一个简单的点餐系统UML课程设计。
3. 学生能够运用所学知识,解决实际生活中类似点餐系统的分析与设计问题。
情感态度价值观目标:1. 学生培养对计算机科学与技术学科的兴趣,提高学习积极性。
2. 学生认识到UML图在软件开发中的重要性,培养良好的系统分析与设计习惯。
3. 学生在课程学习过程中,树立正确的价值观,认识到团队合作的重要性,增强集体荣誉感。
课程性质:本课程为信息技术或计算机科学与技术相关专业的选修课程,注重理论与实践相结合,培养学生的系统分析与设计能力。
学生特点:学生具备一定的编程基础,对UML图有一定了解,但实践经验不足。
教学要求:教师应采用案例教学、任务驱动等方法,引导学生积极参与课堂讨论,注重培养学生的动手能力和实际操作能力。
同时,关注学生的个体差异,给予个性化的指导。
通过本课程的学习,使学生能够将所学知识应用于实际项目中,提高其解决实际问题的能力。
二、教学内容1. UML基本概念:UML的定义、作用、分类及其在软件开发中的应用。
2. 点餐系统需求分析:分析点餐系统的功能需求、性能需求等,引导学生理解需求分析在软件开发中的重要性。
3. UML图表:- 用例图:介绍用例图的概念、组成元素,以及如何用用例图描述点餐系统的功能模块。
- 类图:讲解类图的概念、组成元素,以及如何用类图描述点餐系统中的类及其关系。
- 顺序图:解释顺序图的概念、组成元素,以及如何用顺序图描述点餐系统的业务流程。
饭店菜单系统课程设计
饭店菜单系统课程设计一、课程目标知识目标:1. 学生能理解并掌握饭店菜单系统的基本构成和功能。
2. 学生能运用所学的计算机知识,设计并实现一个简单的菜单系统。
3. 学生了解饭店菜单设计的基本原则和策略。
技能目标:1. 学生能够运用编程软件,如Scratch或Python,进行菜单系统的设计和编程。
2. 学生通过项目实践,培养问题分析、程序设计、调试和优化的能力。
3. 学生能够进行小组合作,有效沟通,共同完成菜单系统的设计和实施。
情感态度价值观目标:1. 学生培养对计算机编程的兴趣和热情,增强信息技术的应用意识。
2. 学生通过课程学习,认识到科技在餐饮行业中的重要作用,提高创新意识。
3. 学生在团队协作中,学会尊重他人,培养合作精神和责任感。
课程性质:本课程为信息技术与实际应用相结合的实践课程,注重培养学生的动手操作能力和创新能力。
学生特点:六年级学生对计算机操作有一定的了解,具备初步的编程基础,好奇心强,喜欢实践性课程。
教学要求:结合学生的特点,注重理论与实践相结合,充分调动学生的积极性和主动性,引导他们通过小组合作,完成具有实际意义的菜单系统设计项目。
通过本课程的学习,使学生在知识、技能和情感态度价值观方面均取得具体的学习成果。
二、教学内容本课程教学内容紧密结合课程目标,确保学生能够系统掌握饭店菜单系统的相关知识。
1. 菜单系统概述- 了解饭店菜单系统的基本概念和功能。
- 分析现有菜单系统的优缺点。
2. 菜单系统设计原则- 掌握菜单设计的基本原则,如易用性、美观性、可扩展性等。
- 学习如何根据用户需求进行菜单设计。
3. 编程语言及工具选择- 学习使用Scratch或Python编程语言进行菜单系统设计。
- 了解相关编程工具的使用方法。
4. 菜单系统编程实现- 学习如何编写代码实现菜单的显示、分类、搜索等功能。
- 掌握基本的编程技巧和调试方法。
5. 项目实践- 分组进行菜单系统设计和编程实践。
- 按照教学大纲,安排进度,分阶段完成项目。
面向对象分析与设计课程设计(餐厅点菜系统)
软件学院课程设计报告书课程名称面向对象分析与设计课程设计设计题目餐饮点菜系统专业班级学号姓名指导教师2014 年6 月目录1 设计时间 (1)2 设计目的 (1)3 设计任务 (1)4 设计内容 (1)4.1 设计内容概述 (1)4.1.1 概述 (1)4.1.2 业务流程(活动图描述) (1)4.2 需求分析 (3)4.2.1 用例图 (3)4.2.2 用例描述 (6)4.2.3 领域类图 (7)4.3 软件设计 (8)4.3.1 用例实化(顺序图和协作图) (8)4.3.2 系统运行状态图 (9)4.3.3 业务逻辑类图 (10)5 总结与展望 (11)参考文献 (13)成绩评定 (13)务主角提供其所需的价值而必须完成的工作。
工作流程通常包括一个基本工作流程和一个或多个备选工作流程。
工作流程的结构使用活动图来进行说明。
餐厅点菜系统的工作流程如图4.1、图4.2和图4.3所示。
图4.1 点餐模式的业务流程图4.2 用餐模式的业务流程图4.3 餐毕模式的业务流程4.2 需求分析在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。
需求分析是软件工程中的一个关键过程。
在这个过程中,系统分析员和软件工程师确定顾客的需要。
只有在确定了这些需要后,他们才能够分析和寻求新系统的解决方法。
需求分析阶段的任务是确定软件系统功能。
4.2.1 用例图用例图是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。
本部分需要用6个用例图来对餐饮点菜系统进行描述,分别是餐饮点菜系统用例图、点餐模式用例图、用餐模式用例图、餐毕模式用例图、轻松一刻用例图和特殊附加用例图。
图4.4 餐厅点菜系统用例图图4.5 点餐模式用例图图4.6 用餐模式用例图图4.7 餐毕模式用例图图4.8 轻松一刻用例图图4.9 特殊附加用例图4.2.2 用例描述用例的描述是用例的主要部分,是后续的交互图分析和类图分析必不可少的部分。
软件工程课程设计—餐厅点餐系统
软件工程课程设计餐厅点餐系统详细设计姓名:王洁院系:信息技术系学号:11340154专业班级:软件技术(一)班指导老师:2012 年12月14日1系统说明软件可行性研究报告的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解,使之成为整个开发工作的基础. 酒店点餐管理系统包括菜品及管理员的添加、删除、修改,,顾客点菜时涉及到的添加、删除,以及账单的查询打印和销售额的查询。
酒店点餐管理系统可以实现上述功能,能够方便快捷准确地获得所需的信息。
2 要求主要功能:将餐厅点菜自动化、自由化、个性化功能需求:面向经理:后台管理(访问权限,修改菜单,增加菜项,删除菜项,销售情况分析)面向顾客:显示特色菜,菜单列表,具体菜名查询(显示实际图片),订餐功能,预计等待时间银行卡消费并打印座位凭条(顾客服务员一式两份)及消费凭条面向服务员:顾客消费结算功能面向厨师:显示当前任务功能性能要求: 管理员录入的信息必须无差错地存储至中心服务器,且对客户端的数据应该及时进行更新。
输出要求:数据完整,详实。
输入要求:方便,简捷,快速。
安全与保密要求: 餐厅顾客和厨师以及服务员只有查询和建议功能管理人员则拥有在其权限内的查询,修改,增加,删除菜单,制定价格等一些管理功能。
3目标为各大中小型餐厅酒店提供一个统一、方便、安全的信息管理平台.4 可行性研究方法可行性研究的方法是通过对各大中小型餐厅、酒店管理者进行问卷调查及访问谈话而得到用户对此系统的信任度关注度及依赖度的,通过建模分析,得出了该系统的功能需求,成本分析,可行性分析。
5总体设计5.1 启动系统使用本系统无需登录,但管理员和会员能够登录。
登录的时候需要填写正确的用户名和密码,管理员可以修改自己的密码。
5.2登陆系统用户输入用户名、密码,系统进行用户身份验证,验证通过则成功登录,显示带有相关权限的界面,显示登录用户名,服务器日期,用户可以进行相关权限的处理。
点菜系统课程设计
点菜系统课程设计一、课程目标知识目标:1. 学生能理解点菜系统的基本概念和功能,掌握点菜系统的操作流程。
2. 学生能运用所学的数据库知识,设计并实现一个简易的点菜系统。
3. 学生了解点菜系统在餐饮行业的实际应用,理解其对社会生活的影响。
技能目标:1. 学生能够运用编程语言,如Python,设计和开发一个具有基本功能的点菜系统。
2. 学生能够运用数据库管理软件,如MySQL,进行数据存储和管理。
3. 学生能够通过小组合作,提高沟通与协作能力,解决实际开发过程中遇到的问题。
情感态度价值观目标:1. 学生培养对信息技术的兴趣,增强学习信息技术的自信心,形成持续学习的动力。
2. 学生通过实际操作,体验信息技术在生活中的应用,提高对信息技术的认识和责任感。
3. 学生在小组合作中,学会尊重他人,培养团队精神和合作意识,形成积极向上的学习氛围。
本课程针对高年级学生,结合其已具备的信息技术知识和能力,注重实践操作和实际应用。
通过本课程的学习,使学生能够将所学知识运用到实际项目中,提高学生的实践能力和创新能力。
同时,注重培养学生的情感态度和价值观,使学生在学习过程中形成正确的信息技术观念。
课程目标的设定,旨在使学生在知识、技能和情感态度价值观方面得到全面提升,为将来的学习和工作打下坚实基础。
二、教学内容1. 点菜系统概述:介绍点菜系统的基本概念、发展历程、功能特点和应用场景。
- 教材章节:第三章 信息技术应用案例2. 点菜系统设计与开发:讲解如何利用编程语言和数据库管理软件进行点菜系统的设计与开发。
- 教材章节:第四章 数据库技术应用、第六章 编程语言应用- 内容安排:a. 数据库设计:表结构设计、数据存储与查询b. 编程语言应用:Python基本语法、界面设计、功能实现3. 点菜系统实际操作:通过小组合作,让学生实际操作设计并开发一个简易的点菜系统。
- 教材章节:第七章 信息技术综合应用4. 点菜系统在餐饮行业的应用案例分析:分析成功案例,让学生了解点菜系统在实际工作中的运用。
点菜管理系统课程设计
点菜管理系统课程设计一、课程目标知识目标:1. 学生能理解点菜管理系统的基本概念和功能模块,掌握菜单数据结构的设计与实现。
2. 学生能够运用所学知识,如数据库操作、界面设计等,实现一个简易的点菜管理系统。
3. 学生了解并掌握点菜管理系统中涉及的数据处理和存储技术。
技能目标:1. 学生通过实际操作,提升编程能力,特别是面向对象编程和数据库操作技能。
2. 学生能够运用设计思维,进行系统需求分析,并独立设计出满足需求的系统界面和功能。
3. 学生通过项目实践,掌握软件测试的基本方法,能够对点菜管理系统进行功能测试。
情感态度价值观目标:1. 学生在学习过程中培养团队合作意识,增强解决实际问题的信心。
2. 学生能够认识到信息技术在日常生活中的应用,增强学习信息技术的兴趣和自觉性。
3. 学生通过参与项目开发,培养创新意识,理解技术对服务业带来的变革。
课程性质分析:本课程为信息技术相关学科,旨在通过实践操作,使学生掌握信息技术在餐饮行业的应用,强化理论与实践相结合的教学。
学生特点分析:考虑到学生所在年级的特点,课程设计将注重培养学生的动手实践能力,同时引导他们理解更深层次的技术概念。
教学要求:1. 教学内容与实际应用紧密结合,注重培养学生的实际操作能力。
2. 教学过程中强调学生主动参与,鼓励学生提问和思考,提升解决问题的能力。
3. 教学评估将基于学生在项目实现过程中的表现,以及最终系统的功能性和可用性。
二、教学内容1. 点菜管理系统概述:介绍点菜管理系统的发展背景、功能特点和行业应用,让学生对点菜管理系统有一个全面的了解。
- 教材章节:第一章 引言2. 菜单数据结构设计:讲解菜单数据结构的设计原理,指导学生使用面向对象的方法设计菜单类。
- 教材章节:第二章 数据结构3. 数据库操作:教授数据库的基本概念,指导学生使用数据库存储和管理菜单数据。
- 教材章节:第三章 数据库操作4. 界面设计:介绍界面设计的基本原则,指导学生运用相关技术设计美观、易用的点菜界面。
c课程设计餐厅点餐系统设计
c 课程设计餐厅点餐系统设计一、课程目标知识目标:1. 让学生掌握餐厅点餐系统的基本概念和功能模块,了解其工作原理;2. 使学生了解数据库在餐厅点餐系统中的应用,学会使用基本的数据查询和操作;3. 帮助学生理解编程语言在餐厅点餐系统开发中的重要性,学会使用相关编程技巧。
技能目标:1. 培养学生运用所学知识设计和开发一个简单的餐厅点餐系统的能力;2. 提高学生分析问题和解决问题的能力,能够针对餐厅点餐系统的实际需求提出合理的解决方案;3. 培养学生团队协作能力,能够在项目中分工合作,共同完成任务。
情感态度价值观目标:1. 激发学生对计算机科学与技术学科的兴趣,培养其主动学习和探究的精神;2. 培养学生关注实际生活问题,学会运用所学知识解决现实问题,提高社会责任感;3. 引导学生认识到科技在餐饮行业中的重要作用,培养其创新意识和创业精神。
课程性质:本课程为实践性较强的课程,旨在让学生通过实际操作,掌握餐厅点餐系统的设计方法和开发技巧。
学生特点:学生具备一定的计算机基础知识,对编程和数据库有一定了解,但实际应用能力有待提高。
教学要求:注重理论知识与实践操作相结合,鼓励学生积极参与讨论和实践,培养其独立思考和解决问题的能力。
在教学过程中,将目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. 餐厅点餐系统概述:介绍餐厅点餐系统的基本概念、功能模块及其在实际中的应用。
- 教材章节:第1章 计算机网络应用概述- 内容:餐厅点餐系统的基本组成、发展历程及未来发展趋势。
2. 数据库应用:学习数据库在餐厅点餐系统中的作用,掌握基本的数据查询和操作方法。
- 教材章节:第3章 数据库技术- 内容:数据库设计、数据表创建、数据查询与操作。
3. 编程语言及开发工具:学习编程语言在餐厅点餐系统开发中的应用,熟悉相关开发工具。
- 教材章节:第2章 编程语言及开发环境- 内容:编程语言基础、开发工具使用、基本编程技巧。
软件综合课程设计—餐饮管理点菜系统
一、系统简介1.1系统开发及运行环境系统开发语言: javs运行平台: Windows XP(SP2)/Windows 2000(SP4)/Windows Server 2003(SP1) web 服务器: Tomcat v7.0数据库: MySQL1.2系统功能通过实际了解,要求本系统具有以下功能:系统采用人机交互的方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠。
实现对餐厅顾客点菜/加菜、退菜,桌号预定和查询结账等操作。
对用户输入的数据,进行严格的数据检验,尽可能的避免人为错误。
实现对消费账目自动结算。
二、总体设计2.1功能设计:餐饮管理系统主要由开台、点/加菜、退菜,桌号预定,结账,查询账单具体规划如下。
(1) 桌台信息管理模块该模块主要用于管理桌台的信息,可以设置桌台名称,桌台预订情况(2)结账模块该模块主要用于实现对客户的消费进行自动汇总,显示消费金额。
(3)数据库管理模块该模块主要用于实现对系统数据库的备份,防止系统在死机的情况下丢失大量重要信息。
(4)点菜模块:通过可视化界面,通过点击鼠标将菜加入点菜单并计算出总的费用。
(5)预定功能:对大厅桌位和雅间进行预定,将预定的桌号和雅间号写入数据库。
2.2数据库设计本系统采用 mysql 作为后台数据库,数据库名称为 cm,其中包含 2 张数据表。
下面分别介绍:数据字典数据字典是系统中各类数据描述的集合,是进行详细的数据的收集和数据分析秘获得的主要成果。
数据字典在数据库设计中占有很重要的地位。
数据字典部分如下:菜单信息表数据流系统名:餐饮管理系统条目名:菜单信息来源:菜单信息去处:菜单信息添加,删除查询数据结构:菜单信息表主要是查看菜单的信息菜单信息: { 编号,名称,描述,价格,菜单 ID}简要说明:菜单信息,主要是管理员对菜单信息的添加与删除预定信息表数据流系统名:餐饮管理系统条目名:订餐信息来源:订餐去处:订餐信息删除查询数据结构:订餐信息: {顾客姓名,联系方式,预定桌号,时间}简要说明:管理员对预订信息进行添加删除餐桌信息表E-R 图:概念设计是一种面向对象的数据模型, 是按照用户的观点来对数据和信息 建模。
信息系统分析与设计-餐饮管理系统(面向对象)
课程设计报告课程名称:信息系统分析与设计课程设计题目:餐饮管理系统分析与设计姓名:系:专业:年级:学号:指导教师:职称:年月日课程设计结果评定目录1. 系统规划 (1)1.1 目的 (1)1.2 意义 (1)1。
3 目标 (1)1。
4 规划 (2)2. 系统分析与设计 (2)2.1 用例图 (2)2。
2 用例规约 (2)2.3 顺序图 (3)2.4 活动图 (3)2.5 状态图 (4)2.6 类图 (4)2。
7 架构设计 (4)2。
7.1 系统组成 (4)2。
7。
2 系统功能 (4)2.8 数据库设计 (7)3。
总结 (8)参考文献 (8)餐饮管理系统分析与设计1. 系统规划1.1 目的构建一个集高效性、灵性、实用性、功能划分详细以及方便的可扩充性等特于一体的通用餐饮娱乐业管理系统,使餐饮管理者对餐饮业管理进行宏观的和微观的细致管理,在满足广大顾客的需求的同时,也大大增加酒店餐厅的工作效率,促成一个双方满意的局面。
1.2 意义当今世界已进入了在计算机信息管理领域中激烈竞争的时代,应用计算机已经变得十分普遍了,如同我们离不开的自行车、汽车一样。
我们应该承认,谁掌握的知识多,信息量大,信息处理速度快,批量大,谁的效率就高,谁就能够在各种竞争中立于不败之地。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
越来越多的管理人员意识到信息管理的重要性.由于当前酒店的管理还处于人工管理阶段,仅在财务部门使用了计算机,所以酒店的管理效率不高。
由于缺乏科学的管理和现代化的管理工具,该饭店在管理上和业务的安排上都存在着不足。
(1)房间的管理不够科学方便,房间使用情况不直观.(2)库管员不能随时掌握库存情况,不能及时发现商品缺货的情况,另外统计商品数量即费时又费力。
(3)由于该酒店的商品种类多,菜样多变,靠人工方式管理商品和菜品信息有很多不便。
c#点餐系统课程设计
c#点餐系统课程设计一、课程目标知识目标:1. 学生能够理解C#语言的基本语法和面向对象编程的基本概念。
2. 学生能够掌握使用C#进行Windows窗体应用程序开发的基本方法。
3. 学生能够了解点餐系统的基本功能需求,并运用C#语言实现相关功能。
技能目标:1. 学生能够运用C#语言编写简单的点餐系统功能模块,如菜单展示、菜品选择、数量增减等。
2. 学生能够运用数据库技术存储和管理点餐系统的数据,如菜品信息、订单信息等。
3. 学生能够通过本课程的学习,提高问题分析、程序设计和调试的能力。
情感态度价值观目标:1. 学生能够积极参与课堂讨论和小组合作,培养合作精神和团队意识。
2. 学生能够通过实际操作,体会编程的乐趣,提高对计算机编程的兴趣。
3. 学生能够认识到编程在实际生活中的应用价值,激发对信息技术的热爱。
分析课程性质、学生特点和教学要求,本课程目标将分解为以下具体学习成果:1. 学生能够独立完成C#点餐系统的基本功能模块编写。
2. 学生能够在课程结束时,提交一份完整的C#点餐系统项目报告,包括需求分析、功能设计、程序代码和测试结果。
3. 学生在课程学习过程中,能够主动参与讨论、积极思考,展现出良好的学习态度和团队协作精神。
二、教学内容1. C#语言基础:变量、数据类型、运算符、控制结构(条件语句、循环语句)、数组、字符串。
2. 面向对象编程:类与对象、构造函数、属性、方法、继承、多态。
3. Windows窗体应用程序开发:窗体设计、控件使用、事件处理、界面布局。
4. 数据库技术:数据库的基本概念、SQL语句、数据访问技术。
5. 点餐系统功能模块实现:菜单展示、菜品选择、数量增减、订单生成、订单查询。
6. 项目实践:需求分析、功能设计、数据库设计、编码实现、测试与调试。
教学内容安排和进度:第一周:C#语言基础,完成变量、数据类型、运算符的学习。
第二周:控制结构,学习条件语句、循环语句的使用。
第三周:数组、字符串,并进行相关练习。
点餐系统的课程设计
点餐系统的课程设计一、课程目标知识目标:1. 学生能理解并掌握点餐系统的基本功能与操作流程。
2. 学生能够运用所学编程知识,设计并实现一个简易的点餐系统。
3. 学生了解点餐系统在实际生活中的应用,理解其背后的计算机科学原理。
技能目标:1. 学生能够运用编程语言,如Python或Scratch,编写简单的程序代码来实现点餐系统的功能。
2. 学生能够进行基本的程序调试,找出并修正代码中的错误。
3. 学生具备团队协作能力,能够在小组合作中发挥个人优势,共同完成点餐系统的设计与实现。
情感态度价值观目标:1. 学生培养对计算机科学的兴趣,激发学习编程的热情。
2. 学生通过实际操作,体验编程解决问题的成就感,增强自信心。
3. 学生在团队协作中,学会沟通、尊重他人意见,培养合作精神和责任感。
课程性质:本课程为信息技术课程,旨在通过实际操作,让学生掌握编程知识,提高解决问题的能力。
学生特点:六年级学生具备一定的计算机操作基础,对新鲜事物充满好奇,但编程经验有限。
教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的积极性,引导他们通过自主探究、合作学习,完成点餐系统的设计与实现。
在教学过程中,关注学生的个体差异,给予针对性的指导与帮助,确保每个学生都能达到课程目标。
后续教学设计和评估将围绕具体的学习成果展开。
二、教学内容1. 点餐系统的概念与功能:介绍点餐系统的定义、作用及其在实际生活中的应用场景,使学生了解学习点餐系统的重要性。
相关教材章节:第一章 计算机应用系统简介2. 编程语言基础:复习Python或Scratch编程语言的基本语法,为后续编写点餐系统程序打下基础。
相关教材章节:第二章 编程语言概述、第三章 Python(或Scratch)基础语法3. 点餐系统设计与实现:详细讲解如何设计一个简易的点餐系统,包括界面设计、功能模块划分、数据存储等。
相关教材章节:第四章 程序设计基础、第五章 数据结构与存储4. 点餐系统功能实现:指导学生运用所学知识,分组编写点餐系统的功能模块,如菜单展示、点餐、计算总价等。
网上订餐系统系统设计(面向对象的分析与设计)
3、然后转到购物车页面,显示购物车中的所有食品
[
时序图
描述
1、消费者点击“查看那购物车”按钮
2、转到购物车页面,显示购物车中的所有食品
[
时序图
描述
1、消费者点击“添加订单”按钮,跳转到order.jsp页面,填入订单信息,并提交
2、OrderServlet接到请求后,获得请求信息,并调用FoodBiz的saveOrder(orderInfo)方法
3、OrderServlet得到返回值后,判断提交是否成功
4、若提交成功,转到viewOrders.jsp页面,并调用FoodBiz的getOrdersByName(userName)方法,然后显示订单信息;否则,重定向到order.jsp页面
2.用例时序图
[
时序图
描述
1、消费者首先在login.jsp页面中填写用户名和密码,然后提交。
2、login.jsp页面把用户名和密码提交给LoginServlet,使用doPost方法进行处理。
3、LoginServlet在处理的过程中调用LoginBean的valide()方法,valide()方法进行验证,并返回一个值valid.
[
时序图
描述
1、消费者点击挑中的食品连接,进入details.jsp页面。
2、details.jsp页面调用FoodBiz的getFoodByID(foodID)方法,得到该食品对象。
3、在页面上显示该食品对象
[
时序图
描述
1、消费者在details.jsp页面上点击“添加购物车”按钮,提交请求给AddFoodToCartServlet。
餐馆点餐系统课程设计
餐馆点餐系统课程设计一、课程目标知识目标:1. 学生能理解并掌握餐馆点餐系统的基本概念和原理;2. 学生能够运用所学知识,分析并设计一个简单的餐馆点餐系统;3. 学生了解并掌握点餐系统中的数据存储、处理和传输方式。
技能目标:1. 学生能够运用编程语言或工具,实现一个具有基本功能的餐馆点餐系统;2. 学生能够通过小组合作,进行需求分析、系统设计、编码实现和测试;3. 学生能够运用问题解决策略,解决在点餐系统设计与实现过程中遇到的问题。
情感态度价值观目标:1. 学生培养对信息技术学科的热爱,增强学习兴趣;2. 学生通过小组合作,培养团队协作意识和沟通能力;3. 学生能够认识到信息技术在生活中的应用,增强信息素养。
课程性质:本课程为信息技术学科,以实践操作为主,注重培养学生的动手能力和实际问题解决能力。
学生特点:六年级学生具备一定的信息技术基础,对新鲜事物充满好奇,喜欢动手操作。
教学要求:结合学生特点,注重理论与实践相结合,以学生为主体,鼓励学生主动探究和解决问题。
通过课程学习,使学生能够将所学知识应用于实际生活中,提高学生的信息技术素养。
教学过程中,关注学生的个体差异,提供个性化指导,确保每个学生都能达到课程目标。
二、教学内容1. 引入餐馆点餐系统的基本概念,介绍其作用和在实际生活中的应用;2. 通过教材第三章“数据库应用”的学习,使学生掌握点餐系统中数据存储和管理的方法;3. 结合教材第四章“程序设计基础”,让学生学会使用编程语言设计点餐系统的界面和功能;4. 通过案例分析,让学生了解点餐系统的需求分析和系统设计过程;5. 实践操作部分,指导学生分组进行点餐系统的设计与实现,包括以下内容:a. 点餐界面的设计;b. 菜品数据库的创建与管理;c. 点餐功能的实现;d. 结算功能的实现;e. 系统测试与优化。
6. 安排教学进度,共计8课时,具体安排如下:第1课时:引入概念,学习点餐系统的基本原理;第2课时:学习数据库应用,分析点餐系统中的数据存储和管理;第3课时:学习程序设计基础,了解点餐系统界面设计;第4课时:需求分析与系统设计;第5-7课时:分组实践操作,完成点餐系统的设计与实现;第8课时:展示作品,总结评价。
课程设计报告书(快餐店点餐系统)
吉首大学信息科学与工程学院课程设计报告书课程:面向对象程序设计课题:快餐店点餐系统姓名:李静(登录界面设计,后期资料整理)凌淑丽(前期需求分析)吴亮(系统各功能模块设计)刘佳(辅助编写系统各功能模块代码)学号:从上至下依次为:20114042005 20114042008、20114042016、20114042009专业:计算机科学与技术年级: 2011级指导教师:侯春明基地指导教师:何迎生年月一、项目介绍与设计目的《面向对象程序设计》课程设计是信息与计算科学专业集中实践 性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。
本课程设计主要目的在于加深学生对面向对象程序设计的基本理论和基本知识的理解,全面掌握面向对象程序设计思想的精髓。
二、设计方案1)、设计内容以windows 为开发平台,以Java 作为前台开发工具,完成一个小型软件的系统设计和开发。
根据学生的具体情况,学生可以从以下备选题目中选择一个,也可以自选题目,完成系统地分析、设计和开发,提交完备的开发文档。
2)、快餐店点餐系统1 、系统具备的基本功能:根据所建议系统的业务流程图,分析出新系统的功能模块图:2 、需求描述2.1.用户登陆:用户输入用户名及密码后,系统自动验证有效性及用用户登录点餐管理 配餐管理 结算管理 系统管理户角色,根据用户拥有的角色自动进入不同的子系统2.2.客户点餐子系统:当客人落座后,服务员手持IPAD登陆点餐子系统后,首先输入相应的桌号,然后由客人根据不同的服务类别(特价、凉菜、热菜、汤、酒水、饮料)选择不同的食物及数量,系统根据不同的食物计算出总价格,方便客人控制总价格,如果输入错误系统提供删除的功能,最后提交到后厨配餐子系统中.2.3.配餐管理子系统:配餐员或者厨师根据最新的配餐信息,按照时间先后顺序配置食品,完成后提交给结算管理子系统中2.4.结算管理子系统:收银员根据服务员或者客人提供的桌号计算出总价格,客人如果提供会员卡或者会员号,系统自动验证卡号及会员身份并计算出相应的折扣及实付金额,根据相应的金额出具对应的发票2.5.系统管理子系统:经理登陆子系统后,上传菜谱,管理菜谱及特价。
面向对象技术--餐馆系统案例
33
构件图(Component diagram)
2011-1-31
34
功能模块图
程序主页面
记录预约信息页面
显示预约信息页面
更新预约信息页面
修改预约信息页面
输入客户信息并查询餐桌 信息
输入日期或客户名查询预 约信息
输入客户信息并查询预约 信息
输入客户信息并查询
新增预约信息确认
显示查询的预约信息
更改预约信息确认
2011-1-31
28
: Staff
: BookingSystem selectBooking(id)
/Current : Booking
/selected : Booking
*selectDetails()
recordArrival() setArrivalTime(now) updateDisplay()
2011-1-31
18
2011-1-31
19
餐馆系统的实现
实现图 实现策略 应用框架 类的实现 关联的实现 操作的实现
2011-1-31
20
相关技术
Java编程语言
2011-1-31
21
Access数据库(或Sql server)
2011-1-31
22
Rose建模工具
2011-1-31
23
WalkIn
Reservation arrivalTime setArrivatime()
+*
Mak es
+1
Customer name : String phoneNumber : String
2011-1-31
32
餐馆预约系统分析类模型
课程设计案例—餐馆点餐系统分析与设计
2.1.
面向对象的开发方法是人们在实践中逐渐提出的一种新方法。面向对象方法的出发点和基本原则是尽可能按照人类认识世界的方法和思维方式来分析和解决问题。客观世界是由许多具体事物或事件、抽象的概念及规律等组成的,因此,我们将任何感兴趣或要加以研究的事物、概念都统称为对象(Object)。
面向对象的开发方法的优点有:
MySQL的特点有:
(1)开放源代码。“开放源代码”意味着任何人都能使用和改变软件。任何人都能从Internet上下载MySQL软件,而无需支付任何费用。
(2)反应迅速。MySQL具有良好的连通性、速度和安全性、这使得MySQl很适合作为Internet上的数据库。
(3)多种工作模式。MySQL数据库软件是一种客户端/服务器系统,有支持不同后端的一个多线程SQL服务器、数据不同的客户端程序和库、众多管理工具和广泛的应用编程接口API组成。
(2)系统分析阶段的工作是根据系统总体规划的要求,设计系统的逻辑模型。
(3)系统设计阶段的工作是在逻辑模型基础上设计系统的物理模型设计。
(4)系统实施阶段的工作是实现系统的代码编写和系统使用人员的培训,同时系统的数据准备和试运行也在这个阶段进行。
(5)系统运行与维护阶段进行系统的日常运行管理、评价、监理审计,修改、维护、局部调整,在出现不可调和的大问题时,进一步提出开发新系统的方案,老系统生命周期结束,新系统诞生,构成系统的一个生命周期,如图1.2。
C++课程设计自助点餐系统
面向对象程序课程设计(一)(2014/2015学年第一学期第20周)指导教师:庄巧莉、杨东鹤班级:计算机科学与技术13(1)学号:姓名:面向对象程序课程设计目录一、题目二、需求分析三、系统结构图四、类的设计五、程序代码与说明六、运行结果与分析七、心得与体会一:题目自助点餐系统二:需求分析有一个小型餐厅,该餐厅提供即时就餐和外卖服务。
现在这个餐厅打算使用自助点餐系统,让顾客自己点餐,实现以下功能。
1、根据顾客的选择正确打出账单2、正确统计出每一天的及时就餐和外卖的销售情况3、实现对餐厅菜式和价格的有效管理4、考虑点餐的自动排序问题,使顾客可以实时查询到自己菜单处理情况三:系统结构图四:类的设计Client类:客户类,包含客户属性姓名,电话号码,费用等信息,登记客户,记录客户订单信息ClientManager类:客户管理类,用于管理客户,记录客户数量,存储客户菜单信息,查询客户订单信息,统计订单FeeManager类:用于记录就餐、外卖的销售费用,统计收入Food类:餐厅食物的类,包含食物名称和价格FoodManager类:管理菜单,用于添加食物,修改食物,删除食物,记录不同食物的信息,呈现菜单MenuView类:用于打印各种操作界面五:程序代码与说明Client.h#ifndef CLIENT#define CLIENT#include"FoodManager.h"#include<iostream>using namespace std;class Client{private:int number; //客户编号int type; //客户的类型,1表示就餐,2表示外卖double fee; //客户账单费用char *name; //客户名称char *phone; //客户手机号码public:Client(){} //构造函数char * getName(); //返回客户姓名int num[100]; //num[i]存储食物数量,i表示食物编号FoodManager client_fm; //管理客户所点的食物Client(char *n,char *p);//构造函数int getNumber(); //返回客户编号void setNumber(int n); //设置客户编号int getType(); //返回客户类型void setType(int n); //设置客户类型void addFee(double x); //添加费用double getFee(); //返回费用void showClientMessage();//展示客户信息void changNum(); //修改客户所点的食物的数量void deleFood(); //删除客户所选择的食物};#endifClient.cpp#include"Client.h"#include<iomanip>Client::Client(char *s,char *p){name = s;phone = p;fee = 0;for(int i = 0 ; i < 100 ; i++)num[i] = 0 ;cout<<"客户注册成功"<<endl;}int Client::getNumber(){return number;}void Client::setNumber(int n){number = n;}int Client::getType(){return type;}void Client::setType(int n){type = n;}void Client::addFee(double x){fee += x;}double Client::getFee(){return fee;}void Client::showClientMessage(){char * ss;if(type == 1)ss = "就餐";else if(type == 2)ss = "外卖";cout<<"姓名: "<<name<<"\t\t"<<ss<<endl;cout<<"手机号码: "<<phone<<endl;cout<<"订单总价: "<<fee<<endl;cout<<"订单详情:"<<endl;cout<<setw(10)<<setiosflags(ios::left)<<"食物序列"<<setw(10)<<setiosflags(ios::left)<<"菜名"<<"\t数量\t价格"<<endl;for(int i = 0 ; i < client_fm.getTotal() ; i ++){cout<<setw(10)<<setiosflags(ios::left)<<setw(10)<<i+1<<setiosflags(ios::left)<<client_f m.food[i].getName()<<"\t"<<num[i]<<"\t"<<num[i]*client_fm.food[i].getPrice()<<endl;}cout<<"总价:\t\t"<<fee<<endl;}char * Client::getName(){return name;}void Client::changNum(){int n;int numss;cout<<"请输入食物序号: ";cin>>n;cout<<"您选择了食物: "<<client_fm.getNameByList(n-1)<<endl;cout<<"请输入数量: ";cin>>numss;fee += (numss - num[n-1] )*client_fm.getPriceByName(client_fm.getNameByList(n-1));num[n-1]=numss;}void Client::deleFood(){int n;cout<<"请输入食物序号: ";cin>>n;cout<<"您选择了食物: "<<client_fm.getNameByList(n-1)<<endl;fee -= (num[n-1] )*client_fm.getPriceByName(client_fm.getNameByList(n-1));for(int i = n-1 ; i < client_fm.getTotal() ; i ++){client_fm.food[i]=client_fm.food[i+1];num[i]=num[i+1];}client_fm.setTotal(client_fm.getTotal()-1);}ClientManager.h#ifndef CLIENTMANAGER#define CLIENTMANAGER#include"Client.h"#include<iostream>using namespace std;#define MAX_CLIENT_NUM 60 //最大客户数量class ClientManager{public:ClientManager(); //构造函数int clientNum ; //记录客户数量Client client[MAX_CLIENT_NUM]; //记录存储客户void addClient(Client c); //添加新客户int getClientNum(); //返回客户数量void showQuery(char * s); //查询客户void showAll(); //显示所有客户};#endifClientManager.cpp#include"ClientManager.h"ClientManager::ClientManager(){clientNum = 0;}void ClientManager::addClient(Client c){client[clientNum++] = c;cout<<"客户注册成功"<<endl;}int ClientManager::getClientNum(){return clientNum;}void ClientManager::showQuery(char * s){int count = 0;int th;cout<<"----------------------------------"<<endl;for(int i = 0; i < clientNum ; i ++)if(client[i].getType()==1){cout<<"第"<<++count<<"单: "<<client[i].getName()<<"\t总价是:"<<client[i].getFee()<<"元"<<"\t就餐"<<endl<<endl;if(strcmp(client[i].getName(),s)==0)th =count;}for(int i = 0; i < clientNum ; i ++)if(client[i].getType()==2){cout<<"第"<<++count<<"单: "<<client[i].getName()<<"\t总价是:"<<client[i].getFee()<<"元"<<"\t外卖"<<endl<<endl;if(strcmp(client[i].getName(),s)==0)th =count;}cout<<"您当前排在第"<<th<<"单"<<endl;cout<<"----------------------------------"<<endl;}void ClientManager::showAll(){for(int i = 0 ; i < clientNum ; i ++ ){if(client[i].getType()==1){cout<<"订单号: "<<i+1<<endl;client[i].showClientMessage();cout<<endl;}}for(int i = 0 ; i < clientNum ; i ++ ){if(client[i].getType()==2){cout<<"订单号: "<<i+1<<endl;client[i].showClientMessage();cout<<endl;}}}Food.h#ifndef FOOD#define FOODclass Food{private:char *name; //食物名称double price; //食物价格public:Food(){}; //构造函数Food(char *s,double p); //构造函数void setName(char *s); //更改食物名称char* getName(); //返回食物名称double getPrice(); //返回食物价格void setPrice(double p); //设置食物价格void showMessage(); //显示食物的名称和价格};#endifFood.cpp#include"Food.h"#include<iostream>using namespace std;Food::Food(char *s,double p){name = s;price = p;}void Food::setName(char *s){name = s;}void Food::setPrice(double p){price = p;}void Food::showMessage(){cout<<name<<"\t"<<price<<"Ԫ"<<endl;}double Food::getPrice(){return price;}char* Food::getName(){return name;}FoodManager.h#ifndef FOODMANAGER#define FOODMANAGER#include"Food.h"#define MAX_FOOD_NUM 99 //最多容纳的食物种类数class FoodManager{int total ; //食物种类数public:FoodManager(); //构造函数int getTotal() ; //返回食物种类数Food food[MAX_FOOD_NUM]; //记录食物void addFood(Food f); //添加食物void addFood(char *s,double p); //添加食物void deleteFood(); //删除食物void changePrice(); //修改食物价格void showFood(); //显示食物信息char * getNameByList(int list); //通过食物编号返回食物名称double getPriceByName(char *s); //通过食物名称返回食物价格int getListByName(char *s); //通过食物名称返回食物编号void setTotal(int x); //修改食物种类数};#endifFoodManager.cpp#include"FoodManager.h"#include<iostream>using namespace std;#include<iomanip>FoodManager::FoodManager(){total = 0;}void FoodManager::addFood(Food f){food[total++]=f;cout<<"成功添加了食物,当前共有"<<total<<endl;}void FoodManager::showFood(){cout<<"食物中共有"<<total<<"种"<<endl;cout<<"食物编号 "<<"名称\t\t"<<"单价"<<endl;for(int i = 0 ; i < total ; i ++ )cout<<setw(10)<<setiosflags(ios::left)<<i<<setw(10)<<setiosflags(ios::left)<<food[i].get Name()<<"\t"<<food[i].getPrice()<<endl;}void FoodManager::changePrice(){char *s;int code;s = new char[20];double p;cout<<"请输入食物编号: ";cin>>code;s = food[code].getName();cout<<"您选择了食物: "<<s<<endl;cout<<"请输入价格: ";cin>>p;for(int i = 0; i < total ; i ++)if(strcmp(food[i].getName(),s)==0){food[i].setPrice(p);cout<<"修改成功"<<endl;return;}cout<<"没有这种食物,修改失败"<<endl; }void FoodManager::deleteFood(){char *s;s = new char[20];cout<<"请输入菜名: ";cin>>s;for(int i = 0 ; i < total ; i ++)if(strcmp(food[i].getName(),s)==0){cout<<"成功删除"<<s<<endl;total --;for(int t = i; t < total ; t ++)food[t]=food[t+1];return;}cout<<"没有这种食物"<<endl;}void FoodManager::addFood(char *s , double p) {food[total++]=Food(s,p);}double FoodManager::getPriceByName(char *s) {for(int i = 0 ; i < total ; i ++)if(strcmp(food[i].getName(),s)==0)return food[i].getPrice();return false;}int FoodManager::getListByName(char *s){for(int i = 0 ; i < total ; i ++)if(strcmp(food[i].getName(),s)==0)return i;return false;}int FoodManager::getTotal(){return total;}char * FoodManager::getNameByList(int list){return food[list].getName();}void FoodManager::setTotal(int x){total = x;}FeeManager.h#ifndef FEEMANAGER#define FEEMANAGERclass FeeManager{private:double jiuCanFee; //就餐总收入double waiMaiFee; //外卖总收入public:FeeManager(); //构造函数double getWaiMaiFee(); //返回外卖总收入double getJiuCanFee(); //返回就餐总收入void addWaiMaiFee(double x); //增加外卖总收入void addJiuCanFee(double x); //添加就餐总收入};#endifFeeManager.cpp#include"FeeManager.h"FeeManager::FeeManager(){jiuCanFee = 0;waiMaiFee = 0;}double FeeManager::getWaiMaiFee(){return waiMaiFee;}double FeeManager::getJiuCanFee(){return jiuCanFee;}void FeeManager::addWaiMaiFee(double x){waiMaiFee += x;}void FeeManager::addJiuCanFee(double x){jiuCanFee += x;}MenuView.h#ifndef MENUVIEW#define MENUVIEWclass MenuView{private:char whiteSmile; //白色笑脸char blackSmile; //黑色笑脸char heart; //心形图形public:MenuView(); //构造函数void showJiuCan(); //显示就餐用户点菜界面void showWaiMai(); //显示外卖用户点菜界面int showMain(); //显示用户选择就餐还是外卖界面int showViewChoice(); //显示进入本系统的功能选择界面int showRegister(); //显示客户注册界面int showClientChoice(); //显示客户点餐界面int showQuery(); //显示查询客户订单界面int showMend(); //显示修改食物界面int showMenuChoice(); //显示选择菜单界面int showMendDingDan(); //显示客户修改订单界面};#endifMenuView.cpp#include"MenuView.h"#include<iostream>using namespace std;MenuView::MenuView(){whiteSmile = 1;blackSmile = 2;heart = 3;}int MenuView::showMain(){for(int i = 1 ; i <= 80 ; i++ )cout<<heart;for(int i = 1;i<=80;i++){if(i==1||i==80)cout<<heart;else cout<<' ';}cout<<heart<<"\t\t\t\t欢迎光临本餐厅";for(int j=1;j<=33;j++)cout<<' ';cout<<heart;for(int i = 1;i<=80;i++){if(i==1||i==80)cout<<heart;else cout<<' ';}for(int i = 1 ; i <= 80 ; i++ )cout<<heart;//输出餐厅的外形cout<<endl<<endl;cout<<"\t我是服务员小坠"<<whiteSmile<<",竭诚为您服务哦"<<blackSmile<<endl<<endl<<endl;for(int k=1;k<=10;k++)cout<<' ';for(int i = 1 ; i <= 20 ; i++ )cout<<heart;cout<<endl;for(int k=1;k<=10;k++)cout<<' ';cout<<heart<<"请选择您需要的服务"<<heart<<endl;for(int k=1;k<=10;k++)cout<<' ';for(int i = 1 ; i <= 60 ; i++ )cout<<heart;cout<<endl;for(int k=1;k<=10;k++)cout<<' ';cout<<heart<<"1:就餐";for(int i = 1 ; i <= 52 ; i ++ )cout<<' ';cout<<heart<<endl;for(int k=1;k<=10;k++)cout<<' ';cout<<heart<<"2:外卖";for(int i = 1 ; i <= 52 ; i ++ )cout<<' ';cout<<heart<<endl;for(int k=1;k<=10;k++)cout<<' ';for(int i = 1 ; i <= 60 ; i++ )cout<<heart;cout<<endl<<endl;for(int i = 1;i<=7;i++)cout<<endl;cout<<"\t\t\t您的选择是:";int choice;cin>>choice;return choice;}void MenuView::showJiuCan(){cout<<"欢迎就餐,本餐厅有以下食品供您品尝"<<whiteSmile<<endl;}int MenuView::showViewChoice(){for(int i = 1 ; i <= 80 ; i++ )cout<<heart;for(int i = 1;i<=80;i++){if(i==1||i==80)cout<<heart;else cout<<' ';}cout<<heart<<"\t\t\t\t陈旺均特色餐厅";for(int j=1;j<=33;j++)cout<<' ';cout<<heart;for(int i = 1;i<=80;i++){if(i==1||i==80)cout<<heart;else cout<<' ';}for(int i = 1 ; i <= 80 ; i++ )cout<<heart;cout<<endl<<endl;cout<<"------------------------"<<endl;cout<<"| 1:顾客服务 |"<<endl;cout<<"| 2:食物管理 |"<<endl;cout<<"| 3:今日反馈 |"<<endl;cout<<"| 4:退出系统 |"<<endl;cout<<"------------------------"<<endl;cout<<"您的选择是: ";int next;cout<<endl;return next;}int MenuView::showRegister(){cout<<"------------------------"<<endl;cout<<"| 1:新顾客点餐 |"<<endl;cout<<"| 2:查询订单 |"<<endl;cout<<"------------------------"<<endl;int next;cin>>next;return next;}int MenuView::showClientChoice(){cout<<"------------------------"<<endl;cout<<"| 1:加菜 |"<<endl;cout<<"| 2:修改订单 |"<<endl;cout<<"| 3:提交订单 |"<<endl;cout<<"------------------------"<<endl;int next;cin>>next;return next;}int MenuView::showQuery(){cout<<"------------------------"<<endl;cout<<"| 1:查询订单 |"<<endl;cout<<"| 2:退出查询 |"<<endl;cout<<"------------------------"<<endl;int next;cin>>next;return next;}int MenuView::showMend(){cout<<"------------------------"<<endl;cout<<"| 1:添加食物 |"<<endl;cout<<"| 2:修改价格 |"<<endl;cout<<"| 3:删除食物 |"<<endl;cout<<"| 4:退出食物管理 |"<<endl;cout<<"------------------------"<<endl;int next;return next;}int MenuView::showMenuChoice(){cout<<"添加菜单:"<<endl;cout<<"------------------------"<<endl;cout<<"| 1:原菜单 |"<<endl;cout<<"| 2:更新后的菜单 |"<<endl;cout<<"------------------------"<<endl;int next;cin>>next;return next;}int MenuView::showMendDingDan(){cout<<"------------------------"<<endl;cout<<"| 1:修改数量 |"<<endl;cout<<"| 2:删除食物 |"<<endl;cout<<"| 3:退出修改 |"<<endl;cout<<"------------------------"<<endl;int next;cin>>next;return next;}Main.cpp#include<iostream>#include"Food.h"#include"MenuView.h"#include"FoodManager.h"#include"ClientManager.h"#include"FeeManager.h"#include<fstream>#include<iomanip>using namespace std;int main(){FeeManager feem;//管理就餐和外卖的费用MenuView mv; //管理界面ClientManager cm; //管理客户的类的对象FoodManager fm;//管理食物的类的对象fstream ioFile; //文件输入输出int clientChoice;// 1 服务顾客 2 食物管理 3 今日反馈 4退出系统int clientService;//1新顾客点餐 2 查询int mainChoice;// 1 就餐 2 外卖int curClient; //当前操作的顾客编号int queryChoice;//1 查询订单 2 退出查询int foodChoice;//1 添加食物 2 修改食物价格 3删除某种食物 4退出食物管理int viewChoice;//1 顾客服务 2 食物管理 3 今日反馈 4 退出系统int menuChoice;//1 原菜单 2 更新后菜单int mendDingDanChoice;//1 修改数量 2 删除食物 3 退出修改ioFile.open("C:\\Users\\Administrator\\Desktop\\food.txt",ios::in);while(!ioFile.eof()){char *s;double p;s=new char[20];ioFile>>s>>p;fm.addFood(s,p);}ioFile.close();//以上是从文件读入食物的种类和价格信息while(true){viewChoice = mv.showViewChoice();if(viewChoice == 1) //顾客服务{clientService = mv.showRegister();if(clientService == 1)//用户注册{char *name,*phone;name = new char[30];phone = new char[20];cout<<"请完善客户资料"<<endl;cout<<"您的订单号是"<<cm.getClientNum()+1<<endl;curClient = cm.getClientNum();cout<<"请输入姓名: ";cin>>name;cout<<"请输入手机号码: ";cin>>phone;Client cc(name,phone);cc.setNumber(cm.getClientNum());cm.addClient(cc);mainChoice = mv.showMain();if(mainChoice == 1) //就餐{cm.client[curClient].setType(1);mv.showJiuCan();while(true){fm.showFood();int choices;choices = mv.showClientChoice();if(choices==1)//选择食物种类和数量,下单{char *n;int code;n = new char[20];int nums;double prices ;cout<<"请输入食物编号: ";cin>>code;n = fm.food[code].getName();cout<<"您选择了食物: "<<n<<endl;prices = fm.getPriceByName(n);cout<<"请输入数量: ";cin>>nums;cm.client[curClient].client_fm.addFood(Food(n,prices));cm.client[curClient].addFee(nums*prices);cm.client[curClient].num[cm.client[curClient].client_fm.getTotal()-1]=nums; cout<<"当前的总费用是"<<cm.client[curClient].getFee()<<endl<<endl;}else if(choices == 2)//修改订单{cout<<"您当前的订单是:"<<endl;while(true){cm.client[curClient].showClientMessage();mendDingDanChoice = mv.showMendDingDan();if(mendDingDanChoice==1){cm.client[curClient].changNum();}else if(mendDingDanChoice == 2){cm.client[curClient].deleFood();}else if(mendDingDanChoice == 3)break;}}else if(choices == 3)//提交订单break;}feem.addJiuCanFee(cm.client[curClient].getFee());//增加就餐总费用cout<<"您的订单是:"<<endl;cm.client[curClient].showClientMessage();//输出当前订单}else if(mainChoice == 2) //外卖cm.client[curClient].setType(2);mv.showJiuCan();while(true){fm.showFood();int choices;choices = mv.showClientChoice();if(choices==1)//选择食物种类和数量,下单{char *n;int code;n = new char[20];int nums;double prices ;cout<<"请输入食物编号: ";cin>>code;n = fm.food[code].getName();cout<<"您选择了食物: "<<n<<endl;prices = fm.getPriceByName(n);cout<<"请输入数量: ";cin>>nums;cm.client[curClient].client_fm.addFood(Food(n,prices));cm.client[curClient].addFee(nums*prices);cm.client[curClient].num[cm.client[curClient].client_fm.getTotal()-1]=nums; cout<<"当前的总费用是"<<cm.client[curClient].getFee()<<endl<<endl;}else if(choices == 2)//修改订单{cout<<"您当前的订单是:"<<endl;while(true){cm.client[curClient].showClientMessage();mendDingDanChoice = mv.showMendDingDan();if(mendDingDanChoice==1){cm.client[curClient].changNum();}else if(mendDingDanChoice == 2){cm.client[curClient].deleFood();}else if(mendDingDanChoice == 3)break;}}else if(choices == 3)//提交订单break;feem.addWaiMaiFee(cm.client[curClient].getFee());//增加就餐总费用cout<<"您的订单是:"<<endl;cm.client[curClient].showClientMessage();//输出当前订单}}//用户注册else if(clientService == 2){while(true){queryChoice = mv.showQuery();if(queryChoice == 1) //查询客户订单信息{cout<<"请输入您的姓名:"<<endl;char *s;s = new char[20];cin>>s;cm.showQuery(s);}else if(queryChoice == 2)break; //退出查询}}}else if(viewChoice == 2) //食物管理{while(true){fm.showFood();foodChoice = mv.showMend();if(foodChoice == 1) //添加食物{char *n;double p;n = new char[20];cout<<"请输入食物名称: ";cin>>n;cout<<"请输入食物价格: ";cin>>p;fm.addFood(Food(n,p));}else if(foodChoice == 2)//修改食物价格{fm.changePrice();}else if(foodChoice == 3)//删除食物{fm.deleteFood();}else if(foodChoice == 4)break; //退出食物管理}}else if(viewChoice == 3)//今日反馈{cout<<"今天共有"<<cm.getClientNum()<<"人消费,销售总额共"<<feem.getJiuCanFee()+feem.getWaiMaiFee()<<"元"<<endl;cout<<"其中就餐总额为"<<feem.getJiuCanFee()<<"元,";cout<<"外卖总额为"<<feem.getWaiMaiFee()<<"元"<<endl<<endl;cout<<"--------------------------------------"<<endl;cm.showAll();}else if(viewChoice == 4)//退出系统{//ioFile.open("D:\\food.txt",ios::out);ioFile.open("C:\\Users\\Administrator\\Desktop\\food.txt",ios::out);for(int i = 0 ; i < fm.getTotal() ; i ++){ioFile<<setw(10)<<setiosflags(ios::left)<<fm.food[i].getName()<<"\t"<<fm.food[i].getPr ice();if(i != (fm.getTotal()-1))ioFile<<endl;}ioFile.close();cout<<"成功退出系统"<<endl<<endl<<endl;system("pause");return 0;}}}六:运行结果与分析从food.txt文件导入菜单,food.txt内容如下瓜丝儿10 山鸡丁儿12 拌海蜇19 龙须菜46炝冬笋84 玉兰片27 浇鸳鸯115 烧鱼头26烧槟子34 烧百合31 炸豆腐26 炸面筋 4拔丝山药10 糖焖莲子18 酿山药88 山东煎饼 3草泥马100 金华火腿99运行程序,进入主界面:选择:1 顾客服务再选择1新顾客点餐登记客户信息姓名:陈小坠电话158****1234接下来弹出客户服务选择界面进入服务选择界面,选择1就餐弹出菜单,有食物编号,名称,价格选择1加菜选择食物编号0 瓜丝儿,数量3同理,再添加食物金华火腿 *1 山鸡丁儿 *4 山东煎饼 *5 选择2,修改订单选择1,修改食物数量选择瓜丝儿,数量修改为1选择2 删除食物山东煎饼修改后的订单如上,选3退出修改,再选3提交订单,此时输出客户订单信息,并返回主界面,如下所示同理,继续添加客户如下李小龙158****4321就餐草泥马 *1 炸豆腐 *2陆小凤158****1342外卖山东煎饼*3 酿山药*4 玉兰片*3刘备158****1111外卖糖焖莲子*2猪八戒158****2222就餐龙须菜*3 浇鸳鸯*4 烧鱼头*5 拌海蜇*4现在点1,顾客服务 2查询订单,查询猪八戒的订单订单排在第3,这里就餐和外卖进行了排序,就餐在外卖前面,就餐和外卖则按照先后顺利排列选择2:退出订单查询选择2,食物管理添加食物冰糖葫芦价格46,结果如下多出了第18道菜,冰糖葫芦选择2,修改食物价格,把浇鸳鸯的价格改为1先择3 删除食物草泥马改变后的菜单列表如下选择4,退出食物管理进入主菜单选择3 今日反馈显示今日的销售额,显示所有订单详情,按照就餐和外卖先后顺序排序选择4 退出系统七:心得与体会通过设计这个自主点餐系统,我对C++面向对面的思想和对于类的运用有了更深的理解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件学院
课程设计报告书
课程名称面向对象分析与设计设计题目餐饮点菜系统
专业班级
学号
姓名
指导老师
2015年06 月
目录
1 设计时间 (1)
2 设计目的 (1)
3 设计任务 (1)
4 设计内容 (1)
4.1 设计内容概述 (1)
4.1.1 概述 (1)
4.1.2 业务流程(活动图描述) (1)
4.2 需求分析 (3)
4.2.1 用例图 (3)
4.2.2 用例描述 (7)
4.2.3 领域类图 (8)
4.3 软件设计 (8)
4.3.1 用例实化(顺序图和协作图) (8)
4.3.2 系统运行状态图 (10)
4.3.3 业务逻辑类图 (10)
5 总结与展望 (11)
参考文献 (12)
成绩评定 (12)
图4.1 点餐模式的业务流程图4.2 用餐模式的业务流程
图4.3 餐毕模式的业务流程
需求分析
4.2.1 用例图
图4.5 点餐模式用例图
图4.6 用餐模式用例图图4.7 餐毕模式用例图
图4.8 轻松一刻用例图图4.9 特殊附加用例图
图4.11 餐厅点菜系统顺序图图4.12 餐厅点菜系统协作图
图4.13 餐厅点菜系统状态图图4.14 餐厅点菜系统类图。