Ai học CNTT hộ mình với . CTDL&GT

Joined
May 17, 2011
Messages
644
Reactions
319
MR
0.003
Call me! Call me! Follow me on Facebook
Mình đang học môn cấu trúc dữ liệu và giải thuật . chiều hôm trước t ko học đi với lớp trưởng có tí việc nên giờ nhìn bt hok hiểu j phần này lun

Bài toán về phần danh sách liên kết đơn .
Đề bài là : để quản lý SV người ta có các thuộc tính về họ tên, ngày sinh , giới tính , quê quán ,điểm trung bình
1. sử dụng danh sách liên kết đơn để đưa những thông tin của sinh viên vào .( cô giáo gợi ý là viết hàm nhập )
2. đếm số lượng sv có điểm khá
3. sắp xếp danh sách sv theo thứ tự tăng dần của điểm trung bình

anh chị nào biết giải hộ t với gần thi rồi ôn lại còn mỗi phần này chưa ok dc mong dc sự giúp đỡ hi thank ! :)
 
Joined
Apr 13, 2010
Messages
2,687
Reactions
980
MR
0.000
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
struct SinhVien
{
char masv[10],hoten[30];
int gioitinh;
float dtb;
};
struct tNODE
{
SinhVien sv;
struct tNODE *pNext;
};
typedef struct tNODE NODE;
struct tLIST
{
NODE *head,*tail;
};
typedef struct tLIST LIST;
void khoitao(LIST &l)
{
l.head=l.tail=NULL;
}
void nhap(SinhVien &sv)
{
cout<<"Nhap masv: ";

gets(sv.masv);
cout<<"Nhap ho ten: ";


gets(sv.hoten);
cout<<"Gioi tinh<nam 1|0 nu> ";
cin>>sv.gioitinh;
cout<<"Nhap DTB ";
cin>>sv.dtb;
cin.ignore();
}
void xuat(SinhVien &sv)
{
cout<<"\nmasv: ";
cout<<sv.masv;
cout<<"\nho ten: ";
cout<<sv.hoten;
cout<<"\nGioi tinh<nam 1|0 nu> ";
cout<<sv.gioitinh;
cout<<"\nDTB ";
cout<<sv.dtb;
}


NODE *taonode(SinhVien x)
{
NODE *p;
p=new NODE;
if(p==NULL)
{
cout<<"Khong cap phat duoc bo nho ";
exit(0);
}
p->sv = x;
p->pNext=NULL;

}
void themdau(LIST &l,NODE *p)
{
if(l.head==NULL)
l.head=l.tail=p;
else
{
p->pNext = l.head;
l.head=p;
}
}
void nhapds(LIST &l)
{
char kt;
SinhVien sv;
NODE *p;
khoitao(l);
do
{
cout<<"nhap danh sach, exit 0,continue 1\n";
//cin.ignore(1);
kt=getch();
if(kt=='0')
break;
nhap(sv);
p=taonode(sv);
themdau(l,p);
}while(true);
}
void xuatds(LIST l)
{

NODE *p;
for(p=l.head;p!=NULL;p=p->pNext)
xuat(p->sv);
}
int main()
{
LIST l;
nhapds(l);
cout<<"Danh sach vua nhap ";
xuatds(l);
getch();

}

Lấy mà chạy rồi sửa theo đề bài nhé
 

namit2507

Hero
Joined
Apr 22, 2011
Messages
2,629
Reactions
2,691
MR
0.004
Đọc thêm ở đây: http://namit.info/blog/?p=196

cấu trúc của một node gồm data và địa chỉ của node tiếp theo. Trong trường hợp của bạn, data có kiểu dữ liệu là SinhVien

Đại khái bạn có thể khai báo như sau:

struct SinhVien
{
____char hoten[30];
____char ngaysinh[10];
____char gioitinh[3];
____char quequan[50];
____float dtb;
};

struct NODE
{
____SinhVien sv;
____NODE *next;
};


Một số hàm cần thiết:

void NhapSinhVien()
{
____SinhVien sv;
____//Nhập thông tin cho sinh viên sv
____AddTail(sv);
}


Phần còn lại bạn tự lo, có gì không hiểu thì nhờ mọi người giúp chứ mình nghĩ ko ai đủ thời gian viết 1 bài hoàn thiện cho bạn được đâu :m003:
 
Last edited by a moderator:

Announcements

Today's birthdays

Forum statistics

Threads
426,709
Messages
7,182,741
Members
179,069
Latest member
gooooooanaly

Most viewed of week

Most viewed of week

Back
Top Bottom