#include<bits/stdc++.h>
using namespace std;
#define MAX 8
struct SV{
int msv;
char hodem[ 30 ] ;
char ten[ 10 ] ;
char gioitinh[ 10 ] ;
int namsinh;
double diemtk;
} ;
struct List{
int count;
SV e[ MAX] ;
} ;
SV taosv( int ma,char * hd,char * t,char * gt,int y,double d) {
SV sv;
sv.msv = ma;
strcpy ( sv.hodem ,hd) ;
strcpy ( sv.ten ,t) ;
strcpy ( sv.gioitinh ,gt) ;
sv.namsinh = y;
sv.diemtk = d;
return sv;
}
void create( List& L) {
L.count = - 1 ;
}
int empty( List L) {
return ( L.count == - 1 ) ;
}
int full( List L) {
return ( L.count == MAX- 1 ) ;
}
int add( List& L,SV sv) {
if ( full( L) ) {
return 0 ;
}
else {
L.count ++ ;
L.e [ L.count ] = sv;
return 1 ;
}
}
void input( List & L) {
add( L,taosv( 1001 ,"tran vam " ,"thanh" ,"nam" ,1997 ,7.5 ) ) ;
add( L,taosv( 1002 ,"nguyen thi " ,"bich" ,"nu" ,1998 ,7.2 ) ) ;
add( L,taosv( 1003 ,"nguyen van " ,"giang" ,"nam" ,1996 ,6.4 ) ) ;
add( L,taosv( 1004 ,"bui thi" ,"hong" ,"nu" ,1998 ,8.6 ) ) ;
add( L,taosv( 1005 ,"duong van " ,"hung" ,"nu" ,1997 ,6.8 ) ) ;
}
void showSV( SV sv) {
cout << fixed;
cout << setw( 8 ) << left<< sv.msv ;
cout << setw( 10 ) << left<< sv.hodem ;
cout << setw( 10 ) << left<< sv.ten ;
cout << setw( 9 ) << left<< sv.gioitinh ;
cout << setw( 9 ) << left<< sv.namsinh ;
cout << setw( 8 ) << setprecision<< sv.diemtk ;
cout << endl;
}
void showList( List L ) {
cout << fixed;
cout << setw( 8 ) << left<< "Ma sv" ;
cout << setw( 10 ) << left<< "Ho dem" ;
cout << setw( 10 ) << left<< "Ten" ;
cout << setw( 9 ) << left<< "Gioi tinh" ;
cout << setw( 9 ) << left<< "Nam sinh" ;
cout << setw( 8 ) << setprecision<< "Diem tk" ;
cout << endl;
for ( int i= 0 ; i<= L.count ; i++ ) {
showSV( L.e [ i] ) ;
}
}
int remove ( int k,List& L) {
if ( k<= L.count + 1 && k> 0 ) {
for ( int i= k; i<= L.count ; i++ ) {
L.e [ i- 1 ] = L.e [ i] ;
}
L.count -- ;
return 1 ;
}
return 0 ;
}
int insert( int k,List& L, SV sv) {
if ( k< L.count + 1 && k> 0 && ! full( L) ) {
for ( int i= L.count ; i>= k- 1 ; -- i) {
L.e [ i+ 1 ] = L.e [ i] ;
}
L.e [ k- 1 ] = sv;
L.count ++ ;
return 1 ;
}
return 0 ;
}
void selectionSort( List & L) {
for ( int i= 0 ; i< L.count ; i++ ) {
int min= i;
for ( int j= i+ 1 ; j<= L.count ; j++ ) {
if ( strcmp ( L.e [ i] .ten ,L.e [ j] .ten ) < 0 ) {
min= j;
}
}
if ( min! = i) {
SV temp= L.e [ i] ;
L.e [ i] = L.e [ min] ;
L.e [ min] = temp;
}
}
}
int main( int argc,char const * argv[ ] ) {
List L;
create( L) ;
input( L) ;
cout << "==============DANH SACH SINH VIEN===============" << endl;
showList( L) ;
if ( remove ( 1 ,L) ) {
cout << "Xoa thanh cong...!Phan tu thu nhat da bi xoa khoi ds" << endl;
cout << "===============DANH SACH SINH VIEN=============" << endl;
showList( L) ;
}
else {
cout << "loi xu ly ,ds rong hoac ko hop le" << endl;
}
if ( insert( 3 ,L,taosv( 1006 ,"le thi" ,"doan" ,"nu" ,1998 ,7.6 ) ) ) {
cout << "chen sv thanh cong" << endl;
cout << "=================DANH SACH SINH VIEN==============" << endl;
showList( L) ;
}
else {
cout << "DS full or vi tri ko hop le!" << endl;
}
selectionSort( L) ;
cout << "============DANH SACH SINH VIEN sau khi sap xep===========" << endl;
showList( L) ;
return 0 ;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBNQVggOApzdHJ1Y3QgU1Z7CglpbnQgbXN2OwoJY2hhciBob2RlbVszMF07CgljaGFyIHRlblsxMF07CgljaGFyIGdpb2l0aW5oWzEwXTsKCWludCBuYW1zaW5oOwoJZG91YmxlIGRpZW10azsKfTsKc3RydWN0IExpc3R7CglpbnQgY291bnQ7CglTViBlW01BWF07Cn07ClNWIHRhb3N2KGludCBtYSxjaGFyKiBoZCxjaGFyKnQsY2hhcipndCxpbnQgeSxkb3VibGUgZCl7CglTViBzdjsKCXN2Lm1zdj1tYTsKCXN0cmNweShzdi5ob2RlbSxoZCk7CglzdHJjcHkoc3YudGVuLHQpOwoJc3RyY3B5KHN2Lmdpb2l0aW5oLGd0KTsKCXN2Lm5hbXNpbmg9eTsKCXN2LmRpZW10az1kOwoJcmV0dXJuIHN2Owp9CnZvaWQgY3JlYXRlKExpc3QmTCl7CglMLmNvdW50PS0xOwp9CmludCBlbXB0eShMaXN0IEwpewoJcmV0dXJuKEwuY291bnQ9PS0xICk7Cn0KaW50IGZ1bGwoTGlzdCBMKXsKCXJldHVybihMLmNvdW50PT1NQVgtMSk7Cn0KaW50IGFkZChMaXN0JiBMLFNWIHN2KXsKCWlmKGZ1bGwoTCkpewoJCXJldHVybiAwOwoJfQoJZWxzZXsKCQlMLmNvdW50Kys7CgkJTC5lW0wuY291bnRdPXN2OwoJCXJldHVybiAxOwoJfQp9CnZvaWQgaW5wdXQoTGlzdCAmTCl7CglhZGQoTCx0YW9zdigxMDAxLCJ0cmFuIHZhbSAiLCJ0aGFuaCIsIm5hbSIsMTk5Nyw3LjUpKTsKCWFkZChMLHRhb3N2KDEwMDIsIm5ndXllbiB0aGkgIiwiYmljaCIsIm51IiwxOTk4LDcuMikpOwoJYWRkKEwsdGFvc3YoMTAwMywibmd1eWVuIHZhbiAiLCJnaWFuZyIsIm5hbSIsMTk5Niw2LjQpKTsKCWFkZChMLHRhb3N2KDEwMDQsImJ1aSB0aGkiLCJob25nIiwibnUiLDE5OTgsOC42KSk7CglhZGQoTCx0YW9zdigxMDA1LCJkdW9uZyB2YW4gIiwiaHVuZyIsIm51IiwxOTk3LDYuOCkpOwp9CnZvaWQgc2hvd1NWKFNWIHN2KXsKCWNvdXQ8PGZpeGVkOwoJY291dDw8c2V0dyg4KTw8bGVmdDw8c3YubXN2OwoJY291dDw8c2V0dygxMCk8PGxlZnQ8PHN2LmhvZGVtOwoJY291dDw8c2V0dygxMCk8PGxlZnQ8PHN2LnRlbjsKCWNvdXQ8PHNldHcoOSk8PGxlZnQ8PHN2Lmdpb2l0aW5oOwoJY291dDw8c2V0dyg5KTw8bGVmdDw8c3YubmFtc2luaDsKCWNvdXQ8PHNldHcoOCk8PHNldHByZWNpc2lvbjw8c3YuZGllbXRrOwoJY291dDw8ZW5kbDsKfQp2b2lkIHNob3dMaXN0KExpc3QgTCApewoJY291dDw8Zml4ZWQ7Cgljb3V0PDxzZXR3KDgpPDxsZWZ0PDwiTWEgc3YiOwoJY291dDw8c2V0dygxMCk8PGxlZnQ8PCJIbyBkZW0iOwoJY291dDw8c2V0dygxMCk8PGxlZnQ8PCJUZW4iOwoJY291dDw8c2V0dyg5KTw8bGVmdDw8Ikdpb2kgdGluaCI7Cgljb3V0PDxzZXR3KDkpPDxsZWZ0PDwiTmFtIHNpbmgiOwoJY291dDw8c2V0dyg4KTw8c2V0cHJlY2lzaW9uPDwiRGllbSB0ayI7Cgljb3V0PDxlbmRsOwoJZm9yKGludCBpPTA7aTw9TC5jb3VudDtpKyspewoJCXNob3dTVihMLmVbaV0pOwoJfQp9CmludCByZW1vdmUoaW50IGssTGlzdCZMKXsKCWlmKGs8PUwuY291bnQrMSAmJiBrPjApewoJCWZvcihpbnQgaT1rO2k8PUwuY291bnQ7aSsrKXsKCQkJTC5lW2ktMV09TC5lW2ldOwoJCX0KCQlMLmNvdW50LS07CgkJcmV0dXJuIDE7Cgl9CglyZXR1cm4gMDsKfQppbnQgaW5zZXJ0KGludCBrLExpc3QmIEwsIFNWIHN2KXsKCWlmKGs8IEwuY291bnQrMSAmJiBrPjAgJiYgIWZ1bGwoTCkpewoJCWZvcihpbnQgaT1MLmNvdW50O2k+PWstMTstLWkpewoJCQlMLmVbaSsxXT1MLmVbaV07CgkJfQoJCUwuZVtrLTFdPXN2OwoJCUwuY291bnQrKzsKCQlyZXR1cm4gMTsKCX0KCXJldHVybiAwOwp9CnZvaWQgc2VsZWN0aW9uU29ydChMaXN0ICZMKXsKCWZvcihpbnQgaT0wO2k8TC5jb3VudDtpKyspewoJCWludCBtaW49aTsKCQlmb3IoaW50IGo9aSsxO2o8PUwuY291bnQ7aisrKXsKCQkJaWYoc3RyY21wKEwuZVtpXS50ZW4sTC5lW2pdLnRlbik8MCl7CgkJCQltaW49ajsKCQkJfQoJCX0KCQlpZihtaW4hPWkpewoJCQlTViB0ZW1wPUwuZVtpXTsKCQkJTC5lW2ldPUwuZVttaW5dOwoJCQlMLmVbbWluXT10ZW1wOwoJCX0KCX0KfQppbnQgbWFpbihpbnQgYXJnYyxjaGFyIGNvbnN0KmFyZ3ZbXSl7CglMaXN0IEw7CgljcmVhdGUoTCk7CglpbnB1dChMKTsKCWNvdXQ8PCI9PT09PT09PT09PT09PURBTkggU0FDSCBTSU5IIFZJRU49PT09PT09PT09PT09PT0iPDxlbmRsOwoJc2hvd0xpc3QoTCk7CglpZihyZW1vdmUoMSxMKSl7CgkJY291dDw8IlhvYSB0aGFuaCBjb25nLi4uIVBoYW4gdHUgdGh1IG5oYXQgZGEgYmkgeG9hIGtob2kgZHMiPDxlbmRsOwoJCWNvdXQ8PCI9PT09PT09PT09PT09PT1EQU5IIFNBQ0ggU0lOSCBWSUVOPT09PT09PT09PT09PSI8PGVuZGw7CgkJc2hvd0xpc3QoTCk7Cgl9CgllbHNlewoJCWNvdXQ8PCJsb2kgeHUgbHkgLGRzIHJvbmcgaG9hYyBrbyBob3AgbGUiPDxlbmRsOwoJfQoJaWYoaW5zZXJ0KDMsTCx0YW9zdigxMDA2LCJsZSB0aGkiLCJkb2FuIiwibnUiLDE5OTgsNy42KSkpewoJCWNvdXQ8PCJjaGVuIHN2IHRoYW5oIGNvbmciPDxlbmRsOwoJCWNvdXQ8PCI9PT09PT09PT09PT09PT09PURBTkggU0FDSCBTSU5IIFZJRU49PT09PT09PT09PT09PSI8PGVuZGw7CgkJc2hvd0xpc3QoTCk7Cgl9CgllbHNlewoJCWNvdXQ8PCJEUyBmdWxsIG9yIHZpIHRyaSBrbyBob3AgbGUhIjw8ZW5kbDsKCX0KCXNlbGVjdGlvblNvcnQoTCk7Cgljb3V0PDwiPT09PT09PT09PT09REFOSCBTQUNIIFNJTkggVklFTiBzYXUga2hpIHNhcCB4ZXA9PT09PT09PT09PSI8PGVuZGw7CglzaG93TGlzdChMKTsKCXJldHVybiAwOwp9Cg==