C++实现会员管理程序

时间:2022-12-02 18:22:24

本文实例为大家分享了C++实现会员管理程序的具体代码,供大家参考,具体内容如下

设计快捷店会员的简单管理程序。基本要求如下:

(1)定义人民币RMB类,实现人民币的基本运算和显示。
(2)定义会员member类,表示会员的基本信息,包括:编号(按建立会员的顺序自动生成),姓名,密码,电话。提供输入、输出信息等功能。
(3)由RMB类和member类共同派生一个会员卡memberCar类,提供新建会员、充值、消费和查询余额等功能。
(4)main函数定义一个memberCar类数组或链表,保存会员卡,模拟一个快捷店的会员卡管理功能,主要包括:

① 新建会员;
② 已有会员充值;
③ 已有会员消费(凭密码,不能透支);
④ 输出快捷店当前会员数,营业额(收、支情况)。

代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
#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;
}

运行结果:

C++实现会员管理程序

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_15719613/article/details/105738982