Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Xin sửa giúp bài về lớp Array!

  1. #1
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    31

    Lightbulb Xin sửa giúp bài về lớp Array!

    Nội dung: Xây dựng lớp Array các phần tử mảng số nguyên (mảng 1 chiều). Các phương thức của lớp bao gồm:
    - Hàm khởi tạo constructor của lớp.
    - Hàm nhập giá trị cho các phần tử của mảng ra màn hình.
    - Hàm in giá trị các phần tử của mảng ra màn hình.
    - Hàm tính trung bình cộng các phần tử chẵn của mảng.
    - Đa năng hóa các toán tủ +,-, cho phép cộng, trừ hai mảng.
    Mình đã xây dựng được code nhưng khi chạy chưa đúng theo yêu cầu đề bài. Mong các bạn xem giúp!
    Thanks!
    Code:
    #include<iostream.h>
    #include<conio.h>
    #include<math.h>
    const int Nmax=100;
    class Array
    {
    private:
    	int a[Nmax];
    	int n;
    public:
    	Array();
    	void Nhap();
    	void In();
    	float TrungBinhCongPTChan();
    	Array operator +(Array a1);
    	Array operator -(Array a1);
    };
    //Khoi tao mang
    Array::Array()
    {
    	n=0;
    }
    //Dinh nghia phuong thuc nhap cho mang
    void Array::Nhap()
    {
    	int i;
    	cout<<"\nNhap so phan tu cua mang n= ";
    	cin>>n;
    	for(i=0;i<n;i++)
    	{
    		cout<<"\nNhap phan tu thu : "<<i<<endl;
    		cin>>a[i];
    	}
    }
    //Dinh nghia phuong thuc In mang
    void Array::In()
    {
    	int i;
    	cout<<"\nCac Phan tu cua mang la: ";
    	for(i=0;i<n;i++)
    	 cout<<a[i]<<" ";
    }
    //Dinh nghia phuong thuc tinh trung binh cong cac phan tu chan
    float Array::TrungBinhCongPTChan()
    {
    	int i;
    	int dem=0,Tong=0;
    	for(i=0;i<n;i++)
    	{
    		if(a[i]%2!=0)
    			return 0;
    		else
    		{
    			Tong+=a[i];
    			dem+=1;
    		}
    
    	}
    	return float(Tong/dem);
    }
    
    //Da nang hoa toan tu '+'
    Array Array::operator +(Array a1)
    {
    	Array tg;
    	int i;
    	if(n!=a1.n)
    	{
    		cout<<"\nKich thuoc hai mang khac nhau!"<<endl;
    	}
    	else
    	{
    		for(i=0;i<n;i++)
    			 tg.a[i]=a[i]+a1.a[i];
    	}
    	return tg;
    }
    //Da nang hoa toan tu '-'
    Array Array::operator -(Array a1)
    {
    	Array tg;
    	int i;
    	if(n!=a1.n)
    	{
    		cout<<"\nKich thuoc hai mang khac nhau!"<<endl;
    	}
    	else
    	{
    		for(i=0;i<n;i++)
    			 tg.a[i]=a[i]-a1.a[i];
    	}
    	return tg;
    }
    //Chuong trinh chinh
    void main()
    {
    	clrscr();
    	Array M,M1,M2;
    	M.Nhap();
    	M.In();
    	if(M.TrungBinhCongPTChan()==0)
    	 cout<<"\nTrong mang khong co phan tu chan nao!"<<endl;
    	else
    	 cout<<"\nTBC= "<<M.TrungBinhCongPTChan()<<endl;
    	M1.Nhap();
    	M1.In();
    	cout<<"\nTong hai mang la: ";
    	M2=M.operator + (M1);
    	cout<<"\nHieu hai mang la: ";
    	M2=M.operator - (M1);
    	getch();
    }
    Live and feel....

  2. #2
    Ngày gia nhập
    03 2008
    Bài viết
    81

    Nó không ra đúng kết quả vì số luong phan tu ở Array M2 = 0 bạn sửa lại hàm khơi tao là xong
    Dương Nhật Tân
    dnhattan1910@yahoo.com

  3. #3
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    31

    Trích dẫn Nguyên bản được gửi bởi dnhattan Xem bài viết
    Nó không ra đúng kết quả vì số luong phan tu ở Array M2 = 0 bạn sửa lại hàm khơi tao là xong
    Bạn có thể nói cụ thể hơn không? Mà nếu mình cho thêm một tham số
    ví dụ như: Array operator + (Array a1,Array a2); liệu có được không?
    Live and feel....

  4. #4
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất đông người
    Bài viết
    607

    Trích dẫn Nguyên bản được gửi bởi alias_va Xem bài viết
    Mà nếu mình cho thêm một tham số
    ví dụ như: Array operator + (Array a1,Array a2); liệu có được không?
    Không nên làm thế, vì + là một phép toán 2 ngôi.

  5. #5
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    31

    Giả sử ở hàm khởi tạo cho n=3 (3 phần tử) thì ở hàm main ta khai báo biến
    - Array M(1,2,3); -> máy báo lỗi. Vậy phải viết thế nào mới đúng?
    Live and feel....

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

  1. gỡ lỗi Index was outside the bounds of the array giúp e với các bác
    Gửi bởi moon34 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 01-10-2013, 04:00 AM
  2. vấn đề về array và pointer cần được giúp đỡ
    Gửi bởi love_you_4rever trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 18-08-2012, 06:49 PM
  3. Lỗi: At least one element in the source array could not be cast down to the destination array type.
    Gửi bởi itmanhieu trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 28-09-2011, 04:36 PM
  4. earch array, bị tính toán sai, giúp mình sửa?
    Gửi bởi emkhongleloi trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 07-04-2011, 12:26 PM
  5. Cần giúp bài tập về Array Character
    Gửi bởi destiny trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 15
    Bài viết cuối: 10-07-2010, 11:23 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