这篇文章主要讲解了C语言如何实现点餐系统,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
#include<iostream>
#include<cstring>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<cstring>
#include<conio.h>
using namespace std;
typedef struct member
{
char username[20];//用户名
char password[20];//密码
}Member;
typedef struct product
{
char name[20];//菜品名
int price;
int num;//销售数量
}Product;
/*菜单函数区*/
void menu1();/*主菜单*/
void menu2();/*管理员界面*/
void all_info();//点单信息
void member_log_up();//注册
void member_log_in_interface();//登录界面外观
int member_log_in();//登录
void check();
/*管理员菜单函数*/
void sell_info();//菜品所有信息
void password_manage();//用户名密码信息
int compare_password(char password[]);//对比密码函数
int main()
{
int flag1=1,flag_member=0,flag_admin=0;
int choice1,choice2;
while(flag1){
menu1();
printf("\n");
printf("请您选择(1-5):");
scanf("%d",&choice1);
if(choice1==1)/*会员登录*/
{
member_log_in_interface();
flag_member=member_log_in();
while(flag_member)
{
all_info();
check();
}
}
else if(choice1==2)/*会员注册*/
{
printf("\n\n\n\t\t\t正在进入用户注册界面...\n");
member_log_up();
}
else if(choice1==3)/*管理员登录*/
{
printf("请输入密码:");
char password[20]={0};
scanf("%s",password);
if(compare_password(password))
{
printf("\n\n\t\t\t\t --输入密码正确!--\n\n\t\t\t\t==正在进入管理员界面==\n");
flag_admin=1;
}
else
{
printf("\n\n\t\t\t\t --输入密码错误!--\n");
}
while(flag_admin)
{
menu2();
printf("请您选择(1-3):");
scanf("%d",&choice2);
switch(choice2)
{
case 1:password_manage();break;
case 2:sell_info();break;
case 3:flag_admin=0;break;
}
}
}
else if(choice1==4)/*退出系统*/
{
flag1=0;
}
}
printf("你已经安全退出系统!(按任意键关闭界面)\n\n\t欢迎您的再次使用!\n\n");
return 0;
}
void menu1()
{
system("color E9");
printf("\n\n");
printf("\t\t\t *=======================================*\n");
printf("\t\t\t| * - * - * Zhou Cheng - System - * - * |\n");
printf("\t\t\t| * * |\n");
printf("\t\t\t| | [1] 会员登录 | |\n");
printf("\t\t\t| * * |\n");
printf("\t\t\t| | [2] 会员注册 | |\n");
printf("\t\t\t| * * |\n");
printf("\t\t\t| | [3] 管理员登录 | |\n");
printf("\t\t\t| * * |\n");
printf("\t\t\t| | [4] 退出系统 | |\n");
printf("\t\t\t| * * |\n");
printf("\t\t\t| * - * - * - * - * - * - * - * - * - * |\n");
printf("\t\t\t *=======================================*\n");
}
void menu2()
{
printf("\n\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| | | |\n");
printf("\t\t\t| * - * - * - * - * -- * - * - * - * - * |\n");
printf("\t\t\t *======================================*\n");
}
int compare_password(char password[])/*管理员密码比对函数 */
{
int i,flag=1;
for(i=0;i<6;i++)
{
if(password[i]!='1'+i)flag=0;
}
return flag;
}
void member_log_up()//会员注册函数
{
Member member;
while(1)
{
printf("请输入您想创建的username(用户名):");
scanf("%s",member.username);
printf("请输入您的密码(20个字符以内):");
scanf("%s",member.password);
printf("是否确认创建(y/n):");
char ch=getch();
if(ch=='n')continue;
else if(ch=='y')
{
FILE *fp=fopen("memberInfo.txt","a+");
fprintf(fp,"%s %s ",member.username,member.password);
fclose(fp);
printf("\n您已注册成功!\n");
printf("--------正在返回大厅--------");
return ;
}
}
}
int member_log_in()
{
Member member[100];
FILE *fp=fopen("memberInfo.txt","a+");
int i=0;
while(!feof(fp))
{
fscanf(fp,"%s %s",member[i].username,member[i].password);
i++;
}
char username[20],password[20];
scanf("%s",username);
printf("\t\t\t 密码 (password):");
scanf("%s",password);
int flag=0;
for(int j=0;j<i;j++)
{
if(strcmp(username,member[j].username)==0&&strcmp(password,member[j].password)==0)
{
flag=1;
break;
}
}
return flag;
}
void member_log_in_interface()/*登入界面*/
{
printf("\n\n\n\t\t\t***================================*** \n");
printf("\t\t\t \n");
printf("\t\t\t 用户名 (username):");
}
void all_info()
{
Product product[100];
FILE *fp=fopen("productInfo.txt","a+");
int i=0;
while(!feof(fp))
{
fscanf(fp,"%s %d %d",product[i].name,&product[i].price,&product[i].num);
i++;
}
printf("编号--菜品名---------单价---\n");
for(int j=0;j<i;j++)
{
printf("%-6d%-15s%-7d\n",j+1,product[j].name,product[j].price);
}
printf("请输入想要购买的菜品编号以及数量(用空格分割):");
int num,count;
scanf("%d %d",&num,&count);
printf("此函数还没写完...\n");
printf("按任意键前往结算界面:");
char c;
scanf(" %c",&c);
}
void sell_info()
{
Product product[100];
FILE *fp=fopen("productInfo.txt","a+");
int i=0;
while(!feof(fp))
{
fscanf(fp,"%s %d %d",product[i].name,&product[i].price,&product[i].num);
i++;
}
printf("--菜品名---------单价---销售量---销售额--\n");
for(int j=0;j<i;j++)
{
printf(" %-15s%-7d%-9d%-8d\n",product[j].name,product[j].price,product[j].num,product[j].price*product[j].num);
}
printf("按任意键返回菜单:");
char c;
scanf(" %c",&c);
}
void password_manage()
{
Member member[100];
FILE *fp=fopen("memberInfo.txt","a+");
int i=0;
while(!feof(fp))
{
fscanf(fp,"%s %s",member[i].username,member[i].password);
i++;
}
printf("----用户名------------密码----------");
for(int j=0;j<i;j++)
{
printf("\n %-17s %-15s",member[j].username,member[j].password);
}
printf("按任意键返回菜单:");
char c;
scanf(" %c",&c);
}
void check()
{
printf("此函数还没写...\n");
printf("按任意键返回菜单:");
char c;
scanf(" %c",&c);
}
看完上述内容,是不是对C语言如何实现点餐系统有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。