Выдача книг в библиотеке

Объектно-ориентированное программирование – расширение программирования, в котором концепциями являются понятия классов и объектов. Снижение времени, затрачиваемого библиотекарем на оформление различных документов, связанных с выдачей и приемом книг.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.