1 / 1 / 0
Регистрация: 09.09.2013
Сообщений: 41
|
|
1 | |
Подскажите, где ошибки в программе27.10.2013, 21:40. Показов 573. Ответов 6
Метки нет Все метки)
(
#include <conio.h>//підключеннябібліотек
#include <stdio.h> #include <string.h> #include <stdlib.h> class Och//класочередь { private://закриті полякласу struct Node//структура вузол { int d;//поле дані Node *p;//покажчик на кінцевийелемент }; Node *ft;//перший елемент очереди Node *last;//останнійелемент очереди int count;//полелічильник void add(Node **pend, int d) { Node *pv = new Node; pv->d = d; pv->p = 0; (*pend)->p = pv; *pend = pv; } public://поля класу Och()//конструктор по замовчуванню { ft = last = 0;//ініціалізаціязмінних count = 0;//ініціалізаціязміннихлічильник на нуль } Och(int *s)//з параметрами { count = 0;//показчик на нуль встановлюємо Node *p; add(&p,*s);//додаэмоелемент } Och(const Och &sender)//конструкторкопіювання { count = 0;//показчик на 0 Node *p; Node *it = sender.ft; while(it)//покиіт правда тобто не дорівнює нулю { add(&it->p,it->d);//додаємоелемент } } Och * first(int d) { Node *pv = new Node; pv->d = d; pv->p = 0; return pv; } Node &operator + (Node **pend,int pv)//оператордодаваняелементу { Node *pv = new Node; //показник pv->d = d; //двигаємопопередуелемент pv->p = 0; //а новийставимо на першу позицію (*pend)->p = pv; *pend = pv; } Node* operator -(Node **pbeg)//видалитиелемент { int temp = (*pbeg)->d; //елементзаписуемоякийпотрібенвийти Node *pv = *pbeg; //записуемо той який стане останнімтобто першим якийвийде *pbeg = (*pbeg)->p; delete pv; //видаляємоелементякийвийшов } bool operator()(const Och &sender)//оператор перевірки на порожністьчерги { Node *it1 = ft;//показчик на 1 елементоб,єкта if(it1->d != NULL) return true;//якщоякщочерганепуста то повернення 0 return false;//якщо пуста то повернення 1 } void Print()//вивідчерги на екран { Node *it = ft;//поставити на 1 елемент while(it)//покиит правда { printf("%c", it->d);//виводемосимволи з черги it = it->p;//рухаємося до наступного } printf("\n");//перенос строки } }; void main() { Och *pbeg; pbeg->first(1); //створеннячерги Och *pend = pbeg; //початок черги for (int i = 2; i<6; i++) // pend +(&pend, i); //додаванняелементу в чергу while (pbeg) printf("%d",-(&pbeg)); //видаленняелемента в з черги _getch(); } Буду очень благодарна!!! Добавлено через 52 минуты Уже такой код: #include <conio.h>//підключеннябібліотек #include <stdio.h> #include <string.h> #include <stdlib.h> class Och//класочередь { private://закриті полякласу struct Node//структура вузол { int d;//поле дані Node *p;//покажчик на кінцевийелемент }; Node *ft;//перший елемент очереди Node *last;//останнійелемент очереди int count;//полелічильник void add(Node **pend, int d) { Node *pv = new Node; pv->d = d; pv->p = 0; (*pend)->p = pv; *pend = pv; } public://поля класу Och()//конструктор по замовчуванню { ft = last = 0;//ініціалізаціязмінних count = 0;//ініціалізаціязміннихлічильник на нуль } Och(int *s)//з параметрами { count = 0;//показчик на нуль встановлюємо Node *p; add(&p,*s);//додаэмоелемент } Och(const Och &sender)//конструкторкопіювання { count = 0;//показчик на 0 Node *p; Node *it = sender.ft; while(it)//покиіт правда тобто не дорівнює нулю { add(&it->p,it->d);//додаємоелемент } } Och * first(int d) { Node *pv = new Node; pv->d = d; pv->p = 0; return pv; } Node &operator+ (Node **pend,int pd)//оператордодаваняелементу { Node *pv = new Node; //показник pv->d = d; //двигаємопопередуелемент pv->p = 0; //а новийставимо на першу позицію (*pend)->p = pv; *pend = pv; } Node* operator -(Node **pbeg)//видалитиелемент { int temp = (*pbeg)->d; //елементзаписуемоякийпотрібенвийти Node *pv = *pbeg; //записуемо той який стане останнімтобто першим якийвийде *pbeg = (*pbeg)->p; delete pv; //видаляємоелементякийвийшов } bool operator()(const Och &sender)//оператор перевірки на порожністьчерги { Node *it1 = ft;//показчик на 1 елементоб,єкта if(it1->d != NULL) return true;//якщоякщочерганепуста то повернення 0 return false;//якщо пуста то повернення 1 } void Print()//вивідчерги на екран { Node *it = ft;//поставити на 1 елемент while(it)//покиит правда { printf("%c", it->d);//виводемосимволи з черги it = it->p;//рухаємося до наступного } printf("\n");//перенос строки } }; void main() { Och *pbeg; pbeg->first(1); //створеннячерги Och *pend = pbeg; //початок черги for (int i = 2; i<6; i++) // pend +(&pend, i); //додаванняелементу в чергу while (pbeg) printf("%d",-(&pbeg)); //видаленняелемента в з черги _getch(); }
0
|
|
27.10.2013, 21:40 | |
Ответы с готовыми решениями:
6
Где ошибки в программе? Чего не хватает? Подскажите, где ошибка в программе Подскажите кто может и найдите ошибки в программе)) Подскажите где ошибки.. |
1 / 1 / 0
Регистрация: 09.09.2013
Сообщений: 41
|
|
27.10.2013, 21:51 [ТС] | 3 |
error C2804: бинарный 'operator +' имеет слишком много параметров
1>c:\documents and settings\userxp\рабочий стол\новая папка (2)\as\as\2.cpp(57) : error C2333: Och::operator +: ошибка в объявлении функции; пропуск основного текста функции 1>c:\documents and settings\userxp\рабочий стол\новая папка (2)\as\as\2.cpp(55) : error C2440: return: невозможно преобразовать 'Och::Node *' в 'Och *' 1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции 1>c:\documents and settings\userxp\рабочий стол\новая папка (2)\as\as\2.cpp(98) : warning C4552: +: оператор не имеет результата; требуется оператор с побочным действием 1>c:\documents and settings\userxp\рабочий стол\новая папка (2)\as\as\2.cpp(100) : error C2171: -: недопустимо для операндов типа "Och **" Добавлено через 5 минут а ты нацист чтоль?
0
|
1 / 1 / 0
Регистрация: 09.09.2013
Сообщений: 41
|
|
27.10.2013, 22:01 [ТС] | 5 |
как их исправить
0
|
Заблокирован
|
|
27.10.2013, 22:10 | 6 |
Ты лучше скажи что тебе ваще сделать надо, в этом твоём куске кода всё не так
![]() printf("%d",-(&pbeg)); - тут минус убери Node &operator+ (Node **pend,int pd)//оператордодаваняелементу { Node *pv = new Node; //показник pv->d = d; //двигаємопопередуелемент pv->p = 0; //а новийставимо на першу позицію (*pend)->p = pv; *pend = pv; } тут ваше надо передавать в функцию указатель на самого себя ианче как ты представляешь себе использование переопределённого оператора.... ДА много тут ошибок....
0
|
1 / 1 / 0
Регистрация: 09.09.2013
Сообщений: 41
|
|
27.10.2013, 22:19 [ТС] | 7 |
Нужно создать класс- абстрактного типа данных. Определить и реализовать операции над данными этого класса. Написать прогу для полного тестирования класса.
Класс должен быть как Очередь. В нем операции + это добавить элемент; - убрать элемент; bool() - проверка пуста ли очередь.
0
|
27.10.2013, 22:19 | |
27.10.2013, 22:19 | |
Помогаю со студенческими работами здесь
7
Очень нужен совет где найти ошибки в программе структуры подскажите где ошибки структуры (подскажите где ошибки) Подскажите где в программе может быть ошибка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |