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ố 11 kết quả

Đề tài: Tính chu vi, diện tích hình thang - sử dụng lập trình hướng đối tượng trong C++?

  1. #1
    Ngày gia nhập
    12 2010
    Bài viết
    3

    Mặc định Tính chu vi, diện tích hình thang - sử dụng lập trình hướng đối tượng trong C++?

    e viết một bài về hình thang tính diện tích và chu vi, mong các pro xem giúp có 2 lỗi mà e sửa hoài ko đc

    C++ Code:
    1. // Hinhthang.cpp : Defines the entry point for the console application.
    2. //
    3.  
    4. #include "stdafx.h"
    5. #include "stdio.h"
    6. #include "conio.h"
    7. #include <iostream>
    8. #include "math.h"
    9.  
    10. class hinhthang
    11. {
    12. private:
    13. float a,b,c,d,h;
    14. public:
    15. hinhthang();//khoi tao co tham so
    16. hinhthang(float a, float b, float c, float d, float h);
    17. float chuvi(float a, float b, float c, float d, float h);
    18. float dientich(float a, float b, float c, float d, float h);
    19.  
    20. void nhap();
    21. void xuat();
    22. };
    23. hinhthang::hinhthang(float a, float b,float c, float d, float h)
    24. {
    25. this->a=a;
    26. this->b=b;
    27. this->h=h;
    28. this->c=c;
    29. this->d=d;
    30. }
    31. float hinhthang::chuvi( float a, float b, float c, float d, float h )
    32. {
    33. float v=a+b+c+d;
    34. return v;
    35. }
    36.  
    37. float hinhthang::dientich( float a, float b,float c, float d, float h )
    38. {
    39. float u=((a+b)*h)/2;
    40. return u;
    41. }
    42.  
    43. void hinhthang::nhap()
    44. {
    45. float a,b,c,d,h;
    46. printf("nhap gia tri day lon: ");
    47. scanf_s("%f",&a);
    48. printf("\nnhap gia tri day nho: ");
    49. scanf_s("%f",&b);
    50. printf("nhap gia tri canh ben thu 1: ");
    51. scanf_s("%f",&c);
    52. printf("nhap gia tri canh ben 2: ");
    53. scanf_s("%f",&d);
    54. printf("nhap gia tri chieu cao: ");
    55. scanf_s("%f",&h);
    56. }
    57.  
    58. void hinhthang::xuat()
    59. {
    60. hinhthang ht(a,b,c,d,h);
    61. printf("chu vi cua hinh thang la: %.5f",ht.chuvi(float (a), float (b), float (c), float (d), float (h)));
    62. printf("dien tich hinh thang la: %.5f",ht.dientich(float (a), float (b), float (c), float (d), float (h)));
    63. }
    64.  
    65. void main()
    66. {
    67. hinhthang p;
    68. p.nhap();
    69. p.xuat();
    70.  
    71. _getch();
    72. }



    gặp 2 lỗi khi chạy bằng visual studio 2008
    1. Error 1 error C2380: type(s) preceding 'hinhthang' (constructor with return type, or illegal redefinition of current class-name?) c:\users\admin\documents\visual studio 2008\projects\hinhthang\hinhthang\hinhthang.cpp 19

    2. Error 2 error C2535: 'hinhthang::hinhthang(void)' : member function already defined or declared c:\users\admin\documents\visual studio 2008\projects\hinhthang\hinhthang\hinhthang.cpp 19
    Trả lời cùng với trích dẫn
    Sửa/Xóa bài viết
    Đã được chỉnh sửa lần cuối bởi mp121209 : 08-01-2011 lúc 02:11 AM.

  2. #2
    Ngày gia nhập
    12 2010
    Nơi ở
    Mây
    Bài viết
    268

    - Thế này là thế nào :-??
    Trích dẫn Nguyên bản được gửi bởi sontung109 Xem bài viết
    Trả lời cùng với trích dẫn
    Sửa/Xóa bài viết
    - Error là do phương thức khởi tạo mặc định bạn chưa định nghĩa(defined)
    - Lêu lêu

  3. #3
    Ngày gia nhập
    12 2010
    Bài viết
    3

    thx bác rất nhiều, bác xem dùm e kết quả khi e nhập giá trị a,b,c,d,h thì kết quả sai.thx

  4. #4
    Ngày gia nhập
    12 2010
    Nơi ở
    Mây
    Bài viết
    268

    Trích dẫn Nguyên bản được gửi bởi sontung109 Xem bài viết
    C++ Code:
    1. printf("chu vi cua hinh thang la: %.5f",ht.chuvi(float (a), float (b), float (c), float (d), float (h)));
    2. printf("dien tich hinh thang la: %.5f",ht.dientich(float (a), float (b), float (c), float (d), float (h)));
    - Coi lại cách truyền tham số
    - Lêu lêu

  5. #5
    Ngày gia nhập
    06 2009
    Nơi ở
    Cái hộp
    Bài viết
    1,256

    Ko phải cách truyền mà là so sai phuơng pháp hướng đối tượng. Ví dụ hàm tính chu vi và diện tích, tham số phải là void vì nó sẽ lấy các biến trong thân lớp để tính toán. Phần xuất thì ko phải tạo ra một đối tượng hinhthang mới
    Men talk of killing time, while time quietly kills them.
    Time is what we want most, but what we use worst.
    ------------------------------
    YinYang's Programming Blog

  6. #6
    Ngày gia nhập
    01 2010
    Nơi ở
    до свидания!
    Bài viết
    1,766

    Mặc định Tính chu vi, diện tích hình thang - sử dụng lập trình hướng đối tượng trong C++?

    Chưa bao giờ Peter thấy nhập cả 5 tham số (4 cạnh và chiều cao) của một hình thang cả; các bạn sẽ bị thừa bậc tự do đó, vì thế kết quả sai là chắc! (Do đó không cần phải xem hết code).

  7. #7
    Ngày gia nhập
    12 2010
    Nơi ở
    Mây
    Bài viết
    268

    Trích dẫn Nguyên bản được gửi bởi Yin Yang Xem bài viết
    Ko phải cách truyền mà là so sai phuơng pháp hướng đối tượng. Ví dụ hàm tính chu vi và diện tích, tham số phải là void vì nó sẽ lấy các biến trong thân lớp để tính toán. Phần xuất thì ko phải tạo ra một đối tượng hinhthang mới
    - Hic! Tại mình ngu. Sorry đã chỉ bậy
    - Lêu lêu

  8. #8
    Ngày gia nhập
    10 2010
    Bài viết
    173

    viết lung tung :|. Đọc kĩ lại lý thuyết nào :|
    Learn how to write, not copy !!!

  9. #9
    Ngày gia nhập
    12 2010
    Nơi ở
    Tp HCM
    Bài viết
    6

    Bạn phải đọc lại lý thuyết nhiều nhiều...Các hàm tính chu vi,diện tích...thuộc lớp vốn không cần phải tham số:
    float hinhthang::chuvi()
    {
    return (a+b+c+d);
    }
    float hinhthang::dientich()
    {
    return ((a+b)*h)/2;
    }

  10. #10
    Ngày gia nhập
    04 2010
    Bài viết
    1,537

    Sử dụng hàm lớp (static method) để tính chu vi và diện tích

    C++ Code:
    1. static float hinhthang::chuvi( float a, float b, float c, float d, float h )
    2. {
    3.    return a+b+c+d;
    4. }
    5.  
    6. static float hinhthang::dientich( float a, float b, float h )
    7. {
    8.    return (a+b)*h/2;
    9. }
    10.  
    11. float hinhthang::chuvi()
    12. {
    13.    return dientich(a,b,c,d);
    14. }
    15.  
    16. float hinhthang::dientich()
    17. {
    18.    return dientich(a,b,h);
    19. }
    20.  
    21. // đại khái code như vậy, có thể cần chỉnh sứa syntax một chút

    Như vậy có thể tính được cả cho đối tượng và không đối tượng

    C++ Code:
    1. hinhthang ht(a,b,c,d,h);
    2. cout << "chu vi của hình thang mới nhập vào là " << ht.chuvi();
    3. cout << "chu vi của hình thang 1, 2, 3, 4 là " << hinhthang.chuvi(1,2,3,4);

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

  1. Thang nhôm gấp khúc đa năng UNIGAWA® - Gấp 4 đoạn - Thang nhôm xếp - Thang nhôm rút – Thang nhôm thông minh
    Gửi bởi soiconhuli trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 11-06-2011, 03:11 PM
  2. Thang nhôm - Thang nhôm rút - UNIGAWA - #0913552268 - Thang nhôm xếp - Thang nhôm thông m
    Gửi bởi soiconhuli trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 15-03-2011, 10:56 PM
  3. Thang nhôm rút UNIGAWA® - # 04.37832347 – Thang nhôm thông minh – Thang nhôm xếp – Th
    Gửi bởi soiconhuli trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 21-11-2010, 02:00 PM
  4. Thang nhôm thông minh UNIGAWA® - # 04.37832347 – Thang nhôm rút – Thang xếp
    Gửi bởi soiconhuli trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 26-05-2010, 06:46 PM
  5. Thang nhôm rút UNIGAWA® - # 04.37832347 – Thang nhôm thông minh – Thang xếp
    Gửi bởi soiconhuli trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 20-05-2010, 05:56 PM

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