Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
13 / 18 / 6
Регистрация: 02.05.2018
Сообщений: 545
1

Set не работает, и вывод списка дублируется

17.03.2019, 20:51. Показов 1474. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
базовый класс Banner - здесь все норм
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
class Banner
{
protected:
    string bannerName;  // name of banner
    int numberShow;          // number shows
    int maksNumberShow;   // max number show banner
    int minNumberShow;   //  min number show of banner
    Date dateFinishContract;  // date finish of contract
    bool statusBanner;    // status of banner(active/ no active)
    Date dateStartContract;   // date start contract
    Registration bannerRegistration;  // registration show banner
    Firm firmName;
    
    
 
public:
    Banner() : bannerName("IphoneX 64gb"), numberShow(0), maksNumberShow(1), minNumberShow(1), statusBanner(true) {/*cout << "Здесь сработал конструктор по умолчанию для Banner :)" << endl;*/} // конструктор по умолчанию
    Banner(string _bannerName, int _numbersShow, int _maksNumberShow, int _minNumberShow, Date _dateFinishContract, bool _statusBanner, Date _dateStartContract, Registration _bannerAccounting, Firm _firmName) : bannerName(_bannerName), numberShow(_numbersShow), maksNumberShow(_maksNumberShow), minNumberShow(_minNumberShow), dateFinishContract(_dateFinishContract), statusBanner(_statusBanner), dateStartContract(_dateStartContract), bannerRegistration(_bannerAccounting), firmName(_firmName) {/*cout << "Здесь сработал конструктор c параметрами для Banner :)" << endl;*/} // конструктор с параметрами
    Banner(const Banner& ptr) : bannerName(ptr.bannerName), numberShow(ptr.numberShow), maksNumberShow(ptr.maksNumberShow), minNumberShow(ptr.minNumberShow), dateFinishContract(ptr.dateFinishContract), statusBanner(ptr.statusBanner), dateStartContract(ptr.dateStartContract), bannerRegistration(ptr.bannerRegistration), firmName(ptr.firmName) {/*cout << "Здесь сработал конструктор копирования для Banner :)" << endl;*/}  // конструктор копиравния
    ~Banner()  // деструктор
    {
//      cout << "Здесь сработал деструктор для Banner " << endl;
//      firmName.~basic_string();
//      bannerName.~basic_string();
    }
    void display(); // show data of banner
    bool setBannerName(); // unput name of banner
    bool setNumberShow(int n);
    bool setMaksNumberShow(); 
    bool setMinNumberShow();
    bool setStatus(bool _status); // change status of banner
    Date getDateStartContract() const;
    Date getDateFinishContract() const;
    Registration getBannerRegistration() const;
    Firm getFirmName() const;
    string getBannerName() const;
    int getNumberShow() const;
    int getMaksNumberShow() const;
    int getMinNumberShow() const;
    bool getStatusBanner() const;
 
};
класс Manager который хранит экземпляры класса Banner - здесь вроде тоже все норм
C++
1
2
3
4
5
6
7
8
9
10
class Manager
{
private:
    MyList<VideoBanner> listImg;  // список баннеров-видео
    MyList<ImgBanner> listVideo;   // список баннеров-картинок
    MyList<Banner> list;
public:
    void setBanner(Banner data);
    void show();
};
В этой функции начинаются проблемы: 1) set для "date" не работаю почему-то. 2) Вывод списка дублируется
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
#include "Manager.h"
 
void inputData(Banner &obj, Manager &Gournal)
{
    string str = "";  
    // input data of banner
    
    obj.setBannerName();/*
    obj.getFirmName().setNameFirm();
    obj.setMaksNumberShow();
    obj.setMinNumberShow();
    obj.setStatus(true);
    // date start contract
    cout << "Input start of contract" << endl;
    obj.getDateStartContract().setDay();
    */
    obj.getDateStartContract().setMonth();
    /* 
    obj.getDateStartContract().setYear();
    obj.getDateStartContract().setHour();
    obj.getDateStartContract().setMinute();
    // date finish contract
    cout << "Input finish of contract" << endl;
    obj.getDateFinishContract().setDay();
    obj.getDateFinishContract().setMonth();
    obj.getDateFinishContract().setYear();
    obj.getDateFinishContract().setHour();
    obj.getDateFinishContract().setMinute();
    // add data into list
    */
    Gournal.setBanner(obj);
 
    cout << "Введите 0 чтобы выйти, любой другой символ чтобы добавить еще 1 объект: ";
    cin >> str;
 
    if(str != "0")
    {
        inputData(obj,Gournal);
    }
 
    Gournal.show(); // здесь творится bullshit
}
 
void menu()
{
    Manager Gournal; // обявляем объект класса Manager который будет хранить объекты класса Banner
    Banner obj;
    inputData(obj,Gournal); // заполнение вручную
}
По 2 пункту проблемы: MyList - двусвязный список. В нем есть ф-я для вывода всех элементов. В Manager есть ф-я вывода. Может когда я вызываю Gournal.show - то я может как то 2 раза вызываю вывод.

класс Date
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
#include "Date.h"
 
bool Date::setYear()
{
    short int _year = 0;
 
    do
    {
        cout << "Input year(from 2019г) : ";
        cin >> _year;
    }while(_year < 2019 || _year >= 9999);
 
    year = _year;
    return true;
}
 
bool Date::setMonth()
{
    short int _month = 0;
 
    do
    {
        cout << "Input month(in numbers) : ";
        cin >> _month;
    }while(_month < 1 || _month > 12);
 
    month = _month;
    return true;
}
 
bool Date::setDay()
{
    short int _day = 0;
 
    do
    {
        cout << "Input day(in numbers): ";
        cin >> _day;
    }while(_day < 1 || _day > 31);
 
    day = _day;
    return true;
}
 
bool Date::setHour()
{
    short int _hour = 0;
 
    do
    {
        cout << "Input hour(in numbers): ";
        cin >> _hour;
    }while(_hour < 0 || _hour > 24);
 
    hour = _hour;
    return true;
}
 
bool Date::setMinute()
{
    short int _minute = 0;
 
    do
    {
        cout << "Input minute(in numbers): ";
        cin >> _minute;
    }while(_minute < 0 || _minute > 59);
 
    minute = _minute;
    return true;
}
Добавлено через 32 минуты
UPUPUPUPUPUPUPUPUPUP

Добавлено через 24 минуты
upupupupupupupupupupupup

Добавлено через 33 минуты
upupupupupupupupupupupupupupup
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.03.2019, 20:51
Ответы с готовыми решениями:

При загрузке списка из файла дублируется последняя строка
Здравствуйте! Такая проблема: Выгружаю список в файл. С процедурой выгрузки проблем нет. Всё...

Дублируется вывод
Как избавиться от дублирования ответов?

Дублируется вывод буквы
Почему выводится буква дважды? Вот код и вывод консоли: #include &lt;stdio.h&gt; int main(void) { ...

