Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vlados92
0 / 0 / 0
Регистрация: 22.02.2011
Сообщений: 28
#1

Почему компилятор выдаёт ошибки - C++

13.04.2011, 01:04. Просмотров 385. Ответов 0
Метки нет (Все метки)

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



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
//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 неразрешенных внешних элементов
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2011, 01:04     Почему компилятор выдаёт ошибки
Посмотрите здесь:

Компилятор выдаёт ошибку - C++
Я новичок в C++ и не могу понять в чём ошибка написал вот такой код: #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; ...

Работа с классами, компилятор выдаёт ошибку - C++
Дан следующий базовый класс: class area_cl { public: double height; double width; }; создайте два производных...

Компилятор выдаёт ошибку: неразрешенный вид '_main - C++
#include &lt;vcl.h&gt; #include &lt;iostream.h&gt; using namespace std; class CClass { protected: double a; int b; public: ...

При подсчёте косинуса компилятор выдаёт неверное значение - C++
И снова здравствуйте,возникла очередная проблема в моей программе,при элементарном подсчёте косинуса компилятор выдаёт неверное...

компилятор во всех задачах постоянно выдаёт одну и ту же ошибку. Что делать? - C++
компилятор во всех задачах постоянно выдаёт одну и ту же ошибку (даже если задача решена правильно). Что делать? Deleting intermediate...

определения минимального элемента и его индекса в одномерном массиве(компилятор выдаёт ошибку) - C++
#include &lt;iostream&gt; using namespace std; int main() {int count,min,num; cout&lt;&lt;&quot;count (N): &quot;; cin&gt;&gt;count; int *a; ...

Программа выдаёт ошибки - C++
Здравствуйте. Помогите, пожалуйста, исправить. Программа в Visual C++ выдаёт 2 ошибки и 4 предупреждения в заголовочном файле:#include...

Программа в Visual C++ выдаёт ошибки - C++
Здравствуйте. Скажите, пожалуйста, почему программа выдаёт такие ошибки в заголовочном файле: 1&gt;d:\Program Files (x86)\Microsoft...

Почему выдаёт ошибку? - C++
#include &lt;iostream.h&gt; #include &lt;string.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; // описание класса - задание типа для объектов ...

Почему выдаёт данную ошибку ? - C++
Как её исправить


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru