Khoa Công Nghệ Thông Tin -Khóa XIII-Lớp TH0702

Hân Hạnh Chào Đón Tất Cả Các Bạn
 
Trang ChínhPortalCalendarGalleryTrợ giúpTìm kiếmThành viênNhómĐăng kýĐăng Nhập

Share | 
 

 Bài tập CTDL

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
Ice
Thành Viên Cấp 1
Thành Viên Cấp 1
avatar

Tổng số bài gửi : 29
Registration date : 18/11/2008

Bài gửiTiêu đề: Bài tập CTDL   Wed Nov 19, 2008 1:31 pm

1.Thiết kế danh sách liên kết đơn quản lý thông tin về một máy tính
* Tên CPU
* Speed CPU
* RAM
* HDD(dung lượng ổ cứng)
Xuất CPU nào có tốc độ lớn hơn = 1024 MhZ
Về Đầu Trang Go down
Xem lý lịch thành viên
Ice
Thành Viên Cấp 1
Thành Viên Cấp 1
avatar

Tổng số bài gửi : 29
Registration date : 18/11/2008

Bài gửiTiêu đề: Nếu sai mấy Pro sữa jum ^^!   Wed Nov 19, 2008 6:29 pm

#include "stdio.h"
#include "conio.h"

typedef struct
{
char TenCPU[30];
int speed;
int RAM;
int HDD;
}MAYTINH;
typedef struct
{
int n;
MAYTINH maytinh[20];
}DANHSACH;
void Nhap1may(MAYTINH *p)
{
printf("Nhap ten CPU: ");
flushall();
gets(p->TenCPU);
printf("Toc do(Mhz): ");
scanf("%d",&p->speed);
printf("Bo nho RAM(Mb): ");
scanf("%d",&p->RAM);
printf("Dung luong o dia(Gb):");
scanf("%d",&p->HDD);
}
void NhapDS(DANHSACH &p)
{
printf("Nhap so may tinh n =");
scanf("%d",&p.n);
for(i chay tu 0 den p.n)//tu ghi Web ko hieu
{
printf("Nhap may tinh thu %d\n",i+1);
Nhap1may(&p.maytinh[i]);
}
}
void Xuat(MAYTINH p)
{
printf("%-15s ",p.TenCPU);
printf("%-3d Mhz",p.speed);
printf("%10d Mb",p.RAM);
printf("%12d Gb\n",p.HDD);

}
void XuatDS(DANHSACH p)
{
for(i chay tu 0 den p.n)//tu ghi Web ko hieu
if(p.maytinh[i].speed >= 1024)
Xuat(p.maytinh[i]);
}
void main()
{
DANHSACH p;
NhapDS(p);//dung con tro phai truyen tham chieu
printf("Cac may tinh co dung luong >= 1024:\n");
printf("-------------------------------------------------------\n");
printf("Ten CPU\t\tSpeed\t\tRAM\t\tHDD\n");
printf("-------------------------------------------------------\n");
XuatDS(p);
printf("-------------------------------------------------------\n");
getch();
}
Về Đầu Trang Go down
Xem lý lịch thành viên
Ice
Thành Viên Cấp 1
Thành Viên Cấp 1
avatar

Tổng số bài gửi : 29
Registration date : 18/11/2008

Bài gửiTiêu đề: file CPP   Wed Nov 19, 2008 6:47 pm

http://www.mediafire.com/download.php?d2zmtnjnywf
Về Đầu Trang Go down
Xem lý lịch thành viên
guanweifu
Super Mod - Quản Trị Viên
Super Mod - Quản Trị Viên
avatar

Tổng số bài gửi : 24
Registration date : 13/11/2008

Bài gửiTiêu đề: Re: Bài tập CTDL   Fri Nov 21, 2008 10:13 am

hic hic m002 2 bài đều làm bằng mảng hít

>>> có bài nào làm bằng DSLK hem nhĩ ??? m009

_________________
Về Đầu Trang Go down
Xem lý lịch thành viên
Ice
Thành Viên Cấp 1
Thành Viên Cấp 1
avatar

Tổng số bài gửi : 29
Registration date : 18/11/2008

Bài gửiTiêu đề: Dạng liên kết nè ^^!   Fri Nov 21, 2008 11:44 am

http://www.mediafire.com/download.php?2qitzjyzzmt
Về Đầu Trang Go down
Xem lý lịch thành viên
vanminh
Super Mod - Quản Trị Viên
Super Mod - Quản Trị Viên
avatar

Tổng số bài gửi : 61
Registration date : 20/11/2008

Bài gửiTiêu đề: Trung tố sang hậu tố   Fri Nov 21, 2008 9:06 pm

Bài tập CTDL nè pà kon!!!!!!!!trung tố sang hậu tố nè!!! m001 m001


http://www.mediafire.com/file/ydwowtofjdj/hauto.cpp[img][/img]
Về Đầu Trang Go down
Xem lý lịch thành viên
vanminh
Super Mod - Quản Trị Viên
Super Mod - Quản Trị Viên
avatar

Tổng số bài gửi : 61
Registration date : 20/11/2008

Bài gửiTiêu đề: Trung tố sang hậu tố   Fri Nov 21, 2008 9:19 pm

Trung tố sang hậu tố nè pà kon oi!!!!!!!!!


http://www.mediafire.com/file/ydwowtofjdj/hauto.cpp
Về Đầu Trang Go down
Xem lý lịch thành viên
vanminh
Super Mod - Quản Trị Viên
Super Mod - Quản Trị Viên
avatar

Tổng số bài gửi : 61
Registration date : 20/11/2008

Bài gửiTiêu đề: Trung tố sang hậu tố   Fri Nov 21, 2008 9:22 pm

#include
#include

#define MAX 100
#define PLUS 0
#define MINUS 1
#define MULTIPLE 2
#define DIVIDE 3
#define LPAREN 4
#define RPAREN 5

int top;

struct {
int toantu;
} stack[MAX];

void push (int tt)
{
if (top < MAX-1)
stack[++top].toantu = tt;
}

int isempty()
{
return top == -1;
}

int pop (int *tt)
{
if (!isempty())
{
*tt = stack[top--].toantu;
return 1;
}
return 0;
}

int get (int *tt)
{
if (!isempty())
{
*tt = stack[top].toantu;
return 1;
}
return 0;
}

void xet(int tt)
{
char chuoi[] = "+-*/";
int uutien[] = {0,0,1,1,-1,-1};
int toantu, done = 0, val;

if (isempty())
push(tt);
else
{
do {
if (get(&toantu))
{
if (uutien[tt] <= uutien[toantu])
{
pop(&toantu);
printf("%c ", chuoi[toantu]);
}
else
{
push(tt);
done = 1;
}
}
else
{
done = 1;
push(tt);
}
} while (!done);
}
}

void in_hauto(char *expr)
{
int len, i=0, ttu, done;
char c, chuoi[]="+-*/";
top = -1;
len = strlen(expr);
do {
c = expr[i++];
while (c == ' ' && i < len-1)
c = expr[i++];
switch (c)
{
case '0' :
case '1' :
case '2' :
case '3' :
case '4' :
case '5' :
case '6' :
case '7' :
case '8' :
case '9' : printf("%c ", c); break;
case '+' : xet(PLUS); break;
case '-' : xet(MINUS); break;
case '*' : xet(MULTIPLE); break;
case '/' : xet(DIVIDE); break;
case '(' : push(LPAREN); break;
case ')' : done = 0;
do {
if (isempty())
{
done = 1;
printf("\n\nError\n");
}
else
{
pop(&ttu);
if (ttu != LPAREN)
printf("%c ", chuoi[ttu]);
else
done = 1;
}
} while (!done);
break;
}
} while (i < len);
while (!isempty())
{
pop(&ttu);
printf("%c ", chuoi[ttu]);
}
}

void main()
{
char expr[50];
int done = 0;

printf("\nChuong trinh in bieu thuc hau to tuong ung voi mot bieu thuc"
"trung to hop le"
"\nChu y :"
"\nCac toan hang chi tu 0 den 9"
"\nCac toan tu chi gom + - * / ( )\n");
do {
printf("\nNhap mot bieu thuc trung to hop le (trong de thoat): ");
gets(expr);
if (strlen(expr) > 0)
in_hauto(expr);
else
done = 1;
} while (!done);
}
Về Đầu Trang Go down
Xem lý lịch thành viên
Ice
Thành Viên Cấp 1
Thành Viên Cấp 1
avatar

