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

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

Восстановить пароль Регистрация
 
vlados92
0 / 0 / 0
Регистрация: 22.02.2011
Сообщений: 28
13.04.2011, 01:04     Почему компилятор выдаёт ошибки #1
Составить программу, которая содержит текущую информацию о книгах в библиотеке.
Сведения о книгах включают:
□ номер УДК;
□ фамилию и инициалы автора;
□ название;
□ год издания;
□ количество экземпляров данной книги в библиотеке.
Программа должна обеспечивать:
□ начальное формирование данных обо всех книгах в библиотеке в виде вектора;
□ добавление данных о книгах, вновь поступающих в библиотеку;
□ удаление данных о списываемых книгах;
□ по запросу выдаются сведения о наличии книг в библиотеке, упорядоченные по годам издания.



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++
C++ определения минимального элемента и его индекса в одномерном массиве(компилятор выдаёт ошибку)
компилятор во всех задачах постоянно выдаёт одну и ту же ошибку. Что делать? C++
C++ Компилятор выдаёт ошибку
Компилятор выдаёт ошибку: неразрешенный вид '_main C++
Работа с классами, компилятор выдаёт ошибку C++
Почему компилятор выдаёт ошибки? C++

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

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

Текущее время: 11:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru