亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C語言代碼實現點餐系統(tǒng)

 更新時間:2021年01月26日 11:06:53   作者:nefu_zc  
這篇文章主要為大家詳細介紹了C語言實現點餐系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C語言實現點餐系統(tǒng)的具體代碼,供大家參考,具體內容如下

#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;

/*菜單函數區(qū)*/
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)/*退出系統(tǒng)*/
 {
 flag1=0;
 }
 }
 printf("你已經安全退出系統(tǒng)!(按任意鍵關閉界面)\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] 各產品銷售信息  * |\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("請輸入您想創(chuàng)建的username(用戶名):");
 scanf("%s",member.username);

 printf("請輸入您的密碼(20個字符以內):");
 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("請輸入想要購買的菜品編號以及數量(用空格分割):");
 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);
}

更多學習資料請關注專題《管理系統(tǒng)開發(fā)》。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • C++數據結構之鏈表的創(chuàng)建

    C++數據結構之鏈表的創(chuàng)建

    這篇文章主要介紹了C++數據結構之鏈表的創(chuàng)建的相關資料,希望通過本文幫助到大家,讓大家理解掌握這部分內容,需要的朋友可以參考下
    2017-10-10
  • 從匯編看c++中默認構造函數的使用分析

    從匯編看c++中默認構造函數的使用分析

    c++中,如果為一個類沒有明確定義一個構造函數,那么,編譯器就會自動合成一個默認的構造函數。下面,通過匯編程序,來看一下其真實情況
    2013-05-05
  • 面向對象三大特性的意義講解

    面向對象三大特性的意義講解

    今天小編就為大家分享一篇關于面向對象三大特性的意義講解,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • C++解決合并兩個排序的鏈表問題

    C++解決合并兩個排序的鏈表問題

    本文主要介紹了通過C++解決合并兩個排序的鏈表并使新鏈表中的節(jié)點仍然是遞增排序的。文中代碼講解詳細,有需要的朋友可以參考一下
    2021-12-12
  • c語言實現從源文件從文本到可執(zhí)行文件經歷的過程

    c語言實現從源文件從文本到可執(zhí)行文件經歷的過程

    這篇文章主要介紹了c語言實現從源文件從文本到可執(zhí)行文件經歷的過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Qt數據庫應用之實現csv文件轉xls

    Qt數據庫應用之實現csv文件轉xls

    這篇文章主要為大家詳細介紹了如何利用Qt實現csv文件轉xls功能,文中的示例代碼講解詳細,對我們學習或工作有一定參考價值,需要的可以了解一下
    2022-06-06
  • C語言實現3個數從小到大排序/輸出的方法示例

    C語言實現3個數從小到大排序/輸出的方法示例

    這篇文章主要給大家介紹了關于如何利用C語言實現3個數從小到大排序/輸出的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用C語言具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05
  • C語言中`||`的短路機制詳解

    C語言中`||`的短路機制詳解

    在C語言中,邏輯或運算符(||)是一種常用的邏輯運算符,用于組合多個條件表達式,C語言中的邏輯或運算符具有短路機制,這是一種非常重要的概念,本文將深入解釋C語言中的||短路機制以及其在編程中的應用,感興趣的朋友跟隨小編一起看看吧
    2024-01-01
  • OpenCV實現可分離濾波

    OpenCV實現可分離濾波

    這篇文章主要為大家詳細介紹了OpenCV實現可分離濾波,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 深入Windows下的回車是回車換行(\r\n)還是換行回車(\n\r)的詳解

    深入Windows下的回車是回車換行(\r\n)還是換行回車(\n\r)的詳解

    本篇文章對Windows下的回車是回車換行(\r\n)還是換行回車(\n\r)進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05

最新評論