Силоз 3: Информационни системи


Този силоз съдържа проекти, в рамките на които имате шанс да разработите микро-вариант на т. нар. “информационна система”, т.е. система за съхранение и обработка на информация, свързана с поддържането на конкретна реална система. Не е нужно системата да бъде пълно функционална и готова за използване в реална ситуация. Необходимо е обаче системата да позволява изпълнение на избраните операции, да реагира адекватно на подадените команди и да дава исканата информация на ползващия я потребител. Целта на проектите е да приложите знанията си за обработка и организиране в паметта на данни, които да представят реални обекти.


Библиотека


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


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


  • автор

  • заглавие

  • жанр

  • кратко описание

  • година на издаване

  • ключови думи

  • рейтинг

  • уникален номер за библиотеката


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


  • потребителско име

  • парола

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


Програмата работи в интерактивен текстов режим, като очаква въвеждането на команди от потребителя и реагира на тях по съответен начин. Всички команди са предварително дефинирани.


Команди достъпни от всички потребители:


login

След въвеждането на командата потребителят последователно е питан за потребителско име и парола. Ако потребител с посочените данни съществува в програмата, се извежда съобщение “Welcome, <username>!”, където <username> съответства на  потребителското име. В противен случай се извежда съобщение за грешно име или парола. При повторен опит за login, се изкарва съобщение “You are already logged in.”


logout

потребителят напуска системата (програмата продължава да работи)


help

извежда на екрана списък с всички възможни команди и краткото им описание

exit

програмата спира изпълнение (Press any key to continue . . .  :)


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 Stephen King

       books find superhero


books sort <option> <option_string>

<option> е един от следните стрингове {“year”, “rating”}

Извежда информация за книгите на екрана, в сортиран вид спрямо стойността на option.


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

  • потребителско име: “admin”

  • парола:   “i<3c++”


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



команда

логин

админ

help

не

не

login

не

не

logout

да

не

exit

не

не

books all

да

не

books find

да

не

books sort

да

не

books view

да

не

books add

да

да

books remove

да

да

users add

да

да

users remove

да

да


Бонус:

  • при въвеждане на паролата на екрана да се изписва  символа * вместо реалния символ

  • при сортиране на книгите по зададен критерий, да се напише алгоритъм различен от пряка селекция и метода на мехурчето

  • Търсене на книга по зададен критерий да игнорира регистъра на буквите (малки или големи)


Хотел


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


  • регистриране в стая (задава се номер на стая, начална и крайна дата и се въвежда коментар, например “семейство Симпсън”)

  • списък на свободни стаи

  • освобождаване на заета стая

  • справка за използването на стаи в даден период (по начална и крайна дата се извежда списък, в който за всяка стая, използвана в дадения период, се извежда и броя на дните, в които е била използвана)

  • намиране на подходяща (с необходимия брой легла) свободна стая по дадена начална и крайна дата

  • задаване на допълнителни изисквания за стаи (бебешка кошарка, със/без закуска, с изглед към морето/планината/двора)

  • да се напише алгоритъм, който предлага спешно намиране на стая за важен гост в случай на липса на свободни стаи за даден период. Алгоритъмът да предлага разместване на настанените от най-много две стаи


Склад


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


  • списък на наличните продукти в склада. За всеки продукт се съхранява и извежда следната информация:

    • име (описание - символен низ с произволна дължина)

    • срок на годност

    • дата на постъпване в склада

    • има не производител

    • мерна единица (килограми, литри)

    • налично количество

    • местоположение (секция/рафт/номер)

    • коментар (свободен текст)

  • записване на нова доставка (по име и количество се обновява наличното количество в склада)

  • изваждане на продукти от склада (по дадено име и изтеглено количество се намалява съответното количество в склада)

    • да се извежда грешка при опит за изваждане на неналични продукти

  • справка за наличността в даден период (по дадена начална и крайна дата се извежда списък с всички промени на наличността в дадения период, включително зареждания и извеждания на стоки)

  • разчиства склада от всички стоки, на които е изтекъл или предстои скоро да изтече срока на годност, като извежда информация за разчистените стоки


Бонус: Програмата да съхранява и обработва необходимите данни под формата на текстови файлове.


СУСИ


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


  • записване на студент към системата, чрез съхранение на следната информация:

    • Име — символен низ с произволна дължина

    • Факлутетен номер

    • Година на приемане

    • Текущо записан курс, специалност, група

    • всякаква допълнителна информация, нужна за изпълнение на заявките по-долу

  • промяна на статус (прекъсване на обучението, завършване)

  • справка за студенти в даден поток/курс/специалност (по дадени поток, курс и специалност се извеждат всички съответни студенти)

  • добавяне на оценки/изпити (за даден предмет, оценка и студент)

  • записване на задължителни/избираеми предмети

  • отпечатване на протоколи

  • академична справка за оценките на даден студент (списък с всички взети изпити и съответните оценки). Да се включи също и списък с невзетите изпити (предмети, които са записани, но за тях няма оценки), ако има такива


Бонус: Програмата да съхранява и обработва необходимите данни под формата на текстови файлове.


Билети


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


  • добавяне на представление (име и дата)

  • списък със свободни места за дадено представление (непродадени и незапазени билети)

  • запазване на билет (въвежда се номер на място и коментар, примерно “За Хоумър Симпсън”)

  • закупуване на билет. За всеки билет се издава уникален сложен код, който съдържа информация за съответното място

  • получаване на списък на запазените, но неплатени (незакупени) билети (за дадено представление или за всички представления)

  • отмяна на резервация

  • проверка за валидност на билет (по даден код се извлича номера на мястото или се връща грешка, ако кодът е невалиден)

  • справка за закупени билети в даден период (по дадена начална и крайна дата се извежда списък с всички изнесени представления като за всяко отделно представление се извежда и количеството продадени билети)


Бонус: Програмата да съхранява и обработва необходимите данни под формата на текстови файлове.


Личен календар


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


  • запазване/отказване на час за среща. Записва се начало на среща (ден, час), край на среща, име (кратко описание - например “зъболекар”) и коментар

  • отпечатване на дневна програма, като по даден ден се извежда хронологичен списък с всички ангажименти за деня

  • търсене на среща: по име се извеждат останалите данни се срещата

  • определяне на някои дни като неработни (въвежда се коментар, напр. “ден на труда”)

  • извеждане на статистика за натовареност: по дадени начална и крайна дата се извеждат подреден списък с дните от седмицата по критерия “брой заети часове”

  • намиране на свободно място за среща: по дадена начална дата и желана продължителност на срещата търси дата, на която е възможно да се запази такава среща, но само в работни дни и не преди 8 часа сутринта или след 5 часа вечерта.


Бонус: Програмата да съхранява и обработва необходимите данни под формата на текстови файлове.



Последно модифициране: петък, 8 ноември 2013, 16:05