栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

吃货联盟系统 C++实现

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

吃货联盟系统 C++实现

代码:

#include 
#include 
#include 
using namespace std;




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& F);


void printFood(vector& F);


void printOrder(vector& Or);


bool signForOrder(vector& Or, int num);


bool deleteOrder(vector& Or, int num);


void add_food_love(vector& F, int num);

int main() {
    // 初始化
    vectorF;   // 菜品容器
    vectorOr; // 订单容器
    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& 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& F) {
    int num = 1;
    cout << "序号 t菜名名字 " << "t价格" << "t点赞人数" << endl;
    for (vector::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& Or) {
    if (Or.size() > 0) {
        int num = 1;
        cout << "序号t订餐人姓名t菜品名称t菜品数量t送餐时间t送餐地址t订单状态t总金额" << endl;
        for (vector::iterator it = Or.begin(); it != Or.end(); it++) {
            cout << num << ".t"
                << it->user_name << " tt"
                << it->food.name << "t"
                << it->food.food_num << "tt"
                << it->date_time << "t"
                << it->address << "t"
                << ((it->state) == 0 ? "派送中" : "已签收") << "tt"
                << it->total_price << endl;
            num++;
        }
    }
    else {
        cout << "提示:当前暂无订单信息" << endl;
    }

}

bool signForOrder(vector& 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& Or, int num) {
    if (Or.size() > 0 &&num <= Or.size() && num > 0 && Or.at(--num).state == 1) {
        int index = 0;
        for (vector::iterator it = Or.begin(); it != Or.end(); it++) {
            if (index == num) {
                Or.erase(it);
                return true;
            }
        }
    }
    return false;
}

void add_food_love(vector& F, int num) {
    num--;
    F.at(num).love++;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/347485.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号