C课程设计自助点餐系统

合集下载

点餐c课程设计

点餐c课程设计

点餐c 课程设计一、教学目标本课程的学习目标包括以下三个方面:1.知识目标:学生需要掌握点餐系统的功能、特点和操作方法,了解餐饮行业的发展趋势和市场需求。

2.技能目标:学生能够熟练使用点餐系统,进行订单管理、菜品推荐、支付处理等操作,提高工作效率。

3.情感态度价值观目标:学生通过学习,培养对餐饮行业的热爱和敬业精神,树立良好的服务意识,提升团队协作能力。

二、教学内容本课程的教学内容分为以下几个部分:1.点餐系统的基本概念和功能介绍,包括订单管理、菜品推荐、支付处理等模块。

2.餐饮行业的发展趋势和市场需求分析,了解行业现状,把握市场机会。

3.点餐系统的操作演练,学生分组进行实际操作,熟悉各个模块的功能和操作方法。

4.餐饮服务礼仪和沟通技巧,培养学生良好的服务意识和团队协作能力。

三、教学方法本课程采用以下几种教学方法:1.讲授法:教师讲解点餐系统的基本概念、功能和操作方法,以及餐饮行业的发展趋势和市场需求。

2.讨论法:学生分组讨论实际案例,分享心得体会,互相学习。

3.案例分析法:分析餐饮行业的成功案例,引导学生思考和探讨,提高分析问题和解决问题的能力。

4.实验法:学生分组进行点餐系统的实际操作,锻炼操作技能,巩固所学知识。

四、教学资源本课程所需的教学资源包括:1.教材:点餐系统操作手册,用于引导学生学习基本概念和操作方法。

2.参考书:餐饮行业相关书籍,帮助学生了解行业发展趋势和市场需求。

3.多媒体资料:教学PPT、视频教程等,用于辅助讲解和演示。

4.实验设备:点餐系统模拟设备,供学生进行实际操作练习。

五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:评估学生的课堂参与度、提问回答、小组讨论等,以考察学生的学习态度和积极性。

2.作业:布置适量的作业,评估学生的理解和应用能力,巩固所学知识。

3.考试:设置期中考试和期末考试,评估学生的知识掌握程度和运用能力。

4.实操考核:通过点餐系统的实际操作,评估学生的操作技能和解决问题能力。

c课程设计点餐系统

c课程设计点餐系统

c课程设计点餐系统一、教学目标本课程的教学目标是使学生掌握点餐系统的核心知识和技能,包括系统设计、数据库管理、用户界面设计等,能够独立完成一个简单的点餐系统设计。

在情感态度价值观方面,培养学生对计算机科学和信息技术的兴趣和热情,提高学生解决实际问题的能力。

二、教学内容教学内容主要包括点餐系统的需求分析、系统设计、数据库设计、用户界面设计等。

具体安排如下:1.第一章:点餐系统的需求分析,介绍点餐系统的基本功能和用户需求。

2.第二章:系统设计,讲解点餐系统的整体架构和模块设计。

3.第三章:数据库管理,学习如何建立和维护点餐系统的数据库。

4.第四章:用户界面设计,介绍如何设计简洁易用的点餐界面。

三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。

在讲授基本概念和理论知识后,通过案例分析让学生了解点餐系统的实际应用,再通过实验操作让学生亲手设计和制作点餐系统,提高学生的实际操作能力。

四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备。

教材和参考书用于提供理论知识的学习,多媒体资料用于辅助讲解和展示,实验设备用于学生的实践操作。

同时,还可以利用网络资源,如在线教程和讨论区,为学生提供更多的学习资料和交流平台。

五、教学评估教学评估主要包括平时表现、作业和考试三个部分。

平时表现主要评估学生在课堂上的参与程度和表现,作业则评估学生对课程内容的理解和应用能力,考试则是全面考察学生的知识掌握和运用能力。

评估方式应客观、公正,能够全面反映学生的学习成果。

六、教学安排教学安排规定了教学进度、教学时间和教学地点等。

教学进度根据课程内容和教学目标制定,教学时间根据学生的作息时间和兴趣爱好进行安排,教学地点则提供舒适和便捷的学习环境。

教学安排应合理、紧凑,确保在有限的时间内完成教学任务。

七、差异化教学差异化教学根据学生的不同学习风格、兴趣和能力水平进行设计。

教学活动和评估方式将根据学生的需求进行调整,以满足不同学生的学习需求。

c语言电话订餐系统课程设计

c语言电话订餐系统课程设计

c语言电话订餐系统课程设计一、课程目标知识目标:1. 理解C语言中结构体、数组、函数等基本概念,并能够运用这些知识构建简单的电话订餐系统。

2. 学会使用文件操作对订餐系统的数据进行存储和读取。

3. 掌握C语言中字符串处理、数据排序等基本操作。

技能目标:1. 能够运用所学知识设计并编写一个具有基本功能的电话订餐系统程序。

2. 培养学生的逻辑思维能力和问题解决能力,使其在编程过程中能够分析问题、设计算法并解决问题。

3. 提高学生的团队协作能力,通过分组讨论和协作完成课程设计。

情感态度价值观目标:1. 培养学生积极的学习态度,激发学生对编程的兴趣和热情。

2. 增强学生的自信心,使其在完成课程设计的过程中感受到成就感。

3. 培养学生的责任心,使其认识到编程在实际应用中的重要性,并为以后从事相关工作奠定基础。

课程性质:本课程设计旨在帮助学生巩固C语言基础知识,提高编程能力,同时培养学生团队协作和解决问题的能力。

学生特点:学生已经掌握了C语言的基本语法和编程技巧,具有一定的编程基础,但可能缺乏实际项目经验。

教学要求:教师需结合学生特点,合理安排课程进度,引导学生积极参与课程设计,鼓励学生自主学习和团队协作,以提高学生的编程能力和综合素质。

在教学过程中,注重分解课程目标,将目标具体化为可衡量的学习成果,以便进行有效的教学设计和评估。

二、教学内容1. C语言基础知识复习:结构体、数组、函数、指针、文件操作等。

- 结构体的定义和使用- 数组的声明和访问- 函数的定义、调用和参数传递- 指针的概念、使用和内存管理- 文件读写操作2. 电话订餐系统需求分析:- 系统功能模块划分- 用户角色定义- 数据存储和交互设计3. C语言电话订餐系统功能实现:- 用户注册、登录功能- 菜品展示、选择、下单功能- 订单管理(查询、修改、删除)- 数据存储(文件存储)- 系统界面优化4. 教学大纲:- 第一周:C语言基础知识复习,需求分析,功能模块划分- 第二周:用户注册、登录功能实现,菜品展示功能实现- 第三周:选择、下单功能实现,订单管理功能实现- 第四周:数据存储(文件存储),系统测试与优化5. 教材章节关联:- 《C语言程序设计》第二章:数据类型、运算符和表达式- 《C语言程序设计》第三章:控制语句- 《C语言程序设计》第四章:函数- 《C语言程序设计》第五章:数组- 《C语言程序设计》第七章:文件教学内容保证科学性和系统性,遵循由浅入深的原则,使学生能够逐步掌握电话订餐系统的设计与实现。

c语言课程设计报告餐厅自动化点餐系统

c语言课程设计报告餐厅自动化点餐系统

计算机程序设计基础(C语言)课程设计说明书设计题目:餐厅自动化点餐系统班级:姓名:学号:2020年6月设计任务书设计题目:餐厅自动化点餐系统内容:用所学c语言知识设计一个餐厅点餐系统,使用结构体及文件相关知识。

完成以下要求:(1)用C语言实现系统;(2)利用结构体数组实现各餐桌、菜品等信息的数据结构设计;(3)系统具有增加,查询,插入,排序等基本功能;(4)系统的各个功能模块要求用函数的形式实现;(5)将各类信息存在文件中。

一、需求分析该课题是餐厅自动化点餐系统,有以下需求。

(1)程序需要实现用户的点餐功能。

(2)程序出现菜单和菜品相应价格。

(3)程序能对客人所点菜品的总价格进行计算。

