C语言实现简易订餐系统
介绍
本文将详细讲解如何使用C语言实现简易订餐系统的完整攻略。这个简易订餐系统可以让用户选择菜单,订餐,结算和显示账单等功能。
步骤
步骤一:规划程序结构
在实现程序之前,我们可以先规划程序的整体架构,以此确定程序需要实现的功能和模块。我们大致可以将程序分成以下模块:
- 菜单模块:展示可选菜品列表。
- 点餐模块:让用户选择菜品和数量。
- 结算模块:计算总价并展示账单。
- 主程序模块:管理以上所有的模块。
经过以上规划,我们就可以着手实现各个模块了。
步骤二:实现菜单模块
让我们先来实现菜单模块。在这个模块中,我们需要展示一个菜单列表,并让用户选择菜品编号。我们可以使用以下代码实现:
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技术站