Viết code cho bài sắp xếp sách-)
Quảng cáo
4 câu trả lời 139
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
// Định nghĩa cấu trúc một quyển sách
struct Sach {
string tenSach;
string tacGia;
int namXuatBan;
double giaTien;
};
// Hàm so sánh để sắp xếp theo tên (A-Z)
bool soSanhTheoTen(Sach a, Sach b) {
return a.tenSach < b.tenSach;
}
int main() {
int n;
cout << "Nhap so luong sach: ";
cin >> n;
cin.ignore(); // Xóa bộ nhớ đệm
vector<Sach> danhSachSach(n);
// Nhập dữ liệu
for (int i = 0; i < n; i++) {
cout << "Nhap thong tin quyen sach thu " << i + 1 << ":" << endl;
cout << " Ten sach: "; getline(cin, danhSachSach[i].tenSach);
cout << " Tac gia: "; getline(cin, danhSachSach[i].tacGia);
cout << " Nam xuat ban: "; cin >> danhSachSach[i].namXuatBan;
cout << " Gia tien: "; cin >> danhSachSach[i].giaTien;
cin.ignore();
}
// Sắp xếp
sort(danhSachSach.begin(), danhSachSach.end(), soSanhTheoTen);
// Xuất kết quả
cout << "\n--- DANH SACH SACH DA SAP XEP THEO TEN (A-Z) ---\n";
for (const auto& s : danhSachSach) {
cout << s.tenSach << " | " << s.tacGia << " | " << s.namXuatBan << " | " << s.giaTien << " VND" << endl;
}
return 0;
}
#Luvgirl ( tham khao thoi ne)
class Sach:
def __init__(self, ten_sach, gia, nam_xb):
self.ten_sach = ten_sach
self.gia = gia
self.nam_xb = nam_xb
def __repr__(self):
return f"{self.ten_sach.ljust(20)} | Giá: {str(self.gia).rjust(6)} | Năm XB: {self.nam_xb}"
# Danh sách dữ liệu mẫu
danh_sach_sach = [
Sach("Dế Mèn Phiêu Lưu Ký", 55000, 1941),
Sach("Lão Hạc", 45000, 1943),
Sach("Số Đỏ", 65000, 1936),
Sach("Tắt Đèn", 40000, 1937)
]
# 1. Sắp xếp theo Tên sách (A-Z)
sach_theo_ten = sorted(danh_sach_sach, key=lambda x: x.ten_sach)
# 2. Sắp xếp theo Giá tiền (Tăng dần)
sach_theo_gia = sorted(danh_sach_sach, key=lambda x: x.gia)
# 3. Sắp xếp theo Năm xuất bản (Giảm dần - Mới nhất lên đầu)
sach_theo_nam = sorted(danh_sach_sach, key=lambda x: x.nam_xb, reverse=True)
# --- In kết quả ---
print("--- SẮP XẾP THEO TÊN (A-Z) ---")
for s in sach_theo_ten: print(s)
print("\n--- SẮP XẾP THEO GIÁ (TĂNG DẦN) ---")
for s in sach_theo_gia: print(s)
print("\n--- SẮP XẾP THEO NĂM XB (GIẢM DẦN) ---")
for s in sach_theo_nam: print(s)
Code C++: Sắp xếp danh sách sách theo Tên (A-Z)
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
// Định nghĩa cấu trúc một quyển sách
struct Sach {
string tenSach;
string tacGia;
int namXuatBan;
double giaTien;
};
// Hàm so sánh để sắp xếp theo tên (A-Z)
bool soSanhTheoTen(Sach a, Sach b) {
return a.tenSach < b.tenSach;
}
int main() {
int n;
cout << "Nhap so luong sach: ";
cin >> n;
cin.ignore(); // Xóa bộ nhớ đệm
vector<Sach> danhSachSach(n);
// Nhập dữ liệu
for (int i = 0; i < n; i++) {
cout << "Nhap thong tin quyen sach thu " << i + 1 << ":" << endl;
cout << " Ten sach: "; getline(cin, danhSachSach[i].tenSach);
cout << " Tac gia: "; getline(cin, danhSachSach[i].tacGia);
cout << " Nam xuat ban: "; cin >> danhSachSach[i].namXuatBan;
cout << " Gia tien: "; cin >> danhSachSach[i].giaTien;
cin.ignore();
}
// Sắp xếp
sort(danhSachSach.begin(), danhSachSach.end(), soSanhTheoTen);
// Xuất kết quả
cout << "\n--- DANH SACH SACH DA SAP XEP THEO TEN (A-Z) ---\n";
for (const auto& s : danhSachSach) {
cout << s.tenSach << " | " << s.tacGia << " | " << s.namXuatBan << " | " << s.giaTien << " VND" << endl;
}
return 0;
}
Quảng cáo
Bạn cần hỏi gì?
Câu hỏi hot cùng chủ đề
-
Đã trả lời bởi chuyên gia
1129 -
Đã trả lời bởi chuyên gia
1090 -
