大学初期网上购书系统:多文件编程实现会员与贵宾功能

3星 · 超过75%的资源 需积分: 10 18 下载量 104 浏览量 更新于2024-09-11 1 收藏 47KB DOC 举报
本资源是一份大学初期的网上购书系统的代码实现,主要使用C++语言编写,涉及面向对象编程的多个类设计。该系统包括四个主要的类:`buyer`(购书人基类)、`member`(会员类)、`honoured_guest`(贵宾类)和`layfolk`(普通用户类)。这些类的设计展示了继承、封装和多态的概念。 1. **buyer基类**: - `buyer`类是所有购书人的基础,包含姓名(name)、购买者ID(buyerID)、地址(address)和支付金额(pay)等属性。 - 类中定义了构造函数buyer()和buyer(string n, int b, string a, double p),用于初始化这些属性。 - getpay()和getaddress()方法用于获取购书人的支付金额和地址,体现数据封装。 2. **子类设计**: - `member`类继承自`buyer`,额外添加了一个成员变量`leaguer_grade`表示会员等级。构造函数接受除支付金额外的所有参数,并在构造时设置会员等级为1。 - `honoured_guest`类继承自`buyer`,增加了一个`discount_rate`属性,表示折扣率。构造函数接收与`buyer`相同的数据,并在创建时设定折扣率。 3. **其他类**: - `layfolk`类也继承自`buyer`,没有额外的属性,仅用于表示普通用户,构造函数接收与`buyer`相同的参数。 - 所有这些类都重写了`buyer`中的虚函数`display()`和`setpay(double p)`,确保每个子类都有自己的显示和设置支付金额的方法,体现了多态性。 4. **方法实现**: - 子类的display()方法可能分别用于展示购书人的详细信息,如姓名、地址、等级或折扣率,具体实现取决于子类如何处理这些信息。 - setpay(double p)方法用于更新支付金额,同样在子类中可能根据需要提供不同的行为,如检查支付是否合法或应用会员折扣。 通过这份代码,我们可以学习到面向对象编程中如何设计类和继承结构来实现功能模块化,以及如何通过虚函数实现代码的复用和扩展。同时,它展示了如何处理用户的不同类型,通过子类化的手段为不同用户提供个性化的服务。这有助于理解和实践C++中的类设计和面向对象编程的核心概念。
2025-01-09 上传