|
| Đăng Kí Đề Tài "Danh Sách Móc Nối" -->> HERE !!! | |
| | Tác giả | Thông điệp |
---|
atarashj
Tổng số bài gửi : 8 Points : 5176 Reputation : 0 Join date : 18/09/2010
| Tiêu đề: Đăng Kí Đề Tài "Danh Sách Móc Nối" -->> HERE !!! Sat Sep 18, 2010 12:29 am | |
| Ai chọn đề tài này thì đăng kí nhé | |
| | | iShinichj
Tổng số bài gửi : 46 Points : 5237 Reputation : 0 Join date : 01/09/2010 Age : 34 Đến từ : HUT
| Tiêu đề: Re: Đăng Kí Đề Tài "Danh Sách Móc Nối" -->> HERE !!! Sat Sep 18, 2010 5:35 am | |
| Mình chọn đề tài này Ai cùng chí hướng thì nhào vô! | |
| | | hutboy90
Tổng số bài gửi : 4 Points : 5173 Reputation : 0 Join date : 11/09/2010
| Tiêu đề: Re: Đăng Kí Đề Tài "Danh Sách Móc Nối" -->> HERE !!! Sat Sep 18, 2010 6:07 am | |
| | |
| | | PhuongPhan
Tổng số bài gửi : 7 Points : 5186 Reputation : 0 Join date : 01/09/2010
| Tiêu đề: Re: Đăng Kí Đề Tài "Danh Sách Móc Nối" -->> HERE !!! Sat Sep 18, 2010 9:38 am | |
| Mình cũng đăng ký đề tài này. | |
| | | PhuongPhan
Tổng số bài gửi : 7 Points : 5186 Reputation : 0 Join date : 01/09/2010
| Tiêu đề: Re: Đăng Kí Đề Tài "Danh Sách Móc Nối" -->> HERE !!! Sat Sep 18, 2010 2:20 pm | |
| Chả bao giờ code giờ thử hoàn chỉnh bài vd trang 62 cuốn CTDL> cho quen "Danh sách nối đơn" mà fix lỗi mệt nghỉ. Giờ thì chương trình chạy được nhưng đang chạy lại báo lỗi, ông Hưng hay hutboy lấy về thử chạy fix hộ tôi cái nhé - Code:
-
#include<iostream> #include<conio.h> #include<ctime> #include<stdlib.h> #include<iomanip> using namespace std; struct pointerType{ int inf; struct pointerType *next;}; typedef struct pointerType pointerType; pointerType *insertHead(pointerType *first, int x);//Them dau pointerType *insertMiddle(pointerType *pred, int x);//Them giua void print(pointerType *first);//In ra man hinh int isEmpty(pointerType *first);//Kiem tra ds rong
int randomNumber(){ srand(time(0)); int randomNumber,number; randomNumber=rand(); number=randomNumber% 201-100; return(number); }
int main(){ pointerType *S1,*S2,*S3,*V1,*V2,*V3; int a,i,n; system ("cls");S1=NULL; //Tao phan tu dau tien a=randomNumber(); S1=insertHead(S1,a); //Nhap so luong phan tu cout<<"Nhap vao so luong phan tu n = "; cin>>n; cout<<"\n"; //Tao ngau nhien danh sach va dua ra man hinh V1=S1; for(i=2;i<=n;i++){ a=randomNumber(); V1=insertMiddle(V1,a); } cout<<"====> DANH SACH BAN DAU <==== \n"; print(S1); cout<<"\n"; //Phan chia danh sach V1=S1; S2=NULL; S3=NULL; while(V1){ if(V1->inf>0) if(!S2){S2=insertHead(S2,V1->inf); V2=S2;} else {V2=insertMiddle(V2,V1->inf); V2=V2->next;} if(V1->inf<0) if(!S3){S3=insertHead(S3,V1->inf); V3=S3;} else {V3=insertMiddle(V3,V1->inf); V3=V3->next;} if(!V1->inf){V1=V1->next;continue;} V1=V1->next; } //Dua ra man hinh 2 danh sach moi cout<<"====> DANH SACH SO DUONG <==== \n"; print(S2); cout<<"\n"; cout<<"====> DANH SACH SO AM <==== \n"; print(S3); cout<<"\n"; getch(); } //CTC: Chen nut dau danh sach pointerType *insertHead(pointerType *first,int x){ pointerType *tempNode; tempNode=new pointerType; tempNode->inf=x; tempNode->next=first; first=tempNode; return first; } //CTC: Chen nut vao giua danh sach pointerType *insertMiddle(pointerType *pred,int x){ pointerType *tempNode; tempNode=new pointerType; tempNode->inf=x; tempNode->next=pred->next; pred->next=tempNode; return tempNode; } //CTC: Dua ra man hinh tat ca danh sach void print(pointerType *first){ pointerType *tempNode; tempNode=new pointerType; int count=0; tempNode=first; while(tempNode){ cout<<setw(6)<<tempNode->inf;count++; tempNode=tempNode->next; if(count%12==0)cout<<"\n"; } cout<<"\n"; } //CTC: Kiem tra danh sach rong int isEmpty(pointerType *first) { return !first; }
| |
| | | iShinichj
Tổng số bài gửi : 46 Points : 5237 Reputation : 0 Join date : 01/09/2010 Age : 34 Đến từ : HUT
| Tiêu đề: Re: Đăng Kí Đề Tài "Danh Sách Móc Nối" -->> HERE !!! Sun Sep 19, 2010 12:12 am | |
| Tôi cũng có bài đó nhưng nhập trực tiếp các phần tử Tham khảo:
#include<iostream> #include<iomanip> #include<conio.h> using namespace std; typedef long ElementType; struct PointerType{ ElementType Inf; PointerType *Next; }; //Chen mot nut vao dau danh sach PointerType *Insert_ToHead(PointerType *First,ElementType x) { PointerType *TempNode; TempNode=(PointerType*)malloc(sizeof(PointerType)); TempNode->Inf=x; TempNode->Next=First; First=TempNode; return First; } //Chen mot nut vao giua danh sach PointerType *Insert_Middle(PointerType *Pred,ElementType x) { PointerType *TempNode; TempNode=(PointerType*)malloc(sizeof(PointerType)); TempNode->Inf=x; TempNode->Next=Pred->Next; Pred->Next=TempNode; return TempNode; } //Xoa nut o dau ds PointerType *Delete_Head(PointerType *First) { PointerType *TempNode; TempNode=First->Next; delete First; return TempNode; } //Xoa nut trong ds ElementType Delete(PointerType *Pred) { PointerType *TempNode; ElementType x; TempNode=Pred->Next; Pred->Next=Pred->Next->Next; x=TempNode->Inf; delete TempNode; return x; } //Hien thi danh sach void Print(PointerType *First) { PointerType *TempNode; TempNode=First;int count=0; while(TempNode) { cout<<setw(6)<<TempNode->Inf; TempNode=TempNode->Next; } printf("\n"); } //Kiem tra ds rong int IsEmpty(PointerType *First) { return !First; } //Xoa ds PointerType *MakeNull(PointerType *First) { while(!IsEmpty(First)) First=Delete_Head(First); return First; }
int main() { PointerType *S1,*S2,*S3,*V1,*V2,*V3; ElementType a[100]; int n; S1=NULL;S2=NULL;S3=NULL; cout<<"\n Nhap so luong phan tu n= "; cin>>n; cout<<"\n Nhap ds so nguyen: \n"; for(int i=1;i<=n;i++) cin>>a[i]; S1=Insert_ToHead(S1,a[1]); V1=S1; for(int i=2;i<=n;i++) V1=Insert_Middle(V1,a[i]); cout<<"\n Ds ban dau:"; Print(S1); V1=S1; while(V1){ if(V1->Inf>0) if(!S2) { S2=Insert_ToHead(S2,V1->Inf); V2=S2; } else { Insert_Middle(V2,V1->Inf); V2=V2->Next; } if(V1->Inf <0) if(!S3) { S3=Insert_ToHead(S3,V1->Inf); V3=S3; } else { Insert_Middle(V3,V1->Inf); V3=V3->Next; } V1=V1->Next; } cout<<"\n +DS so duong: "; Print(S2); cout<<"\n +DS so am: "; Print(S3); S1=MakeNull(V1); S2=MakeNull(S2); S3=MakeNull(S3); _getch(); }
| |
| | | PhuongPhan
Tổng số bài gửi : 7 Points : 5186 Reputation : 0 Join date : 01/09/2010
| Tiêu đề: Re: Đăng Kí Đề Tài "Danh Sách Móc Nối" -->> HERE !!! Sun Sep 19, 2010 1:08 am | |
| Uhm bài ông chạy "mượt" , ko lỗi lầm gì hết Cái của tôi trình dịch ko báo lỗi mà chạy giữa chừng thì thế này... Mà tôi hỏi tí...Chỗ ông khai báo... ---------------------- struct PointerType{ ElementType Inf; PointerType *Next; }; ---------------------- struct PointerType{ ElementType Inf; struct PointerType *Next; };typedef struct PointerType PointerType;--------------------- tôi cũng thấy trong sách của thầy như thế nhưng nghĩ là giả ngôn ngữ nên chả thử . tôi tưởng đầy đủ nó phải như ở dưới. Chẳng lẽ khi khai báo như cách trên thì nó ngầm định PointerType như một kiểu dữ liệu luôn ah? Tôi add nick ông rồi , onl thì confirm có gì tiện trao đổi | |
| | | mrmax
Tổng số bài gửi : 59 Points : 5277 Reputation : 0 Join date : 01/09/2010
| Tiêu đề: Re: Đăng Kí Đề Tài "Danh Sách Móc Nối" -->> HERE !!! Sun Sep 19, 2010 1:18 am | |
| cai typedef la ham dinh nghia co cung dc khong co cung chang sao.he.bon chen ti | |
| | | PhuongPhan
Tổng số bài gửi : 7 Points : 5186 Reputation : 0 Join date : 01/09/2010
| Tiêu đề: Re: Đăng Kí Đề Tài "Danh Sách Móc Nối" -->> HERE !!! Sun Sep 19, 2010 1:50 am | |
| hehe bon chen mái thoải... ý tôi là theo tôi hiểu typedef định nghĩa một kiểu dữ liệu mới là PointerType (~struct PointerType) thì khi ko dùng typedef lúc khai báo đáng lẽ phải cần đầy đủ ví dụ như nguyên mẫu hàm... PointerType *Insert_ToHead(PointerType *First,ElementType x); => struct PointerType *Insert_ToHead(PointerType *First,ElementType x); nhưng hình như ko dùng cũng chả sao? tôi có hiểu sai ở đâu ko nhỉ? | |
| | | mrmax
Tổng số bài gửi : 59 Points : 5277 Reputation : 0 Join date : 01/09/2010
| Tiêu đề: Re: Đăng Kí Đề Tài "Danh Sách Móc Nối" -->> HERE !!! Sun Sep 19, 2010 2:11 am | |
| đề nghị đọc lại sách tin học đại cương nhá cái hàm typedef chỉ để dặt tên mới cho thằng cấu trúc thôi còn nếu không thik đặt tên mới thì dùng tên cũ cũng đc còn cái kiểu đặt tên struct PointerType{ ElementType Inf; struct PointerType *Next; };typedef struct PointerType PointerType;theo tôi có cũng như không vì tên thằng mới với thằng cũ như nhau.người ta đặt lại tên chủ yếu là mang tính gợi nhớ khi lập trình và khi theo dõi code thôi cái thăng PointerType là 1 biến cấu trúc do vậy khi gọi tới nó là mặc định gọi tơi hàm định nghĩa cau trúc do vay du ko đặt tên thì vẫn có thể gọi PointerType *Insert_ToHead(PointerType *First,ElementType x);thay vì struct PointerType *Insert_ToHead(PointerType *First,ElementType x);(cái này chưa ai thấy làm bao h~ma hinh nhu go thang nay vao sai la cai chac ) | |
| | | mrmax
Tổng số bài gửi : 59 Points : 5277 Reputation : 0 Join date : 01/09/2010
| Tiêu đề: Re: Đăng Kí Đề Tài "Danh Sách Móc Nối" -->> HERE !!! Sun Sep 19, 2010 2:20 am | |
| mà các ông thử làm các bài liên quan đế đa thức hay liên kết đôi hoặc liên kết vòng coi thế nào
| |
| | | iShinichj
Tổng số bài gửi : 46 Points : 5237 Reputation : 0 Join date : 01/09/2010 Age : 34 Đến từ : HUT
| Tiêu đề: Re: Đăng Kí Đề Tài "Danh Sách Móc Nối" -->> HERE !!! Fri Sep 24, 2010 1:32 pm | |
| Bài tập:Danh sách nối kép vòng
Mọi người vào sửa giúp Nhập SV đầu tiên hiển thị ra->tên thiếu 1 kí tự
#include<iostream> #include<conio.h> #include<iomanip> #include<string.h> using namespace std;
struct SV{ char ht[25]; char ms[10]; float diem; }; typedef struct node{ SV info; struct node *next; struct node *prev; }Node; //Khoi tao nut moi Node *Khoitao(SV x) { Node *p=new Node; p->info=x; p->next=NULL; p->prev=NULL; return p; } //Kiem tra danh sach rong int IsEmpty(Node *Head) { if(Head==NULL) return 1; return 0; } //Them sv vao cuoi danh sach Node *Add_last(Node *Head,SV x) { Node *p; p=Khoitao(x); if(IsEmpty(Head)) { Head=p; p->next=Head; p->prev=Head; cout<<" Day la sinh vien dau tien\n"; } else { p->next=Head; p->prev=Head->prev; Head->prev->next=p; Head->prev=p; cout<<" Da them thanh cong\n"; } return Head; } //Nhap thong tin sinh vien Node *Nhap(Node *Head) { SV x; cout<<"\n Nhap thong tin ve sinh vien"; cout<<"\n Nhap '123' de hoan thanh\n"; do{ cout<<"\n+Ho ten: "; cin.ignore(1); cin.get(x.ht,25); if(strcmp(x.ht,"123")==0) break; cout<<" MSSV: "; cin.ignore(1); cin.get(x.ms,10); cout<<" Diem: "; cin>>x.diem; Head=Add_last(Head,x); }while(1); return Head; } //Hien thi thong tin sinh vien void Hienthi(Node *Head) { Node *sv=Head; if(IsEmpty(Head)) { cout<<"\n Danh sach rong"; return; } cout<<"\n THONG TIN SINH VIEN"; cout<<setiosflags(ios::fixed)<<setprecision(2); cout<<"\n"<<setw(25)<<"HO TEN"<<setw(12)<<"MSSV"<<setw(7)<<"DIEM"; while(sv->next!=Head) { cout<<"\n+"<<setw(25)<<sv->info.ht<<setw(10)<<sv->info.ms<<setw(8 ) <<sv->info.diem; sv=sv->next; } if(sv->next=Head) cout<<"\n+"<<setw(25)<<sv->info.ht<<setw(10)<<sv->info.ms<<setw(8 ) <<sv->info.diem; } int main() { Node *Head; Head=NULL; Head=Nhap(Head); Hienthi(Head); _getch(); }
ko tim ra loi gi? | |
| | | iShinichj
Tổng số bài gửi : 46 Points : 5237 Reputation : 0 Join date : 01/09/2010 Age : 34 Đến từ : HUT
| Tiêu đề: Re: Đăng Kí Đề Tài "Danh Sách Móc Nối" -->> HERE !!! Fri Sep 24, 2010 7:30 pm | |
| Hình như anh sinh viên đầu tiên bị hàm cin.ignore(1) lấy mất 1 kí tự nhưng những thằng sau lại ko sao? Mà cin.ignore(1) chỉ lấy 1 kí tự xuống dòng của cin.get(x.ht,25)! | |
| | | mrmax
Tổng số bài gửi : 59 Points : 5277 Reputation : 0 Join date : 01/09/2010
| Tiêu đề: Re: Đăng Kí Đề Tài "Danh Sách Móc Nối" -->> HERE !!! Fri Sep 24, 2010 9:27 pm | |
| lỗi là ở chỗ này
cin.ignore(1); cin.get(x.ht,25);
ông để thằng ignore trước thằng nhập thì nó chả xơi mất kí tự đầu tiên của thằng dầu tiên con những thằng sau ko việc j vì nó đã xơi Enter của thằng trước rồi
thường thì nhập xong rồi mới ignore -->đổi lại thứ tự lệnh. nhưng bài ông lại bị lỗi -->bó tay | |
| | | iShinichj
Tổng số bài gửi : 46 Points : 5237 Reputation : 0 Join date : 01/09/2010 Age : 34 Đến từ : HUT
| Tiêu đề: Re: Đăng Kí Đề Tài "Danh Sách Móc Nối" -->> HERE !!! Fri Sep 24, 2010 11:47 pm | |
| Vị trí đúng mà(Theo sách thầy Ất) Không hiểu sao nhưng tôi lập thành chương trình có switch....case thì không sao nữa | |
| | | iShinichj
Tổng số bài gửi : 46 Points : 5237 Reputation : 0 Join date : 01/09/2010 Age : 34 Đến từ : HUT
| Tiêu đề: Re: Đăng Kí Đề Tài "Danh Sách Móc Nối" -->> HERE !!! Sat Sep 25, 2010 1:06 am | |
| Hoàn thành code để ae duyệt
Danh sách LK đơn: Quản lý SV #include<iostream> #include<conio.h> #include<iomanip> #include<string.h> using namespace std;
struct SV { char ht[25]; char ms[10]; char lop[10]; int gioitinh; }; typedef struct node{ SV info; struct node *next; }Node; //Tao nut moi Node *Khoitao(SV x) { Node *p; p=new struct node; p->info=x; p->next=NULL; return p; } //Kiem tra ds rong int IsEmpty(Node *First) { if(First==NULL) return 1; return 0; } //Them sv vao cuoi ds Node *Add_last(Node *First,SV x) { Node *p,*q; p=Khoitao(x);q=First; if(IsEmpty(First)) { cout<<"\n Day la Sv dau tien cua ds\n"; p->next=NULL; First=p; } else { while(q->next!=NULL) { q=q->next; } q->next=p; cout<<"\n Da them SV vao ds\n"; } return First; } //Tim kiem sinh vien void Find(Node *sv,char ten[20]) { int count=0 ; while(sv!=NULL) { if(strcmp(sv->info.ht,ten)==0) { cout<<"\n Sinh vien: "; cout<<"\n Ho ten: "<<sv->info.ht; cout<<"\n MSSV: "<<sv->info.ms; cout<<"\n Lop: "<<sv->info.lop; cout<<"\n Gioi tinh: "; if(sv->info.gioitinh==1) cout<<" A Boy"; else cout<<" A Girl"; count++; } sv=sv->next; } if(!count) cout<<"\n Khong tim thay"; } //Xoa sinh vien Node *Delete_SV(Node *First,char mssv[10]) { Node *p,*q; p=First;q=p; if(strcmp(p->info.ms,mssv)==0) { First=p->next; delete p; cout<<"\n Xoa thanh cong"; return First; } while(p!=NULL&&strcmp(p->info.ms,mssv)!=0) { q=p; p=p->next; } if(p==NULL) cout<<"\n Khong tim thay SV"; else { q->next=p->next; delete p; cout<<"\n Xoa thanh cong"; } return First; } //Hien thi danh sach void Hienthi(Node *sv) { cout<<"\n DANH SACH SINH VIEN"; while(sv!=NULL) { cout<<"\n +"<<setw(25)<<sv->info.ht<<setw(10)<<sv->info.ms<<setw(10)<<sv->info.lop; if(sv->info.gioitinh==1) cout<<setw(10)<<" A Boy"; if(sv->info.gioitinh==0) cout<<setw(10)<<" A Girl"; sv=sv->next; } } int main() { Node *First; SV x; char ten[25],mssv[10],c; First=NULL; while(1) { cout<<"\n------MENU-------"; cout<<"\n 1.Them sinh vien"; cout<<"\n 2.Xem danh sach"; cout<<"\n 3.Tim kiem sinh vien"; cout<<"\n 4.Xoa sinh vien"; cout<<"\n 5.Xoa man hinh"; cout<<"\n 6.Exit"; cout<<"\n\n Chon chuc nang tu 1->6: "; cin>>c; switch(c) { case '1': cout<<"\n Nhap SV muon them: Nhap 'exit' de dung nhap: "; do{ cout<<"\n Ho ten: "; cin.ignore(1); cin.get(x.ht,25); if(strcmp(x.ht,"exit")==0) break; cout<<" MSSV: "; cin.ignore(1); cin.get(x.ms,10); cout<<" Lop: "; cin.ignore(1); cin.get(x.lop,10); cout<<" Gioi tinh: (Boy-1;Girl-0): "; cin>>x.gioitinh; First=Add_last(First,x); }while(strcmp(x.ht,"exit")!=0);break; case '2': if(IsEmpty(First)) cout<<"\n Danh sach rong"; else Hienthi(First);break; case '3': cout<<"\n Nhap ten SV muon tim: "; cin.ignore(1); cin.get(ten,25); Find(First,ten);break; case '4': if(IsEmpty(First)) cout<<"\n Danh sach rong"; else{ cout<<"\n Nhap MSSV cua SV muon xoa: "; cin.ignore(1); cin.get(mssv,10); First=Delete_SV(First,mssv); }break; case '5': system("cls");break; case '6': cout<<"\n Thoat !!!\n"; exit(0);break; default : cout<<"\n Khong co chuc nang nay\n";break; } } _getch(); }
| |
| | | iShinichj
Tổng số bài gửi : 46 Points : 5237 Reputation : 0 Join date : 01/09/2010 Age : 34 Đến từ : HUT
| Tiêu đề: Re: Đăng Kí Đề Tài "Danh Sách Móc Nối" -->> HERE !!! Sat Sep 25, 2010 1:07 am | |
| Danh sách LK đôi(vòng):Quản lý sinh viên
#include<iostream> #include<conio.h> #include<iomanip> #include<string.h> using namespace std;
struct SV{ char ht[25]; char ms[10]; float diem; }; typedef struct node{ SV info; struct node *next; struct node *prev; }Node; //Khoi tao nut moi Node *Khoitao(SV x) { Node *p=new Node; p->info=x; p->next=NULL; p->prev=NULL; return p; } //Kiem tra danh sach rong int IsEmpty(Node *Head) { if(Head==NULL) return 1; return 0; } //Them sv vao cuoi danh sach Node *Add_last(Node *Head,SV x) { Node *p; p=Khoitao(x); if(IsEmpty(Head)) { Head=p; p->next=Head; p->prev=Head; cout<<" Day la sinh vien dau tien\n"; } else { p->next=Head; p->prev=Head->prev; Head->prev->next=p; Head->prev=p; cout<<" Da them thanh cong\n"; } return Head; } //Tìm kiếm sinh vien void Find(Node *Head,char name[25]) { Node *sv=Head; int count=0; if(IsEmpty(Head)) cout<<"\n Khong tim thay"; else { cout<<"\n "<<setw(25)<<"HO TEN"<<setw(10)<<"MSSV"<<setw(8 )<<"DIEM"; while(sv->next!=Head) { if(strcmp(sv->info.ht,name)==0) { cout<<"\n+"<<setw(25)<<sv->info.ht<<setw(10)<<sv->info.ms<<setw(8 )<<sv->info.diem; count++; } sv=sv->next; } if(strcmp(Head->prev->info.ht,name)==0) { cout<<"\n+"<<setw(25)<<sv->info.ht<<setw(10)<<sv->info.ms<<setw(8 )<<sv->info.diem; count++; } if(!count) cout<<"\n Khong tim thay"; } } //Xoa sinh vien Node *Delete(Node *Head,char mssv[10]) { Node *p,*q; p=Head; if(IsEmpty(Head)) { cout<<"\n Danh sach rong"; return NULL; } else { if(strcmp(p->info.ms,mssv)==0) { q=p->next; if(q==Head) Head=NULL; else { p->prev->next=q; q->prev=p->prev; Head=q; } delete p; cout<<"\n Xoa thanh cong"; return Head; } while(1) { p=p->next; if(strcmp(p->info.ms,mssv)==0) { q=p->next; p->prev->next=q; q->prev=p->prev; delete p; cout<<"\n Xoa thanh cong"; }break; } return Head; } } //Nhap thong tin sinh vien Node *Nhap(Node *Head) { SV x; cout<<"\n Nhap thong tin ve sinh vien"; cout<<"\n Nhap '123' de hoan thanh\n"; do{ cout<<"\n+Ho ten: "; cin.ignore(1); cin.get(x.ht,25); if(strcmp(x.ht,"123")==0) break; cout<<" MSSV: "; cin.ignore(1); cin.get(x.ms,10); cout<<" Diem: "; cin>>x.diem; Head=Add_last(Head,x); }while(1); return Head; } //Hien thi thong tin sinh vien void Hienthi(Node *Head) { Node *sv=Head; if(IsEmpty(Head)) { cout<<"\n Danh sach rong"; return; } cout<<"\n THONG TIN SINH VIEN"; cout<<setiosflags(ios::fixed)<<setprecision(3); cout<<"\n"<<setw(25)<<"HO TEN"<<setw(10)<<"MSSV"<<setw(8 )<<"DIEM"; while(sv->next!=Head) { cout<<"\n+"<<setw(25)<<sv->info.ht<<setw(10)<<sv->info.ms<<setw(8 )<<sv->info.diem; sv=sv->next; } if(sv->next=Head) cout<<"\n+"<<setw(25)<<sv->info.ht<<setw(10)<<sv->info.ms<<setw(8 )<<sv->info.diem; } int main() { Node *Head; Head=new Node; Head=NULL; char chon,mssv[10],name[25]; while(1) { cout<<"\n -----------MENU--------------"; cout<<"\n 1.Hien thi danh sach sinh vien"; cout<<"\n 2.Them sinh vien vao danh sach"; cout<<"\n 3.Tim kiem sinh vien"; cout<<"\n 4.Xoa sinh vien"; cout<<"\n 5.Xoa man hinh"; cout<<"\n 6.Exit"; cout<<"\n\n Chon chuc nang: "; cin>>chon; switch(chon) { case '1': Hienthi(Head);break; case '2': Head=Nhap(Head);break; case '3': cout<<"\n Nhap ten sinh vien: "; cin.ignore(1); cin.get(name,25); Find(Head,name);break; case '4': cout<<"\n Nhap MSSV: "; cin.ignore(1); cin.get(mssv,10); Head=Delete(Head,mssv);break; case '5': system("cls");break; case '6': exit(0);break; default: cout<<"\n Khong co chuc nang nay";break; } } _getch(); }
Được sửa bởi iShinichj ngày Sat Sep 25, 2010 1:12 am; sửa lần 2. | |
| | | iShinichj
Tổng số bài gửi : 46 Points : 5237 Reputation : 0 Join date : 01/09/2010 Age : 34 Đến từ : HUT
| Tiêu đề: Re: Đăng Kí Đề Tài "Danh Sách Móc Nối" -->> HERE !!! Sat Sep 25, 2010 1:09 am | |
| Cộng đa thức sử dụng danh sách liên kết
#include<iostream> #include<conio.h> using namespace std;
struct DT{ int heso; int bac; }; typedef struct node{ DT info; struct node *next; }Node; //Tao nut moi Node *Khoitao(DT P) { Node *p=new Node; p->info=P; p->next=NULL; return p; } //Kiem tra ds rong int IsEmpty(Node *First) { if(First==NULL) return 1; return 0; } //Them nut moi vao cuoi danh sach Node *Add_last(Node *First,DT P) { Node *p,*q; p=Khoitao(P);q=First; if(IsEmpty(First)) { p->next=NULL; First=p; } else { while(q->next!=NULL) { q=q->next; } q->next=p; } return First; } Node *Nhap_dathuc(Node *First) { DT P; cout<<"\n Nhap thong tin ve da thuc:(bac=-1 Finish) "; do { cout<<"\n +Nhap bac : "; cin>>P.bac; if(P.bac==-1) break; cout<<" He so cua bac: "; cin>>P.heso; First=Add_last(First,P); }while(P.bac!=-1); return First; } Node *Cong_dathuc(Node *P1,Node *P2) { Node *p1=P1,*p2=P2; DT P; Node *Q; Q=NULL; while(p1!=NULL && p2!=NULL) { if(p1->info.bac > p2->info.bac) { P.heso=p2->info.heso; P.bac=p2->info.bac; p2=p2->next; } else { if(p1->info.bac < p2->info.bac) { P.heso=p1->info.heso; P.bac=p1->info.bac; p1=p1->next; } else { P.heso=p1->info.heso+p2->info.heso; P.bac=p2->info.bac; p1=p1->next; p2=p2->next; } } Q=Add_last(Q,P); } if(p1==NULL) { while(p2!=NULL) { P.heso=p2->info.heso; P.bac=p2->info.bac; Q=Add_last(Q,P); p2=p2->next; } } else { if(p2==NULL) { while(p1!=NULL) { P.heso=p1->info.heso; P.bac=p1->info.bac; Q=Add_last(Q,P); p1=p1->next; } } } return Q; } //Hien thi da thuc void Hienthi(Node *q) { cout<<"\n Thong tin da thuc:(He so,Bac)\n"; while(q!=NULL) { cout<<" ("<<q->info.heso<<","<<q->info.bac<<") ->"; q=q->next; } cout<<" NULL\n"; } int main() { Node *P1,*P2,*Q; P1=NULL;P2=NULL;Q=NULL; cout<<"\n +DA THUC P1: "; P1=Nhap_dathuc(P1); Hienthi(P1); cout<<"\n +DA THUC P2"; P2=Nhap_dathuc(P2); Hienthi(P2); Q=Cong_dathuc(P1,P2); cout<<"\n TONG HAI DA THUC:"; Hienthi(Q); _getch(); } | |
| | | Sponsored content
| Tiêu đề: Re: Đăng Kí Đề Tài "Danh Sách Móc Nối" -->> HERE !!! | |
| |
| | | | Đăng Kí Đề Tài "Danh Sách Móc Nối" -->> HERE !!! | |
|
Trang 1 trong tổng số 1 trang | |
Similar topics | |
|
| Permissions in this forum: | Bạn không có quyền trả lời bài viết
| |
| |
| |