酒店点菜管理系统课程设计


题目19酒店点菜管理系统设计

1、问题描述

为了适应现代信息时代点餐的需求,采用新信息技术,研究设计了一个计算机点餐系统。能够完成权限管理、点餐管理、订单管理、结账管理、菜谱评分等功能。

2、功能要求

管理员用户名: admin

管理员密码: 123456 (输入时以密文形式,如: *****)

管理员:

(1)添加普通用户用户名和密码信息。

(2)重置普通用户初始密码。(如: 1)

(3)权限管理:包括用户的注册、登录、用户信息管理。

(4)查看功能:查看所有座台点餐订单。

(5)结账管理:统计所有消费的总额。

(6)查看历史:查看所有消费历史。

(7) 菜单管理:对所有菜肴的管理,包括菜肴的编号,名称,单价等。

普通用户:

(1)点餐功能:包括座台标号,餐单的增加、修改、删除、查看。

(3)订单管理:包括生成订单、修改、删除、查找。

(4)结账管理:用户消费的总额。

(5)查看历史:查看用户消费历史。

(6)菜谱评分:对各菜谱中经常点取的菜肴进行评分。

## 代码

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include  
#include 
#include "malloc.h"
#define mq(a,b) memset(a,b,sizeof(a))
int menu1();//首页菜单 //
int menu2();//管理员菜单 //
int menu3();//用户菜单 //
void zhuce();//用户注册 //
void aaa();//添加普通用户用户名和密码信息//
void bbb();//重置普通用户初始密码 //
void ccc();//用户的注册、登录、用户信息管理//
void ddd();//查看所有 座台点 餐订单 //
void eee();//统计所有消费的总额//
void fff();//查看所有消费历史//
void ggg();//菜肴的编号,名称,单价管理//
void hhh();//点餐功能 //
void iii();//订单生成 // 
void jjj();//结账管理 //
void kkk();//查看用户消费历史 //
void mmm();//对各菜中经常点取的菜进行评分 
void secretword(char a2[]);//隐藏密码 //
char g1[20]="admin",g2[20]="123456";
char a1[20],a2[20],key[20];
int b[999],b3[999],sss[999];//b标记,b3编号; 
char b2[999][25];//名 
float b1[999];//b1评分
struct ppp //用户账号 //file.txt
{
	char q1[20];
	char q2[20];
}q,p[999];
struct caicai//菜单 //菜单.txt 
{
	int h;//编号 
	char cai[25];// 菜名 
	int s;//价钱 
	float fen;// 菜评分 
	int po;//评分的人数 
	struct caicai *link;
}caa[999];
struct zhangdan
{
	char zhanghao[20];//用户名 
	int zh;//座号
	int cai[60];//菜编号 
	char caiming[60][25]; 
	int sl[60]; //单价 
	int  s;//总价 
	int z;//总共点几道菜 
}zd,xx,mm[999]; 
int main()
{
	int n,i,m,k=0,l,j;
	do
	{
		k=0;n=0; 
		n=menu1();
		printf("\n"); 
		if(n==0)
			exit(0);
		while(n==1)
		{
			printf("\t\t\t管理员登陆\n");
			printf("\t\t\t输入账号:");
			scanf("%s",a1);
			printf("\t\t\t输入密码:");
			secretword(a2);
			if(strcmp(g1,a1)==0&&strcmp(g2,a2)==0)
			{
				printf("\t\t\t登录成功\n");
				while(1)
				{
				m=menu2();
				switch(m)
				{
					case 1:aaa(); break;
					case 2:bbb(); break;
					case 3:ccc(); break;
					case 4:ddd(); break;
					case 5:eee(); break;
					case 6:fff(); break;
					case 7:ggg(); break;
					case 0:exit(0);
				} 
				}
			}
			else
			printf("\t\t\t账号或密码错误,请重新登录\n\n");
			 
		}
		while(n==2)
		{
			k=0;
			FILE *fp;
			int pp=0;
			zd.z=0; 
			zd.s=0;
			printf("\t\t\t用户登陆\n");
			printf("\t\t\t输入账号:");
			scanf("%s",a1);
			printf("\t\t\t输入密码:");
			secretword(a2);
			fp=fopen("file.txt","ab+");
			while(fread(&p[k],sizeof(struct ppp),1,fp)==1)
			{
				k++;
			} 
			fclose(fp);
			for(i=0;i=k)
			printf("\t\t\t账号或密码错误,请重新登录\n\n");
		}
		if(n==3)
			zhuce();
	}while(n==3);
	
}
int menu1()
{
	int n;
	printf("\t\t\t***********************\n");
	printf("\t\t\t*  酒店点菜管理系统   *\n");
	printf("\t\t\t***********************\n");
	printf("\t\t\t*  1.管理员登录       *\n");
	printf("\t\t\t*  2.用户登录         *\n");
	printf("\t\t\t*  3.用户注册         *\n");
	printf("\t\t\t*  0.退出程序         *\n");
	printf("\t\t\t***********************\n");
	printf("\t\t\t*请输入选项编号(0~3)*\n");
	printf("\t\t\t***********************\n");
	printf("\t\t\t你输入的编号为:");
	scanf("%d",&n);
	return n; 
}
int menu2()
{
	int n;
	printf("\t\t\t******************\n");
	printf("\t\t\t*   管理员系统   *\n");
	printf("\t\t\t******************\n");
	printf("\t\t\t*  1.添加普通用户*\n");
	printf("\t\t\t*  2.重置用户密码*\n");
	printf("\t\t\t*  3.权限管理    *\n");
	printf("\t\t\t*  4.查看功能    *\n");
	printf("\t\t\t*  5.结账管理    *\n");
	printf("\t\t\t*  6.查看历史    *\n");
	printf("\t\t\t*  7.菜单管理    *\n");
	printf("\t\t\t*  0.退出程序    *\n");
	printf("\t\t\t******************\n");
	printf("\t\t\t你输入的编号为:");
	scanf("%d",&n);
	return n; 
}
int menu3()
{
	int n;
	printf("\t\t\t******************\n");
	printf("\t\t\t*酒店点菜管理系统*\n");
	printf("\t\t\t******************\n");
	printf("\t\t\t*   1.点餐功能   *\n");
	printf("\t\t\t*   2.订单管理   *\n");
	printf("\t\t\t*   3.结账管理   *\n");
	printf("\t\t\t*   4.查看历史   *\n");
	printf("\t\t\t*   5.菜谱评分   *\n");
	printf("\t\t\t*   0.退出程序   *\n");
	printf("\t\t\t******************\n");
	printf("\t\t\t你输入的编号为:");
	scanf("%d",&n);
	return n; 
}
void zhuce()
{
	int k=0,i=0;
	FILE *fp;
	fp=fopen("file.txt","ab+");
	while(fread(&p[k],sizeof(struct ppp),1,fp)==1)
	{
		k++;
	}	
	while(1)
	{	printf("\n"); 
		printf("\t\t\t输入注册的账户名:");
		scanf("%s",p[k].q1);
		printf("\t\t\t输入注册的账户密码:");
		secretword(p[k].q2);
	///	scanf("%s",);
		for(i=0;i=k)
		{
			fwrite(&p[k],sizeof(struct ppp),1,fp); 
			printf("\t\t\t注册成功\n\n");
			fclose(fp);
			return ;
		}
		else
			printf("\t\t\t该用户名已存在\n\n");
	}
	fclose(fp);
	return ;
}
void aaa()//添加普通用户用户名和密码信息
{
	int n,m;
	FILE *fp;
	fp=fopen("file.txt","ab+");
	n=1;
	while(n)
	{
		printf("\n"); 
		printf("\t\t\t输入添加用户名(输入0退出):");
		scanf("%s",q.q1);
		if(q.q1[0]=='0')
			break; 
		printf("\t\t\t输入添加用户名的密码:");
		secretword(q.q2);
		fwrite(&q,sizeof(struct ppp),1,fp);
		printf("\t\t\t添加成功\n\n"); 
	}
	fclose(fp);
	return ;
}
void bbb()//重置普通用户初始密码 
{
	int k=0,i=0;
	FILE *fp;
	fp=fopen("file.txt","ab+");
	while(fread(&p[k],sizeof(struct ppp),1,fp)==1)
	{
		k++;
	} 
	fclose(fp);
	while(1)
	{
		printf("\n"); 
		printf("\t\t\t输入重置的用户名(输入0退出):");
		scanf("%s",a1);
		if(a1[0]=='0')
		break;
		printf("\t\t\t输入重置的密码:");
		secretword(a2);
		for(i=0;i=0;k--)
	{
		if(b[mm[k].zh]==1)
		{
			b[mm[k].zh]=2;
			printf("\n"); 
			printf("\t\t\t座台标号为:%d\n",mm[k].zh);
			printf("\t\t\t用户名: %s\n",mm[k].zhanghao); 
			printf("\t\t\t菜名       数量  金额\n");
			for(i=0;i%.2f\n",ww,caa[i].fen);
			printf("\t\t\t评分人数: %d--->%d\n",caa[i].po-1,caa[i].po);
			printf("\t\t\t价钱:%d\n\n",caa[i].s);
			
		}
	}
	fp=fopen("菜单.txt","wb");
	for(i=0;i0&&c=='\b')
		{
			i--;
			putchar('\b');
			putchar(' ');
			putchar('\b');
		}
	}
	printf("\n");
	a2[i]='\0';
}

首先你得先以管理员的身份选择

(7) 菜单管理:对所有菜肴的管理,包括菜肴的编号,名称,单价等。

添加菜单,才能使用

酒店点菜管理系统课程设计_第1张图片

 这是我之前添加的菜单(你们运行没有)

酒店点菜管理系统课程设计_第2张图片

 酒店点菜管理系统课程设计_第3张图片

 酒店点菜管理系统课程设计_第4张图片

 如果你想添加菜单选择  4

酒店点菜管理系统课程设计_第5张图片

 

这就添加成功

记住你可以先不输入0退出,可以继续添加菜单,但最后一定要 输入 0 退出 才算真真的添加成功

 

你可能感兴趣的:(课程设计,c++)