C语言代码实现点餐系统

 更新时间:2021年01月26日 11:06:53   作者:nefu_zc  
这篇文章主要为大家详细介绍了C语言实现点餐系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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++实现LeetCode(52.N皇后问题之二)

    C++实现LeetCode(52.N皇后问题之二)

    这篇文章主要介绍了C++实现LeetCode(52.N皇后问题之二),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C++实现LeetCode(77.Combinations 组合项)

    C++实现LeetCode(77.Combinations 组合项)

    这篇文章主要介绍了C++实现LeetCode(Combinations 组合项),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C++ Cartographer的入口node main详细讲解

    C++ Cartographer的入口node main详细讲解

    这篇文章主要介绍了C++Node类Cartographer的入口node main,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-03-03
  • centos 7 vscode cmake 编译c++工程的教程详解

    centos 7 vscode cmake 编译c++工程的教程详解

    这篇文章给大家介绍了centos 7 使用vscode+cmake配置简单c++项目的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-05-05
  • C语言之陷阱与缺陷详解

    C语言之陷阱与缺陷详解

    本片文章是对C++中陷阱与缺陷进行了详细的分析介绍,小编觉得本片文章讲解的非常详细,需要的朋友参考下,希望能够给你带来帮助
    2021-09-09
  • VSCode与Keil联合开发STM32的流程

    VSCode与Keil联合开发STM32的流程

    这篇文章主要介绍了VSCode与Keil联合开发STM32的流程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Qt5多线程编程的实现

    Qt5多线程编程的实现

    Qt通过三种形式提供了对线程的支持,本文主要介绍了Qt5多线程编程的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • C++实现拷贝构造函数的方法详解

    C++实现拷贝构造函数的方法详解

    拷贝构造函数是构造函数的一个重载,因此显式的定义了拷贝构造,那么编译器也不再默认生成构造函数。本文主要介绍了C++实现拷贝构造函数的方法,需要的可以参考一下
    2022-09-09
  • 详解C++设计模式编程中对访问者模式的运用

    详解C++设计模式编程中对访问者模式的运用

    这篇文章主要介绍了C++设计模式编程中对访问者模式的运用,访问者模式在不破坏类的前提下为类提供增加新的新操作,需要的朋友可以参考下
    2016-03-03
  • C++ 的cout格式化输出场景示例详解

    C++ 的cout格式化输出场景示例详解

    这篇文章主要为大家介绍了C++的cout格式化输出场景示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09

最新评论