Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
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();
    }
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    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
    589

    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?
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    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