C语言实现餐饮管理系统

这篇文章主要为大家详细介绍了C语言实现餐饮管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C语言实现餐饮管理系统的具体代码,供大家参考,具体内容如下

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <windows.h>
#define N sizeof(user) 
#define M sizeof(table) 
#define T sizeof(order) 
#define S sizeof(menu) 
 
typedef struct User{
    char username[12];//账号 
    char password[18];//密码
    int vip;//1为会员  0不是
    int adm;//administrator同上
    //或将以上的采用数据域的方式存储 
    struct User* next; 
}user; //注意初始化 ,可以写一个初始化函数  借鉴7月9号的笔记中的“初始化” 
 
 
typedef struct Menu{
    int num;//1~10为热菜  11~20为冷菜  21~25为饮料 
    char name[20];
    int price;
    struct Menu* next; 
}menu;
 
 
typedef struct Table{
    int number;
    int is_blank;
    int peoplenum;
    struct Order* ordert;//接该桌的订单的头结点 
    int price;//该桌的总价 
    struct Table* next; 
}table; 
 
 
typedef struct Order{
    int number;//菜的编号
    char name[20];
    int copies;//菜的份数
    int price;
    int xiaoji;
    struct Order* next; 
}order;
 
 
//以下为自定义函数
void welcome();
int ORDER(order* head);//点菜函数 
//void reg();//注册函数 
void login();
void logon();
void show();//显示菜单函数 
void client();//客户函数 
void look_amend();//查看修改函数 
void add();//加菜函数 
void cancel();//取消菜函数 
int priceall();//计算总价函数 
void getpassword(char password[18],char againpassword[18]);
int is_password_same(char password[18],char againpassword[18]);
void save_user(user* p);
menu* ffmenuhot();
menu* ffmenucold();
menu* ffmenudrink();
table* fftable();
void resave_table(table* head);
 
 
 
table* fftable()
{
    FILE *fp1;       //文件指针 
    int n = 0;
    table* head = NULL;
    table* q;
    table* p;
    //system("md E:\\canyin\\table");
    fp1 = fopen("E:\\canyin\\table\\table.txt","a+");     //以只读的方式打开文件 
    if(fp1 == NULL)
    {
        printf("文件打开失败\n");
        //getchar();
        //exit(0);
    }
    else
    {
        while(!feof(fp1))        //判断文件位置标志是否移动到文件末尾 
        {
            n ++;
               p = (table*)malloc(sizeof(table)); //向内存申请一段空间 
            //fread(p, N, 1, fp1);     //将fp所指向的文件中的内容赋给p
            fscanf(fp1,"%d %d %d %d %d", &p->number , &p->is_blank , &p->peoplenum , &p->price , &p->ordert ); 
            if(n == 1)
            {
                  head = p;
                  q = p;
            }
            else             //创建链表 
            {
                q->next = p;
                q = p;
            }
        }
        q->next = NULL;
    }
    fclose(fp1);    //关闭文件 
    return head;   //返回头指针 
}
 
 
 
void resave_table(table* head)
{
    table* p;
    p = head;
    //system("md E:\\canyin\\table");
    FILE *file;       //文件指针 
    file = fopen("E:\\canyin\\table\\table.txt","wb+");    //以追加的方式打开文件 
    if(file == NULL)
    {
        printf("文件打开失败\n");
    }
    ///if(fwrite(p, N, 1, fp)!=1)    //将p所指向的1个大小为N的数据结构写入fp所指向的文件中 
    //{
        //printf("文件写入失败\n");
    while(p->next != NULL)
    {
        fprintf( file ,"%d %d %d %d %d \n", p->number, p->is_blank , p->peoplenum , p->price , p->ordert);
        p=p->next;
    }
    /

本文标题为:C语言实现餐饮管理系统

基础教程推荐