Tổng số bài gửi : 29
Registration date : 18/11/2008

Bài gửiTiêu đề: TRUNG TỐ HẬU TỐ (FULL)   Sat Nov 22, 2008 9:11 pm

#include
#include
#include
#include
#define MAX 100

template
class stack
{
private:
int top;
int size ;
int count ;
T *Mang ;
public:
stack(int sizeInput);
int IsEmpty();
int IsFull();
void push(const T ch) ;
T pop();
T topElement();
};
template
stack::stack(int sizeInput = MAX)
{ size = sizeInput ;
Mang = new T [size] ;
top=-1;
count = 0 ;
}

template
int stack::IsEmpty()
{
return (count==0) ;
}

template
int stack::IsFull()
{
return (count>=size) ;
}

template
void stack::push(const T ch)
{
if(IsFull()) return;
Mang[++top] = ch ;
count++ ;
}

template
T stack::pop()
{
if(IsEmpty()) return 0 ;
count-- ;
return Mang[top--];
}

template
T stack::topElement()
{
return Mang[top];
}

void InToPostfix(char *s, char *ps)
{ stack st(50) ;
char c,ch ;
istrstream doc(s) ;
ostrstream ghi(ps,50,ios::out) ;
while(doc>>c)
{
if(c=='+' || c=='-' || c=='*' || c=='/')
st.push(c) ;
else if(c==')')
{ ch = st.pop() ;
ghi< }
else if(c>='0' && c<='9')
{ doc.putback(c) ;
float x ;
doc>>x ;
ghi< }
}
if(!st.IsEmpty()) c = st.pop() ;
ghi<}

float ExpValue(float x, char op,float y)
{ float z ;
switch(op)
{
case '+' : { z = x+y; break;}
case '-' : { z = x-y ; break;}
case '*' : { z = x*y ; break ; }
case '/' : { z = x/y ; break ; }
}
return z ;
}

float PostToValue(char *s)
{ stack st(50) ;
char c ;
float x,y,z ;
istrstream doc(s) ;
while(doc>>c)
{ if(c>='0' && c<='9')
{ doc.putback(c) ;
doc>>x ;
st.push(x) ;
}
else if(c=='+' || c=='-' || c=='*' || c=='/')
{ y = st.pop() ;
x = st.pop() ;
z = ExpValue(x,c,y) ;
st.push(z) ;
}
}
z = st.pop() ;
return z ;
}

void main()
{ char s[50], ps[50] ;

printf("\n Nhap chuoi Infix : ") ;
flushall() ;
gets(s) ;
InToPostfix(s,ps) ;
printf("\n Infix: %s Postfix : %s \n",s,ps) ;
float z ;
z = PostToValue(ps) ;
printf("\n %s = %.5f \n",s,z) ;
}
Về Đầu Trang Go down
Xem lý lịch thành viên
Ice
Thành Viên Cấp 1
Thành Viên Cấp 1
avatar

Tổng số bài gửi : 29
Registration date : 18/11/2008

Bài gửiTiêu đề: DANH SÁCH LIÊN KẾT BÀI CPU   Sat Nov 22, 2008 9:12 pm

#include
//using namespace std;
#include
#include
typedef struct
{
char TenCPU[20];
int Speed;
}MAYTINH;
template
struct NODE
{
T data;
NODE *next;
};

