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

Đề tài: Xây dựng các hàm dựng và đa năng hóa nhập xuất cho class DSLK đa thức c++

  1. #1
    Ngày gia nhập
    10 2020
    Bài viết
    1

    Mặc định Xây dựng các hàm dựng và đa năng hóa nhập xuất cho class DSLK đa thức c++

    Mọi người cho mình hỏi chỗ đa năng hóa toán tử >> và << có lỗi chỗ nào không với ạ, khi compile thì không sao nhưng lại bị lỗi thực thi. Tiện thể cho mình hỏi xem với 2 hàm dựng từ mảng a[] và hàm sao chép chạy thế có đúng với cách thêm node vào đầu của dslk ko ạ. Mình khá tệ với phần DSLK =((
    C++ Code:
    1. #include <bits/stdc++.h>
    2. using namespace std;
    3. class Dathuc;
    4. class Node {
    5.         double hs;
    6.         int mu;
    7.         Node *Link;
    8.     public:
    9.         Node(double heso = 0, int somu = 0);
    10.         ~Node(){}
    11.         friend  class Dathuc;
    12.         friend istream &operator>>(istream &in, Dathuc &d);
    13.         friend ostream &operator<<(ostream &out,const Dathuc &d);
    14. };
    15. Node::Node(double heso, int somu):hs(heso), mu(somu){
    16.     Link = NULL;
    17. }
    18. class Dathuc {
    19.         Node *Head;
    20.     public:
    21.         Dathuc(){ Head = NULL;}
    22.         Dathuc(double a[]);
    23.         ~Dathuc();
    24.         Dathuc(const Dathuc &d);
    25.         friend istream &operator>>(istream &in, Dathuc &d);
    26.         friend ostream &operator<<(ostream &out,const Dathuc &d);
    27. };
    28. Dathuc::Dathuc(double a[])
    29. {
    30.     size_t n = sizeof(a)/sizeof(a[0]);
    31.     int i=0;
    32.     while(i<n)
    33.     {
    34.         if(a[i]!=0)
    35.         {
    36.             Node *tmp = new Node(a[i],i);
    37.             tmp->Link = Head;
    38.             Head = tmp;
    39.         }
    40.     }
    41. }
    42. Dathuc::~Dathuc()
    43. {
    44.     Head = NULL;
    45. }
    46. Dathuc::Dathuc(const Dathuc &d)
    47. {
    48.     Node *p, *q=d.Head;
    49.     while (Head != NULL)
    50.     {
    51.         p = Head;
    52.         Head = Head->Link;
    53.         delete p;
    54.     }
    55.     Head = new Node(q->hs, q-> mu);
    56.     q = q->Link;
    57.     Node *r = Head;
    58.     while (q!=NULL)
    59.     {
    60.         Node *tmp = new Node(q->hs, q->mu);
    61.         r->Link = tmp;
    62.         tmp = r;
    63.         q = q->Link;
    64.     }
    65. }
    66. istream &operator>>(istream &in, Dathuc &d)
    67. {
    68.     Node *q=d.Head;
    69.     cout<<"Nhap so luong phan tu: "; in>>q->mu;
    70.     for(int i=0;i<q->mu;i++)
    71.     {
    72.         cout<<"He so thu i: "; in>>q->hs;
    73.         if(q->hs!=0)
    74.         {
    75.             Node *tmp = new Node(q->hs,i);
    76.             q->Link = tmp;
    77.             q = tmp;
    78.         }
    79.     }
    80.     return in;
    81. }
    82. ostream &operator<<(ostream &out,const Dathuc &d)
    83. {
    84.     Node *q=d.Head;
    85.     out<<q->hs<<"*x^"<<q->mu;
    86.     q = q->Link;
    87.     while(q->Link!=NULL)
    88.     {
    89.         if(q->hs>0)
    90.         {
    91.             out<<" + "<<q->hs<<"*x^"<<q->mu;
    92.         }
    93.         else out<<" - "<<fabs(q->hs)<<"*x^"<<q->mu;
    94.         q = q->Link;
    95.     }
    96.         return out;
    97. }
    Đã được chỉnh sửa lần cuối bởi MHoang : 18-10-2020 lúc 11:01 PM. Lý do: Chỉnh khung mã

Tags của đề tài này

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