30/09/2018, 17:10

OOP cơ bản và toán tử nhập xuất trong C++?

Mình đang tìm hiểu về oop cơ bản mà thực sự nó cứ lằng nhằng kiểu gì ấy. Mình có 1 bài thế này, mong mọi người giúp, đọc tài liệu hoài mà nó cứ lằng nhằng, hy vọng đọc code sẽ hiểu hơn.

Đề như sau:

Viết 1 chương trình nhập danh sách sinh viên.

1.Dùng class sinh viên có các thành phần tên,mssv,dtb
2.Dùng toán tử << >> nhập xuất.
3.Viết hàm Khởi tạo,sao chép,phá hủy
4.Dùng con trỏ quản lí danh sách sinh viên.
5.Nếu có thể dùng kế thừa để làm gì đấy thì càng tốt.

Cuối cùng mình xin cảm ơn các bạn nhiều

.

Mai Anh Dũng viết 19:10 ngày 30/09/2018

Vậy mình bắt đầu từ những cái đơn giản trước

Dùng class sinh viên có các thành phần tên,mssv,dtb

Bạn làm được cái này không?

Pham Anh viết 19:15 ngày 30/09/2018
 class SinhVien
 {
     char HoTen[30];
     char MSSV[8];
     float Dtb;
 public:
     SinhVien();
 };

Em mới biết được nhiêu đây.

Mai Anh Dũng viết 19:20 ngày 30/09/2018

Anh góp ý trình bày class như thế này

class SinhVien
{
public:
    SinhVien();
private:
    char HoTen[30];
    char MSSV[8];
    float Dtb;
};

Nên để public trước rồi private sau

3.Viết hàm Khởi tạo,sao chép,phá hủy

Em làm được cái này không? Làm cái này trước đi, nó dễ hơn.

2.Dùng toán tử << >> nhập xuất.

Có cao thủ nào giúp được cái này không

@Su_Su có thể coi sơ qua cái này: Quá tải operator xem có thể copy được gì không?

Pham Anh viết 19:11 ngày 30/09/2018

Khi em nhập thì sau một dấu space thì xong 1 cái.Làm sao để nhập giống kiểu dùng getline

#include <iostream>
#include <conio.h>
#include<string>
#include<string.h>
using namespace std;
class SinhVien
    {
	private:
		char HoTen[30];
		char MSSV[8];
		float Dtb;
	public:
		friend void operator>>(SinhVien &sv,istream &is);
		friend void operator <<(SinhVien sv,ostream &os);
    };
void operator>>(SinhVien &sv,istream &is)
    {
		cout<<"Nhap ho ten : ";  //Theo anh @ltd có nên để cái này trong hàm này không ạ?
		is>>sv.HoTen;
		cout<<"Ma so sv : ";
		is>>sv.MSSV;
		cout<<"Diem trung binh : ";
		is>>sv.Dtb;
    }
void operator<<(SinhVien sv,ostream &os)
    {
		os<<sv.HoTen<<"\n"<<sv.MSSV<<"\n"<<sv.Dtb;
    }
void main(void)
    {
        system("cls");
        SinhVien a;
        a>>cin;
        a<<cout;

        getch();
    }
Bùi Trung Thông viết 19:20 ngày 30/09/2018

sao bạn không để các toán tử >>, << trả về tham chiếu cho dễ xài nhỉ?

Pham Anh viết 19:24 ngày 30/09/2018

Là sao @Bui_Trung_Thong ???
Bạn có thể bỏ ít thời gian code giùm mình vài dòng được không?

vũ xuân quân viết 19:25 ngày 30/09/2018

bạn nên kiếm cuốn sách C++ và lập trình hướng đối tượng của giáo sư pham văn ất về đọc.
Cuốn đó là kinh điển của C++.

Bùi Trung Thông viết 19:17 ngày 30/09/2018
  http://www.tutorialspoint.com/cplusplus/input_output_operators_overloading.htm

bạn tham khảo cái này dễ hình dung hơn, bạn không hiểu chỗ nào thì nói để mình giải thích cho ?
nói chung mình cũng mới học thôi

Bài liên quan
0