北京联合大学
数据结构实训报告
课程名称 项目名称 学 院 姓 名 指导老师
数据结构实训
餐厅点餐系统
管理学院
业:信息管理与信息系统
1月13日
目录
TOC \o "1-5" \h \z 北京朕合大学1
\o "Current Document" 数据结构实训报告1
\o "Current Document" 一、实践题目3
\o "Current Document" 二、实践目的3
\o "Current Document" 三、实践内容3
选择的数据结构:3
\o "Current Document" 程序代码及注释3
\o "Current Document" 程序运行流程图7
结果8
四、个人总结14
一、实践题目
餐厅点餐系统
二、实践目的
编写出一个有用户界面的容易使用的点餐系统,服务员可以通过这个系统为顾客点餐,点完餐后可以直接 打印出来或在餐厅后堂打印出来方便厨师及时了解顾客的点餐,如果是餐厅管理者在使用还可以查看原材料的 余量,以便及吋进货。
三、实践内容
1.选择的数据结构: 线性表,线性存储结构
程序代码及注释
# include
#in clude
#in clude
#include,,windows.hH
struct cai /*cai结构体实现对菜品已点份数、名称、原材料的记录*/
{
int fen shu;
char name[50];
int use;
int price;
};
typedef int ElemType;
struct List/*该线性表实现对菜品原材料的剩余量的记录,线性表【i】对应菜品的点餐菜单编码*/
{
ElemType* list;
int size;
int MaxSize;
};
/*以下为线性表的函数*/
void lnitList(struct List* L,int ms)
{
if(ms<=O){printf("ms 值非法! \n");exit(l);}
L->MaxSize=ms;
L->list=malloc(ms*sizeof(ElemType));
if(!L->list)
printfC1动态存储分配失败! “);
exit(l);
L->size=O;
}
void againMalloc(struct List *L)
{
ElemType *p=realloc(L->list/2*L->MaxSize*sizeof(ElemType));
printfC1分配存储空间失败! “); exit(l);
}
L->list=p;
L->MaxSize=2*L->MaxSize;
}
void lnsertLastList(struct List *L,ElemType x)
{
if(L->size==L->MaxSize)
againMalloc(L);
L->list[L->size]=x;
L->size++;
}
/*表格函数*/
void cddayin(struct cai a[])
int i=OJ=O,s=O;
for(i=0;i<30;i++)
{if(a[i].fenshu>0) j++;}
{
pri ntff1己点菜/酒品编号已点菜品名称
for(i=0;i<30;i++)
讦(a[i].fenshu>0)
{printf(" %5d
¥\nname,a[i].fe nshu,a[i].fenshu*a[i].price);
s=s+a[i].fenshu*a[i].price;
}
printf("
}
讦(j==0)
printf(“顾客尚未点餐无法进行菜单打印!\n“);
}
void ycliao(struct List *yuan,struct cai a[])
{
int i=l,p=O,k=O;
for(i=0;i<30;i++)
己点份数/瓶数价格\n”);
%10s%14d
您好,您点餐价格合计=%d¥\nn,s);
%d
do{
p=a[i].use%100;
yuan->list[p]=yua n? >list[p 卜 a[i]?fe nshu; a[i].use=a[i].use/100;
}while(a[i].use!=0);
} printf(”|
printf("|
printf("|
printf("| 10.鸡肉=%3d11.猪肉=%3d
|\n"/yuan->list[10]/yuan->list[ll]/yuan->list[12]/yuan->list[50]);
printff" | 13.黄瓜二%3d24.土豆=