大学初期网上购书系统:多文件编程实现会员与贵宾功能
3星 · 超过75%的资源 需积分: 10 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++中的类设计和面向对象编程的核心概念。
点击了解资源详情
点击了解资源详情
1061 浏览量
2009-06-06 上传
点击了解资源详情
点击了解资源详情
2025-01-09 上传
2025-01-09 上传
2025-01-09 上传
一行一步
- 粉丝: 16
- 资源: 6
最新资源
- 基于 S7-300,400 CPU 集成 PN 接口 Modbus TCP 通讯快速入门(更新版本V2.6).zip
- MongoDBNotes:此存储库包含Web开发人员和数据库爱好者以及我的MongoDB NoSQL数据库初学者的注释。 此仓库涉及MongoDB大学M001课程
- OpenPMS-开源
- 杰奇1.7解密.zip_adclick.php_奇杰_杰奇_杰奇1.7解密_杰奇解密
- 单片机收银机C52(加减乘除,小数点运算,撤销,报警功能)
- 求职者
- my-portfolio:我的投资组合
- MyMaps-开源
- corenlp-java-server:斯坦福CoreNLP解析器的简单Java REST API包装器
- UU Point(优优知识库) v1.0.3
- speaking-grandma-prework
- pg_auto_failover:Postgres扩展和服务,用于自动故障转移和高可用性
- GPUCloth:使用CUDA对Blender 2.93.x进行布料模拟
- layaair2-SG:layabox2.0.2 的完整游戏项目,可以用来学习!主要是场景中的GPU内存管理,DEMO
- Md5Checker v3.3 官方中文版
- cjosn解析函数库.7z