Xây dựng class string trong C++

This entry is part 4 of 11 in the series Hướng đối tượng C++

83 / 100

Chào mọi người, ở bài trước thì mình đã đưa ra định nghĩa và giải thích về lớp (class), các thành phần của lớp (class). Trong bài này thì chúng ta sẽ cùng đi làm một số thực hành bằng cách tạo các lớp (class) đơn giản nhé.

Tạo class đơn giản

Đề bài:
Viết một lớp sinhvien gồm các thuộc tính: ten, tuoi, masinhvien. Và các phương thức nhập xuất.

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

#include

using namespacestd;

classsinhvien

{

private:

    stringten,masinhvien;

    int tuoi;

public:

    voidset()

    {

        cin.ignore();

        cout <<"Nhap Ma Sinh Vien";getline(cin,this->masinhvien);

        cout<<"Nhap Ten: "; getline(cin,this->ten);

        cout<<"Nhap Tuoi: ";cin>>this->tuoi;

    }

    voidget()

    {

        cout<<"Ma Sinh Vien: "<<this->masinhvien<< endl;

        cout<<"Ten: "<<this->ten<<endl;

        cout<< "Tuoi: "<<this->tuoi<<endl;

    }

};

intmain()

{

    sinhvien obj;

    obj.set();

    obj.get();  

}

Nhập Input:

MSV1

Lap Trinh Khong Kho

18

Sau khi chạy chương trình ta sẽ có kết quả:

Ma Sinh Vien: MSV1

Ten: Lap Trinh Khong Kho

Tuoi: 18

Tạo class có hàm khởi tạo và hàm huỷ

Xây dựng class string trong C++

Trong phần này, thay vì tạo class chỉ có 2 phương thức nhập xuất là setget. Mình sẽ tạo class sinhvien với hàm khởi tạo không tham số, hàm huỷ, và phương thức nhập xuất

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

#include

using namespacestd;

classsinhvien

{

private:

    stringten,masinhvien;

    int tuoi;

public:

    sinhvien()

    {

        this->masinhvien="";

        this->ten ="";

        this->tuoi=0;

    }

    ~sinhvien()

    {

        this->masinhvien ="";

        this->ten="";

        this->tuoi=0;

    }

    voidset()

    {

        cout<<"Nhap Ma Sinh Vien";getline(cin,this->masinhvien);

        cout<<"Nhap Ten: ";getline(cin,this->ten);

        cout<<"Nhap Tuoi: ";cin>>this->tuoi;

    }

    voidget()

    {

        cout <<"Ma Sinh Vien: "<<this->masinhvien<<endl;

        cout<<"Ten: "<<this->ten <<endl;

        cout<<"Tuoi: "<<this->tuoi<<endl;

    }

};

intmain()

{

    sinhvien obj;

    cout<<"Before Set"<<endl;

    obj.get();

    // Tại đây mình sẽ không set giá trị vào cho obj nhé.

    // Để mọi người có thể thấy khi có hàm khởi tạo, các giá trị sẽ được set giá trị ngay khi được tạo ra

    obj.set();

    cout<< "After Set"<<endl;

    obj.get();

}

Vẫn với Input cũ

MSV1

Lap Trinh Khong Kho

18

Sau khi chạy ta có kết quả

Before Set

Ma Sinh Vien:

Ten:

Tuoi: 0

After Set

Ma Sinh Vien: MSV1

Ten: Lap Trinh Khong Kho

Tuoi: 18

Như các bạn đã thấy, nếu khi khởi tạo obj mà ta không set giá trị cho chúng thì chúng sẽ nhận giá trị mặc định, là giá trị ta cài đặt tạo hàm khởi tạo.

Tạo class với hàm tính toán

Xây dựng class string trong C++

Nâng cao thêm một chút nhé, tại lớp sinhvien mình sẽ cho thêm 3 thuộc tính là: diemtoan diemvandiemanh. Thêm một yêu cầu là tính điểm trung bình của sinhvien đó.

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

#include

using namespacestd;

classsinhvien

{

private:

    stringten,masinhvien;

    int tuoi;

    floatdiemtoan,diemvan,diemanh;

public:

    sinhvien()

    {

        this->masinhvien ="";

        this->ten="";

        this->tuoi=0;

        this->diemtoan =this->diemvan=this->diemanh=0;

    }

    ~sinhvien()

    {

        this->masinhvien ="";

        this->ten="";

        this->tuoi=0;

        this->diemtoan =this->diemvan=this->diemanh=0;

    }

    voidset()

    {

        cout <<"Nhap Ma Sinh Vien";getline(cin,this->masinhvien);

        cout<<"Nhap Ten: "; getline(cin,this->ten);

        cout<<"Nhap Tuoi: ";cin>>this->tuoi;

        cout <<"Nhap Diem Toan - Van - Anh";cin>>this->diemtoan>>this->diemvan>>this->diemanh;

    }

    voidget()

    {

        cout<<"Ma Sinh Vien: "<<this->masinhvien<< endl;

        cout<<"Ten: "<<this->ten<<endl;

        cout<< "Tuoi: "<<this->tuoi<<endl;

        cout<<"Diem Trung Bình: "<<TB()<< endl;

    }

    floatTB()

    {

        return(this->diemtoan+ this->diemvan+this->diemanh)/3;

    }

};

intmain()

{

    sinhvien obj;

    obj.set();

    obj.get();

}

Input là:

MSV1

Lap Trinh Khong Kho

18

8 9 10

Sau khi chạy ta có Output:

Ma Sinh Vien: MSV1

Ten: Lap Trinh Khong Kho

Tuoi: 18

Diem Trung Bình: 9

Bài viết của mình xin kêt thúc tại đây. Rất mong nhận được sự ủng hộ và những ý kiến, đóng góp của mọi người để những bài viết của mình ngày càng tốt hơn. Cảm ơn mọi người rất nhiều.


Giới thiệu Khoá Học Lập trình C cơ bản hoàn toàn miễn phí “Học C Bá Đạo”: Xem Ngay