1. Trang chủ
  2. » Nghệ sĩ và thiết kế

Bài tập LTHĐT _ tự soạn

51 100 2

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 51
Dung lượng 1,24 MB

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

Nội dung

class này có các phương thức sau: hàm contructor, nhập,xuất, cộng (lấy phân số thứ nhất cộng phân số thứ hai, và phần nguyên thứ nhất cộng phần nguyên thứ hai. Nếu hỗn số nào có phần [r]

Trang 1

Mục lục

CHỦ ĐỀ 1: CLASS 2

Lopps 2

LOPHS 4

LOPMANG 6

OOP_Set 9

LOPDATHUC 11

1718_2_LTHDT_Midterm_01 13

OOP_NDTN_ExA1 16

OOP_NDTN_ExA2 18

OOP_NDTN_ExB1 19

OOP_NDTN_ExB2 20

Chủ đề 2: fiend và Quá tải toán tử : 22

Bài 1: LOPSV2 23

Bài 2: LOPMANGSV 24

Bài 3 : TAPSOMOI 26

Bài 4: OOP_NDTN_ExB3 28

Bài 5: OOP_NDTN_ExA3 29

Bài 6: 1718_2_LTHDT_Midterm_02 30

Chủ đề 3: KHUÔN HÌNH 33

Template2 33

KhuonHinhTong 35

TEMPTAPSOMOI 37

Chủ đề 4: kế thừa 39

Bài 1: HCNHV 39

Bài 3: LTHDT_HonSo1 43

Bài 4: LTHDT_HonSo2 44

Chủ đề 5: Đa hình 46

Bài 1: QLINTERNET 46

Bài 2: DAHINH1 49

Trang 2

5 Cộng, trừ, nhân, chia, so sánh với phân số khác

Viết chương trình sử dụng lớp phân số ở trên để giải quyết các yêu cầu sau

Input: Gồm 2 dòng

- Dòng 1 là phân số X có 2 số là tử và mẫu số

- Dòng 2: chứa 1 số nguyên k

Output:

- Dòng 1: Xuất tử của phân số X

- Dòng 2: Xuất mẫu phân số X

- Dòng 3: Phân số nghịch đảo của phân số X

- Dòng 4: Phân số rút gọn của phân số X

- Dòng 5: xuất phân số Y (Phân số Y là phân số có tử và mẫu được tính như sau:

tử của Y = tử của X + k

mẫu của Y = mẫu của X + k)

- Dòng 6: Xuất phân số tích (sau khi rút gọn) của phân số X và phân số Y

2 4

1

2

4 4/2 1/2 3/5 3/10

Trang 3

int getMau(){return mau;}

PS(int t=0, int m=1){ tu = t; mau= m; }

PS(const PS &p) { tu = p.tu; mau= p.mau; }

friend ostream& operator << (ostream& os, PS &p){

os<< p.tu <<"/"<< p.mau;

return os;

}

PS RutGonPS(){

int ucln= UCLN(tu, mau);

return PS(tu/ucln, mau/ucln);

//doi void -> PS

//tu /= ucln;

//mau /=ucln;

}

PS NghichDaoPS(){ return PS(mau, tu);}

//phep toan: + - / * , logic so sanh

PS operator + (PS p){

int a= tu*p.mau + p.tu*mau;

int b = mau* p.mau;

return PS(a,b);

}

PS operator - (PS p){

int a= tu*p.mau - p.tu*mau;

int b = mau* p.mau;

//ham khac : ham cong so nguyen

PS CongSoNguyen(int k){ return PS(tu+k, mau +k); }

//1/2 + 1 ~ 1/2 + 1/1 = 3/2 -> friend operator + (PS p1 , PS p2)

};

Trang 4

Điểm văn, toán.

Xây dựng lớp học sinh cho phép thực hiện các thao tác:

Nhập, xuất

Lấy họ tên, điểm văn, toán

Gán giá trị cho họ tên, điểm văn, điểm toán

Tính điểm trung bình

Xếp loại theo tiêu chí:

Gioi (>= 8.0), Kha (>= 7.0)

Trung binh (>= 5.0), Yeu (< 5)

Viết chương trình giải bài sau:

Trang 5

1 Khai báo 1 chuỗi, ví dụ:

string s; //lưu ý: thư viện: #include

HS(string s=" -", double t=0, double v=0){

hoten=s; dvan = v; dtoan=t;

Trang 6

is>>hs.dtoan>> hs.dvan;

return is;

}

friend ostream& operator << (ostream& os , HS hs){

os<<hs.hoten << "|"<< hs.dtoan<< "|"<<hs.dvan<<endl;

if(dtb >= 8) return "Gioi";

if(dtb >= 7) return "Kha";

if(dtb >= 5) return "Trung binh";

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

if( dsHS[i].getDTB() > dsHS[index].getDTB() )

Lấy phần tử tại vị trí nào đó

Gán giá trị cho phần tử tại vị trí nào đó

Trang 7

Output:

- Dòng 1: số lượng phần tử của mảng

- Dòng 2: Xuất TRUE nếu có giá trị X trong mảng, xuất FALSE nếu không có giá trị X trong mảng

- Dòng 3: xuất mảng theo thứ tự tăng dần

- Dòng 4: Sau khi phần tử đầu mảng tăng lên 1 đơn vị (mảng ban đầu) hãy xuất mảng theo thứ tự giảm dần

* NGUYEN KHAC VAN **

* int a[]= {1,2,3,4} //size= 4

* int a[]= new int[10]{1,2,3,4} //size= 10 (0 cho 6 tu phan chua co)

* int a[10]; //size= 10 {0,0,0,0 }

Trang 8

void sortMANG(bool flag = true){

//flag = true (sx tang dan), false (sx giam dan)

for(int i= 0; i< n-1; i++)

Trang 9

Xây dựng chương trình quản lý các đối tượng Tập Hợp (Set), biết rằng:

• Đối tượng Tập Hợp có thể chứa N số nguyên

• Các đối tượng Tập Hợp có thể tương tác với nhau qua các phép toán:

o Phép Giao (Intersect): kết quả phép giao giữa 2 tập hợp A và B sẽ

là 1 tập hợp chỉ chứa các giá trị vừa thuộc A, vừa thuộc B

o Phép Hợp (Union): kết quả phép hợp giữa 2 tập hợp A và B sẽ là 1 tập hợp chứa tất cả giá trị thuộc A và thuộc B

Yêu cầu:

1 Xây dựng lớp đối tượng Tập Hợp (Set) có đầy đủ thành phần dữ liệu và phương thức cần thiết Việc xây dựng chương trình phải được thực hiện bằng phương pháp lập trình hướng đối tượng, thể hiện đúng nguyên lý đóng gói và cơ chế che dấu dữ liệu

2 Sử dụng kĩ thuật cấp phát động để tạo mảng lưu các giá trị trong Tập Hợp

• Dòng thứ tư: chứa kết quả phép hợp của tập hợp thứ nhất và thứ hai Các giá trị của tập hợp kết quả được xếp theo thứ tự tăng dần Nếu là tập hợp rỗng thì xuất số 0

#include <bits/stdc++.h>

using namespace std;

Trang 10

for (int i = 0 ; i < a.getn() ; ++i) {

for (int j = 0 ; j < b.getn() ; ++j) {

for (int i = 0 ; i < a.getn() ; ++i) c[n++] = a.getphantu(i);

for (int i = 0 ; i < b.getn() ; ++i) {

int dem = 0;

for (int j = 0 ; j < a.getn() ; ++j) {

if (b.getphantu(i) == a.getphantu(j)) ++dem;

Trang 11

Xây dựng lớp đối tượng Đa thức (Polynomial) để biểu diễn đa thức có dạng

anxn + an-1xn-1 + an-2xn-2 + … + a2x2 + a1x + a0

Yêu cầu:

1. Xây dựng lớp đối tượng với đầy đủ thành phần dữ liệu cần thiết, bao gồm:

- 1 số nguyên không âm biểu diễn bậc của đa thức

- 1 mảng các hệ số kiểu số thực

2. Xây dựng các phương thức khởi tạo:

- Khởi tạo không tham số với bậc là 0 (đa thức bậc 0)

- Khởi tạo sao chép

3. Xây dựng phương thức tính giá trị đa thức khi biết giá trị biến x

4. Xây dựng phương thức tính đạo hàm bậc 1 của đa thức

5. Xây dựng phương thức nạp chồng toán tử nhập và xuất cho đa thức

Lưu ý:

Khi xuất đa thức, SV cần kiểm tra định dạng của đơn thức trong những trường hợp sau:

- Hệ số là số âm thì xuất dấu – (dấu trừ) đứng trước hệ số

- Hệ số là số dương thì xuất dấu + (dấu cộng) đứng trước hệ số (ngoại trừ hệ số đầu tiên)

- Hệ số là 1 thì không cần xuất hệ số

- Hệ số là 0 thì không cần xuất đơn thức

- Số mũ là 1 thì không cần xuất số mũ của biến x

- Số mũ là 0 thì chỉ xuất hệ số

Input:

- Dòng đầu tiên là 1 số nguyên không âm N cho biết bậc của đa thức

- Dòng thứ hai là N + 1 số thực cho biết các hệ số từ N đến 0 của đa thức

- Dòng thứ ba là số thực K cho biết giá trị của biến x để tính giá trị đa thức

Output:

- Dòng đầu tiên là đa thức được xuất theo định dạng

anx^n + an-1x^n-1 + an-2x^n-2 + … + a2x^2 + a1x + a0

Trang 12

- Dòng thứ hai là đạo hàm bậc 1 của đa thức ban đầu, được xuất theo định dạng như trên

- Dòng thứ ba là giá trị đạo hàm bậc 1 của đa thức khi x = K

4

5 -4 3 -2 1

2

5x^4 – 4x^3 + 3x^2 – 2x + 1 20x^3 – 12x^2 + 6x – 2

122

#include <iostream>

#include <cmath>

using namespace std;

class DaThuc {

private:

int n;

double a[100];

public:

void Nhap() {

cin >> n;

for (int i = 0 ; i <= n ; ++i) cin >> a[i];

}

void XuatMotSoHang (int a , int n , int &dem) { if (a != 0) { if (dem == 0) { if (n == 0) cout << a; if (n == 1) cout << a << "x"; if (n > 1) cout << a << "x^" << n; ++dem; }

else { if (dem == 1) { if (n == 0) { if (a > 0) cout << "+" << a; if (a < 0) cout << a; }

if (n == 1) { if (a == 1) cout << "+x"; if (a == -1) cout << "-x"; if (a < -1 || (a > -1 && a < 0)) cout << a << "x"; if (a > 1 || (a < 1 && a > 0)) cout << "+" << a << "x"; }

if (n > 1) { if (a == 1) cout << "+x^" << n; if (a == -1) cout << "-x^" << n; if (a < -1 || (a > -1 && a < 0)) cout << a << "x^" << n; if (a > 1 || (a < 1 && a > 0)) cout << "+" << a << "x^" << n; }

}

}

}

}

void Xuat() {

Trang 13

int dem = 0;

for (int i = 0 ; i <= n ; ++i) {

XuatMotSoHang (a[i] , n - i , dem);

}

}

void DaoHam() {

for (int i = 0 ; i <= n ; ++i) {

a[i] = a[i] * (n - i);

for (int i = 0 ; i <= n ; ++i) {

giatri += a[i] * pow (x , n - i);

Trang 14

Cho biết:

- Phương thức getName trả về chuỗi “firstName lastName”;

- Phương thức getAnnualSalary trả về giá trị lương 1 năm = 12 * salary

- Phương thức raiseSalary thực hiện việc tăng lương nhân viên theo % và trả về mức lương mới sau khi tăng;

- Phương thức toString trả về chuỗi thông tin nhân viên theo định dạng:

“Employee[id=?,name=firstName lastName,salary=?]”;

Yêu cầu: phải thực hiện đúng theo phương pháp lập trình hướng đối tượng và yêu cầu đề bài Bài làm không

đúng phương pháp hoặc sai yêu cầu sẽ không được tính điểm

Lưu ý: lương nhân viên được xuất ra theo dạng tiền tệ, bắt đầu bằng kí tự $ và có tối đa 2 số lẻ ở phần thập

phân

Input:

- Dòng 1 - 4: lần lượt là các thông tin của 1 nhân viên;

- Dòng 5: giá trị số thực cho biết số % tăng lương cho nhân viên

Output:

- Dòng 1: thông tin nhân viên được xuất theo định dạng đã mô tả

- Dòng 2: mức lương mới của nhân viên sau khi tăng

- Dòng 3: lương 1 năm của nhân viên (áp dụng mức lương mới sau khi tăng)

int getID(){ return id; }

string getFirstName(){ return firstName; }

string getLastName(){ return lastName; }

string getName(){ return firstName +" " + lastName; }

double getSalary(){ return salary; }

void setSalary(double _salary){ salary = _salary;}

double getAnnualSalary(){ return 12*salary; }

double raiseSalary(double percent){

salary = salary*(1 + percent);

Trang 15

return s;

}

Employee(int _id=0, string _firstName="firstName", string _lastName="lastName", double _salary= 0){

id = _id; firstName = _firstName; lastName = _lastName; salary = _salary;

}

friend istream& operator >> (istream& is, Employee &e){

is>> e.id >> e.firstName >> e.lastName >> e.salary;

return is;

}

friend ostream& operator << (ostream& os, Employee e){

os<< "Employee[id= " << e.id << ",name=" << e.getName()

Employee operator ++(int){ // ++a

Employee res = *this;

Employee operator (int){ // a

Employee res = *this;

bool operator <(Employee em){

return (getAnnualSalary() < em.getAnnualSalary());

}

bool operator >(Employee em){

return (getAnnualSalary() > em.getAnnualSalary());

Trang 16

}

bool operator ==(Employee em){

return (getAnnualSalary() == em.getAnnualSalary());

}

bool operator !=(Employee em){

return (getAnnualSalary() != em.getAnnualSalary());

cout<<"$"<<(emp1++ - plus1 ).getSalary()<<endl;

cout<<"$"<<( emp2 + plus2 ).getSalary()<<endl;

Employee[id= 12,name=Up Coder,salary= $5000.00]

Employee[id= 13,name=Fit Hcmup,salary= $6500.30]

Ta có định nghĩa kiểu dữ liệu ARRINT1: P= a0 a1⋯an-1

Trong đó, ARRINT1 có thuộc tính len =n (độ dài) và mảng a[n] để lưu (ký tự số), các giá trị ai trong phạm vi từ 0 → 9 và giá trị an-1 # 0

Trang 17

Ví dụ: len=6 và mảng a[]={6;5;4;3;2;1} → P= 123456

Xây dựng lớp ARRINT1 dùng để mô tả đối tượng trên:

- Có hàm khởi tạo mặc định để tạo ra đa thức len=1 và a0 = 0

- Có hàm khởi tạo 1 tham số kiểu int truyền vào là thuộc tính len của lớp ARRINT1 để tạo ra đa thức

mà các hệ số đều bằng 1

- Có hàm khởi tạo 2 tham số lần lượt là độ dài len và mảng số nguyên chứa các an, an-1, …,

a0 (kiểu int[])

- Có property getLen, setLen giá trị len của ARRINT1

- Phương thức Input: với tham số truyền vào gồm số nguyên cho biết len và mảng số nguyên biểu diễn các giá trị của các hệ số từ a[n-1] đến a[0].-

- Phương thức Output: xuất thông tin theo dạng:

len :a0 a1⋯an-1

Input:

o Dòng 1: số nguyên N cho biết thuộc tính len

oDòng 2: N số nguyên cho biết giá trị các hệ số từ a[N-1] đến a[0] (Trường hợp là chỉ có “#” thực hiện tạo ARRINT1 1 tham số len)

void nhap_mang(int a[],int n) {

for(int i=0;i<n;++i) cin>>a[i];

}

void ARRINT1(int a[],int n) {

cout<<n<<": ";

if(a[0]==a[1] && a[0]==0) {

for(int i=0;i<n;++i) cout<<1;

void xuat_mang(int a[],int n) {

for(int i=0;i<n;++i) cout<<a[i]<<" ";

Trang 18

}

OOP_NDTN_ExA2

Từ định nghĩa kiểu dữ liệu ARRINT1: P= a0 a1⋯an-1

Trong đó, ARRINT1 có thuộc tính len =n (độ dài) và mảng a[n] để lưu (ký tự số), các giá trị ai trong phạm vi từ 0 → 9 và giá trị an-1 # 0

Ví dụ: len=6 và mảng a[]={6;5;4;3;2;1} → P= 123456

Xây dựng tiếp các phương thức sau:

- Phương thức getMod trả về số nguyên với 1 tham số truyền vào

là b (kiểu int) để tính tổng mod của từng phần tử với tham số b

- Phương thức getOddNumber trả về kiểu ARRINT1 với len bằng số lượng chữ số lẻ trong mảng và mảng a[] chứa các số lẻ theo đúng thứ tự nguyên thêm vào mảng

Ví dụ: Gọi getOddNumber cho P(6, a[]={1,2,3,4,5,6}) → Q(3, a[]={1,3,5})

Input:

o Dòng 1: số nguyên N cho biết thuộc tính len và giá trị b

o Dòng 2: N số nguyên cho biết giá trị các hệ số từ a[N-1] đến a[0]

Output:

o Dòng 1: cho biết giá trị khi dùng getMod với số nguyên b

o Dòng 2: hiển thị ARRINT1 sau khi thực hiện gọi getOddNumber

6 2

3 1 2 4 0 2

2 2:13

4 3

1 1 1 1

4 4:11

void cap_phat(int *&a,int moi,int cu) {

int *b=new int[cu];

for(int i=0;i<cu;++i) b[i]=a[i];

Trang 19

void nhap_mang(int *&a,int &n,int x) {

if(n==0) a=new int;

Ta có định nghĩa kiểu dữ liệu ARRINT2: P= a0 a1⋯an-1

Trong đó, ARRINT2 có thuộc tính len =n (độ dài) và mảng a[n] để lưu (ký tự số), các giá trị ai trong phạm vi từ 0 → 9 và giá trị an-1 # 0

Ví dụ: len=6 và mảng a[]={6;5;4;3;2;1} → P= 123456

Xây dựng lớp ARRINT2 dùng để mô tả đối tượng trên:

- Có hàm khởi tạo mặc định để tạo ra đa thức len=1 và a0 = 0

- Có hàm khởi tạo 1 tham số kiểu int truyền vào là thuộc tính len của lớp ARRINT2 để tạo ra đa thức

mà các hệ số tăng dần theo bậc từ 1 tới n-1

- Có hàm khởi tạo 2 tham số lần lượt là độ dài len và mảng số nguyên chứa các an, an-1, …,

a0 (kiểu int[])

- Có property getLen, setLen giá trị len của ARRINT2

- Phương thức Input: với tham số truyền vào gồm số nguyên cho biết len và mảng số nguyên biểu diễn các giá trị của các hệ số từ a[n-1] đến a[0].-

- Phương thức Output: xuất thông tin theo dạng:

len :a0 a1⋯an-1

Input:

o Dòng 1: số nguyên N cho biết thuộc tính len

Trang 20

oDòng 2: N số nguyên cho biết giá trị các hệ số từ a[N-1] đến a[0] (Trường hợp là chỉ có “#” thực hiện tạo ARRIN2 1 tham số len)

Từ định nghĩa kiểu dữ liệu ARRINT2: P= a0 a1⋯an-1

Trong đó, ARRINT2 có thuộc tính len =n (độ dài) và mảng a[n] để lưu (ký tự số), các giá trị ai trong phạm vi từ 0 → 9 và giá trị an-1 # 0

Ví dụ: len=6 và mảng a[]={6;5;4;3;2;1} → P= 123456

Xây dựng tiếp các phương thức sau:

- Phương thức getDiv trả về số nguyên với 1 tham số truyền vào

là b (kiểu int) để tính tổng phần nguyên của phép chia lấy từng phần tử với tham số b.

Trang 21

- Phương thức getEvenNumber trả về kiểu ARRINT2 với len bằng số lượng chữ số chẵn trong mảng

và mảng a[] chứa các số chẵn theo đúng thứ tự thêm vào mảng

Ví dụ: getEvenNumber cho P(6, a[]={1,2,3,4,5,6}) → Q(3, a[]={2,4,6})

Input:

o Dòng 1: số nguyên N cho biết thuộc tính len và giá trị b

o Dòng 2: N số nguyên cho biết giá trị các hệ số từ a[N-1] đến a[0]

Output:

o Dòng 1: cho biết giá trị khi dùng getDiv với số nguyên b

o Dòng 2: hiển thị ARRINT2 sau khi thực hiện gọi getEvenNumber

6 2

2 3 1 4 0 2

5 4:2042

5 4

1 0 4 2 7

2 2:24

void cap_phat(int *&a,int moi,int cu) {

int *b=new int[cu];

for(int i=0;i<cu;++i) b[i]=a[i];

void nhap_mang(int *&a,int &n,int x) {

if(n==0) a=new int;

Trang 22

else cap_phat(a,n+1,n);

a[n]=x;

++n;

}

void xoa(int *a,int &n,int vt) {

for(int i=vt+1;i<n;++i) a[i-1]=a[i];

Chủ đề 2: fiend và Quá tải toán tử :

1 Khai báo 1 chuỗi, ví dụ:

string s; //lưu ý: thư viện: #include <string>

2 Nhập vào 1 chuỗi không có khoảng trắng

Trang 23

5 Nhập chuỗi, mà trước đó nhập vào 1 dãy có kết thúc bằng ctrl + z

+ mảng số thực: lưu danh sách điểm các môn học (các điểm là các số thực >=0 và <=10)

+ số lượng phần tử của danh sách điểm

Thao tác: xây dựng các toán tử >>, <<, [], =, lấy điểm trung bình cộng, các phương thức khởi tạo (3 phương

thức), phương thức hủy, các phương thức get và set

- Lớp SinhViên, gồm có các thuộc tính

+ Họ tên (chuỗi có khoảng trắng)

+ Mã Sinh Viên (chuỗi không có khoảng trắng)

+ Điểm (thuộc lớp điểm khai báo ở trên)

Thao tác: xây dựng các toán tử >>, <<, =, < (dựa vào điểm trung bình), lấy điểm trung bình cộng, các phương

thức khởi tạo (3 phương thức), phương thức hủy, các phương thức get và set

Yêu cầu 2: Viết chương trình sử dụng lớp sinh viên và lớp điểm ở trên để giải bài sau:

-Input:

+ Dòng 1: Nhập họ tên sinh viên

+ Dòng 2: nhập mã sinh viên

+ Dòng 3: Gồm nhiều số thực (mỗi số cách nhau 1 khoảng trắng) là điểm của sinh viên này

- Output: Xuất theo cấu trúc

+ Dòng 1: Ho Ten: họ tên sinh viên

+ Dòng 2: Ma Sinh Vien: mã sinh viên

+ Dòng 3: DTB: Điểm trung bình của sinh viên

Trang 24

SinhVien(string _hoten, string _mssv, Diem _d ){ hoten= _hoten;

mssv= _mssv;

diem = _d;

} SinhVien(const SinhVien &sv){

hoten= sv.hoten;

mssv= sv.mssv;

diem = sv.diem;

} ~SinhVien(){}

friend istream& operator >>(istream& is,SinhVien& SV){

os<<"Ho Ten: "<<SV.hoten <<endl;

os<<"Ma Sinh Vien: "<<SV.mssv<<endl;

os<< fixed<< setprecision(1) ; os<< "DTB: "<<SV.diem.getDTB()<<endl;

return os;

} };

Yêu cầu1: xây dựng lớp MangSinhVien (mảng sinh viên) với các thuộc tính sau:

+ Mảng 1 chiều kiểu sinh viên (lớp sinh viên là lớp được miêu tả ở bài Lớp SinhVien)

+ 1 số nguyên - lưu số lượng phần tử của mảng ở trên

Xây dựng các thao tác sau:

- quá tải >>, <<,[], =

- các phương thức khởi tạo, hủy, set và get

- phương thức tính điểm trung bình của mảng (tính trung bình của tất cả điểm trung bình của sinh viên)

- phương thức trả về vị trí của sinh viên có điểm trung bình lớp nhất (vị trí ở đây là vị trí nằm trong mảng)

yêu cầu 2: Sử dụng lớp MangSinhVien ở trên để giải bài sau:

- Input:

+ Dòng 1: nhập vào số nguyên N

+ Nx3 dòng tiếp theo, cứ mỗi 3 dòng là chứa thông tin của một sinh viên gồm: Họ tên, Mã Số Sinh Viên, Điểm số của sinh viên đó

Trang 25

double& operator [] (int i) {return a[i];}

// khoi tao , huy

Diem (int N = 1 , double A[] = new double [1]) {

int getN () {return n;}

double getA (int i) {return a[i];}

os << "Ho Ten: " << sv.hoten << endl;

os << "Ma Sinh Vien: " << sv.mssv << endl;

os << "DTB: " << fixed << setprecision (1) << sv.getDTBSV();

} double getDTBSV () { return d.getDTB();

} bool operator < (SinhVien sv) { return (getDTBSV() < sv.getDTBSV()) ? true : false;

} };

class MangSinhVien { int n;

}

Ngày đăng: 15/12/2020, 14:49

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w