Crus Опубликовано 4 декабря, 2008 Опубликовано 4 декабря, 2008 У меня такая беда. Причин две, собсно или я идиот || компелятор тупит (или настроен криво).Юзаю борланд С++ билдер 6.0 Нужно написать прогу, в которой есть БД организованная списком.В прилагаемом далее коде мои начинания. В чём собсна моя проблема...Не могу инициализировать первый эелемент списка, компелятор ругается.Пишет вот чего:Multiple declaration for 'Header'Earlier declaration of 'Header' Однако, если выделенный фрагмент запихнуть в main - инициализируется нормально, только возникает другая проблема.В функцию add в таком случае надо передать указатель на следующий элемент списка, но простым параметром он не передаётся - ругается компелятор де я туплю? //--------------------------------------------------------------------------- #include <iostream.h> #include <conio.h> #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused int id=0; struct TRegTable { TRegTable *pNext; int ID; char *Name; char *Surname; bool sex; // false - female, true - male;) unsigned short age; char *Tel; }; # TRegTable Header; # Header.pNext = new TRegTable; # Header.ID = id; # Header.Name = "Maxim"; # Header.Surname = "Ikonnikov"; # Header.sex = true; # Header.age = 17; # Header.Tel = "7913410"; void print(int number); int add(); void del(); int main() { int n; cout << "Welcome to your little database!\n"; cout << "\nPush 'a' to add record to your database\n"; cout << "Push 'p' to print your database\nPush 'q' to close your database\n"; switch(getch()) // getch() - <conio.h> { case 'a' : cout<<"\nThis function adds records to your db\n"; add(); break; //case 'p' : cout<<"\nThis function print all your db\n"; // for(int a=0; a<ID; a++){print();} // break; case 'e' : cout<<"\nThis function print element by ID\nEnter ID:\n"; cin>>n; print(n); break; case 'l' : cout<<"\nThis function print your last element\n"; case 'q' : return 0; default: cout<<"\t\t\tPush correct button!\n"; } getch(); return 0; } //--------------------------------------------------------------------------- void print(int number) { //for(; number;) //cout<<; } //--------------------------------------------------------------------------- int add(Header.pNext) { id++; //pNext. (*pNext).ID = id; cout<<"\nEnter the name:\n"; cin>>Header.Name; cout<<"\nEnter the surname:\n"; cin>>Header.Surname = "Ikonnikov"; cout<<"\nEnter the sex:\n"; cin>>Header.sex; cout<<"\nEnter the age:\n"; cin>>Header.age; Header.Tel = "7913410"; return 0; } //--------------------------------------------------------------------------- void del() { } //--------------------------------------------------------------------------- С уважением, Crusader(Макс) Б/Н 27."У прямолинейно и равномерно летящего самолета суммы всех сил и моментов равна нулю." (с) физика
Shturman Опубликовано 4 декабря, 2008 Опубликовано 4 декабря, 2008 cout<<"\nEnter the sex:\n";А в графе "Семейное положение" гордо написал "сверху"! Высота - залог здоровья! БН 94
Airom Опубликовано 14 декабря, 2008 Опубликовано 14 декабря, 2008 ... int add(); ... int add(Header.pNext) { ... }Crus, у тебя декларация функции add отличается от ее определения. Если необходимо передавать в add указатель на TRegTable, то функция должна быть продекларирована так: int add(TRegTable *pNext);а ее описание должно быть таким:int add(TRegTable *pNext) { id++; pNext->ID = id; ... return 0; }Потом, add должна создавать новый объект используя оператор new, а твоя функция add не создает нового объекта. Даже если она будет правильно описана, первое же обращение к ней вызовет Exception.Со списками у тебя не лады, рекомендую почитать книгу - Уильям Топп, Уильям Форд "Структуры данных в C++". Отличная книга по организации структур данных, есть и про списки, и про стеки, очереди и многое другое, и все с примерами.Я сам программирую на Билдере, так что если что - пиши, попробуем разобраться. E = mc2
kazak Опубликовано 15 декабря, 2008 Опубликовано 15 декабря, 2008 Круз, решил стать программистом - учись и добивайся своих результатов сам. В этом деле каждый пишет свой алгоритм. И чем меньше машинного времени ты потратишь, в этом деле, если ты понимаешь о чем речь - тем лучше. Ни один уважающий себя программист не будет копаться в твоём коде, если он не преподаватель, а напишет свою процедуру, свою функцию... Это намного проще и меньше занимает времени поиска ошибок в чужих программах... Это так сказать, тебе на будущее... Никогда не ищи помощи, разбирайся и достигай цели сам. Или озвучивай задачу, проект целиком и готовся делиться.
kazak Опубликовано 15 декабря, 2008 Опубликовано 15 декабря, 2008 Круз, решил стать программистом - учись и добивайся своих результатов сам. В этом деле каждый пишет свой алгоритм. И чем меньше машинного времени ты потратишь, в этом деле, если ты понимаешь о чем речь - тем лучше. Ни один уважающий себя программист не будет копаться в твоём коде, если он не преподаватель, а напишет свою процедуру, свою функцию... Это намного проще и меньше занимает времени поиска ошибок в чужих программах... Это так сказать, тебе на будущее... Никогда не ищи помощи, разбирайся и достигай цели сам. Или озвучивай задачу, проект целиком и готовся делиться. Добавлю... Я в свое время, на 3 курсе проходил произвотсвенную практику на одном КБ... Ты думаешь со мной делись знаниями? Фиг там! Дали задание написать процуру такого то процесса - справишься - молодец! Нет - ну и не очень то и нужно, 4 получишь за то что посещал и проявлял интерес... Я лично всегда до всего доходил сам. Хотя и бывало что как зациклишся... Не н а том чем нужно - и некому в мою голову нажать резет
kazak Опубликовано 15 декабря, 2008 Опубликовано 15 декабря, 2008 что то понесло меня )))))) Ну да ладно... )))))) С тех пор как закончил институт, и утроился на работу... Асемблер, и Си, использовал пару раз... Всё можно сделать на этих языках. Но утомительно и долго...
kazak Опубликовано 15 декабря, 2008 Опубликовано 15 декабря, 2008 К стате, Круз, а куда ты поступил? Где учишься? Я заканчивал Новочеркасский политех, кафедра ЭВМКСиС. специальность 60.... Непомню цифры... Расшифровываеться как Электронно Вычислительные Машины Комплексы Системы и Сети. На первом курсе я писал программы на перфокартах... Ты наверно и не знаешь что это такое
Shturman Опубликовано 16 декабря, 2008 Опубликовано 16 декабря, 2008 Нда уж - понесло, не то слово. Знаем мы что такое перфокарты, перфоленты... Ты их рассыпать не пробовал? ))) Высота - залог здоровья! БН 94
Baltica Опубликовано 16 декабря, 2008 Опубликовано 16 декабря, 2008 Э...Что там про карты?Пулечку распишем?
Shturman Опубликовано 16 декабря, 2008 Опубликовано 16 декабря, 2008 Э... Что там про карты? Пулечку распишем? Все обхаяли! Высота - залог здоровья! БН 94
Airom Опубликовано 16 декабря, 2008 Опубликовано 16 декабря, 2008 Нда уж - понесло, не то слово. Знаем мы что такое перфокарты, перфоленты... Ты их рассыпать не пробовал? ))) А у нас, например, было принято 'кропить колоду' - перфокарты нумеровались , особенно в дипломных 'колодах' E = mc2
pisto Опубликовано 16 декабря, 2008 Опубликовано 16 декабря, 2008 Когда приперло,пришлось завести подругу на ИВЦ.Приносил только прогу на фортране на бумаге,забирал распечатку,колоду и результат в уютной обстановке. 123
Shturman Опубликовано 17 декабря, 2008 Опубликовано 17 декабря, 2008 Когда приперло,пришлось завести подругу на ИВЦ.Приносил только прогу на фортране на бумаге,забирал распечатку,колоду и результат в уютной обстановке. ...распечатку,колоду и результат... Про результат отдельно? А колоду резиночкой связывал? Высота - залог здоровья! БН 94
Crus Опубликовано 17 декабря, 2008 Автор Опубликовано 17 декабря, 2008 У нас препод С++ по перфокартам преподаёт... Поступил я в Челябинский Гос. Университет.Мат. фак.Специальность - Информационные технологии (it-технологии) to AiromСПасибо большое. С уважением, Crusader(Макс) Б/Н 27."У прямолинейно и равномерно летящего самолета суммы всех сил и моментов равна нулю." (с) физика
pisto Опубликовано 17 декабря, 2008 Опубликовано 17 декабря, 2008 Когда приперло,пришлось завести подругу на ИВЦ.Приносил только прогу на фортране на бумаге,забирал распечатку,колоду и результат в уютной обстановке. ...распечатку,колоду и результат... Про результат отдельно? А колоду резиночкой связывал? Если бы резиночкой.Колоду бережно заворачивали как дитя.Потому как если край чуть измохратится,все пипец карточке.Она в приемник не лезла,надо новую набивать. 123
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти