Lop Noi Chung

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

a8-1.

cpp http://localhost:49839/e7d5ee61-df78-4d1f-9f7f-56b5682ef9c0/

c++\Lớp\a8-1.cpp

1 /*1. (chạy lại bài đã học trên lớp) Định nghĩa lớp Array đại diện cho một mảng số
nguyên. Hãy thực hiện các yêu cầu sau
2 - Hàm tạo, hàm hủy, hàm tạo bản sao, hàm toán tử gán
3 - Hàm cho phép nhập dữ liệu vào từ bàn phím và hàm hiển thị ra màn hình cho Array (2
hàm)
4 - Hàm cho phép gán (ghi) và hàm lấy (đọc) giá trị của một phần tử nào đó trong Array
(2 hàm)
5 - Viết chương trình chính minh họa cách sử dụng
6 */
7 #include <iostream>
8 using namespace std;
9
10 class Array{
11 int n;
12 int *data;
13 public:
14 Array(int _n = 0, int _d = 0) // ham tao
15 {
16 n = _n;
17 data = new int[n];
18 for (int i = 0; i < n; i++)
19 {
20 data[i] = _d;
21 }
22 }
23 ~Array() //ham huy
24 {
25 delete[] data;
26 }
27 Array(const Array &a) //ham tao ban sao
28 {
29 n = a.n;
30 data = new int[n];
31 for (int i = 0; i < n; i++)
32 {
33 data[i] = a.data[i];
34 }
35 }
36 Array& operator=(const Array& a) //ham toan tu gan
37 {
38 if (n != a.n)
39 {
40 delete[] data;
41 n = a.n;
42 data = new int[n];
43 }
44 for (int i = 0; i < n; i++)
45 {
46 data[i] = a.data[i];
47 }
48 return *this;
49 }
50

1 trong 2 25/01/2024, 22:35


a8-1.cpp http://localhost:49839/e7d5ee61-df78-4d1f-9f7f-56b5682ef9c0/

51 void nhapDuLieu()//ham nhap du lieu tu ban phim


52 {
53 cout << "Nhap so phan tu mang: ";
54 cin >> n;
55 for (int i = 0; i < n; i++)
56 {
57 cout << "Nhap phan tu thu " << i + 1 << ": ";
58 cin >> data[i];
59 }
60 }
61 void hienThi() //ham hien thi gia tri cua mang
62 {
63 for (int i = 0; i < n; i++)
64 {
65 cout << data[i] << " ";
66 }
67 }
68
69 void setArrayElement(int i, int a)//gan gia tri a vao phan tu thu i cua mang
70 {
71 data[i-1] = a;
72 }
73 int getArrayElement(int i)//lay gia tri phan tu thu i cua mang
74 {
75 return data[i-1];
76 }
77 };
78 int main()
79 {
80 /* //Sử dụng hàm nhập dữ liệu và hàm hiển thi
81 Array a1;
82 a1.nhapDuLieu();
83 a1.hienThi();
84 */
85 /* //Sử dụng hàm set và hàm get
86 Array a1(5,5);
87 a1.setArrayElement(3,2);
88 int a = a1.getArrayElement(3);
89 cout << "Phan tu thu 3 la: " << a << "\n";
90 a1.hienThi();
91 */
92 /* //Sử dụng hàm sao chép
93 Array a1(4,5);
94 Array a3 (a1);
95 a3.hienThi();
96 */
97 /* //Sử dụng hàm toán tử gán
98 Array a1(4,5);
99 Array a2(5,3);
100 a2.hienThi();
101 cout << "\n";
102 a2 = a1;
103 a2.hienThi();
104 */}

2 trong 2 25/01/2024, 22:35


a8-2.cpp http://localhost:49839/dc61e1cb-1a90-4ced-8322-b29743416d0c/

c++\Lớp\a8-2.cpp

1 /*
2 2. Định nghĩa một lớp Car đại diện cho một xe ô tô với các yêu cầu sau:
3 - Tốc độ (speed) kiểu int, nhãn hiệu (brand) kiểu string, giá (price) kiểu float.
4 - Định nghĩa hàm tạo tham số mặc định
5 - Hàm hiển thị thông tin xe
6 - Hàm gán tốc độ cho xe
7 - Hàm gán thương hiệu cho xe
8 - Hàm gán giá xe
9 - Viết chương trình chính sử dụng lớp trên
10 - Trong chương trình chính, khai báo một mảng gồm N xe (N được nhập từ bàn phím).
11 Nhập thông tin từng xe từ bàn phím, sau đó hiển thị ra màn hình thông tin của xe có giá
đắt nhất.
12 */
13 #include <iostream>
14 using namespace std;
15 #include <string.h>
16
17 class Car
18 {
19 private:
20 int speed;
21 string brand;
22 float price;
23 public:
24
25 Car(int _s = 0, string _b = "Placeholder", float _p = 0)//Định nghĩa hàm tạo tham số
mặc định
26 {
27 speed = _s;
28 brand = _b;
29 price = _p;
30 }
31 ~Car(){}
32
33 void hienThi()//Hàm hiển thị thông tin xe
34 {
35 cout << "Ten xe: " << brand << '\n';
36 cout << "Toc do: " << speed << "km/h\n";
37 cout << "Gia: $" << price << '\n';
38 }
39
40 void set_speed(int i) //Hàm gán tốc độ cho xe
41 {
42 speed = i;
43 }
44 void set_brand(string i) //Hàm gán thương hiệu cho xe
45 {
46 brand = i;
47 }
48 void set_price(float i)//Hàm gán giá xe
49 {
50 price = i;

1 trong 3 25/01/2024, 22:35


a8-2.cpp http://localhost:49839/dc61e1cb-1a90-4ced-8322-b29743416d0c/

51 }
52
53 float get_price()
54 {
55 return price;
56 }
57 void nhapThongTin()// Hàm nhập thông tin từ bàn phím
58 {
59 int s;
60 string b;
61 float p;
62
63 cout << "Ten xe: ";
64 getline(cin, b);
65 cout << "Toc do toi da(km/h) : ";
66 cin >> s;
67 cout << "Gia tien($): ";
68 cin >> p;
69 cin.ignore();
70 set_brand(b);
71 set_speed(s);
72 set_price(p);
73 }
74
75 };
76
77 int main()
78 {
79
80 /*
81 //Sử dụng các lớp để tạo 1 xe
82 Car xe1;
83 xe1.set_brand("Lightning McQueen");
84 xe1.set_speed(322);
85 xe1.set_price(10000);
86 xe1.hienThi();
87 */
88
89 int n;
90 cout << "Nhap so xe can xet: ";
91 cin >> n;
92 cin.ignore();
93 Car *cars = new Car[n];//khai báo một mảng gồm N xe (N được nhập từ bàn phím)
94
95 for (int i = 0; i < n; i++)//Nhập thông tin từng xe từ bàn phím
96 {
97 cout << " Nhap thong tin xe thu " << i + 1 << '\n';
98 cars[i].nhapThongTin();
99 }
100
101 int max = cars[0].get_price();
102 for (int i = 0; i < n ; i++)
103 {
104 if (cars[i].get_price() > max){
105 max = cars[i].get_price();

2 trong 3 25/01/2024, 22:35


a8-2.cpp http://localhost:49839/dc61e1cb-1a90-4ced-8322-b29743416d0c/

106 }
107 }
108
109 cout << " Thong tin (nhung) xe co gia lon nhat: \n";
110 for (int i = 0; i < n; i++)
111 {
112 if (cars[i].get_price() == max)
113 {
114 cars[i].hienThi();
115 cout << "\n";
116 }
117 }
118
119
120 }
121

3 trong 3 25/01/2024, 22:35


lopVaDoiTuong0.cpp http://localhost:49839/74df6a0c-c745-4008-9c1a-c228c9e77c77/

c++\Lớp\lopVaDoiTuong0.cpp

1 /*Bài 0: Xây dựng một lớp tên Point để đại diện cho một điểm
2 trong không gian 2D với các yêu cầu:
3 − Hoành độ và tung độ là các số thực float
4 − Hàm thành viên để nhập hoành độ, tung độ từ bàn phím
5 − Hàm thành viên để hiển thị hoành độ, tung độ ra màn hình
6 − Hàm thành viên lấy hoành độ
7 − Hàm thành viên gán hoành độ
8 − Hàm thành viên lấy tung độ
9 − Hàm thành viên gán tung độ
10 − Hàm thành viên đồng thời lấy hoành độ và tung độ
11 − Hàm thành viên đồng thời gán hoành độ và tung độ
12 − Hàm thành viên tính khoảng cách giữa hai điểm
13 − Viết chương trình chính minh họa cách sử dụng
14 */
15
16 #include <iostream>
17 using namespace std;
18 #include <math.h>
19
20 class Point
21 {
22 float hoanhDo;
23 float tungDo;
24 public:
25 void nhapToaDo ()
26 {
27 cout << "Nhap hoanh do: ";
28 cin >> hoanhDo ;
29 cout << "Nhap tung do: ";
30 cin >> tungDo ;
31 }
32 void hienThiToaDo()
33 {
34 cout << "Hoanh do la: " << hoanhDo;
35 cout << "\nTung do la: " << tungDo;
36 }
37 float get_hoanhDo()
38 {
39 return hoanhDo;
40 }
41 float get_tungDo()
42 {
43 return tungDo;
44 }
45 void set_hoanhDo(float x)
46 {
47 hoanhDo = x;
48 }
49 void set_tungDo(float y)
50 {
51 tungDo = y;
52 }

1 trong 2 25/01/2024, 22:36


lopVaDoiTuong0.cpp http://localhost:49839/74df6a0c-c745-4008-9c1a-c228c9e77c77/

53 float get_Point()
54 {
55 return hoanhDo;
56 return tungDo;
57 }
58 void set_Point (float x, float y)
59 {
60 hoanhDo = x;
61 tungDo = y;
62 }
63 float tinhKhoangCach (Point a)
64 {
65 float khoangCach = pow((pow(hoanhDo - a.hoanhDo,2) + pow(tungDo - a.tungDo,2)),0.5)
;
66 return khoangCach;
67 }
68 };
69
70 int main()
71 {
72 Point a;
73 a.nhapToaDo();
74 Point b;
75 b.nhapToaDo();
76
77 float khoangCach = b.tinhKhoangCach(a);
78 cout << "Khoang cach 2 diem: " << khoangCach;
79
80 }
81

2 trong 2 25/01/2024, 22:36


lopVaDoiTuong1.cpp http://localhost:49839/ac54b250-cc63-4014-b7ea-ee1350e49a51/

c++\Lớp\lopVaDoiTuong1.cpp

1 /*Bài 1: Xây dựng một lớp tên Complex để đại diện


2 cho một số phức với các yêu cầu:
3 − Thành phần thực và ảo đều là số thực float
4 − Hàm nhập thành phần thực, thành phần ảo từ bàn
5 phím
6 − Hàm hiển thị thành phần thực và ảo ra màn hình
7 − Hàm lấy thành phần thực, hàm gán thành phần thực
8 − Hàm lấy thành phần ảo, hàm gán thành phần ảo
9 − Hàm đồng thời lấy thành phần thực, thành phần ảo
10 − Hàm đồng thời gán thành phần thực, thành phần ảo
11 − Hàm tính tổng của hai số phức m
12 − Viết chương trình chính minh họa cách sử dụng
13 */
14
15 #include <iostream>
16 using namespace std;
17 #include <math.h>
18
19 class Complex{
20 float soThuc;
21 float soAo;
22 public:
23 void nhapComplex() //Hàm nhập thành phần thực, thành phần ảo từ bàn phím
24 {
25 cout << "Nhap so thuc: ";
26 cin >> soThuc;
27 cout <<"Nhap so ao: ";
28 cin >> soAo;
29 }
30
31 void hienThi() //Hàm hiển thị thành phần thực và ảo ra màn hình
32 {
33 cout << soThuc << " + " << soAo <<"i";
34 }
35
36
37 void setThuc (float a) //hàm gán thành phần thực
38 {
39 soThuc = a;
40 }
41 float getThuc () //Hàm lấy thành phần thực
42 {
43 return soThuc;
44 }
45
46 void setAo (float a) //hàm gán thành phần ảo
47 {
48 soAo = a;
49 }
50 float getAo () //Hàm lấy thành phần ảo
51 {
52 return soAo;

1 trong 2 25/01/2024, 22:36


lopVaDoiTuong1.cpp http://localhost:49839/ac54b250-cc63-4014-b7ea-ee1350e49a51/

53 }
54
55 void setComplex (float a, float b) //Hàm đồng thời lấy thành phần thực, thành phần ảo
56 {
57 soThuc = a;
58 soAo = b;
59 }
60 void getComplex (float &a, float &b) //Hàm đồng thời gán thành phần thực, thành phần ảo
61 {
62 a = soThuc;
63 b = soAo;
64 }
65 Complex tong (Complex a)//Hàm tính tổng của hai số phức m
66 {
67 Complex tong;
68 tong.soThuc = soThuc + a.soThuc;
69 tong.soAo = soAo + a.soAo;
70 return tong;
71 }
72 };
73
74 int main()
75 {
76 //để kết quả sau khi chạy code không bị quá trùng nhau nên em không sử dụng hết các
phương trình
77 Complex a;
78 a.nhapComplex();
79 Complex b;
80 b.nhapComplex();
81 Complex tong = a.tong(b);
82 cout << "tong la: ";
83 tong.hienThi();
84
85 }

2 trong 2 25/01/2024, 22:36


lopVaDoiTuong2.cpp http://localhost:49839/651d74ec-7580-423d-b2c9-a0a59300e49e/

c++\Lớp\lopVaDoiTuong2.cpp

1 /*
2 Bài 2. Xây dựng một lớp tên person để đại diện cho một
3 người với các yêu cầu:
4 − Tên có độ dài tối đa 50 ký tự
5 − Ngày, tháng, năm sinh có kiểu int
6 − Quê quán có độ dài tối đa 100 ký tự
7 − Hàm nhập tên, ngày sinh, quê từ bán phím
8 − Hàm hiển thị thông tin ra màn hình
9 − Hàm lấy tên, hàm gán tên
10 − Hàm lấy quê quán, hàm gán quê quán
11 − Hàm lấy ngày sinh, hàm gán ngày sinh
12 − Viết chương trình chính minh họa cách sử dụng
13 */
14
15
16 #include <iostream>
17 using namespace std;
18
19 class Person
20 {
21 char ten[50];
22 int ngay;
23 int thang;
24 int nam;
25 char queQuan[100];
26 public:
27 void nhapPerson()
28 {
29 cout << "Nhap ten: ";
30 cin.getline(ten,50);
31 cout << "Nhap ngay thang nam sinh: ";
32 cin >> ngay >> thang >> nam ;
33 cout << "Nhap que quan: ";
34 cin.ignore();
35 cin.getline(queQuan,100);
36 }
37 void hienThi()
38 {
39 cout << "Ten:" << ten;
40 cout << "\nNgay sinh: "<< ngay <<"/" << thang << "/" << nam;
41 cout << "\nQue quan: " << queQuan;
42 }
43 void set_ten(char a[])
44 {
45 for (int i = 0; i < 50 ; i++)
46 {
47 ten[i] = a[i];
48 }
49 }
50 void get_ten (char a[])
51 {
52 for (int i = 0; i < 50 ; i++)

1 trong 3 25/01/2024, 22:36


lopVaDoiTuong2.cpp http://localhost:49839/651d74ec-7580-423d-b2c9-a0a59300e49e/

53 {
54 a[i] = ten[i];
55 }
56 }
57 void set_que(char a[])
58 {
59 for (int i = 0; i < 100 ; i++)
60 {
61 queQuan[i] = a[i];
62 }
63 }
64 void get_que (char a[])
65 {
66 for (int i = 0; i < 100 ; i++)
67 {
68 a[i] = queQuan[i];
69 }
70 }
71 void set_ngay (int a, int b, int c)
72 {
73 ngay = a;
74 thang = b;
75 nam = c;
76 }
77 void get_ngay (int &a, int &b, int&c)
78 {
79 a = ngay;
80 b = thang;
81 c = nam;
82 }
83
84
85 };
86 int main()
87 {
88 Person a;
89 a.nhapPerson();
90 a.hienThi();
91
92 /*
93 //su dung ham gan ten
94 char name[50];
95 cout << "\nNhap ten: ";
96 cin.getline(name,50);
97 a.set_ten(name);
98
99 //su dung ham lay ten
100 a.get_ten(name);
101
102 //su dung ham gan que
103 char place[100];
104 cout << "\nNhap que: ";
105 cin.getline(place,100);
106
107 */

2 trong 3 25/01/2024, 22:36


lopVaDoiTuong2.cpp http://localhost:49839/651d74ec-7580-423d-b2c9-a0a59300e49e/

108 }

3 trong 3 25/01/2024, 22:36


lopVaDoiTuong3.cpp http://localhost:49839/4230db9c-4f36-460d-9c43-05b3700fcf2b/

c++\Lớp\lopVaDoiTuong3.cpp

