Dạy học kĩ thuật lập trình cho sinh viên ngành Kĩ thuật điện tử - viễn thông theo hướng phát triển tư duy điện toán - 26


truyền thống. Cụ thể ở đây, GV sẽ trình bày và giải thích các chương trình giải quyết bài tập 1 và bài tập 2.

- Chuyển giao nhiệm vụ: GV đưa ra nội dung yêu cầu 2 bài tập có sử dụng kế thừa đơn, GV chia lớp thành 2 nhóm (A và B). Sau đó, mỗi nhóm chọn một bài tập.

- Thực hiện nhiệm vụ: Các nhóm SV thảo luận và hình thành bài toán.

GV hỗ trợ, theo dõi quá trình giải quyết vấn đề của nhóm yếu hơn.

- Báo cáo nhiệm vụ: Trao đổi chéo giữa các nhóm bài làm của từng nhóm. GV đưa ra tiêu chí và đáp án, theo dõi, hỗ trợ các nhóm tự đánh giá.

Khi các nhóm SV đánh giá chéo, GV lưu ý SV những điểm sau: cần bám sát các tiêu chí đánh giá, hỏi GV nếu chưa hiểu rõ; phải đảm bảo công bằng, khách quan (đánh giá theo tiêu chí, không dựa vào cảm nhận chủ quan); thông báo cho GV biết những trường hợp không có vào bảng tiêu chí đã mô tả để GV kịp thời bổ sung và điều chỉnh.

- GV cùng SV thảo luận bài làm của từng nhóm. GV sẽ tóm lại và khái quát thành một lớp bài toán.

* Nội dung hoạt động: Nội dung được trình bày chi tiết trong PHỤ LỤC 4. Bài tập 1: Với mục đích tính diện tích các hình vuông, hình chữ nhật, hình tròn, hình thang, hình tam giác.

Hãy tổ chức các lớp sao cho có thể kế thừa thành phần dữ liệu cài đặt:

Có thể bạn quan tâm!

Xem toàn bộ 235 trang tài liệu này.

- Cấu tử

- Nhập, xuất

Dạy học kĩ thuật lập trình cho sinh viên ngành Kĩ thuật điện tử - viễn thông theo hướng phát triển tư duy điện toán - 26

- Tính diện tích.

Gợi ý làm bài tập 1:

#include <iostream. h>

#include <conio. h> const float pi = 3.14 ;


class HV

{ protected :

int a ; public :

HV ( int n = 0 ) { a = n ; } void nhap ( )

{ cout << “Nhap canh a: ” ; cin >> a ;

}

float dt ( ) { return a * a ; } void xuat( )

{ cout << “Dien tich cua hinh nay: ” ; }

}

Class HTRON : public HV

{ public :

HTRON( ) { x = 0 ;}

HTRON( int x ) : HV( x ) { }

void nhap( )

{ cout << “ Ban kinh hinh tron r = ” ; cin >> a ;

}

float dt( ) { return a * a * pi ; } // float dt( ) {return HV :: dt( )*pi ; }

}

Class HCN : public HV

{ protected :

int b ; public :

HCN( ) { b = 0 ; }

HCN( int n ; int m ) : HV( a ) { b = m ; }


void nhap( )

{ HV :: nhap( ) ;

cout << “ Canh b = ” ; cin >> b ;

}

float dt( ) { return a * b ; }

}

Class HTHANG : public HCN

{ protected :

int dc ; public :

HTHANG( ) { dc = 0 ; }

HTHANG( int n = 0; int m = 0 ; int q = 0 ) : HCN( a , b ) { dc = q ; } void nhap( )

{ HCN :: nhap( ) ;

cout << “ Nhap duong cao h = ” ; cin >> dc ;

}

float dt( ) { return (a + b) * dc / 2 ; }

}

Class TAMGIAC : public HCN

{ public :

TAMGIAC( ) { }

TAMGIAC( int n ; int m ) : HCN( a , b ) { } void nhap( )

{ cout << “ Nhap day ” ; cin >> a ; cout << “ Nhap duong cao ” ; cin >> b ;

}

float dt( ) { return HCN :: dt( ) / 2 ; }

}


Bài tập 2: Thư viện có 3 loại tài liệu: sách, tạp chí, giáo trình. Có các dữ liệu chung: mã tài liệu, vị trí, số lượng, đơn giá. Và có dữ liệu riêng như sau:

- Sách: tác giả, tên sách, năm xuất bản.

- Tạp chí: tên tạp chí, chuyên ngành.

- Giáo trình: tác giả, tên.

Tổ chức các lớp sao cho kế thừa được các dữ liệu chung. Tiến hành cài đặt: - Cấu tử, hủy tử

- Thủ tục nhập, xuất.

Gợi ý làm bài tập 2:

Class THUVIEN

{ protected :

char *matl ; int vt, sl, dg ;

public :

THUVIEN( ) { matl = “” ; vt = sl = dg = 0 ; } THUVIEN( char *, int, int, int) ;

THUVIEN( THUVIEN &t ) ;

~THUVIEN( ) { delete matl ; } void nhap( ) ;

void xuat( ) ;

}

THUVIEN :: THUVIEN( char *ma , int v , int s , int d )

{ matl = new char [ strlen( ma ) + 1 ] ; strcpy( matl , ma ) ;

vt = v ; sl = s ; dg = d ;

}

THUVIEN :: THUVIEN( THUVIEN &t )

{ matl = new char [ strlen( t. matl ) + 1 ] ; strcpy( matl , t. matl ) ;

vt = t. vt ; sl = t. sl ; dg = t. dg ;

}

void THUVIEN :: nhap ()

{ char ma[6] ;


cout << “n Nhap ma tai lieu can muon: ” ; cin >> ma ;

delete matl ;

matl = new char [ strlen( ma ) + 1 ] ; strcpy( matl , ma ) ;

cout << “n Nhap vi tri dat tai lieu: ” ; cin >> vt ;

cout << “n Nhap so luong tai lieu: ” ; cin >> sl ;

cout << “n Nhap don gia cua tai lieu: ” ; cin >> dg ;

}

void THUVIEN :: xuat ()

{ cout << “n Ma tai lieu can muon: ” << matl ; cout << “n Vi tri tai lieu can muon: ” << vt ; cout << “n So luong tai lieu can muon: ” << sl ; cout << “n Don gia tai lieu can muon: ” << dg ;

}

Class SACH : public THUVIEN

{ private :

char *tg , *ts ; int nxb ;

public :

SACH( ) { tg = ts = “” ; nxb = 0 ; } SACH( char *, char *, int ) ; SACH( SACH &s ) ;

~SACH( ) { delete tg ; delete ts ; } void nhap( ) ;

void xuat( ) ;

}

SACH :: SACH ( char *tgia , char *tsach , int n )

{ tg = new char[ strlen( tgia ) + 1 ] ; strcpy( tg , tgia ) ;

ts = new char[ strlen( tsach ) + 1 ] ; strcpy( ts , tsach ) ;

nxb = n ; }


SACH :: SACH ( SACH &s )

{ tg = new char[ strlen( s. tg ) + 1 ] ; strcpy( tg , s. tg ) ;

ts = new char[ strlen( s. ts ) + 1 ] ; strcpy( ts , s. ts ) ;

nxb = s. nxb ;

}

void SACH :: nhap ()

{ char tgia[30] , tsach[30] ; THUVIEN :: nhap() ;

cout << “n Nhap ten tac gia cua sach can muon: ” ; cin >> tgia ;

cout << “n Nhap ten sach can muon: ” ; cin >> tsach ;

cout << “n Nhap năm xuat ban cua sach can muon: ” ; cin >> nxb ;

delete tg ; delete ts ;

tg = new char [ strlen( tg ) + 1 ] ; strcpy( tg , tgia ) ;

ts = new char [ strlen( tsach ) + 1 ] ; strcpy( ts , tsach ) ;

}

void SACH :: xuat ( )

{ THUVIEN :: xuat ( ) ;

cout << “n Ten tac gia can muon: ” << tg ; cout << “n Ten sach can muon: ” << ts ;

cout << “n Nam xuat ban sach can muon: ” << nxb ;

}

Class TAPCHI : public THUVIEN

{ private :

char *tc , *cn ; int so ;

public :

TAPCHI( ) { tc = cn = “” ; so = 0 ; }

TAPCHI( char *, char *, int ) ; TAPCHI( TAPCHI &h ) ;


~TAPCHI( ) { delete tc ; delete cn ; } void nhap( ) ;

void xuat( ) ;

}

TAPCHI :: TAPCHI ( char *t , char *c , int s )

{ tc = new char[ strlen( t ) + 1 ] ; strcpy( tc , t ) ;

cn = new char[ strlen( c ) + 1 ] ; strcpy( cn , c ) ;

so = s ;

}

TAPCHI :: TAPCHI ( TAPCHI &h )

{ tc = new char[ strlen( h. tc ) + 1 ] ; strcpy( tc , h. tc ) ;

cn = new char[ strlen( h. cn ) + 1 ] ; strcpy( cn , h. cn ) ;

so = h. so ;

}

void TAPCHI :: nhap ()

{ char t[30] , c[30] ;

THUVIEN :: nhap() ;

cout << “n Nhap ten tap chi can muon: ” ; cin >> t ;

cout << “n Nhap chuyen nganh cua tap chi can muon: ” ; cin >> c ;

cout << “n Nhap so tap chi can muon: ” ; cin >> so ;

delete tc ; delete cn ;

tc = new char [ strlen( t ) + 1 ] ; strcpy( tc , t ) ;

cn = new char [ strlen( c ) + 1 ] ; strcpy( cn , c ) ;

}

void TAPCHI :: xuat ( )

{ THUVIEN :: xuat ( ) ;

cout << “n Ten tap chi can muon: ” << tc ;


cout << “n Chuyen nganh cua tap chi can muon: ” << cn ; cout << “n So tap chi can muon: ” << so ;

}

Class GIAOTRINH : public THUVIEN

{ private :

char *tengt , *cb ; public :

GIAOTRINH ( ) { tengt = cb = “” ; }

GIAOTRINH ( char *, char * ) ; GIAOTRINH ( GIAOTRINH &g ) ;

~ GIAOTRINH ( ) { delete tentg ; delete cb ; } void nhap( ) ;

void xuat( ) ;

}

GIAOTRINH :: GIAOTRINH ( char *gt , char *c )

{ tengt = new char[ strlen( gt ) + 1 ] ; strcpy( tengt , gt ) ;

cb = new char[ strlen( c ) + 1 ] ; strcpy( cb , c ) ;

}

GIAOTRINH :: GIAOTRINH ( GIAOTRINH &k )

{ tengt = new char[ strlen( k. tengt ) + 1 ] ; strcpy( tengt , k. tengt ) ;

cb = new char[ strlen( k. cb ) + 1 ] ; strcpy( cb , k. cb ) ;

}

void GIAOTRINH :: nhap ()

{ char gt[30] , c[30] ;

THUVIEN :: nhap() ;

cout << “n Nhap ten giao trinh can muon: ” ; cin >> gt ;

cout << “n Nhap chu bien cua giao trinh can muon: ” ; cin >> c ;

delete tengt ; delete cb ;

tengt = new char [ strlen( gt ) + 1 ] ; strcpy( tengt , gt ) ;

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 02/09/2022