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语言编程参考书籍,供学生自主学习。

C课程设计自助点餐系统

C课程设计自助点餐系统

面向对象程序课程设计(2014/2015 学年第一学期第20 周)指导教师:庄巧莉、杨东鹤班级:计算机科学与技术13(1)学号:姓名:面向对象程序课程设计目录一、题目二、需求分析三、系统结构图四、类的设计五、程序代码与说明六、运行结果与分析七、心得与体会:题目自助点餐系统二:需求分析有一个小型餐厅,该餐厅提供即时就餐和外卖服务。

现在这个餐厅打算使用自助点餐系统,让顾客自己点餐,实现以下功能。

1、根据顾客的选择正确打出账单2、正确统计出每一天的及时就餐和外卖的销售情况3、实现对餐厅菜式和价格的有效管理4、考虑点餐的自动排序问题,使顾客可以实时查询到自己菜单处理情况三:系统结构图四:类的设计Client 类:客户类,包含客户属性姓名,电话号码,费用等信息,登记客户,记录客户订单信息ClientManager 类:客户管理类,用于管理客户,记录客户数量,存储客户菜单信息,查询客户订单信息,统计订单FeeMa nage啖:用于记录就餐、外卖的销售费用,统计收入Food 类:餐厅食物的类,包含食物名称和价格FoodManager 类:管理菜单,用于添加食物,修改食物,删除食物,记录不同食物的信息,呈现菜单Menu View类:用于打印各种操作界面五:程序代码与说明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: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)<<" 食物序列"vvsetw(10)v<setiosflags(ios::left)vv" 菜名"<<"\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.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 += (numssnum[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);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;}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总价是:"vvclie nt[i].getFee()<<" 元"<<"\t 就餐"<<e ndl«e ndl;if(strcmp(client[i].getName(),s)==0)th =count;}if(client[i].getType()==2)总价是:cout<<" 第"<<++count<<" 单: "<<client[i].getName()<<"\t"vvclie nt[i].getFee()<<" 元"<<"\t 外卖"<<e ndl«e ndl;if(strcmp(client[i].getName(),s)==0)th =count;}coutvv"您当前排在第"vvthvv"单"<<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 FOOD class Foodprivate: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"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); intgetListByName(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;"<<total<<endl;cout<<" 成功添加了食物,当前共有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].getName()<<"\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 FEEMANAGER class FeeManagerprivate: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()就餐总收入// 外卖总收入// 构造函数// 返回外卖总收入// 返回就餐总收入// 增加外卖总收入// 添加就餐总收入waiMaiFee = 0;}double FeeManager::getWaiMaiFee(){return waiMaiFee;}double FeeManager::getJiuCanFee(){return jiuCanFee;}void FeeManager::addWaiMaiFee(double x) {waiMaiFee += x;}void FeeManager::addJiuCanFee(double x)}MenuView.h#ifndef MENUVIEW#define MENUVIEW class 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 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;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<<"| 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<<" ----------------------- "<<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(){-"<<endl;cout<<"----------------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<<"| 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<<"| 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 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]=numscout<<" 当前的总费用是"<<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]=numscout<<" 当前的总费用是"<<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();}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();// 输出当前订单}}// 用户注册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; // 退出查询}}}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()<<" 人消费,销售总额共"vvfeem.getJiuCa nF ee()+feem.getWaiMaiFee()<<"元"<<e ndl;cout<<" 其中就餐总额为"<<feem.getJiuCanFee()<<" 元,";cout«"外卖总额为"<vfeem.getWaiMaiFee()vv"元"<<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.f ood[i].getPrice();if(i != (fm.getTotal()-1))ioFile<<endl;}ioFile.close();cout<<" 成功退出系统"<<endl<<endl<<endl;system("pause");return 0;}}六:运行结果与分析从food.txt 文件导入菜单,food.txt 内容如下。

C#课程设计_快餐店点餐系统

C#课程设计_快餐店点餐系统

