qfedu-cpp-level/day2/homework/h9.cpp

59 lines
1.5 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 创建一个名为 Book 的类,具有成员变量 title、author 和 year以及成员函数 void displayInfo() ,用于显示图书的信息。 创建Book类的数组至少存放5本书并设计全局函数实现Book对象按year从大到小排序并显示排序后信息。
#include <iostream>
using namespace std;
class Book
{
public:
string title, author;
int year;
// 使用 const 加 & 引用,避免不必要的拷贝
void init(const string &title, const string &author, int year)
{
this->title = title;
this->author = author;
this->year = year;
}
void displayinfo()
{
cout << "书名: " << this->title << " , 作者: " << this->author << " , 出版年份: " << this->year << endl;
}
};
void sortAndShow(Book book[], int n)
{
int i = 0;
for (; i < n; i++)
{
for (int j = 0; j < n - i - 1; j++)
{
if (book[j].year < book[j + 1].year)
{
Book tmp = book[j];
book[j] = book[j + 1];
book[j + 1] = tmp;
}
}
}
for (i = 0; i < n; i++)
{
book[i].displayinfo();
}
}
int main()
{
Book books[5];
books[0].init("数学", "张三", 1998);
books[1].init("语文", "李四", 2009);
books[2].init("英语", "王五", 1987);
books[3].init("物理", "赵六", 2008);
books[4].init("化学", "郑七", 1982);
sortAndShow(books, 5);
return 0;
}