fork download
  1. #include <iostream>
  2. #include <fstream> // Thư viện để làm việc với file
  3. #include <vector>
  4. #include <algorithm>
  5.  
  6. using namespace std;
  7.  
  8. // Cấu trúc lưu thông tin môn học
  9. struct MonHoc {
  10. string maMon;
  11. string tenMon;
  12. int soTinChi;
  13. };
  14.  
  15. // Hàm so sánh hai môn học theo tên môn học
  16. bool compare(MonHoc a, MonHoc b) {
  17. return a.tenMon < b.tenMon;
  18. }
  19.  
  20. int main() {
  21. ifstream inputFile("MONHOC.in"); // Mở file input
  22.  
  23.  
  24. int n; // Số lượng môn học
  25. inputFile >> n; // Đọc số môn học
  26. scanf("\n"); // Bỏ qua ký tự xuống dòng sau khi nhập số lượng môn
  27.  
  28. vector<MonHoc> danhSachMonHoc(n); // Mảng lưu danh sách môn học
  29.  
  30. // Nhập thông tin cho từng môn học từ file
  31. for (int i = 0; i < n; ++i) {
  32. getline(inputFile, danhSachMonHoc[i].maMon);
  33. getline(inputFile, danhSachMonHoc[i].tenMon);
  34. inputFile >> danhSachMonHoc[i].soTinChi;
  35. inputFile.ignore(); // Bỏ qua ký tự xuống dòng sau khi nhập số tín chỉ
  36. }
  37.  
  38. // Đóng file sau khi đọc dữ liệu
  39. inputFile.close();
  40.  
  41. // Sắp xếp danh sách theo tên môn học
  42. sort(danhSachMonHoc.begin(), danhSachMonHoc.end(), compare);
  43.  
  44. // In danh sách đã sắp xếp ra màn hình
  45. for (const auto& mon : danhSachMonHoc) {
  46. cout << mon.maMon << " " << mon.tenMon << " " << mon.soTinChi << endl;
  47. }
  48.  
  49. return 0;
  50. }
  51.  
Success #stdin #stdout 0.01s 5280KB
stdin
Standard input is empty
stdout
Standard output is empty