59 lines
1.5 KiB
C++
59 lines
1.5 KiB
C++
// 创建一个名为 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;
|
||
}
|