Giter VIP home page Giter VIP logo

library's Introduction

version GitHub repo size Bitbucket open issues java-version

Проект по Обектно-Ориентирано Програмиране

Задание - "Библиотека"

Да се напише програма, реализираща информационна система, която поддържа библиотека. Програмата съхранява и обработва данни за наличните в момента книги във файл.

Всяка книга се характеризира със следните данни:

  • aвтор
  • заглавие
  • жанр
  • кратко описание
  • година на издаване
  • ключови думи
  • рейтинг
  • уникален номер за библиотеката

Системата поддържа два вида потребители — администратори и клиенти на библиотеката. Всеки потребител се характеризира със следните данни:

  • потребителско име
  • парола
  • ниво на достъп — указва дали потребителят е администратор или не

След като приложението отвори даден файл, то трябва да може да извършва посочените по-долу операции, в допълнение на общите операции (open, close, save, save as, help и exit):

Команда Описание
login След въвеждането на командата потребителят последователно е питан за потребителско име и парола. Ако потребител с посочените данни съществува в програмата, се извежда съобщение “Welcome, <username>!”, където <username> съответства на потребителското име. В противен случай се извежда съобщение за грешно име или парола. При повторен опит за login, се изкарва съобщение “You are already logged in.”
logout Потребителят напуска системата (програмата продължава да работи)
books all Извежда последователно за всяка книга следната информация: - заглавие, автор, жанр, персонален номер
books info <isbn_value> Извежда на екрана подробна информация за книга с персонален номер равен на <isbn_value>
Пример: books info 1124
books find <option> <option_string> <option> е едно от title, author или tag
<option_string> е стойността на критерия за търсене, може да съдържа интервали
Примери:
books find title Introduction to programming
books find author Stephen King
books find tag superhero
books sort <option> [asc | desc] <option> е едно от title, author, year, rating
asc означава възходящо сортиране (по подразбиране), а desc
означава низходящо сортиране
Примери:
books sort title
books sort year desc
users add <user> Добавя нов потребител с потребителско име <user> и парола <password>. Потребителят и неговата парола се записват във файл.
users remove <user> Изтрива потребителя с потребителско име <user> от файла.

При първоначално стартиране на програмата няма налични данни за книги. Има регистриран по подразбиране само един потребител с администраторски акаунт със следните данни:

  • потребителско име: admin
  • парола: i<3c++

Програмата очаква да се въведе команда, като след въвеждането и се изпълнява според дефинираните правила. Това продължава до въвеждането на командата “exit”, която прекратява програмата.

Долната таблица описва за всяка от командите дали е достъпна само при коректно влязъл потребител и дали е ограничена само за потребителя admin.

Команда Изисква потребител? Само за администратор?
open не не
close не не
save не не
saveas не не
help не не
login не не
logout да не
exit не не
books all да не
books find да не
books sort да не
books view да не
books add да да
books remove да да
users add да да
users remove да да
  • при въвеждане на паролата на екрана да се изписва символа * вместо реалния символ
  • при сортиране на книгите по зададен критерий, да се напише алгоритъм различен от пряка селекция и метода на мехурчето
  • Търсене на книга по зададен критерий да игнорира регистъра на буквите (малки или големи)

Пускане на програмата (.jar файла)

java -cp“library.jar;lib/* library.App

Разработка на проекта

За изработката на проекта са използвани следните езици за програмиране:

  1. Java
  2. XML

И следните библиотеки:

  1. JAXB

И следните инструменти:

  1. IntelliJ IDEA

Java XML JAXB IntelliJ IDEA

Източници

  1. https://www.geeksforgeeks.org/cocktail-sort/
  2. https://stackoverflow.com/a/45303637
  3. https://stackoverflow.com/a/1051705

Скрийншоти от изпълнението на програмата

Начална страница

1.png

Използване на програмата с примерни данни

2.png

3.png

4.png

5.png

library's People

Contributors

ngdechev avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.