1. Trang chủ
  2. » Công Nghệ Thông Tin

Ví dụ về Các lớp sắp xếp

4 475 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ví dụ về Các lớp sắp xếp
Định dạng
Số trang 4
Dung lượng 14,09 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ví dụ về Các lớp sắp xếpTrong mục này trình bầy 2 chương trình minh hoạ cách dùng các lớp nói trên.. Chương trình thứ nhất minh hoạ cách sử dụng các lớp trong tệp C_SORT.H để sắp xếp một

Trang 1

Ví dụ về Các lớp sắp xếp

Trong mục này trình bầy 2 chương trình minh hoạ cách

dùng các lớp nói trên Chương trình thứ nhất minh hoạ cách

sử dụng các lớp trong tệp C_SORT.H để sắp xếp một dẫy thí

sinh theo thứ tự giảm và thứ tự tăng của tổng điểm Chương

trình thứ hai minh hoạ cách dùng các lớp trong C_SORT.H để

sắp xếp một dẫy số nguyên theo chiều tăng và chiều giảm

Chương trình 1

//CT10-08

// Lop co so truu tuong

// Lop sort

#include "c_sort.h"

class TS

{

private:

char ht[25];

int sobd;

float td;

public:

float get_td()

{

return td;

}

void nhap()

{

cout << "\nHo ten: " ;

fflush(stdin);

gets(ht);

cout << "So bao danh: " ; cin >> sobd;

cout << "Tong diem: " ; cin >> td;

} void xuat() {

cout << "\nHo ten: " << ht;

cout << "\nSo bao danh: " << sobd;

cout << "\nTong diem: " <<

setiosflags(ios::showpoint)

<< setprecision(1)<<setw(5)<<

td;

} };

int ss_tong_diem_giam(void *ts1, void *ts2) {

return ( ((TS*)ts1)->get_td() > ((TS*)ts2)->get_td()) ; }

int ss_tong_diem_tang(void *ts1, void *ts2) {

return ( ((TS*)ts1)->get_td() < ((TS*)ts2)->get_td()) ; }

void main() {

TS t[100];

Trang 2

sort *sa;

int n,i;

clrscr();

cout << "\nSo thi sinh: ";

cin >> n;

for(i=1; i<=n; ++i) t[i].nhap();

for(i=1; i<=n; ++i) t[i].xuat();

getch();

cout << "\n\nSap xep giam theo tong diem - PP Select

Sort" ;

sa= new select_sort;

sa->sapxep( t+1,n,sizeof(TS),ss_tong_diem_giam);

for(i=1; i<=n; ++i) t[i].xuat();

delete sa;

getch();

cout << "\n\nSap xep tang theo tong diem - PP Select

Sort";

sa= new select_sort;

sa->sapxep( t+1,n,sizeof(TS),ss_tong_diem_tang);

for(i=1; i<=n; ++i) t[i].xuat();

delete sa;

getch();

cout << "\n\nSap xep giam theo tong diem - PP Quick

Sort" ;

sa= new quick_sort;

sa->sapxep( t+1,n,sizeof(TS),ss_tong_diem_giam);

for(i=1; i<=n; ++i) t[i].xuat();

delete sa;

getch();

cout << "\n\nSap xep tang theo tong diem - PP Quick Sort" ;

sa= new quick_sort;

sa->sapxep( t+1,n,sizeof(TS),ss_tong_diem_tang);

for(i=1; i<=n; ++i) t[i].xuat();

delete sa;

getch();

cout << "\n\nSap xep giam theo tong diem - PP Heap Sort" ;

sa= new heap_sort;

sa->sapxep( t+1,n,sizeof(TS),ss_tong_diem_giam);

for(i=1; i<=n; ++i) t[i].xuat();

delete sa;

getch();

cout << "\n\nSap xep tang theo tong diem - PP Heap Sort" ;

sa= new heap_sort;

sa->sapxep( t+1,n,sizeof(TS),ss_tong_diem_tang);

for(i=1; i<=n; ++i) t[i].xuat();

delete sa;

getch();

}

Chương trình 2

//CT10-09 // Lop co so truu tuong // Lop sort

#include "c_sort.h"

Trang 3

int ss_tang(void *i1,void *i2)

{

return *((int*)i1) < *((int*)i2);

}

int ss_giam(void *i1,void *i2)

{

return *((int*)i1) > *((int*)i2);

}

void main()

{

int i,n;

struct time t1,t2;

int b[20],a[20], k, tg, sec, hund;

n=10;

sort *s[3];

select_sort ss;

quick_sort qs;

heap_sort hs;

s[0]=&ss; s[1]=&qs; s[2]=&hs;

clrscr();

srand(5000);

for(i=1;i<=n;++i)

b[i]=rand();

cout<<"\nDay ban dau\n ";

for(i=1;i<=n;++i) cout <<b[i]<<" ";

cout<<"\n\nCac day tang sap xep theo ";

cout << "select_sort, quick_sort, heap_sort\n";

for(k=0; k<3; ++k)

{ for(i=1;i<=n;++i) a[i]=b[i];

s[k]->sapxep (a+1,n,sizeof(int),ss_tang);

//In for(i=1;i<=n;++i) cout <<a[i]<<" ";

cout<<"\n";

} cout<<"\n\nCac day giam sap xep theo ";

cout << "select_sort, quick_sort, heap_sort\n";

for(k=0; k<3; ++k) {

for(i=1;i<=n;++i) a[i]=b[i];

s[k]->sapxep (a+1,n,sizeof(int),ss_giam);

//In for(i=1;i<=n;++i) cout <<a[i]<<" ";

cout << "\n";

} getch();

}

Ngày đăng: 26/10/2013, 01:20

TỪ KHÓA LIÊN QUAN

w