Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Программа написана в Dev-C++ 5.7.1., при запуске в Borland C++ ругается на bool и всё, что с ним связано. Что делать? Нужно, чтоб работала именно в Borland C++

87K
03 января 2018 года
JuC
5 / / 03.01.2018
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

void Create();
void Display();
void Append();
void Edit();
void Delete();
bool Exist();

struct goods{char name[16]; float price; int quantity; struct good *next;
struct goods *prev;} Item;
struct goods *head, *tail;

main()
{
char c;
while(1)
{
system("cls");
printf("n *DOUBLE-LINKED LIST*nn");

puts("Press 1 to create list");
puts("Press 2 to display list");
puts("Press 3 to append item");
puts("Press 4 to edit list");
puts("Press 0 to exit");
printf("nSelect a command: ");
c=getch();

switch(c)
{
case '1': Create(); break;
case '2': Display(); break;
case '3': Append(); break;
case '4': Edit(); break;
case '0': Delete(); return 0;
default:
printf("nnIrrelevant command!n");
system("pause");
}
}
}


void Create()
{
system("cls");
if (Exist())
{
printf("The list has already been created!n");
system("pause");
return;
}
struct goods *cur, *p;
printf("Enter goods information:nn");
p=NULL;
do
{
cur=(goods *)malloc(sizeof(goods));
printf("Item: ");
scanf("%s",cur->name);
printf("Price: ");
scanf("%f", &cur->price);
printf("Quantity: ");
scanf("%d", &cur->quantity);
cur->prev=p;
if (p !=NULL) p->next=cur;

else head=cur;
p=cur;
printf("--------------------n");
printf("Press Esc to quit...nn");
}
while (getch() != 27);
tail=cur;
tail->next=NULL;
printf("nDone!n");
system("pause");
}


void Display()
{
if (!Exist())
{
printf("nnThe list has not been created!n");
system("pause");
return;
}
int count=0;
struct goods *cur;
system("cls");
printf("n *** GOODS LIST ***nn");
printf("---------------------------------------------n");
printf("%-3s%-16s%-16s%-16sn", "#", "Item:", "Price:", "Quantity:");
printf("---------------------------------------------n");
cur=head;

while (cur !=NULL)
{
printf("%-3d%-16s%-16.2f%-16dn", ++count, cur->name, cur->price, cur->quantity);
cur=cur->next;
}
printf("---------------------------------------------n");
system("pause");
}

void Append()
{
if (!Exist())
{
printf("nnThe list has not been created!n");
system("pause");
return;
}
struct goods *cur;
system("cls");
printf("n *** ADDING NEW ITEM ***nn");
cur=(goods *)malloc(sizeof(goods));
printf("Item: ");
scanf("%s",cur->name);
printf("Price: ");
scanf("%f", &cur->price);
printf("Quantity: ");
scanf("%d", &cur->quantity);
cur->prev=tail;
cur->next=NULL;
tail->next=cur;
tail=cur;
printf("nDone!n");
system("pause");
}


void Edit()
{
if (!Exist())
{
printf("nnThe list has not been created!n");
system("pause");
return;
}
int count=0;
float limit;
struct goods *cur, *temp;
system("cls");
cur=head;
printf("n *** EDIT MODE ***nn");
printf("Enter price: ");
scanf("%f", &limit);

while (cur !=NULL)
{
if (cur->price>limit)
{
count++;
if (cur == head)
{
if (cur->next !=NULL)
{
head=cur->next;
head->prev=NULL;
free(cur);
cur=head;
}
else
{
free(cur);
head=tail=cur=NULL;
printf("The list has been deleted!n");
}
}
else if (cur == tail)
{
tail=cur->prev;
tail->next=NULL;
free(cur);
cur=tail;
}
else
{
cur->next->prev=cur->prev;
cur->prev->next=cur->next;
temp=cur;
cur=cur->next;
free(temp);
}
}
else cur=cur->next;
}
printf("%d item(s) removed.n",count);
system("pause");
}


void Delete()
{
struct goods *cur, *temp;
cur=head;

while (cur !=NULL)
{
temp=cur;
cur=cur->next;
free(temp);
}
head=tail=NULL;
}


bool Exist()
{
if (head !=NULL) return true;
else return false;
}
11K
05 января 2018 года
xAtom
65 / / 17.01.2011
Вставь этот код вверх файла реализации
 
Код:
#ifndef __cplusplus
typedef enum {false = 0, true = 1} bool;
#endif
87K
05 января 2018 года
JuC
5 / / 03.01.2018
Вставила
но всё равно ошибки
260
06 января 2018 года
Ramon
1.1K / / 16.08.2003
Цитата: JuC
Вставила
но всё равно ошибки

Вам кратко или подробно (с целью осознания)?

1.8K
06 января 2018 года
Kuzya
184 / / 19.03.2008
Может после списка инклюдов добавить эту строку
using namespace std;
87K
06 января 2018 года
JuC
5 / / 03.01.2018
Цитата: Ramon
Цитата: JuC
Вставила
но всё равно ошибки

Вам кратко или подробно (с целью осознания)?

Хотелось бы подробно

87K
06 января 2018 года
JuC
5 / / 03.01.2018
Цитата: Kuzya
Может после списка инклюдов добавить эту строку
using namespace std;

на эту строку тоже ругается

327
06 января 2018 года
UserNet2008
748 / / 03.04.2010
Код:
//bool Exist();

struct goods{char name[16]; float price; int quantity;
struct goods *next;
struct goods *prev;} Item;
struct goods *head, *tail;
//struct goods *next; //здесь вместо good надо goods

//заменить
void Create()
//if (Exist())
//на
if (head !=NULL)
//заменить в каждой процедуре
void Display()
void Append()
void Edit()
//if (!Exist())
//на
if (head ==NULL)

/*
bool Exist()
{
if (head !=NULL) return true;
else return false;
}
*/
260
06 января 2018 года
Ramon
1.1K / / 16.08.2003
Цитата: JuC
Хотелось бы подробно

1. Тип bool наличиствует в C++ (в качестве встроенного типа) и в стандарте C99 (в виде _Bool и заголовочного файла stdbool.h)
2. Turbo C/Borland C не C99 от слова совсем, в лучшем случае C90, в лучшем
3. Типы используются после их определения как и многое другое (это к вопросу о применении "решения" тов. xAtom)

PS: Заголовочного файл conio.h не является частью никакого стандарта

327
06 января 2018 года
UserNet2008
748 / / 03.04.2010
conio.h - это для DOS
Я видел screenshot выше подумал, а это не Borland C++ для DOS 1992-1995 да нет чур-меня ведь 1/5 21 века
Тогда Borland C++ имел силу сейчас не знаю, забил на Borland большой осиновый кол жалко серебреных пуль не нашлось(типа шутка)
260
06 января 2018 года
Ramon
1.1K / / 16.08.2003
Цитата: UserNet2008
conio.h - это для DOS
Я видел screenshot выше подумал, а это не Borland C++ для DOS 1992-1995 да нет чур-меня ведь 1/5 21 века
Тогда Borland C++ имел силу сейчас не знаю, забил на Borland большой осиновый кол жалко серебреных пуль не нашлось(типа шутка)

Включать этот заголовочный файл имеет смысла чуть больше, чем... ну вы поняли.
Это одурь которой до сих пор учат бараны в своих радостных книжечках/методичках по C.
Этот заголовочный файл не был стандартом никогда и нигде и тем более он не требуется для написания большинства тн лабораторных работ, зато как и большинство дебильных практик оседает так глубоко насколько это возможно.

327
06 января 2018 года
UserNet2008
748 / / 03.04.2010
Ramon
Как-бы не в обиду напечатано, я с Вами не согласен гуглёшь даёт ссылки на conio.h(значит жив), да не есть стандарт.
И что с этого , но есть документация , у меня куча своих заголовочных файлов , где заточено под копейку.
Как говориться на войне все средства хороши для победы, а для консоли conio.h за затылок.
260
06 января 2018 года
Ramon
1.1K / / 16.08.2003
Цитата: UserNet2008
Ramon
Как-бы не в обиду напечатано, я с Вами не согласен гуглёшь даёт ссылки на conio.h(значит жив), да не есть стандарт.
И что с этого , но есть документация , у меня куча своих заголовочных файлов , где заточено под копейку.
Как говориться на войне все средства хороши для победы, а для консоли conio.h за затылок.

Пара вопросов из зала:
1. Какая ф-ция из исходника выше входит в conio.h?
2. А скомпилируется ли оно кроме как двумя с половиной компиляторами? Это же просто небольшой пример на C с использованием только стандартной библиотеки...
3. Является ли это изучением именно языка C и структур данных в нем, а не какой то тарабарщины и конкретных соплей конкретного компилятора?

PS: Это как носиться сломя голову и втыкать всюду где не попадя windows.h/unistd.h вне зависимости от того надо вам это или нет.
PPS: Для победы голова нужна в первую очередь.

327
06 января 2018 года
UserNet2008
748 / / 03.04.2010
 
Код:
c=getch();
ссылка
специально скачал Dev-C++

если есть выбор Dev-C++ or MVC++ 6.0 мой выбор за MVC++ 6.0
260
06 января 2018 года
Ramon
1.1K / / 16.08.2003
Цитата: UserNet2008
 
Код:
c=getch();
ссылка

Прекрасно, замечательная ф-ция.
В данном случае функционал её так же прелестен, ловить кнопочку Esc.
Ах да, без эха, буфера, смс и регистрации.

327
06 января 2018 года
UserNet2008
748 / / 03.04.2010
По ходу не только Esc
Код:
c=getch();

switch(c)
{
case '1': Create(); break;
case '2': Display(); break;
case '3': Append(); break;
case '4': Edit(); break;
case '0': Delete(); return 0;
default:
printf("nnIrrelevant command!n");
system("pause");
}
Ramon Вы завелись на пустом месте, мне это всё по барабану, как и автору темы
С рождеством и с настающим старым новым годом!!!
УРАааааааа!!!!
260
06 января 2018 года
Ramon
1.1K / / 16.08.2003
Цитата: UserNet2008
По ходу не только Esc
Код:
c=getch();

switch(c)
{
case '1': Create(); break;
case '2': Display(); break;
case '3': Append(); break;
case '4': Edit(); break;
case '0': Delete(); return 0;
default:
printf("nnIrrelevant command!n");
system("pause");
}
Ramon Вы завелись на пустом месте, мне это всё по барабану, как и автору темы
С рождеством и с настающим старым новым годом!!!
УРАааааааа!!!!

наму амида буцу

87K
08 января 2018 года
JuC
5 / / 03.01.2018
Цитата: UserNet2008
Код:
//bool Exist();

struct goods{char name[16]; float price; int quantity;
struct goods *next;
struct goods *prev;} Item;
struct goods *head, *tail;
//struct goods *next; //здесь вместо good надо goods

//заменить
void Create()
//if (Exist())
//на
if (head !=NULL)
//заменить в каждой процедуре
void Display()
void Append()
void Edit()
//if (!Exist())
//на
if (head ==NULL)

/*
bool Exist()
{
if (head !=NULL) return true;
else return false;
}
*/

Действительно, здесь снесла букву в goods случайно, в исходнике всё было. Ваши советы помогли, всё работает как было в Dev-C++ 5.7.1. Большое спасибо, товарищ UserNet2008! Всех с праздниками и удачи! The END :-)

260
08 января 2018 года
Ramon
1.1K / / 16.08.2003
Иными словами требовалось кратко/чтоб работало.
Впрочем ожидать иного было бы ошибкой.

---
Улыбаемся и машем!
327
08 января 2018 года
UserNet2008
748 / / 03.04.2010
Цитата: Ramon
Иными словами требовалось кратко/чтоб работало.
Впрочем ожидать иного было бы ошибкой.

---
Улыбаемся и машем!

Неугомонный Вы наш
Улыбаемся и машем! - Вы просто гений на codenet.ru извените Сер , что смог Вам перечить.
На Куя Вы дали этот ответ
Ясно напечатано The END :-) -КОНЕЦ:-)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог