Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 13 kết quả

Đề tài: phân tích code hướng đối tượng công ty quản lý ca sĩ!!!

  1. #1
    Ngày gia nhập
    11 2010
    Nơi ở
    TPHCM
    Bài viết
    9

    Mặc định phân tích code hướng đối tượng công ty quản lý ca sĩ!!!

    Công ty quản lý ca sĩ ABC cần quản lý các thông tin để tính lương cho các ca sĩ thuộc công ty.Công ty chia ca sĩ thành 2 nhóm.nhóm "chưa" nổi tiếng và ca sĩ nổi tiếng.Thông tin chung của 2 nhóm bao gồm
    - Họ tên ca sĩ
    - Số năm làm việc cho công ty
    - Số đĩa bán được
    - Số buổi trình diễn tham gia
    Ngoài ra,ca sĩ nổi tiếng được mời tham gia nhiều gameshow nên còn có thông tin số gameshow tham gia
    Quy định trả lương:
    với ca sĩ chưa nổi tiếng:
    Lương =3.000.000+500.000*số năm làm việc+1.000*số đĩa bán ra+150.000*số buổi trình diễn
    Lương =5.000.000+500.000*số năm làm việc+1.200*số đĩa bán ra+300.000*số buổi trình diễn+500.000*số gameshow
    a)Nhập thông tin của ca sĩ
    b)Tính tổng tiền lương mà công ty cần trả cho ca sĩ
    c)Xuất thông tin các ca sĩ
    d)Liệt kê danh sách các ca sĩ lương cao nhất
    vấn đề ở đây là liệt kê danh sách các ca sĩ lương cao nhất,mình không hiểu nên định hướng để phân tích code như thế nào?
    Đã được chỉnh sửa lần cuối bởi peheo_101091 : 07-08-2011 lúc 01:08 PM.

  2. #2
    Ngày gia nhập
    12 2010
    Nơi ở
    Hanoi, Vietnam, Vietnam
    Bài viết
    687

    bài này liên quan đến phương thức ảo trong hướng đối tượng , bạn biết về phương thức ảo chưa nếu biết rồi thì làm theo cách đó !

  3. #3
    Ngày gia nhập
    11 2010
    Nơi ở
    TPHCM
    Bài viết
    9

    Trích dẫn Nguyên bản được gửi bởi xuyenit55 Xem bài viết
    bài này liên quan đến phương thức ảo trong hướng đối tượng , bạn biết về phương thức ảo chưa nếu biết rồi thì làm theo cách đó !
    tức là sử dụng phương pháp kế thừa?hay đa xạ fải hok bạn?

  4. #4
    Ngày gia nhập
    12 2010
    Nơi ở
    Hanoi, Vietnam, Vietnam
    Bài viết
    687

    Trích dẫn Nguyên bản được gửi bởi peheo_101091 Xem bài viết
    tức là sử dụng phương pháp kế thừa?hay đa xạ fải hok bạn?
    tất nhiên là có phần kế thừa rồi !
    nói chung bài này là kết hợp các phần kế thừa , đa hình , phương thức ảo ! và khi đã sử dụng đến đa hình và phương thức ảo thì có vẻ rất mệt ! bạn cố gắng đọc hiểu tư tưởng mấy cái đó nha không là bó tay luôn đó !

  5. #5
    Ngày gia nhập
    11 2010
    Nơi ở
    TPHCM
    Bài viết
    9

    Trích dẫn Nguyên bản được gửi bởi xuyenit55 Xem bài viết
    tất nhiên là có phần kế thừa rồi !
    nói chung bài này là kết hợp các phần kế thừa , đa hình , phương thức ảo ! và khi đã sử dụng đến đa hình và phương thức ảo thì có vẻ rất mệt ! bạn cố gắng đọc hiểu tư tưởng mấy cái đó nha không là bó tay luôn đó !
    bạn đang học cntt lun hả bạn?bạn học ở đâu vậy ?
    phương thức ảo mình chưa học,bạn có thể nói sơ lược júp mình hok?

  6. #6
    Ngày gia nhập
    12 2010
    Nơi ở
    Hanoi, Vietnam, Vietnam
    Bài viết
    687

    Mặc định phân tích code hướng đối tượng công ty quản lý ca sĩ!!!

    Trích dẫn Nguyên bản được gửi bởi peheo_101091 Xem bài viết
    bạn đang học cntt lun hả bạn?bạn học ở đâu vậy ?
    phương thức ảo mình chưa học,bạn có thể nói sơ lược júp mình hok?
    uk , mình cũng học cntt , mình ở hà nội !
    lâu rồi mình không đụng đến cái đó cũng ko nhớ rõ nữa , bạn nên tìm quyển sách của thầy phạm văn ất để đọc qua !

  7. #7
    Ngày gia nhập
    11 2010
    Nơi ở
    TPHCM
    Bài viết
    9

    Trích dẫn Nguyên bản được gửi bởi xuyenit55 Xem bài viết
    uk , mình cũng học cntt , mình ở hà nội !
    lâu rồi mình không đụng đến cái đó cũng ko nhớ rõ nữa , bạn nên tìm quyển sách của thầy phạm văn ất để đọc qua !
    uhm,tks bạn nha,mình học cntt dh khoa học tự nhiên tphcm.mà sách của thầy Ất có tựa là jì vậy bạn?

  8. #8
    Ngày gia nhập
    12 2010
    Nơi ở
    Hanoi, Vietnam, Vietnam
    Bài viết
    687

    Trích dẫn Nguyên bản được gửi bởi peheo_101091 Xem bài viết
    uhm,tks bạn nha,mình học cntt dh khoa học tự nhiên tphcm.mà sách của thầy Ất có tựa là jì vậy bạn?
    c++ và lập trình hướng đối tượng bạn ạ!
    search trên mạng nhiều lắm bạn ạ !

  9. #9
    Ngày gia nhập
    04 2011
    Nơi ở
    Heaven
    Bài viết
    90

    mình có đọan code này để bạn tham khảo về kế thừa và phương thức ảo, hi vọng là giúp bạn được
    mình chưa demo không biết nó chạy thế nào chỉ là mình muốn chỉ ra cấu trúc của bài trên thôi
    Code:
    #include<iostream>
    #include<vector>
    using namespace std;
    
    class CASI
    {
    protected:
    	char* HoTen;
    	int SoNamLamViec;
    	int SoDiaBanDuoc;
    	int SoBuoiTrinhDienThamGia;
    public:
    	CASI(){};
    	CASI(char* a,int b,int c,int d)
    	{
    		this->HoTen=new char[strlen(a)+1];
    		this->HoTen=a;
    		this->SoNamLamViec=b;
    		this->SoDiaBanDuoc=c;
    		this->SoBuoiTrinhDienThamGia=d;
    	}
    	CASI(const CASI& a)
    	{
    		this->HoTen=new char[strlen(a.HoTen)];
    		this->HoTen=a.HoTen;
    		this->SoBuoiTrinhDienThamGia=a.SoBuoiTrinhDienThamGia;
    		this->SoDiaBanDuoc=a.SoDiaBanDuoc;
    		this->SoNamLamViec=a.SoNamLamViec;
    	}
    	void operator=(const CASI& a)
    	{
    		if(this->HoTen!=NULL)
    		{
    			delete[] this->HoTen;
    			this->HoTen=NULL;
    			this->HoTen=new char[strlen(a.HoTen)];
    			this->HoTen=a.HoTen;
    			this->SoBuoiTrinhDienThamGia=a.SoBuoiTrinhDienThamGia;
    			this->SoDiaBanDuoc=a.SoDiaBanDuoc;
    			this->SoNamLamViec=a.SoNamLamViec;
    		}
    	}
    	virtual void Import()=0;
    	virtual void Print() const =0; 
    	virtual int Luong() const =0;
    	virtual ~CASI();
    
    };
    class NGHIEP_DU:public CASI
    {
    public:
    	void test_function(NGHIEP_DU A)
    	{
    		delete[] A.HoTen;
    	}
    	NGHIEP_DU(){};
    	NGHIEP_DU(char* a,int b,int c,int d):CASI(a,b,c,d){};
    	NGHIEP_DU(const NGHIEP_DU& a):CASI(a){};
    	virtual void Import()
    	{
    		cout<<endl<<"Ho Ten ca si: ";
    		cin.getline(this->HoTen,20,'\n');
    		cout<<endl<<"So Nam Lam Viec:"<<endl;
    		cin>>this->SoNamLamViec;
    		cout<<"So Dia Ban Duoc: "<<endl;
    		cin>>this->SoDiaBanDuoc;
    		cout<<"So Buoi Trinh Dien Tham Gia: "<<endl;
    		cin>>this->SoBuoiTrinhDienThamGia;
    
    
    
    	}
    	virtual void Print() const
    	{
    		cout<<this->HoTen;
    		cout<<this->SoNamLamViec;
    		cout<<this->SoDiaBanDuoc;
    		cout<<this->SoBuoiTrinhDienThamGia;
    	}
    	virtual int Luong() const
    	{
    		//3.000.000+500.000*số năm làm việc+1.000*số đĩa bán ra+150.000*số buổi trình diễn;
    		return 3000000+500000*this->SoNamLamViec+1000*this->SoDiaBanDuoc+150000*this->SoBuoiTrinhDienThamGia;
    	}
    	virtual ~NGHIEP_DU()
    	{
    		if(this->HoTen!=NULL)
    		{
    			delete[] this->HoTen;
    			this->HoTen=NULL;
    		}
    	}
    	NGHIEP_DU& operator =(const NGHIEP_DU& a)
    	{
    		this->operator=(a);
    		return *this;
    	}
    
    };
    class CHUYEN_NGHIEP:public CASI
    {
    private:
    	int SoGameShowThamGia;
    public:
    	CHUYEN_NGHIEP(){};
    	CHUYEN_NGHIEP(char* a,int b,int c,int d,int e):CASI(a,b,c,d)
    	{
    		this->SoGameShowThamGia=e;
    	}
    	CHUYEN_NGHIEP(const CHUYEN_NGHIEP& a):CASI(a){};
    	virtual void Import()
    	{
    		cout<<endl<<"Ho Ten ca si: ";
    		cin.getline(this->HoTen,20,'\n');
    		cout<<endl<<"So Nam Lam Viec:"<<endl;
    		cin>>this->SoNamLamViec;
    		cout<<"So Dia Ban Duoc: "<<endl;
    		cin>>this->SoDiaBanDuoc;
    		cout<<"So Buoi Trinh Dien Tham Gia: "<<endl;
    		cin>>this->SoBuoiTrinhDienThamGia;
    		cout<<"So Game Show Tham Gia: "<<endl;
    		cin>>this->SoGameShowThamGia;
    
    
    
    	}
    	
    
    	virtual void Print() const
    	{
    		cout<<this->HoTen;
    		cout<<this->SoNamLamViec;
    		cout<<this->SoDiaBanDuoc;
    		cout<<this->SoBuoiTrinhDienThamGia;
    		cout<<this->SoGameShowThamGia;
    	}
    	virtual int Luong() const
    	{
    		//5.000.000+500.000*số năm làm việc+1.200*số đĩa bán ra+300.000*số buổi trình diễn+500.000*số gameshow
    		return 5000000+500000*this->SoNamLamViec+1200*this->SoDiaBanDuoc+300000*this->SoBuoiTrinhDienThamGia+500000*this->SoGameShowThamGia;
    	}
    	virtual ~CHUYEN_NGHIEP()
    	{
    		if(this->HoTen!=NULL)
    		{
    			delete[] this->HoTen;
    			this->HoTen=NULL;
    		}
    	}
    	CHUYEN_NGHIEP& operator=(const CHUYEN_NGHIEP& a)
    	{
    		this->operator=(a);
    		return *this;
    	}
    
    };
    int main()
    {
    	int x;
    	char c;
    	vector<CASI*> CS;
    	do
    	{
    		cout<<"Ca si chuyen nghiep : 1"<<endl;
    		cout<<"Ca si nghiep du: 0"<<endl;
    		cin>>x;
    		if(x==1)
    		{
    			CASI* CN=new CHUYEN_NGHIEP();
    			CN->Import();
    			CS.push_back(CN);
    		}
    		if(x==0)
    		{
    			CASI* ND=new NGHIEP_DU();
    			ND->Import();
    			CS.push_back(ND);
    		}
    	}while(c!=27);
    
    	return 0;
    }
    
    int Max(vector<CASI*> a)
    {
    	
    	vector<CASI*>::iterator cs=a.begin();
    	int maxi=(*cs)->Luong();
    	for(cs=a.begin();cs!=a.end();cs++)
    	{
    		if((*cs)->Luong()>maxi)
    			maxi=(*cs)->Luong();
    	}
    	return maxi;
    
    }
    void PrintMax(vector<CASI*> a)
    {
    	vector<CASI*>::iterator cs=a.begin();
    	for(cs=a.begin();cs!=a.end();cs++)
    	{
    		if((*cs)->Luong()==Max(a))
    		{
    			(*cs)->Print();
    		}
    	}
    }
    Đã được chỉnh sửa lần cuối bởi stupid_genius : 08-08-2011 lúc 12:04 PM.

  10. #10
    Ngày gia nhập
    11 2010
    Nơi ở
    TPHCM
    Bài viết
    9

    Trích dẫn Nguyên bản được gửi bởi stupid_genius Xem bài viết
    mình có đọan code này để bạn tham khảo về kế thừa và phương thức ảo, hi vọng là giúp bạn được
    mình chưa demo không biết nó chạy thế nào chỉ là mình muốn chỉ ra cấu trúc của bài trên thôi
    Code:
    #include<iostream>
    #include<vector>
    using namespace std;
    
    class CASI
    {
    protected:
    	char* HoTen;
    	int SoNamLamViec;
    	int SoDiaBanDuoc;
    	int SoBuoiTrinhDienThamGia;
    public:
    	CASI(){};
    	CASI(char* a,int b,int c,int d)
    	{
    		this->HoTen=new char[strlen(a)+1];
    		this->HoTen=a;
    		this->SoNamLamViec=b;
    		this->SoDiaBanDuoc=c;
    		this->SoBuoiTrinhDienThamGia=d;
    	}
    	CASI(const CASI& a)
    	{
    		this->HoTen=new char[strlen(a.HoTen)];
    		this->HoTen=a.HoTen;
    		this->SoBuoiTrinhDienThamGia=a.SoBuoiTrinhDienThamGia;
    		this->SoDiaBanDuoc=a.SoDiaBanDuoc;
    		this->SoNamLamViec=a.SoNamLamViec;
    	}
    	void operator=(const CASI& a)
    	{
    		if(this->HoTen!=NULL)
    		{
    			delete[] this->HoTen;
    			this->HoTen=NULL;
    			this->HoTen=new char[strlen(a.HoTen)];
    			this->HoTen=a.HoTen;
    			this->SoBuoiTrinhDienThamGia=a.SoBuoiTrinhDienThamGia;
    			this->SoDiaBanDuoc=a.SoDiaBanDuoc;
    			this->SoNamLamViec=a.SoNamLamViec;
    		}
    	}
    	virtual void Import()=0;
    	virtual void Print() const =0; 
    	virtual int Luong() const =0;
    	virtual ~CASI();
    
    };
    class NGHIEP_DU:public CASI
    {
    public:
    	void test_function(NGHIEP_DU A)
    	{
    		delete[] A.HoTen;
    	}
    	NGHIEP_DU(){};
    	NGHIEP_DU(char* a,int b,int c,int d):CASI(a,b,c,d){};
    	NGHIEP_DU(const NGHIEP_DU& a):CASI(a){};
    	virtual void Import()
    	{
    		cout<<endl<<"Ho Ten ca si: ";
    		cin.getline(this->HoTen,20,'\n');
    		cout<<endl<<"So Nam Lam Viec:"<<endl;
    		cin>>this->SoNamLamViec;
    		cout<<"So Dia Ban Duoc: "<<endl;
    		cin>>this->SoDiaBanDuoc;
    		cout<<"So Buoi Trinh Dien Tham Gia: "<<endl;
    		cin>>this->SoBuoiTrinhDienThamGia;
    
    
    
    	}
    	virtual void Print() const
    	{
    		cout<<this->HoTen;
    		cout<<this->SoNamLamViec;
    		cout<<this->SoDiaBanDuoc;
    		cout<<this->SoBuoiTrinhDienThamGia;
    	}
    	virtual int Luong() const
    	{
    		//3.000.000+500.000*số năm làm việc+1.000*số đĩa bán ra+150.000*số buổi trình diễn;
    		return 3000000+500000*this->SoNamLamViec+1000*this->SoDiaBanDuoc+150000*this->SoBuoiTrinhDienThamGia;
    	}
    	virtual ~NGHIEP_DU()
    	{
    		if(this->HoTen!=NULL)
    		{
    			delete[] this->HoTen;
    			this->HoTen=NULL;
    		}
    	}
    	NGHIEP_DU& operator =(const NGHIEP_DU& a)
    	{
    		this->operator=(a);
    		return *this;
    	}
    
    };
    class CHUYEN_NGHIEP:public CASI
    {
    private:
    	int SoGameShowThamGia;
    public:
    	CHUYEN_NGHIEP(){};
    	CHUYEN_NGHIEP(char* a,int b,int c,int d,int e):CASI(a,b,c,d)
    	{
    		this->SoGameShowThamGia=e;
    	}
    	CHUYEN_NGHIEP(const CHUYEN_NGHIEP& a):CASI(a){};
    	virtual void Import()
    	{
    		cout<<endl<<"Ho Ten ca si: ";
    		cin.getline(this->HoTen,20,'\n');
    		cout<<endl<<"So Nam Lam Viec:"<<endl;
    		cin>>this->SoNamLamViec;
    		cout<<"So Dia Ban Duoc: "<<endl;
    		cin>>this->SoDiaBanDuoc;
    		cout<<"So Buoi Trinh Dien Tham Gia: "<<endl;
    		cin>>this->SoBuoiTrinhDienThamGia;
    		cout<<"So Game Show Tham Gia: "<<endl;
    		cin>>this->SoGameShowThamGia;
    
    
    
    	}
    	
    
    	virtual void Print() const
    	{
    		cout<<this->HoTen;
    		cout<<this->SoNamLamViec;
    		cout<<this->SoDiaBanDuoc;
    		cout<<this->SoBuoiTrinhDienThamGia;
    		cout<<this->SoGameShowThamGia;
    	}
    	virtual int Luong() const
    	{
    		//5.000.000+500.000*số năm làm việc+1.200*số đĩa bán ra+300.000*số buổi trình diễn+500.000*số gameshow
    		return 5000000+500000*this->SoNamLamViec+1200*this->SoDiaBanDuoc+300000*this->SoBuoiTrinhDienThamGia+500000*this->SoGameShowThamGia;
    	}
    	virtual ~CHUYEN_NGHIEP()
    	{
    		if(this->HoTen!=NULL)
    		{
    			delete[] this->HoTen;
    			this->HoTen=NULL;
    		}
    	}
    	CHUYEN_NGHIEP& operator=(const CHUYEN_NGHIEP& a)
    	{
    		this->operator=(a);
    		return *this;
    	}
    
    };
    int main()
    {
    	int x;
    	char c;
    	vector<CASI*> CS;
    	do
    	{
    		cout<<"Ca si chuyen nghiep : 1"<<endl;
    		cout<<"Ca si nghiep du: 0"<<endl;
    		cin>>x;
    		if(x==1)
    		{
    			CASI* CN=new CHUYEN_NGHIEP();
    			CN->Import();
    			CS.push_back(CN);
    		}
    		if(x==0)
    		{
    			CASI* ND=new NGHIEP_DU();
    			ND->Import();
    			CS.push_back(ND);
    		}
    	}while(c!=27);
    
    	return 0;
    }
    
    int Max(vector<CASI*> a)
    {
    	
    	vector<CASI*>::iterator cs=a.begin();
    	int maxi=(*cs)->Luong();
    	for(cs=a.begin();cs!=a.end();cs++)
    	{
    		if((*cs)->Luong()>maxi)
    			maxi=(*cs)->Luong();
    	}
    	return maxi;
    
    }
    void PrintMax(vector<CASI*> a)
    {
    	vector<CASI*>::iterator cs=a.begin();
    	for(cs=a.begin();cs!=a.end();cs++)
    	{
    		if((*cs)->Luong()==Max(a))
    		{
    			(*cs)->Print();
    		}
    	}
    }
    tks u nha!!fần code này là bạn đang sử dụng phương thức ảo đúng hok?

Các đề tài tương tự

  1. >>>Code Quản lý ngân hàng<<<
    Gửi bởi buinhamkt trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 15-12-2013, 10:30 AM
  2. code quản lý bán hàng C++
    Gửi bởi linh040800 trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 08-11-2012, 11:17 PM
  3. Code đếm biển số xe có tổng bằng 9. Tại sao 2 code của mình cho 2 kết quả 2 khác nhau?
    Gửi bởi thanhlinh.vietnam trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 3
    Bài viết cuối: 03-08-2011, 11:42 AM
  4. Code quản lý sinh viên bằng danh sách lối vòng. Giúp mình thay đổi code kế thừa?
    Gửi bởi caocanha trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 6
    Bài viết cuối: 04-05-2009, 03:39 PM
  5. code bài tập quản lý thư viện sai chỗ nào?
    Gửi bởi runrun88 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 14-04-2009, 09:16 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn