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++ Qt实现浏览器网页内嵌的音视频播放器

    C++ Qt实现浏览器网页内嵌的音视频播放器

    这篇文章主要为大家详细介绍了如何利用C++ Qt实现浏览器网页内嵌的音视频播放器,并支持软硬解码,支持音频,支持录像截图,支持多路播放等,感兴趣的可以了解下
    2024-01-01
  • C语言中new与malloc的区别详解

    C语言中new与malloc的区别详解

    这篇文章主要介绍了C语言中new与malloc的区别详解,new是运算符,可以用于动态分配,如果想要撤销内存使用delete,new运算符使用的一般格式为new类型,用new分配数组空间时不能指定初值,需要的朋友可以参考下
    2023-10-10
  • C/C++ 左移<<, 右移>>的作用及说明

    C/C++ 左移<<, 右移>>的作用及说明

    这篇文章主要介绍了C/C++ 左移<<, 右移>>的作用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 详解设计模式中的中介者模式在C++编程中的运用

    详解设计模式中的中介者模式在C++编程中的运用

    这篇文章主要介绍了设计模式中的中介者模式在C++编程中的运用,中介者模式将对象间的通信封装到一个类中,将多对多的通信转化为一对多的通信,降低了系统的复杂性,需要的朋友可以参考下
    2016-03-03
  • C++中的多态详谈

    C++中的多态详谈

    多态通俗来说就是多种形态,本文通过实例代码给大家介绍C++中的多态定义及实现,通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-05-05
  • MFC对话框自定义消息映射的方法

    MFC对话框自定义消息映射的方法

    这篇文章主要介绍了MFC对话框自定义消息映射的方法,实例分析了MFC自定义消息映射的消息定义、响应、声明及实现消息映射的相关技巧,需要的朋友可以参考下
    2015-07-07
  • C/C++并查集的查询与合并实现原理

    C/C++并查集的查询与合并实现原理

    这篇文章主要介绍了C/C++并查集的查询与合并,并查集是一种用来管理元素分组情况的数据结构。并查集可以高效地进行如下操作
    2023-02-02
  • C语言实现打印数字金字塔

    C语言实现打印数字金字塔

    这篇文章主要介绍了C语言实现打印数字金字塔方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • C语言自定义类型超详细梳理之结构体 枚举 联合体

    C语言自定义类型超详细梳理之结构体 枚举 联合体

    今天我们来学习一下自定义类型,自定义类型包括结构体、枚举、联合体,小编觉得挺不错的,现在就分享给大家,也给大家做个参考
    2022-03-03
  • 对C语言中sizeof细节的三点分析介绍

    对C语言中sizeof细节的三点分析介绍

    以下是对C语言中sizeof的细节进行了详细的分析介绍,需要的朋友可以参考下
    2013-07-07

最新评论