C, PHP, VB, .NET

Дневникът на Филип Петров


Авторски архив

* Access: Задача за упражнение 1

Публикувано на 03 декември 2015 в раздел УКИТ.

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

.

 


* Access: Редактиране на информация чрез форми

Публикувано на 01 декември 2015 в раздел УКИТ.

В това упражнение правим нормализация на базата от данни за фирмата от миналото упражнение - езиците за програмиране вече са свързани с връзка M:M. Въвеждаме примерни данни. Разглеждаме различните видове форми за въвеждане и редактиране на информация - Columnar, Tabular и Datasheet. Създаваме няколко бутона и създаваме различни макроси за тях. Накрая създаваме първата си навигационна форма и скриваме излишната информация за крайния потребител. Изтегли файла

.

 


* Access: Създаване на таблици

Публикувано на 01 декември 2015 в раздел УКИТ.

В това упражнение се създава база от данни за фирма. Всяка фирма има отдели и служители. За някои служители се пази на какви езици за програмиране могат да работят. Изтегли решението.

.

 


* Упражнение 10, 2015 – добавка

Публикувано на 01 декември 2015 в раздел ПИК3 Java.

Тук представям разширен вариант на задачата от упражнение 10. На практика са решени всички поставени допълнителни задачи. Кода на много места може да се изчисти и да стане по-лесно четим, но се надявам и така да е достатъчно разбираем. Вмъкнати са следните допълнителни функционалности, които подобряват предишната задача:

  • GPOffice вече е самостоятелен клас;
  • Създаден е клас Report. При всяко посещение в стая с лекар за пациента се изготвя доклад за извършената дейност. После обратно в GPOffice докладите се сливат в един общ (метод mergeWith). За целта е променена логиката на метод nextPatient() - вече връща доклад за следващия пациент;
  • Няма хвърляне на изключения и не се утежняваме с try-catch блокове;
  • MedicalRoom и HospitalRoom вече са наследници на клас Room, с което структурата им става по-ясна;
  • Вече можете да вкарвате всякакви диагнози на пациенти, а не само предварително дефинираните. В MedicalRoom и HospitalRoom ще бъдат лекувани само тези болести, които са възможни (possibleCures), а непознатите няма да бъдат разглеждани;
  • Две болести (Diagnosis) приемаме за еднакви, ако имената им съвпадат - не обръщаме внимание на цените. Тоест ако даден пациент е болен от болест A и си мисли, че тя струва X лева, това не значи, че в болницата ще му струва толкова - може да е по-евтино или по-скъпо. Реализирано е по този начин, защото се стремих да намаля количеството код. Реално в масива с болести на пациента (sicknesses) не е нужно да се пази цената, а само името на болестта, но в случая преизползвах вече готовия клас (което следва и по наследство от решението на оригиналната задача);
  • Двама пациента приемаме за еднакви, ако са с едно и също име и ЕГН. Заболяванията им и болестите им не се взимат под внимание при сравнение на обекти;
  • GPOffice няма опашка с пациенти - такива има само при MedicalRoom и HospitalRoom. За опашката пред GPOffice се грижи main метода;
  • Пазим дълга (debt) на пациентите на две места - веднъж в репорта му в GPOffice и веднъж в статичния ArrayList debtors. За конкретната програма не е необходимо това дублиране на информация, но го запазих заради продължението от предишната задача.

Решение: Прочети още...

.

 


* Изходен код от упражнение 10, 2015

Публикувано на 29 ноември 2015 в раздел ПИК3 Java.

В това упражнение продължаваме задачата от уражнение 9. Ще я разширим и ще поправим някои нарочно допуснати в миналия час грешки. Вземете сорс кода от упражнение 9 и променете основния клас да е с име Upr10. Прочети още...

.

 


* Notepad с помощта на NetBeans

Публикувано на 26 ноември 2015 в раздел УКИ.

Ще покажем как можем сами да направим популярното приложение Notepad. Ще се научим как се работи с менюта, някои допълнителни свойства на JTextArea, както и ще се запознаем с това как да вграждаме чужд код в нашето приложение. Ще се научим и как да отваряме сайт с уеб браузъра по подразбиране чрез команда от Java приложение. Ще се научим и как сами да добавяме ново събитие към съществуващ обект.

Стартирайте нов проект с празен JFrame, който именовайте като JNotepad. Изберете BorderLayout за основния прозорец. Добавете JLabel долу (SOUTH) и JScrollPane в центъра. JScrollPane е специален вид контейнер (панел) - ако вложените в него компоненти излезнат извън екранната рамка, той ще покаже вертикален и/или хоризонтален scrollbar, с който да можете да се движите вътре в прозореца. Накрая вътре във вложения JScrollPane сложете един JTextArea. Резултатът трябва да е следния: Прочети още...

.

 


* Щастливите трима приятели

Публикувано на 26 ноември 2015 в раздел Семейни.

Бера, Пепи и Ники. Подредени по старшинство от дясно-наляво: Прочети още...

.

 


* strcmp($Пепи, $Ники)

Публикувано на 26 ноември 2015 в раздел Семейни.

Да сравним двамата юнаци. Като две капки вода... или не толкова... Прочети още...

.

 


* Изходен код от упражнение 9, 2015

Публикувано на 20 ноември 2015 в раздел ПИК3 Java.

В това упражнение се разглеждат структури от данни. Използват се ArrayList, LinkedList и HashMap. Прочети още...

.

 


* Изброим тип (enum) в Java

Публикувано на 19 ноември 2015 в раздел ПИК3 Java.

Както повечето други езици, и в Java присъства изброим тип. Чрез него можем да създаваме собствени типове данни - такива с предварително предефинирани стойности. Реално зад ключовата дума "enum" стои реализиран клас, т.е. изброимите типове всъщност са обекти. Ето и нашия първи пример - създаваме изброим тип "оценка" с шест възможни стойности: Прочети още...

.