Дублируется вывод foreach
Есть функция: function findPopularDirection() { global $geo; $currency =...

4
 Аватар для zayats80888
6340 / 3511 / 1427
Регистрация: 07.02.2019
Сообщений: 8,977
17.03.2019, 21:38 2
Цитата Сообщение от cherc Посмотреть сообщение
set для "date" не работаю почему-то.
ну так они(функции стр.32-33) возвращают копию
0
13 / 18 / 6
Регистрация: 02.05.2018
Сообщений: 545
17.03.2019, 21:58  [ТС] 3
zayats80888, все равно не догоняю
0
 Аватар для zayats80888
6340 / 3511 / 1427
Регистрация: 07.02.2019
Сообщений: 8,977
17.03.2019, 22:14 4
Лучший ответ Сообщение было отмечено cherc как решение

Решение

Цитата Сообщение от cherc Посмотреть сообщение
zayats80888, все равно не догоняю
оставьте их как геттеры и добавте вот эти сеттеры
C++
1
2
3
4
//...
Date& getDateStartContract(){return dateStartContract;}
Date& getDateFinishContract(){return dateFinishContract;}
//...
1
13 / 18 / 6
Регистрация: 02.05.2018
Сообщений: 545
17.03.2019, 22:34  [ТС] 5
zayats80888, не знаете почему вывод списка дублируется?
0
17.03.2019, 22:34
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.03.2019, 22:34
Помогаю со студенческими работами здесь

Дублируется вывод информация из потока
В общем, каждый поток получает информацию со странички с разным id, т.е потоки синхронно работают...

Не работает вывод заполненного односвязного списка
Пробую решать задачки по Дейтелю, и вот застрял на этой: Написать программу, которая вставляет 25...

Вывод элементов списка в Memo не работает
template&lt;typename T&gt; void queue&lt;T&gt;::show_qF(TStrings *s) { Node&lt;T&gt; *p; p =...

Кнопка JButton работает, но не дублируется нажатием клавиши Enter. Найти ошибку
Здравствуйте! Есть программа: import java.awt.Color; import java.awt.Dimension; import...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Элементы алгоритмизации
hw_wired 28.01.2025
Основы алгоритмизации В современном мире алгоритмы играют фундаментальную роль в развитии информационных технологий и программирования. Понимание основ алгоритмизации является ключевым элементом в. . .
Человек и информация
hw_wired 28.01.2025
Введение: роль информации в познании мира В современном мире информация играет фундаментальную роль в процессе познания окружающей действительности. Она представляет собой совокупность сведений об. . .
Компьютер и информация
hw_wired 28.01.2025
Эволюция вычислительных машин История развития вычислительной техники начинается задолго до появления первых электронных устройств. Человечество всегда стремилось упростить процесс вычислений и. . .
Информационные технологии
hw_wired 28.01.2025
Введение в современные технологии работы с информацией В современном мире информационные технологии стали неотъемлемой частью практически всех сфер человеческой деятельности. Они существенно. . .
Информация вокруг нас
hw_wired 28.01.2025
Основные понятия информации В современном мире понятие информации является фундаментальным и охватывает практически все сферы человеческой деятельности. Информация представляет собой совокупность. . .
Компьютер для начинающих
hw_wired 28.01.2025
Введение в мир компьютерных технологий В современном мире информация стала одним из важнейших ресурсов человечества, определяющим развитие общества и технологий. Наша жизнь неразрывно связана с. . .
[golang] 189. Rotate Array
alhaos 28.01.2025
Повороты рукоятки, целочисленный слайс нужно сдвинуть на целое положительное число. Мне очень нравится решение на GO / / https:/ / leetcode. com/ studyplan/ top-interview-150/ package topInterview . . .
КуМир: решение задач на матрицы
bytestream 28.01.2025
КуМир представляет собой среду для обучения программированию, которая включает в себя мощные инструменты для работы с матрицами. Матрица в программировании - это двумерный массив, состоящий из. . .
КуМир: решение задач на строки
bytestream 28.01.2025
В системе программирования КуМир работа со строковыми данными является одним из важнейших аспектов создания программ. Строки представляют собой последовательности символов, заключенные в кавычки,. . .
КуМир: решение геометрических задач
bytestream 28.01.2025
Программирование геометрических задач в среде КуМир становится всё более актуальным в обучении школьников и студентов. КуМир — это разработанная в России обучающая программная среда, предназначенная. . .
КуМир, исполнитель Водолей: Задачи и решения
bytestream 28.01.2025
КуМир — это образовательная среда для обучения программированию. Она предлагает пользователям разнообразные инструменты для разработки и отладки программ, что особенно ценно для студентов и. . .
КуМир, исполнитель Чертежник: Решение задач
bytestream 28.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения основам программирования и алгоритмизации. Исполнитель Чертежник работает на координатной плоскости, где может. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru