Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Tìm tên đọc được từ tệp và hiện thị thông tin đọc được từ tệp!

20:36 01-06-2018 734 lượt xem 5 bình luận 23:30 08-06-2018

Em viết như mày mà sao khi em chạy thì nó lại không hiện ra tên mình muốn tìm kiếm ạ. Mọi người giúp em với. Em cảm ơn ạ.

#include<stdio.h>
#include<conio.h>
#include <string.h>
struct GiangVien{
    char HoTen[24];
    int ThamNien,ChuyenMon1,ChuyenMon2,ChuyenMon3;
};
void Nhap(GiangVien p[], int &n){
    FILE *f;
    f=fopen("giangvien.txt","r");
    fscanf(f,"%d\n",&n);
    for(int i=0;i<=n;i++){
        fgets(p[i].HoTen,24,f);
        fscanf(f,"%d\n %d\n %d\n %d\n",&p[i].ThamNien,&p[i].ChuyenMon1,&p[i].ChuyenMon2,&p[i].ChuyenMon3);

    }
    fclose(f);
}
void Xuat(GiangVien p[], int n){
    for(int i=0;i<n;i++){
    printf("\n------------------------------------\n");
    printf("\nHo va ten: %s",p[i].HoTen);
    printf("\nTham nien: %d",p[i].ThamNien);
    printf("\nChuyen Mon 1: %d",p[i].ChuyenMon1);
    printf("\nChuyen Mon 2: %d",p[i].ChuyenMon2);
    printf("\nChuyen Mon 3: %d",p[i].ChuyenMon3);
    printf("\n------------------------------------\n");
    }
}
void TimKiem(GiangVien p[],int n){
	char Ten[24];
	printf("Nhap Ten:\n");
	gets(Ten);
	for(int i=0;i<=n;i++)
	{
		if(strcmp(p[i].HoTen,Ten)==0)
		{
	printf("\n------------------------------------\n");
    printf("\nHo va ten: %s",p[i].HoTen);
    printf("\nTham nien: %d",p[i].ThamNien);
    printf("\nChuyen Mon 1: %d",p[i].ChuyenMon1);
    printf("\nChuyen Mon 2: %d",p[i].ChuyenMon2);
    printf("\nChuyen Mon 3: %d",p[i].ChuyenMon3);
    printf("\n------------------------------------\n");
		}
	}
}
int main(){
int n;
GiangVien p[100];
Nhap(p,n);
Xuat(p,n);
TimKiem(p,n);
getch();
}

 

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
lequangit99 đã bình luận 23:30 08-06-2018
#include<stdio.h>
#include<conio.h>
#include<string.h>
struct GiangVien{
    char HoTen[30];
    int ThamNien,ChuyenMon;
};
void Nhap(GiangVien p[], int &n){
    FILE *f;
    f=fopen("giangvien.txt","r");
    fscanf(f,"%d\n",&n);
    for(int i=0;i<n;i++){
        fflush(stdin);
		fgets(p[i].HoTen,30,f);
        fscanf(f,"%d\n %d\n",&p[i].ThamNien,&p[i].ChuyenMon);
    }
    fclose(f);
}
void ThamNienTB(GiangVien p[], int n){
	int dem1=0,dem2=0,dem3=0,tong1=0,tong2=0,tong3=0;
	float tb1=0,tb2=0,tb3=0;
	for(int i=0;i<n;i++){
	if(p[i].ChuyenMon==1){
		dem1++;
		tong1+=p[i].ThamNien;
	}
	else if(p[i].ChuyenMon==2){
		dem2++;
		tong2+=p[i].ThamNien;
	}
	else{
		dem3++;
		tong3+=p[i].ThamNien;
	}
}
	tb1=tong1/dem1;
	printf("\nTham Nien Trung Binh Cua Chuyen Mon 1 la: %.1f\n",tb1);
	tb2=tong2/dem2;
	printf("\nTham Nien Trung Binh Cua Chuyen Mon 2 la: %.1f\n",tb2);
	tb3=tong3/dem3;
	printf("\nTham Nien Trung Binh Cua Chuyen Mon 3 la: %.1f\n",tb3);
}	
void SapXepThamNien(GiangVien p[], int n){
	for( int i = 0; i< n-1; i++ ){
		for( int j = 1 + i; j < n; j++ ){
			if( p[i].ThamNien > p[j].ThamNien){
				GiangVien s = p[i];
				p[i] = p[j];
				p[j] = s;
			}
}
}
}
void XuatFileKhongSapXep(GiangVien p[], int n){
	FILE *f;
	f=fopen("out.txt","w");
	fprintf(f,"Danh Sach Giang Vien Ban Dau\n");
    for(int i=0;i<n;i++){
    fprintf(f,"\n------------------------------------\n");
    fprintf(f,"\nHo va ten: %s",p[i].HoTen);
    fprintf(f,"\nTham nien: %d",p[i].ThamNien);
    fprintf(f,"\nChuyen Mon : %d",p[i].ChuyenMon);
    fprintf(f,"\n------------------------------------\n");
    }
    fprintf(f,"\n***************************************\n");
    fclose(f);
}
void XuatFileSapXep(GiangVien p[], int n){
	FILE *f;
	f=fopen("out.txt","a");
	fprintf(f,"\nDanh Sach Giang Vien Sap Xep Theo Tham Nien\n");
    for(int i=0;i<n;i++){
    fprintf(f,"\n------------------------------------\n");
    fprintf(f,"\nHo va ten: %s",p[i].HoTen);
    fprintf(f,"\nTham nien: %d",p[i].ThamNien);
    fprintf(f,"\nChuyen Mon : %d",p[i].ChuyenMon);
    fprintf(f,"\n------------------------------------\n");
    }
    fprintf(f,"\n***************************************\n");
    fclose(f);
}
void XuatFileChuyenMon(GiangVien p[],int n){
	FILE *f1;
	f1=fopen("out.txt","a");
	fprintf(f1,"\nDanh Sach Giang Vien Sap Xep Theo Chuyen Mon\n");
	for(int i=0;i<n;i++){
		if(p[i].ChuyenMon==1){
		fprintf(f1,"\n------------------------------------\n");
    	fprintf(f1,"\nHo va ten: %s",p[i].HoTen);
    	fprintf(f1,"\nTham nien: %d",p[i].ThamNien);
    	fprintf(f1,"\nChuyen Mon : %d",p[i].ChuyenMon);
    	fprintf(f1,"\n------------------------------------\n");
		}
		else if(p[i].ChuyenMon==2){
		fprintf(f1,"\n------------------------------------\n");
    	fprintf(f1,"\nHo va ten: %s",p[i].HoTen);
    	fprintf(f1,"\nTham nien: %d",p[i].ThamNien);
    	fprintf(f1,"\nChuyen Mon : %d",p[i].ChuyenMon);
    	fprintf(f1,"\n------------------------------------\n");
		}
		else{
		fprintf(f1,"\n------------------------------------\n");
    	fprintf(f1,"\nHo va ten: %s",p[i].HoTen);
    	fprintf(f1,"\nTham nien: %d",p[i].ThamNien);
    	fprintf(f1,"\nChuyen Mon : %d",p[i].ChuyenMon);
    	fprintf(f1,"\n------------------------------------\n");
		}
	}
	fclose(f1);
}
void XuatFileThamNien(GiangVien p[],int n){
	FILE *f;
	f=fopen("out.txt","a");
	fprintf(f,"\nDanh Sach Giang Vien Theo Tung Tham Nien\n");
	for(int i=0;i<n;i++){
		for( int j = 10; j < 50; j++ ){
		if(p[i].ThamNien==j){
		fprintf(f,"\n------------------------------------\n");
    	fprintf(f,"\nHo va ten: %s",p[i].HoTen);
    	fprintf(f,"\nTham nien: %d",p[i].ThamNien);
    	fprintf(f,"\nChuyen Mon : %d",p[i].ChuyenMon);
    	fprintf(f,"\n------------------------------------\n");
		}
	}
}
	fclose(f);
}
void TimTenGV(GiangVien p[],int n){
    char HoTen[30];
    printf("Nhap Ten Giang Vien Can Xem Thong Tin:\n");
    fflush(stdin);
    gets(HoTen);
	for(int i=0;i<n;i++){
       if(strcmp(HoTen,p[i].HoTen)==0){
    	printf("\n------------------------------------\n");
    	printf("\nHo va ten: %s",p[i].HoTen);
    	printf("\nTham nien: %d",p[i].ThamNien);
		printf("\nChuyen Mon : %d",p[i].ChuyenMon);
    	printf("\n------------------------------------\n");
	}
}
}
int main(){
int n;
GiangVien p[100];
Nhap(p,n);
XuatFileKhongSapXep(p,n);
SapXepThamNien(p,n);
XuatFileSapXep(p,n);
XuatFileChuyenMon(p,n);
XuatFileThamNien(p,n);
ThamNienTB(p,n);
TimTenGV(p,n);
getch();
return 0;
}