(4)程序最后可以呈现给客人其点菜品和价格。

(5)客人可以查询所点菜品。

所以为存储菜品信息,需要定义一个结构体类型。

二、总体设计系统功能模块图二、详细设计1.结构体本系统在菜品定义上运用了结构体2.关于所用函数四、程序运行结果测试和分析1.主界面如同所示用户可以输入自己想要的操作并进行相对应的页面。

2.凉菜界面3.热菜界面4.干锅界面5.主食界面6.饮品界面7.查看界面8.结算界面五、讨论与心得通过这次课程设计,我对C语言有了更深刻的了解,增强了程序的编写能力,巩固了专业知识,对程序的模块化观念也又模糊逐渐变的清晰了。

在程序的运行与调试过程中出现了很多错误,通过反复地复习课本上的相关知识,不停地修改与调试,我终于完成了这段程序。

在调试过程中,我认识到了C语言的灵活性与严谨性,同一个功能可以由不同的语句来实现,但编写程序时要特别注意细节方面的问题,因为一个小小的疏忽就能导致整个程序不能运行。

当然我也认识到了自己的薄弱之处,如对链表相关知识的欠缺,文件运用的不熟练,在以后的学习中我要集中精力、端正态度,争取把知识学得更扎实、更全面,做的越来越好。

c语言课程设计点餐系统设计

c语言课程设计点餐系统设计

c语言课程设计点餐系统设计一、教学目标本节课的教学目标是让学生掌握C语言编程的基本知识,能够运用C语言设计一个简单的点餐系统。

具体分为三个部分:1.知识目标:使学生了解C语言的基本语法、数据类型、运算符、控制结构等,为后续编程打下基础。

2.技能目标:培养学生运用C语言进行程序设计的能力,学会使用函数、数组、指针等编程技巧。

3.情感态度价值观目标:激发学生对编程事业的热爱,培养他们勇于创新、解决问题的精神。

二、教学内容本节课的教学内容主要包括以下几个部分:1.C语言基本语法和数据类型2.运算符与控制结构3.函数、数组和指针4.文件操作5.点餐系统设计三、教学方法为了达到本节课的教学目标,采用以下几种教学方法:1.讲授法:讲解C语言的基本语法、数据类型、运算符和控制结构等知识。

2.案例分析法:通过分析实际案例,使学生掌握函数、数组和指针的运用。

3.实验法:让学生动手编写代码,设计一个简单的点餐系统,巩固所学知识。

4.讨论法:鼓励学生相互交流、讨论,提高解决问题的能力。

四、教学资源为了保证本节课的教学质量,准备以下教学资源:1.教材:《C程序设计》2.参考书:《C语言 Primer》3.多媒体资料:PPT、教学视频4.实验设备:计算机、编程环境以上教学资源将贯穿整个教学过程,为学生提供丰富的学习体验。

五、教学评估本节课的教学评估将采用多元化的评价方式,以全面、客观、公正地评价学生的学习成果。

评估内容包括:1.平时表现:评价学生在课堂上的参与度、提问回答、小组讨论等,占总评的30%。

2.作业:布置相应的编程作业,评估学生的编程能力和应用能力,占总评的30%。

3.考试成绩:期末进行C语言编程考试,评估学生的综合运用能力,占总评的40%。

评估方式将结合定性和定量评价,以全面反映学生的学习成果。

六、教学安排本节课的教学安排如下:1.教学进度:按照教材《C程序设计》的章节顺序进行教学,确保学生在每个阶段掌握相应的知识点。

c课程设计菜单点餐系统

c课程设计菜单点餐系统

c 课程设计菜单点餐系统一、教学目标本课程的目标是让学生掌握菜单点餐系统的开发过程和基本原理,培养学生的实际编程能力和解决问题的能力。

具体目标如下:知识目标:使学生了解菜单点餐系统的需求分析、系统设计、编码实现和测试等基本环节;掌握C语言的基本语法和编程方法;理解数据结构在菜单点餐系统中的应用。

技能目标:培养学生运用C语言进行程序设计的能力,能够独立完成菜单点餐系统的设计与实现;培养学生运用算法解决问题的能力,能够针对实际问题设计合理的算法。

情感态度价值观目标:培养学生热爱编程、勇于探索的科学精神;培养学生团队协作、共同解决问题的合作意识;培养学生关注实际应用、积极服务社会的责任感。

二、教学内容本课程的教学内容主要包括以下几个部分:1.菜单点餐系统概述:介绍菜单点餐系统的基本概念、功能和应用场景,使学生了解菜单点餐系统的重要性和实际意义。

2.需求分析:培养学生分析用户需求、撰写需求说明书的能力,使学生掌握需求分析的基本方法和技巧。

3.系统设计:教授学生如何根据需求分析结果进行系统设计,包括模块划分、界面设计、数据库设计等,培养学生运用设计原理和方法解决问题的能力。

4.编码实现:教授学生使用C语言进行程序设计,使学生掌握基本语法、数据类型、运算符、控制结构等编程基础知识,培养学生熟练编写程序的能力。

5.测试与调试:培养学生编写测试用例、进行系统测试和调试的能力,使学生了解软件质量保证的基本方法。

6.数据结构与应用:讲解在菜单点餐系统中常用的数据结构,如数组、链表、树等,培养学生运用数据结构解决实际问题的能力。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:教师讲解基本概念、原理和方法,使学生掌握相关知识。

2.案例分析法:分析实际案例,使学生了解菜单点餐系统的应用场景和开发过程。

3.实验法:让学生动手编写程序,培养学生的实际编程能力和解决问题的能力。

4.小组讨论法:分组进行讨论和合作,培养学生的团队协作能力和沟通能力。

饭店订餐系统c语言课程设计

饭店订餐系统c语言课程设计

饭店订餐系统c语言课程设计一、课程目标知识目标:1. 理解C语言的基本语法和程序结构;2. 学会使用C语言进行数据输入、输出、处理和存储;3. 掌握利用C语言设计小型饭店订餐系统的基本方法;4. 了解程序设计中的模块化、顺序结构、选择结构和循环结构。

技能目标:1. 能够运用C语言编写简单的功能函数,实现数据的基本操作;2. 能够设计并实现一个具有用户界面的小型饭店订餐系统;3. 能够通过调试和修改程序,解决实际问题;4. 能够运用所学知识,进行项目协作和团队沟通。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习C语言的积极性;2. 培养学生的逻辑思维能力,提高分析问题和解决问题的能力;3. 培养学生的团队协作精神,增强沟通与表达能力;4. 培养学生具备严谨、认真、负责的学习态度,养成良好的编程习惯。

分析课程性质、学生特点和教学要求,本课程目标旨在使学生在掌握C语言基础知识的基础上,通过实际项目设计,提高编程实践能力,培养良好的编程素养和团队协作精神。

通过课程学习,学生能够将所学知识应用于实际项目,为今后进一步学习计算机科学与技术专业课程打下坚实基础。

二、教学内容1. C语言基础知识回顾:变量、数据类型、运算符、表达式、输入输出函数;2. 控制结构:顺序结构、选择结构(if语句、switch语句)、循环结构(for循环、while循环、do-while循环);3. 函数:函数定义、函数调用、参数传递、返回值、库函数的使用;4. 数组与字符串:一维数组、二维数组、字符串处理;5. 指针:指针的概念、指针的使用、指针与数组、指针与函数;6. 结构体与文件:结构体的定义和使用、文件操作基础;7. 饭店订餐系统设计:系统需求分析、功能模块划分、菜单设计、用户界面设计、数据存储设计;8. 编程实践:编写各功能模块代码、整合系统、调试与优化。

教学内容按照教材章节顺序安排,结合课程目标,注重理论与实践相结合。

c语言课程设计电子点餐系统设计

c语言课程设计电子点餐系统设计

c语言课程设计电子点餐系统设计一、教学目标本课程的教学目标是使学生掌握C语言的基本语法和编程技巧,能够运用C语言设计并实现一个电子点餐系统。

具体目标如下:1.理解C语言的基本数据类型、运算符和表达式。

