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

Đề tài: Cho em hỏi bài tập về oop có sử dụng danh sách liên kết với ạ? Em làm miết mà nó không ra

  1. #1
    Ngày gia nhập
    11 2022
    Nơi ở
    Đà Nẵng
    Bài viết
    0

    Mặc định Cho em hỏi bài tập về oop có sử dụng danh sách liên kết với ạ? Em làm miết mà nó không ra

    //file KhachHang.h

    #ifndef KHACHHANG_H
    #define KHACHHANG_H
    #include<iostream>
    #include<string.h>
    using namespace std;
    class KhachHang{
    private:
    string hoten;
    int tuoi;
    string id;
    public:
    KhachHang();
    void nhap();
    void xuat();
    void setHoten(string);
    void setTuoi(int);
    void setId(string);


    };
    KhachHang::KhachHang(){
    this->hoten=" ";
    this->tuoi=0;
    this->id=" ";
    }
    void KhachHang::nhap(){
    cout<<"\nNhap ho ten :";
    getline(cin, hoten); fflush(stdin);
    cout<<"\nNhap tuoi: ";
    cin>>tuoi; fflush(stdin);
    cout<<"\nNhap id: ";
    getline(cin, id); fflush(stdin);
    }
    void KhachHang::xuat(){
    cout<<"\nHo ten: "<<hoten;
    cout<<"\nTuoi: "<<tuoi;
    cout<<"\nID: "<<id;
    }
    void KhachHang::setHoten(string name){
    this->hoten=name;
    }
    void KhachHang::setTuoi(int age){
    this->tuoi=age;
    }
    void KhachHang::setId(string ma){
    this->id=ma;
    }

    #endif


    //file node.h
    #include"KhachHang.h"

    #ifndef NODE_H
    #define NODE_H
    class Node{
    private:
    KhachHang data;
    Node *next;
    public:
    Node();
    Node *taoNode(KhachHang x);
    void setNext(Node *p);
    Node *getNext();
    void xuatNode();
    ~Node();
    };
    Node::Node(){
    this->data.setHoten("trung");
    this->data.setTuoi(0);
    this->data.setId("123");
    this->next=NULL;
    }
    Node *Node::taoNode(KhachHang x){
    Node *temp= new Node;
    if(temp=NULL){
    cout<<"\nKhong du bo nho!";
    }else{
    temp->data=x;
    temp->next=NULL;
    }
    return temp;
    }
    void Node::setNext(Node *p){
    this->next=p;
    }
    Node *Node::getNext(){
    return next;
    }
    void Node::xuatNode(){
    this->data.xuat();
    }
    Node::~Node(){
    delete next;
    }

    #endif


    //file List.h
    #include"KhachHang.h"
    #include"Node.h"

    class List{
    private:
    Node *head;
    Node *tail;
    public:
    List();
    void addLast(Node *p);
    void display();
    ~List();
    };
    List::List():head(NULL), tail(NULL){
    }
    void List::addLast(Node *p){
    if(head=NULL){
    head=p;
    tail=p;
    }else{
    tail->setNext(p);
    tail=p;
    }

    }
    void List::display(){

    for(Node *k=head; k!=NULL; k=k->getNext()){
    k->xuatNode();
    }
    }
    List::~List(){
    delete head;
    delete tail;
    }


    //file main.cpp

    #include<iostream>
    #include<string.h>
    #include"KhachHang.h"
    #include"Node.h"
    #include"List.h"
    using namespace std;
    int main(){
    List *l;
    for(int i=0; i<=2; i++){
    KhachHang x;
    x.nhap();
    Node *p=new Node;
    p->taoNode(x);
    l->addLast(p);
    }

    l->display();
    }
    Attached Thumbnails Attached Thumbnails chayCT.png  
    Attached Files Attached Files

  2. #2
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    656

    C++ Code:
    1. //file KhachHang.h
    2.  
    3. #ifndef KHACHHANG_H
    4. #define KHACHHANG_H
    5. #include<iostream>
    6. #include<string.h>
    7. using namespace std;
    8. class KhachHang{
    9.     private:
    10.         string hoten;
    11.         int tuoi;
    12.         string id;
    13.     public:
    14.         KhachHang();
    15.         void nhap();
    16.         void xuat();
    17.         void setHoten(string);
    18.         void setTuoi(int);
    19.         void setId(string);
    20.        
    21.  
    22. };
    23. KhachHang::KhachHang(){
    24.     this->hoten=" ";
    25.     this->tuoi=0;
    26.     this->id=" ";
    27. }
    28. void KhachHang::nhap(){
    29.     cout<<"\nNhap ho ten :";
    30.     getline(cin, hoten); fflush(stdin);
    31.     cout<<"\nNhap tuoi: ";
    32.     cin>>tuoi; fflush(stdin);
    33.     cout<<"\nNhap id: ";
    34.     getline(cin, id); fflush(stdin);
    35. }
    36. void KhachHang::xuat(){
    37.     cout<<"\nHo ten: "<<hoten;
    38.     cout<<"\nTuoi: "<<tuoi;
    39.     cout<<"\nID: "<<id;
    40. }
    41. void KhachHang::setHoten(string name){
    42.     this->hoten=name;
    43. }
    44. void KhachHang::setTuoi(int age){
    45.     this->tuoi=age;
    46. }
    47. void KhachHang::setId(string ma){
    48.     this->id=ma;
    49. }
    50.  
    51. #endif
    52.  
    53.  
    54. //file node.h
    55. #include"KhachHang.h"
    56.  
    57. #ifndef NODE_H
    58. #define NODE_H
    59. class Node{
    60.     private:
    61.         KhachHang data;
    62.         Node *next;
    63.     public:
    64.         Node();
    65.         Node *taoNode(KhachHang x);
    66.         void setNext(Node *p);
    67.         Node *getNext();
    68.         void xuatNode();
    69.         ~Node();
    70. };
    71. Node::Node(){
    72.     this->data.setHoten("trung");
    73.     this->data.setTuoi(0);
    74.     this->data.setId("123");
    75.     this->next=NULL;
    76. }
    77. Node *Node::taoNode(KhachHang x){
    78.     Node *temp= new Node;
    79.     if(temp=NULL){
    80.         cout<<"\nKhong du bo nho!";
    81.     }else{
    82.         temp->data=x;
    83.         temp->next=NULL;
    84.     }
    85.     return temp;
    86. }
    87. void Node::setNext(Node *p){
    88.     this->next=p;
    89. }
    90. Node *Node::getNext(){
    91.     return next;
    92. }
    93. void Node::xuatNode(){
    94.     this->data.xuat();
    95. }
    96. Node::~Node(){
    97.     delete next;
    98. }
    99.  
    100. #endif
    101.  
    102.  
    103. //file List.h
    104. #include"KhachHang.h"
    105. #include"Node.h"
    106.  
    107. class List{
    108.     private:
    109.         Node *head;
    110.         Node *tail;
    111.     public:
    112.         List();
    113.         void addLast(Node *p);
    114.         void display();
    115.         ~List();
    116. };
    117. List::List():head(NULL), tail(NULL){
    118. }
    119. void List::addLast(Node *p){
    120.     if(head=NULL){
    121.         head=p;
    122.         tail=p;
    123.     }else{
    124.         tail->setNext(p);
    125.         tail=p;
    126.     }
    127.  
    128. }
    129. void List::display(){
    130.    
    131.     for(Node *k=head; k!=NULL; k=k->getNext()){
    132.         k->xuatNode();
    133.     }
    134. }
    135. List::~List(){
    136.     delete head;
    137.     delete tail;
    138. }
    139.  
    140.  
    141. //file main.cpp
    142.  
    143. #include<iostream>
    144. #include<string.h>
    145. #include"KhachHang.h"
    146. #include"Node.h"
    147. #include"List.h"
    148. using namespace std;
    149. int main(){
    150.     List *l;
    151.     for(int i=0; i<=2; i++){
    152.         KhachHang x;
    153.         x.nhap();
    154.         Node *p=new Node;
    155.         p->taoNode(x);
    156.         l->addLast(p);
    157.     }
    158.        
    159.     l->display();
    160. }

    Trong một số cái if(...) bạn dùng phép gán "=" , không phải phép so sánh bằng "==". Trong main l chưa được tạo

  3. #3
    Ngày gia nhập
    02 2016
    Bài viết
    337

    Bài này mà "OOP" cái mốc gì? Nó chỉ là bài tập Struct của C, sửa lại thành Class C++ cho hợp thời trang.
    Muốn gọi là bài tập OOP thì tối thiểu phải có mọt cái thừa kế. Mấy cái như static, vỉtual,... thì còn châm chước đến cuối khóa học. (phân biệt const, copy sâu và cạn, cách nạp tham chiếu chắc thuộc về trình độ trung, không phải nhập môn)
    Thầy/Cô nào ra bài lười biếng quá.

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