Tổng Hợp

Lập trình hướng đối tượng (oop) trong c#

Đây là bài viết cuối cùng trong Series Lập Trình hướng đối tượng. Và trong bài viết này chúng ta sẽ làm một số bài tập lập trình hướng đối tượng tổng hợp nhé.

Sau đây, chúng ta sẽ cùng nhau đi làm 1 bài tập lập trình hướng đối tượng khá cơ bản:

Bài tập lập trình hướng đối tượng cơ bản

Bài tập xây dựng lớp Phân số

Đề bài:

Xây dựng lớp Phanso gồm:

  • Thuộc Tính: tuso, mauso.
  • Phương thức:
    • Hàm Khởi Tạo Không Tham Số, Hàm Hủy
    • Nhập , Xuất
    • Cong(), Tru(), Nhan(), Chia()

Tính Tổng, Hiệu, Tích, Thương 2 phân số obj1obj2 rồi in kết quả ra màn hình

Code xây dựng class Phân số:

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

 

#include

using

namespace

std

;

 

class

Phanso

{

private

:

    

int

tuso

,

mauso

;

 

public

:

    

Phanso

(

)

    

{

        

tuso

=

0

;

        

mauso

=

1

;

    

}

 

    

~

Phanso

(

)

    

{

        

tuso

=

0

;

        

mauso

=

1

;

    

}

//—————————————————————–//

    

void

set

(

)

    

{

        

cout

<

<

“Nhap Tu So: “

;

cin

>

>

this

>

tuso

;

        

cout

<

<

“Nhap Mau So: “

;

cin

>

>

this

>

mauso

;

    

}

 

    

void

get

(

)

    

{

        

cout

<

<

this

>

tuso

<

<

“/”

<

<

this

>

mauso

<

<

endl

;

    

}

//—————————————————————–//

    

Phanso

Cong

(

Phanso

obj1

,

Phanso

obj2

)

    

{

        

Phanso

obj3

;

        

obj3

.

tuso

=

obj1

.

tuso *

obj2

.

mauso

+

obj1

.

mauso *

obj2

.

tuso

;

        

obj3

.

mauso

=

obj1

.

mauso *

obj2

.

mauso

;

        

return

obj3

;

    

}

    

Phanso

Tru

(

Phanso

obj1

,

Phanso

obj2

)

    

{

        

Phanso

obj3

;

        

obj3

.

tuso

=

obj1

.

tuso *

obj2

.

mauso

obj1

.

mauso *

obj2

.

tuso

;

        

obj3

.

mauso

=

obj1

.

mauso *

obj2

.

mauso

;

        

return

obj3

;

    

}

    

Phanso

Nhan

(

Phanso

obj1

,

Phanso

obj2

)

    

{

        

Phanso

obj3

;

        

obj3

.

tuso

=

obj1

.

tuso *

obj2

.

tuso

;

        

obj3

.

mauso

=

obj1

.

mauso *

obj2

.

mauso

;

        

return

obj3

;

    

}

    

Phanso

Chia

(

Phanso

obj1

,

Phanso

obj2

)

    

{

        

Phanso

obj3

;

        

obj3

.

tuso

=

obj1

.

tuso *

obj2

.

mauso

;

        

obj3

.

mauso

=

obj1

.

mauso *

obj2

.

tuso

;

        

return

obj3

;

    

}

}

;

 

int

main

(

)

{

    

Phanso

obj1

,

obj2

,

obj3

;

    

obj1

.

set

(

)

;

obj2

.

set

(

)

;

 

    

obj3

=

obj3

.

Cong

(

obj1

,

obj2

)

;

obj3

.

get

(

)

;

    

obj3

=

obj3

.

Tru

(

obj1

,

obj2

)

;

obj3

.

get

(

)

;

    

obj3

=

obj3

.

Nhan

(

obj1

,

obj2

)

;

obj3

.

get

(

)

;

    

obj3

=

obj3

.

Chia

(

obj1

,

obj2

)

;

obj3

.

get

(

)

;

 

    

return

0

;

}

 

Input:

0

1

2

3

 

1

2

3

4

 

Output

0

1

2

3

4

5

 

10/8

-2/8

3/8

4/6

 

Bài Tập quản lý Vận động viên

Đề bài

Xây dựng lớp vận động viên VanDongVien gồm:

  • Thuộc tính: hoten (chuỗi ký tự), tuoi (số nguyên), monthidau (chuỗi ký tự), cannang (số thực), chieucao (số thực).
  • Phương thức:
    • Thiết lập không tham số.
    • Thiết lập 5 tham số
    • Hủy bỏ
    • Nạp chồng toán tử nhập >>
    • Nạp chồng toán tử xuất <<
    • Nạp chồng toán tử so sánh > (một vận động viên là lớn hơn nếu chiều cao lớn hơn,
      trong trường hợp chiều cao bằng nhau thì xét cân nặng lớn hơn)

Xây dựng chương trình chính:

  • Khai báo p là đối tượng lớp Vandongvien (sử dụng hàm thiết lập 5 tham số), hiển thị thông tin của p ra màn hình.
  • Nhập vào một mảng gồm n vận động viên.
  • Hiển thị danh sách đã nhập ra màn hình.
  • Sắp xếp mảng đã nhập theo thứ tự tăng dần, hiển thị danh sách đã sắp ra màn hình.

Lời Giải:

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

 

#include

using

namespace

std

;

 

class

VanDongVien

{

protected

:

    

string

hoten

,

monthidau

;

    

int

tuoi

;

    

float

cannang

,

chieucao

;

 

public

:

    

VanDongVien

(

)

    

{

        

this

>

hoten

=

this

>

monthidau

=

“”

;

        

this

>

tuoi

=

0

;

        

this

>

cannang

=

this

>

chieucao

=

0

;

    

}

    

    

VanDongVien

(

string

hoten

,

string

monthidau

,

int

tuoi

,

float

cannang

,

float

chieucao

)

    

{

        

this

Xem thêm :  Cách nấu gạo lứt sao cho mềm ngon và nhanh

>

hoten

=

hoten

;

        

this

>

monthidau

=

monthidau

;

        

this

>

tuoi

=

tuoi

;

        

this

>

cannang

=

cannang

;

        

this

>

chieucao

=

chieucao

;

    

}

    

~

VanDongVien

(

)

    

{

        

this

>

hoten

=

this

>

monthidau

=

“”

;

        

this

>

tuoi

=

0

;

        

this

>

cannang

=

this

>

chieucao

=

0

;

    

}

    

//———————————————-//

    

friend

istream

&operator>>(istream &is, VanDongVien &obj)

    {

        cin.ignore();

        

cout

<

<

“Nhap Ho Ten: “

;

fflush

(

stdin

)

;

getline

(

is

,

obj

.

hoten

)

;

        

cout

<

<

“Nhap Mon Thi Dau: “

;

fflush

(

stdin

)

;

getline

(

is

,

obj

.

monthidau

)

;

        

cout

<

<

“Nhap Tuoi: “

;

is

>

>

obj

.

tuoi

;

        

cout

<

<

“Nhap Can Nang: “

;

is

>

>

obj

.

cannang

;

        

cout

<

<

“Nhap Chieu Cao: “

;

is

>

>

obj

.

chieucao

;

        

return

is

;

    

}

 

    

friend

ostream

&operator<<(ostream &os, VanDongVien obj)

    {

        cout << "Ho Ten: " << obj.hoten << endl;

        

cout

<

<

“Mon Thi Dau: “

<

<

obj

.

monthidau

<

<

endl

;

        

cout

<

<

“Tuoi: “

<

<

obj

.

tuoi

<

<

endl

;

        

cout

<

<

“Can Nang: “

<

<

obj

.

cannang

<

<

endl

;

        

cout

<

<

“Chieu cao: “

<

<

obj

.

chieucao

<

<

endl

;

        

return

os

;

    

}

 

    

bool

operator

>

(

const

VanDongVien

&obj)

    {

        if (this->chieucao > obj.chieucao)

            return true;

        

else

if

(

this

>

chieucao

<

obj

.

chieucao

)

            

return

false

;

        

else

if

(

this

>

cannang

>

obj

.

cannang

)

            

return

true

;

        

else

            

return

false

;

    

}

}

;

 

void

swap

(

VanDongVien

&a, VanDongVien &b)

{

    VanDongVien temp = a;

    

a

=

b

;

    

b

=

temp

;

}

 

void

Bubblesort

(

VanDongVien

arr

[

]

,

int

n

)

{

    

for

(

int

i

=

0

;

i

<

n

1

;

i

++

)

        

for

(

int

j

=

0

;

j

<

n

i

1

;

j

++

)

            

if

(

arr

[

j

]

>

arr

[

j

+

1

]

)

                

swap

(

arr

[

j

]

,

arr

[

j

+

1

]

)

;

}

 

