C++ 面向对象—类继承(酒店会员管理系统)
2017-05-30 14:03
501 查看
#include<iostream> #include<string> #include<vector> using namespace std; class RMB { friend ostream &operator<<(ostream &output, RMB &m); public: RMB(double m=0) { this->money = m; } double Add(double m) { return this->money + m; } double Reduce(double m) { return this->money - m; } void Print() { cout << money << "元" << endl; cout <<"人民币:"<< *this << endl; // 人民币大写输出 } protected: int yuan; int jiao; int fen; double money; }; ostream &operator<<(ostream &output, RMB &m) { int t = int(m.money * 100); m.yuan = t / 100; m.jiao = (t % 100) / 10; m.fen = t % 10; output << m.yuan << "元" << m.jiao << "角" << m.fen << "分" << endl; return output; } class Member { public: Member(int number1=0,string name1=" ", string tel1=" ", string code1 = "000000") { this->number = number1; this->name = name1; this->code = code1; this->tel = tel1; } void Input() { string name; string code; string tel; cout << "请输入姓名:"; cin >> name; this->name = name; cout << "请设置密码:"; cin >> code; this->code = code; cout << "请输入电话:"; cin >> tel; this->tel = tel; } void PrintInfo() { cout << "会员:" << this->number << "信息如下:" << endl; cout << "编号:" << this->number << endl; cout << "姓名:" << this->name << endl; cout << "电话:" << this->tel<<endl; } protected: int number; string name; string code; string tel; }; class MemberCar :public RMB, public Member { static int num; //静态变量记录会员编号 public: MemberCar(double m=0, int number1 = 0,string name1=" ", string tel1=" ", string code1 = "000000") :RMB(m), Member(number1,name1,code1,tel1) { num++; Input(); this->number = num; this->flag = true; cout << "新会员创建成功!编号为:" << num << endl; } void ChongZhi() { double m; cout << "请输入充值金额:"; cin >> m; this->money = this->Add(m); cout << "会员充值成功!金额为:" << m << endl; } void XiaoFei() { double m; cout << "请输入消费金额:"; cin >> m; string mima; cout << "请输入密码:"; cin >> mima; for (int i = 0; i<3; i++) //限制密码输入错误3次 { if (this->code == mima && this->money >= m && this->flag == true) { this->money = this->Reduce(m); cout << "本次消费:" << m << endl; cout << "账户余额:" << this->money << endl; break; } else if (this->code == mima && this->money<m && this->flag == true) { cout << "余额不足,请充值!" << endl; break; } else { if (i == 2) { cout << "密码错误次数超过限制,账户已锁定,请联系管理人员修改密码!" << endl; this->flag = false; break; } else { cout << "密码输入错误,请重新输入:"; cin >> mima; continue; } } } } void ChaXun() { this->Member::PrintInfo(); cout << "会员余额:"; this->RMB::Print(); } void ChangeCode() { cout << "请输入新密码:"; string mima1; cin >> mima1; cout << "请再次输入新密码:"; string mima2; cin >> mima2; if (mima1 == mima2) { this->code = mima1; this->flag = true; cout << "密码修改成功!" << endl; } else { cout << "两次密码输入不一致!" << endl; } } static int GetNum() { return MemberCar::num; } private: bool flag; // 会员账户是否处于错定状态标识 }; int MemberCar::num = 0; int main() { cout << "欢迎使用会员卡管理系统!" << endl; cout << "1.会员创建\t 2.会员充值\t 3.会员消费\t 4.会员查询\t 5.密码重置\t 6.查询会员总数" << endl; int choice; char stop = ' '; int number; int num = 0; vector<MemberCar>v; // 存放会员 do { cout << "请输入操作选项:"; cin >> choice; switch(choice) { case 1: { MemberCar vip;//会员创建 v.push_back(vip); num++; break; } case 2: { cout << "请输入会员编号:";//会员充值 cin >> number; if (number <= num) { v[number - 1].ChongZhi(); break; } else { cout << "此会员未创建,请重新重新输入!"<<endl; continue; } } case 3: { cout << "请输入会员编号:";//会员消费 cin >> number; if (number <= num) { v[number - 1].XiaoFei(); break; } else { cout << "此会员未创建,请重新重新输入!" << endl; continue; } } case 4: { cout << "请输入会员编号:";//会员查询 cin >> number; if (number <= num) { v[number - 1].ChaXun(); break; } else { cout << "此会员未创建,请重新重新输入!" << endl; continue; } } case 5: { cout << "请输入会员编号:";//密码修改 cin >> number; if (number <= num) { v[number - 1].ChangeCode(); break; } else { cout << "此会员未创建,请重新重新输入!" << endl; continue; } } case 6: { cout << "会员总数:" << MemberCar::GetNum() << endl; } } cout << "是否继续?(Y||N):"; cin >> stop; } while (stop == 'Y' || stop == 'y'); // 交互式操作 return 0; }
相关文章推荐
- 【Java EE 学习 56】【酒店会员管理系统技术点总结】
- 【Java EE 学习 55】【酒店会员管理系统项目总结】
- 【Java EE 学习 57】【酒店会员管理系统之分页模板书写】
- [C++] - 面向对象-图书管理系统
- C++面向对象,泛型编程 文件流综合应用-公司员工管理系统
- c++简单的学生管理系统----继承练习
- 用C++写的学生成绩管理系统(比较简单的没有使用链表,只是用到了类和对象)
- 简易学生成绩管理系统(c++)
- 简易学生信息管理系统(c++源代码)
- 多层结构会员管理系统源码
- 会员管理系统中会员类的实现(选择自 tigerlgf 的 Blog )
- 学生课程选修--图书管理系统(C++版)第一部分
- 酒店管理系统web版/Java酒店管理系统
- 商店进存销管理系统C++
- c++程序学生系统管理
- 学生成绩管理系统c++
- 基于面向对象的权限管理系统设计与实现[1]
- C++学生成绩管理系统
- IT管理系统:让酒店更便宜
- 急求VB+数据库编写的酒店管理系统!!!