1 /*
2 Bài 3. Xây dựng một lớp tên person để đại diện cho một
3 người với các yêu cầu:
4 − Tên là chuỗi ký tự kiểu string
5 − Ngày, tháng, năm sinh có kiểu Date như đã gợi ý trong
6 bài giảng.
7 − Quê quán có kiểu string
8 − Hàm nhập tên, ngày sinh, quê từ bán phím
9 − Hàm hiển thị thông tin ra màn hình
10 − Hàm lấy tên, hàm gán tên
11 − Hàm lấy quê quán, hàm gán quê quán
12 − Hàm lấy ngày sinh, hàm gán ngày sinh
13 − Viết chương trình chính minh họa cách sử dụng
14 -Trong chương trình chính, khai báo một mảng động gồm N người(N được nhập từ bàn phím).
15 Nhập thông tin từng người từ bàn phím, sau đó hiển thị ra màn hình thông tin của người có
năm sinh lớn nhất.
16 */
17
18 #include <iostream>
19 using namespace std;
20 #include <string.h>
21 class Date{
22 int ngay;
23 int thang;
24 int nam;
25 public:
26 void set_ngay(int a)
27 {
28 ngay = a;
29 }
30 void set_thang(int a)
31 {
32 thang = a;
33 }
34 void set_nam(int a)
35 {
36 nam = a;
37 }
38 int get_ngay()
39 {
40 return ngay;
41 }
42 int get_thang()
43 {
44 return thang;
45 }
46 int get_nam()
47 {
48 return nam;
49 }
50
51 };

1 trong 3 25/01/2024, 22:36


lopVaDoiTuong3.cpp http://localhost:49839/4230db9c-4f36-460d-9c43-05b3700fcf2b/

52 class Person{
53 string ten;
54 Date ntns;
55 string queQuan;
56 public:
57 void nhapThongtin()//Hàm nhập tên, ngày sinh, quê từ bán phím
58 {
59 cout << "Nhap ten: ";
60 getline(cin,ten);
61 cout << "Nhap ngay thang nam sinh";
62 int d, m, y;
63 cout << "\nNhap ngay: ";
64 cin >> d;
65 cout <<"Nhap thang: ";
66 cin >> m;
67 cout <<"Nhap nam: ";
68 cin >> y;
69 ntns.set_ngay(d);
70 ntns.set_thang(m);
71 ntns.set_nam(y);
72 cout << "Nhap que quan: ";
73 cin.ignore();
74 getline(cin,queQuan);
75 }
76
77 void hienThi()//Hàm hiển thị thông tin ra màn hình
78 {
79 cout << "Ten: " << ten;
80 cout << "\nNgay thang nam sinh: "<< ntns.get_ngay() << " / " << ntns.get_thang()
<< " / " << ntns.get_nam() ;
81 cout << "\nQue quan: " << queQuan;
82 }
83
84 //Hàm lấy tên, hàm gán tên
85 void set_ten(string a)
86 {
87 ten = a;
88 }
89 string get_ten()
90 {
91 return ten;
92 }
93
94 //Hàm lấy quê quán, hàm gán quê quán
95 void set_que(string a)
96 {
97 queQuan = a;
98 }
99 string get_que()
100 {
101 return queQuan;
102 }
103
104 //Hàm lấy ngày sinh, hàm gán ngày sinh
105 void set_ngay(int a)

2 trong 3 25/01/2024, 22:36


lopVaDoiTuong3.cpp http://localhost:49839/4230db9c-4f36-460d-9c43-05b3700fcf2b/

106 {
107 ntns.set_ngay(a);
108 }
109 int get_ngay()
110 {
111 return ntns.get_ngay();
112 }
113
114 //Hàm lấy năm sinh
115 int get_nam()
116 {
117 return ntns.get_nam();
118 }
119 };
120
121 int main()
122 {
123 /*
124 Person a;
125 a.nhapThongtin();
126 a.hienThi();
127 */
128
129 int n;
130 cout << "So nguoi la: ";
131 cin >> n;
132 cin.ignore();
133
134 //khai báo một mảng động gồm N người(N được nhập từ bàn phím). Nhập thông tin từng
người từ bàn phím
135 Person *arr = new Person[n];//
136 for (int i = 0; i < n; i++)
137 {
138 arr[i].nhapThongtin();
139 }
140
141 //hiển thị ra màn hình thông tin của người có năm sinh lớn nhất.
142 int m = arr[0].get_nam();
143 int ngGiaNhat;
144 for (int i = 0; i < n; i++)
145 {
146 if (m < arr[i].get_nam())
147 {
148 m = arr[i].get_nam();
149 ngGiaNhat = i;
150 }
151 }
152
153 cout << "Thong tin cua nguoi co nam sinh lon nhat: \n";
154 arr[ngGiaNhat].hienThi();
155
156 }

3 trong 3 25/01/2024, 22:36

You might also like