đề bài

bạn có thể sửa giúp mình được không, đây là bài mình đã làm lại nhưng vẫn bị lỗi đó

đây là file giangvien.txt của mình. Mình vẫn không thể tìm kiếm tên của giảng viên và hiển thị ra màn hình. Những ý còn lại mình đã làm được. mình cảm ơn bạn rất nhiều

giangvien.txt

9
Le Quang
12
1
Linh Anh
14
2
Luu Hao
15
2
Mac Tuyen
20
3
Ly Thuong
14
1
Hoang Tuan
20
3
Tai Thuc
15
2
Hoang Giang
14
1
Huu Hung
14
2

K9 SuperAdmin, KquizAdmin, KquizAuthor đã bình luận 10:45 06-06-2018

bạn muốn tìm giảng viên bạn muốn theo điều kiện gì. mình thấy bạn xuất từ đầu tới n trong hàm tìm kiếm của bạn. bạn có thể thêm parameter như họ tên vào rồi duyet hết mảng. nếu họ tên trùng thì xuất ra luôn.

lequangit99 đã bình luận 22:07 03-06-2018

hàm in tất cả giảng viên là hàm trên mà anh. em không làm được chỗ tìm giảng mình muốn thôi ý anh

 

lequangit99 đã bình luận 22:07 03-06-2018

hàm in tất cả giảng viên là hàm trên mà anh. em không làm được chỗ tìm giảng mình muốn thôi ý anh

 

K9 SuperAdmin, KquizAdmin, KquizAuthor đã bình luận 19:15 02-06-2018

ủa bạn viết hàm in ra tất cả giang viên hở?

Câu hỏi mới nhất