69,382
社区成员
发帖
与我相关
我的任务
分享
/*============================================================================*/
/*--------包含引入区----------------------------------------------------------*/
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "conio.h"
/*----------------------------------------------------------------------------*/
/*--------预定义区------------------------------------------------------------*/
typedef struct tagFILETYPE /* 自定义的数据库文件格式 */
{
char Flag[4]; /* 标志,我的是"QDB\0" */
long rCount; /* 总记录数 */
long rLen; /* 每个记录长度 */
char fPass; /* 密码标志,1表示有密码 */
char Pass[8]; /* 密码 */
char rev1; /* 保留字节,恒为零,作密码结尾 */
char rev[106]; /* 保留字节,作为以后扩展用 */
}FILETYPE;
typedef struct tagCONTACTS /* 会员结构,个人信息请从身份证号解析 */
{
char ID[18]; /* 身份证号码 */
char rev1; /* 保留字节,恒为零,作身份证号码的结尾 */
char Card[10]; /* 会员卡号 */
char rev2; /* 保留字节,恒为零,作会员卡号码的结尾 */
char Pass[8]; /* 会员卡号 */
char rev3; /* 保留字节,恒为零,作会员卡号码的结尾 */
char Name[10]; /* 姓名 */
char rev4; /* 保留字节,恒为零,作姓名的结尾 */
char Tel_Mobile[11]; /* 手机号码 */
char rev5; /* 保留字节,恒为零,作手机号码的结尾 */
float Money; /* 帐户余额 */
float Result; /* 消费累计 */
char Level; /* 会员等级,1以上表示VIP */
}CONTACTS;
typedef struct tagRECORD /* 数据记录双链表 */
{
CONTACTS *Data; /* 当前数据管家 */
struct tagRECORD *prev; /* 上一数据记录 */
struct tagRECORD *next; /* 下一数据记录 */
}RECORD;
/*----------------------------------------------------------------------------*/
/*--------自定义函数声明区----------------------------------------------------*/
void AddRecord(CONTACTS *nCon); /* 添加记录 */
void DelRecord(RECORD *nCon); /* 删除记录 */
RECORD * FindFromCard(char *Card); /* 根据卡号查找,其他查找自己做 */
RECORD * FindFromID(char *ID); /* 根据身份证查找,其他查找自己做 */
int LoadData(char *FileName); /* 从文件读取数据 */
int SaveData(char *FileName); /* 保存数据到文件 */
void SafeClose(); /* 结束前清理 */
int InitSys(); /* 初始化系统 */
void ShowMenu(); /* 显示菜单界面 */
void NewReg(); /* 会员登记 */
void Modify(); /* 会员修改 */
void MoreMoney(); /* 会员续费 */
void Loss(); /* 会员挂失 */
void Quit(); /* 会员退会 */
void Statistics(int m); /* 消费统计 */
void Consume(); /* 消费结帐 */
void ShowInfo(RECORD *rec); /* 显示单个记录信息 */
int SelectYN(char *Info); /* Yes/No选择 */
int GetStr(char *p,int len,int pFlag);/* 输入字串,pFlag=1时*号显示 */
float GetNum(); /* 输入浮点数 */
void Sort(int n); /* 排序,只给最简单的选择排序 */
void SetPass(); /* 设置系统密码 */
int WriteCard(char *code,char *pass); /*写卡 */
int ReadCard(char *code,char *pass); /*读卡 */
/*----------------------------------------------------------------------------*/
/*--------全局变量定义区------------------------------------------------------*/
RECORD *First=NULL; /* 创建记录首指针 */
RECORD *Tail =NULL; /* 创建记录尾指针 */
FILETYPE fHead; /* 数据库文件头 */
char fName[100]; /* 数据库文件名 */
int Simulator; /* 模拟器标志 */