2.掌握C语言的控制结构,包括条件语句和循环语句。

3.熟悉函数的定义和调用,理解局部变量和全局变量的概念。

4.了解指针的基本概念和应用。

5.能够使用C语言编写简单的程序,实现基本的输入输出操作。

6.能够使用C语言进行基本的控制流程设计,如条件判断和循环。

7.能够使用C语言实现函数的定义和调用,理解函数的参数传递和返回值。

8.能够使用指针解决实际问题,如字符串操作和数组操作。

情感态度价值观目标:1.培养学生对计算机编程的兴趣和好奇心,提高学生的自主学习能力。

2.培养学生解决问题的能力,使学生能够通过编程解决实际问题。

3.培养学生团队合作的精神,使学生能够在团队中共同完成项目任务。

二、教学内容根据课程目标,本课程的教学内容主要包括C语言的基本语法、编程技巧和电子点餐系统的设计。

具体内容如下:1.C语言的基本语法:数据类型、运算符、表达式、控制结构、函数、指针等。

2.编程技巧:变量定义、输入输出操作、控制流程设计、函数调用、指针应用等。

3.电子点餐系统设计:系统需求分析、系统架构设计、模块划分、功能实现等。

三、教学方法为了达到课程目标,本课程将采用多种教学方法,包括讲授法、案例分析法、实验法等。

1.讲授法:通过讲解C语言的基本语法和编程技巧,使学生掌握相关知识。

2.案例分析法:通过分析实际案例,使学生理解电子点餐系统的设计过程和方法。

3.实验法:通过编写代码和实际操作,使学生掌握C语言编程的技巧,并能够设计简单的电子点餐系统。

四、教学资源为了支持教学内容和教学方法的实施,本课程将准备以下教学资源:1.教材:选用权威、实用的C语言教材,如《C程序设计语言》。

2.参考书:提供相关的C语言编程参考书籍,供学生自主学习。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象程序课程设计(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_fm.f ood[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].getNa me()<<"\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;cin>>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<<"| 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;cin>>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<<"| 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 退出修改io("C:\\Users\\Administrator\\Desktop\\food.txt",ios::in);while(!io()){char *s;double p;s=new char[20];ioFile>>s>>p;fm.addFood(s,p);}io();//以上是从文件读入食物的种类和价格信息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)//退出系统{//io("D:\\food.txt",ios::out);io("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].getPrice( );if(i != (fm.getTotal()-1))ioFile<<endl;}io();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新顾客点餐登记客户信息姓名:陈小坠电话接下来弹出客户服务选择界面进入服务选择界面,选择1就餐弹出菜单,有食物编号,名称,价格选择1加菜选择食物编号0 瓜丝儿,数量3同理,再添加食物金华火腿*1 山鸡丁儿*4 山东煎饼*5选择2,修改订单选择1,修改食物数量选择瓜丝儿,数量修改为1选择2 删除食物山东煎饼修改后的订单如上,选3退出修改,再选3提交订单,此时输出客户订单信息,并返回主界面,如下所示同理,继续添加客户如下李小龙就餐草泥马*1 炸豆腐*2陆小凤外卖山东煎饼*3 酿山药*4 玉兰片*3刘备外卖糖焖莲子*2猪八戒就餐龙须菜*3 浇鸳鸯*4 烧鱼头*5 拌海蜇*4现在点1,顾客服务2查询订单,查询猪八戒的订单订单排在第3,这里就餐和外卖进行了排序,就餐在外卖前面,就餐和外卖则按照先后顺利排列选择2:退出订单查询选择2,食物管理添加食物冰糖葫芦价格46,结果如下多出了第18道菜,冰糖葫芦选择2,修改食物价格,把浇鸳鸯的价格改为1先择3 删除食物草泥马改变后的菜单列表如下选择4,退出食物管理进入主菜单选择3 今日反馈显示今日的销售额,显示所有订单详情,按照就餐和外卖先后顺序排序选择4 退出系统七:心得与体会通过设计这个自主点餐系统,我对C++面向对面的思想和对于类的运用有了更深的理解。

相关文档
最新文档