//ID : 19127640 //Name : Hoang Huu Giap // Bai 12 #include #include using namespace std; struct SinhVien { int ID; char FullName[50]; float GPA; char Address[500]; struct DoB { int year; int month; int day; }m; }; void NhapThongTinSinhVien(SinhVien &a) { cout << "ID:"; cin >> a.ID; cin.ignore(); cout << "Full Name :"; cin.getline(a.FullName, 50); cout << "GPA: "; cin >> a.GPA; cin.ignore(); cout << "Address :"; cin.getline(a.Address, 500); cout << "Ngay thang nam sinh: "; cin >> a.m.day >> a.m.month >> a.m.year; } void XuatThongTinSinhVien(SinhVien a) { cout << "Thong tin cua sinh vien la:" << endl; cout << "ID:" << a.ID; cout << endl; cout << "Full Name :" << a.FullName; cout << endl; cout << "GPA: " << a.GPA; cout << endl; cout << "Address :" << a.Address; cout << endl; cout << "Ngay thang nam sinh: " << a.m.day<<" " <=0; i--) { if (FullName[i] != 0 && FullName[i] != ' ') { Ten[k] = FullName[i]; k++; } else break; } Ho[j] = '\0'; Ten[k] = '\0'; cout << "First Name :" << Ho << endl; cout << "Last Name :" << _strrev(Ten) << endl; } void XuatThongTinTheoKieu(SinhVien a) { cout << "Thong tin cua sinh vien la theo dinh dang cua de bai la:" << endl; cout << "ID:" << a.ID; cout << endl; XuatHovaTen(a,a.FullName); cout << "GPA: " << a.GPA; cout << endl; cout << "Address :" << a.Address; cout << endl; cout << "Ngay thang nam sinh: " << a.m.day << " " << a.m.month << " " << a.m.year; cout << endl; } void SoSanhID(SinhVien a,SinhVien b) { if (a.ID == b.ID) cout << "2 sinh vien co ID giong nhau" << endl; else cout << "Hai sinh vien co ID khac nhau" << endl; } void SoSanhIDvaGPA(SinhVien a, SinhVien b) { if (a.GPA == b.GPA) { if (a.ID == b.ID) cout << "2 sinh vien co GPA va ID giong nhau" << endl; else cout << "2 sinh vien co GPA bang nhau nhung ID khac nhau" << endl; } else { if (a.ID == b.ID) cout << "2 sinh vien co GPA khac nhau nhung ID giong nhau" << endl; else cout << "2 sinh vien co GPA va ID khac nhau" << endl; } } void SoSanhNamevaID(SinhVien a, SinhVien b) { int giatri = strcmp(a.FullName, b.FullName); if (giatri ==0) { if (a.ID == b.ID) cout << "2 sinh vien co FullName va ID giong nhau" << endl; else cout << "2 sinh vien co FullName giong nhau nhung ID khac nhau" << endl; } else { if (a.ID == b.ID) cout << "2 sinh vien co FullName khac nhau nhung ID giong nhau" << endl; else cout << "2 sinh vien co FullName va ID khac nhau" << endl; } } void SoSanhFirstNamevaID(SinhVien a, SinhVien b) { int j = 0; char Ho1[10]; for (int i = 0; i < strlen(a.FullName); i++) { if (a.FullName[i] != 0 &&a.FullName[i] != ' ') { Ho1[j] = a.FullName[i]; j++; } else break; } Ho1[j] = '\0'; int k = 0; char Ho2[10]; for (int i = 0; i < strlen(b.FullName); i++) { if (b.FullName[i] != 0 && b.FullName[i] != ' ') { Ho2[k] = b.FullName[i]; k++; } else break; } Ho2[k] = '\0'; int giatri = strcmp(Ho1, Ho2); if (giatri == 0) { { if (a.ID == b.ID) cout << "2 sinh vien co Ho va ID giong nhau" << endl; else cout << "2 sinh vien co Ho giong nhau nhung ID khac nhau" << endl; } } else { if (a.ID == b.ID) cout << "2 sinh vien co Ho khac nhau nhung ID giong nhau" << endl; else cout << "2 sinh vien co Ho va ID khac nhau" << endl; } } void SoSanhLastNamevaID(SinhVien a, SinhVien b) { int j = 0; char Ten1[10]; for (int i = strlen(a.FullName)-1; i>=0; i--) { if (a.FullName[i] != 0 && a.FullName[i] != ' ') { Ten1[j] = a.FullName[i]; j++; } else break; } Ten1[j] = '\0'; int k = 0; char Ten2[10]; for (int i = strlen(b.FullName); i >=0; i--) { if (b.FullName[i] != 0 && b.FullName[i] != ' ') { Ten2[k] = b.FullName[i]; k++; } else break; } Ten2[k] = '\0'; int giatri = strcmp(_strrev(Ten1),_strrev(Ten2)); if (giatri == 0) { { if (a.ID == b.ID) cout << "2 sinh vien co Ten va ID giong nhau" << endl; else cout << "2 sinh vien co Ten giong nhau nhung ID khac nhau" << endl; } } else { if (a.ID == b.ID) cout << "2 sinh vien co Ten khac nhau nhung ID giong nhau" << endl; else cout << "2 sinh vien co Ten va ID khac nhau" << endl; } } void SoSanhDoBvaID(SinhVien a, SinhVien b) { if (a.m.year == b.m.year&& a.m.month == b.m.month&& a.m.day == b.m.day) { if (a.ID == b.ID) cout << "2 sinh vien co DoB va ID giong nhau" << endl; else cout << "2 sinh vien co DoB bang nhau nhung ID khac nhau" << endl; } else { if (a.ID == b.ID) cout << "2 sinh vien co DoB khac nhau nhung ID giong nhau" << endl; else cout << "2 sinh vien co DoB va ID khac nhau" << endl; } } int main() { SinhVien x,y; cout << "Nhap thong tin sinh vien thu nhat:" << endl; NhapThongTinSinhVien(x); XuatThongTinSinhVien(x); cout << "Nhap thong tin cua sinh vien thu 2:" << endl; NhapThongTinSinhVien(y); XuatThongTinSinhVien(y); cout << "==================Bang chuc nang==================" << endl; cout << "1. Xuat thong tin sinh vien thu nhat theo dinh dang" << endl; cout << "2. So sanh 2 sinh vien bang ID" << endl; cout << "3. So sanh 2 sinh vien bang GPA va ID" << endl; cout << "4. So sanh 2 sinh vien bang FullName va ID" << endl; cout << "5. So sanh 2 sinh vien bang Ho va ID" << endl; cout << "6. So sanh 2 sinh vien bang Ten va ID" << endl; cout << "7. So sanh 2 sinh vien bang DoB va ID" << endl; cout << "====================================================" << endl; int phimso; do { cout << "Nhap chuc nang:"; cin >> phimso; switch (phimso) { case 1:XuatThongTinTheoKieu(x); break; case 2:SoSanhID(x, y); break; case 3:SoSanhIDvaGPA(x, y); break; case 4:SoSanhNamevaID(x, y); break; case 5:SoSanhFirstNamevaID(x, y); break; case 6:SoSanhLastNamevaID(x, y); break; case 7:SoSanhDoBvaID(x, y); break; default: break; } } while (phimso>0&&phimso<8); return 1; }