Untitled
unknown
plain_text
3 years ago
2.5 kB
7
Indexable
#include<iostream> #include<string> #include<stdio.h> using namespace std; class sinhVien { private: string ma; string ten; string lop; string email; string nganhHoc; bool trangThai; public: friend istream& operator >> (istream &is, sinhVien &a); friend bool getNganh(sinhVien &a); friend string Nganh(sinhVien a); friend void thayDoi(sinhVien &a); friend void print(sinhVien a); sinhVien() { trangThai = false; } }; class nganh { private: string tenNganh; sinhVien sv[1000]; int sl; public: friend void add(sinhVien &a, nganh &b); friend istream& operator >> (istream &is, nganh &b); friend ostream& operator << (ostream & os, nganh &b); friend string layTen(nganh b); nganh() { sl = 0; } }; istream& operator >> (istream &is, sinhVien &a) { is>>a.ma; scanf("\n"); getline(cin, a.ten); is>>a.lop>>a.email; string tmp = a.ma.substr(3,4); if(tmp == "DCKT") { a.nganhHoc = "Ke toan"; } else if(tmp == "DCCN" && a.lop[0] != 'E') { a.nganhHoc = "Cong nghe thong tin"; } else if(tmp == "DCAT" && a.lop[0] != 'E') { a.nganhHoc = "An toan thong tin"; } else if(tmp == "DCVT") { a.nganhHoc = "Vien thong"; } else if(tmp == "DCDT") { a.nganhHoc = "Dien tu"; } return is; } istream& operator >> (istream &is, nganh &b) { getline(cin, b.tenNganh); return is; } bool getNganh(sinhVien &a) { return a.trangThai; } string Nganh(sinhVien a) { return a.nganhHoc; } void thayDoi(sinhVien &a) { a.trangThai = true; } void add(sinhVien &a, nganh &b) { string tmp = Nganh(a); if(b.tenNganh == tmp) { b.sv[b.sl] = a; b.sl++; thayDoi(a); } } string layTen(nganh b) { return b.tenNganh; } void print(sinhVien a) { cout<<a.ma<<" "; cout<<a.ten<<" "; cout<<a.lop<<" "; cout<<a.email<<" "; } ostream& operator << (ostream & os, nganh &b) { os<<"DANH SACH SINH VIEN NGANH "; string tmp = layTen(b); for(int i = 0 ; i < tmp.length() ;i ++) { if('a' <= tmp[i] && tmp[i] <= 'z') { tmp[i] -= 32; } } os<<tmp<<":\n"; for(int i = 0 ; i < b.sl ; i++) { print(b.sv[i]); os<<"\n"; } return os; } int main() { int n;cin>>n; sinhVien a[n]; for(int i = 0; i < n;i++) { cin>>a[i]; } int q;cin>>q; scanf("\n"); nganh k[q]; for(int i = 0 ; i < q ; i++) { cin >> k[i]; } for(int i = 0 ; i < q;i++) { for(int j = 0 ; j < n ; j++) { if(!getNganh(a[j])) { add(a[j],k[i]); } } } for(int i = 0 ; i < q ; i++) { cout<<k[i]; } return 0; }
Editor is loading...