#include<bits/stdc++.h>
using namespace std;
#define MAX 8
struct SV{
int msv;
char hodem[ 20 ] ;
char ten[ 10 ] ;
char gioitinh[ 10 ] ;
int namsinh;
double diemtk;
} ;
struct vecto{
int count;
SV e[ MAX] ;
} ;
void input( SV & sv) {
cout << "ma sinh vien: " ; cin >> sv.msv ;
cout << "ho dem: " ; cin .getline ( sv.hodem ,20 ) ;
cout << "ten: " ; cin .getline ( sv.ten ,10 ) ;
cout << "gioi tinh: " ; cin .getline ( sv.gioitinh ,10 ) ;
cout << "nam sinh : " ; cin >> sv.namsinh ;
cout << "diem tk: " ; cin >> sv.diemtk ;
}
void output_SV( SV sv) {
cout << setw( 10 ) << left<< sv.msv ;
cout << setw( 20 ) << sv.hodem ;
cout << setw( 15 ) << sv.ten ;
cout << setw( 15 ) << sv.gioitinh ;
cout << setw( 20 ) << right<< sv.namsinh ;
cout << setw( 20 ) << sv.diemtk ;
cout << endl;
}
void output( vecto v) {
cout << "danh sach sinh vien: \n " ;
cout << setw( 10 ) << left<< "Ma sv" ;
cout << setw( 20 ) << "ho dem " ;
cout << setw( 15 ) << "dem " ;
cout << setw( 15 ) << "gioi tinh " ;
cout << setw( 20 ) << right<< "nam sinh" ;
cout << setw( 20 ) << "diem tong ket" ;
cout << endl;
for ( int i= 0 ; i< v.count ; i++ ) {
output_SV( v.e [ i] ) ;
}
}
//them 1 sinh vien vao danh sach
void add( vecto & v,SV sv) {
if ( v.count < MAX) {
v.e [ v.count ++ ] = sv;
}
else {
cout << "danh sach da day..." << endl;
}
}
//xoa sv dau tien
void xoadau( vecto & v) {
if ( v.count > 0 ) {
for ( int i= 0 ; i< v.count - 1 ; i++ ) {
v.e [ i] = v.e [ i+ 1 ] ;
}
v.count -- ;
}
}
void chen( vecto & v,SV sv,int pos= 2 ) {
if ( v.count >= MAX) {
cout << "ds full" << endl;
return ;
}
if ( pos> v.count ) pos= v.count ;
for ( int i= v.count ; i> pos; i-- ) {
v.e [ i] = v.e [ i- 1 ] ;
}
v.e [ pos] = sv;
v.count ++ ;
}
void sort( vecto & v) {
for ( int i= 0 ; i< v.count - 1 ; i++ ) {
for ( int j= i+ 1 ; j< v.count ; j++ ) {
if ( strcmp ( v.e [ i] .ten ,v.e [ j] .ten ) > 0 ) {
swap( v.e [ i] ,v.e [ j] ) ;
}
}
}
}
int main( ) {
vecto v;
v.count = 0 ;
SV sv1 = { 1001 , "tran van" , "thanh" , "nam" , 1999 , 7.6 } ;
SV sv2 = { 1002 , "nguyen thi" , "huong" , "nu" , 2000 , 7.3 } ;
SV sv3 = { 1003 , "nguyen van" , "binh" , "nam" , 1998 , 6.4 } ;
SV sv4 = { 1004 , "bui thi" , "hong" , "nu" , 2000 , 5.8 } ;
SV sv5 = { 1005 , "duong van" , "giang" , "nam" , 1998 , 8.3 } ;
add( v,sv1) ;
add( v,sv2) ;
add( v,sv3) ;
add( v,sv4) ;
add( v,sv5) ;
cout << "danh sach ban dau\n " ;
output( v) ;
cout << "\n sau khi xoa sv dau: " << endl;
xoadau( v) ;
output( v) ;
SV newsv= { 1006 , "le thi" , "doan" , "nu" , 1998 , 7.6 } ;
chen( v,newsv) ;
cout << "danh sach sau khi chen them" << endl;
output( v) ;
sort( v) ;
cout << "danh sach sau khi sap la: " << endl;
output( v) ;
return 0 ;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBNQVggOApzdHJ1Y3QgU1Z7CglpbnQgbXN2OwoJY2hhciBob2RlbVsyMF07CgljaGFyIHRlblsxMF07CgljaGFyIGdpb2l0aW5oWzEwXTsKCWludCBuYW1zaW5oOwoJZG91YmxlIGRpZW10azsKfTsKc3RydWN0IHZlY3RvewoJaW50IGNvdW50OwoJU1YgZVtNQVhdOwp9Owp2b2lkIGlucHV0KFNWICZzdil7Cgljb3V0PDwibWEgc2luaCB2aWVuOiAiOyBjaW4+PnN2Lm1zdjsKCWNvdXQ8PCJobyBkZW06ICI7IGNpbi5nZXRsaW5lKHN2LmhvZGVtLDIwKTsKCWNvdXQ8PCJ0ZW46ICI7IGNpbi5nZXRsaW5lKHN2LnRlbiwxMCk7Cgljb3V0PDwiZ2lvaSB0aW5oOiAiOyBjaW4uZ2V0bGluZShzdi5naW9pdGluaCwxMCk7Cgljb3V0PDwibmFtIHNpbmggOiAiOyBjaW4+PnN2Lm5hbXNpbmg7Cgljb3V0PDwiZGllbSB0azogIjsgY2luPj5zdi5kaWVtdGs7Cn0Kdm9pZCBvdXRwdXRfU1YoU1Ygc3YpewoJY291dDw8IHNldHcoMTApPDxsZWZ0PDxzdi5tc3Y7Cgljb3V0PDxzZXR3KDIwKTw8c3YuaG9kZW07Cgljb3V0PDxzZXR3KDE1KTw8c3YudGVuOwoJY291dDw8c2V0dygxNSk8PHN2Lmdpb2l0aW5oOwoJY291dDw8c2V0dygyMCk8PHJpZ2h0PDxzdi5uYW1zaW5oOwoJY291dDw8c2V0dygyMCk8PHN2LmRpZW10azsKCWNvdXQ8PGVuZGw7Cn0Kdm9pZCBvdXRwdXQodmVjdG8gdil7Cgljb3V0PDwiZGFuaCBzYWNoIHNpbmggdmllbjogXG4iOwoJY291dDw8IHNldHcoMTApPDxsZWZ0PDwiTWEgc3YiOwoJY291dDw8c2V0dygyMCk8PCJobyBkZW0gIjsKCWNvdXQ8PHNldHcoMTUpPDwiZGVtICI7Cgljb3V0PDxzZXR3KDE1KTw8Imdpb2kgdGluaCAiOwoJY291dDw8c2V0dygyMCk8PHJpZ2h0PDwibmFtIHNpbmgiOwoJY291dDw8c2V0dygyMCk8PCJkaWVtIHRvbmcga2V0IjsKCWNvdXQ8PGVuZGw7Cglmb3IoaW50IGk9MDtpPHYuY291bnQ7aSsrKXsKCQlvdXRwdXRfU1Yodi5lW2ldKTsKCX0KfQovL3RoZW0gMSBzaW5oIHZpZW4gdmFvIGRhbmggc2FjaAp2b2lkIGFkZCh2ZWN0byAmIHYsU1Ygc3YpewoJaWYodi5jb3VudDxNQVgpewoJCXYuZVt2LmNvdW50KytdPXN2OwoJfQoJZWxzZXsKCQljb3V0PDwiZGFuaCBzYWNoIGRhIGRheS4uLiI8PGVuZGw7Cgl9Cn0KLy94b2Egc3YgZGF1IHRpZW4Kdm9pZCB4b2FkYXUodmVjdG8gJnYpewoJaWYodi5jb3VudD4wKXsKCQlmb3IoaW50IGk9MDtpPHYuY291bnQtMTtpKyspewoJCQl2LmVbaV09di5lW2krMV07CgkJfQoJCXYuY291bnQtLTsKCX0KfQp2b2lkIGNoZW4odmVjdG8gJiB2LFNWIHN2LGludCBwb3M9Mil7CglpZih2LmNvdW50Pj1NQVgpewoJCWNvdXQ8PCJkcyBmdWxsIjw8ZW5kbDsKCQlyZXR1cm47Cgl9CglpZihwb3M+di5jb3VudCkgcG9zPXYuY291bnQ7Cglmb3IoaW50IGk9di5jb3VudDtpPnBvcztpLS0pewoJCXYuZVtpXT12LmVbaS0xXTsKCX0KCXYuZVtwb3NdPXN2OwoJdi5jb3VudCsrOwp9CnZvaWQgc29ydCh2ZWN0byAmIHYpewoJZm9yKGludCBpPTA7aTx2LmNvdW50LTE7aSsrKXsKCQlmb3IoaW50IGo9aSsxO2o8di5jb3VudDtqKyspewoJCQlpZihzdHJjbXAodi5lW2ldLnRlbix2LmVbal0udGVuKT4wKXsKCQkJCXN3YXAodi5lW2ldLHYuZVtqXSk7CgkJCX0KCQl9Cgl9Cn0KaW50IG1haW4oKXsKCXZlY3RvIHY7Cgl2LmNvdW50ID0wOwogICAgU1Ygc3YxID0gezEwMDEsICJ0cmFuIHZhbiIsICJ0aGFuaCIsICJuYW0iLCAxOTk5LCA3LjZ9OwogICAgU1Ygc3YyID0gezEwMDIsICJuZ3V5ZW4gdGhpIiwgImh1b25nIiwgIm51IiwgMjAwMCwgNy4zfTsKICAgIFNWIHN2MyA9IHsxMDAzLCAibmd1eWVuIHZhbiIsICJiaW5oIiwgIm5hbSIsIDE5OTgsIDYuNH07CiAgICBTViBzdjQgPSB7MTAwNCwgImJ1aSB0aGkiLCAiaG9uZyIsICJudSIsIDIwMDAsIDUuOH07CiAgICBTViBzdjUgPSB7MTAwNSwgImR1b25nIHZhbiIsICJnaWFuZyIsICJuYW0iLCAxOTk4LCA4LjN9OwogICAgYWRkKHYsc3YxKTsKICAgIGFkZCh2LHN2Mik7CiAgICBhZGQodixzdjMpOwogICAgYWRkKHYsc3Y0KTsKICAgIGFkZCh2LHN2NSk7Cgljb3V0PDwiZGFuaCBzYWNoIGJhbiBkYXVcbiI7CglvdXRwdXQodik7Cgljb3V0PDwiXG4gc2F1IGtoaSB4b2Egc3YgZGF1OiAiPDxlbmRsOwoJeG9hZGF1KHYpOwoJb3V0cHV0KHYpOwoJU1YgbmV3c3Y9ezEwMDYsICJsZSB0aGkiLCAiZG9hbiIsICJudSIsIDE5OTgsIDcuNn07CgljaGVuKHYsbmV3c3YpOwoJY291dDw8ImRhbmggc2FjaCBzYXUga2hpIGNoZW4gdGhlbSI8PGVuZGw7CglvdXRwdXQodik7Cglzb3J0KHYpOwoJY291dDw8ImRhbmggc2FjaCBzYXUga2hpIHNhcCBsYTogIjw8ZW5kbDsKCW91dHB1dCh2KTsKCXJldHVybiAwOwp9