C++實(shí)現(xiàn)會(huì)員管理程序
本文實(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++ 不允許變量重名,但是允許多個(gè)函數(shù)取相同的名字,只要參數(shù)表不同即可,這叫作函數(shù)的重載,下面這篇文章主要給大家介紹了關(guān)于C++深入學(xué)習(xí)之徹底理清重載函數(shù)匹配的相關(guān)資料,需要的朋友可以參考下2019-01-01