设计一个会员卡计费管理系统。
1、 新会员登记。(将会员个人信息及此会员的会员卡信息进行录入。)
2、 会员信息修改。
3、 会员续费。(会员出示会员卡后,管理人员根据卡号查找到该会员的信息并显示。此时可以进行续费,续费后,提示成功,并显示更新后的信息。)
4、 会员消费结算。(会员出示会员卡后,管理人员根据卡号查找到该会员的信息,结算本次费用。提示成功,并显示更新后的信息。)累计消费满1000元,及自动升级为VIP会员。之后每次消费给予9折优惠。
5、 会员退卡。(收回会员卡,并将余额退还,删除该会员信息。)
6、 会员卡挂失。(为该会员补办新卡,并将旧卡余额转至新卡。)
7、 用菜单进行管理
8、 统计功能。
1) 能够按每个会员的缴费总额进行排序。在排序的最后一行显示所有会员的缴费总额,以及消费总额。
2) 能够按累计消费总额进行排序。在排序的最后一行显示所有会员的缴费总额,以及消费总额。
9、 只有正确输入用户名密码才能使用此系统。
10、 所有内容能够保存到文件中。下次进入系统是从文件中读取原有信息。

解决方案 »

  1.   

    /*============================================================================*/
    /*--------包含引入区----------------------------------------------------------*/#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;                    /* 模拟器标志                          */      
    /*----------------------------------------------------------------------------*/
    /*--------主程序--------------------------------------------------------------*/
    void main()
    {
    int sKey=0; /* 菜单项目 */
    int RUN=1; /* 退出标志 */
    int rMenu=1; /* 菜单刷新标志 */  if(InitSys()) /* 初始化如果失败就结束程序 */
    {
    printf("\n\n初始化失败...\n\n");
    return;   
    }while(RUN)
    {
    if(rMenu) ShowMenu(); /* 根据菜单刷新标志确定显示菜单与否 */rMenu=1;
      sKey=getch(); /* 取得按键 */if(sKey>='2'&&sKey<='8'&&First==NULL)  
    {
    system("cls");
    printf("\n\n\n 目前还没有注册任何会员.");
    printf("\n\n\n 按任意键返回.");
    getch();
    continue;
    }switch(sKey) /* 根据按键执行相应程序 */
    {
    case '1': NewReg(); break;
    case '2': Modify(); break;
    case '3': MoreMoney(); break;
    case '4': Loss(); break;
    case '5': Quit(); break;
    case '6': Consume(); break;
    case '7': Statistics(0); break;
    case '8': Statistics(1); break;
    case '9': SetPass(); break;
    case '0': Simulator^=1; break;
    case 27 : RUN=0; break;
    default : rMenu=0; break;
    }
    }
    SafeClose(); /* 程序结束前要释放内存 */
    }
    要到了一个 代码 但运行不了 哪 位 牛牛 帮忙修改下啊 或 发自己代码  急