欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言實(shí)現(xiàn)餐飲結(jié)賬管理系統(tǒng)

 更新時(shí)間:2019年11月27日 09:08:51   作者:biwggef  
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)餐飲結(jié)賬管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語言餐飲結(jié)賬管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

使用C語言編寫餐飲結(jié)賬管理系統(tǒng)課程設(shè)計(jì),包含設(shè)計(jì)報(bào)告,源代碼.

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define M 30
struct bill
{
 int num;       //編號(hào)
 int time[4];     //時(shí)間
 int table;      //臺(tái)面號(hào)
 int count;      //顧客數(shù)量
 char name[20];    //服務(wù)生姓名
 int money;      //實(shí)收金額
}bill[M];
int N;
/*菜單*/
void menu()
{
  char c;
 void input();
 void modify();
 void deleter();
 void search1();
 void search2();
 void sort();
 void income();
  void number();
 do
 {
 printf("\n\n\n");
   printf("     <<<<餐飲結(jié)賬管理系統(tǒng)>>>>         \n");
   printf("----------------------------------------------------\n");
    printf("\n\n");
   printf("---1錄入    2修改    3刪除     ----\n\n");
   printf("---4臺(tái)面號(hào)查詢        5接待服務(wù)生查詢----\n\n");
   printf("---6金額排序  7總收入   8顧客總數(shù)   ----\n\n");
   printf("---       0退出           ----\n\n");
   printf("---------------------------------------------------\n");
    printf("\n\n");
   printf("請(qǐng)選擇服務(wù)(0-8)");
    c=getchar();
    switch(c)
 {
    case '1': {input();getchar();break;}
    case '2': {modify();getchar();break;}
    case '3': {deleter();getchar();break;}
      case '4': {search1();getchar();break;}
    case '5': {search2();getchar();break;}
    case '6': {sort();getchar();break;}
    case '7': {income();getchar();break;}
    case '8': {number();getchar();break;}
    case '0': 
   {
        printf("\n謝謝使用,再見!");
     exit(0);
         printf("\n");
   }
    default:
   {
        printf("\n輸入有誤,重試!:");
        c=getchar();
   }
 }
 }while(1);
 
}
/*信息錄入,將錄入的信息存入文件bill中*/
void input()     
{
  FILE *fp;
  int i;
  if((fp=fopen("bill","w"))==NULL)
  {
   printf("cannot open the file\n");
   return;
  }
  printf("輸入信息個(gè)數(shù)(0-%d)?:",M-1);
  scanf("%d",&N);
  printf("請(qǐng)輸入數(shù)據(jù):\n");

  for(i=0;i<N;i++)
  {
   printf("輸入賬單 %d 信息:\n",i+1);
   printf("編號(hào):");
   scanf("%d",&bill[i].num);
   printf("時(shí)間(月.日 時(shí):分):");
  scanf("%d%d%d%d",&bill[i].time[0],&bill[i].time[1],&bill[i].
time[2],&bill[i].time[3]);
   printf("臺(tái)面號(hào):");
  scanf("%d",&bill[i].table);
  printf("顧客數(shù)量:");
  scanf("%d",&bill[i].count);
  printf("接待服務(wù)生:");
  scanf("%s",bill[i].name);
  printf("實(shí)收金額:");
  scanf("%d",&bill[i].money);
  }
   for(i=0;i<N;i++)
  {
   if(fwrite(&bill[i],sizeof(struct bill),1,fp)!=1)
  {
  printf("file write error\n");
  return;
  }
  }
  fclose(fp);
}
/*從文件中讀取信息并存入數(shù)組sbill[N]*/
void readFromFile()
{
  int i;
 FILE *fp;
  if((fp=fopen("bill","rb"))==NULL)
  {
   printf("cannot open the file\n");
   return;
  }
  for(i=0;i<N;i++)
  fread(&bill[i],sizeof(struct bill),1,fp);
  fclose(fp);
}
/*保存函數(shù)*/
void save()
{
 FILE *fp;
  int i;
  if((fp=fopen("bill","w"))==NULL)
  {
   printf("cannot open the file\n");
   return;
  }
  for(i=0;i<N;i++)
  {
  if(bill[i].num!='\0')
    if(fwrite(&bill[i],sizeof(struct bill),1,fp)!=1)
  {
   printf("file write error\n");
   return;
  }
  }
  fclose(fp);
}
/*信息全部顯示*/
void display_all()
{
 int i;
  readFromFile();
 printf("全部信息:\n");
 for(i=0;i<N;i++)
 {
 printf("編號(hào):%d 時(shí)間:%d.%d %d:%d 臺(tái)面號(hào):%d 顧客數(shù)量:%d 接待服務(wù)生:%s 實(shí)施金額:%d",bill[i].num,bill[i].time[0],bill[i].time[1], bill[i].time[2],bill[i].time[3],bill[i].table,bill[i].count,bill[i].name,bill[i].money);
   printf("\n");
 }
}
/*單個(gè)信息顯示*/
void display(int i)
{ 
printf("編號(hào):%d 時(shí)間:%d%d%d%d 臺(tái)面號(hào):%d 顧客數(shù)量:%d 接待服務(wù)生:%s 實(shí)施金額:%d",bill[i].num,bill[i].time[0],bill[i].time[1],bill[i].time[2],bill[i].time[3],bill[i].table,bill[i].count,bill[i].name,bill[i].money);
}
/* 修改函數(shù)調(diào)用函數(shù)*/
int modify_a(int i)
{ 
 int c,w1;
  printf("\n修改選項(xiàng)=>\n\n 1).編號(hào) 2).時(shí)間 3).臺(tái)面號(hào) 4).顧客數(shù)量 5).接待服務(wù)生 6).實(shí)收金額 7).取消并返回");
  printf("請(qǐng)選擇?: [ ]");
  scanf("%d",&c);
  if(c>7||c<1) 
 { 
 printf("\n選擇錯(cuò)誤,請(qǐng)重試"); 
 getchar();
 }
 do
  {
 switch(c)
  { case 1: printf("編號(hào):"); scanf("%d",&bill[i].num); break;
 case 2:printf("時(shí)間:") ; scanf("%d.%d%d:%d",&bill[i].time[0],&bill
[i].time[1],&bill[i].time[2],&bill[i].time[3]);break;
case 3: printf("臺(tái)面號(hào):"); scanf("%d",&bill[i].table); break;
   case 4: printf("顧客數(shù)量:"); scanf("%d",&bill[i].count); break;
   case 5: printf("接待服務(wù)生:"); scanf("%s",bill[i].name); break;
   case 6: printf("實(shí)收金額:"); scanf("%d",&bill[i].money); break;
  case 7: menu(); 
  }
 printf("\n現(xiàn)在:\n");
  display(i);
  printf("\n確定?\n 1).是 2).不,重新修改 3).返回不保存 [ ");
  scanf("%d",&w1);
 }while(w1==2);
  return(w1);
}
/*修改信息*/
void modify()
{ 
 int i,n,k,w0=1,w1; 
  readFromFile(); 
 do
 { 
 k=-1;
    display_all();
   do
 { 
  printf("\n輸入要修改的編號(hào)數(shù)\n編號(hào):");
      scanf("%d",&n);
      for(i=0;i<N;i++)
      if(bill[i].num-n==0) 
  {
   k=i; 
  }
     if(k==-1) 
   printf("\n\n沒有記錄請(qǐng)重新輸入!");
 }while(k==-1);
 w1=modify_a(k);
  if(w1==1) 
 {
 printf("\n 修改成功 \n是否繼續(xù)? 1).是 2).保存返回 [");
    save(); 
    scanf("%d",&w0); 
 }
  }while(w0==1);  
}
/*刪除記錄*/
void deleter()
{
 int i,k,n,w0,w1;
  readFromFile();  
 do
 {
 k=-1;
 display_all();
 do
 {
   printf("\n輸入要?jiǎng)h除的編號(hào):\n");
   scanf("%d",&n);
      for(i=0;i<N;i++)
    if(n-bill[i].num==0)
  {
    k=i;
  }
   if(k==-1)
  printf("\n無記錄,請(qǐng)重新輸入!\n");  
 }while(k==-1);
    display(i);
 printf("\n確定刪除? 1)是 2)返回\n [");
 scanf("%d",&w0); 
 if(w0==1)
 {
  for(i=k;i<N;i++)
  {
  bill[i]=bill[i+1];
    save();
  }
 }
 else break;
    display_all();
 printf("\n刪除成功,是否繼續(xù)? 1)是 2)返回 [ ");
 scanf("%d",&w1);
 }while(w1==1);
}
/*臺(tái)面號(hào)查詢*/
void search1()
{
  int i,j,w0;
  int number;
  readFromFile();
  do
  {
  j=-1;
  printf("\n請(qǐng)輸入臺(tái)面號(hào)查詢:");
    scanf("%d",&number);
    for(i=0;i<N;i++)
  {
      if(number==bill[i].table)
   {
   j=i;
        display(j);
   printf("\n");
   }
  } 
    if(j==-1)
    printf("無此號(hào)!");
    printf("\n繼續(xù)? 1)是 2)返回 [");
    scanf("%d",&w0);
  }while(w0==1);
}
/*接待服務(wù)生查詢*/
void search2()
{
  char a[20];
  int i,j,w0;
  do
  {
  j=-1;
  printf("\n請(qǐng)輸入接待服務(wù)生姓名查詢:");
    scanf("%s",a);
    for(i=0;i<N;i++)
  {
      if(strcmp(bill[i].name,a)==0)
   { 
   j=i;
        display(j);
   printf("\n");
   } 
  } 
    if(j==-1)
    printf("無此姓名!");
    printf("\n繼續(xù)? 1)是 2)返回 [ ");
    scanf("%d",&w0);
  }while(w0==1);
}
/*金額排序*/
void sort()
{
 int i,j,w0;
 struct bill t;
  readFromFile();
  printf("\n\n");
 for(j=0;j<N-1;j++)
 for(i=0;i<N-1-j;i++)
  if(bill[i].money<bill[i+1].money)
  {
  t=bill[i];
        bill[i]=bill[i+1];     /*調(diào)換bill[i]與bill[i+1]的值*/
        bill[i+1]=t;
  }
  printf("由大到小為:\n");
 for(i=0;i<N;i++)
 {
 display(i);
 printf("\n");
 }
  do
 {
 printf("\n返回? 1)是 2)否");
 scanf("%d",&w0);
 }while(w0==2);
}
/*總收入統(tǒng)計(jì)*/
void income()
{
 int i,sum=0,w0;
  readFromFile();
 for(i=0;i<N;i++)
   sum=sum+bill[i].money;
  printf("\n\n");
 printf("總收入:%d",sum);
 do
 {
 printf("\n返回? 1)是 2)否");
 scanf("%5d",&w0);
 }while(w0==2);
}
/*顧客總數(shù)統(tǒng)計(jì)*/
void number()
{
  int i,number=0,w0;
  readFromFile();
 for(i=0;i<N;i++)
   number=number+bill[i].count;
 printf("\n\n");
 printf("顧客總數(shù):%d",number);
 do
 {
 printf("\n返回? 1)是 2)否");
 scanf("%5d",&w0);
 }while(w0==2);
}
/*主函數(shù)*/
void main()
{
 menu();
}

源碼下載:C語言餐飲結(jié)賬管理系統(tǒng)

更多學(xué)習(xí)資料請(qǐng)關(guān)注專題《管理系統(tǒng)開發(fā)》。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++入門到精通之循環(huán)語句的使用教程

    C++入門到精通之循環(huán)語句的使用教程

    這篇文章主要給大家介紹了關(guān)于C++中循環(huán)語句的用法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • C語言柔性數(shù)組的實(shí)現(xiàn)示例

    C語言柔性數(shù)組的實(shí)現(xiàn)示例

    柔性數(shù)組既數(shù)組大小待定的數(shù)組, C語言中結(jié)構(gòu)體的最后一個(gè)元素可以是大小未知的數(shù)組,本文就來介紹一下柔性數(shù)組的用法,感興趣的可以了解一下
    2024-03-03
  • 一篇文章詳細(xì)解釋C++的友元(friend)

    一篇文章詳細(xì)解釋C++的友元(friend)

    這篇文章主要為大家詳細(xì)介紹了C++的友元(friend),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C++中基本的輸入輸出函數(shù)使用指南

    C++中基本的輸入輸出函數(shù)使用指南

    這篇文章主要介紹了C++中基本的輸入輸出函數(shù)使用指南,是C++入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09
  • C語言實(shí)現(xiàn)靜態(tài)版通訊錄的示例代碼

    C語言實(shí)現(xiàn)靜態(tài)版通訊錄的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C語言實(shí)現(xiàn)一個(gè)簡單的靜態(tài)版通訊錄,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C語言有一定幫助,需要的可以參考一下
    2022-08-08
  • 利用Matlab繪制一款專屬進(jìn)度條

    利用Matlab繪制一款專屬進(jìn)度條

    MATLAB自帶的進(jìn)度條是很簡單的,這樣的進(jìn)度條顯得冷冰冰的。因此,本文將用Matlab來DIY一款專屬的進(jìn)度條,感興趣的小伙伴可以了解一下
    2022-02-02
  • C語言使用函數(shù)實(shí)現(xiàn)字符串部分復(fù)制問題

    C語言使用函數(shù)實(shí)現(xiàn)字符串部分復(fù)制問題

    這篇文章主要介紹了C語言使用函數(shù)實(shí)現(xiàn)字符串部分復(fù)制問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C++實(shí)現(xiàn)LeetCode(187.求重復(fù)的DNA序列)

    C++實(shí)現(xiàn)LeetCode(187.求重復(fù)的DNA序列)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(187.求重復(fù)的DNA序列),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語言中二叉樹的后序遍歷詳解

    C語言中二叉樹的后序遍歷詳解

    大家好,本篇文章主要講的是C語言中二叉樹的后序遍歷詳解,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • C++之CNoTrackObject類和new delete操作符的重載實(shí)例

    C++之CNoTrackObject類和new delete操作符的重載實(shí)例

    這篇文章主要介紹了C++之CNoTrackObject類和new delete操作符的重載實(shí)例,是C++程序設(shè)計(jì)中比較重要的概念,需要的朋友可以參考下
    2014-10-10

最新評(píng)論