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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Sigrlinn
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 5
#1

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

16.06.2011, 13:35. Просмотров 1639. Ответов 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 минут
ну и сама программа как вы видите написана только через файлы
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2011, 13:35     База данных библиотеки
Посмотрите здесь:

Структуры данных: инвентарная книга библиотеки - C++
Доброго времени суток, необходима ваша помощь, Есть такое условие: &quot;В инвентарной книге библиотеки для каждой книги указаны данные:...

База данных - C++
Здравствуйте уважаемы товарищи программисты! не могли бы помочь найти ошибку! задание такое надо как бы создать базу данных! Записи о...

База данных - C++
задание: Написать программу для работы с базой данных &quot;Почта&quot; • номер пересылки • адрес назначения • стоимость пересылки • вес ...

база данных - C++
скиньте кто то пример базы данных на си!!!!а то яч не знаю с чего начать и как ее сделать!пожалуйста!! Добавлено через 6 часов 39...

База данных - C++
Здравствуйте,помогите написать: Биржа труда. База безработных: анкетные данные, профессия, образование, место и должность последней...

База данных - C++
Народ, помогите найти ошибку, плиз. База данных компьютерных игр (пример – www.ag.ru), в которой каждая игра характеризуется...

база данных - C++
Разработать программу для управления базой данных «Абоненты ГТС». Запись в базе данных содержит следующие поля: Ф.И.О. абонента, адрес,...

База данных - C++
Всем Привет! Есть txt Файл в нем вписана база данных. Как вытянуть из текстового файла базу в том расположении в каком она написана, и как...

База Данных - C++
Здравствуйте. Начал изучать программирование, пока уровень не велик. Дошёл до такого момента, что нужно написать базу данных, но пока что...

база данных - C++
Собственно, хочу написать программу с базой данных. Самое главное, хочу разобраться в совместном использовании классов, списков и...

База данных в С++. - C++
Дело такое: пишется проект, который будет регулярно читать и записывать информацию с файлов. Самое банальное - сделать всё через обычные...

База данных - C++
Не могу разобраться что не так. Спасибо заранее! #include &lt;locale.h&gt; #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;string.h&gt; ...


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

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

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