Добавлен: 28.11.2018
Просмотров: 1427
Скачиваний: 21
Словарь действий, которыми пользуется библиотекарь можно увидеть на табл.2.1
Табл. 2.1. Таблица действий.
Действие |
Описание действия |
Вносит |
Действие, направленное на занесение новых данных систему |
Удаляет |
Действие удаления найденной записи |
Выбирает |
Действие на выбор данных из представленного списка |
Ищет |
Действие, направленное на поиск в системе |
Указывает |
Действие для выбора каких-то конкретных параметров |
3. Описание кода
#include <clocale>
#include <stdlib.h>
#include <iostream>
#include <string>
#include <clocale>
Включение этого заголовка гарантирует, что имена, объявленные с помощью внешней компоновки в заголовке стандартной библиотеки C, объявляются в пространстве имен std.
#include <stdlib.h>
Заголовочный файл стандартной библиотеки языка Си, который содержит в себе функции, занимающиеся выделением памяти, контролем процесса выполнения программы, преобразованием типов и другие. Заголовок вполне совместим с C++ и известен в нём как cstdlib Название «stdlib» расшифровывается как «standard library» (стандартная библиотека).
#include <iostream>
Объявляет объекты, управляющие чтением из стандартных потоков и записью в них. Зачастую для ввода и вывода из программы на языке С++ нужно включить только заголовок.
#include <string>
Класс с методами и переменными для организации работы со строками в языке программирования C++. Он включён в стандартную библиотеку C++.
#define SIZE 1000
Директива #define создает макрос, представляющий собой ассоциацию обычного или параметризованного идентификатора со строкой токена.
Мáкрос - программный объект, который во время вычисления заменяется на новый объект, создаваемый определением макроса на основе его аргументов, затем выражается обычным образом.
Класс lib, выполняет операции с книгами в библиотеке
class lib
{
int num = 0, id[SIZE], hand[SIZE]; //количество книг, массив id книг, массив книг на руках
string author[SIZE], title[SIZE]; //авторы, названия
bool libis(); //отображает сообщение если книг в библиотеке нет
public:
bool is(int n); //поиск книги по id
int qnty();
void show(int n); //отображение книги
void showall(); //отображение все книги
int store(string auth, string tit, int hd); //добавление книги
void del(int n); //удаление книги
void give(int n); //книга выдали на руки
void bring(int n); //книга вернули в библиотеку
};
int - значит "целое число"
bool имеет значения true и false (см. листинг 3.1).
Проверка на наличие книг. Листинг 3.1
Исходный код меню программы показан на рис. 3.2, Вы можете увидеть, как код выглядит в консоли:
void mainscreen()
{
setlocale(LC_ALL, "Russian");
cls();
cout << "Программа библиотека\n";
cout << "1 - Общее количество книг\n";
cout << "2 - Показать все книги\n";
cout << "3 - Добавить книгу\n";
cout << "4 - Удалить книгу\n";
cout << "5 - Выдать книгу\n";
cout << "6 - Принять книгу\n";
cout << "9 - Выход\n";
}
Рис 3.2. Меню программы в консоли.
Исходный код списка книг, которые находятся в программе «библиотека»
На Рис 3.3 показан список авторов книг в консоли
int main()
{
int i, j, k, hand, command;
string author;
string title;
lib mylib;
setlocale(LC_ALL, "Russian");
mylib.store("Толстой", "Казаки", 1);
mylib.store("Некрасов", "Сборник стихов", 0);
mylib.store("Маяковский", "Стихи", 0);
mylib.store("Карамзин", "История государства Российского", 0);
mylib.store("А.С.Пушкин", "Стихи", 0);
mylib.store("Сильвия Лайм", "Фентези", 0);
mylib.store("Николай Гоголь", "Мертвые души", 0);
mylib.store("Антон Чехов", "Палата №6", 0);
mylib.store("Михаил Булгаков", "Мастер и Маргарита", 0);
mylib.store("Иван Тургенев", "Отци и дети", 0);
mylib.store("Александр Дюма", "Три мушкерера", 0);
mylib.store("Эрнест Хемингуэй", "Старик и море", 0);
mylib.store("Виктор Гюго", "Отверженные", 0);
mylib.store("Михаил Шолохов", "Тихий дон", 0);
mylib.store("Джек Лондон", "Белий клык", 0);
mylib.store("Артур Конан Дойль", "Приключение Шерлока Холмса", 0);
mylib.store("Михаил Лермонтов", "Маскарад", 0);
mylib.store("Уильям Шекспир", "Гамлет", 0);
mylib.store("Марк Твен", "Приключение Тома Соера", 0);
mylib.store("Жюль Верн", "Дети капиана Гранта", 0);
Рис 3.3. Список литературы в консоли.
Заключение
В данном курсовом проекте была разработана программа «Библиотека» обеспечивающая выдача книг. Программа полностью автоматизирует труд библиотекаря и организует надежное хранение и обработку данных. Плюсы и минусы программы.
Плюсами является:
-
Быстрый поиск книг библиотекарем
-
Удаление и добавление литературы
-
Выдача книг пользователям
Минусами является:
-
Отсутствует информация о читателях
Список литературы:
-
Гради Буч Объектно-ориентированный анализ и проектирование с примерами приложений на C++, 2-e издание
-
http://cppstudio.com/cat/274/281/
Приложение A.
#include <clocale>
#include <stdlib.h>
#include <iostream>
#include <string>
using namespace std;
#define SIZE 1000 //Максимальное количество книг
void cls()
{
if (system("clear")) system("cls"); //обновление экрана
}
class lib
{
int num = 0, id[SIZE], hand[SIZE]; //количество книг, массив id книг, массив книг на руках
string author[SIZE], title[SIZE]; //авторы, названия
bool libis(); //отображает сообщение если книг в библиотеке нет
public:
bool is(int n); //поиск книги по id
int qnty();
void show(int n); //отображение книги
void showall(); //отображение все книги
int store(string auth, string tit, int hd); //добавление книги
void del(int n); //удаление книги
void give(int n); //книга выдали на руки
void bring(int n); //книга вернули в библиотеку
};
bool lib::libis()
{
if (num == 0) {
cout << "Книг нет!\n";
return false;
}
return true;
}
bool lib::is(int n)
{
int i;
for (i = 0;i<num;i++) {
if (i == n) return true;
}
return false;
}
int lib::qnty()
{
if ((num - 1) >= 0) return num - 1;
else return 0;
}
void lib::show(int n)
{
if ((n >= 0) && (n<num)) {
cout << "id: " << id[n] << " Автор: " << author[n] << endl;
cout << "Название: " << title[n] << endl;
cout << "Выдано: " << hand[n] << endl;
return;
}
else cout << "Книги с таким id не найдено. id: " << n << endl;
}
void lib::showall()
{
int i;
libis();
for (i = 0;i<num;i++) {
cout << "id: " << id[i] << " Автор: " << author[i] << endl;
cout << "Название: " << title[i] << endl;
}
}
int lib::store(string auth, string tit, int hd)
{
if (num == SIZE) {
cout << "В библиотеке нет места!" << num << "книг:"<< endl;
cout << "Нельзя добавить больше книг\n";
return -1;
}
id[num] = num;
cout << "id: " << id[num] << endl;
author[num] = auth;
title[num] = tit;
hand[num] = hd;
num = num + 1;
return id[num];
}
void lib::del(int n)
{
int i, j = 0;
libis();
if (!is(n)) {
cout << "Книги с таким id не найдено. id: " << n << endl;
return;
}
for (i = 0;i<num;i++) {
if (i == n) {
continue;
}
else {
id[j] = j;
author[j] = author[i];
title[j] = title[i];
hand[j] = hand[i];
j++;
}
}
num--;
}
void lib::give(int n)
{
libis();
is(n);
hand[n]++;
}
void lib::bring(int n)
{
libis();
is(n);
if (hand[n] == 0) {
cout << "Не было информации о том, что книга была выдана";
}
else hand[n]--;
}
void mainscreen()
{
setlocale(LC_ALL, "Russian");
cls();
cout << "Программа библиотека\n";
cout << "1 - Общее количество книг\n";
cout << "2 - Показать все книги\n";
cout << "3 - Добавить книгу\n";
cout << "4 - Удалить книгу\n";
cout << "5 - Выдать книгу\n";
cout << "6 - Принять книгу\n";
cout << "9 - Выход\n";
}
int main()
{
int i, j, k, hand, command;
string author;
string title;
lib mylib;
setlocale(LC_ALL, "Russian");
mylib.store("Толстой", "Казаки", 1);
mylib.store("Некрасов", "Сборник стихов", 0);
mylib.store("Маяковский", "Стихи", 0);
mylib.store("Карамзин", "История государства Российского", 0);
mylib.store("А.С.Пушкин", "Стихи", 0);
mylib.store("Сильвия Лайм", "Фентези", 0);
mylib.store("Николай Гоголь", "Мертвые души", 0);
mylib.store("Антон Чехов", "Палата №6", 0);
mylib.store("Михаил Булгаков", "Мастер и Маргарита", 0);
mylib.store("Иван Тургенев", "Отци и дети", 0);
mylib.store("Александр Дюма", "Три мушкерера", 0);
mylib.store("Эрнест Хемингуэй", "Старик и море", 0);
mylib.store("Виктор Гюго", "Отверженные", 0);
mylib.store("Михаил Шолохов", "Тихий дон", 0);
mylib.store("Джек Лондон", "Белий клык", 0);
mylib.store("Артур Конан Дойль", "Приключение Шерлока Холмса", 0);
mylib.store("Михаил Лермонтов", "Маскарад", 0);
mylib.store("Уильям Шекспир", "Гамлет", 0);
mylib.store("Марк Твен", "Приключение Тома Соера", 0);
mylib.store("Жюль Верн", "Дети капиана Гранта", 0);
while (1) {
mainscreen();
cout << "Номер меню: ";
cin >> command;
switch (command) {
case 1:
cout << "Книг в библиотеке: " << mylib.qnty()+1 << endl;;
break;
case 2:
if (mylib.qnty() <= 0) {
cout << "В библиотеке нет книг.\n";
break;
}
cls();
cout << "Книги библиотеки\n";
cout << "Сколько Вы хотите увидеть книг на экране? Введите 0,1,2,...\n";