亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++實(shí)現(xiàn)會(huì)員管理程序

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

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

設(shè)計(jì)快捷店會(huì)員的簡單管理程序?;疽笕缦拢?/p>

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

① 新建會(huì)員;
② 已有會(huì)員充值;
③ 已有會(huì)員消費(fèi)(憑密碼,不能透支);
④ 輸出快捷店當(dāng)前會(huì)員數(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;
}

運(yùn)行結(jié)果:

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

相關(guān)文章

  • C++深入學(xué)習(xí)之徹底理清重載函數(shù)匹配

    C++深入學(xué)習(xí)之徹底理清重載函數(shù)匹配

    C++ 不允許變量重名,但是允許多個(gè)函數(shù)取相同的名字,只要參數(shù)表不同即可,這叫作函數(shù)的重載,下面這篇文章主要給大家介紹了關(guān)于C++深入學(xué)習(xí)之徹底理清重載函數(shù)匹配的相關(guān)資料,需要的朋友可以參考下
    2019-01-01
  • C++STL之string類的使用

    C++STL之string類的使用

    這篇文章主要為大家詳細(xì)介紹了C++STL中的string類,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • OpenCV利用霍夫變換進(jìn)行直線檢測

    OpenCV利用霍夫變換進(jìn)行直線檢測

    這篇文章主要為大家詳細(xì)介紹了OpenCV利用霍夫變換進(jìn)行直線檢測,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • C++ 中國象棋的實(shí)現(xiàn)流程詳解

    C++ 中國象棋的實(shí)現(xiàn)流程詳解

    中國象棋是起源于中國的一種棋,屬于二人對抗性游戲的一種,在中國有著悠久的歷史。由于用具簡單,趣味性強(qiáng),成為流行極為廣泛的棋藝活動(dòng)
    2021-11-11
  • 簡單分析針對ARM平臺(tái)的C語言程序的編譯問題

    簡單分析針對ARM平臺(tái)的C語言程序的編譯問題

    這篇文章主要介紹了針對ARM平臺(tái)的C語言程序的編譯問題,從優(yōu)化編譯選項(xiàng)的幾個(gè)方面進(jìn)行分析,需要的朋友可以參考下
    2015-12-12
  • String類的寫時(shí)拷貝實(shí)例

    String類的寫時(shí)拷貝實(shí)例

    下面小編就為大家?guī)硪黄猄tring類的寫時(shí)拷貝實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • C語言Turbo C下實(shí)現(xiàn)俄羅斯方塊

    C語言Turbo C下實(shí)現(xiàn)俄羅斯方塊

    這篇文章主要為大家詳細(xì)介紹了C語言Turbo C下寫的俄羅斯方塊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • 使用C/C++讀寫.mat文件的方法詳解

    使用C/C++讀寫.mat文件的方法詳解

    這篇文章主要為大家詳細(xì)介紹了使用C/C++讀寫.mat文件的方法,使用數(shù)據(jù)庫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C++高級(jí)程序員成長之路

    C++高級(jí)程序員成長之路

    本文主要是結(jié)合自身的經(jīng)驗(yàn),給大家羅列了一些如何成為C++高級(jí)程序員的方法和注意事項(xiàng),分享給大家,希望對新手能夠有所幫助。
    2015-12-12
  • C++初始化列表學(xué)習(xí)

    C++初始化列表學(xué)習(xí)

    在C++中,struct和class的唯一區(qū)別是默認(rèn)的克訪問性不同,而這里我們不考慮訪問性的問題,所以下面的代碼都以struct來演示
    2013-09-09

最新評論