這篇文章主要講解了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語言如何實現點餐系統有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。