Skip to content

Commit

Permalink
结构性调整,把结构体定义移到专门的文件
Browse files Browse the repository at this point in the history
  • Loading branch information
zhangshifen38 committed Mar 13, 2021
1 parent 17d9f80 commit 4a2a251
Show file tree
Hide file tree
Showing 9 changed files with 204 additions and 53 deletions.
47 changes: 47 additions & 0 deletions data.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#ifndef DATA_H
#define DATA_H

#define MAX 200

typedef struct User{
int adm; //用户标识符
char name[MAX]; //用户名
char pwd[17]; //密码
}USER;
//用户结构体

typedef struct User_Node{
USER user; //用户结构体主体
struct User_Node *node //结构体指针
}USER_N;

typedef struct Goods{
int type; //商品代码
char name[MAX]; //商品名称
int num; //商品进货数量
double price; //商品价格
int time; //进货时间
int sold; //商品销量
}GOO;
//商品结构体

typedef struct Goods_Node{
GOO goods; //商品结构体主体
struct Goods_Node *node; //结构体指针
}GOO_N;
//商品链表结点结构体

typedef struct Customer{
char name[MAX]; //顾客姓名
int star; //顾客星级
double cost; //消费额
}CUS;
//顾客信息结构体

typedef struct Customer_Node{
CUS customer; //顾客结构体主体
struct Customer_Node *node;//结构体指针
}CUS_N;
//顾客信息链表结点结构体

#endif
63 changes: 63 additions & 0 deletions login.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#include "login.h"

//登录模块
int login()
{
int adm;

FILE *user;
if(user=fopen(".//users.txt","r")==NULL)
{
printf("未检测到用户数据!");
if(user=fopen(".//users.txt","w")==NULL)
{
printf("创建用户数据失败,请检查!\n");
}
else
{
printf("已自动为您初始化用户数据!\n");
}
}
else
{
char ch=getc(user);
USER new;
if(ch==EOF)
{
puts("未检测到已有用户,自动为您创建管理员账户!");
puts("请设置您的用户名:");
gets(new.name);
puts("请设置您的密码:(不超过16个字符)");
int i=0; //计数变量
do
{
new.pwd[i]=getch();
if(new.pwd[i]=='\b')
{
if(i==0)
{
continue;
}
i=i-1;
printf("\b");
}
else
{
printf("*");
}
}while(new.pwd[i++]!='\r' && new.pwd[i]!='\n' && i<16); //为什么在windows的cmd下回车符是\r啊T_T
fclose(user);
user=fopen(".//users.txt","w");
fprintf(user,"1 %s %s\n",new.name,new.pwd);
fclose(user);
}
else
{
;
}
}

putchar('\n');
adm=1;
return adm;
}
11 changes: 11 additions & 0 deletions login.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#ifndef LOGIN_H
#define LOGIN_H

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include "data.h"

int login(); //怬

#endif
Binary file added login.o
Binary file not shown.
60 changes: 18 additions & 42 deletions main.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,55 +2,31 @@
#include <stdlib.h>
#include <string.h>
#include "ui.h"
#include "login.h"
#include "data.h"

#define MAX 200

typedef struct Goods{
int type; //商品代码
char name[MAX]; //商品名称
int num; //商品进货数量
double price; //商品价格
int time; //进货时间
int sold; //商品销量
}GOO;
//商品结构体

typedef struct Goods_Node{
GOO goods; //商品结构体主体
struct Goods_Node *node; //结构体指针
}GOO_N;
//商品链表结点结构体

typedef struct Customer{
char name[MAX]; //顾客姓名
int star; //顾客星级
double cost; //消费额
}CUS;
//顾客信息结构体

typedef struct Customer_Node{
CUS customer; //顾客结构体主体
struct Customer_Node *node;//结构体指针
}CUS_N;
//顾客信息链表结点结构体

int main(void) {

int adm=login(); //登录

FILE *user;
if(user=fopen(".//users.txt","r")==NULL) //打开用户信息配置文件
printf("初始化错误,请检查!");
else
int cho=1;
while(cho) //用户输入0的时候退出程序
{
int adm=login(); //登录

int cho=1;
while(cho) //用户输入0的时候退出程序
{
title();
if(adm) admin(); //管理员特殊操作菜单
title();
if(adm) admin(); //管理员特殊操作菜单

cho=menu(); //打开操作菜单

cho=menu(); //打开操作菜单

switch(cho)
{
case 11:goods_in();break;
case 12:add_cus();break;
case 13:data();break;
case 1:sell();break;
case 2:help();break;
default:break;
}
}
return 0;
Expand Down
Binary file modified main.o
Binary file not shown.
66 changes: 59 additions & 7 deletions ui.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#include <string.h>
#include "ui.h"

//程序的标题
void title(void)
{
puts("********************************");
Expand All @@ -12,15 +13,18 @@ void title(void)
putchar('\n');
}

//管理员菜单
void admin(void)
{
puts("********************************");
puts("* 管理员操作菜单 *");
puts("* 11) 录入进货单 *");
puts("* 12) 星级客户管理 *");
puts("* 13) 数据管理 *");
//没有最后一行,是故意为之
}

//通用菜单
int menu(void)
{
puts("********************************");
Expand All @@ -35,13 +39,61 @@ int menu(void)
return cus;
}

int login(void) //还没写完
{
int p;
p=1;
return p;
//商品录入
void goods_in(void){
puts("********************************");
puts("* *");
puts("* 进货单录入模式 *");
puts("* *");
puts("********************************");
putchar('\n');
//这里还会有一个获取时间函数
//这里接上黄志写的模块
}

void goods_in(void){

//星级客户
void add_cus(void)
{
puts("********************************");
puts("* *");
puts("* 星级客户管理后台 *");
puts("* *");
puts("********************************");
putchar('\n');
//这里接上张开严写的模块
}

//数据管理
void data(void)
{
puts("********************************");
puts("* *");
puts("* 数据管理后台 *");
puts("* *");
puts("********************************");
putchar('\n');
//这里还会接上其他东西
}

//售货模式
void sell(void)
{
puts("********************************");
puts("* *");
puts("* 欢迎光临本超市! *");
puts("* *");
puts("********************************");
putchar('\n');
//待完善
}

//帮助文档
void help(void)
{
puts("********************************");
puts("* *");
puts("* 帮助 *");
puts("* *");
puts("********************************");
putchar('\n');
}
10 changes: 6 additions & 4 deletions ui.h
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
#ifndef UI_H
#define UI_H

int login(void); //되쩌

void title(void); //标题

void admin(void); //管理员菜单
Expand All @@ -11,9 +9,13 @@

void goods_in(void); //读入商品

void add_cus(void); //
void add_cus(void); //客户管理

void data(void); //数据管理

void sell(void); //售卖模式

void sell(void); //
void help(void); //帮助文档


#endif
Binary file modified ui.o
Binary file not shown.

0 comments on commit 4a2a251

Please sign in to comment.