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

Joined
May 17, 2011
Messages
651
Reactions
319
MR
0.003
Phone Number
Call me! Call me!
Facebook
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 ! :)
 
Cậu đọc cuốn cấu trúc dữ liệu và giải thuật của đh KHTN nhé, rất dễ hiểu...
Lúc trước học môn này cũng ko hiểu đến ngày ôn thi đọc sách này mới hiểu đó..
 
#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é
 
Đọ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:
Hôm đó e ko đi học mấy bác ak :( ngồi học cả buổi tối rồi đó chứ :"> thank cả nhà e đã hiểu hi hi :x :x :x :x :x :x
 

Announcements

Today's birthdays

Forum statistics

Threads
421,428
Messages
7,110,304
Members
173,597
Latest member
NHL0105

Most viewed of week

Most discussed of week

Most viewed of week

Most discussed of week

Back
Top Bottom