template
class List
{
private:
NODE *head;
NODE *pos;
NODE *rear;
int count;
void Start();
int Finish();
void Skip();
void Insert(T datain,NODE *p);
void Remove(NODE *p);
public:
List();
~List();
void Getdata(T &dataout);
void InsertRear( T x);
void NhapDS(void (*In)(T &));
void XuatDS();
void RemoveHead();
void Search(T x,int (*comp)(T,T));
};
template
void List::Start()
{
pos=head;
}
template
int List::Finish()
{
return pos==NULL;
}
template
void List::Skip()
{
pos=pos->next;
}
template
void List::Insert(T datain,NODE *p)
{
NODE *pnew= new NODE;
memcpy(&pnew->data,&datain,sizeof(T));
if(p==NULL)
{
pnew->next=head;
head=pnew;
}
else
{
pnew->next=p->next;
p->next=pnew;
}
if(pnew->next==NULL)
rear=pnew;
count++;
}
template
List::List()
{
head=NULL;
pos=NULL;
rear=NULL;
count=0;

}
template
List::~List()
{
}
template
void List::Getdata(T &dataout)
{
memcpy(&dataout,&pos->data,sizeof(T));
}
template
void List::InsertRear(T x)
{
Insert(x,rear);
}
template
void List::NhapDS(void (*In)( T&))
{
int n;
T x;
cout<<"Nhap so phan tu n = ";
cin>>n;
for(int i=0;i {
cout<<"Nhap phan tu thu "< In(x);
InsertRear(x);
}
}

template
void List::XuatDS()
{
T x;
Start();
while(!Finish())
{
Getdata(x);
Xuat(x);
Skip();
}
}
template
void List::Remove(NODE *p)
{
NODE *tmp = new NODE;
if(p==NULL)
{
tmp=head;
head=tmp->next;
}
else
{
tmp=p->next;
p->next=tmp->next;
}
if(tmp->next==NULL)
rear=p;
delete tmp;
count--;
}
template
void List::RemoveHead()
{
Remove(NULL);
}
template
void List::Search(T x,int(*comp)(T,T))
{
NODE c= new NODE;
c=head;
pos=NULL;
while(c!==NULL&& comp(x,c->data)!=0)
{
pos = c;
c=c->next;
}
return (c!NULL);

}
void Nhap1ptu(MAYTINH &p)
{
cout<<"Nhap Ten CPU:";
// flushall();
cin.ignore(1,20);
//gets(p.TenCPU);
cin.getline(p.TenCPU,20,'\n');
cout<<"Nhap Toc do CPU";
// flushall();
cin>>p.Speed;
}
void Xuat(MAYTINH p)
{
cout<}
int SS(int x,int y)
{
if(x>y)
return 1;
else
if(x==y)
return 0;
return -1;
}
void main()
{
MAYTINH x;

List L;
L.NhapDS(Nhap1ptu);
cout<<"DANH SACH CAC CPU\n";
cout<<"Ten CPU\t\t\t"<<"Toc Do"< L.XuatDS();
cout<<"DANH SACH SAU KHI BO PHAN TU DAU\n";
L.RemoveHead();
L.XuatDS();
L.Search(


getch();
}
Về Đầu Trang Go down
Xem lý lịch thành viên
Ice
Thành Viên Cấp 1
Thành Viên Cấp 1
avatar

Tổng số bài gửi : 29
Registration date : 18/11/2008

Bài gửiTiêu đề: ĐÍNH KÈM   Sat Nov 22, 2008 9:15 pm

WEB KO NHAN KY TU "<>" NEN CHAY SE BI SAI
LINK BAI HAU TO:
http://www.mediafire.com/download.php?xyyokmymwzi
LINK BAI CPU:
http://www.mediafire.com/download.php?zzxiummnydd
MÌNH CHỈ HIỂU BÀI CPU ^^ CÒN BÀI TRUNG TỐ HẬU TỐ AI HIỂU PM LẠI HEN
Về Đầu Trang Go down
Xem lý lịch thành viên
Ice
Thành Viên Cấp 1
Thành Viên Cấp 1
avatar

Tổng số bài gửi : 29
Registration date : 18/11/2008

Bài gửiTiêu đề: Bài 2:   Sun Nov 23, 2008 11:35 am

Câu 1: Khai báo cấu trúc DSLK chứa các điểm trong toạ độ hai chiều theo công thức radian, tức là mỗi điểm gồm bán kính và góc.
Câu 2: Viết hàm thực hiện yêu cầu sau:
In ra các điểm có bán kính lớn hớn 5 và 1.0
Hàm chính nè:

typedef struct
{
int x;
int y;
}DIEM;

template
void List::NhapDS()
{
T datain;
int n;
cout<<"Nhap so diem: ";
cin >>n;
for(int i=0;i {
cout<<"Nhap toa do diem thu"< Nhap1diem(datain);
Insert(datain,NULL);
}
}
template
void List::XuatDS()
{
DIEM p;
pos=head;
while(pos!=NULL)
{
memcpy(&p,&pos->data,sizeof(T));
double goc = atan((p.y*1.0)/p.x);
double BK=BanKinh(p.x,p.y);
if(BK>5&& 2>goc && goc>1 )
Xuat1diem(p);
pos=pos->next;
}
}
void Nhap1diem(DIEM &p)
{
cout<<"Nhap hoanh do: ";
cin>>p.x;
cout<<"Nhap tung do: ";
cin>>p.y;
}
double BanKinh(int a,int b)
{
return sqrt(a*a+b*b);
}
double Goc(int a,int b)
{
return (double) atan(b/a);
}
Về Đầu Trang Go down
Xem lý lịch thành viên
Ice
Thành Viên Cấp 1
Thành Viên Cấp 1
avatar

Tổng số bài gửi : 29
Registration date : 18/11/2008

Bài gửiTiêu đề: Link Nè   Sun Nov 23, 2008 11:37 am

LINK:DSLKdiem:
http://www.mediafire.com/download.php?zmym5yy2noz
Về Đầu Trang Go down
Xem lý lịch thành viên
Ice
Thành Viên Cấp 1
Thành Viên Cấp 1
avatar

Tổng số bài gửi : 29
Registration date : 18/11/2008

Bài gửiTiêu đề: Re: Bài tập CTDL   Thu Nov 27, 2008 8:31 pm

Còn đây là Stack use Liên kết
ứng dụng vào làm trung tố hậu tố:^^!
#include
#include
#include
#define Stacksize 100
template
struct NODE
{
T data;
NODE *next;
};
template
class Stack
{
private:
int top;
NODE *head;
NODE *pos;
void Insert(T datain);
void Remove();
void Getdata();
public:
Stack();
~Stack();
int IsEmpty();
int IsFull();
T Pop();
void Push(T ch);
void Xuatstack();
};
template
Stack::Stack()
{
head=NULL;
top=-1;
}
template
Stack::~Stack()
{
}
template
void Stack::Insert(T datain)
{
NODE *pnew=new NODE;
memcpy(&pnew->data,&datain,sizeof(T));
pnew->next = head;
head=pnew;
top++;
}
template
void Stack::Remove()
{
NODE *temp;
temp=head;
head=temp->next;
top--;
}
template
int Stack::IsEmpty()
{
return (top==-1);
}
template
int Stack::IsFull()
{
return (top==Stacksize-1);
}
template
void Stack::Getdata()
{
return head->data;
}
template
void Stack::Push(T ch)
{
Insert(ch);
}
template
T Stack::Pop()
{
T temp;
memcpy(&temp,&head->data,sizeof(T));
Remove();
return temp;

}
template
void Stack::Xuatstack()
{
T dataout;
pos=head;
while(pos!=NULL)
{
memcpy(&dataout,&pos->data,sizeof(T));
cout< pos = pos->next;
}
}
void main()
{
Stack ch;
ch.Push(100);
ch.Push(7);
ch.Push(3);
ch.Push(8);
ch.Push(7);
ch.Push(8);
ch.Push(77);
ch.Xuatstack();
cout< cout <<"Pop ra: "<< ch.Pop()< cout<<"Stack con:";
ch.Xuatstack();
getch();
}
Về Đầu Trang Go down
Xem lý lịch thành viên
Ice
Thành Viên Cấp 1
Thành Viên Cấp 1
avatar

Tổng số bài gửi : 29
Registration date : 18/11/2008

Bài gửiTiêu đề: Re: Bài tập CTDL   Thu Nov 27, 2008 8:34 pm

Mình tui Solo Lun hahaha m152
Về Đầu Trang Go down
Xem lý lịch thành viên
super noobs
Thành Viên Cấp 1
Thành Viên Cấp 1
avatar

Tổng số bài gửi : 14
Registration date : 15/11/2008

Bài gửiTiêu đề: Re: Bài tập CTDL   Fri Nov 28, 2008 8:33 am

Ko biet ban la ai nhung ban lam DSLK tran lan qua
Bon minh dang thuc hanh DSLK quan ly Sinh Vien
Ban thu lam ro ve no di
Up code nhieu qua roi mat chet
Về Đầu Trang Go down
Xem lý lịch thành viên
Tieu_Windy
Thành Viên Cấp 2
Thành Viên Cấp 2
avatar

Tổng số bài gửi : 48
Registration date : 15/11/2008

Bài gửiTiêu đề: Re: Bài tập CTDL   Fri Nov 28, 2008 10:11 am

hi.............
sao mà bạn giỏi wá vậy.......
còn bài nào nữa hok?
m012 m012 m012 m012
Về Đầu Trang Go down
Xem lý lịch thành viên
Admin
Administrator
Administrator
avatar

Nam
Tổng số bài gửi : 150
Age : 29
Đến từ : Áng Trăng Trong Màn Đêm
Job/hobbies : Sinh Viên
Registration date : 12/11/2008

Bài gửiTiêu đề: Re: Bài tập CTDL   Fri Nov 28, 2008 12:17 pm

Cám ơn bạn rất nhiều.mình nghỉ bạn đó làm vậy cũng không sai ,để mọi người tham khảo.Nếu ai Pro hơn thì hãy lập luận những ý nghĩa để tạo ra những cái đó!

_________________
Về Đầu Trang Go down
Xem lý lịch thành viên http://th0702.7forum.info
Ice
Thành Viên Cấp 1
Thành Viên Cấp 1
avatar

Tổng số bài gửi : 29
Registration date : 18/11/2008

Bài gửiTiêu đề: Hướng dẫn DANH SACH LIEN KET DON   Fri Nov 28, 2008 11:01 pm

DANH SÁCH LIÊN KẾT QUẢN LÝ SINH VIÊN
chú y: Ký tu > và < thay bằng [ ]
vì web ko nhận được


// Khai báo tiền xử lý
#include”iostream.h” //Dòng nhập xuất cin cout
#include”string.h” // khai báo khi dùng memcpy
#include”conio.h” // khai báo khi dùng getch() xóa màn hình

//Quản lý danh sách Sinh viên, thì ta quản lý về họ tên,MSSV, diem,ngày sinh….
//mình chỉ làm ví dụ 3 thông tin về họ tên, điểm, MSSV
//đầu tiên khai báo một struct Điểm vì có nhiều môn học
typedef struct
{
int Toan;
int Ly;
int Hoa;
}DIEM;
//struct được quan niệm như một kiễu dữ liệu do mình định nghĩa
//Tiếp đến khai báo struct SINHVIEN chứa 3 thông tin trên
typedef struct
{
char Hoten[30];
int MASSV;
DIEM diem; // cấu trúc struct lồng nhau DIEM trong SINHVIEN
}SINHVIEN;
//một danh sách liên kết bao gồm nhiều Nút
//Với bài này một nút là thông tin của 1 sinh viên
// Một nút (hay NODE) gồm có 2 phần, 1 chứa dữ liệu
//và một phần để liên kết với nút tiếp theo
template[class T]
struct NODE
{
T data;
NODE *next;
};

//Khai báo 1 class List
template [class T]
class List
{
private:
//một danh sách thông thường có 3 con trỏ
// một con trỏ trỏ ở đầu là head
//một con trỏ trỏ ở cuối là rear
//một con nữa là pos để trỏ tới vị trí mình xét
NODE[T] *head;
NODE[T] *pos;
NODE[T] *rear;
int count; // biến đếm xác đinh số nút
public:
List();// khỏi tạo
~List();// hũy
//hàm Insert để chèn 1 nút vô danh sách liên kết
//insert gồm 2 tham số là datain và NODE[T]*p
//datain là thông tin của nút đưa vào
//NODE[T] *p là vị trí mình mún chèn vào
void Insert(T datain,NODE[T] *p);
void NhapDS();
void XuatDS();
};

template[class T]
List[T]::List()
{
pos=head=rear=NULL;
count=0;
}

template[class T]
List[T]::~List()
{
}

//các thao tác để chèn dữ liệu
// tạo ra một nút mới có tên là pnew
//gán dữ liệu mún chèn vào cho phần dữ liêu của nút pnew
//nếu p (vị trí mún chèn vào) là NULL thì chèn đầu
//ngược lại chèn sau p
//nếu phần kế tiếp của p =NULL chèn cuối
//tăng biến đếm count lên 1

template[class T]
void List[T]::Insert(T datain,NODE[T] *p)
{
//cấp phát động cho pnew
//cấu trúc cấp phát độg : [kiểu dữ liêu] *[tên con trỏ] = new [kiểu dữ liệu] ;
NODE[T] *pnew=new NODE[T];
//gán dữ liệu cho pnew->data
memcpy(&pnew->data,&datain,sizeof(T));
if(p==NULL) // chèn đầu
{
pnew->next=head;
head=pnew;
}
else // chèn sau p
{
pnew->next=p->next;
p->next=pnew;
}
if(pnew->next==NULL) // chèn cuối
rear=pnew;
count++;
}

//Tiếp đến là hàm nhập danh sách ko cần template
//Tạo một hàm nhập 1 sinh viên bao gồm 3 thông tin
// 3 thông tin chứa trong struct SINHVIEN

void Nhap1sinhvien(SINHVIEN &p) // tham chiếu vì để lấy dứ liệu
{
cout<<"Ho va Ten :";
cin.ignore(1,30); // xóa bỏ bộ đệm tương đương với flushalll()
cin.getline(p.Hoten,30,'\n'); // nhập 1 chuổi trong C++
cout<<"MASSV: ";
cin>>p.MASSV;
cout<<"Toan = ";
cin>>p.diem.Toan;// truy cập thông tin cấu truc struct lông nhau
cout<<"Ly = ";
cin>>p.diem.Ly;
cout<<"Hoa = ";
cin>>p.diem.Hoa;
}

//hàm nhập 1 danh sách
template[class T]
void List[T]::NhapDS()
{
T datain;
int n;
cout<<"Nhap so sinh vien n = ";
cin>>n;
for(int i=0;i {
cout<<"Nhap thong tin Sinh vien thu "< Nhap1sinhvien(datain);
Insert(datain,rear);// chèn vào cuối
}
}

template [class T]
void List[T]::XuatDS()
{
T dataout;
pos=head;// cho pos bắt đầu danh sách
while(pos!=NULL)
{
// chép dữ liệu tại nút mà pos đang trỏ tới vào dataout
memcpy(&dataout,&pos->data,sizeof(T));
//Xuất dataout
Xuat1phantu(dataout);// goi hàm
pos=pos->next; // dịch pos sang 1 vị trí
}


}
void Xuat1phantu(SINHVIEN p)// ko dùng tham chiều chỉ để in ra
{
cout< cout<<"\t"<}

void main()
{
// khai bao khi dung class
// cấu trúc : ten Class [Kiểu dữ liêu] ten;
List[SINHVIEN] sv; //kiểu lúc này là kiểu SINHVIEN
sv.NhapDS();
cout<<"Ho va ten\t\tMASSV\tToan\tLy\tHoa\n";
sv.XuatDS();

getch();
}
Về Đầu Trang Go down
Xem lý lịch thành viên
Ice
Thành Viên Cấp 1
Thành Viên Cấp 1
avatar

Tổng số bài gửi : 29
Registration date : 18/11/2008

Bài gửiTiêu đề: Re: Bài tập CTDL   Fri Nov 28, 2008 11:04 pm

Đây là file chạy:
http://www.mediafire.com/download.php?ldezykdzjcq
link died báo hen ^^!
Về Đầu Trang Go down
Xem lý lịch thành viên
Sponsored content




Bài gửiTiêu đề: Re: Bài tập CTDL   

Về Đầu Trang Go down
 
Bài tập CTDL
Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Khoa Công Nghệ Thông Tin -Khóa XIII-Lớp TH0702 :: Khu Học Tập :: Năm 2-
Chuyển đến