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

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

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

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

13.04.2011, 01:04. Просмотров 390. Ответов 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 неразрешенных внешних элементов
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2011, 01:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему компилятор выдаёт ошибки (C++):

Почему компилятор выдаёт ошибки? - C++
Почему компилятор выдаёт ошибки? #include &lt;iostream.h&gt; #include &lt;conio.h&gt; Void main () { int a, b, c; std::cin &gt;&gt; a &gt;&gt; b...

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

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

Компилятор выдаёт ошибку, в чем дело?? - C++
Задание: 1. Определить иерархию классов (в соответствии с вариантом). Базовый класс должен включать обязательный атрибут char *name. 2....

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2011, 01:04
Привет! Вот еще темы с ответами:

Компилятор выдаёт ошибку error C4996: 'strcpy': This function or variable may be unsafe - 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; ...

Не могу запустить программку компилятор выдаёт ошибку error LNK2019: ссылка на неразрешенный внешний символ - C++
Прошу прощения за глупые вопросы но я новичок в програмировании .Вот моя программка и копия ошибки которую выдаёт компилятор если кто...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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