int

main

(

)

{

  

    

VanDongVien

p

(

“Nguyen Van A”

,

“Bong Da”

,

20

,

178

,

70.5

)

;

    

cout

<

<

p

;

    

 

 

    

cout

<

<

“Nhap So Luong: “

;

int

n

;

cin

>

>

n

;

    

VanDongVien *

arr

=

new

VanDongVien

[

n

]

;

 

    

for

(

int

i

=

0

;

i

<

n

;

++

i

)

cin

>

>

arr

[

i

]

;

 

    

cout

<

<

endl

<

<

endl

;

    

for

(

int

i

=

0

;

i

<

n

;

++

i

)

cout

<

<

arr

[

i

]

<

<

endl

;

    

    

cout

<

<

“Sort”

<

<

endl

;

    

Bubblesort

(

arr

,

n

)

;

    

for

(

int

i

=

0

;

i

<

n

;

++

i

)

cout

<

<

arr

[

i

]

<

<

endl

;

 

    

return

0

;

}

 

Input

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

 

3

Nguyen Van B

Cau Long

20

80

190

Nguyen Van C

Bong Chuyen

21

78

188

Nguyen Van D

Boi Loi

19

81

188

 

Output

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

 

Ho Ten: Nguyen Van A

Mon Thi Dau: Bong Da

Tuoi: 20

Can Nang: 178

Chieu cao: 70.5

 

Ho Ten: Nguyen Van B

Mon Thi Dau: Cau Long

Tuoi: 20

Can Nang: 80

Chieu cao: 190

 

Ho Ten: Nguyen Van C

Mon Thi Dau: Bong Chuyen

Tuoi: 21

Can Nang: 78

Chieu cao: 188

 

Ho Ten: Nguyen Van D

Mon Thi Dau: Boi Loi

Tuoi: 19

Can Nang: 81

Chieu cao: 188

 

Sort

Ho Ten: Nguyen Van C

Mon Thi Dau: Bong Chuyen

Tuoi: 21

Can Nang: 78

Chieu cao: 188

 

Ho Ten: Nguyen Van D

Mon Thi Dau: Boi Loi

Tuoi: 19

Can Nang: 81

Chieu cao: 188

 

Ho Ten: Nguyen Van B

Mon Thi Dau: Cau Long

Tuoi: 20

Can Nang: 80

Chieu cao: 190

 

Bài Tập OOP nâng cao

Bài Tập quản lý bán vé máy bay

Đề bài

Xây dựng lớp Vemaybay gồm:

  • Thuộc tính: tenchuyen, ngaybay, giave
  • Phương thức:
    • Cấu tử
    • Hủy
    • Nhap
    • Xuat
    • getgiave() : hàm trả về giá vé

Xây dựng lớp Nguoi gồm:

  • Thuộc tính: hoten, gioitinh, tuoi
  • Phương thức:
    • Cấu tử
    • Hủy
    • Nhập
    • Xuất

Xây dựng lớp Hanhkhach (mỗi hành khách được mua nhiều vé) kế thừa lớp Nguoi bổ
sung thêm:

  • Thuộc tính: Vemaybay *ve; int soluong;
  • Phương thức:
    • Cấu tử
    • Hủy
    • Nhập
    • Xuất
    • tongtien(): trả về Tổng số tiền phải trả của hành khách

Chương trình chính: Nhập vào 1 danh sách n hành khách (n nhập từ bàn phím).
Hiển thị danh sách hành khách và số tiền phải trả tương ứng của mỗi khách hàng.
Sắp xếp danh sách hành khách theo chiều giảm dần của Tổng tiền.

Lời Giải

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

Xem thêm :  Top 25+ font chữ thiết kế design đẹp nhất ✅

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

 

#include

using

namespace

std

;

 

class

Date

{

protected

:

    

int

day

,

month

,

year

;

 

public

:

    

Date

(

)

    

{

        

this

>

day

=

this

>

month

=

this

>

year

=

0

;

    

}

    

~

Date

(

)

    

{

        

this

>

day

=

this

>

month

=

this

>

year

=

0

;

    

}

    

void

input

(

)

    

{

        

cout

<

<

“Nhap Ngay: “

;

        

cin

>

>

this

>

day

;

        

cout

<

<

“Nhap Thang: “

;

        

cin

>

>

this

>

month

;

        

cout

<

<

“Nhap Nam: “

;

        

cin

>

>

this

>

year

;

    

}

    

void

output

(

)

    

{

        

cout

<

<

“Ngay/Thang/Nam: “

<

<

this

>

day

<

<

“/”

<

<

this

>

month

<

<

“/”

<

<

this

>

year

<

<

endl

;

    

}

}

