Задача по пик II еф редовно обучение, 2008/2009 г



Дата24.03.2017
Размер387.97 Kb.
#17652
ТипЗадача
Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ....................................................................................., Фак. №..................




  1. Проектирайте и реализирайте приложение, което представлява малък калкулатор, реализиращ действията събиране, изваждане, умножение и деление.

    1. Декларирайте интерфейс РЕЗУЛТАТ (Result) с един метод showResult, който връща символното представяне на резултата.

    2. Декларирайте клас КАЛКУЛАТОР (Calculator), който реализира интерфейса РЕЗУЛТАТ и съдържа информация за ляв операнд, десен операнд и операция с private достъп.

      1. Добавете конструктор с три параметъра за инициализиране на ляв операнд, десен операнд и операция.

      2. Добавете метод събиране, който извършва операцията събиране.

      3. Добавете метод изваждане, който извършва операцията изваждане.

      4. Добавете метод умножение, който извършва операцията умножение.

      5. Добавете метод деление, който извършва операцията деление.

      6. Реализирайте метода showResult, който връща символното представяне на въведения израз и получения резултат (напр. 2.5-3.7=-1.2, ако операцията е изваждане).

    3. Напишете фрейм/аплет. Декларирайте поле от клас КАЛКУЛАТОР. Декларирайте компонентите на графичния потребителски интерфейс: две текстови полета за въвеждане на двата операнда; четири бутона с надписи +, -, * и / за избор на една от четирите операции; бутон с надпис C за изчистване съдържанието на текстовите полета; и текстово поле за изобразяване на резултата.


Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ...................................................................................., Фак. №..................




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

    1. Декларирайте клас КАЛКУЛАТОР (Calculator) с информация за ляв операнд, десен операнд и операция с private достъп.

      1. Добавете конструктор с три параметъра за инициализиране на ляв операнд, десен операнд и операция.

      2. Добавете метод събиране, който извършва операцията събиране.

      3. Добавете метод изваждане, който извършва операцията изваждане.

      4. Добавете метод умножение, който извършва операцията умножение.

      5. Добавете метод деление, който извършва операцията деление.

    2. Декларирайте клас СЛОЖЕН КАЛКУЛАТОР (SophisticatedCalculator) като наследник на класа КАЛКУЛАТОР.

      1. Добавете конструктор с три параметъра за инициализиране на ляв операнд, десен операнд и операция.

      2. Добавете метод факториел, който изчислява факториела от левия операнд.

    3. Напишете фрейм/аплет. Декларирайте поле от клас СЛОЖЕН КАЛКУЛАТОР. Декларирайте компонентите на графичния потребителски интерфейс: едно текстово поле за вход и изход; шест бутона с надписи +, -, *, /, ! и =; и бутон с надпис C за изчистване съдържанието на текстовите полета;. Например, за да съберем три числа, въвеждаме първото и натискаме бутона (+) – отпечатва се първото число, след това въвеждаме второто и отново натискаме (+)– отпечатва се сумата от първите две числа, накрая въвеждаме третото и натискаме (=), за да изобразим сумата от трите числа.



Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ....................................................................................., Фак. №..................




  1. Проектирайте и реализирайте приложение, което представлява малък калкулатор, реализиращ действията събиране, изваждане, умножение и деление на дроби.

    1. Декларирайте клас РАЦИОНАЛНО ЧИСЛО (Rational) с информация за числител и знаменател от целочислен тип с private достъп.

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

      2. Добавете метод събиране, който извършва операцията събиране.

      3. Добавете метод изваждане, който извършва операцията изваждане.

      4. Добавете метод умножение, който извършва операцията умножение.

      5. Добавете метод деление, който извършва операцията деление.

    2. Декларирайте клас ДРОБЕН КАЛКУЛАТОР (RationalCalculator) с информация за ляв операнд от тип РАЦИОНАЛНО ЧИСЛО, десен операнд от тип РАЦИОНАЛНО ЧИСЛО и операция с private достъп.

      1. Добавете конструктор с три параметъра за инициализиране на ляв операнд, десен операнд и операция.

      2. Добавете метод, който извършва разрешените операции с рационални числа, като вдига изключение при неразрешена операция;

    3. Напишете фрейм/аплет. Декларирайте поле от клас ДРОБЕН КАЛКУЛАТОР. Декларирайте компонентите на графичния потребителски интерфейс: четири текстови полета за въвеждане на числителите и знаменателите на двата операнда; четири бутона с надписи +, -, * и / за избор на една от четирите операции; бутон с надпис C за изчистване съдържанието на текстовите полета; текстово поле за изобразяване на резултата.



Курсова задача по ПИК II ЕФ - редовно обучение, 2008 / 2009г.

