прошу помочь по С++

avatar smocer

539

7

smocer

Пользователь

Регистрация: 03.04.2014

Сообщения: 3500

Рейтинг: 1823

smocer

Регистрация: 03.04.2014

Сообщения: 3500

Рейтинг: 1823

img
уже создавал тут подобную тему, вроде со всем разобрался, но компилятор все равно выдает ошибки.

Моя задача: написать программу для работы с БД на основе линейного двусвязного списка. (некоторые функции там еще не написаны, но прототипы их имеются перед main)

Спойлер: "Исходный код"

// kurs_inf.cpp : main project file.

#include "StdAfx.h"

#include

#include

#include

using namespace std;

struct Star {

   char Name[50];

   float Mass, Radius, Age, Temperature, Luminosity;

   Star *Next;

   Star *Prev;

};

void ShowMenu();

Star * OpenBase();

Star * AddNewRec(Star Rec, Star *Head, Star *Tail);

void AddRec();

void Show(Star *Head);

void DelRec();

void Search();

void Save();

void main() {

  char OperCode;

   Star *Head;

   Head = OpenBase();

   do {

     ShowMenu();

     cout << "\nДля выполнения операции введите соответствующий код:\t";

     cin >> OperCode;

     switch (OperCode) {

     case '1' : Show(Head); break;

     case '2' : AddRec(); break;

     case '3' : DelRec(); break;

     case '4' : Search(); break;

     case '5' : Save(); break;

     }

   }

   while (OperCode != '6');

}

void ShowMenu() {

   /*clrscr;*/

   cout << "\nПрограмма базы данных. Доступные операции:";

   cout << "\n\tПоказать всю БД (1)\n\tДобавить запись (2)\n\tУдалить запись (3)\n\tПоиск по базе (4)\n\tСохранить БД (5)\n\tВыход (6)";

}

Star * OpenBase() {

   char Filename[50];

   ifstream File;

   Star NewStar;

   Star *Tail, *Head;

   Tail = NULL;

   Head = NULL;

   cout << "\nВведите полное имя файла с БД: ";

   cin >> Filename;

   File.open(Filename, ios::in);

   while (!File.eof()) {

     File >> NewStar.Name;

     File >> NewStar.Mass;

     File >> NewStar.Radius;

     File >> NewStar.Age;

     File >> NewStar.Temperature;

     File >> NewStar.Luminosity;

     AddNewRec(NewStar, Head, Tail);

   }

   return(Head);

}

Star * AddNewRec(Star Rec, Star *Head, Star *Tail) {

   Star *PNew;

   PNew = new Star;

   *PNew = Rec;

  (*PNew).Next = NULL;

   if (Head == NULL) {

     Head = PNew;

     (*PNew).Prev = NULL;

   } else {

     (*Tail).Next = PNew;

     (*PNew).Prev = Tail;

   }

   Tail = PNew;

   return(Tail);

}

void Show(Star *Head) {

   Star *P = Head;

   while (P != NULL) {

     cout << "\n" << (*P).Name << " " << (*P).Mass << " " << (*P).Radius << " " << (*P).Age << " " << (*P).Temperature << " " << (*P).Luminosity;

     P = (*P).Next;

   }

}

В процессе компиляции выдает следующие ошибки:

Спойлер: "Ошибки"

1>------ Build started: Project: kurs_inf, Configuration: Debug Win32 ------

1>  kurs_inf.cpp

1>kurs_inf.obj : error LNK2028: unresolved token (0A0003A7) "void __cdecl Save(void)" (?Save@@$$FYAXXZ) referenced in function "int __cdecl main(void)" (?main@@$$HYAHXZ)

1>kurs_inf.obj : error LNK2028: unresolved token (0A0003A8) "void __cdecl Search(void)" (?Search@@$$FYAXXZ) referenced in function "int __cdecl main(void)" (?main@@$$HYAHXZ)

1>kurs_inf.obj : error LNK2028: unresolved token (0A0003A9) "void __cdecl DelRec(void)" (?DelRec@@$$FYAXXZ) referenced in function "int __cdecl main(void)" (?main@@$$HYAHXZ)

1>kurs_inf.obj : error LNK2028: unresolved token (0A0003AA) "void __cdecl AddRec(void)" (?AddRec@@$$FYAXXZ) referenced in function "int __cdecl main(void)" (?main@@$$HYAHXZ)

1>kurs_inf.obj : error LNK2019: unresolved external symbol "void __cdecl Save(void)" (?Save@@$$FYAXXZ) referenced in function "int __cdecl main(void)" (?main@@$$HYAHXZ)

1>kurs_inf.obj : error LNK2019: unresolved external symbol "void __cdecl Search(void)" (?Search@@$$FYAXXZ) referenced in function "int __cdecl main(void)" (?main@@$$HYAHXZ)

1>kurs_inf.obj : error LNK2019: unresolved external symbol "void __cdecl DelRec(void)" (?DelRec@@$$FYAXXZ) referenced in function "int __cdecl main(void)" (?main@@$$HYAHXZ)

1>kurs_inf.obj : error LNK2019: unresolved external symbol "void __cdecl AddRec(void)" (?AddRec@@$$FYAXXZ) referenced in function "int __cdecl main(void)" (?main@@$$HYAHXZ)

1>C:\Users\smocer\Documents\Visual Studio 2010\Projects\kurs_inf\Debug\kurs_inf.exe : fatal error LNK1120: 8 unresolved externals

========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Подскажите, плз, как исправить.

Berglol

Пользователь

Регистрация: 20.09.2013

Сообщения: 934

Рейтинг: 1736

Berglol

Регистрация: 20.09.2013

Сообщения: 934

Рейтинг: 1736

Просто попробуй сделать

int main

и верни ноль в конце мейна.

П.с. танцы с бубном никто не отменял)

ebw.by

Пользователь

Регистрация: 04.11.2012

Сообщения: 107

Рейтинг: 40

ebw.by

Регистрация: 04.11.2012

Сообщения: 107

Рейтинг: 40

dorogo25

Пользователь

Регистрация: 02.08.2013

Сообщения: 561

Рейтинг: 186

dorogo25

Регистрация: 02.08.2013

Сообщения: 561

Рейтинг: 186

1

dorogo25

Пользователь

Регистрация: 02.08.2013

Сообщения: 561

Рейтинг: 186

dorogo25

Регистрация: 02.08.2013

Сообщения: 561

Рейтинг: 186

Berglol сказал(а):
Просто попробуй сделать

int main

и верни ноль в конце мейна.

П.с. танцы с бубном никто не отменял)
Нажмите, чтобы раскрыть...

таки он прав.

что за main без int и return

smocer

Пользователь

Регистрация: 03.04.2014

Сообщения: 3500

Рейтинг: 1823

smocer

Регистрация: 03.04.2014

Сообщения: 3500

Рейтинг: 1823

img
Berglol сказал(а):
Просто попробуй сделать

int main

и верни ноль в конце мейна.

П.с. танцы с бубном никто не отменял)
Нажмите, чтобы раскрыть...

сделал, все осталось по-старому.

я пока что нуб в си, осваиваюсь вот.

Yondive

Пользователь

Регистрация: 29.06.2014

Сообщения: 5

Рейтинг: 0

Yondive

Регистрация: 29.06.2014

Сообщения: 5

Рейтинг: 0

Вообще то MS стандартный компилятор допускает void main (это не значит, что так писать нужно).

По теме: функции без тела в соурс файле не работают.

smocer

Пользователь

Регистрация: 03.04.2014

Сообщения: 3500

Рейтинг: 1823

smocer

Регистрация: 03.04.2014

Сообщения: 3500

Рейтинг: 1823

img
Yondive сказал(а):
Вообще то MS стандартный компилятор допускает void main (это не значит, что так писать нужно).

По теме: функции без тела в соурс файле не работают.
Нажмите, чтобы раскрыть...

ща попробую закомментировать прототипы пока еще ненаписанных ф-ций

UPD: спасибо, заработало!

если еще какие вопросы будут возникать, напишу в эту же тему, дабы не засорять форум.