;

//————————————————————-//

class

Vemaybay

{

protected

:

    

string

tenchuyen

;

    

Date

ngaybay

;

    

int

giave

;

 

public

:

    

Vemaybay

(

)

    

{

        

this

>

tenchuyen

=

“”

;

        

this

>

giave

=

0

;

    

}

    

~

Vemaybay

(

)

    

{

        

this

>

tenchuyen

=

“”

;

        

this

>

giave

=

0

;

    

}

    

void

input

(

)

    

{

        

cin

.

ignore

(

)

;

        

cout

<

<

“Nhap Ten Chuyen: “

;

fflush

(

stdin

)

;

getline

(

cin

,

this

>

tenchuyen

)

;

        

cout

<

<

“Nhap Ngay Bay: “

<

<

endl

;

        

ngaybay

.

input

(

)

;

        

cout

<

<

“Nhap Gia Ve: “

;

cin

>

>

this

>

giave

;

    

}

    

void

output

(

)

    

{

        

cout

<

<

“Ten Chuyen: “

<

<

this

>

tenchuyen

<

<

endl

;

        

cout

<

<

“Ngay Bay: “

<

<

endl

<

<

“\t”

;

        

this

>

ngaybay

.

output

(

)

;

        

cout

<

<

“Gia Ve: “

<

<

this

>

giave

<

<

endl

;

    

}

    

int

getgiave

(

)

    

{

        

return

this

>

giave

;

    

}

}

;

 

class

Nguoi

{

protected

:

    

string

hoten

,

gioitinh

;

    

int

tuoi

;

 

public

:

    

Nguoi

(

)

    

{

        

this

>

hoten

=

this

>

gioitinh

=

“”

;

        

this

>

tuoi

=

0

;

    

}

    

~

Nguoi

(

)

    

{

        

this

>

hoten

=

this

>

gioitinh

=

“”

;

        

this

>

tuoi

=

0

;

    

}

    

void

input

(

)

    

{

        

cin

.

ignore

(

)

;

        

cout

<

<

“Nhap Ho Ten: “

;

fflush

(

stdin

)

;

getline

(

cin

,

this

>

hoten

)

;

        

cout

<

<

“Nhap Gioi Tinh: “

;

fflush

(

stdin

)

;

getline

(

cin

,

this

>

gioitinh

)

;

        

cout

<

<

“Nhap Tuoi: “

;

cin

>

>

this

>

tuoi

;

    

}

    

void

output

(

)

    

{

        

cout

<

<

“Ho Ten: “

<

<

this

>

hoten

<

<

endl

;

        

cout

<

<

“Gioi Tinh: “

<

<

this

>

gioitinh

<

<

endl

;

        

cout

<

<

“Tuoi: “

<

<

this

>

tuoi

<

<

endl

;

    

}

}

;

 

class

Hanhkhach

:

public

Nguoi

{

protected

:

    

int

soluong

;

    

//Vemaybay *ve;

    

Vemaybay

ve

[

1000

]

;

    

int

tongtien

;

 

public

:

    

Hanhkhach

(

)

    

{

        

this

>

soluong

=

0

;

        

//this->ve = new Vemaybay[this->soluong];

        

ve

[

this

>

soluong

]

;

        

tongtien

=

0

;

    

}

    

~

Hanhkhach

(

)

    

{

        

soluong

=

0

;

        

delete

[

]

ve

;

        

tongtien

=

0

;

    

}

    

void

input

(

)

    

{

        

Nguoi

:

:

input

(

)

;

        

cout

<

<

“Nhap So Luong Ve Hanh Khach Da Mua: “

;

cin

>

>

this

>

soluong

;

        

//ve = new Vemaybay[this->soluong];

        

ve

[

this

>

soluong

]

;

        

for

(

int

i

=

0

;

i

<

this

>

soluong

;

++

i

)

        

{

            

ve

[

i

]

.

input

(

)

;

            

tongtien

+=

ve

[

i

]

.

getgiave

(

)

;

        

}

    

}

    

void

output

(

)

    

{

        

cout

<

<

“- Thong Tin Khach Hang: “

<

<

endl

;

        

Nguoi

:

:

output

(

)

;

        

cout

<

<

“- Thong Tin Chuyen Bay: “

<

<

endl

;

        

for

(

int

i

=

0

;

i

<

this

>

soluong

;

++

i

)

        

{

            

ve

[

i

]

.

output

(

)

;

            

cout

<

<

endl

;

        

}

        

cout

<

<

“==> Tong Tien = “

<

<

this

>

tongtien

;

        

cout

<

<

endl

;

    

}

 

    

bool

operator

<

(

const

Hanhkhach

&obj)

    {

        if (this->tongtien < obj.tongtien) return true;

        

else

return

false

;

    

}

}

;

//———————————————————-//

 

void

swap

(

Hanhkhach

&a, Hanhkhach &b)

{

    Hanhkhach temp = a;

    

a

=

b

;

    

b

=

temp

;

}

 

 

void

Bubblesort

(

Hanhkhach

arr

[

]

,

int

n

)

{

    

for

(

int

i

=

0

;

i

<

n

1

;

++

i

)

        

for

(

int

j

=

0

;

j

<

n

i

1

;

++

j

)

            

if

(

arr

[

j

]

<

arr

[

j

+

1

]

)

                

swap

(

arr

[

j

]

,

arr

[

j

+

1

]

)

;

}

//———————————————————-//

int

main

(

)

{

    

cout

<

<

“Nhap So Luong Khach Hang: “

;

int

n

;

cin

>

>

n

;

    

Hanhkhach *

arr

=

new

Hanhkhach

[

n

]

;

    

for

(

int

i

=

0

;

i

<

n

;

++

i

)

arr

[

i

]

.

input

(

)

;

    

cout

<

<

endl

<

<

endl

<

<

“Output”

<

<

endl

<

<

endl

;

    

for

(

int

i

=

0

;

i

<

n

;

++

i

)

    

{

        

arr

[

i

]

.

output

(

)

;

        

cout

<

<

endl

<

<

“——————“

<

<

endl

<

<

endl

;

    

}

 

    

cout

<

<

“After Sort: “

<

<

endl

;

    

Bubblesort

(

arr

,

n

)

;

    

for

(

int

i

=

0

;

i

<

n

;

++

i

)

    

{

        

arr

[

i

]

.

output

(

)

;

        

cout

<

<

endl

<

<

“——————“

<

<

endl

<

<

endl

;

    

}

    

return

0

;

}

 

Input

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

 

3

Nguyen Van A

Nam

20

2

Ha Noi – Hai Phong

10 2 2020

500000

Hai Phong – Ha Noi

15 2 2020

450000

Nguyen Van B

Nam

21

1

Ha Noi – TP.Ho Chi Minh

20 2 2020

1500000

Nguyen Thi C

Nu

19

3

Ha Noi – Da Nang

19 2 2020

1200000

Ha Noi – Hue

18 2 2020

1250000

Hue – Da Nang

Xem thêm :  Mẫu cắm bình hoa chưng Tết Tân Sửu 2021

22 2 2020

500000

 

Output

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

 

Output

 

– Thong Tin Khach Hang:

Ho Ten: Nguyen Van A

Gioi Tinh: Nam

Tuoi: 20

– Thong Tin Chuyen Bay:

Ten Chuyen: Ha Noi – Hai Phong

Ngay Bay:

    Ngay/Thang/Nam: 10/2/2020

Gia Ve: 500000

 

Ten Chuyen: Hai Phong – Ha Noi

Ngay Bay:

    Ngay/Thang/Nam: 15/2/2020

Gia Ve: 450000

 

==> Tong Tien = 950000

 

——————

 

– Thong Tin Khach Hang:

Ho Ten: Nguyen Van B

Gioi Tinh: Nam

Tuoi: 21

– Thong Tin Chuyen Bay:

Ten Chuyen: Ha Noi – TP.Ho Chi Minh

Ngay Bay:

    Ngay/Thang/Nam: 20/2/2020

Gia Ve: 1500000

 

==> Tong Tien = 1500000

 

——————

 

– Thong Tin Khach Hang:

Ho Ten: Nguyen Thi C

Gioi Tinh: Nu

Tuoi: 19

– Thong Tin Chuyen Bay:

Ten Chuyen: Ha Noi – Da Nang

Ngay Bay:

    Ngay/Thang/Nam: 19/2/2020

Gia Ve: 1200000

 

Ten Chuyen: Ha Noi – Hue

Ngay Bay:

    Ngay/Thang/Nam: 18/2/2020

Gia Ve: 1250000

 

Ten Chuyen: Hue – Da Nang

