基基于于C语语言言实实现现点点菜菜系系统统
本文实例为大家分享了C语言点菜系统的具体代码,供大家参考,具体内容如
用C语言编写的简单的餐厅点菜系统,操作简单,代码不多,菜单可以自己更改,价格也是
#include
#include
#include
#include"windows.h"
struct cai /*cai结构体 实现对菜品 已点份数、名称、原材料 的记录*/
{
int fenshu;
char name[50];
int use;
int rice;
};
ty edef int ElemTy e;
struct List /*该线性表实现对菜品原材料的剩余量的记录,线性表 【i】对应菜品的点餐菜单编码*/
{
ElemTy e* list;
int size;
int MaxSize;
};
/*以 为线性表的函数*/
void InitList(struct List* L,int ms)
{
if(ms<=0){ rintf("ms 值非法!\n");exit(1);}
L->MaxSize=ms;
L->list=malloc(ms*sizeof(ElemTy e));
if(!L->list)
{
rintf("动态存储分配失败!");
exit(1);
}
L->size=0;
}
void againMalloc(struct List *L)
{
ElemTy e * =realloc(L->list,2*L->MaxSize*sizeof(ElemTy e));
if(! ){
rintf("分配存储空间失败!");
exit(1);
}
L->list= ;
L->MaxSize=2*L->MaxSize;
}
void InsertLastList(struct List *L,ElemTy e x)
{
if(L->size==L->MaxSize)
againMalloc(L);
L->list[L->size]=x;
L->size++;
}
/*表格函数*/
void cddayin(struct cai a[])
{
int i=0,j=0,s=0;
for(i=0;i<30;i++)
{if(a[i].fenshu>0) j++;}
if(j!=0)
{
rintf("已点菜/酒品编号 已点菜品名称 已点份数/瓶数 价格\n");
for(i=0;i<30;i++)
if(a[i].fenshu>0)
{ rintf(" %5d %10s%14d %d¥ \n",i,a[i].name,a[i].fenshu,a[i].fenshu*a[i]. rice
);
s=s+a[i].fenshu*a[i]. rice;
}
rintf(" 您好,您点餐价格合计=%d¥\n",s);
}
if(j==0)
rintf("顾客尚未点餐,无法进行菜单打印!\n");
}
void ycliao(struct List *yuan,struct cai a[])
{
int i=1, =0,k=0;
for(i=0;i<30;i++)
{
do{
=a[i].use%100;
yuan->list[ ]=yuan->list[ ]-a[i].fenshu;
a[i].use=a[i].use/100;
}while(a[i].use!=0);
}
rintf("|||
\n");
rintf("|原材料余量|酒品余量|\n
");
rintf("|||
\n");
rintf("| 10.鸡肉=%3d 11.猪肉=%3d 12.鱼