Студент : ...................................................................................., Фак. №..................




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

    1. Декларирайте клас ПИЦА (Pizza) с информация за име на пица и цена с private достъп.

      1. Добавете конструктор с два параметъра, който създава пица с име и цена.

      2. Напишете метод, който изчислява сумата, която трябва да се заплати за определенo количество от дадената пица.

      3. Напишете метод, който връща името на пица.

      4. Напишете метод, който връща цената на пица.

      5. Предефинирайте метода toString, който връща символна информация за името и цената на пица.

    2. Декларирайте клас ПИЦАРИЯ (PizzaShop) с информация за меню от пици (за менюто използвайте класа ArrayList или масив от тип ПИЦА).

      1. Добавете конструктор без параметри, в който създайте празно меню.

      2. Напишете метод, който търси пица от менюто по зададено име и връща нейната цена.

    3. Напишете фрейм/аплет. Декларирайте поле от тип ПИЦАРИЯ и го инициализирайте с информация за предлаганите пици. Декларирайте компонентите на графичния потребителски интерфейс: списък, съдържащ информация за предлаганите пици с техните цени, етикет и текстово поле за въвеждане на желаното количество за закупуване, етикет и текстово поле за изобразяване на информация за поръчката с общата й сума, бутон „Поръчай“, бутон „Изход“. При избор на пица от списъка, въвеждане на желаното количество и натискане на бутона „Поръчай“ се изобразява общата сума на поръчката в съответното поле. Приложението дава възможност за поръчка на различни пици, като при натискане на бутона „Изход“ поръчката се прекратява.


Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ....................................................................................., Фак. №..................




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

    1. Декларирайте графична компонента като клас ПРАВОЪГЪЛЕН ТРИЪГЪЛНИК (Triangle), който наследява класа JComponent и съдържа информация за двата катета и хипотенуза с private достъп.

      1. Добавете конструктор с два параметъра (двата катета), който инициализира полетата (дължината на хипотенузата се изчислява) и задава предпочитания размер 100x100 на графичната компонента правоъгълен триъгълник.

      2. Предефинирайте метода paintComponent, който изчертава правоъгълния триъгълник.

      3. Напишете метод за изчисляване дължината на хипотенузата.

    2. Напишете фрейм/аплет. Декларирайте компонентите на графичния потребителски интерфейс: триъгълник от клас Triangle; панел, в който се разполагат три етикета и три текстови полета за въвеждане на данни за катетите (дължините им трябва да бъдат между 1 и 100) и за изобразяване на дължината на хипотенузата; панел, в който се разполага графичната компонента триъгълник; бутон, при чието натискане се изчертава правоъгълният триъгълник.


Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ....................................................................................., Фак. №..................




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

    1. Декларирайте клас БАНКОВА СМЕТКА (BankAccount) с информация за баланс от тип double с private достъп.

      1. Добавете конструктор без параметри, който създава банкова сметка с нулев баланс.

      2. Добавете конструктор с един параметър, който създава банкова сметка с начален баланс.

      3. Напишете метод, моделиращ внасяне на определена сума пари към банковата сметка.

      4. Напишете метод, моделиращ теглене на определена сума пари от банковата сметка.

      5. Напишете метод, който връща текущия баланс.

    2. Декларирайте клас СПЕСТОВНА СМЕТКА (SavingsAccount) като наследник на класа БАНКОВА СМЕТКА с информация за лихвен процент от тип double с private достъп.

      1. Добавете конструктор с един параметър, който създава спестовна сметка с определен лихвен процент.

      2. Напишете метод, моделиращ олихвяване на спестовна сметка по следния алгоритъм:

лихва ← текущ баланс * лихвен процент / 100

