C++编程:查找图书定价最高和最低
5星 · 超过95%的资源 需积分: 18 40 浏览量
更新于2024-09-13
收藏 46KB DOC 举报
本题要求根据给定的C++代码片段,编写一个程序来实现两个功能:首先,创建一个包含书籍信息的结构体数组,包括书名和定价,然后找到其中定价最高和最低的书籍,并输出它们的名称和定价。同时,我们还将回顾如何定义和操作类,如学生类和时间类。
首先,让我们关注第一个部分,关于学生类的实现。在这个示例中,有一个`Student`类,它具有三个私有成员变量:学号(`int number`)、姓名(`char name[20]`)和年龄(`int age`)。公共成员函数包括:
1. `set` 函数:用于设置学生的属性,接受学号、姓名字符串和年龄作为参数。
2. `output` 函数:用于打印学生的信息,即学号、姓名和年龄。
在`main`函数中,实例化了一个`Student`对象`s1`,通过`set`函数为其设置属性,并调用`output`函数展示信息。第二个示例展示了如何在一个更抽象的接口下(`Set`和`Print`方法)实现相同的功能,这在多文件编程中可能更有组织性。
接着,第二个部分是关于`Time`类的定义。`Time`类用于表示和操作时间,包含三个私有成员变量:小时(`int hour`)、分钟(`int minute`)和秒(`int second`)。类提供了两个方法:
1. `set` 函数:用于设置时间的小时、分钟和秒。
2. `output` 函数:用于打印当前设定的时间,格式为“小时:分钟:秒”。
在`main`函数中,创建了一个`Time`对象`a`,设置了时间,然后调用`output`函数显示结果。
为了实现题目要求的功能,你需要将这两个类的应用与书籍结构体结合。一个可能的步骤是:
1. 定义一个名为`Book`的结构体,包含书名(`string title`)和定价(`double price`)。
2. 创建一个动态大小的`Book`结构体数组,用于存储输入的五本书信息。
3. 编写一个主函数,提示用户输入五本书的名称和定价,然后添加到数组中。
4. 遍历数组,使用排序算法找到价格最高和最低的书籍,分别记录其索引和价格。
5. 输出最高和最低价格的书籍标题。
以下是一个简化的示例代码,展示了如何实现这些步骤:
```cpp
#include <iostream>
#include <string>
#include <algorithm>
// 定义书籍结构体
struct Book {
std::string title;
double price;
};
// 帮助函数,用于比较书籍价格
bool compare_price(const Book& a, const Book& b) {
return a.price > b.price;
}
int main() {
int numBooks = 5;
Book books[numBooks];
// 用户输入书籍信息
for (int i = 0; i < numBooks; ++i) {
std::cout << "请输入第" << (i + 1) << "本书的名称:";
std::cin >> books[i].title;
std::cout << "请输入第" << (i + 1) << "本书的定价:";
std::cin >> books[i].price;
}
// 对书籍按照价格排序
std::sort(books, books + numBooks, compare_price);
// 找到最高和最低价格的书籍
std::cout << "定价最高的书名:" << books[0].title << ", 价格:" << books[0].price << std::endl;
std::cout << "定价最低的书名:" << books[numBooks - 1].title << ", 价格:" << books[numBooks - 1].price << std::endl;
return 0;
}
```
这个示例代码实现了题目所要求的功能,即输入书籍信息,排序并输出定价最高和最低的书籍信息。注意,这里使用了`std::sort`函数对书籍数组进行排序,如果需要自己实现排序算法,可以替换`compare_price`函数。
2012-05-14 上传
2015-07-07 上传
2009-04-15 上传
2022-05-01 上传
2010-09-12 上传
2010-12-22 上传
2013-09-13 上传
2008-12-31 上传
aimiya5
- 粉丝: 0
- 资源: 2
最新资源
- JavaScript实现的高效pomodoro时钟教程
- CMake 3.25.3版本发布:程序员必备构建工具
- 直流无刷电机控制技术项目源码集合
- Ak Kamal电子安全客户端加载器-CRX插件介绍
- 揭露流氓软件:月息背后的秘密
- 京东自动抢购茅台脚本指南:如何设置eid与fp参数
- 动态格式化Matlab轴刻度标签 - ticklabelformat实用教程
- DSTUHack2021后端接口与Go语言实现解析
- CMake 3.25.2版本Linux软件包发布
- Node.js网络数据抓取技术深入解析
- QRSorteios-crx扩展:优化税务文件扫描流程
- 掌握JavaScript中的算法技巧
- Rails+React打造MF员工租房解决方案
- Utsanjan:自学成才的UI/UX设计师与技术博客作者
- CMake 3.25.2版本发布,支持Windows x86_64架构
- AR_RENTAL平台:HTML技术在增强现实领域的应用