概述
本文实例为大家分享了C语言餐饮结账管理系统的具体代码,供大家参考,具体内容如下
使用C语言编写餐饮结账管理系统课程设计,包含设计报告,源代码.
#include<stdio.h> #include<string.h> #include<stdlib.h> #define M 30 struct bill { int num; //编号 int time[4]; //时间 int table; //台面号 int count; //顾客数量 char name[20]; //服务生姓名 int money; //实收金额 }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("nnn"); printf(" <<<<餐饮结账管理系统>>>> n"); printf("----------------------------------------------------n"); printf("nn"); printf("---1录入 2修改 3删除 ----nn"); printf("---4台面号查询 5接待服务生查询----nn"); printf("---6金额排序 7总收入 8顾客总数 ----nn"); printf("--- 0退出 ----nn"); printf("---------------------------------------------------n"); printf("nn"); printf("请选择服务(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 filen"); return; } printf("输入信息个数(0-%d)?:",M-1); scanf("%d",&N); printf("请输入数据:n"); for(i=0;i<N;i++) { printf("输入账单 %d 信息:n",i+1); printf("编号:"); scanf("%d",&bill[i].num); printf("时间(月.日 时:分):"); scanf("%d%d%d%d",&bill[i].time[0],&bill[i].time[1],&bill[i]. time[2],&bill[i].time[3]); printf("台面号:"); scanf("%d",&bill[i].table); printf("顾客数量:"); scanf("%d",&bill[i].count); printf("接待服务生:"); scanf("%s",bill[i].name); printf("实收金额:"); scanf("%d",&bill[i].money); } for(i=0;i<N;i++) { if(fwrite(&bill[i],sizeof(struct bill),1,fp)!=1) { printf("file write errorn"); return; } } fclose(fp); } /*从文件中读取信息并存入数组sbill[N]*/ void readFromFile() { int i; FILE *fp; if((fp=fopen("bill","rb"))==NULL) { printf("cannot open the filen"); return; } for(i=0;i<N;i++) fread(&bill[i],sizeof(struct bill),1,fp); fclose(fp); } /*保存函数*/ void save() { FILE *fp; int i; if((fp=fopen("bill","w"))==NULL) { printf("cannot open the filen"); return; } for(i=0;i<N;i++) { if(bill[i].num!=' ') if(fwrite(&bill[i],sizeof(struct bill),1,fp)!=1) { printf("file write errorn"); return; } } fclose(fp); } /*信息全部显示*/ void display_all() { int i; readFromFile(); printf("全部信息:n"); for(i=0;i<N;i++) { printf("编号:%d 时间:%d.%d %d:%d 台面号:%d 顾客数量:%d 接待服务生:%s 实施金额:%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"); } } /*单个信息显示*/ void display(int i) { printf("编号:%d 时间:%d%d%d%d 台面号:%d 顾客数量:%d 接待服务生:%s 实施金额:%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); } /* 修改函数调用函数*/ int modify_a(int i) { int c,w1; printf("n修改选项=>nn 1).编号 2).时间 3).台面号 4).顾客数量 5).接待服务生 6).实收金额 7).取消并返回"); printf("请选择?: [ ]"); scanf("%d",&c); if(c>7||c<1) { printf("n选择错误,请重试"); getchar(); } do { switch(c) { case 1: printf("编号:"); scanf("%d",&bill[i].num); break; case 2:printf("时间:") ; 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("台面号:"); scanf("%d",&bill[i].table); break; case 4: printf("顾客数量:"); scanf("%d",&bill[i].count); break; case 5: printf("接待服务生:"); scanf("%s",bill[i].name); break; case 6: printf("实收金额:"); scanf("%d",&bill[i].money); break; case 7: menu(); } printf("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输入要修改的编号数n编号:"); scanf("%d",&n); for(i=0;i<N;i++) if(bill[i].num-n==0) { k=i; } if(k==-1) printf("nn没有记录请重新输入!"); }while(k==-1); w1=modify_a(k); if(w1==1) { printf("n 修改成功 n是否继续? 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输入要删除的编号:n"); scanf("%d",&n); for(i=0;i<N;i++) if(n-bill[i].num==0) { k=i; } if(k==-1) printf("n无记录,请重新输入!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删除成功,是否继续? 1)是 2)返回 [ "); scanf("%d",&w1); }while(w1==1); } /*台面号查询*/ void search1() { int i,j,w0; int number; readFromFile(); do { j=-1; printf("n请输入台面号查询:"); scanf("%d",&number); for(i=0;i<N;i++) { if(number==bill[i].table) { j=i; display(j); printf("n"); } } if(j==-1) printf("无此号!"); printf("n继续? 1)是 2)返回 ["); scanf("%d",&w0); }while(w0==1); } /*接待服务生查询*/ void search2() { char a[20]; int i,j,w0; do { j=-1; printf("n请输入接待服务生姓名查询:"); 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继续? 1)是 2)返回 [ "); scanf("%d",&w0); }while(w0==1); } /*金额排序*/ void sort() { int i,j,w0; struct bill t; readFromFile(); printf("nn"); 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]; /*调换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); } /*总收入统计*/ void income() { int i,sum=0,w0; readFromFile(); for(i=0;i<N;i++) sum=sum+bill[i].money; printf("nn"); printf("总收入:%d",sum); do { printf("n返回? 1)是 2)否"); scanf("%5d",&w0); }while(w0==2); } /*顾客总数统计*/ void number() { int i,number=0,w0; readFromFile(); for(i=0;i<N;i++) number=number+bill[i].count; printf("nn"); printf("顾客总数:%d",number); do { printf("n返回? 1)是 2)否"); scanf("%5d",&w0); }while(w0==2); } /*主函数*/ void main() { menu(); }
源码下载:C语言餐饮结账管理系统
更多学习资料请关注专题《管理系统开发》。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持靠谱客。
最后
以上就是不安店员为你收集整理的C语言实现餐饮结账管理系统的全部内容,希望文章能够帮你解决C语言实现餐饮结账管理系统所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复