баланс ← баланс + лихва



    1. Напишете фрейм/аплет. Декларирайте компонентите на графичния потребителски интерфейс: три етикета и три текстови полета за началната депозирана сума на спестовна сметка, годишния лихвен процент и броя на годините. Декларирайте поле от клас СПЕСТОВНА СМЕТКА. Добавете бутон „Изчисли“ и текстова област, която изобразява баланса на спестовната сметка след края на всяка година.


Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ...................................................................................., Фак. №..................




  1. Проектирайте и реализирайте приложение, което определя местата в самолет. Приемете, че самолетът има 20 места за първа класа (5 реда по 4 места, разделени от пътека) и 180 места за икономична класа (30 реда по 6 места, разделени от пътека).

    1. Декларирайте клас ПАСАЖЕР (Passanger) с информация за: име и класа с private достъп.

      1. Добавете конструктор с два параметъра, който създава пасажер с определено име и класа.

      2. Предефинирайте метода toString, който връща символното представяне на класа.

    2. Напишете фрейм/аплет. Декларирайте поле за списък на пасажерите от клас ArrayList. Декларирайте компонентите на графичния потребителски интерфейс: етикет с надпис „Име“ и текстово поле за въвеждане на име на пасажер, етикет с надпис „Клас“ и два радио бутона за избор на класа (Първа/Икономична), етикет с надпис „Предпочитано място“ и три радио бутона за избор на място (До прозорец/До пътека, ако пасажерът пътува в първа класа или До прозорец/По среда/До пътека, ако пасажерът пътува в икономична класа, панел, в който се изобразяват местата в самолета (използвайте бутони и менажера на разположението GridLayout). Добавете следните бутони: „Добави“, който търси предпочитаното място за пасажера и ако намери свободно, го маркира като заето, ако не намери желаното място, извежда съобщение за грешка; „Изобрази“, който изобразява местата в самолета; и „Изход“, който затваря фейма/аплета.


Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ....................................................................................., Фак. №..................




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

    1. Декларирайте клас КНИГА (Book) с информация за автор, заглавие, издателство и цена с private достъп.

      1. Добавете конструктор с четири параметъра, който създава книга.

      2. Напишете метод, който връща името на книга.

      3. Напишете метод, който връща автора на книга.

      4. Напишете метод, който връща цената на книга.

      5. Предефинирайте метода toString, който връща символна информация за книга.

    2. Декларирайте клас КНИЖАРНИЦА (BookStore) с информация за списък от книги (за списъка с книги използвайте класа ArrayList или масив от тип КНИГА).

      1. Добавете конструктор без параметри, в който създайте празен списък от книги.

      2. Напишете метод, който търси книга от списъка по заглавие.

      3. Напишете метод, който търси книги от списъка по автор.

    3. Напишете фрейм/аплет. Декларирайте поле от тип КНИЖРАНИЦА и го инициализирайте с информация за предлаганите книги. Декларирайте компонентите на графичния потребителски интерфейс: списък, съдържащ информация за наличните книги, етикет и текстово поле за въвеждане на желаното количество, етикет и текстово поле за въвеждане на заглавие, етикет и текстово поле за въвеждане на автор, етикет и текстово поле за изобразяване на общата сума на поръчката, бутон „Търсене по заглавие“, бутон „Търсене по автор“, бутон „Всички книги“, бутон „Поръчай“, бутон „Изход“. Списъкът съдържа информация за всички налични книги. Ако се въведе заглавие на книга и се натисне бутонът „Търсене по заглавие“, списъкът изобразява намерената книга. Ако се въведе име на автор и се натисне бутонът „Търсене по автор“, списъкът изобразява наличните книги от този автор. При натискане на бутона „Всички книги“ отново в списъка се изобразява информация за всички налични книги. При избор на книга от списъка, въвеждане на желаното количество и натискане на бутона „Поръчай“ се изобразява общата сума на поръчката в съответното поле. Приложението дава възможност за поръчка на различни книги, като при натискане на бутона „Изход“ поръчката се прекратява.



Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ....................................................................................., Фак. №..................




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

    1. Декларирайте клас БАНКОВА СМЕТКА (BankAccount) с информация за баланс от тип double с private достъп.

      1. Добавете конструктор без параметри, който създава банкова сметка с нулев баланс.

      2. Добавете конструктор с един параметър, който създава банкова сметка с начален баланс.

      3. Напишете метод, моделиращ внасяне на определена сума пари към банковата сметка.

      4. Напишете метод, моделиращ теглене на определена сума пари от банковата сметка.

      5. Напишете метод, който връща текущия баланс.

    2. Декларирайте клас РАЗПЛАЩАТЕЛНА СМЕТКА (CheckingAccount) като наследник на класа БАНКОВА СМЕТКА с информация за константен брой банкови операции за месец без такса (напр. 3), константна комисионна за всяка допълнителна банкова операция (напр. 2.0) и брояч на банковите операции с private достъп.

      1. Добавете конструктор с един параметър, който създава разплащателна сметка с начален баланс.

      2. Предефинирайте метода, моделиращ внасяне на определена сума пари към разплащателна сметка по следния алгоритъм:

брояч на банкови операции ← брояч на банкови операции + 1

внасяне на сумата към баланса



      1. Предефинирайте метода, моделиращ теглене на определена сума пари от разплащателна сметка по следния алгоритъм:

брояч на банкови операции ← брояч на банкови операции + 1

изтегляне на сумата от баланса



      1. Напишете метод, моделиращ удръжка на комисионна от разплащателна сметка по следния алгоритъм:

ако брояч на банкови операции > разрешен брой банкови операции без такса

такса ← комисионна * (брояч на банкови операции – разрешен брой)

изтегляне на таксата от баланса

брояч на банкови операции ← 0



    1. Напишете фрейм/аплет. Декларирайте компонентите на графичния потребителски интерфейс: четири етикета и четири текстови полета за началната депозирана сума на разплащателна сметка, брой на извършените банкови операции, разрешен брой банкови операции без такса и комисионна. Декларирайте поле от клас РАЗПЛАЩАТЕЛНА СМЕТКА. Добавете бутон „Изчисли“ и текстово поле, което изобразява баланса на разплащателната сметка в края на месеца.


Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ....................................................................................., Фак. №..................




  1. Проектирайте и реализирайте приложение, което въвежда име на продукт и количество, намира цената на продукта с въведеното име. При натискане на бутон изобразява общата сума на закупените продукти.

    1. Декларирайте клас ПРОДУКТ (Product) с информация за име на продукт, цена и количество с private достъп.

      1. Добавете конструктор с три параметъра, който създава продукт с име, цена и количество.

      2. Напишете метод, който връща името на продукт.

      3. Напишете метод, който връща цената на продукт.

    2. Декларирайте клас ФАКТУРА (Invoice) с информация за списък от закупените продукти (за списъка от закупените стоки използвайте класа ArrayList).

      1. Добавете конструктор без параметри, в който създайте празен списък за закупени стоки.

      2. Напишете метод, който добавя продукт към списъка по следния алгоритъм:

създава продукт

добавя продукта към списъка



      1. Напишете метод, който изчислява общата сума, която трябва да се заплати за продуктите от списъка.

    1. Напишете фрейм/аплет. Декларирайте поле от клас ФАКТУРА. Декларирайте масив от тип ПРОДУКТ за наличните продукти. Напишете метод за търсене на цената на продукт по зададено име. Декларирайте компонентите на графичния потребителски интерфейс: три етикета и три текстови полета за име на продукт, цена и количество, бутон „Изчисли“, етикет с надпис „Обща сума“ и текстово поле за резултата. При въвеждане на име на продукт неговата цена се изобразява в полето за цена. При натискане на бутона „Изчисли“ се изобразява общата сума на закупените продукти в полето за резултата.



Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ....................................................................................., Фак. №..................




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

    1. Декларирайте клас СРЕЩА (Appointment) с информация за: дата на среща, начално време, крайно време и описание с private достъп (напр. 10.03.2008 17:30 18:30 зъболекар).

      1. Добавете конструктор с четири параметъра, който създава среща на определена дата, начален и краен час, описание.

      2. Предефинирайте метода toString, който връща символното представяне на класа.

    2. Декларирайте клас СПИСЪК ОТ СРЕЩИ (AppointmentList) с информация за списък от уговорени срещи (за списъка с уговорените срещи използвайте класа ArrayList или масив от тип Appointment).

      1. Добавете конструктор без параметри, в който създайте празен списък със срещи.

      2. Напишете метод, който добавя среща към списъка по следния алгоритъм:

създава среща

добавя срещата към списъка



      1. Напишете метод, който отменя, т.е. изтрива среща от списъка.

      2. Напишете метод, който създава списък от срещи за дадена дата.

    1. Напишете фрейм/аплет. Декларирайте поле от клас СПИСЪК ОТ СРЕЩИ. Декларирайте компонентите на графичния потребителски интерфейс: четири етикета и четири текстови полета за въвеждане на данни за дата, начален и краен час, описание на среща; текстова област за резултата. Добавете следните бутони: „Добави“, който добавя среща към списъка със срещи; „Отмени“, който изтрива зададена среща от списъка; и „Списък от срещи“, който в текстовата област за резултата изобразява списъка от срещи за датата, въведена в полето за дата.



Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ....................................................................................., Фак. №..................




  1. Проектирайте и реализирайте приложение, което моделира заемането на книги в библиотека – дава възможност за избор на книги от каталога и заемането им с определяне на датата за връщане (приемете, че книгата трябва да се върне три месеца след датата на нейното заемане).

    1. Декларирайте клас КНИГА (Book) с информация за номер, автор, заглавие и дата на връщане с private достъп.

      1. Добавете конструктор с четири параметъра, който създава книга.

      2. Напишете метод, който връща името на книга.

      3. Напишете метод, който връща автора на книга.

      4. Напишете метод, който връща датата на заемане на книга.

    2. Декларирайте клас БИБЛИОТЕКА (Library) с информация за списък от книги (за списъка с книги използвайте класа ArrayList или масив от тип КНИГА).

      1. Добавете конструктор без параметри, в който създайте празен списък от книги.

      2. Напишете метод, който търси книга от списъка по заглавие.

      3. Напишете метод, който търси книги от списъка по автор.

    3. Напишете фрейм/аплет. Декларирайте поле от тип БИБЛИОТЕКА и го инициализирайте с информация за книгите. Декларирайте компонентите на графичния потребителски интерфейс: три етикета и три текстови полета за заглавие на книга, автор и дата на връщане; бутони „Търсене по заглавие“, „Търсене по автор“ и „Заеми“; списък с информация за книги. При въвеждане на заглавие на книга и натискане на бутона „Търсене по заглавие“ данните за автора и дата на връщане на намерената книга се изобразяват в съответните полета и ако книгата не е заета, полето за дата на връщане автоматично се попълва с дата, която е три месеца след текущата дата. При натискане на бутона „Заеми“ информацията за датата на връщане се записва в масива. Ако книгата е била заета, старата дата за връщане не се променя и се извежда съобщение, че книгата е заета. При въвеждане на автор и натискане на бутона „Търсене по автор“ намерените книги се изобразяват в списъка и при избор на книга отново се извършват горните действия.



Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ....................................................................................., Фак. №..................




  1. Проектирайте и реализирайте приложение, което моделира работата с каталога в библиотека – дава възможност за добавяне, изтриване и търсене на книги в каталога.

    1. Декларирайте клас КНИГА (Book) с информация за номер, автор, заглавие и издателство с private достъп.

      1. Добавете конструктор с четири параметъра, който създава книга.

      2. Напишете метод, който връща името на книга.

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

    2. Декларирайте клас КАТАЛОГ (Catalog) с информация за списък от книги (за списъка с книги използвайте класа ArrayList или масив от тип КНИГА).

      1. Добавете конструктор без параметри, в който създайте празен списък от книги.

      2. Напишете метод, който добавя книга към каталога по следния алгоритъм:

създава книга

добавя книга към каталога



      1. Напишете метод, който изтрива книга от каталога с дадено заглавие.

      2. Напишете метод, който търси книга от каталога по заглавие.

    1. Напишете фрейм/аплет. Декларирайте поле от клас КАТАЛОГ и го инициализирайте с наличните книги в библиотеката. Декларирайте компонентите на графичния потребителски интерфейс: четири етикета и четири текстови полета за номер на книга, автор, заглавие и издателство; текстова област за резултата. Добавете следните бутони: „Добави“ – добавя книга към каталога; „Изтрий“ – изтрива книга от каталога; „Търси“ – изобразява данните за намерената книга в текстовата област за резултата; „Изчисти“ – изчиства всички текстови полета.



Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ...................................................................................., Фак. №..................



  1. Проектирайте и реализирайте приложение, което моделира работата с телефонен бележник – дава възможност за добавяне, изтриване и търсене на записи в телефонен бележник. Информацията в телефонния бележник е подредена по азбучен ред на имената.

    1. Декларирайте клас ЗАПИС (Record) с информация за име и телефонен номер с private достъп.

      1. Добавете конструктор с два параметъра, който създава запис.

      2. Напишете метод, който връща името.

      3. Напишете метод, който връща телефонния номер.

    2. Декларирайте клас ТЕЛЕФОНЕН БЕЛЕЖНИК (TelephoneBook) с информация за списък от записи (за списъка със записи използвайте масив от тип ЗАПИС), брой на записите и максимален брой записи.

      1. Добавете конструктор без параметри, в който създайте празен телефонен бележник.

      2. Напишете метод, който добавя запис в телефонния бележник по следния алгоритъм:

създава запис

ако има място в телефонния бележник

за i=брой-1 до i>=0 и запис.име<телефонен бележникi.име стъпка-1 повтаряй

телефонен бележникi+1 ¬ телефонен бележникi

телефонен бележникi+1 ¬ запис

брой ¬ брой + 1

успешна операция

в противен случай

неуспешна операция



      1. Напишете метод, който търси телефон от телефонния бележник по дадено име (използвайте метода на двоично търсене):

ако телефонният бележник е празен

неуспешна операция

в противен случай

ляво ¬ 0

дясно ¬ брой-1

докато ляво <= дясно

повтаряй

среда ¬ (ляво+дясно) / 2

ако запис.име < телефонен бележниксреда.име

дясно ¬ среда - 1

в противен случай

ако запис.име > телефонен бележниксреда.име

ляво ¬ среда + 1

в противен случай

индекс ¬ среда

успешна операция

неуспешна операция


      1. Напишете метод, който изтрива запис от телефонния бележник с дадено име по следния алгоритъм:

ако запис за изключване е намерен

за j=намереното място до брой-1стъпка 1

повтаряй

телефонен бележникj ¬ телефонен бележникj+1

брой ¬ брой - 1

успешна операция

неуспешна операция


    1. Напишете фрейм/аплет. Декларирайте поле от клас ТЕЛЕФОНЕН БЕЛЕЖНИК и го инициализирайте с налични имена и телефонни номера. Декларирайте компонентите на графичния потребителски интерфейс: два етикета и две текстови полета за име и телефонен номер; бутони: „Добави“ – при въведени име и телефонен номер добавя запис към телефонния бележник; „Изтрий“ – при въведено име изтрива запис от телефонния бележник; „Търси“ – при въведено име изобразява телефонния номер , ако името не е намерено, извежда съобщение; „Изчисти“ – изчиства всички текстови полета.


Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ...................................................................................., Фак. №..................




  1. Проектирайте и реализирайте приложение за работа с полиноми

.

Приемете, че членовете се пазят в нарастващ ред на степента на полинома.



    1. Декларирайте клас ЧЛЕН (Term) на полином с информация за: коефициент и степен с private достъп.

      1. Добавете конструктор с два параметъра, който създава член на полином с определен коефициент и степен.

      2. Предефинирайте метода toString, който връща символното представяне на класа.

    2. Декларирайте клас ПОЛИНОМ (Polynomial), който запазва членовете си в нарастващ ред на степента на полинома (използвайте класа ArrayList).

      1. Добавете конструктор без параметри, който създава празен полином.

      2. Напишете метод insert с два параметъра, който добавя член към полинома по следния алгоритъм:

създава член

добавя члена към полинома

Например полиномът може да се конструира като:

Polynomial p = new Polynomial();

p.insert(-5,0);

p.insert(-1,1);

p.insert(3,6);

p.insert(5,9);



      1. Напишете метод, който изчислява сумата от два полинома , където

по следния алгоритъм:

докато p ¹ ПРАЗНО и q ¹ ПРАЗНО повтаряй

ако степен(p) = степен(q)

ако коефициент(p) + коефициент(q) ¹ 0

добави в r член(коефициент(p)+коефициент(q), степен(p))

придвижи p към следващия член

придвижи q към следващия член

в противен случай

придвижи p към следващия член

придвижи q към следващия член

в противен случай

ако степен(p) >степен(q)

добави в r член(коефициент(p), степен(p))

придвижи p към следващия член

в противен случай

добави в r възел(коефициент(q), степен(q))

придвижи q към следващия възел

докато p ¹ ПРАЗНО повтаряй

добави в r член(коефициент(p), степен(p))

придвижи p към следващия член

докато q ¹ ПРАЗНО повтаряй

добави в r член(коефициент(q), степен(q))

придвижи q към следващия член

върни r


      1. Предефинирайте метода toString,, който отпечатва полином.

    1. Напишете фрейм/аплет. Декларирайте три полета от клас ПОЛИНОМ. Декларирайте компонентите на графичния потребителски интерфейс: четири етикета и четири текстови полета за въвеждане на данни за коефициент и степен на два полинома; текстова област за резултата. Добавете два бутона „Добави“, които добавят членове към всеки от двата полинома; два бутона „Изобрази“, които изобразяват съответните полиноми; бутон „Сума“, който изчислява сумата от двата полинома и изобразява резултата. Забележка: Въвеждайте степените на всеки полином в нарастващ ред.


Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ....................................................................................., Фак. №..................




  1. Проектирайте и реализирайте приложение, което определя местата в самолет. Приемете, че самолетът има 20 места за първа класа (5 реда по 4 места, разделени от пътека) и 180 места за икономична класа (30 реда по 6 места, разделени от пътека).

    1. Декларирайте клас ПАСАЖЕР (Passanger) с информация за: име и класа с private достъп.

      1. Добавете конструктор с два параметъра, който създава пасажер с определено име и класа.

      2. Предефинирайте метода toString, който връща символното представяне на класа.

    2. Напишете фрейм/аплет. Декларирайте поле за списък на пасажерите от клас ArrayList. Декларирайте компонентите на графичния потребителски интерфейс: етикет с надпис „Име“ и текстово поле за въвеждане на име на пасажер, етикет с надпис „Клас“ и два радио бутона за избор на класа (Първа/Икономична), етикет с надпис „Предпочитано място“ и три радио бутона за избор на място (До прозорец/До пътека, ако пасажерът пътува в първа класа или До прозорец/По среда/До пътека, ако пасажерът пътува в икономична класа, панел, в който се изобразяват местата в самолета (използвайте бутони и менажера на разположението GridLayout). Добавете следните бутони: „Добави“, който търси предпочитаното място за пасажера и ако намери свободно, го маркира като заето, ако не намери желаното място, извежда съобщение за грешка; „Изобрази“, който изобразява местата в самолета; и „Изход“, който затваря фейма/аплета.



Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ...................................................................................., Фак. №..................




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

    1. Декларирайте клас СРЕЩА (Appointment) с информация за: дата на среща, начално време, крайно време и описание с private достъп (напр. 10.03.2008 17:30 18:30 зъболекар).

      1. Добавете конструктор с четири параметъра, който създава среща на определена дата, начален и краен час, описание.

      2. Предефинирайте метода toString, който връща символното представяне на класа.

    2. Декларирайте клас СПИСЪК ОТ СРЕЩИ (AppointmentList) с информация за списък от уговорени срещи (за списъка с уговорените срещи използвайте класа ArrayList или масив от тип Appointment).

      1. Добавете конструктор без параметри, в който създайте празен списък със срещи.

      2. Напишете метод, който добавя среща към списъка по следния алгоритъм:

създава среща

добавя срещата към списъка



      1. Напишете метод, който отменя, т.е. изтрива среща от списъка.

      2. Напишете метод, който създава списък от срещи за дадена дата.

    1. Напишете фрейм/аплет. Декларирайте поле от клас СПИСЪК ОТ СРЕЩИ. Декларирайте компонентите на графичния потребителски интерфейс: четири етикета и четири текстови полета за въвеждане на данни за дата, начален и краен час, описание на среща; текстова област за резултата. Добавете следните бутони: „Добави“, който добавя среща към списъка със срещи; „Отмени“, който изтрива зададена среща от списъка; и „Списък от срещи“, който в текстовата област за резултата изобразява списъка от срещи за датата, въведена в полето за дата.


Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ...................................................................................., Фак. №..................




  1. Да се проектира и напише приложение за въвеждане и обработка на резултати от състезание по биатлон.

    1. Дефинирайте клас БИАТЛОН (Biathlon ) с полета за: име на биатлонист – от тип String; time – състезателно време в минути от реален тип double и брой пропуснати мишени – от тип int, декларирани като private. Напишете:

      1. конструктор с три параметъра за инициализиране на името, състезателното време и броя пропуснати мишени ;

      2. методи за достъп до всички полета на класа;

      3. метод TotalTime() от реален тип double за определяне на крайния резултат на всеки състезател: към състезателното време се добавя по 1 наказателна минута за всяка пропусната мишена;

      4. предефиниран метод toString(), който връща информацията за биатлонист – име, пропуснати мишени, крайно време.

    2. Напишете приложение КЛАСИРАНЕ ( RankList ), използващо създадения клас, което има следните елементи:

      1. Текстови полета и съответните им етикети за въвеждане на данни за всеки състезател: име, състезателно време, брой пропуснати мишени;

      2. Текстова област за извеждане на информация, с предвиден вертикален плъзгач;

      3. Бутон “Въведи” за записване на данните в масив;

      4. Бутон “Класиране” за подреждане на състезателите по броя точки;

      5. Бутон “Изчисти” за изчистване на текстовите полета;

    3. Приложението да има и следната функционалност:

      1. Да създава масив от информация за състезатели;

      2. Да реализира методи за обработка на следните събития:

        • при натиснат бутон “Въведи” – проверява за коректно въведени данни, добавя съответния състезател към масива, изчиства областта и извежда информацията;

        • при натиснат бутон “Изчисти” – изчиства всички текстови полета;

        • при натиснат бутон “Класиране” – изчиства областта за резултата, сортира масива по възходящ ред на крайното състезателно време и извежда резултат.

        • реализация на търсене по име – при въвеждане на име и натиснат клавиш “Enter” – изчиства текстовата област и извежда информация за търсения състезател.



Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ...................................................................................., Фак. №..................




  1. Проектирайте и реализирайте приложение, което въвежда координати на центъра и радиус на окръжност. При натискане на бутон Draw изчертава окръжността и определя лицето и дължината, а при натискане на бутон Clear - изчиства полетата и графичната област.

    1. Декларирайте графична компонента като клас ОКРЪЖНОСТ (CircleComp), който наследява класа JComponent и съдържа информация за координати Х и У на центъра и радиус с private достъп.

      1. Добавете конструктор с три параметъра (абсциса, ордината, радиус), който инициализира полетата и задава предпочитания размер 100x100 на графичната компонента окръжност.

      2. Напишете методи за достъп до полетата, метод setData() за задаване на новите стойности и метод clearData() за нулиране на стойностите.

      3. Предефинирайте метода paintComponent() за изчертаване на окръжността.

      4. Напишете методи за определяне на дължината на окръжността и площта на кръга.

    2. Напишете фрейм/аплет. Декларирайте компонентите на графичния потребителски интерфейс: окръжност от клас CircleComp; панел DATA, в който се разполагат три етикета и три текстови полета за въвеждане на данни за абсциса, ордината и радиус; етикет и текстова област за извеждане на резултати; панел VIEW, в който се разполагат графичната компонента окръжност, панелът DATA, бутон за изчертаване и бутон за изчистване .


Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ...................................................................................., Фак. №..................




  1. Да се проектира и напише приложение за въвеждане и обработка на резултати от футболни мачове.

    1. Дефинирайте клас ОТБОР (FootballTeam) с полета за: име на отбор – от тип String; брой спечелени срещи, брой загуби и брой равенства – от тип int, декларирани като private. Напишете:

      1. конструктор с четири параметъра за инициализиране на името, победите, загубите и равенствата ;

      2. методи за достъп до всички полета на класа;

      3. метод TotalScore() от тип int за определяне на крайния резултат на всеки отбор: за всяка победа се добавят по 3 точки, за равенство – 1, за загуба – 0;

      4. предефиниран метод toString(), който връща информацията за даден отбор – име, победи, равенства, загуби, точки.

    2. Напишете приложение КЛАСИРАНЕ ( RankList ) за въвеждане и обработка на резултати от футболен сезон, което използва създадения клас. Приложението да има следните елементи:

      1. Текстови полета и съответните им етикети за въвеждане на данни за всеки отбор: име, брой победи, брой равенства, брой загуби;

      2. Текстова област за извеждане на информация, с предвидени вертикален и хоризонтален плъзгач;

      3. Меню с елементи :

        • Въведи” за записване на данните в масив;

        • Класиране” за подреждане на отборите по броя точки;

        • Изчисти” за изчистване на текстовите полета;

        • Изход”.

    3. Приложението да има и следната функционалност:

      1. Да създава масив от информация за отбори ;

      2. Да реализира методи за обработка на следните събития:

      3. при избор на елемент “Въведи” – проверява за коректно въведени данни, добавя съответния отбор към масива, изчиства областта и извежда информацията;

      4. при избор на елемент “Изчисти” – изчиства всички текстови полета;

      5. при избор на елемент “Класиране” – изчиства областта за резултата, сортира масива по възходящ ред на броя точки за всеки отбор и извежда резултат.

      6. реализация на търсене по име – при въвеждане на име и натиснат клавиш “Enter” – изчиства текстовата област и извежда информация за търсения отбор.



Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ...................................................................................., Фак. №..................




  1. Да се проектира и създаде фрейм/ аплет, като при всяко кликване с мишката във полето на аплета се изчертава окръжност със случайно избран радиус в интервала (10,50) и с различен цвят.

    1. Да се дефинира клас ОКРЪЖНОСТ (Circle) с полета – координати на център Х и У, радиус R, цвят.

    2. Да се дефинира конструктор с 4 параметъра и метод draw() за изчертаване на окръжност със зададен цвят.

    3. Да се създаде като графичен компонент клас CircleComp, които наследява класа JComponent и интерфейса MouseListener и съдържа информация за окръжностите – масив от тип CircleComp или ArrayList.

      1. В конструктора на класа да се зададе размер на панела 100х100 и да се добави слушател за събития от мишката;

      2. да се предефинират метода paintComponent() за изчертаване на окръжностите

      3. да се предефинират методите на интерфейса. За генериране на радиус да се използва метода Math.random(). За избор на цвят – класа Color.


Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ...................................................................................., Фак. №..................




  1. Да се проектира и създаде аплет/фрейм, в който при посочване с мишката на 3 точки – изчертава окръжността, която ги съдържа и центъра й. Да се отпечата информация за окръжността – координати на центъра и радиус.

    1. Да се създаде клас ТОЧКА (Point2D) с полета за координати Х и У от целочислен тип int, декларирани като private. Да се дефинира конструктор с 2 параметъра за инициализиране на полетата, методи за достъп до координатите; метод draw() за изобразяване на точка.

    2. Да се дефинира клас ОКРЪЖНОСТ (CircleComp), който наследява класа JComponent и интерфейс MouseListener, с полета – 3 обекта от клас ТОЧКА, конструктор с 3 параметъра; метод за обработка на събитие – натискане на бутон на мишката, при което се инициализират координатите на трите точки ; метод getRadius() – за определяне на радиуса по формулата за радиус на описана около триъгълник окръжност; метод getCenter() – връща точка с координатите на центъра на окръжността; предефиниран метод paintComponent() за изчертаване на окръжността и линиите, свързващи точките; метод toString() за извеждане на информация за окръжността – координати на центъра, радиус.

    3. За определяне координатите на центъра използвайте следните формули:

      1. Дадени са 3 точки с координати (х1,у1) (х2, у2) (х3, у3).

      2. Изчисляват се временни променливи:

х12 = х2-х1; у12 = у2-у1; х23 = х3-х2; у23 = у3-у2; х31= х1-х3; у31 = у1-у3;

sq1=x1*x1+y1*y1; sq2=x2*x2+y2*y2; sq3=x3*x3+y3*y3;

det = x23*y12 – x12*y23;


      1. Координатите на центъра са:

X = (sq1*y23 + sq2*y31 + sq3*y12) / (2 * det);

Y = - (sq1*x23 + sq2*x31 + sq3*x12) / (2 * det);



    1. Да се създаде аплет / фрейм със следните компоненти: панел за графична компонента за маркиране на трите точки и изчертаване на окръжността, текстова област за отпечатване на информация за избраните точки – координатите и информация за окръжността.



Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ...................................................................................., Фак. №..................





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

    1. Декларирайте клас ТОЧКА (Point2D) с полета за координати Х и У от целочислен тип int с private достъп. Да се дефинира конструктор с 2 параметъра за инициализиране на полетата, методи за достъп до координатите; метод за определяне на разстояние между тве точки.

    2. Декларирайте графична компонента като клас ТРИЪГЪЛНИК (Triangle), който наследява класа JComponent и съдържа 3 обекта от клас ТОЧКА с private достъп.

      1. Добавете конструктор с три параметъра, който инициализира полетата, като проверява дали точките не лежат на една права; задава предпочитан размер 100x100 на графичната компонента триъгълник.

      2. Предефинирайте метода paintComponent(), който изчертава триъгълника.

      3. Напишете метод за изчисляване на лицето на триъгълника.

      4. Напишете метод за определяне на периметъра.

    3. Напишете фрейм/аплет. Декларирайте компонентите на графичния потребителски интерфейс: триъгълник от клас Triangle; панел, в който се разполагат три етикета за върховете на триъгълника и шест текстови полета за въвеждане на координатите им; текстова област за резултатите; панел, в който се разполага графичната компонента триъгълник; бутон за изчертаване на триъгълника и бутон за изчистване


Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ...................................................................................., Фак. №..................




  1. Да се състави приложение за верификация на ISBN (International Standard Book Number) номер.

ISBN е уникална комбинация от 9 цифри + една контрола, който еднозначно определя дадена публикация. Правилото за верифициране на номера е следното: на всяка позиция k от номера съответства тегло w=10-k, като позициите се номерират от 0 до 10 отляво надясно.

Формира се претеглената сума . Ако претеглената сума се дели точно на 11, то се приема, че номерът е валиден. Последният, контролен символ от номера може да бъде цифра от 0 до 9 или голяма и малка латинска буква Х. Когато се използва буква, нейното числено значение се приема за 10, за да се формира претеглената сума.

Напишете приложение ISBNChecker, което съдържа следните елементи: 10 текстови полета за цифрите от номера, 2 реда по 10 етикета за съответните тегла и произведения ; етикет и текстово поле за резултат от проверката; бутон “Провери” и бутон “Изчисти”. Приложението да има следната функционалност :


  1. след въвеждане на цифрите от номера при избор на бутон “Провери” се променят стойностите на етикетите и се извежда съответния резултат.

Напр.

0 1 3 1 3 8 1 3 9 3

10 9 8 7 6 5 4 3 2 1

0 + 9 + 24 + 7 + 18 + 40 + 4 + 9 + 18 + 3

132 = 0 mod 11 Валиден ISBN номер.

Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ...................................................................................., Фак. №..................




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

    1. Да се декларира клас ТОЧКА (Point2D) с полета за координати Х и У с private достъп. Да се дефинира конструктор с 2 параметъра за инициализиране на полетата, методи за достъп до координатите; метод за определяне на разстояние между две точки.

    2. Декларирайте графична компонента като клас ОКРЪЖНОСТ (Circle), който наследява класа JComponent и съдържа информация за точка-център и радиус с private достъп.

      1. Добавете конструктор с два параметъра (точка, радиус), който инициализира полетата и задава предпочитания размер 100x100 на графичната компонента.

      2. Предефинирайте метода mouseClicked() за избор на двете точки и проверка дали лежат на окръжността (разстоянието до центъра трябва да е равно на радиуса).

      3. Предефинирайте метода paintComponent() за изчертаване на окръжността и хордата .

      4. Напишете метод за определяне на дължината хордата.

    3. Напишете фрейм/аплет. Декларирайте компонентите на графичния потребителски интерфейс: окръжност от клас Circle, две точки от клас Point2D; панел, в който се разполагат три етикета и три текстови полета за въвеждане на данни за абсциса, ордината и радиус; етикет и текстово поле за извеждане на резултат; панел, в който се разполага графичната компонента.

Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ...................................................................................., Фак. №..................





  1. Да се състави приложение за верификация на Единен Граждански Номер (ЕГН).

    1. Единният Граждански Номер (ЕГН) се състои от 10 цифри. Първите 6 цифри са дата на раждане (формат: ГГММДД), следващите 3 са поредност на раждането - число от 000 до 999 и десетата цифра е контролна.

    2. Алгоритъм за проверка:

      1. Умножават се стойностите от всяка позиция със съответното тегло, посочено под номера на позицията:

Позиция: 1 2 3 4 5 6 7 8 9

Тегло: 2 4 8 5 10 9 7 3 6



      1. Сумират се получените произведения.

      2. Сумата по т.2 се дели на 11, взема се остатъкът от деленето.

Ако полученият остатък от т.3 е число по-малко от 10 и съвпада с контролната цифра, то номерът е валиден. Ако остатъкът е равен на 10, контролното число се сравнява с 0 и при съвпадение – номерът е валиден.

    1. Определяне на дата на раждане:

Проверяват се денят, месецът и годината за валидна дата. За родените преди 01.01.1900 г. към месеца се прибавя числото 20. За родените след 31.12.1999 г. към месеца се прибавя числото 40.

    1. Определяне на пол:

Деветата цифра на ЕГН е четна за мъже и нечетна за жени.

    1. Напишете приложение EGNChecker, което съдържа следните елементи: 10 текстови полета за цифрите от номера; текстова област за резултат от проверката; бутон “Провери” и бутон “Изчисти”. Приложението да има следната функционалност : след въвеждане на цифрите от номера при избор на бутон “Провери” се извежда резултата от проверката, пол и дата на раждане.

Напр.

7524169268

Валиден ЕГН номер: Мъж, Дата на раждане 16.04.1975 г.


Курсова задача по ПИК II ЕФ - редовно обучение, 2008/2009 г.

Студент : ...................................................................................., Фак. №..................




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

    1. Декларирайте графична компонента като клас ПРАВОЪГЪЛНИК (Rectangle), който наследява класа JComponent и съдържа информация за координати (Х1, У1) и (Х2, У2) с private достъп.

      1. Добавете конструктор с четири параметъра, който инициализира полетата и задава предпочитания размер 100x100 на графичната компонента.

      2. Предефинирайте метода paintComponent() за изчертаване на фигурите:

        • - определете на координатите на другите два върха на правоъгълника;

        • - определете на координатите на центъра на окръжността и на радиуса й.

    2. Напишете фрейм/аплет. Декларирайте компонентите на графичния потребителски интерфейс: правоъгълник от клас Rectangle; панел, в който се разполагат четири етикета и четири текстови полета за въвеждане на данни за координатите; етикет и текстова област за извеждане на резултати; панел, в който се разполага графичната компонента; бутон за изчертаване

Каталог: mgoranova


Сподели с приятели:




©obuch.info 2024
отнасят до администрацията

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