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;
|
|||
|
}
|