Форум программистов, компьютерный форум CyberForum.ru

проверить класс - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу, вычисляющую сумму и среднее арифметическое последовательности положительных чисел http://www.cyberforum.ru/cpp-beginners/thread1094367.html
Написать программу, вычисляющую сумму и среднее арифметическое последовательности положительных чисел, которые вводятся с клавиатуры. Через цикл While!
C++ После удаления элемента не выводится список Здравствуйте! Подскажите пожалуйста ответ на такой вопрос: Почему после того как я удаляю первый элемент списка, то больше не могу вывести список на экран? При удалении 2 и далее элементов список успешно выводится. Вот код: int del(int num, TEda * Start) { TEda *pr = 0, *curr = Start; for(int i = 1; i<num && curr; ++i) { pr = curr; curr = curr->next; } if(!curr) http://www.cyberforum.ru/cpp-beginners/thread1094366.html
Это на языке С++ , а мне нужно на с. Переведите пожалуйста очень надо! C++
Код C++ #include <iostream> #include <conio.h> #include <locale.h> #include <bitset> using namespace std; void printArr(int *a, int &n)
C++ Разбор алгоритма программы
Здравствуйте, у меня есть программа, вычисляющая факториал заданного числа. #include "stdafx.h" #include <iostream> using namespace std; int a,i,n,j,ost=0,num=1,c;
C++ нужна половина Ёлки( http://www.cyberforum.ru/cpp-beginners/thread1094333.html
#include "stdafx.h" #include<iostream> using namespace std; int _tmain(int argc, _TCHAR* argv) { int n; cin>>n; for(int level=1; level<=n;level++){ for(int row=1;row<=level+1;row++){
C++ Разбор алгоритма программы Здравствуйте, у меня есть программа, вычисляющая факториал заданного числа. #include "stdafx.h" #include <iostream> using namespace std; int a,i,n,j,ost=0,num=1,c; подробнее

Показать сообщение отдельно
Hrollo
34 / 34 / 6
Регистрация: 05.11.2013
Сообщений: 147

проверить класс - C++

11.02.2014, 18:21. Просмотров 251. Ответов 4
Метки (Все метки)

Всем привет. Проверьте пожайлуста класс и если нужно то посоветуйте что в него нужно добавить.
Вот его условие:Создать динамический класс каталог на основе односвязного списка, где каждый элемент списка является структурой Book. Предусмотреть следующие варианты: добавление книги в каталог, удаление книги из каталога,поиск книги по каталогу, печать всего списка.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#pragma once
 
#ifndef _CATALOG_H_
#define _CATALOG_H_
 
#include <iostream>
#include <string>
 
using std::string;
 
struct Book
{
    string autor;
    string bookName;
    int year;
};
 
class Catalog
{
private:
    struct Node
    {
        Book book;
        Node *next;
    };
    Node *begin;
    Node *end;
public:
    Catalog();
    void add_catalog(const Book &book);
    void print()const;
    void search(string);
    bool del_book(const Book &book);
    bool del_book(const string &s);
    bool del_book(int y);
    bool isempty()const;
    ~Catalog();
};
 
#endif
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#include "Catalog.h"
 
Catalog::Catalog()
{
    begin=end=NULL;
}
void Catalog::add_catalog(const Book &book)
{
    Node *add = new Node;
    add->book = book;
    add->next = NULL;
    if(begin==NULL)
        begin = add;
    else
        end->next = add;
    end = add;
}
void Catalog::print()const
{
    if(begin==0)
        std::cout<<"Catalog is empty"<<std::endl;
    Node *ptr = begin;
    while(ptr)
    {
        std::cout<<ptr->book.autor<<" "<<ptr->book.bookName<<" "<<ptr->book.year<<std::endl;
        ptr=ptr->next;
    }
}
void Catalog::search(string sear)
{
    int count=0;
    Node *ptr=begin;
    while(ptr)
    {
        if(ptr->book.autor == sear)
        {
            std::cout<<ptr->book.autor<<"\n"<<ptr->book.bookName<<"\n"<<ptr->book.year<<std::endl;
            count++;
            ptr=ptr->next;
            continue;
        }
        ptr=ptr->next;
    }
    if(count==0)
        std::cout<<"Catalog dont autor "<<sear<<std::endl;
}
bool Catalog::del_book(const Book &b)
{
    if(begin==NULL)
    {
        std::cout<<"Catalog is empty!"<<std::endl;
        return true;
    }
    Node *temp = begin;
    if((*temp).book.autor == b.autor && temp->book.bookName == b.bookName && temp->book.year == b.year)
    {
        begin=temp->next;
        delete temp;
        return false;
    }
    Node *ptr=temp->next;
    while(ptr)
    {
        if(ptr->book.autor == b.autor && ptr->book.bookName == b.bookName && ptr->book.year == b.year)
        {
            temp->next = ptr->next;
            delete ptr;
            return false;
        }
        temp=ptr;
        ptr = ptr->next;
    }
    std::cout<<"In catalog don't book "<<b.autor<<" "<<b.bookName<<" "<<b.year<<std::endl;
    return true;
}
bool Catalog::isempty()const
{
    if(begin==NULL)
        return false;
    else
        return true;
}
bool Catalog::del_book(int y)
{
    if(begin==NULL)
    {
        std::cout<<"Catalog is empty"<<std::endl;
        return false;
    }
    Node *temp = begin;
    if(temp->book.year==y)
    {
        begin=temp->next;
        delete temp;
        return true;
    }
    Node *ptr = temp->next;
    while(ptr)
    {
        if(ptr->book.year==y)
        {
            temp->next=ptr->next;
            delete ptr;
            return true;
        }
        temp=ptr;
        ptr=ptr->next;
    }
    std::cout<<"In catalog don't book "<<y<<" year"<<std::endl;
    return false;
}
bool Catalog::del_book(const string &s)
{
    if(begin==NULL)
    {
        std::cout<<"Catalog is empty!"<<std::endl;
        return false;
    }
    Node *temp=begin;
    if(temp->book.autor==s || temp->book.bookName==s)
    {
        begin=temp->next;
        delete temp;
        return true;
    }
    Node *ptr=temp->next;
    while(ptr)
    {
        if(ptr->book.autor==s || ptr->book.bookName==s)
        {
            temp->next=ptr->next;
            delete ptr;
            return true;
        }
        temp=ptr;
        ptr=ptr->next;
    }
    return false;
}
Catalog::~Catalog()
{
    if(begin==NULL)
        return;
    Node *temp=begin;
    Node *t;
    while(temp)
    {
        t=temp;
        temp=temp->next;
        delete t;
    }
    begin=NULL;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru