Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 3 của 3
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Test trên VS10:
    1 IntelliSense: identifier "a" is undefined hàm xuất của class dailybanle, biến a chưa được khỏi tạo;
    2 IntelliSense: member "dailybanle::doanhso" (declared at line 35) is inaccessible
    3 IntelliSense: member "daily::namhoptac" (declared at line 12) is inaccessible
    2 và 3 là trong hàm main không thể truy xuất đến thuộc tính protected.
    -Mà bạn cho #include<stdlib.h> #include <fstream> vào để làm gì ???

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Các bạn sửa giúp mình bài này được không? Mình in ra mà thấy lỗi nhiều quá



    Đây là bài mình viết mà sao thấy lỗi nhiều quá. Bác nào coi giúp mình được không? Mình sửa mấy ngày nay mà vẫn không được

    Mã:
    #include<iostream>
    #include<stdlib.h>
    #include <fstream>
    #include <string>
    #include <iomanip> 
    using namespace std;
    
    class daily{
    	protected:
    	string madaily;
    	string tendaily;
    	int namhoptac;
    	long int chietkhaucoban;
    	public:
    	void nhap(void){
    		cout << "Nhap ma dai ly: " << endl;
    		getline(cin, madaily);
    		cout << "Nhap tendaily: " << endl;
    		getline(cin,tendaily);
    		cout << "Nam hop tac: ";
    		cin >> namhoptac;
    	}
    	float tienchietkhau(void){
    		return chietkhaucoban * namhoptac * 10 / 100;
    	}
    	void xuat(void){
    		cout << " Ma dai ly" << setw(5) <<
            "Ten dai ly" << setw(5) << "Nam hop tac" << setw(5)
            << "Tien chiet khau" << endl;
            cout << madaily << setw(5) << tendaily << setw(5)
            << tienchietkhau() << endl;
    	}
    };
    class dailybanle : public daily{
    	long int doanhso;
    	public:
    	void nhap(void){
    		daily::nhap();
    		cout << "Nhap doanh so: ";
    		cin >> doanhso;
    	}
    	float hoahong(void){
    		if(doanhso > 50000000) return doanhso * 15 / 100;
    		else if(20000000 <= doanhso && doanhso < 50000000) return 10 / 100 * doanhso; 
    		else return 5 / 100 * doanhso;
    	}
    	
    	float tonghoahong(void){
    		dailybanle a;
    		return a.tienchietkhau() + dailybanle::hoahong();
    	}
    	void xuat(void){
    		cout << "Ma dai ly" << setw(5) << "Ten dai ly "
    		<< setw(5) << "So nam hop tac" << setw(5) <<"Doanh so" << setw(5) << "Tonghoahong" << endl;
    		cout << a.madaily << setw(5) << a.tendaily << setw(5) << a.namhoptac
    		<< setw(5) << doanhso << setw(5) << hoahong();	
    	}
    }; 
    int main(){
        dailybanle n[30];
    	int m;
    	cout << "Nhap so danh sach ban le: "; cin >> m;
    	for(int i = 0; i < m; i ++){
    		cout << "Nhap du lieu dai ly ban le thu" << i + 1 << ": " << endl;
    		n[i].nhap();
    	}
        for(int i = 0; i < m; i++)
        if (n[i].doanhso > 50000000 && n[i].namhoptac < 3)
        n[i].xuat();
    	
    }

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    mình sửa bài của bạn thế này:

    Mã:
    #include<iostream>#include<stdlib.h>#include <fstream>#include <string>#include <iomanip> using namespace std; class daily{    public:    string madaily;    string tendaily;    int namhoptac;    static long  chietkhaucoban ;        public:    void nhap(){                char c; cin.get(c);  //lam rong buffer         cout << "Nhap ma dai ly: " ;        getline(cin, madaily);        cout << "Nhap tendaily: " ;         getline(cin,tendaily);        cout << "Nam hop tac: ";        cin >> namhoptac;    }    float tienchietkhau(void){          daily::chietkhaucoban = 300000;        return daily::chietkhaucoban * namhoptac * 10 / 100;    }    void xuat(void){        cout << " Ma dai ly" << setw(5) <<        "Ten dai ly" << setw(5) << "Nam hop tac" << setw(5)        << "Tien chiet khau" << endl;        cout << madaily << setw(5) << tendaily << setw(5)        << tienchietkhau() << endl;    }};class dailybanle : public daily{        public:    long int doanhso;        void xuat(void){        cout << "
    Ma dai ly:" << madaily;        cout << "
    Ten dai ly :" << tendaily;        cout << "
    So nam hop tac:" << namhoptac;        cout << "
    Doanh so:" << doanhso;        cout << "
    Tonghoahong:" << hoahong()<<endl;        //cout << "
    Ma dai ly:" << madaily;    }    void nhap(void){        daily::nhap();        cout << "Nhap doanh so: ";        cin >> doanhso;        cout<<"=====================
    ";        xuat();    }    float hoahong(void){        if(doanhso > 50000000) return doanhso * 15 / 100;        else if(20000000 <= doanhso && doanhso < 50000000) return doanhso * 10 / 100;         else return  doanhso * 5 / 100;    }        float tonghoahong(void){        return tienchietkhau() + hoahong();    }}; int main(){    dailybanle n[30];    int m;    cout << "Nhap so danh sach ban le: "; cin >> m;    for(int i = 0; i < m; i ++){        cout << "Nhap du lieu dai ly ban le thu " << i + 1 << ": " << endl;        n[i].nhap();    }    for(int i = 0; i < m; i++)    if (n[i].doanhso > 50000000 && n[i].namhoptac < 3)      n[i].xuat();        cin.get();  }
    - bạn lưu ý:
    + 1 là biến "chietkhaucoban" bạn phải gán giá trị cho nó,
    + 2 là viết "doanhso * 10 / 100" sẽ khác với "10 / 100*doanhso" đấy, cách viết thứ 2 nó lấy 10/100 sẽ ra 0 (do chia số int ra kết quả bị ép về kiểu int , đáng ra là 0.1 nó lại tính là 0) rồi nhân với "doanhso" thành ra luôn bằng 0.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •