C语言实现点菜系统

C语言实现点菜系统

本攻略将介绍如何使用C语言实现一个简单的点菜系统。在这个系统中,顾客可以浏览菜单,选择自己的菜品并计算价格。系统则会输出选择的菜品及总价。

基本思路

  1. 定义菜单。菜单的定义可以采用数组的方式实现,每个元素代表一道菜品,包括名称和价格。
  2. 展示菜单。通过循环遍历数组,输出所有菜品名称及价格。
  3. 用户选择菜品。通过让用户输入菜品的编号,实现选择菜品的功能。
  4. 计算价格。根据用户选择的菜品编号,计算总价。
  5. 输出选择的菜品及总价。

代码实现

下面是一个简单的实现示例,通过注释的形式解释了其中的核心思路。

#include <stdio.h>

int main()
{
    // 定义菜单
    char *menu[4] = {"牛肉面", "鱼香肉丝", "宫保鸡丁", "水煮鱼"};
    float price[4] = {15.0, 18.0, 20.0, 25.0};

    // 展示菜单
    printf("*****欢迎光临!*****\n");
    printf("*******菜 单*******\n");
    for (int i = 0; i < 4; i++) {
        printf("%d. %s\t%.1f元\n", i+1, menu[i], price[i]);
    }

    // 用户选择菜品
    int choice;   // 用户输入的菜品编号
    int num = 0;  // 记录菜品数量
    int order[4]; // 用数组记录用户选择的菜品编号
    printf("请输入您要点的菜品编号(输入0退出):\n");
    do {
        scanf("%d", &choice);
        if (choice != 0) {
            order[num] = choice;
            num++;
        }
    } while (choice != 0);

    // 计算价格
    float total_price = 0.0;
    for (int i = 0; i < num; i++) {
        total_price += price[order[i]-1];
    }

    // 输出选择的菜品及总价
    printf("您选择了以下菜品:\n");
    for (int i = 0; i < num; i++) {
        printf("%d. %s\n", order[i], menu[order[i]-1]);
    }
    printf("总价为:%.1f元\n", total_price);

    return 0;
}

示例一

现有一个菜单,包括“炒饭”、“炒面”、“炒鸡蛋”和“炒豆芽”,其价格分别为12元、15元、10元和8元。用户可以选择其中任意数量的菜品,并输出选择的菜品及总价。

输入示例

请输入您要点的菜品编号(输入0退出):
1
2
3
0

输出示例

您选择了以下菜品:
1. 炒饭
2. 炒面
3. 炒鸡蛋
总价为:37.0元

示例二

现有一个菜单,包括“鱼香肉丝”、“蚂蚁上树”、“宫保鸡丁”和“水煮鱼”,其价格分别为18元、15元、20元和25元。用户可以选择其中任意数量的菜品,并输出选择的菜品及总价。

输入示例

请输入您要点的菜品编号(输入0退出):
1
2
4
3
2
0

输出示例

您选择了以下菜品:
1. 鱼香肉丝
2. 蚂蚁上树
3. 水煮鱼
4. 宫保鸡丁
5. 蚂蚁上树
总价为:88.0元

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

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

相关文章

  • c++ vector(向量)使用方法详解(顺序访问vector的多种方式)

    C++ vector(向量)使用方法详解 简介 vector 是 C++ STL 中的一个重要数据结构,用于实现动态数组。它具有许多优点,包括支持尾部插入、常量时间访问、动态分配内存等。 基本操作 创建 vector 创建一个空的 vector 和一个具有初始值的 vector 的方式如下: #include <vector> using nam…

    C 2023年5月22日
    00
  • 华硕ROG 冰刃GX501值得买吗?Max-Q版GTX1080冰刃GX501VIK深度图解评测

    华硕ROG 冰刃GX501值得买吗?Max-Q版GTX1080冰刃GX501VIK深度图解评测 介绍 华硕ROG 冰刃GX501是一款拥有Max-Q版GTX1080显卡、Intel酷睿i7处理器和15.6英寸全高清显示器的游戏笔记本电脑。它的外观设计简约大方,采用了轻薄金属机身和纤薄边框的设计,重厚感并不明显。此外,它还有着出色的散热效果,使得游戏过程中不会…

    C 2023年5月22日
    00
  • sigsetjmp的用法总结

    下面详细讲解一下”sigsetjmp的用法总结”的完整攻略。 什么是sigsetjmp 在进行sigsetjmp的用法总结之前,我们先来了解一下什么是sigsetjmp。sigsetjmp和setjmp是类似的函数,它们可以将程序的当前执行状态保存下来,以便之后程序可以回到这个状态,实现长跳转。不过在sigsetjmp的基础上额外增加了信号处理器的保存以及信…

    C 2023年5月23日
    00
  • Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)

    接下来我将详细讲解Python对文件和目录进行操作的方法,包括file对象、os模块、os.path模块和shutil模块的使用方法。 一、file对象 1.1 打开文件 在Python中,我们使用open()函数来打开一个文件。open()函数的基本语法如下所示: f = open(file, mode=’r’, buffering=-1, encodin…

    C 2023年5月23日
    00
  • C/C++ 引用作为函数的返回值方式

    C/C++ 中引用是一种特别的数据类型,其本质是指向其他变量地址的别名。引用作为函数的返回值方式,可以避免拷贝对象造成的性能浪费,并且使代码更加简洁易懂。 返回值为左值引用 当函数的返回值声明为左值引用时,我们可以在函数内返回对象的引用,由于返回值是一个引用,因此可以对该对象进行修改。下面是一个简单的例子: #include <iostream>…

    C 2023年5月22日
    00
  • C语言中字符串和数字的相互转换实现代码

    C语言中字符串和数字的相互转换是常见的编程操作。下面是一些实现代码,以便帮助你进行相应的转换。 将字符串转换为数字 C语言中,字符串可以使用标准库函数 atoi() 转换为整数。由于 atoi() 是标准库函数,因此需要包含头文件 <stdlib.h>。 #include <stdio.h> #include <stdlib.h…

    C 2023年5月24日
    00
  • C语言代码实现飞机大战

    下面将详细讲解“C语言代码实现飞机大战”的完整攻略。 1. 准备工作 首先,需要安装一个C语言编译器,常用的有gcc和clang。具体安装方法可以在官网上查找。 2. 整体框架 飞机大战是一个2D画面的游戏,所以我们可以使用C语言的图形库来实现。常用的图形库有SDL、OpenGL等,这里我们以SDL为例,来讲解整体框架。 2.1 初始化SDL SDL_Ini…

    C 2023年5月23日
    00
  • C语言const关键字的用法详解

    C语言const关键字的用法详解 1. 简介 在C语言中,const关键字通常被用来声明常量,即在程序运行过程中不会被修改的值。在声明变量或函数时使用const关键字可以增加程序的可读性和可维护性。 2. 声明常量 要声明一个常量,需要在变量声明时加上const关键字。例如: const int MAX_VALUE = 100; 在这个声明中,MAX_VAL…

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