Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #define N 100
- typedef struct
- {
- float diem1 , diem2 , diem3 ;
- }diemsinhvien ;
- typedef struct
- {
- int masv ;
- char tensv [N] ;
- diemsinhvien diem ;
- }sinhvien ;
- FILE *f ;
- sinhvien sv ;
- int const size=sizeof(sinhvien);
- void themmoi ( )
- {
- int them ;
- scanf ( "%d\n" , &them ) ;
- int sosv = 1 ; // 0 thì dúng hon co mà thích d? 1 //
- f = fopen ( "B17DCAT089.bin", "rb" );
- while ( fread ( &sv , size , 1 , f ) == 1 )
- sosv++;
- fclose (f) ;
- int i;
- f = fopen ( "B17DCAT089.bin" , "ab" ) ;
- for ( i = sosv ; i < sosv + them ; i++ )
- {
- sv.masv = i ;
- gets ( sv.tensv ) ;
- scanf ("%f%f%f\n" , &sv.diem.diem1 , &sv.diem.diem2 , &sv.diem.diem3 ) ;
- fwrite ( &sv , size , 1 ,f) ;
- }
- fclose (f) ;
- printf ( "%d\n" , them ) ;
- }
- void capnhat ( )
- {
- sinhvien svsua ;
- scanf ( "%d\n" , &svsua.masv ) ;
- gets ( svsua.tensv ) ;
- scanf ( "%f %f %f" , &svsua.diem.diem1 , &svsua.diem.diem2 , &svsua.diem.diem3 ) ;
- f = fopen ( "B17DCAT089.bin" , "rb+") ;
- rewind (f) ;
- while ( fread ( &sv , size , 1 , f ) == 1)
- {
- if ( sv.masv == svsua.masv )
- {
- fseek ( f , - size , SEEK_CUR );
- fwrite ( &svsua , size , 1 , f ) ;
- break ;
- }
- }
- fclose (f) ;
- printf ( "%d" , svsua.masv ) ;
- }
- void dssv ()
- {
- f = fopen ( "B17DCAT089.bin" , "rb" ) ;
- rewind ( f ) ;
- while ( fread ( &sv , size , 1 ,f ) == 1)
- {
- if ( sv.diem.diem1 < sv.diem.diem2 && sv.diem.diem2 < sv.diem.diem3 )
- {
- printf ( "%d %s " , sv.masv , sv.tensv ) ;
- printf ( "%.1f %.1f %.1f \n" , sv.diem.diem1 , sv.diem.diem2 , sv.diem.diem3 ) ;
- }
- }
- fclose ( f ) ;
- }
- int main ()
- {
- int chucnang ;
- scanf ( "%d" , &chucnang ) ;
- switch ( chucnang )
- {
- case 1 : themmoi () ;
- break ;
- case 2 : capnhat () ;
- break ;
- case 3 : dssv ();
- default : break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement