代码:

#include <iostream>
#include <string>
#include <vector>
using namespace std;/**
* 案例 - 吃货联盟系统
* 案例描述:
*     现在已经进入网络时代,人们的日常生活已经离不开网络,如网上购物、看新闻、交友等。
*     “只要点点手,就能送餐上门”,网上订餐越来越受到都市年轻人的青睐。
*     本系统功能包括:
*           1、我要订餐
*           2、查看餐袋
*           3、签收订单
*           4、删除订单
*           5、我要点赞
*           6、退出系统
*
*  订单信息包括:订餐人姓名、选择菜品及份数、送餐时间、送餐地址、订单状态、总金额
*//**
* 菜品
*/
struct Food {string name;    // 菜名double price;   // 价格int food_num;   // 数量int love;       // 点赞数
};/**
* 订单
*/
struct Order {string user_name;    // 订餐人姓名Food food;           // 菜品string date_time;    // 送餐时间string address;         // 送餐地址int state;           // 订单状态(0:派送中,1:已签收)double total_price;  // 总金额
};/**
* 显示菜单
*/
void showMenu();/**
* 数据初始化
*/
void init(vector<Food>& F);/**
* 打印菜品信息
*/
void printFood(vector<Food>& F);/**
* 打印订单信息
*/
void printOrder(vector<Order>& Or);/**
* 签收订单
*/
bool signForOrder(vector<Order>& Or, int num);/**
* 删除订单
*/
bool deleteOrder(vector<Order>& Or, int num);/**
* 实现菜品点赞
*/
void add_food_love(vector<Food>& F, int num);int main() {// 初始化vector<Food>F;   // 菜品容器vector<Order>Or; // 订单容器init(F);int flag = 0;    // 菜单选项Order order;     // 订餐信息容器Food food;       // 菜品信息容器int no;          // 菜品编号容器bool res;        // 返回结果容器(判断成功与否)string msg;      // 提示语句while (flag!=6) {showMenu();cin >> flag;switch (flag){case 1:cout << "***我要订餐***" << endl;cout << "请输入订餐人姓名:";cin >> order.user_name;printFood(F);cout << "请选择菜品(请输入编号):";cin >> no;food = F.at(no-1);cout << "请输入菜品数量:";cin >> food.food_num;cout << "请输入送餐时间:";cin >> order.date_time;cout << "请输入送餐地址:";cin >> order.address;order.food = food;order.state = 0;order.total_price = food.price * food.food_num;Or.push_back(order);cout << "提示:订餐成功!" << endl;break;case 2:cout << "***查看餐袋***" << endl;printOrder(Or);break;case 3:cout << "***签收订单***" << endl;printOrder(Or);if (Or.size() > 0) {cout << "请选择要签收的订单编号:";cin >> no;res = signForOrder(Or, no);msg = res ? "提示:订单签收成功!" : "提示:订单签收失败(已签收或订单编号不存在)";cout << msg << endl;}break;case 4:cout << "***删除订单***" << endl;printOrder(Or);if (Or.size() > 0) {cout << "请选择要删除的订单编号:";cin >> no;res = deleteOrder(Or, no);msg = res ? "提示:订单删除成功!" : "提示:订单删除失败(订单可能未签收或不存在)!";cout << msg << endl;}break;case 5:cout << "***我要点赞***" << endl;printFood(F);cout << "请选择要点赞的菜品编号:";cin >> no;add_food_love(F, no);cout << "提示:点赞成功!" << endl;break;case 6:cout << "***退出系统***" << endl;break;default:// ps:只能判断整数类型cout << "***没有该选项***" << endl;break;}}return 0;
}void init(vector<Food>& F) {Food f1 = { "鱼香肉丝",28 ,0,0};Food f2 = { "红烧排骨",32 ,0,0 };Food f3 = { "醋溜土豆丝",15 ,0,0 };Food f4 = { "时令小菜",15 ,0,0 };Food f5 = { "酸菜鱼hot",98 ,0,0 };Food f6 = { "茄子豆角",22 ,0,0 };Food f7 = { "蚂蚁上树",26 ,0,0 };Food f8 = { "虎皮扣肉",58 ,0,0 };Food f9 = { "西红柿炒蛋",18 ,0,0 };F.push_back(f1);F.push_back(f2);F.push_back(f3);F.push_back(f4);F.push_back(f5);F.push_back(f6);F.push_back(f7);F.push_back(f8);F.push_back(f9);
}void printFood(vector<Food>& F) {int num = 1;cout << "序号 \t菜名名字 " << "\t价格" << "\t点赞人数" << endl;for (vector<Food>::iterator it = F.begin(); it != F.end(); it++) {cout << num << ".\t" << it->name << "\t" << it->price << "\t " << it->love << endl;num++;}
}void showMenu() {cout << "\n欢迎使用“吃货联盟系统”~" << endl;cout << "***********************************" << endl;cout << "1、我要订餐" << endl;cout << "2、查看餐袋" << endl;cout << "3、签收订单" << endl;cout << "4、删除订单" << endl;cout << "5、我要点赞" << endl;cout << "6、退出系统" << endl;cout << "***********************************" << endl;cout << "请选择:";
}void printOrder(vector<Order>& Or) {if (Or.size() > 0) {int num = 1;cout << "序号\t订餐人姓名\t菜品名称\t菜品数量\t送餐时间\t送餐地址\t订单状态\t总金额" << endl;for (vector<Order>::iterator it = Or.begin(); it != Or.end(); it++) {cout << num << ".\t"<< it->user_name << " \t\t"<< it->food.name << "\t"<< it->food.food_num << "\t\t"<< it->date_time << "\t"<< it->address << "\t"<< ((it->state) == 0 ? "派送中" : "已签收") << "\t\t"<< it->total_price << endl;num++;}}else {cout << "提示:当前暂无订单信息" << endl;}}bool signForOrder(vector<Order>& Or, int num) {if (Or.size() > 0 && num <= Or.size() && num > 0 && Or.at(--num).state == 0) {Or.at(num).state = 1;return true;}return false;
}bool deleteOrder(vector<Order>& Or, int num) {if (Or.size() > 0 &&num <= Or.size() && num > 0 && Or.at(--num).state == 1) {int index = 0;for (vector<Order>::iterator it = Or.begin(); it != Or.end(); it++) {if (index == num) {Or.erase(it);return true;}}}return false;
}void add_food_love(vector<Food>& F, int num) {num--;F.at(num).love++;
}

吃货联盟系统 C++实现相关推荐

  1. java吃货联盟系统

    public class Dingdan {DingDanxinxi d = new DingDanxinxi();Scanner input = new Scanner(System.in);//提 ...

  2. java吃货联盟系统源码_小项目,吃货联盟,java初级小项目,源代码

    小项目,吃货联盟,java初级小项目,源代码 1importjava.util.Scanner;23/**4* 吃货联盟订餐管理系统5*6*/7publicclassOrderingMsg {8pub ...

  3. Java 吃货联盟系统(变量、数组)

    1.程序主页面: package cn.zhang;import java.util.Scanner;public class Demo {public static void main(String ...

  4. java吃货联盟系统源码_吃货联盟 源代码 Java初级小项目

    咳咳,今天博主给大家写一个小的项目:吃货联盟订餐系统.博主不是大神(互联网架构师的路上ing),也是小白一个,不过是刚入门的小白^_^.项目功能也很简单:只是模拟日常的订餐流程呦,所以有错误以及功能不 ...

  5. java吃货联盟系统源码_java-吃货联盟订餐系统

    一.系统概述 编写一个订餐的系统,具体需要实现这6个功能:分别是,我要订餐.查看餐袋.签收订单.删除订单.我要点赞.退出系统. 编写设计一个良好的系统,需要符合界面交互设计的原则,具体包括 ①统一性原 ...

  6. 第一个简单的程序——吃货联盟系统

    在写这篇文章的时候,我也不清楚自己能不能写好,但是想了想还是写一下吧,就当是为前面所学的东西做一下总结. 首先我们要清楚这个程序所需要的东西,第一件就是先定义数组,为数组定义一些元素,从而来实现数组中 ...

  7. 吃货联盟订餐系统项目实践

    "只要动动手指,就能送餐上门",网上定餐深受现代人青睐,现开发一个网上订餐系统,功能如下: 1.我要订餐 2.查看餐袋 3.签收订单 4.删除订单 5.我要点赞 6.退出系统 第一 ...

  8. 小实战项目之——吃货联盟订餐系统

    系统概述: 我要订餐 查看餐袋 签收订单 删除订单 我要点赞 退出系统 下面是实例代码: import java.util.Scanner;public class OrderFoodSys {pub ...

  9. 北大青鸟,Java基础练习,S1结业项目:“吃货联盟点餐系统”

    关于java的基础练习,可以更有效的来找到自己的不足之处,也可以锻炼自己的编程思想,这个吃货联盟系统包含了基础概念,变量.数据类型,也练习了顺序,选择,循环,跳转语句的编写编程的能力,最后还要求你会使 ...

最新文章

  1. sharepoint 备份还原
  2. 2021 RoboCom 世界机器人开发者大赛-本科组(初赛)【完结】
  3. jQuery子页面获取父页面元素
  4. WPF入门教程系列(一) 创建你的第一个WPF项目
  5. SYN攻击原理以及检测防范技术
  6. 少数人知道的公式+思路,财务报表自动生成,财务总监用了5年
  7. 《SEM长尾搜索营销策略解密》一一2.9 长尾,寻找蓝海的最好方式
  8. 图书管理系统实验报告-面向对象的分析与设计
  9. 毕业设计/酒店管理系统
  10. linux桌面开发工程师,linux开发工程师是做什么的?linux开发工程师岗位职责工作内容 - 职友集...
  11. python3发起一个http请求
  12. SpringBoot启动流程简要
  13. 在HTML页面里调用PHP的方法
  14. 基于KEIL 的合并boot.binapp.bin的脚本文件
  15. 软科计算机科学与工程专业,2019上海软科世界一流学科排名计算机科学与工程专业排名利物浦大学排名第301-400...
  16. bzoj4476: [Jsoi2015]送礼物
  17. 通州区机器人比赛活动总结_2019年通州区中小学生机器人智能大赛举行
  18. 杭电oj1620题c语言答案,杭电oj部分水题 c语言源代码.doc
  19. Linux系统查看服务器是arm架构还是x86架构
  20. Ubuntu手动安装pymysql(含pymysql的.whl及.tar.gz下载地址)

热门文章

  1. ios------app跳转到appStore评分
  2. JAVA中常用容器的扩容
  3. 酒店IPTV能做什么?
  4. linux+gunzip解压命令,Linux gunzip解压文件命令详解
  5. DogeKing合约,分红DOGE,SHIB
  6. JS:鼠标移入移出事件监听
  7. 用流程图来描述一个App的启动功能
  8. 【论文阅读】Weakly Supervised Learning of Instance Segmentation with Inter-pixel Relations
  9. VESA BIOS Extensions
  10. 说说域名被墙的检测查询和解决办法