01/10/2018, 12:04

Liên kết đơn lồng trong 1 liên kết đơn khác (đọc từ file)

void open_file_sv(char *txt)
{
	char file[10];
	printf("cap nhat file diem cua tung sinh vien ");
	gets(file);

	ds fmh;//ds toàn bộ cái file
	mon_null(fmh);//gán null
	open_file_mh(fmh,file);//có ds null > add tail > ra khỏi hàm đã có 1 ds mh của các sinh viên (toàn bộ file)
	
	FILE *o=fopen(txt,"r");

	list lsv;	//khai báo 1 list sv có 2 thành phần
	list_null(lsv);	//list sv rỗng.

	int n;
	char c;
	fscanf(o,"%d",&n);		fscanf(o,"%c",&c);
	printf("	Ma		   Ho       Ten     Ns
");
	for(int i=0;i<n;i++)
	{
		sv a;
		fgets(a.ma,12,o);	a.ma[strlen(a.ma)-1]=NULL;
		fgets(a.ho,22,o);	a.ho[strlen(a.ho)-1]=NULL;
		fgets(a.ten,12,o);	a.ten[strlen(a.ten)-1]=NULL;
		fscanf(o,"%d",&a.ns);	fscanf(o,"%c",&c);	

		mon_null(a.mh);//khởi tạo

		node *p=taosv(a);
		add_tail(lsv,p);
		xuat_sv(p);
		printf("   MaM				 TenM   DTL   DGK   DCK   STC
");

		mh_sv(fmh,a.mh);
	}
	/*xuat_dssv(lsv);*/

	fclose(o);
}

mình đã có 1 list file toàn bộ sv và 1 list file toàn bộ các môn học giờ mình muốn từ file môn học đó lấy ra n môn và gán cho sv thứ 1,2,3,4,… thì phải làm sao ?

HK boy viết 14:07 ngày 01/10/2018

Ý bạn là như thế nào?

Nguyễn Phú Thành viết 14:18 ngày 01/10/2018

đây là lk đơn của 1 ds sv

struct sv
{
   int stt;
   char ma[11];
   char ho[21];
   char ten[11];
   int ns;
   ds mh;//danh sách (info điểm) từ đầu đến cuối của các môn học mà sv này theo học
};

cái ds mh là 1 liên kết đơn bao gồm các môn mà sv đó đang theo học (tất cả nhập từ file chỉ dùng 2 file duy nhất đã đc xếp theo thứ tự mà sv đó đã theo học ) >> 1 file nhập vào thông tin sv 1 file cập nhật thông tin các mh mà sv đó đang học.
VD: 1 file MH gồm 10 môn trong đó 3 môn đầu là của sv thứ 1 4 môn sau của sv thứ 2 và 3 môn còn lại của sv thứ 3

mình đã có 1 danh sách liên kết đơn gồm 10 môn học rồi giờ mình ko biết làm sao cắt nó ra rồi truyền nó vào cái ds mh; đấy
p/s:bài nếu cho dùng ko giới hạn file txt thì rất dễ nhưng chỉ cho dùng 1 file để nhập mh thì mình ko biết.

HK boy viết 14:18 ngày 01/10/2018

Cho mình demo 2 file txt được không, nói thế này phức tạp quá.

Nguyễn Phú Thành viết 14:16 ngày 01/10/2018

file text ấy hả hay cái hàm ?

HK boy viết 14:16 ngày 01/10/2018

Mình nói rõ rồi mà, 2 file text.

Cho mình demo 2 file txt được không

Nguyễn Phú Thành viết 14:05 ngày 01/10/2018
7
521332
toan cao cap A1
5.2
6.2
4.6
3
213213
cau truc du lieu va giai thuat
7.8
8.6
6.8
3
123123
an toan lao dong
6.7
0
7.6
2
512312
tu tuong ho chi minh
5.6
7.6
9.5
3
667655
phap luat dai cuong
6.5
0
7.5
2
666666
vat li dai cuong
4.5
6.6
3.2
3
111232
xac xuat va thong ke
6.2
7.2
3.1
3

file MH con nhiều lắm post tầm 7 môn thôi

Nguyễn Phú Thành viết 14:05 ngày 01/10/2018
10
2001140230
Nguyen Phu
Thanh
1996
3001140230
Tran Minh 
Anh
1998
2001140211
Vu Van
Vinh
1995
2002052122
Tran Minh
Hai
1992
3000232323
Dinh Nguyen Thuy
Dung
1996
1232929392
Nguyen Son
Tung
1991
2312385283
Nguyen Kim
Luyen
1994
1231231232
Tran Le
Binh
1999
2000001231
Dinh Cong
Dung
2005
1020322323
Tran Van
Dai
2001
HK boy viết 14:15 ngày 01/10/2018

521332
toan cao cap A1
5.2
6.2
4.6
3

Bạn giải thích từng dòng được không?

Nguyễn Phú Thành viết 14:18 ngày 01/10/2018

1.mã mh chuỗi
2.tên mh chuỗi
3.điểm tiểu luận float
4.điểm giữa kì float
5.điểm cuối kì float
6.số tín chỉ int

Nguyễn Phú Thành viết 14:07 ngày 01/10/2018

mô hình cái bài này nó là như vậy nếu bạn ko hiểu.

Bài liên quan
0