C语言实现简易订餐系统

C语言实现简易订餐系统

介绍

本文将详细讲解如何使用C语言实现简易订餐系统的完整攻略。这个简易订餐系统可以让用户选择菜单,订餐,结算和显示账单等功能。

步骤

步骤一:规划程序结构

在实现程序之前,我们可以先规划程序的整体架构,以此确定程序需要实现的功能和模块。我们大致可以将程序分成以下模块:

  1. 菜单模块:展示可选菜品列表。
  2. 点餐模块:让用户选择菜品和数量。
  3. 结算模块:计算总价并展示账单。
  4. 主程序模块:管理以上所有的模块。

经过以上规划,我们就可以着手实现各个模块了。

步骤二:实现菜单模块

让我们先来实现菜单模块。在这个模块中,我们需要展示一个菜单列表,并让用户选择菜品编号。我们可以使用以下代码实现:

void show_menu() {
    printf("------------Menu------------\n");
    printf(" 1. 麻辣烤鱼        30元\n");
    printf(" 2. 拍黄瓜         10元\n");
    printf(" 3. 麻婆豆腐        15元\n");
    printf(" 4. 红烧肉         20元\n");
    printf("-----------------------------\n");
}

int get_choice() {
    int ch;
    printf("请输入菜品编号: ");
    scanf("%d", &ch);
    return ch;
}

以上代码中,show_menu函数用于展示菜单列表,get_choice函数用于让用户选择菜品编号。

步骤三:实现点餐模块

在点餐模块中,我们需要让用户选择需要订购的菜品和数量。我们可以使用以下代码实现:

typedef struct {
    int id;
    char name[20];
    int price;
    int count;
} Dish;

void order_dishes(Dish dishes[], int size) {
    printf("请选择您的菜品:\n");
    for (int i = 0; i < size; ++i) {
        printf("%d. %-10s %5d元\n", dishes[i].id, dishes[i].name, dishes[i].price);
    }

    int ch, num;
    printf("请输入菜品编号: ");
    scanf("%d", &ch);
    printf("请输入菜品数量: ");
    scanf("%d", &num);

    if (ch < 1 || ch > size) {
        printf("输入有误,请重新输入.\n");
        order_dishes(dishes, size);
    } else {
        int index = ch - 1;
        dishes[index].count += num;
        printf("%s已成功加入购物车,共%d份.\n", dishes[index].name, dishes[index].count);
    }
}

以上代码中,Dish结构体表示一个菜品,order_dishes函数让用户选择要订购的菜品编号和数量,并将用户选择的菜品和数量保存到每个菜品的结构体中。

步骤四:实现结算模块

在结算模块中,我们需要将用户选择的菜品和数量计算出总金额,并将其展示给用户。我们可以使用以下代码实现:

void check_out(Dish dishes[], int size) {
    printf("------账单-------\n");
    int total_price = 0;
    for (int i = 0; i < size; ++i) {
        if (dishes[i].count > 0) {
            printf("%-10s %2dx%d = %d元\n", dishes[i].name, dishes[i].price, dishes[i].count, dishes[i].price * dishes[i].count);
            total_price += dishes[i].price * dishes[i].count;
        }
    }
    printf("------------------\n");
    printf("  总计: %d元\n", total_price);
}

以上代码中,check_out函数将遍历保存的每个菜品,如果有数量大于0的菜品,就将其价格乘以数量计算出总金额,并展示给用户。

步骤五:实现主程序模块

在主程序模块中,我们需要将所有模块整合起来,使得程序可以正常运行。我们可以使用以下代码来实现主程序:

int main() {
    Dish dishes[] = {
            {1, "麻辣烤鱼", 30, 0},
            {2, "拍黄瓜", 10, 0},
            {3, "麻婆豆腐", 15, 0},
            {4, "红烧肉", 20, 0}
    };

    while (1) {
        show_menu();
        int choice = get_choice();
        if (choice == 0) {
            printf("欢迎下次光临!\n");
            break;
        }
        order_dishes(dishes, 4);
        check_out(dishes, 4);
    }

    return 0;
}

以上代码中,我们定义了一个数组dishes用于保存菜品列表,然后在一个无限循环中,用户可以选择菜品编号,然后进行订餐和结算。

示例说明

示例一

当用户运行程序时,会看到如下菜单:

------------Menu------------
 1. 麻辣烤鱼        30元
 2. 拍黄瓜         10元
 3. 麻婆豆腐        15元
 4. 红烧肉         20元
-----------------------------
请输入菜品编号:

然后用户输入1,选择了麻辣烤鱼,接着程序展示:

------------Menu------------
 1. 麻辣烤鱼        30元
 2. 拍黄瓜         10元
 3. 麻婆豆腐        15元
 4. 红烧肉         20元
-----------------------------
请输入菜品编号: 1
请输入菜品数量: 2
麻辣烤鱼已成功加入购物车,共2份.
------账单-------
麻辣烤鱼     2x30 = 60元
------------------
  总计: 60元

用户可以不断选择菜品和数量,直到选择结束,程序会计算总金额并展示给用户,最后用户可以输入0退出程序。

示例二

用户可以选择一个菜品后,重新选择该菜品的数量。比如当用户选择了麻辣烤鱼,然后输入了2,程序展示:

麻辣烤鱼已成功加入购物车,共2份.

此时,用户可以再次选择麻辣烤鱼,并再次输入2,程序将会展示:

麻辣烤鱼已成功加入购物车,共4份.

这种方式可以让用户方便地修改已经选择的菜品。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现简易订餐系统 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C++实现DES加密算法实例解析

    C++实现DES加密算法实例解析 简介 DES(Data Encryption Standard)算法是一种对称加密算法,通常用于保护数据的机密性。与其他加密算法相比,它的优势在于速度快,代码简单,实现成本较低,因此在许多安全应用中广泛使用。 本教程将会详细介绍如何使用C++语言实现DES加密算法,并提供两个示例说明,使读者可以快速掌握DES加密算法的使用方…

    C 2023年5月23日
    00
  • 更改Mysql数据库存储位置的具体步骤

    更改Mysql数据库存储位置的具体步骤如下: 步骤一:备份原有数据库 在操作之前,我们需要先备份原有的数据库文件,防止出现意外情况导致数据丢失。可以使用mysqldump命令进行备份,命令格式如下: mysqldump -u root -p –default-character-set=utf8 数据库名 > 备份文件.sql 其中,-u指定用户名,…

    C 2023年5月23日
    00
  • 搭建C语言开发环境(Windows平台)汇总

    搭建C语言开发环境(Windows平台)汇总 简介 本文将介绍如何在Windows平台下搭建C语言开发环境,包括: 安装C语言编译器 安装集成开发环境 配置环境变量 编写并编译第一个C程序 步骤 1. 安装C语言编译器 推荐使用免费的开源GCC编译器,官方网站为 http://gcc.gnu.org/ 。可以前往该网站下载最新版本的GCC编译器安装包,然后按…

    C 2023年5月23日
    00
  • 开机0xc000000f进不了系统怎么办?0xc000000f进不了系统修复方法

    开机0xc000000f进不了系统怎么办 问题描述 在开机时,如果系统提示0xc000000f错误,那么说明Windows启动管理器中的某个文件已损坏或被删除,Windows无法正常启动。 修复方法 方法一:使用Windows安装光盘修复启动 将Windows安装光盘插入电脑并重启电脑。 进入Windows安装环境界面,选择语言、时间以及货币格式等信息。 单…

    C 2023年5月23日
    00
  • C++虚函数及虚函数表简析

    C++虚函数及虚函数表简析 虚函数 在C++中,通过将类中的某个成员函数定义为虚函数,使得该成员具有多态性质。当我们通过指向派生类对象的基类指针或引用调用虚函数时,实际上会根据这个指针或引用所指向的对象类型,动态地调用该类的对应虚函数,而不是调用基类中定义的虚函数。 虚函数的定义格式如下: class Base { public: virtual void …

    C 2023年5月22日
    00
  • 逍遥自在学C语言 位运算符 “|” 的5种高级用法

    前言 在上一篇文章中,我们介绍了&运算符的高级用法,本篇文章,我们将介绍| 运算符的一些高级用法。 一、人物简介 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习的小白程序猿 —— 逍遥。 二、将两个字节合并成一个16位整数 #include <stdio.h> int main() { uns…

    C语言 2023年4月17日
    00
  • 跟我学习javascript解决异步编程异常方案

    跟我学习JavaScript解决异步编程异常方案 异步编程 异步编程是Javascript中非常重要的概念,它是指在代码执行过程中,某些操作的完成时间是不确定的,也就是说可能会出现异步执行的情况。比如说通过AJAX请求数据,等待响应的过程中,代码并没有被阻塞,而是继续往下执行。异步编程为我们提供了更加高效的编程方式,但也带来了一些问题。其中一些问题是在异步函…

    C 2023年5月23日
    00
  • win7系统开机屏幕显示0xcoooo428错误怎么办 解决方法介绍

    win7系统开机屏幕显示0xcoooo428错误怎么办 当你开机启动 Win7 时,出现 0xcoooo428 错误提示,显示计算机系统有异常,无法正常启动。那么该如何解决这个问题呢? 问题原因 0xcoooo428 错误常见于电脑开机时,操作系统加载失败。这通常与硬件设备驱动程序损坏或异常、系统文件缺失或损坏等有关。在确定问题原因后,我们可以采用以下方法来…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部