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

База данных библиотеки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ почему прога не пашет? http://www.cyberforum.ru/cpp-beginners/thread320726.html
/*Цель программы: Вычислить минимум F(x)=k*(a*x+b)*P(x) на отрезке с точностью eps P(x) - интерполяционный многочлен от f(x) ф-ия f(x) задана таблично: x 1.05 1.15 1.25 1.35
C++ Исправление программы Простите мне что я такой неуч. Мне написали программу, но с некоторым отличием от того что я знаю: строчки scanf и prrintf такого вида для мня совсем непонятны. Вот сама программа:#include <stdio.h>... http://www.cyberforum.ru/cpp-beginners/thread320722.html
C++ operator = для объекта, содержащего CStdioFile
Приветствую всех. Возникла проблема с реализацией оператора присваивания для класса, содержащего CStdioFile. Получить копию CStdioFile мне не удалось... метод Duplicate() в нем не реализован...
C++ Не получается удалить символ из строки
подскажите как можно удалить знак пунктуации из строки? написал код: #include <iostream> #include <string> #include <cctype> using namespace std; int main () { string str;
C++ Не компилиться код http://www.cyberforum.ru/cpp-beginners/thread320644.html
помогите пожалуйста разобраться с этой проблемой
C++ Матрицы Решить с классами и динамической памятью. Дано 5 матриц произвольной размерности, обеспечить ввод, вычисление общей суммы всех эл. находящихся по периметру, если вычисление значений больше количества... подробнее

Показать сообщение отдельно
Sigrlinn
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 5

База данных библиотеки - C++

16.06.2011, 13:35. Просмотров 1667. Ответов 0
Метки (Все метки)

всем здравствуйте. у меня появилась проблема. нужно написать программу. вот задание:
Написать программу , которая содержит текущую информацию о книгах в библиотеке.
Сведения о книгах содержат:
Номер УДК;
Фамилию и инициалы автора;
Название;
Год издания;
Количество экземпляров данной книги в библиотеке.
Программа должна обеспечивать:
 Начальное формирование данных о всех книгах в библиотеке в виде файла;
 Добавление данных о книгах, вновь поступивших в библиотеку;
 Удаление данных о списываемых книгах;
 По запросу выдаются сведения о наличии книг в библиотеке, упорядоченных по годам издания
многие скажут, что такое задание уже было. но вот программа которую написала я:
[CPP][CPP]
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
[C]#include <iostream> //библиотека функций ввода, вывода
#include <string> //библиотека строковых функций
#include <list> //библиотека списков
#include <fstream> //библиотека файловых функций
#include <conio.h> //библиотека консольных функций
#include <locale.h> //библиотека заголовочного файла
using namespace std;
 
void Menu();
struct Library //структура  Library включает данные библиотеки:
{
int nomer; //номер книги
string FIO; // ФИО автора
string nazvanie; // название
int god; // год издания
int kolvo; //количество экземпляра
};       
 
list <Library> ListLibrary; //список библиотеки
int nomerDelete; 
bool Exit=false;
 
bool compare (Library i, Library j) { return ((i.god)<(j.god)); } // сравнивает по годам и сортировать будет по ним же
 
void Input()  //Функция добавления новой записи в базу данных       
{
    system("cls");
    cout << "Dobavit zapis - 1, Menu - 2 ?" << endl;
    switch(char ch=_getch())
    {
        case '1':
    { 
    Library temp;
        cout << "nomer: ";
        cin >> temp.nomer;
        cout << "FIO avtora: ";
        cin >> temp.FIO;
        cout << "nazvanie knigi: ";
        cin >> temp.nazvanie;
        cout << "god izdania: ";
        cin >> temp.god;
        cout << "kolishestvo ekzempliarov: ";
        cin >> temp.kolvo;
        ListLibrary.push_back(temp);
        Menu();
    }
    default: Menu(); break;
    }
}
 
void Read() //функция просмотра         
{                   
    do
    {
    system("cls");
    cout << "\t 1  Prosmotr" << endl;
    cout << "\t 2  Vernutsya v menu" << endl;
    switch(char ch=_getch())
    {
    case '1':
    ListLibrary.sort(compare);  // сортировка по годам издания
        {
        system("cls");
        if (!ListLibrary.empty())
        {
        for(list<Library>::iterator i=ListLibrary.begin(); i!=ListLibrary.end(); i++)
        {
            cout << "nomer: " << (*i).nomer << endl;
            cout << "FIO avtora " << (*i).FIO << endl;
            cout << "nazvanie: " << (*i).nazvanie << endl;
            cout << "god izdania: " << (*i).god << endl;
            cout << "kolichestvo: " << (*i).kolvo << endl;
            cout << endl <<  "______________________________" << endl << endl;
        }
        }else cout << "\a\n\n\n\t\t Spisok pust!" << endl;
        system("pause>>void");
        } Read(); break;
        
        case '2': Menu(); break;
    default:    break;
                    }
                    }while(!Exit);
}
void Save() //функция сохранения
    {
    system("cls");
    cout << "sohranit? - 1" << endl;
    switch(char ch=_getch())
    {
    case '1':
        {
            fstream BaseFileLibrary;
            BaseFileLibrary.open("c:\\temp\\BaseFileLibrary.dat", fstream::out);
            if (BaseFileLibrary.is_open())
            {   
                Library temp;
                for(list<Library>::iterator i=ListLibrary.begin(); i!=ListLibrary.end(); i++)
                {
                    temp.nomer=(*i).nomer;
                    temp.FIO=(*i).FIO;
                    temp.nazvanie=(*i).nazvanie;
                    temp.god=(*i).god;
                    temp.kolvo=(*i).kolvo;
                    BaseFileLibrary.write((char*)&temp,sizeof(Library));   
                }
            system("cls");
            cout << "sohraneno!" << endl;
            system("pause>>void");
            BaseFileLibrary.close();
            Menu();
            }
            else
            {
                cout << "\a\n\n\n\t\t erorr";
                system("pause>>void");
                Menu();
            }
        }
    default: Menu(); break;
    }
}
 
 
 
void Delete() // функция удаления
 
    {
    system("cls");
    cout << "udalit - 1, menu - 2 ?" << endl;
    switch(char ch=_getch())
    {
    case '1':
        {
        {
            
        
                if (!ListLibrary.empty())
                {
                    cout << "vvedite nomer udaliaemoi knigi: ";
                    cin >> nomerDelete;
                    for(list<Library>::iterator k=ListLibrary.begin(); k!=ListLibrary.end(); k++)
                    if ((*k).nomer==nomerDelete)
                    {
                    k=ListLibrary.erase((k));
                        cout << endl;
                        cout << "Udaleno!" << endl;
                    }else   cout << "Vozmoghno dannoi knigi ughe net v spiske - proverte pravilnost vvoda nomera" << endl;
                    }else cout << "Spisok pust!" << endl;
                    system("pause>>void");
            Menu();
            }
        }
    default: Menu(); break;
    }
}
void Menu() //функция меню
{ do
  {
    
    system("cls");
    cout << "Baza dannih bablioteki): \n" << endl;
cout << "\t 1  vvod informacii o knigah." << endl;
cout << "\t 2  spisok." << endl;
cout << "\t 3  udalenie iz spiska." << endl;
cout << "\t 4  sohranenie bazi dannix" << endl;
cout << "\t 5  Vihod." << endl;
    switch(char ch=_getch())
    {
    case '1': Input(); break;
    case '2': Read(); break;
    case '3': Delete(); break;
    case '4': Save(); break;
    case '5': exit(1);
    default : break;
    }
}
while (!Exit);
}
int main()
{
    setlocale (LC_ALL,"Russian");
    Menu();
}
проблема в том, что надо переделать без STL

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