1. 需求分析1.1任务概述从分析快餐店店店的基本情况入手,进行系统的可行性分析,来了解企业的管理特点和存在的问题,在此基础上,进行详细分析,得出系统功能结构图,再通过系统实现等环节,最终开发出能够满足餐饮业务需要的餐饮管理信息系统。

1.2任务目标为适应现代社会人们高度强烈的消费观念,研发餐饮管理系统,改善以前用人力资源统计信息的方法,借助本系统显示的结果可以达到以下目的:1.方便使用者可以安全的查找自己想要的各种餐饮信息;2.通过全面的餐饮信息采集和处理,辅助提高系统的管理水平;3.使用本系统,可以提高饭店的管理效率。

1.3 需求规定餐饮管理系统主要包括以下模块:用户管理模块、菜肴管理模块、营业管理模块、预定管理模块、外卖管理模块、员工管理模块,各模块需求规定如下:1. 用户管理模块用户管理模块主要实现以下功能:1)编辑用户信息,即用户可以修改信息,其中普通用户只能修改自身信息,超级用户能修改自身和其他管理员的信息;2)添加新用户,新的管理员可以再此注册,建立其用户名和密码。

2. 菜肴管理模块菜肴管理模块主要实现以下功能:1)菜肴基本信息的浏览,可以浏览各个菜肴的单价、备注等;2)菜肴基本信息的编辑,管理员可以在此编辑菜肴的基本信息;3)添加菜肴信息,当有新的菜肴进入饭店时,在此添加新信息。

3. 营业管理模块营业管理模块主要实现以下功能:1)点菜,通过输入桌号、菜名及备注来点菜;2)查询点菜信息,通过输入桌号查询该桌是否有点菜信息,以及信息内容;3)结账,输入桌号,可浏览该桌消费内容以及可以享受的折扣服务,并在此结账。

4. 预定管理模块预定模块主要实现以下功能:1)添加预定信息,在此模块中通过添加预定时间、人数、桌号、客户姓名、客户电话等添加预定饭菜信息;2)修改预定信息,如果预定信息中有需要改动的信息,可以在此修改,也可以删除预定信息,及取消预定。

5. 外卖管理模块外卖管理模块主要实现以下功能:1)浏览外卖信息,打开外卖管理的页面后,可以浏览到外卖信息;2)编辑外卖信息,通过编辑职工编号、姓名、客户姓名、电话、地址来编辑或修改外卖信息;3)添加外卖信息,当有新的客户订外卖时,在此添加新的外卖信息。

c订餐系统课程设计报告

c订餐系统课程设计报告

c 订餐系统课程设计报告一、课程目标知识目标:1. 让学生掌握订餐系统的基本概念,了解其功能模块和工作流程;2. 使学生了解数据库在订餐系统中的作用,学会使用基本的SQL语句进行数据查询和操作;3. 帮助学生理解计算机编程在订餐系统开发中的应用,学会使用一种编程语言(如Python)进行简单的系统开发。

技能目标:1. 培养学生运用所学知识分析实际问题的能力,能够根据需求设计订餐系统的功能模块;2. 提高学生动手实践能力,学会使用数据库软件进行数据管理,运用编程语言开发简单的订餐系统;3. 培养学生团队协作和沟通能力,能够在项目开发过程中进行有效分工与合作。

情感态度价值观目标:1. 培养学生热爱生活、关注社会热点问题的意识,激发他们对信息技术在餐饮行业应用的好奇心;2. 增强学生的信息素养,使他们在实际操作中体会信息技术的实用性和创新性,培养对信息技术的兴趣;3. 引导学生树立正确的价值观,让他们明白技术应用的道德伦理规范,遵守国家法律法规,为社会主义建设贡献力量。

本课程旨在结合学生的年龄特点和知识水平,通过讲解和实践相结合的方式,使学生在掌握订餐系统基本知识的基础上,提高实际操作能力和团队协作能力,培养他们热爱信息技术、关注社会发展的情感态度价值观。

为实现课程目标,教学过程中将注重分解具体学习成果,以便于教学设计和评估。

二、教学内容本章节教学内容主要包括以下三个方面:1. 订餐系统基本概念与功能模块- 系统介绍:讲解订餐系统的定义、作用及其在餐饮行业中的应用;- 功能模块:分析订餐系统的核心功能模块,如用户注册、菜品浏览、购物车、订单管理等;- 系统架构:介绍订餐系统的整体架构,包括前端、后端和数据库等。

2. 数据库应用与SQL语句- 数据库基础:讲解数据库的基本概念,如表、字段、记录等;- SQL语句:教授基本的SQL语句,包括SELECT、INSERT、UPDATE和DELETE等;- 实践操作:指导学生使用数据库软件进行数据管理,如创建表、插入数据、查询数据等。

c语言点菜系统课程设计

c语言点菜系统课程设计

c语言点菜系统课程设计一、课程目标知识目标:1. 理解C语言编程的基本概念,包括变量、数据类型、运算符、控制结构等;2. 学会使用C语言设计小型点菜系统,掌握数组、函数、指针等在程序设计中的应用;3. 了解结构体类型及其在C语言中的应用,学会用结构体存储和管理点菜系统中的数据;4. 掌握文件操作在C语言中的使用,实现点菜信息的保存和读取。

技能目标:1. 能够运用所学知识,独立设计并编写一个简单的C语言点菜系统;2. 培养良好的编程习惯,如代码规范、注释清晰、逻辑性强等;3. 提高问题分析能力,能够根据需求进行模块划分,实现系统功能;4. 学会使用调试工具,分析并解决程序中可能出现的问题。

情感态度价值观目标:1. 培养学生对待编程的兴趣和热情,激发学生的学习积极性;2. 培养学生的团队协作精神,学会与他人共同解决问题;3. 培养学生的创新意识,敢于尝试新方法,提高解决问题的能力;4. 培养学生的责任心,认真对待每一次编程实践,养成良好的学习习惯。

本课程针对高年级学生,课程性质为实践性较强的编程课程。

学生已具备一定的C语言基础,具有较强的逻辑思维能力和动手能力。

教学要求以学生为主体,注重培养学生的实际操作能力和创新精神。

通过本课程的学习,期望学生能够掌握C语言点菜系统的设计方法,提高编程实践能力,为后续深入学习打下坚实基础。

二、教学内容1. C语言基础知识回顾:变量、数据类型、运算符、控制结构(条件语句、循环语句);2. 数组与函数:一维数组、二维数组、函数的定义与调用、局部变量与全局变量、递归函数;3. 指针与字符串:指针的概念、指针与数组、指针与函数、字符串操作;4. 结构体与文件操作:结构体类型的定义与使用、结构体数组、文件读写、文件存储格式;5. 点菜系统功能模块设计:菜单显示、菜品添加、菜品删除、菜品查询、点餐结算;6. 点菜系统实现:系统框架搭建、功能模块编写、代码调试与优化;7. 点菜系统测试与完善:测试用例设计、系统测试、问题分析与解决、系统优化。

c课程设计餐厅点餐系统设计

c课程设计餐厅点餐系统设计

c 课程设计餐厅点餐系统设计一、课程目标知识目标:1. 让学生掌握餐厅点餐系统的基本概念和功能模块,了解其工作原理;2. 使学生了解数据库在餐厅点餐系统中的应用,学会使用基本的数据查询和操作;3. 帮助学生理解编程语言在餐厅点餐系统开发中的重要性,学会使用相关编程技巧。

技能目标:1. 培养学生运用所学知识设计和开发一个简单的餐厅点餐系统的能力;2. 提高学生分析问题和解决问题的能力,能够针对餐厅点餐系统的实际需求提出合理的解决方案;3. 培养学生团队协作能力,能够在项目中分工合作,共同完成任务。

情感态度价值观目标:1. 激发学生对计算机科学与技术学科的兴趣,培养其主动学习和探究的精神;2. 培养学生关注实际生活问题,学会运用所学知识解决现实问题,提高社会责任感;3. 引导学生认识到科技在餐饮行业中的重要作用,培养其创新意识和创业精神。

课程性质:本课程为实践性较强的课程,旨在让学生通过实际操作,掌握餐厅点餐系统的设计方法和开发技巧。

学生特点:学生具备一定的计算机基础知识,对编程和数据库有一定了解,但实际应用能力有待提高。

教学要求:注重理论知识与实践操作相结合,鼓励学生积极参与讨论和实践,培养其独立思考和解决问题的能力。

在教学过程中,将目标分解为具体的学习成果,以便进行教学设计和评估。

二、教学内容1. 餐厅点餐系统概述:介绍餐厅点餐系统的基本概念、功能模块及其在实际中的应用。

- 教材章节:第1章 计算机网络应用概述- 内容:餐厅点餐系统的基本组成、发展历程及未来发展趋势。

2. 数据库应用:学习数据库在餐厅点餐系统中的作用,掌握基本的数据查询和操作方法。

- 教材章节:第3章 数据库技术- 内容:数据库设计、数据表创建、数据查询与操作。

3. 编程语言及开发工具:学习编程语言在餐厅点餐系统开发中的应用,熟悉相关开发工具。

- 教材章节:第2章 编程语言及开发环境- 内容:编程语言基础、开发工具使用、基本编程技巧。

c语言课程设计订餐系统设计方案

c语言课程设计订餐系统设计方案

c语言课程设计订餐系统设计方案一、教学目标通过本章节的学习,使学生掌握C语言编程的基本方法,能够运用C语言设计简单的订餐系统。

具体目标如下:1.知识目标:(1)理解C语言的基本语法和数据类型;(2)掌握C语言的函数设计和调用方法;(3)了解结构体和指针的概念,并能应用于实际编程。

2.技能目标:(1)能够运用C语言编写简单的程序;(2)能够运用结构体和指针设计复杂的数据结构;(3)能够设计并实现一个简单的订餐系统。

3.情感态度价值观目标:培养学生对计算机编程的兴趣,增强其动手实践能力,培养其团队协作和解决问题的能力。

二、教学内容本章节的教学内容主要包括以下几个部分:1.C语言的基本语法和数据类型;2.C语言的函数设计和调用方法;3.结构体和指针的概念及其应用;4.订餐系统的设计和实现。

三、教学方法为了提高教学效果,本章节将采用以下几种教学方法:1.讲授法:用于讲解C语言的基本语法、数据类型和函数设计;2.案例分析法:通过分析实际案例,使学生掌握结构体和指针的应用;3.实验法:让学生动手实践,设计并实现一个简单的订餐系统。

四、教学资源为了支持教学,本章节将提供以下教学资源:1.教材:《C程序设计语言》;2.参考书:《C Primer Plus》;3.多媒体资料:教学PPT、视频教程等;4.实验设备:计算机、编程环境。

五、教学评估为了全面、公正地评估学生在订餐系统设计课程中的学习成果,将采用以下评估方式:1.平时表现:通过课堂参与、提问和小组讨论等方式,评估学生的学习态度和课堂表现。

2.作业:布置与课程相关的编程作业,评估学生对C语言编程的掌握程度。

3.实验报告:评估学生在实验过程中的动手实践能力和问题解决能力。

4.期末考试:设置期末考试,涵盖本章节的所有知识点,以评估学生的综合运用能力。

六、教学安排本章节的教学安排如下:1.教学进度:按照教材的章节顺序,逐步讲解C语言编程和订餐系统设计的相关知识。

2.教学时间:共计16课时,每课时45分钟。

c语言课程设计订餐系统

c语言课程设计订餐系统

c语言课程设计订餐系统一、课程目标知识目标:1. 学生能理解C语言中结构体、数组、函数等基本概念,并掌握其在程序设计中的应用。

2. 学生能够运用C语言编写、调试简单的订餐系统程序,实现对菜单的管理、用户点餐、计算总价等功能。

3. 学生了解文件操作在C语言中的实现方法,并能应用于保存和读取订餐系统的数据。

技能目标:1. 学生能够运用结构体和数组管理菜单信息,培养数据组织和管理的编程能力。

2. 学生通过编写函数实现特定功能,提高代码复用和模块化编程的能力。

3. 学生能够运用条件语句和循环结构实现逻辑判断和重复操作,增强问题解决能力。

情感态度价值观目标:1. 学生在课程学习过程中,培养细心、耐心、严谨的编程态度,提高对程序错误的敏感度和调试能力。

2. 学生通过分组合作完成课程项目,培养团队协作意识和沟通能力。

3. 学生在编写订餐系统程序的过程中,关注用户体验,认识到编程对现实生活的影响,提高社会责任感。

课程性质:本课程为C语言程序设计课程,以项目驱动的方式进行教学,旨在让学生在实际项目中运用所学知识,提高编程能力和问题解决能力。

学生特点:学生已具备一定的C语言基础,了解基本语法和编程结构,但对于项目实战经验不足,需要通过具体项目提高实践能力。

教学要求:结合学生特点,注重理论与实践相结合,以项目为主线,引导学生自主探究、合作学习,培养编程思维和实际操作能力。

在教学过程中,关注学生的学习进度和需求,及时调整教学策略,确保课程目标的实现。

通过课程学习,使学生能够独立完成简单的订餐系统程序设计,为以后的学习和工作打下坚实基础。

二、教学内容1. 结构体和数组的使用:- 介绍结构体定义和声明,引用结构体变量;- 结构体数组的使用,实现对菜单信息的存储和管理;- 课本相关章节:第三章《数据类型与表达式》。

2. 函数设计与调用:- 编写函数实现特定功能,如显示菜单、点餐、计算价格等;- 掌握函数参数传递、返回值等概念;- 课本相关章节:第四章《函数》。

c语言订餐系统课程设计

c语言订餐系统课程设计

c语言订餐系统课程设计一、课程目标知识目标:1. 学生能够掌握C语言的基本语法和结构,包括变量声明、数据类型、运算符、控制结构等。

2. 学生能够理解数组、字符串、函数等C语言核心概念,并能在编程中正确运用。

3. 学生能够学习并应用结构体和文件操作知识,实现数据的存储和读取。

技能目标:1. 学生能够设计并实现一个基于C语言的订餐系统,完成用户注册、登录、菜单显示、点餐、结算等基本功能。

2. 学生能够通过编程解决实际问题,培养分析问题、设计算法、编写程序、调试代码的能力。

3. 学生能够运用所学知识,进行团队协作,共同完成一个综合性项目。

情感态度价值观目标:1. 学生能够认识到编程在生活中的实际应用,激发学习兴趣,提高主动学习的积极性。

2. 学生在项目实践中,培养解决问题的自信心,增强克服困难的意志力。

3. 学生通过团队协作,学会沟通与交流,培养合作精神和团队意识。

课程性质:本课程为C语言编程实践课,以项目为导向,注重培养学生的编程能力和实际应用能力。

学生特点:学生具备一定的C语言基础,具备初步编程能力,但实践经验不足。

教学要求:结合学生特点,注重理论与实践相结合,引导学生主动探索,培养解决实际问题的能力。

将课程目标分解为具体的学习成果,以便于教学设计和评估。

二、教学内容1. C语言基础知识回顾:变量、数据类型、运算符、控制结构(条件语句、循环语句)。

相关教材章节:第一章至第四章。

2. 数组与字符串:一维数组、二维数组、字符串操作。

相关教材章节:第五章。

3. 函数:函数的定义、调用、参数传递、递归。

相关教材章节:第六章。

4. 结构体:结构体的定义、初始化、结构体数组、结构体指针。

相关教材章节:第七章。

5. 文件操作:文件打开、关闭、读写操作。

相关教材章节:第八章。

6. 订餐系统项目实践:- 用户注册、登录功能实现。

- 菜单显示、点餐功能实现。

- 结算功能实现。

- 数据的存储和读取。

教学进度安排:1. 基础知识回顾(2课时)。

c语言课程设计食堂管理系统

c语言课程设计食堂管理系统
7.第四部分:食堂管理系统设计(4课时)
–教材章节:无
–主要内容:菜单显示、菜品添加、删除、修改和查询等功能的设计和实现
三、教学方法
本课程采用讲授法、案例分析法和实验法相结合的教学方法。
8.讲授法:用于讲解C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识。
9.案例分析法:通过分析具体的食堂管理系统的案例,使学生更好地理解和掌握C语言编程的方法和技巧。
34.教学日志:教师记录教学过程中的得失,不断反思和改进教学方法。
反馈机制有助于我们及时了解学生的学习情况,提高课程质量。
31.开源项目参与:引导学生参与开源项目,提高他们的团队合作能力和实际项目经验。
社会实践和应用有助于学生将所学知识应用于实际,提高他们的实践能力。
十二、反馈机制
为了不断改进课程设计和教学质量,我们将建立有效的学生反馈机制。具体措施如下:
32.学生问卷:定期进行问卷,收集学生对课程的意见和建议。
33.学生座谈会:学生座谈会,与学生面对面交流,了解他们的学习需求和困惑。
教学创新有助于激发学生的学习兴趣,提高他们的学习效果。
十、跨学科整合
本课程将考虑不同学科之间的关联性和整合性,促进跨学科知识的交叉应Leabharlann 和学科素养的综合发展。具体措施如下:
26.结合数学知识:在编程中引入数学问题,让学生体会数学与编程的紧密联系。
27.结合物理知识:通过模拟物理实验,让学生了解编程在物理领域的应用。
18.课后辅导:针对有需求的学生,提供课后辅导时间,解答他们的疑问,帮助他们巩固知识。
19.项目实践:设计不同难度的编程项目,让学生根据自己的能力选择完成,激发学生的学习兴趣。
差异化教学有助于满足不同学生的学习需求,提高他们的学习效果。

C#课程设计点餐系统

C#课程设计点餐系统

郑州科技学院C # 课程设计设计(论文)题目:点餐系统所在院:信息工程学院专业班级:10计算机科学与技术2班学生姓名:杨哲学号:201015068指导教师:王玉萍2013年6月5日摘要饭店点餐系统基于餐饮业诞生而发展的一个网络化管理系统。

本系统采用C#技术并结合Sqlserver 2005 后台数据库开发实现。

本课题开发的点餐系统管理系统采用C/S模式开发。

系统开发的性能要求是实现饭店点餐的简单化、规范化。

C#、Sqlserver数据库以及Socket编程实现以下功能:1.服务器端:饭店菜单管理、饭店vip顾客信息管理、结算管理、当天营业额查询;2.客户端:vip顾客登陆、各个包房同步开台同步点餐、发送订单至服务台、查看个人订单。

本文的主要工作集中在对所要开发的系统进行简要的概述,着重分析所要用到的技术,详细介绍了系统各个功能模块的设计及实现,在详细设计的基础上,对部分模块的关键技术进行了重点介绍和分析,并对系统进行严格的测试。

关键词:饭店点餐系统、C#、Sqlserver2005绪论随着社会的进步和计算机技术的发展,特别是微型计算机的大范围普及,计算机的应用逐渐由科学计算、实时控制等方面向非数值处理的各个领域中渗透。

尤其是以微型计算机为处理核心,以数据库管理系统为开发环境的管理系统在商业管理等方面的应用,日益受到人们的关注。

自20世纪50年代将计算机引入数据处理以来,历经管理系统发展的各个阶段。

一方面是信息技术应用的迅猛发展,另一方面,许多管理系统在耗费了大量的人力、物力、财力之后夭折了,或者根本没有实现原定系统开发目标,而把计算机用作了打字机。

这是长期以来困扰人们的一大问题。

现在人们日益深刻的认识到,把信息技术与应用环境分离是办不到的。

对于餐饮企业来说,利用计算机网络完成饭店的企业管理事务,是适应现代企业制度要求、推动企业管理走向科学化、规范化的必要条件,如果实行手工操作,手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行办公日常工作时,不仅能够保证准确无误、快速输出,而且还可以利用计算机对有关各种信息进行统计,同时计算机具有手工管理所无法比拟的优点。

c#点餐系统课程设计

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. 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++面向对面的思想和对于类的运用有了更深的理解。

相关文档
最新文档