Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2011, 01:05   #1
vlados92
Пользователь
 
Регистрация: 22.02.2011
Сообщений: 12
По умолчанию Почему компилятор выдаёт ошибки

Составить программу, которая содержит текущую информацию о книгах в библиотеке.
Сведения о книгах включают:
□ номер УДК;
□ фамилию и инициалы автора;
□ название;
□ год издания;
□ количество экземпляров данной книги в библиотеке.
Программа должна обеспечивать:
□ начальное формирование данных обо всех книгах в библиотеке в виде вектора;
□ добавление данных о книгах, вновь поступающих в библиотеку;
□ удаление данных о списываемых книгах;
□ по запросу выдаются сведения о наличии книг в библиотеке, упорядоченные по годам издания.



//main.cpp
#include "head.h"
int main()
{
setlocale (0,"Rus");
int n;
cout<<"Введите количество записей: ";
cin>>n;

vector <Zapis> mas(n);
for (int i=0;i<n;i++)
{
cout<<endl<<"Формирование "<<i+1<<" записи документа."<<endl<<"Введите номер УДК: ";
cin>>mas[i].id;
cout<<"Введите фамилию и инициалы автора: ";
cin>>mas[i].fio;
cout<<"Введите название книги: ";
cin>>mas[i].nazv;
cout<<"Введите год издания: ";
cin>>mas[i].god;
cout<<"Введите количество экземпляров: ";
cin>>mas[i].kol;
}
vivod (mas);
zapros (mas);
}

//fcii.cpp
#include "head.h"
void odin (vector<Zapis> &mas)
{
Zapis buf;
cout<<"Введите номер УДК: ";
cin>>buf.id;
cout<<"Введите фамилию и инициалы автора: ";
cin>>buf.fio;
cout<<"Введите название книги: ";
cin>>buf.nazv;
cout<<"Введите год издания: ";
cin>>buf.god;
cout<<"Введите количество экземпляров: ";
cin>>buf.kol;
mas.resize(mas.size()+1,buf);
vivod (mas);
}
void dva (vector<Zapis> &mas)
{
char udk[4];
cout<<"Введите УДК книги, которую необходимо удалить: ";
cin>>udk;
int flag=1;
int k=0;
for (vector<Zapis>::iterator i=mas.begin();i!=mas.end();i++)
{
flag=1;
if (strlen(udk)==strlen(mas[k].id))
for (int j=0;udk[j]!=0;j++)
if (udk[j]!=mas[k].id[j])
flag=0;
if (flag==1)
{
mas.erase(i);
flag=-1;
break;
}
k++;
}

if (flag!=-1)
{
cout<<endl<<"Книги с данным УДК не существует"<<endl;
}
else vivod(mas);
}
void tri(vector<Zapis> &mas)
{
vector<int> mas_buf(mas.size());
for (int i=0;i<mas.size();i++)
mas_buf[i]=mas[i].god;
sort(mas_buf.begin(),mas_buf.end()) ;
for (int i=0;i<mas.size();i++)
mas[i].god=mas_buf[i];
vivod(mas);
}
int zapros (vector<Zapis> &mas)
{
int otvet;
cout<<endl<<"Если вы хотите добавить данные о книгах - нажмите 1;"<<endl;
cout<<"Если вы хотите удалить данные о списываемых книгах - нажмите 2;"<<endl;
cout<<"Если вы хотите упорядочить книги по годам издания - нажмите 3;"<<endl;
cout<<"Если вы хотите завершить работу программы - нажмите 0."<<endl;
cin>>otvet;

switch (otvet)
{
case 0: {return 0;}
case 1: {
odin(mas);
zapros(mas);break;
}
case 2: {dva(mas);
zapros(mas);}break;
case 3: {
tri(mas);
zapros(mas);
}break;
}
}
void vivod(vector<Zapis> &mas)
{
if (mas.size()==0)
cout<<"Данных нет."<<endl;
else{
cout<<endl<<" УДК ФИО Название Год Количество"<<endl;
for (int i=0;i<mas.size();i++)
{
cout<<setw(5)<<mas[i].id<<setw(14)<<mas[i].fio<<setw(14)<<mas[i].nazv<<setw(8)<<mas[i].god<<setw(14)<<mas[i].kol<<endl;
}
}
}

//head.h
#include <vector>
#include <iostream>
#include <iomanip>
#include <algorithm>
using namespace std;
struct Zapis
{
char id[4];
char fio[14];
char nazv[14];
int god;
int kol;
};
int zapros (vector<Zapis> &mas);
void vivod(vector<Zapis> &mas);
void odin (vector<Zapis> &mas);
void dva (vector<Zapis> &mas);
void tri(vector<Zapis> &mas);

1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "int __cdecl zapros(class std::vector<struct Zapis,class std::allocator<struct Zapis> > &)" (?zapros@@YAHAAV?$vector@UZapis@@V? $allocator@UZapis@@@std@@@std@@@Z) в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl vivod(class std::vector<struct Zapis,class std::allocator<struct Zapis> > &)" (?vivod@@YAXAAV?$vector@UZapis@@V?$ allocator@UZapis@@@std@@@std@@@Z) в функции _main
1>C:\Users\Влад\Desktop\laba4\Debug \laba4.exe : fatal error LNK1120: 2 неразрешенных внешних элементов
vlados92 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверьте правильность кода. Почему выдаёт ошибку? vlados92 Общие вопросы C/C++ 4 02.03.2011 12:58
компилятор ошибок не выдаёт, но прога не делает то что нужно... Chica Bond Общие вопросы C/C++ 5 02.05.2010 22:53
Почему выдаёт такой результат??? bloodeagle Помощь студентам 1 12.11.2009 08:21
Программа на VBA выдаёт ошибки. vfrc Microsoft Office Excel 7 06.11.2009 12:30
Почему ошибку выдаёт? Inbox Общие вопросы Delphi 14 24.06.2007 02:15