Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cmath>
- #include<iomanip>
- #include<string>
- #include<stdio.h>
- #include<vector>
- #include<sstream>
- using namespace std;
- struct SinhVien{
- string MaSinhVien;
- string TenSinhVien;
- string Lop;
- string NgaySinh;
- float GPA;
- };
- string ChuanHoaNgaySinh(string s){
- for(int j = 0 ; j < s.length();j++)
- {
- if(s[2] != '/')
- {
- s.insert(0,"0");
- }
- else if(s[5] !='/')
- {
- s.insert(3,"0");
- }
- }
- return s;
- }
- void ChuanHoa(string &s){
- s[0] = toupper(s[0]);
- for(int i = 1; i < s.length(); i++){
- s[i] = tolower(s[i]);
- }
- }
- string ChuanHoaHoTen(string &s){
- vector<string> v;
- stringstream ss(s);
- string tmp;
- string res="";
- while(ss>>tmp) v.push_back(tmp);
- for(int i = 0; i<v.size(); i++){
- ChuanHoa(v[i]);
- }
- for(int i = 0; i<v.size(); i++){
- res+=v[i];
- if(i!=v.size()-1){
- res+=' ';
- }
- }
- return res;
- }
- string MaSinhVien(int i){
- stringstream ss;
- string s;
- ss << "B20DCCN"<< setfill('0') << setw(3) <<i+1;
- ss >> s;
- return s;
- }
- void nhap(struct SinhVien sv[],int N){
- for(int i = 0; i<N; i++){
- scanf("\n");
- fflush(stdin);
- sv[i].MaSinhVien = MaSinhVien(i);
- fflush(stdin);
- getline(cin, sv[i].TenSinhVien);
- sv[i].TenSinhVien = ChuanHoaHoTen(sv[i].TenSinhVien);
- fflush(stdin);
- getline(cin, sv[i].Lop);
- fflush(stdin);
- getline(cin, sv[i].NgaySinh);
- sv[i].NgaySinh = ChuanHoaNgaySinh(sv[i].NgaySinh);
- fflush(stdin);
- cin >> sv[i].GPA;
- scanf("\n");
- }
- }
- void sapxep(struct SinhVien sv[], int N){
- for(int i = 0; i<N-1; i++){
- for(int j = i+1; j<N; j++){
- if(sv[i].GPA<sv[j].GPA){
- struct SinhVien temp = sv[i];
- sv[i] = sv[j];
- sv[j] = temp;
- }
- }
- }
- }
- void in(struct SinhVien sv[], int N){
- for(int i = 0; i<N; i++){
- cout << sv[i].MaSinhVien << " " << sv[i].TenSinhVien << " " << sv[i].Lop << " " << sv[i].NgaySinh << " " << fixed << setprecision(2) << sv[i].GPA << endl;
- }
- }
- int main(){
- struct SinhVien ds[50];
- int N;
- cin >> N;
- nhap(ds, N);
- sapxep(ds,N);
- in(ds, N);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement