Выдача книг в библиотеке
Объектно-ориентированное программирование – расширение программирования, в котором концепциями являются понятия классов и объектов. Снижение времени, затрачиваемого библиотекарем на оформление различных документов, связанных с выдачей и приемом книг.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 27.02.2020 |
Размер файла | 308,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Курсовая работа
Выдача книг в библиотеке
Введение
Автоматизация библиотеки должна повысить производительность и качество труда работников библиотеки, эффективно обеспечивать пользователя необходимыми ему данными и ресурсами. Процесс деятельности библиотеки должен позволить и обеспечить: достаточно быстрый процесс выдачи и приема книг, быстроту поиска необходимой читателю литературы. Таким образом, целью решения задачи автоматизации является снижение времени, затрачиваемого библиотекарем на оформление различных документов, связанных с выдачей и приемом книг, снижение до минимума количества ошибок, допускаемых при заполнении, оптимизация сбора библиотечной статистики. программирование библиотекарь книга
ООП в С++.
Классы и объекты в С++ являются основными концепциями объектно-ориентированного программирования - ООП. Объектно-ориентированное программирование - расширение структурного программирования, в котором основными концепциями являются понятия классов и объектов. Основное отличие языка программирования С++ от С состоит в том, что в С нет классов, а следовательно язык С не поддерживает ООП, в отличие от С++.
Работа с библиотекой.
Выдача книг
Перед тем, как выдать книгу читателю, библиотекарь фиксирует факт ее выдачи, для этого находит книгу по id, которое библиотекарь указывает в строке поиска книг, и в окне, которое откроется, вносит количество выданных книг, тем самым сэкономит свое время.
Прием книг
Сотрудник библиотеки указывает id книги, после по - этому id в списке находит ту самую книгу, и после фиксирует факт возврата книги в библиотеку, библиотекарь будет видеть, сколько книг еще на руках у читателей.
Добавление новой книги
Если в библиотеку поступают новые книги, то библиотекарь добавляет эту книгу в базу данных всей литературы. Библиотекарь вводит название книги, автора, и сколько книг уже выдали для чтения. После этого программа присваивает индивидуальный id.
Удаление книги
Если книга не пользуется спросом или она не пригодна для чтения из-за разных причин, то библиотекарь просто списывает эту книгу вписывая id, тем самым ее удаляет.
Словарь действий, которыми пользуется библиотекарь можно увидеть на табл.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. Список литературы в консоли.
Заключение
В данном курсовом проекте была разработана программа "Библиотека" обеспечивающая выдача книг. Программа полностью автоматизирует труд библиотекаря и организует надежное хранение и обработку данных. Плюсы и минусы программы.
Плюсами является:
· Быстрый поиск книг библиотекарем
· Удаление и добавление литературы
· Выдача книг пользователям
Минусами является:
· Отсутствует информация о читателях
Список литературы
1. Гради Буч Объектно-ориентированный анализ и проектирование с примерами приложений на C++, 2-e издание
2. http://cppstudio.com/post/439/
3. http://cppstudio.com/cat/274/281/
Приложения
#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";
cin " k;
j = 0;
do {
for (i = 0;i<k;i++) {
mylib.show(j);
cout " endl;
j++;
if (j>mylib.qnty()) {
cout " "Это все книги, которые есть в библиотеке\n";
break;
}
}
if (j <= mylib.qnty()) {
cout " "Для отображения следующих книг введите любое число, кроме 0, и нажмите Ввод \n";
cout " "Если Вы хотите Выйти введите 0 и нажмите Ввод ";
cin " i;
cls();
}
} while ((j <= mylib.qnty()) && (i != 0));
break;
case 3:
cls();
cout " "Добавление книги\n";
cout " "Введите автора (латиницей без пробелов): ";
cin " author;
cout " "Введите название (латиницей без пробелов): ";
cin " title;
cout " "Введите колчество выданны на руки экземпляров: ";
cin " hand;
mylib.store(author, title, hand);
cout " "Книга добавлена:\n";
mylib.show(mylib.qnty());
break;
case 4:
cls();
cout " "Удаление книги\n";
cout " "Введите id книги для удаления: ";
cin " i;
if (mylib.is(i)) {
cout " "Вы собираетесь удалить книгу: ";
mylib.show(i);
cout " "Введите 1 для удаления или любое другое число для отмены: ";
cin " k;
if (k == 1) {
mylib.del(i);
cout " "Книга удалена\n";
}
}
else cout " "Книги с таким id не найдено. id: " " i " endl;
break;
case 5:
cls();
cout " "Выдача книги\n";
cout " "Введите id книги для выдачи: ";
cin " i;
if (mylib.is(i)) {
mylib.give(i);
cout " "Книга выдана\n";
mylib.show(i);
}
else cout " "Книги с таким id не найдено. id: " " i " endl;
break;
case 6:
cls();
cout " "Приём книги\n";
cout " "Введите id принятой книги: ";
cin " i;
if (mylib.is(i)) {
mylib.bring(i);
cout " "Книга принята\n";
mylib.show(i);
}
else cout " "Книги с таким id не найдено. id: " " i " endl;
break;
case 9: return 0;
break;
}
cout " "Введите любое число и нажмите Ввод ";
cin " k;
}
return 0;
}
Рис 1. Меню приложения.
Рис 2. Добавление книги.
Рис 3. Выдача книги.
Рис 4. Список книг.
Рис 5. Удаление книги.
Размещено на Allbest.ru
Подобные документы
Изучение принципов объектно-ориентированного программирования, в котором основными концепциями являются понятия классов и объектов. Свойства этого вида программирования: инкапсуляция, полиморфизм, наследование. Описание класса. Конструкторы и деструкторы.
презентация [74,8 K], добавлен 14.10.2013Анализ объектно-ориентированного программирования, имитирующего способы выполнения предметов. Основные принципы объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм. Понятие классов, полей, методов, сообщений, событий.
контрольная работа [51,7 K], добавлен 22.01.2013Методология объектно-ориентированного программирования в Java. Понятия класса, объекта и объектной переменной. Динамическая и статическая объектные модели. Логическое структурирование приложения. Наследование в Java. Отличия интерфейсов от классов.
курс лекций [547,2 K], добавлен 01.05.2014Свойства объектно-ориентированного языка программирования. Понятия инкапсуляции и наследования. Виртуальные функции и полиморфизм. Инициализация экземпляра объекта с помощью конструктора. Динамическое создание объектов. Совместимость объектных типов.
реферат [17,0 K], добавлен 15.04.2015Понятие алгоритма и его характеристики как основного элемента программирования. Формы представления алгоритмов, основные алгоритмические структуры. Структурное и событийно-ориентированное программирование. Объектно-ориентированное программирование.
реферат [86,0 K], добавлен 17.07.2008Объектно-ориентированное программирование как методология программирования, опирающаяся на инкапсуляции, полиморфизме и наследовании. Общая форма класса. Наследование как процесс, посредством которого один объект получает свойства другого объекта.
презентация [214,9 K], добавлен 26.10.2013Характеристики и свойства языков программирования. Исследование эволюции объектно-ориентированных языков программирования. Построение эволюционной карты механизмов ООП. Разработка концептуальной модели функционирования пользовательского интерфейса.
курсовая работа [2,6 M], добавлен 17.11.2014Технологии программирования. Сущность объектно-ориентированного подхода к программированию. Назначение Си, исторические сведения. Алфавит, базовые типы и описание данных. Структуры и объединения. Операторы Си++. Функции. Библиотека времени выполнения.
курс лекций [51,9 K], добавлен 03.10.2008Понятие объектно-ориентированного программирования, общая характеристика языков высокого уровня. Разработка программного обеспечения для реализации компьютерной игры "пинбол" с помощью императивного программирования в среде Microsoft Visual Basic.
курсовая работа [428,9 K], добавлен 19.09.2012Использование скриптового языка программирования для разработки web-приложений (сценариев). Изучение основ объектно-ориентированного программирования в языке PHP. Ознакомление со специальными методами для работы с классами. Назначение интерфейсов.
контрольная работа [25,1 K], добавлен 14.03.2015