Chủ đề: bài tập về danh sách móc nối đơn
-
05-10-2013, 11:58 AM #1Banned
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
bài tập về danh sách móc nối đơn
xin chào tất cả anh em tren diễn đàn.em là thành viên mới muốn thỉnh giáo các sư phụ[IMG]images/smilies/online.gif[/IMG].em mới tiếp xúc với lập trình và có một bài tập về danh sách móc nối đơn về quản lí danh sách sinh viên và một đoạn code xem trên mạng song em xem không hiểu mong anh em trên diễn đàn chỉ cho.những điều em cần hỏi em đều ghi chú ben cạnh đoạn code.nói chung anh em nào có thể chú thích bên mỗi dòng code ngoài những điều em hỏi cho em(vì cả bài code này em rất lơ mơ) em cảm kích vô cùng.tks tất cả anh em trên diễn đàn.
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<alloc.h>
#include<iomanip.h>
struct svien
{
char masv[10];
char hoten[20];
float dtb;
} ;
struct dssv
{
svien ptu;//đây có phải là đoạn infor lưu trữ máv hoten dtb của node k?
dssv *next;
}*l;
void nhap(dssv *&l)//ý nghĩa của *& trong khai báo hàm
{
dssv *q;//đoạn này có nghĩa là gì?
char s[10];
l=new dssv;
q=l;
cout<<"Nhap ma sinh vien: ";
gets(l->ptu.masv);
cout<<"Nhap ho ten sinh vien: ";
gets(l->ptu.hoten);
cout<<"Nhap diem trung binh: ";
cin>>l->ptu.dtb;
cout<<"Nhap ma sinh vien: ";
gets(s);
while(strcmp(s,""))
{
q->next=new dssv;
q=q->next;
strcpy(q->ptu.masv,s);
cout<<"Nhap ho ten: ";
gets(q->ptu.hoten);
cout<<"Nhap diem tb: ";
cin>>q->ptu.dtb;
cout<<"Nhap ma sinh vien: ";
gets(s);
}
q->next=NULL;
}
void hien(dssv *l)
{
while(l!=NULL)
{
cout<<"
"<<l->ptu.masv<<setw(20)<<l->ptu.hoten<<setw(10)<<l->ptu.dtb<<"
";
l=l->next;
}
}
void sapxep(dssv *&l)
{
dssv *p,*q;
svien tg;
if(l!= NULL)
{
p=l;
while(p->next!=NULL)
{
q= p->next;
while(q!=NULL)
{
if(p->ptu.dtb<q->ptu.dtb)
{
tg=q->ptu;
q->ptu=p->ptu;
p->ptu=tg;
}
q=q->next;
}
p=p->next;
}
}
}
void xoa(dssv*&l)
{
if (l!=NULL)
{dssv*p=l,*q;
while(p->next!=NULL)
{if (p->next->ptu.dtb<5.0)
{
q=p->next;
p->next=q->next;
delete q;
}
else p=p->next;
}
}
}
void chencuoi(dssv *&l)
{ dssv *q=new dssv;
cout<<"Nhap ma sinh vien: ";
gets(q->ptu.masv);
cout<<"Nhap ho ten sinh vien: ";
gets(q->ptu.hoten);
cout<<"Nhap diem trung binh: ";
cin>>q->ptu.dtb;
q->next=NULL;
if (l==NULL)
l=q;
else
{dssv *p=l;
while(p->next!=NULL)
p=p->next;
p->next=q;
}
}
void chendau(dssv *&l)
{ dssv *q=new dssv;
cout<<"Nhap ma sinh vien: ";
gets(q->ptu.masv);
cout<<"Nhap ho ten sinh vien: ";
gets(q->ptu.hoten);
cout<<"Nhap diem trung binh: ";
cin>>q->ptu.dtb;
q->next=l;
l=q;
}
void chensx(dssv *&l)
{
dssv *q=new dssv;
cout<<"Nhap ma sinh vien can chen: ";
gets(q->ptu.masv);
cout<<"Nhap ho ten sinh vien: ";
gets(q->ptu.hoten);
cout<<"Nhap diem trung binh: ";
cin>>q->ptu.dtb;
if(l==NULL)
{l=q;}
dssv *p;
p=l;
{
while((p->next!=NULL)&&(p->next->ptu.dtb<q->ptu.dtb))
{q->next=p->next;
p->next=q;
}
}
}
main()
{
nhap(l);
//l=NULL;
hien(l);
sapxep(l);
cout<<"
Sau khi sap xep: ";
hien(l);
//xoa(l);
//cout<<"
Sau khi xoa dtb <5: ";
//chencuoi(l);
//chendau(l);
//hien(l);
chensx(l);
cout<<"
Sau khi chen: ";
hien(l);
getch();
}View more random threads:
- Code tìm điểm lồi
- Xin hỏi cách ghép chuỗi
- Giúp em trả lời cái này với!
- Giải thích dùm em cái stack (dùng con trỏ) ?
- Giup đếm số lượng số fibinaci trong khoảng lớn được,
- Biểu diễn phân số dưới dạng số thập phân
- Lỗi code bài toán Mã đi tuần
- Bài toán tích hợp 4 bài lập trình đơn giản
- Mấy PRO sửa giùm cái chương trình C Quản lý sinh viên bị lỗi
- sua lỗi giùm gấp nha.
-
05-10-2013, 03:56 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Danh sách liên kết đơn là một dạng lưu trữ dữ liệu động. Phần từ trước móc nối với phần tử sau bằng một biến con trỏ.
Mã://Khai báo cấu trúc sinh viêntypedef struct SinhVien{ char MaSo[10]; char HoTen[20]; float DTB;} SV;//Định nghĩa danh sáchtypedef struct SVNode{ SV Data;//Dữ liệu struct Node* pNext;//Con trỏ đến phần tử kế tiếp} Node;//Định nghĩa LIST sinh viên typedef struct SVLIST{ Node* Head; Node* Tail;} LIST;
Mã://Nhập từ bàn phím rùi truyền dữ liệu vào hàm này.Node* CreateNode(char* Ms, char Ten, float Diem){ Node* p = new Node; if(p == NULL) exit(1); strcpy(p->MaSo, Ms); strcpy(p->HoTen, Ten); p->DTB = Diem; return p;}//Khởi tạo listvoid CreateList(LIST& L){ L.Head = L.Tail = NULL;}//Chèn đầuint AddHead(LIST &L,Node* p){ if(p == NULL) return 0; if(L.Head == NULL){ L.Head = L.Tail = p; }else{ p->pNext = L.Head; L.Head = p; } return 1;}void PrintList(LIST L){ if(L.head){ printf("%s\t%s\t%f ",L.Head->MaSo,L.Head->HoTen,L.Head->DTB); L.Head = L.Head->pNext; PrintList(L); }}
Ngọc Bích xanh bản chất thuộc dòng đá đá hoa (jade). Và cẩm thạch là tên gọi chung của ngọc bích. Vì thực chất chúng thuộc dòng đá đa khoáng được hình thành từ chất Silicat dưới dạng dioxy. Ngọc bích...
Chia sẻ Vòng tay ngọc bích xanh là...