最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++實現(xiàn)會員管理程序

 更新時間:2020年07月23日 11:48:39   作者:TwcatL_tree  
這篇文章主要為大家詳細介紹了C++實現(xiàn)會員管理程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C++實現(xiàn)會員管理程序的具體代碼,供大家參考,具體內(nèi)容如下

設計快捷店會員的簡單管理程序。基本要求如下:

(1)定義人民幣RMB類,實現(xiàn)人民幣的基本運算和顯示。
(2)定義會員member類,表示會員的基本信息,包括:編號(按建立會員的順序自動生成),姓名,密碼,電話。提供輸入、輸出信息等功能。
(3)由RMB類和member類共同派生一個會員卡memberCar類,提供新建會員、充值、消費和查詢余額等功能。
(4)main函數(shù)定義一個memberCar類數(shù)組或鏈表,保存會員卡,模擬一個快捷店的會員卡管理功能,主要包括:

① 新建會員;
② 已有會員充值;
③ 已有會員消費(憑密碼,不能透支);
④ 輸出快捷店當前會員數(shù),營業(yè)額(收、支情況)。

代碼:

#include<iostream>
#include<String.h>
using namespace std;
class RMB{
  int yuan,jiao,fen;
public:
  RMB(int y=0,int j=0,int f=0){
    yuan=y;
    jiao=j;
    fen=f;
  }
  RMB(double x)
  {
     int n = int((x + 0.005) * 100);
     yuan = n / 100;
     jiao = (n - yuan * 100) / 10;
     fen = n % 10;
  }
  operator double()
  {
     return (yuan + jiao * 0.1 + fen * 0.01);
  }
  ~RMB() {}
   friend ostream & operator<<(ostream&output, const RMB&m){
    output << m.yuan << "元" << m.jiao << "角" << m.fen << "分" << endl;
    return output;
   }
  friend istream & operator>>(istream&input, RMB&m){
     cout << "元:";
     input >> m.yuan;
     cout << "角:";
     input >> m.jiao;
     cout << "分:";
     input >> m.fen;
     return input;
  }
};
class member{
public:
  static int number;
  char name[20],code[10], phoneNumber[12];
  static int bianhao() { number++; return number; }
  member(char*a,char*c,char*p){
  strcpy(name,a);
  strcpy(code,c);
  strcpy(phoneNumber,p);
  }
  ~member() {}
   friend istream&operator>>(istream&input, member&A)
  {
     cout << "please input name: " << endl;
     input >> A.name;
     cout << "please input code: " << endl;
     input >> A.code;
     cout << "please input phone number : " << endl;
     input >> A.phoneNumber;
     return input;
  }
  friend ostream&operator<<(ostream&output, member&A)
  {
    output << "the information of member:" << endl;
    output << "number" << '\t' << "name" << '\t' << "phone" << endl;
    output << A.bianhao() << '\t' << A.name << '\t' << A.phoneNumber << endl;
    return output;
  }
};
int member::number=0;
class memberCar:public RMB,public member{
public:
   RMB income, outcome, balance;
   memberCar*next;
   memberCar(char*a, char*c, char*p):member(a,c,p){
    balance = 0;
    income = 0;
    outcome = 0;
   }
  ~memberCar() {}
  friend ostream&operator<<(ostream&output, const memberCar&A)
{
  output << "the information of member:" << endl;
  output << "number" << '\t' << "name" << '\t' << "phone" << '\t' << '\t' << "balance" << endl;
  output << A.bianhao() << '\t' << A.name << '\t' << A.phoneNumber << '\t' << A.balance << endl;
  return output;
}
void recharge()
  {
     cout << "How much do you want to recharge?" << '\n' << "please input the money : " << endl;
     cin >> income;
     balance =balance + income;
     cout << "your balance : " << balance << endl;
  }
void cost()
  {
     char y[10];
     cout << "please input your code : " << endl;
     cin >> y;
     if (strncmp(code, y, 10)==0)
     {
       cout << "please input the money you cost : " << endl;
       cin >> outcome;
       if (outcome > balance)
       {
         cout << "your balance is not enough ! " << endl;
       }
       else
       {
         balance = balance - outcome;
         cout << "your balance : "<< balance;
       }
     }
     else
     {
       cout << "your code is wrong ! " << endl;
     }
  }
  void query(){ cout << "your balance : " << balance; }
};
void AddFront(memberCar*&h, memberCar*&t)
{
  t->next = h;
  h = t;
}
void FindList(memberCar*head, int n = 2)
{
  char s[20];
  cout << "please input your name : " << endl;
  cin >> s;
  while (head)
  {
     if (strncmp(head->name, s, 20) == 0)      {
     switch (n)
       {
       case 2:
         (*head).recharge();
         break;
       case 3:
         (*head).cost();
         break;
       }
     }
     head = head->next;
  }
}
void ShowList(memberCar*head)
{
  int count = 0;
  RMB I=0, O=0;
  while (head)
  {
     count++;
     I=I+head->income;
     O = O + head->outcome;
     head = head->next;
  }
  cout << "the number of member :  " << count << endl;
  cout << "the income of the store : " << I << endl;
  cout << "the outcome of the store : " << O << endl;
  cout << "turn-over of the store :  " << (I - O) << endl;
}

