c語言點菜實例,點菜系統c語言

本文目錄一覽:

用C語言為學校食堂做一個點菜系統,當用戶選擇自己喜歡的菜,所消費的錢就能顯示出來。 菜譜封面如下:

#include stdio.h

void main()

{

int a[4],i,j,m;

char t;

printf(」********************************* \n1.紅燒肉5.0元2.炸雞翅3.0元\n3.炒芹菜2.0元4.五香蛋1.0元\n5.退出\n********************************\n\n」);

printf(「請輸入您點的菜\n」);

for(i=0;i=3;i++)

{ scanf(「%d」,a[i]);j=i;

if(i=2)

{ printf(「是否繼續點菜\n回復Y OR N\n」);

scanf(「%c」,t);

if(t==Y)

continue;

else if(t==N){j=i;break;}

else {printf(「error,自動結算\n」);j=i;break;}}

}

for(i=0,m=0;i=j;i++)

m=m+a[i];

printf(「總金額%d\n」,m);

}

//手機編寫,錯誤難免,問題不大,多多包含

C語言程序編一個點菜系統??咋做呀

#include#include#define ROW1 2#define COL1 2#define ROW2 COL1#define COL2 4int main(void){int arr1[ROW1][COL1]={{1,2},{3,4}},arr2[ROW2][COL2]={{1,2,1,2},{1,2,1,2}},arr3[ROW2][COL2],i,j,k;for(i=0;i

c語言點菜系統

// 下面是前期的點餐系統的基礎數據維護,其它功能你可以自己嘗試寫,如果遇到什麼問題可以提出來追問喔,相信你可以解決的(我怕代碼太多提交會受字數限制)。

// mm.h 頭文件

#includestdio.h

#includestdlib.h

#define MENU_NUM_MAX 100  // 假設有100種菜式

#define LEN sizeof(struct MenuInfo)

struct MenuInfo 

{

int ID;

char MenuName[20];

float price;

}Menu[MENU_NUM_MAX];

/*   基礎數據維護 */

void AddMenu()

{

FILE *fp;

int menu_num;

printf(“\t\t 你要添加多少種菜?:”);

scanf(“%d”,menu_num);

for(int i=0;imenu_num;i++)

{

printf(“\n”); // added this line

        printf(“\t\t請輸入ID:”);

scanf(“%d”,Menu[i].ID);

printf(“\t\t請輸入菜名:”);

scanf(“%s”,Menu[i].MenuName);

printf(“\t\t請輸入[%s]菜的價格:”,Menu[i].MenuName);

Menu[i].price=0.0f; //initial float price

scanf(“%f”,Menu[i].price);

fflush(stdin);

}

if((fp=fopen(“MenuInfo.dat”,”ab”))==NULL) // open binary file 

{

printf(“Can’t open file\n”);

exit(1);

}

for(int j=0;jmenu_num;j++)

{   

if(fwrite(Menu[j],LEN,1,fp)!=1) //writing data to binary file

printf(“Error writing file.\n”);

}

   fclose(fp); // close file point

}

void DisplayMenuInfo()

{

    FILE *fp;

printf(“\n\t\tID  菜名\t\t價格\n”); // column headings

    if((fp=fopen(“MenuInfo.dat”,”rb”))==NULL) // open binary file 

{

printf(“Can’t open file\n”);

exit(1);

}

int i=0;

do

{

        fseek(fp,i*LEN,SEEK_SET); // move file head location

if(fread(Menu[i],LEN,1,fp)) // read data save to structure variable

{

printf(“\t\t%d  %5s\t\t%5.1f元\n”,Menu[i].ID,Menu[i].MenuName,Menu[i].price);

i++;

}

}while(!feof(fp));

fclose(fp);

}

void DeleteToMenu()

{

FILE *fp; 

int MenuID;

int todelete=-1;

int i=0;

printf(“請輸入要刪除的菜名的ID:”);

scanf(“%d”,MenuID);

/* load or reload the file and check that record with that ID exists */

if((fp=fopen(“MenuInfo.dat”,”rb”))==NULL) // open binary file 

{

printf(“Can’t open file\n”);

exit(1);

}

do

{

fseek(fp,i*LEN,SEEK_SET); // move file head location

if(fread(Menu[i],LEN,1,fp))

{

if (Menu[i].ID==MenuID) todelete=i;   

i++;

}

}while(!feof(fp));

fclose(fp);

if (todelete==-1)

{

printf(“A menu with that ID doesn’t exist\n”);

}

else

{

/* write records back to file excluding one to be deleted */

if((fp=fopen(“MenuInfo.dat”,”wb”))==NULL) // open binary file 

{

printf(“Can’t open file\n”);

exit(1);

}

for(int j=0;ji;j++)

if (j==todelete) continue;  /* skip record to be deleted */ 

if(fwrite(Menu[j],LEN,1,fp)!=1) //writing data to binary file

printf(“Error writing file.\n”);

}

fclose(fp); // close file point

}

}

void FindMenu()

{

FILE *fp;

int MenuID;

bool find_mark=false;

printf(“\n\t\t請輸入你要查找的菜名ID:”);

scanf(“%d”,MenuID);

    

printf(“\n\t\tID  菜名\t\t價格\n”); // column headings

if((fp=fopen(“MenuInfo.dat”,”rb”))==NULL) // open binary file 

{

printf(“Can’t open file\n”);

exit(1);

}

    int i=0;

do

{

        fseek(fp,i*LEN,SEEK_SET); // move file head location

fread(Menu[i],LEN,1,fp);  // read data save to structure variable

if(Menu[i].ID==MenuID)

{

printf(“\t\t%d  %5s\t\t%5.1f元\n”,Menu[i].ID,Menu[i].MenuName,Menu[i].price);

find_mark=true;

break;

}

i++;

}while(!feof(fp));

if(!find_mark) printf(“\n\t 尊敬的客戶:我們餐廳沒有你要點的菜喔,你可以試試我們的招牌菜啊^-^.\n”);

fclose(fp);

}

/*   基礎數據維護完畢   */

// sc.cpp主文件

#include stdio.h

#include stdlib.h

#include “mm.h”

void main(void)

{

//AddMenu();

//DisplayMenuInfo();

//FindMenu();

}

C語言編寫點菜系統

簡單的點菜系統,可供學習:

#include stdio.h

#include stdlib.h

#include errno.h

#include string.h

#include netdb.h

#include sys/types.h

#include netinet/in.h

#include sys/socket.h

#define SERVPORT 3333

#define MAXDATASIZE 100 /*每次最大數據傳輸量 */

int main(int argc, char *argv[])

{

int sockfd, recvbytes;

char buf[MAXDATASIZE];

struct hostent *host;

struct sockaddr_in serv_addr;

if (argc 2)

{ fprintf(stderr,”Please enter the server’s hostname!\

“); exit(1); }

if ((host=gethostbyname(argv[1]))==NULL)

{ perror(“gethostbyname出錯!”); exit(1); }

if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)

{ perror(“socket創建出錯!”); exit(1); }

//初始化客戶端

serv_addr.sin_family=AF_INET;

serv_addr.sin_port=htons(SERVPORT);

serv_addr.sin_addr = *((struct in_addr *)host-h_addr);

bzero((serv_addr.sin_zero),8);

//connect

if (connect(sockfd, (struct sockaddr *)serv_addr, sizeof(struct sockaddr)) == -1)

{ perror(“connect error!”); exit(1); }

//recv

if ((recvbytes=recv(sockfd, buf, MAXDATASIZE, 0)) ==-1)

{ perror(“recv出錯!”); exit(1); }

buf[recvbytes] = ‘\\0’;

printf(“Received: %s”,buf);

close(sockfd);

return 0;

}

客戶端#include stdio.h

#include stdlib.h

#include errno.h

#include string.h

#include sys/types.h

#include netinet/in.h

#include sys/socket.h

#include sys/wait.h

#define SERVPORT 3333 /*伺服器監聽埠號 */

#define BACKLOG 10 /* 最大同時連接請求數 */

int main()

{

int sockfd,client_fd,sin_size; /*sock_fd:監聽socket;client_fd:數據傳輸socket */

struct sockaddr_in my_addr; /* 本機地址信息 */

struct sockaddr_in remote_addr; /* 客戶端地址信息 */

//創建一個套接字,PF_INET,流式,

if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)

{ perror(“socket”); exit(1); }

//初始化服務端

my_addr.sin_family=AF_INET;

my_addr.sin_port=htons(SERVPORT);

my_addr.sin_addr.s_addr = INADDR_ANY;

bzero((my_addr.sin_zero),8);

//將套接字地址與所創建的套接字型大小聯繫起來

if (bind(sockfd, (struct sockaddr *)my_addr, sizeof(struct sockaddr)) == -1)

{ perror(“bind”); exit(1); }

//願意接收連接

if (listen(sockfd, BACKLOG) == -1)

{ perror(“listen”); exit(1); }

while(1)

{

sin_size = sizeof(struct sockaddr_in);

if ((client_fd = accept(sockfd, (struct sockaddr *)remote_addr, sin_size)) == -1)

{ perror(“accept”); continue; }

printf(“received a connection from %s\

“, inet_ntoa(remote_addr.sin_addr));

if (!fork()) { /* 子進程代碼段 */

if (send(client_fd, “Hello, you are connected!\

“, 26, 0) == -1)

perror(“send”); close(client_fd); exit(0); }

close(client_fd); }

