C語言代碼實現(xiàn)點餐系統(tǒng)
更新時間:2021年01月26日 11:06:53 作者:nefu_zc
這篇文章主要為大家詳細介紹了C語言實現(xiàn)點餐系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了C語言實現(xiàn)點餐系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
#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;//銷售數(shù)量
}Product;
/*菜單函數(shù)區(qū)*/
void menu1();/*主菜單*/
void menu2();/*管理員界面*/
void all_info();//點單信息
void member_log_up();//注冊
void member_log_in_interface();//登錄界面外觀
int member_log_in();//登錄
void check();
/*管理員菜單函數(shù)*/
void sell_info();//菜品所有信息
void password_manage();//用戶名密碼信息
int compare_password(char password[]);//對比密碼函數(shù)
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)/*退出系統(tǒng)*/
{
flag1=0;
}
}
printf("你已經(jīng)安全退出系統(tǒng)!(按任意鍵關(guān)閉界面)\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] 退出系統(tǒng) | |\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] 各產(chǎn)品銷售信息 * |\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[])/*管理員密碼比對函數(shù) */
{
int i,flag=1;
for(i=0;i<6;i++)
{
if(password[i]!='1'+i)flag=0;
}
return flag;
}
void member_log_up()//會員注冊函數(shù)
{
Member member;
while(1)
{
printf("請輸入您想創(chuàng)建的username(用戶名):");
scanf("%s",member.username);
printf("請輸入您的密碼(20個字符以內(nèi)):");
scanf("%s",member.password);
printf("是否確認創(chuàng)建(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("請輸入想要購買的菜品編號以及數(shù)量(用空格分割):");
int num,count;
scanf("%d %d",&num,&count);
printf("此函數(shù)還沒寫完...\n");
printf("按任意鍵前往結(jié)算界面:");
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("此函數(shù)還沒寫...\n");
printf("按任意鍵返回菜單:");
char c;
scanf(" %c",&c);
}
更多學(xué)習(xí)資料請關(guān)注專題《管理系統(tǒng)開發(fā)》。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C++數(shù)據(jù)結(jié)構(gòu)之鏈表的創(chuàng)建
這篇文章主要介紹了C++數(shù)據(jù)結(jié)構(gòu)之鏈表的創(chuàng)建的相關(guān)資料,希望通過本文幫助到大家,讓大家理解掌握這部分內(nèi)容,需要的朋友可以參考下2017-10-10
c語言實現(xiàn)從源文件從文本到可執(zhí)行文件經(jīng)歷的過程
這篇文章主要介紹了c語言實現(xiàn)從源文件從文本到可執(zhí)行文件經(jīng)歷的過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
Qt數(shù)據(jù)庫應(yīng)用之實現(xiàn)csv文件轉(zhuǎn)xls
這篇文章主要為大家詳細介紹了如何利用Qt實現(xiàn)csv文件轉(zhuǎn)xls功能,文中的示例代碼講解詳細,對我們學(xué)習(xí)或工作有一定參考價值,需要的可以了解一下2022-06-06
C語言實現(xiàn)3個數(shù)從小到大排序/輸出的方法示例
這篇文章主要給大家介紹了關(guān)于如何利用C語言實現(xiàn)3個數(shù)從小到大排序/輸出的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用C語言具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
深入Windows下的回車是回車換行(\r\n)還是換行回車(\n\r)的詳解
本篇文章對Windows下的回車是回車換行(\r\n)還是換行回車(\n\r)進行了詳細的分析介紹,需要的朋友參考下2013-05-05