int main()
{
  int choice;
  memberCar*head = NULL, *p;
  do
  {
     cout << "please choice:\n";
     cout << "1 : new member, 2 : recharge, 3 : purchase , 4 :output the number of member and turn-over,other number is over! " << endl;
     cin >> choice;
     switch (choice)
     {
     case 1:
    {
        cout << "input information of new member : " << endl;
        char a[20],c[10],h[12];
        cout << "please input name: " << endl;
        cin>>a;
        cout << "please input code: " << endl;
        cin>>c;
        cout << "please input phone number : " << endl;
        cin>>h;
       p = new memberCar(a, c, h);
       AddFront(head, p);
       cout << *p << endl;
       break;
     }
     case 2:
     {
       FindList(head, 2);
       break;
     }
     case 3:
     {
       FindList(head, 3);
       break;
     }
     case 4:
     {
       ShowList(head);
       break;
     }
     }
  } while (choice);
  return 0;
}

運行結(jié)果:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • C語言實現(xiàn)通訊管理系統(tǒng)設計

    C語言實現(xiàn)通訊管理系統(tǒng)設計

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)通訊管理系統(tǒng)設計,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C語言詳細講解多維數(shù)組與多維指針

    C語言詳細講解多維數(shù)組與多維指針

    C 語言中的多維數(shù)組(multidimensional array)其實就是元素為數(shù)組的數(shù)組。多維指針根據(jù)聲明的維數(shù)需要進行多次地址轉(zhuǎn)換才能夠取到目標數(shù)據(jù)。但指針作為數(shù)據(jù)變量,可以多次賦值,使其成為對數(shù)組操作訪問的一大利器,所以指針和數(shù)組的結(jié)合才是重中之重
    2022-04-04
  • 淺析C++中strlen函數(shù)的使用與模擬實現(xiàn)strlen的方法

    淺析C++中strlen函數(shù)的使用與模擬實現(xiàn)strlen的方法

    這篇文章主要介紹了strlen函數(shù)的使用與模擬實現(xiàn)strlen的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • C語言中基礎小問題詳細介紹

    C語言中基礎小問題詳細介紹

    這篇文章詳細介紹了C語言中基礎小問題,有需要的朋友可以參考一下
    2013-10-10
  • QT+Quick實現(xiàn)自定義組件的示例詳解

    QT+Quick實現(xiàn)自定義組件的示例詳解

    這篇文章主要為大家詳細介紹了如何利用QT+Quick實現(xiàn)自定義組件(按鈕、下拉菜單等),文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-11-11
  • C++ Qt開發(fā)之LineEdit單行輸入組件的用法詳解

    C++ Qt開發(fā)之LineEdit單行輸入組件的用法詳解

    Qt 是一個跨平臺C++圖形界面開發(fā)庫,利用Qt可以快速開發(fā)跨平臺窗體應用程序,在Qt中我們可以通過拖拽的方式將不同組件放到指定的位置,實現(xiàn)圖形化開發(fā)極大的方便了開發(fā)效率,本章將重點介紹LineEdit單行輸入框組件的常用方法及靈活運用
    2023-12-12
  • C++實現(xiàn)leetcode(3.最長無重復字符的子串)

    C++實現(xiàn)leetcode(3.最長無重復字符的子串)

    這篇文章主要介紹了C++實現(xiàn)leetcode(3.最長無重復字符的子串),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • c++中處理相關數(shù)學函數(shù)

    c++中處理相關數(shù)學函數(shù)

    數(shù)學庫函數(shù)聲明在 math.h 中,主要有:
    2013-04-04
  • 詳解C++ Qt中堆疊窗體的使用案例

    詳解C++ Qt中堆疊窗體的使用案例

    這篇文章主要為大家詳細介紹了C++ Qt中堆疊窗體的使用案例,文中的示例代碼講解詳細,對我們學習QT有一定的幫助,感興趣的小伙伴可以了解一下
    2023-08-08
  • C++實現(xiàn)LeetCode(186.翻轉(zhuǎn)字符串中的單詞之二)

    C++實現(xiàn)LeetCode(186.翻轉(zhuǎn)字符串中的單詞之二)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(186.翻轉(zhuǎn)字符串中的單詞之二),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評論

宜州市| 旌德县| 射洪县| 海盐县| 沙洋县| 黄石市| 博客| 南部县| 天镇县| 崇义县| 金昌市| 临湘市| 乌拉特前旗| 迁安市| 上饶县| 乡城县| 堆龙德庆县| 丁青县| 栾川县| 阿城市| 河东区| 长武县| 柯坪县| 丹东市| 乌鲁木齐县| 浮山县| 定结县| 扶沟县| 涿州市| 贡嘎县| 瑞昌市| 河北区| 三亚市| 东乌珠穆沁旗| 息烽县| 邛崃市| 德安县| 凉山| 蒙山县| 竹山县| 呼图壁县|