return 0;

}

C語言菜單點菜並計算價格問題

輸出的格式對齊你自己可以調一下,程序本身沒有任何問題。

程序是在Visual Studio 2008上編譯運行的。

#include “stdafx.h”

#include iostream

#include vector

#include string

using namespace std;

char menu[6][8][16]={

{“菜單”,”開胃菜”,”主菜”,”主食”,”飯後甜點”,”飲料”},

{“開 胃 菜”,”燒椒皮蛋”,”藍莓山藥墩”,”竹筍乾炒肉”,”干煎野山菌”,”小炒黃牛肉”},

{“主 菜”,”菠蘿古老肉”,”水煮魚”,”茄汁基圍蝦”,”鹽焗手撕雞”,”紅燒黃花魚”,”蚝油生菜”,”金牌蒜香骨”},

{“主 食”,”三鮮水餃”,”手擀麵”,”米飯”},

{“飯後甜點”,”草莓奶昔”,”冰激凌”,”蛋糕”},

{“飲 料”,”雪碧”,”蔬菜汁”,”啤酒”,”果汁”},

};

double price[6][8]={

{0},

{0,8,10,8,13,12},

{0,15,20,35,30,28,8,18},

{0,15,12,2},

{0,10,16,10},

{0,5,8,8,8}

};

vectorint menuvec; //保存選了那些菜單項

vectorint foodvec; //保存選了那些食物

vectorint countvec; //保存每個食物都選了幾份

bool dinner()

{

for(int i = 0; i 6; i++)

{

if (i == 0)

{

cout menu[0][i] ;

cout”:”endl;

}

else

{

cout ” ” i “.”;

cout menu[0][i] endl;

}

}

cout ” “”0點餐結束”endl;

int imenu = 0; //選擇菜單項

cout “請選擇 “;

cin imenu;

if (imenu == 0)

return false;

cout ” ” imenu “.” menu[0][imenu] endl;

for(int i = 1; i 8 ; i ++)

{

if (strcmp(menu[imenu][i],””) == 0)//如果沒有此項食物則退出輸出

break;

cout ” ” i “.” menu[imenu][i] ” ” price[imenu][i] endl;

}

cout ” 0 返回” endl;

int ifood = 0;//選擇要點的食物

int icount = 0;//選擇要點的食物的份數

cout “請選擇”;

cin ifood ;

if (ifood == 0)

return true;

cout “你點的是” menu[imenu][ifood] “,””請問你要幾分:”;

cin icount;

menuvec.push_back(imenu);

foodvec.push_back(ifood);

countvec.push_back(icount);

return true;

}

int main()

{

while(dinner())

{

system(“cls”);

}

system(“cls”);

cout “你點的菜單是:” endl;

cout ” 菜名 “” 單價 “” 數量 ” ” 價格 ” endl;

vectorint::iterator menuIter = menuvec.begin();

vectorint::iterator foodIter = foodvec.begin();

vectorint::iterator countIter = countvec.begin();

double pricesum = 0; //計算總價錢

for(;menuIter != menuvec.end(),foodIter!= foodvec.end(),countIter != countvec.end();menuIter++,foodIter++,countIter++)

{

int menutemp = *menuIter;

cout menu[0][menutemp];

cout “:”;

int foodtemp = *foodIter;

cout menu[menutemp][foodtemp];

cout ” ” price[menutemp][foodtemp];

int counttemp = *countIter;

cout ” “counttemp;

cout ” ” counttemp*price[menutemp][foodtemp] endl;

pricesum += counttemp*price[menutemp][foodtemp] ;

}

cout “—————————————————————————–“endl;

cout ” “”總價是 ” pricesum endl;

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/311305.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-05 13:23
下一篇 2025-01-05 13:23

相關推薦

  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬碟。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • Python生成隨機數的應用和實例

    本文將向您介紹如何使用Python生成50個60到100之間的隨機數,並將列舉使用隨機數的幾個實際應用場景。 一、生成隨機數的代碼示例 import random # 生成50個6…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • 如何在樹莓派上安裝Windows 7系統?

    隨著樹莓派的普及,許多用戶想在樹莓派上安裝Windows 7操作系統。 一、準備工作 在開始之前,需要準備以下材料: 1.樹莓派4B一台; 2.一張8GB以上的SD卡; 3.下載並…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • 分銷系統開發搭建

    本文主要介紹如何搭建一套完整的分銷系統,從需求分析、技術選型、開發、部署等方面進行說明。 一、需求分析 在進行分銷系統的開發之前,我們首先需要對系統進行需求分析。一般來說,分銷系統…

    編程 2025-04-29

發表回復

登錄後才能評論