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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Sigrlinn
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 5
16.06.2011, 13:35     База данных библиотеки #1
всем здравствуйте. у меня появилась проблема. нужно написать программу. вот задание:
Написать программу , которая содержит текущую информацию о книгах в библиотеке.
Сведения о книгах содержат:
Номер УДК;
Фамилию и инициалы автора;
Название;
Год издания;
Количество экземпляров данной книги в библиотеке.
Программа должна обеспечивать:
 Начальное формирование данных о всех книгах в библиотеке в виде файла;
 Добавление данных о книгах, вновь поступивших в библиотеку;
 Удаление данных о списываемых книгах;
 По запросу выдаются сведения о наличии книг в библиотеке, упорядоченных по годам издания
многие скажут, что такое задание уже было. но вот программа которую написала я:
[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++
база данных C++
C++ База данных
C++ Использование псевдопеременных: bd (3,5) = s, где bd - база данных, s - элемент базы данных, тогда с 3 по 5 элементы базы данных заменить на элемент s.
C++ Удалённая база данных - запрос и вывод данных
база данных C++
Структуры данных: инвентарная книга библиотеки C++
База данных C++

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

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

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