Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define fbin "thieumao.txt"
- typedef struct DanhSach{
- char Ho_ten[50], Que[50];
- float Diem_TB;
- } DS;
- void input(DS sv[], int *n);
- void writeBin(DS sv[], int n);
- void readBin(DS sv[], int *n);
- int main() {
- DS sv[50];
- int n, i;
- int select;
- do {
- printf("1: Nhap\n2: Xuat\n3: Sua\n4: Thoat\n");
- printf("Enter the number to work: ");
- scanf("%d", &select);
- switch(select){
- case 1: {
- printf("DOC\n");
- input(sv, &n);
- writeBin(sv, n);
- break;
- }
- case 2: {
- printf("XUAT\n");
- readBin(sv, &n);
- output(sv, n);
- break;
- }
- case 3: {
- printf("SUA\n");
- readBin(sv, &n);
- int i;
- printf("Nhap STT sinh vien can sua Diem_TB: ");
- scanf("%d",&i);
- printf("Nhap Diem_TB: ");
- scanf("%1f", &sv[i-1].Diem_TB);
- writeBin(sv, n);
- printf("\nSAU KHI SUA:\n");
- output(sv, n);
- break;
- }
- case 4: return 0;
- default : printf("LOI\n"); break;
- }
- }
- while (select != 4);
- return 0;
- }
- void input(DS sv[], int *n){
- int i;
- char s[50];
- printf("Nhap so luong sinh vien: ");
- scanf("%d", n);
- gets(s);
- printf("\n");
- for (i = 0; i < (*n); i++){
- printf("\nNhap sinh vien thu %d \n",i+1);
- printf("\tHo ten: ");
- gets(sv[i].Ho_ten);
- printf("\tQue: ");
- gets(sv[i].Que);
- printf("\tDiem TB: ");
- scanf("%1f", &sv[i].Diem_TB);
- gets(s);
- }
- }
- void writeBin(DS sv[], int n){
- FILE *f = fopen(fbin,"wb");;
- int i;
- if(f==NULL) printf("Error load file");
- else fwrite(sv,sizeof(DS),n,f);
- fclose(f);
- }
- void readBin(DS sv[], int *n){
- FILE *f = fopen(fbin,"rb");
- fseek(f,0,SEEK_END); //Nhay ve cuoi file, di chuyen di 0 vi tri
- (*n) = (ftell(f)+1)/sizeof(DS); //ftell(); tra ve vi tri hien tai cua con tro
- // SEEK_CUR: di chuyen bat dau tu vi tri hien tai cua con tro, chi dung trong fseek()
- fseek(f,0,SEEK_SET); //Nhay ve dau file, di chuyen di 0 vi tri
- fread(sv,sizeof(DS),(*n),f);
- fclose(f);
- }
- char Ho_ten[50], Que[50];
- float Diem_TB;
- void output(DS sv[], int n){
- int i;
- printf("%-10s %-10s %-15s %-10s\n", "STT", "Ho_ten", "Que", "Diem_TB");
- for (i = 0; i < n; i++)
- printf("%-10d %-10s %-15s %-10.2lf\n", i + 1, sv[i].Ho_ten, sv[i].Que, sv[i].Diem_TB);
- }
Advertisement
Add Comment
Please, Sign In to add comment