Ngay Bay:

    Ngay/Thang/Nam: 22/2/2020

Gia Ve: 500000

 

==> Tong Tien = 2950000

 

——————

 

After Sort:

– Thong Tin Khach Hang:

Ho Ten: Nguyen Thi C

Gioi Tinh: Nu

Tuoi: 19

– Thong Tin Chuyen Bay:

Ten Chuyen: Ha Noi – Da Nang

Ngay Bay:

    Ngay/Thang/Nam: 19/2/2020

Gia Ve: 1200000

 

Ten Chuyen: Ha Noi – Hue

Ngay Bay:

    Ngay/Thang/Nam: 18/2/2020

Gia Ve: 1250000

 

Ten Chuyen: Hue – Da Nang

Ngay Bay:

    Ngay/Thang/Nam: 22/2/2020

Gia Ve: 500000

 

==> Tong Tien = 2950000

 

——————

 

– Thong Tin Khach Hang:

Ho Ten: Nguyen Van B

Gioi Tinh: Nam

Tuoi: 21

– Thong Tin Chuyen Bay:

Ten Chuyen: Ha Noi – TP.Ho Chi Minh

Ngay Bay:

    Ngay/Thang/Nam: 20/2/2020

Gia Ve: 1500000

 

==> Tong Tien = 1500000

 

——————

 

– Thong Tin Khach Hang:

Ho Ten: Nguyen Van A

Gioi Tinh: Nam

Tuoi: 20

– Thong Tin Chuyen Bay:

Ten Chuyen: Ha Noi – Hai Phong

Ngay Bay:

    Ngay/Thang/Nam: 10/2/2020

Gia Ve: 500000

 

Ten Chuyen: Hai Phong – Ha Noi

Ngay Bay:

    Ngay/Thang/Nam: 15/2/2020

Gia Ve: 450000

 

==> Tong Tien = 950000

 

——————

 

Trong bài tập lập trình hướng đối tượng số 3 này, mình có 1 lưu ý nhỏ.
Nếu không sắp xếp các hành khách theo tổng tiền, thì mình vẫn có thể khai báo ve là một con trỏ kiểu Vemaybay, nhưng khi mình thực hiện sắp xếp, mình phải đổi chỗ các ô nhớ chứa hành khách. Nếu vẫn khai báo Vemaybay *ve, nghĩa là ve sẽ được lưu trong bộ nhớ chỉ đọc, nên khi đổi chỗ sẽ gây lỗi Segmentation Fault.

Lỗi Phân Đoạn - Bài Tập C++

Bạn có thể xem thêm về lỗi này tại đây

Bài tổng hợp các bài tập lập trình hướng đối tượng từ cơ bản đến nâng cao của mình đến đây là hết rồi. Cảm ơn tất cả mọi người đã ủng hộ mình trong thời gian qua. Chào mọi người, và có thể sẽ hẹn gặp lại mọi người trong một dịp gần nhất.

Các bạn có thể xem thêm lời giải và các bài tập lập trình hướng đối tượng khác tại:


Học xong lập trình hướng đối tượng chỉ trong 1 giờ cùng Maria Ozawa | Vũ Nguyễn Coder


Lập trình hướng đối tượng (OOP) là kĩ năng tối thiểu cần có của một lập trình viên. Trong bài giảng này sẽ tóm lược hết kiến thức của OOP thông qua ví dụ về Maria Ozawa.
Mục lục
/ Dẫn chuyện /
1:30 Hướng đối tượng là gì
3:00 Class \u0026 Object Khái niệm
/ Class \u0026 Object trong lập trình (C++) /
4:00 Định nghĩa Class \u0026 khởi tạo object
8:59 Thuộc tính
12:04 Phương thức
/ 4 đặc điểm của hướng đối tượng /
23:08 Tính đóng gói
25:00 Tính trừu tượng
32:19 Tính kế thừa
44:17 Tính đa hình
50:50 Một số vấn đề nâng cao

vunguyencoder laptrinh c++
⌛⌛⌛⌛
? Website
https://VuNguyenCoder.com
? Youtube channel
https://youtube.com/VuNguyenCoder
? Facebook
https://fb.com/VuNguyenCoder
? LinkedIn
https://linkedin.com/in/VuNguyenCoder

© Bản quyền thuộc về Vũ Nguyễn Coder
© Copyright by Vũ Nguyễn Coder ☞ Do not Reup

Xem thêm bài viết thuộc chuyên mục: Tổng Hợp

Related Articles

Back to top button