Professional Documents
Culture Documents
Lop Noi Chung
Lop Noi Chung
Lop Noi Chung
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
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;
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();
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
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 }
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
c++\Lớp\lopVaDoiTuong1.cpp
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 }
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++)
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 */
108 }
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 };
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)
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 }