1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > C语言程序设计-餐厅点餐系统

C语言程序设计-餐厅点餐系统

时间:2023-08-11 04:23:47

相关推荐

C语言程序设计-餐厅点餐系统

需求分析

1.设计题目:餐厅点餐系统

2.系统功能需求分析:

经过以上对本系统的调研及可行性分析后,下面将对系统在功能上以及性能上进行进一步的需求分析。

功能:运行开始出现菜单模块,其中有四个选项,可以按相关的数字进行操作。

点餐模块:可以完成一个或多个餐品的输入。浏览点餐信息:顾客可以以点菜品的相关信息,包括菜品的数量、价格、菜品代号、价格总计。自主清空菜品信息:顾客可以清空已点菜品结算:根据以点菜品推算顾客应付款数额。

5)返回主界面

2.概要设计

题目简述

1)系统以菜单方式工作;

2)点餐信息录入功能(点餐信息用文件保存)——输入;

3)点餐信息浏览功能——输出;

4)查询和结算功能——算法;

功能模块图

程序代码

#include<stdio.h>#include<iostream>#include<fstream>#include<string>#include<conio.h>#include<windows.h>int m;//用户选择的分类代号为m;int n;//用户输入子菜单下的菜品代号为n;int x[5][3] = {0};//每类菜品被点数量int price1[5][3] = {0};//每种菜品的价格总价int total = 0;//所有菜品总价 初始化为0;int price[5][3] = {{12,15,13},{50,50,40},{20,20,10},{15,10,12},{8,8,5}};//每样菜品单价char cainame[5][3][20] = {{"金针拌芹菜","浇汁豆腐","青椒拌干丝"},{"龙肝","凤髓","熊掌"},{"米","面","馒头"},{"小西点","布丁","冰淇淋"},{"可乐","雪碧","矿泉水"}};//字符数组,存放菜名void caidan_liangcai(){char a[3][20]={"金针拌芹菜","浇汁豆腐","青椒拌干丝"};printf("请具体选择菜品:\n");for (int i = 0; i < 3; i ++) {printf("\t\t%d.%s\n",i+1,a[i]);}printf("\t\t0.返回上一页\n");}void caidan_zhuxiao(){char a[3][20]={"龙肝","凤髓","熊掌"};printf("请具体选择菜品:\n");for (int i = 0; i < 3; i ++) {printf("\t\t%d.%s\n",i+1,a[i]);}printf("\t\t0.返回上一页\n");}void caidan_zhushi(){char a[3][20]={"米","面","馒头"};printf("请具体选择菜品:\n");for (int i = 0; i < 3; i ++) {printf("\t\t%d.%s\n",i+1,a[i]);}printf("\t\t0.返回上一页\n");}void caidan_tiandian(){char a[3][20]={"小西点","布丁","冰淇淋"};printf("请具体选择菜品:\n");for ( i = 0; i < 3; i ++) {printf("\t\t%d.%s\n",i+1,a[i]);}printf("\t\t0.返回上一页\n");}void caidan_yinpin(){char a[3][20]={"可乐","雪碧","矿泉水"};printf("请具体选择菜品:\n");for (int i = 0; i < 3; i ++) {printf("\t\t%d.%s\n",i+1,a[i]);}printf("\t\t0.返回上一页\n");}void jiesuan(){int main();system("cls");int money,a;printf("您本次消费<%d>元!\n",total);printf("应付:\n");printf("请支付:\n"); scanf("%d\n",&money);a=money-total;printf("待付%d\n",a); printf("*****按任意键返回主菜单!*****\n"); getch(); main(); }void clean(){int main();system("cls");printf("菜名\t\t单价(元)\t数量\t总价格(元)\n");printf("***************************************************\n");for (int i = 0; i < 5; i++) {for (int j = 0; j < 3; j++) {if (price1[i][j] != 0) {printf("%d",price1[i][j]=0);}}}int tota1=0;printf("\n");printf("*********************清空成功!********************\n");printf("****************按任意键返回主菜单!***************\n");getch();main();}void show(){ int main();system("cls");int i;total=0;printf("菜名\t\t单价(元)\t数量\t总价格(元)\n");printf("***************************************************\n");for (int i = 0; i < 5; i++) {for (int j = 0; j < 3; j++) {if (price1[i][j] != 0) {printf("%s\t\t%3d\t\t%3d\t%3d\n",cainame[i][j],price[i][j],x[i][j],price1[i][j]);total += price1[i][j];FILE *fp;fp=fopen("file.txt","a");if (fp!=NULL)fprintf(fp,"%s",cainame[i][j]);fprintf(fp,"%d",price[i][j]);fprintf(fp,"%d",x[i][j]);fprintf(fp,"%d",price1[i][j]);fclose(fp);}}}printf("总价格:\t\t\t\t\t%3d\n",total);FILE *fp;fp=fopen("file.txt","a");if (fp!=NULL)fprintf(fp,"%d",total);fclose(fp);printf("***************按任意键返回主菜单!****************\n");getch();main(); }void diancan(){int main();system("cls");printf("*****菜单*****\n");char a[5][20]={"凉菜","主菜","主食","甜点","饮品"};int i;for(i=0;i<5;i++){printf("%d.%s\n",i+1,a[i]);}printf("0.返回上层菜单\n");while (1) {scanf("%d",&m);switch (m) {case 1:{caidan_liangcai();while (1){scanf("%d",&n);if (n == 0) {//如果输入为0,跳出循环break;}price1[0][n-1] += price[0][n-1];x [0][n-1] ++; //统计每样菜品总价格和被点次数}diancan();}case 2:{caidan_zhuxiao();while (1) {scanf("%d",&n);if (n == 0) {break;}price1[1][n-1]+=price[1][n-1];x[1][n-1]++;}diancan();}case 3:{caidan_zhushi();while (1) {scanf("%d",&n);if (n == 0) {break;}price1[2][n-1] += price[2][n-1];x[2][n-1]++;}diancan();}case 4:{caidan_tiandian();while (1) {scanf("%d",&n);if (n == 0) {break;}price1[3][n-1] += price[3][n-1];x[3][n-1]++;}diancan();}case 5:{caidan_yinpin();while (1) {scanf("%d",&n);if (n == 0) {break;}price1[4][n-1] += price[4][n-1];x[4][n-1]++;}diancan();} case 0:main(); default:printf("\n您的输入有误,请重新选择!\n");diancan();} }}int main(){system("cls");printf("***** 塔罗餐厅 *****\n");printf("***** 为您服务 *****\n");printf("1、点餐\n");printf("2、查看已点\n"); printf("3、清空已点\n");printf("4、结算\n");printf("0、退出\n");int c;scanf("%d",&c);switch(c){case 1:diancan(); break;case 2:show(); break;case 3:clean(); break;case 4:jiesuan();break;case 0:exit(0);break;default: printf("\n您的输入有误,请重新选择!\n");main();} }

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。