#include#include #include using namespace std; struct Sinhvien { string Masv; string ten; string lop; int namsinh; float dtb; }; struct Listsv { Sinhvien sv; }; Sinhvien Input() { Sinhvien sv; cin.ignore(); cout << "nhap ten : "; getline(cin, sv.ten); cout << "nhap msv : "; getline(cin, sv.Masv); cout << "nhap lop : "; getline(cin, sv.lop); cout << "nhap nam sinh : "; cin >> sv.namsinh; cout << "nhap diem trung binh : "; cin >> sv.dtb; return sv; } void Nhap(Listsv L[], int &n) { cout << "nhap so luong sv : "; cin >> n; for (int i = 0; i < n; i++) { L[i].sv = Input(); } } void Output(Listsv L[], int i) { Sinhvien sv; cout << " ten : "; cout << L[i].sv.ten << endl; cout << " msv : "; cout << L[i].sv.Masv << endl; cout << " lop : "; cout << L[i].sv.lop << endl; cout << " nam sinh : "; cout << L[i].sv.namsinh << endl; cout << "nhap diem trung binh : "; cout << L[i].sv.dtb << endl; } void xuat(Listsv L[], int n) { for (int i = 0; i < n; i++) { Output(L, i); } } bool KiemTraRong(int n) { if (n == 0) { return true; } else { return false; } } bool KiemTraDay(int n, int max) { if (n == max) { return true; } else { return false; } } void Them_vitri_K(Listsv L[], int &n, int k) { n = n + 1; for (int i = n - 1; i >= k; i--) { L[i + 1].sv = L[i].sv; } L[k].sv = Input(); } void Them_cuoi(Listsv L[], int &n) { n = n + 1; L[n].sv = Input(); } void Xoa_K(Listsv L[], int &n, int k) { for (int i = k; i < n - 1; i++) { L[i].sv = L[i + 1].sv; } n = n - 1; } string *chuoi = new string[1000]; void NhapChuoi( int i, string tam) { *(chuoi + i) = tam; } int TimMax(int *a, int n) { int max = 0; for (int i = 0; i < n; i++) { if (max < *(a + i)) { max = *(a + i); } } return max; } void GanMangVeKhong(int *a, int n) { for (int i = 0; i < n; i++) { *(a + i) = 0; } } void timkiem (int n, Listsv L[]) { int *mangDoDai = new int[n]; GanMangVeKhong(mangDoDai, n); // gan cac phan tu trong mang ve 0; cin.ignore(); string timKiem; cout << "nhap ten nguoi muon tim kiem : "; getline(cin, timKiem); for (int k = 0; k < n; k++) { int maxchuoi = 0; // mot sau co the trung ky tu toi hai lan, nen phai dung bien so sanh for (int i = 0; i < (chuoi + k)->size(); i++) { int dem = 0; if (timKiem[0] == chuoi[k][i]) { for (int j = 0; j < timKiem.size(); j++) // so sanh va dem so luong ky tu trong gan vao mang so luong { if (timKiem[j] != chuoi[k][i]) { if (dem >= maxchuoi) { maxchuoi = dem; *(mangDoDai + k) = maxchuoi; break; } else { *(mangDoDai + k) = dem; break; } } else { dem++; if (j == timKiem.size() - 1) { *(mangDoDai + k) = dem; //cout << *(mangDoDai + k) << "\t"; } } i++; } } } } cout << "\nchuoi tim duoc la : " << endl; int max = TimMax(mangDoDai, n); for (int i = 0; i < n; i++) { if (*(mangDoDai + i) == max) { Output(L, i); cout << endl << endl; } } } void Tim_sinhvien(Listsv L[], int n) { for (int i = 0; i < n; i++) { NhapChuoi(i, L[i].sv.ten); } timkiem(n, L); } int main() { Listsv L[100]; int n; Nhap(L, n); system("cls"); // lenh xoa man hinh, giup xem code khong bi xem code nhap du lieu xuat(L, n); cout << "-------------------------------------------" << endl << endl; // endl la lenh xuong dong, 2 cai endl la suong hai dong Tim_sinhvien(L, n); system("pause"); return 0; }
0 nhận xét:
Đăng nhận xét