Формулювання вимог до програми 7 2 Проектування програми 7 3 Кодування програми 7 4 Тестування програми 7 5 Пояснювальна записка 8 3 склад пояснювальної записки 9
Вид материала | Документы |
- Опис програми та даних 8 Тестування 9 Список літератури 10 Додаток (роздрук програми), 90.22kb.
- Розділ лінійні програми вступ поняття програми. Мова програмування середовище програмування., 1210.78kb.
- Програма фахових вступних випробувань Програма розроблена на підставі програми державної, 171.54kb.
- Програма фахового вступного випробування Програма розроблена на підставі програми державної, 113.69kb.
- Програма фахових вступних випробувань Програма розроблена на підставі програми державної, 154.41kb.
- Програма фахових вступних випробувань Програма розроблена на підставі програми державної, 136.59kb.
- Програма фахових вступних випробувань Програма розроблена на підставі програми державної, 163.25kb.
- Програми за якими викладається інформатика, 34.45kb.
- Регіональної програми захисту прав споживачів у дніпропетровській області на 2011 2015, 450.84kb.
- Програми фахових вступних випробувань; Вимог до рівня підготовки вступників; Переліку, 116.7kb.
Міністерство освіти і науки України
Харківський національний університет радіоелектроніки
Методичні вказівки
до виконання курсової роботи з курсу
„Об’єктно-орієнтоване програмування”
ЗАТВЕРДЖЕНО |
Кафедрою ПЗ ЕОМ. |
Протокол № 15 від 14.01.2008 |
Харків 2009
Методичні вказівки до виконання курсової роботи з курсу „Об’єктно-орієнтоване програмування” для студентів спеціальностей 7.080201, 080202, 080203 та 7.080403 денної та заочної форми навчання /Упоряд.: В.М.Бондарєв. – Харків: ХНУРЕ, 2005. - с.
Упорядник: В.М.Бондарєв
ЗМіст
1 МЕТА ТА ЗАВДАННЯ КУРСОВОГО ПРОЕКТУВАННЯ 6
2 ПОРЯДОК ВИКОНАННЯ КУРСОВОЇ РОБОТИ 7
2.1 Формулювання вимог до програми 7
2.2 Проектування програми 7
2.3 Кодування програми 7
2.4 Тестування програми 7
2.5 Пояснювальна записка 8
3 СКЛАД ПОЯСНЮВАЛЬНОЇ ЗАПИСКИ 9
4 ВИМОГИ ДО ФОРМИ ПОЯСНЮВАЛЬНОЇ ЗАПИСКИ 10
2.1 Загальні вимоги 10
2.2 Структурні елементи та розділи 10
2.3 Заголовки 10
2.4 Нумерація сторінок 10
2.5 Нумерація розділів та підрозділів 11
2.6 Переліки 11
2.7 Ілюстрації 11
2.8 Таблиці 11
2.9 Формули і рівняння 12
2.10 Посилання 12
2.11 Скорочення 12
2.12 Перелік посилань 12
2.13 Додатки 12
5 ПОРЯДОК ЗАХИСТУ КУРСОВОЇ РОБОТИ ТА ЇЇ ОЦІНКА 14
ПЕРЕЛІК ДЖЕРЕЛ, ЩО РЕКОМЕНДОВАНІ ДЛЯ ВИКОНАННЯ КУРСОВОЇ РОБОТИ 15
примери ТЕМ КУРСОВыХ РАБоТ 17
КАЛЕНДАРНИЙ ПЛАН 25
ЗРАЗОК ТИТУЛЬНОГО ЛИСТА 26
УЗГОДЖЕННЯ ЩО ДО КОДУВАННЯ ПРОГРАМ 27
Загальні положення
Курс „Основи об’єктно-орієнтованого програмування” повинен зосередити студента на найбільш важливих рисах програмування, які не залежать від таких обставин, як тип процесора або операційна система. Об’єктно-орієнтоване програмування дуже слушно надає таку можливість, бо воно не залежить навіть від мови програмування.
Працюючи над курсовою роботою, студент повинен вивчити окремі фази розробки програмного забезпечення і навчитися поєднувати їх в одне ціле – саме в те, ще зветься програмою. І хоча неможливо очікувати, що за той обмежений час, який є у студента, він створить справжній програмний продукт, викладач повинен максимально наблизити його роботу до реальних умов.
1МЕТА ТА ЗАВДАННЯ КУРСОВОГО ПРОЕКТУВАННЯ
Метою курсового проектування є закріплення знань, набутих при вивченні дисципліни „Основи об’єктно-орієнтованого програмування”, а головне, придбання навичок у розробці програмних продуктів.
Крім того, під час захисту курсової роботи студент повинен проявити такі властивості як впевненість у власних знаннях, вміння відстоювати власну думку, вміння виступати перед аудиторією.
Для курсового проектування обираються теми різної проблематики. Приклади тем курсових робіт наведені у додатку А.
2ПОРЯДОК ВИКОНАННЯ КУРСОВОЇ РОБОТИ
Основні етапи виконання курсової роботи:
- формулювання вимог до програми;
- проектування програми;
- кодування програми;
- тестування програми;
- оформлення пояснювальної записки;
- захист роботи.
2.1Формулювання вимог до програми
Формулювання вимог є самостійним етапом роботи і завершується створенням двох документів: календарного плану проекту та розділу пояснювальної записки “Специфікація програми”.
Календарний план складає студент на початку роботи над проектом и копію плану у той же час надає викладачу. За суттєве відставання від календарного плану викладач повинен знижувати оцінку курсової роботи. Приклад календарного плану наведений у додатку Б.
На етапі формулювання вимог студент повинен:
- сформулювати призначення програми;
- визначити перелік функцій, які виконує програма;
- запропонувати інтерфейс користувача, який надасть можливість останньому дістатися цих функцій.
Специфікація програми складається с послідовного опису усіх виділених функцій, та пов’язаного з ними графічного інтерфейсу користувача. У специфікації програми треба обов’язково надати зображення усіх вікон програми. Специфікація програми є першим розділом пояснювальної записки.
2.2Проектування програми
На етапі проектування визначається архітектурний стиль, об’єктна структура програми, а також формат похідних, вихідних та внутрішніх даних. Співвідношення між класами та об’єктами відображується за допомогою діаграм, бажано на мові UML. Під час проектування можна розробити план функціонального тестування, та необхідні тести.
Завершується проектування створенням проектної специфікації програми. Проектна специфікація програми є другим розділом пояснювальної записки.
2.3Кодування програми
На етапі кодування створюється похідний код програми. Він повинен бути гідним чином прокоментований і повністю задовольняти вимогам до похідного коду, наведеним у додатку Г цих вказівок.
Увесь похідний код програми має бути наведений у додатку до пояснювальної записки. У тексті основних розділах записки можливо наводити лише невеликі за розміром окремі фрагменти коду.
2.4Тестування програми
Розрізняють два основних різновиду тестування: функціональне та модульне. Функціональне тестування перевіряє, як програма виконує свої функції в умовах коректних та некоректних дій користувача. Воно планується на етапі проектування и виконується у міру того, як кодуються окремі функції програми і перед захистом програми.
Модульне тестування робиться одночасно с кодуванням и має за мету оперативну перевірку окремих частин програми. Виконання модульного тестування вельми бажано, але не є обов’язковим.
2.5Пояснювальна записка
Оформлення пояснювальної записки є останнім етапом виконання курсової роботи і має надати студентові навичок документування програмного продукту. Склад та вимоги до оформлення пояснювальної записки наведені в наступному розділі.
3СКЛАД ПОЯСНЮВАЛЬНОЇ ЗАПИСКИ
За результатами курсового проектування кожен студент індивідуально складає пояснювальну записку.
Структура пояснювальної записки з курсового проектування:
- титульний аркуш - 1 с.;
- завдання на курсове проектування – 1 c.;
- реферат - 1 с.;
- зміст - 1 с.;
- вступ - 1-2 с.;
- суть (поділяється на розділи) - 15-30 с.;
- висновки - 1-2 с.;
- перелік посилань - 1-2 с.;
- додатки.
Титульний аркуш містить інформацію про дисципліну, по якій виконувалося проектування, тему індивідуального завдання, автора пояснювальної записки. Форма титульний аркушу наведена у додатку В.
Реферат містить:
- відомості про обсяг пояснювальної записки, кількості частин записки, кількості ілюстрацій, таблиць, додатків, кількості джерел з переліку посилань;
- текст реферату;
- перелік ключових слів.
Текст реферату повинен відбивати мету курсового проектування, метод вирішення задачі, отримані результати.
Перелік ключових слів повинен включати від 5 до 15 слів або сполучень із тексту записки, що у найбільшій мірі характеризують її зміст і забезпечують можливість інформаційного пошуку. Ключові слова наводяться в називному відмінку і друкуються прописними літерами у рядок через кому.
У вступі коротко викладають мету роботи й галузь застосування.
Суть пояснювальної записки викладають, розділяючи матеріал на розділи. Розділи можуть поділятися на підрозділи і пункти. Пункти, якщо необхідно, розділяють на підпункти. Кожний пункт і підпункт повинен містити закінчену інформацію. Обов’язковими розділами записки є:
- специфікація програми (містить опис окремих функцій програми та опис інтерфейсу користувача);
- проектна специфікація (містить опис об’єктної структури та даних);
- інструкція користувача (пояснює, як встановлювати програму та користуватися нею).
У висновках дають оцінку отриманих результатів роботи (у тому числі негативних), окреслюють шляхи вдосконалення та розвитку програми, пропонують області використання результатів роботи.
4ВИМОГИ ДО ФОРМИ ПОЯСНЮВАЛЬНОЇ ЗАПИСКИ
2.1Загальні вимоги
Загальними вимогами до пояснювальної записки є логічна послідовність викладання матеріалу, стислість, чіткість і конкретність викладання теоретичних і практичних результатів роботи, доказовість висновків і обґрунтованість рекомендацій.
Записку виконують із розрахунку не більше 40 рядків на сторінці за умови рівномірного її заповнення і висотою літер і цифр не менше 1,8 мм. При написанні тексту необхідно додержуватись таких розмірів полів: верхнє, ліве і нижнє - не менше 20 мм, праве - не менше 10 мм.
Прізвища, назви додатків, організацій, фірм та інші імена наводяться мовою оригіналу.
Пояснювальна записка виконується машинним способом на одній стороні аркушу білого паперу формату А4 (210 х 297 мм) відповідно до ДСТУ 3008-95 "Документація. Звіти в сфері науки і техніки. Структура і правила оформлення" [2]. Наведемо деякі положення цього документу.
2.2Структурні елементи та розділи
Треба розрізняти структурні елементи записки, такі як “РЕФЕРАТ”, “ЗМІСТ” , “ВСТУП” , “СУТЬ” і розділи записки. Деякі елементи, а саме “РЕФЕРАТ”, “ЗМІСТ”, “ВСТУП”, “ВИСНОВКИ”, “ПЕРЕЛІК ПОСИЛАНЬ”, створюють розділи записки і їхні найменування служать заголовками окремих розділів. Такі розділи не мають нумерації. Структурний елемент записки „СУТЬ” сам може поділятися на розділи, які нумеруються и мають власні заголовки.
Розділи можуть поділятися на підрозділи, пункти та підпункти.
2.3Заголовки
Розділи і підрозділи повинні мати заголовки, пункти і підпункти можуть мати заголовки. Заголовки структурних елементів записки і заголовки розділів необхідно розташовувати посередині рядка і друкувати прописними літерами без крапки наприкінці, не підкреслюючи. Заголовки підрозділів, пунктів та підпунктів записки необхідно починати з абзацного відступу і друкувати малими літерами, крім першої прописної, не підкреслюючи, без крапки наприкінці. Абзацний відступ повинен бути однаковим по всьому тексту записки і має дорівнювати п'яти знакам. Якщо заголовок складається з двох або більше речень, їх розділяють крапкою.
Переноси слів у заголовку розділу не припускаються.
Відстань між заголовком і наступним або попереднім текстом повинна бути не менше двох рядків.
Не припускається розміщати найменування розділу, підрозділу, а також пункту і підпункту в нижній частині сторінки, якщо після нього розташований тільки один рядок тексту.
2.4Нумерація сторінок
Нумерувати сторінки необхідно арабськими цифрами, дотримуючи наскрізну нумерацію по всьому тексті. Номер сторінки проставляють у правому верхньому кутку без крапки наприкінці.
2.5Нумерація розділів та підрозділів
Розділи, підрозділи, пункти, підпункти пояснювальної записки варто нумерувати арабськими цифрами. Розділи пояснювальної записки повинні мати порядкову нумерацію в межах суті пояснювальної записки і позначатися арабськими цифрами без крапки, наприклад, 1, 2, 3 . Підрозділи повинні мати порядкову нумерацію в межах кожного розділу. Номери підрозділів складаються з номерів розділів і підрозділів, що розділяються крапкою, наприклад, 1.1, 1.2, 1.3 .
2.6Переліки
За необхідністю можуть бути використані переліки. Перед переліком ставлять двокрапку. Перед кожною позицією переліку треба ставити малу літеру алфавіту з дужкою або дефіс (перший рівень деталізації). Для подальшої деталізації переліку треба використовувати арабські цифри з дужкою (другий рівень деталізації).
Приклад:
а) перша версія бібліотеки;
б) друга версія бібліотеки:
1) для персональних комп’ютерів;
2) для мобільних пристроїв;
в) третя версія бібліотеки.
2.7Ілюстрації
Ілюстрації треба розташовувати в пояснювальній записці безпосередньо після тексту, у якому вони вперше згадуються, або на наступній сторінці. На всі ілюстрації повинні бути посилання в пояснювальній записці. Ілюстрації можуть мати назву, що розташовують під ілюстрацією. При необхідності під ілюстрацією ще розташовують пояснювальні дані. Ілюстрація позначається словом “Рисунок”, що разом із назвою поміщають після пояснювальних даних, наприклад, “Рисунок 2.1 - Схема алгоритму”. Ілюстрації необхідно нумерувати арабськими цифрами в межах розділу, за винятком ілюстрацій, наведених у додатках. Номер ілюстрації складається з номера розділу і порядкового номера ілюстрації, розділених крапкою. Якщо ілюстрація не вміщується на одній сторінці, можна переносити її на інші сторінки, при цьому назву ілюстрації розташовують на першій сторінці, пояснювальні дані - на кожній сторінці, і під ними вказують: “Рисунок , аркуш ”.
2.8Таблиці
Таблиці необхідно розташовувати в пояснювальній записці безпосередньо після тексту, у якому вони вперше згадуються, або на наступній сторінці. На всі таблиці повинні бути посилання в пояснювальній записці. Таблиця може мати назву, яку друкують малими літерами (крім першої прописної) і розміщують над таблицею. Якщо рядки або графи таблиці виходять за формат сторінки, таблицю поділяють на частини, розташовуючи одну частину під іншою, або поруч, або переносячи частини таблиці на наступну сторінку. Слово “Таблиця ”, вказують один раз зліва над першою частиною таблиці, над іншими частинами пишуть: “Продовження таблиці ” з вказівкою номера таблиці. Таблиці треба нумерувати арабськими цифрами в межах розділу, за винятком таблиць, наведених у додатках. Номер таблиці складається з номера розділу і порядкового номера таблиці, розділених крапкою.
2.9Формули і рівняння
Формули і рівняння розташовують у пояснювальній записці безпосередньо після тексту, у якому вони вперше згадуються, посередині сторінки. Вище і нижче кожної формули повинно бути залишено не менше одного вільного рядка. Формули і рівняння треба нумерувати арабськими цифрами порядковою нумерацією в межах розділу, за винятком формул і рівнянь, наведених у додатках. Номер формули або рівняння складається з номера розділу і порядкового номера формули або рівняння, розділених крапкою. Номер формули або рівняння вказують на рівні формули або рівняння в дужках у крайньому правому положенні на рядку. Пояснення символів і числові коефіцієнти, що входять до формули або рівняння, варто робити безпосередньо після формули або рівняння в тій послідовності, у якій вони надані у формулі або рівнянні. Пояснення значення кожного символу або числового коефіцієнта необхідно давати з нового рядка. Перший рядок пояснення починають з абзацу словом ”де” без двокрапки. Переносити формули або рівняння на інший рядок припускається тільки на знаках виконуваних операцій, причому знак операції на початку такого рядка повторюють. При переносі формули або рівняння на знаку операції множення застосовують знак “х”. Формули, що прямують одна за одною, і не розділені текстом, відокремлюють комою.
2.10Посилання
Посилання в тексті на джерела необхідно наводити в послідовності їх згадування в записці, вказуючи порядковий номер, виділений двома квадратними дужками, наприклад: [5].
2.11Скорочення
У тексті пояснювальної записки припускається робити тільки загальновживані скорочення (наприклад "і т.д., і т.п., та ін.") або поширені абревіатури. Якщо в пояснювальній записці прийнята специфічна термінологія, або вживаються малопоширені скорочення, нові символи, позначення і ін., їх перелік необхідно надати в окремому списку. Перелік повинен розташовуватися стовпчиком, у якому слова за абеткою наводяться скорочено, а справа - їхнє докладне тлумачення. Якщо спеціальні символи, терміни, скорочення, і позначення наводяться менше трьох разів, перелік їх не складається, а їхнє тлумачення роблять у тексті при першому згадуванні.
2.12Перелік посилань
Перелік посилань оформлюється як розділ пояснювальної записки з нової сторінки відповідно до вимог ГОСТ 7. 1-84 "Библиографическое описание документа. Общие требования и правила составления".
Для оформлення бібліографічних посилань, правильного запису загальноприйнятих скорочень рекомендується використовувати методичні вказівки [3], які складені з урахуванням відповідних стандартів.
2.13Додатки
Додатки необхідно оформляти як продовження пояснювальної записки на наступних її сторінках, або в окремій частині, розташовуючи додатки в порядку появи посилань на них у тексті пояснювальної записки. Кожний додаток повинен починатися з нової сторінки і мати заголовок, надрукований вгорі малими літерами з першої прописної, симетрично щодо тексту сторінки. Посередині рядка над заголовком малими літерами з першої прописної повинно бути надруковано слово “Додаток ” і прописна буква, що позначає додаток. Додатки слід позначати послідовно прописними буквами українського алфавіту, за винятком букв Ґ, Є, З, І, Ї, Й, О, Ч, Ь. Один додаток позначається як А. Додатки повинні мати загальну з іншою частиною пояснювальної записки наскрізну нумерацію. Текст кожного додатка, при необхідності, може бути розділений на підрозділи і пункти, що нумеруються арабськими цифрами в межах кожного додатка.
5ПОРЯДОК ЗАХИСТУ КУРСОВОЇ РОБОТИ ТА ЇЇ ОЦІНКА
До захисту курсові роботи студент допускаються викладачем, який керує курсовим проектуванням. Необхідними умовами допуску до захисту є:
- наявність діючої програми, яка відповідає проектному завданню;
- правильно оформлений похідний код програми;
- відповідність пояснювальної записки стандарту ДСТУ 3008-95.
Захист відбувається перед комісією з трьох викладачів у присутності студентів з академічної групи автора.
Склад комісії:
- голова комісії - завідуючий кафедрою;
- члени комісії: лектор з дисципліни;
- викладач, що керує курсовим проектуванням.
Студент під час доповіді повинен викласти основні результати курсової роботи. Орієнтовний час виступу - 10 хвилин. Після доповіді студент повинен відповісти на поставлені запитання. Якщо з відповідей на запитання з’ясується, що студент не є єдиним автором курсової роботи, вона відхиляється, а студент отримує нове завдання.
Курсова робота оцінюється за наступними критеріями:
- якість програмного продукту;
- якість похідного коду;
- виступ та відповіді на запитання.
- якість пояснювальної записки;
- ступінь відповідності термінів виконання окремих етапів календарному плану;
ПЕРЕЛІК ДЖЕРЕЛ, ЩО РЕКОМЕНДОВАНІ ДЛЯ ВИКОНАННЯ КУРСОВОЇ РОБОТИ
- Страуструп Б. Язык программирования С++. Специальное издание.-М., СПб.:”Издательство БИНОМ” – „Невский Диалект”, 2001г.-1099 с.
- Дейтел Х., Дейтел П. Как программировать на С++. Третье издание.-М.:ЗАО „Издательство БИНОМ”, 2001г.-1152с.
- Эндрю Троельсен. C# и платформа .NET. Библиотека программиста. – СПб.: Питер, 2005. – 796 с.
- Бондарев В.М., Объектно-ориентированное программирование на С#. Учебное пособие. – Харьков: СМИТ, 2009г. – 224 с.
- Бондарев В.М., Программирование на С++. Учебное пособие. – Харьков: СМИТ, 2004г. – 294 с.
Перелік ПОСИЛАНЬ
- Юркин А.Г. Задачник по программированию. – СПб.: Питер, 2002. – 192 с.
- ДСТУ 3008-95 "Документація. Звіти в сфері науки і техніки. Структура і правила оформлення" – Державний стандарт України.
- Методические указания по оформлению библиографических ссылок и списков к курсовым, дипломным и научным работам для студентов всех форм обучения и всех специальностей /Сост. Л.П. Гуданова, А.П.Мальцев, Л.П.Щербакова, А.К.Безуглая. - Харьков: ХИРЭ, 1986. - 36 с.
Додаток A
примери ТЕМ КУРСОВыХ РАБоТ
Независимо от темы разрабатываемая программа должна удовлетворять следующим общим требованиям.
- Устойчивость программы. Программа не должна терять работоспособности ни при каких, даже некорректных, действиях пользователя. Всякие действия, грозящие потерей информации, должны быть подтверждены пользователем. Вводимая информация везде, где это возможно, подвергается логическому контролю.
- Обеспечение целостности данных. При любых действиях пользователя не должны теряться данные или их целостность (некорректность индексов, потеря ссылок в связях после удаления-добавления записей и т. д.).
- Функциональная полнота. Должны быть реализованы все функции, указанные в спецификации программы.
- Термины и интерфейс. В диалоговых окнах используются только термины, понятные пользователю, и не используются термины разработчика («запись», «индексация» и т. д.). Появление служебных англоязычных сообщений недопустимо. В сообщениях пользователю следует соблюдать нормы вежливости, цветовая гамма должна следовать общепринятым рекомендациям.
- Использование клавиатуры. На любом этапе нажатие любой клавиши должно игнорироваться или вызывать предусмотренные действия, описанные в средствах помощи. Привязка действий к клавишам должна быть общепринятой: F1 – помощь; Entег – согласие, завершение ввода; Еsс – отказ, возврат к предыдущему узлу ветви алгоритма (с восстановлением экранной формы); Таb – переход к следующему полю, окну и т. д.; Shift-Tab – возврат к предыдущему полю и т., д.
Все примеры тем взяты из книги [1].
- Личная библиотека.
Эту тему не брать! Ее уже взял преподаватель.
Картотека домашней библиотеки: выходные данные книги (авторы, название, издательство и так далее), раздел библиотеки (специальная литература, хобби, домашнее хозяйство, беллетристика и так далее), происхождение и наличие книги в данный момент, субъективная оценка книги. Выбор книг по произвольному запросу; инвентаризация библиотеки.
- Картотека Интерпола. Данные по каждому зарегистрированному преступнику: фамилия, имя, кличка, рост, цвет волос и глаз, особые приметы, гражданство, место и дата рождения, последнее место жительства, знание языков, преступная профессия, последнее дело и так далее. Преступные и мафиозные группировки (данные о подельщиках). Выборка по любому подмножеству признаков. Перенос «завязавших» в архив; удаление –только после смерти.
- Бюро знакомств. База потенциальных женихов и невест: пол, регистрационный номер, дата регистрации, сведения о себе, требования к партнеру. Выбор подмножества подходящих кандидатур, подготовка встреч (формирование приглашения для знакомства). Перенос в архив пар, решивших свои семейные проблемы, удаление клиентов, отказавшихся от услуг.
- Биржа труда. База безработных: анкетные данные, профессия, образование, место и должность последней работы, причина увольнения, семейное положение, жилищные условия, контактные координаты, требования к будущей работе. База вакансий: фирма, должность, условия труда и оплаты, жилищные условия, требования к специалисту. Поиск и регистрация вариантов с той и другой стороны; формирование объявлений для печати, удаление в архив после трудоустройства, полное удаление при отказе от услуг.
- Записная книжка. Анкетные данные, адреса, телефоны, место работы или учебы, должность знакомых, коллег и родственников, характер знакомства, деловые качества и так далее. Автоматическое формирование поздравления с днем рождения (по текущей дате). Упорядочение по алфавиту и по дате последней корректировки. Поиск по произвольному шаблону.
- Касса аэрофлота. Расписание: номер рейса, маршрут, пункты промежуточной посадки, время отправления, дни полета. Количество свободных мест на каждом рейсе. Выбор ближайшего рейса до заданного пункта (при наличии свободных мест), оформление заданного числа билетов по согласованию с пассажиром (с уменьшением числа свободных мест), оформление посадочной ведомости.
- Справочник потребителя. (служба быта). База предприятий бытового обслуживания города: название, разряд, адрес и телефоны, специализация, перечень оказываемых услуг, форма собственности, часы и дни работы. Поиск предприятий по заданной услуге и другим признакам.
- Справочник покупателя. База торговых точек города: название, адрес и телефоны, специализация, форма собственности, время работы. Выбор магазинов по произвольному шаблону.
- Магазин с одним продавцом. Компьютер вместо кассового аппарата. База наличия товаров: наименование, единица измерения, цена единицы, количество, дата последнего завоза. Регистрация поступления товара (как старых, так и новых наименований). Оформление покупки: выписка чека, корректировка базы. Проблема уценки и списания. Инвентаризация остатков товара с вычислением суммарной стоимости.
- Отдел кадров. База данных о сотрудниках фирмы: паспортные данные, образование, специальность, подразделение, должность, оклад, даты поступления в фирму и последнего назначения и т. д. Выбор по произвольному шаблону. Сокращение штатов: выбор для увольнения лиц пенсионного и предпенсионного возраста, подготовка приказа.
- Генеалогическое дерево. Паспортные данные членов некоторого родового клана; ссылки на детей (или на родителей). Поиск всех потомков или всех предков для указанного лица.
- Склад. База товаров, хранящихся на складе: наименование, единица измерения, цена единицы, количество, дата последнего завоза. Регистрация поступления товара (формирование приходной накладной) и отгрузки (расходная накладная). Вывод инвентарной ведомости.
- Касса автовокзала. Расписание автобусов: номер рейса, конечный и промежуточный пункты, время отправления Количество свободных мест на каждом рейсе. Выбор ближайшего рейса до заданного пункта (при наличии свободных мест), оформление билетов, оформление посадочной ведомости. Предварительная продажа, возврат билетов.
- Администратор гостиницы. Список номеров: класс, число мест. Список гостей: паспортные данные, даты приезда и отъезда, номер. Поселение гостей: выбор подходящего номера (при наличии свободных мест), регистрация, оформление квитанции. Отъезд: выбор всех постояльцев, отъезжающих сегодня, освобождение места или оформление задержки с выпиской дополнительной квитанции. Возможность досрочного отъезда с перерасчетом. Поиск гостя по произвольному признаку.
- Справочник меломана. База групп и исполнителей; база песен; база дисков с перечнем песен (в виде ссылок). Выбор всех песен заданной группы; всех дисков, где встречается заданная песня.
- Ежедневник. База намечаемых мероприятий - дата, время и протяженность, место проведения. Автоматическое напоминание ближайшего дела: по текущей дате и времени; удаление вчерашних дел либо перенос на будущее. Анализ «накладок» – пересечений планируемых дел. Просмотр дел на завтра, послезавтра и так далее.
- Терминология. База определений какой-либо науки: вводимый термин, его толкование (определение), ссылки на используемые термины. Возможность просмотра всей цепочки от заданного термина до первичных понятий.
- Шеф-повар. База рецептур блюд: раскладка, рецепт приготовления. База продуктов на складе: наименование, цена, количество. Формирование меню на день (на заданное число персон); званый ужин. Проверка достаточности запасов; формирование расходной накладной на склад, корректировка запасов.
- Справочник лекаря. База болезней: название, симптомы, процедуры, перечень рекомендуемых лекарств с указанием требуемого количества. База медикаментов на складе: название, количество, взаимозаменяемость. Формирование рецепта после осмотра больного, проверка наличия лекарств, корректировка запасов.
- Зачисление абитуриентов. База абитуриентов: анкетные данные, совокупность оценок на вступительных экзаменах, готовность учиться на договорной основе. Выбор для зачисления заданного количества абитуриентов; формирование для собеседования списка тех, кто набрал предельный проходной балл, но не может платить за образование.
- Обмен жилья. База предложений по обмену: район, площадь, планировка и т. д.; требования к вариантам обмена. Регистрация клиентов, выбор подходящих вариантов, удаление при состоявшемся обмене или отказе. Развитие задачи. Возможность съезда или разъезда, в том числе «несколько на несколько»; «возможны ва-рианты».
- Справочник абитуриента. База вузов: наименование, адрес, перечень специальностей, конкурс прошлого года по каждой специальности (дневной, вечерней, заочной форм), размер оплаты при договорном обучении. Выбор по разным критериям: все о данном вузе; все о данной специальности, поиск минимального конкурса по данной специальности или вообще,
- Справочник почтовой индексации. Республика, область (край), район, населенный пункт, почтовый индекс. Поиск по любой совокупности полей (кроме последнего); иерархическая связь между полями (обратите внимание, что, например, Павловск есть в Алтайском крае, Воронежской и Ленинградской областях).
- Сбербанк. Сведения о вкладчиках банка: номер лицевого счета, категория вклада, паспортные данные, текущая сумма вклада, дата последней операции. Операции приема и выдачи любой суммы, автоматическое начисление процентов.
- Ломбард. База хранимых товаров и недвижимости: анкетные данные клиента, наименование товара, оценочная стоимость; сумма, выданная под залог, дата сдачи, срок хранения. Операции приема товара, возврата, продажи по истечении срока хранения.
- Справочник селекционера. Наименование сорта какой-либо культуры, автор, родительские сорта, урожайность, характеристики плодов, морозоустойчивость, устойчивость к вредителям и болезням, наличие в том или ином селекционном фонде. Выбор сортов, обладающих заданными свойствами.
- Справочник работника ГИБДД. Марка, цвет, заводской и бортовой номера, дата выпуска, особенности конструкции и окраски, дата последнего техосмотра транспортного средства (автомобиля, мотоцикла, прицепа и т. д.), паспортные данные владельца. Выбор транспортных средств по произвольному шаблону. Формирование приглашений на техосмотр в соответствии со сроком.
- Справочник владельца видеотеки. База видеофильмов: название, студия, жанр, год выпуска, режиссер, исполнители главных ролей, краткое содержание, субъективная оценка фильма. Факт наличия фильма в видеотеке. Оформление выдачи и возврата кассеты.
- Купи-продай. База продавцов: наименование товара, объем партии при оптовой продаже, цена, условия продажи-отгрузки, форма оплаты, контактный адрес или телефон, примечание (например, «посредников прошу не беспокоиться»). База покупателей: наименование товара, объем покупки, приемлемая цена и форма оплаты, контактный адрес или телефон, примечание. Поиск и регистрация вариантов с той и другой стороны; формирование объявлений для печати, удаление в архив после купли-продажи (возможно, один из клиентов остается неудовлетворенным), полное удаление при отказе от услуг.
- Справочник фаната. База спортсменов: анкетные и антропологические данные, гражданство, происхождение, вид спорта, клуб или команда, данные о личном рекорде или победах и так далее. Выбор по произвольному признаку. Поиск рекордсмена в заданном виде спорта.
- Справочник радиолюбителя. Базы паспортных данных транзисторов, диодов, тиристоров и так далее: марка, характеристики, предельно допустимые условия эксплуатации, цена, учет взаимозаменяемости и т. д. Подборка по заданным требованиям.
- Справочник коммерческих банков. Наименование, адрес, статус (форма собственности), условия хранения средств на лицевом счете (годовые проценты на различных видах вкладов). Выбор банка с наибольшим процентом для заданного типа вклада.
- Справочник начальника тюрьмы. Анкетные данные заключенных, статья, срок, дата заключения под стражу, место в тюремной иерархии, камера, сведения о род ственниках, особенности характера. Формирование статистических сводок о составе, выбор по произвольному признаку.
- Справочник командира. Список подчиненных военнослужащих: анкетные данные, адрес родителей, гражданская профессия, образование, звание и дата его получе-ния, должность, подразделение, форма службы (срочная, кадровая, контрактная и так далее), период службы (для срочнослужащих), особенности характера и отношение к службе. Формирование списков: заданного подразделения, офицерского состава, новобранцев и т. д.
- Риэлтерская контора (купля-продажа жилья). База предложений: район и адрес, характеристика дома и квар-тиры, запрашиваемая стоимость, координаты заяви-теля. База спроса: требования покупателя к жилью (воз-можно несколько вариантов, допустимые диапазоны), финансовые возможности, координаты заявителя. Подбор вариантов для той и другой стороны, автоматизированный поиск взаимоприемлемых вариантов. Пример запроса покупателя: однокомнатная, до 200 тыс. р., Поток и Новосиликатный не предлагать.
- Очередь на жилье. Список очередников на получение и улучшение жилья: дата поступления в фирму, дата подачи заявления, состав семьи, жилищные условия на дату подачи заявления, льготы на дополнительную площадь, внеочередное и первоочередное улучшение, пожелания на район и другие. Реализация распределения получаемого муниципального жилья: удовлетворение подходящих очередников, переселение следующих в освободившиеся квартиры. Добавление заявителей и удаление выбывших и удовлетворенных.
- Автосалон. База новых и подержанных отечественных и иностранных автомобилей: марка, год выпуска, технические характеристики, особенности исполнения, техническое состояние, запрашиваемая цена База покупателей: контактные координаты, требования к марке, техническим характеристикам и техническому состоянию, финансовые возможности Автоматизация подбора вариантов для покупателя, формирование заявки для поставщиков и перегонщиков.
- Справочник туриста. Турагенства и предлагаемые услуги: страна, город (или маршрут круиза), условия проживания и проезда, экскурсионное обслуживание, сервис принимающей стороны, стоимость путевки.
- «Купи-продай». База объявлений (радио-, газетных, в бегущей строке) по всем рубрикам. Поиск для любого спроса или предложения, включая контекстный поиск в МЕМО-полях (например «репетиторство & математика»).
- Крылатые фразы. Справочник пословиц, поговорок, афоризмов, каламбуров, других словесных курьезов. Классификация по авторам и источникам, поиск по темам и ключевым словам.
- Каталог запчастей автомобиля. В автомобиле насчитывается несколько тысяч деталей; некоторые используются в разных марках. Таблицы: страна, фирма-изготовитель, марка автомобиля, агрегат, узел, деталь. Учет взаимозаменяемости. Пользователи: работники автосервиса, магазинов запчастей; поставщики-оптовики.
- Каталог радиодеталей (справочник радиомастера). Модели бытовой аудио- и видеотехники; для каждой модели – каталог радиодеталей, использованных в ней (резисторы, конденсаторы, катушки индуктивности, чипы и т. д.). Многие детали используются в разных моделях; некоторые детали односторонне (например, вместо резистора 10К 0,125Вт можно поставить 10К 0,25Вт, но не наоборот) или двусторонне (транзисторы с близкими характеристиками) заменяемы. Учет наличия деталей на складе, поиск подходящих деталей для ремонта.
- Справочник нумизмата. Монеты: страна, номинал, год выпуска, количество выпущенных монет, особенности. Коллекционеры: страна, имя, контактные координаты, наличие редких монет в коллекции. Собственная коллекция.
- Справочник филателиста. Марки: страна, нарицательная стоимость, год выпуска, тираж, особенности. Филателисты: страна, имя, контактные координаты, наличие редких марок в коллекции. Собственная коллекция.
- Справочник любителя живописи. Художники с анкетными данными и стилями. Картины со ссылкой на художников, датой создания, жанром. Коллекционеры и музеи: наличие оригиналов картин и копий. Аукционы и комиссионки: дата проведения, список выставленных шедевров и цены на них. Собственная коллекция.
- Телепрограмма. Программа телепередач нескольких телекомпаний (на неделю по дням, часам). Разные жанры телепередач: новости, спорт, художественные фильмы, сериалы и т. д. Выбор совокупной программы по определенному запросу (вкусу). Программирование видеомагнитофона при временных «накладках» передач.
- Справочник астронома. Для каждой из зарегистрированных звезд известны: название, созвездие, видимая звездная величина, расстояние, координаты на небосклоне. Поиск звезд заданного созвездия, самых ярких звезд, видимых звезд и созвездий в заданной точке земного шара в заданное время.
- Справочник географа. Города (географические координаты, численность населения), регионы (области, провинции, штаты и т. д. – принадлежность стране, столица, численность населения), страны (площадь, численность населения, форма государственного правления, столица), материки. Поиск городов-«тезок», подсчет доли городского населения в странах и регионах, населенность материков и т. д.
- Справочник гидролога. Реки мира: протяженность (от истока до впадения), куда впадает (в другую реку, море или озеро), годовой сток (км3), площадь бассейна (без крупных притоков). Вычисление годового стока и площади бассейна для заданной крупной реки (вместе с ее притоками), моря или озера.
- Справочник астронома. Видимые звезды: название, созвездие, видимая звездная величина, расстояние от Земли, координаты на небосклоне: прямое восхождение (ч, мин) и склонение (град., мин). Поиск звезд, входящих в данное созвездие, самой яркой звезды созвездия, видимых созвездий и звезд в заданной точке земного шара в заданное время.
Додаток Б
КАЛЕНДАРНИЙ ПЛАН
_____________________________________________________________
(тема проекту)
№ п.п | Назва етапу курсової роботи | Тривалість етапу | Дата початку | Дата кінця | Примітки |
1 | Формулювання вимог до програми | | | | 10% |
2 | Проектування програми | | | | 20% |
3 | Кодування програми | | | | 40% |
4 | Тестування програми та виправлення помилок | | | | 20% |
5 | Оформлення пояснювальної записки | | | | 10% |
| Всього | | | 12.05 | 100% |
Студент ___________________________________
Керівник __________________________________
“______”___________________
Додаток В
ЗРАЗОК ТИТУЛЬНОГО ЛИСТА
Міністерство освіти і науки України
Харківський національний університет радіоелектроніки
Курсова робота з дисципліни
“Основи об’єктно-орієнтованого програмування”
Тема: “Особиста бібліотека”
Виконавець:
ст. гр.
Керівник:
проф.
Комісія:
проф. ______________________________Дудар З.В.
асистет. _____________________________
Робота захищена з оцінкою
Харків 2003
Додаток Г
УЗГОДЖЕННЯ ЩО ДО КОДУВАННЯ ПРОГРАМ
Курсовой проект можно выполнять на языках С++ или С#. Ниже изложены требования к исходному коду программы на С#. За небольшими исключениями они применимы и к коду, написанному на С++.
Структура файлов
Структура проекта
- Каждый проект должен располагаться в отдельном подкаталоге каталога решения. Не помещайте файлы проекта и файлы решения в один и тот же каталог;
- Используйте подкаталоги для организации исходного кода проекта; пространства имен должны соответствовать структуре каталогов;
Структура файла исходного кода
Файл исходного кода должен иметь следующую структуру (порядок элементов также имеет значение):
- using - декларации;
- Декларации пространства имен;
- [Optional] Перечислители и вспомогательные структуры, нужные для данного класса. Поскольку это может помешать работе дизайнера форм, их можно отнести в отдельный файл;
- Объявление класса. Настоятельно рекомендуется объявлять один класс в файле за исключением классов для модульного тестирования, которые могут сопровождать основной код;
Структура классов
Классы и структуры должны объявляться в следующем порядке:
- Данные-члены;
- Конструктор(ы);
- Свойства (сначала public, потом protected, потом private);
- Методы (сначала public, потом protected, потом private);
- Делегаты и события.
Форматирование кода
Код должен быть отформатирован в соответствии со следующими правилами:
- Опция “Tabs” должна быть установлена в положение “Keep tabs”;
- Размер отступа по умолчанию должен быть 4 символа;
- Программные конструкции выбора и повторения должны быть отформатированы, как в следующих примерах:
if (file.Exists(fileName))
{
file.Open(fileName);
}
for (int i = 0; i < MAX_ELEMENTS; ++i)
{
array[i] = i * MULTIPLY_FACTOR;
}
switch (workMode)
{
case WorkMode.Add:
DoAdd();
break;
case WorkMode.Update:
DoUpdate();
break;
}
- Пустые строки используются для улучшения восприятия кода. Обычно они используются для разделения независимых секций кода. Обязательно ставить пустую строку:
- После последнего объявления “using” перед объявлением пространства имен;
- Между методами;
- Между объявлением локальных переменных метода и первой инструкцией метода;
- Перед многострочным и однострочным комментарием за исключением комментария, непосредственно следующего за фигурной скобкой, открывающей блок;
- Перед логически изолированной частью кода метода.
- После последнего объявления “using” перед объявлением пространства имен;
- Пробелы также следует использовать для улучшения восприятия кода. Необходимо вставлять пробелы:
- Перед круглыми скобками, следующими за ключевым словом:
- Перед круглыми скобками, следующими за ключевым словом:
if (condition)
- После запятой в списке аргументов:
int result = Calculate(argumentOne, argumentTwo);
- Между бинарным оператором и его операндами:
int result = argumentOne + argumentTwo;
- Между частями инструкции “for”:
for (int i = 0; i < MAX_ELEMENTS; ++i)
Аргументы унарных операторов никогда не отделяются пробелами:
i++;
--counter;
- Все длинные строки должны быть свернуты. Рекомендуется ограничить длину строки 78 символами. При сворачивании длинных строк старайтесь следовать следующим правилам:
- Переносите строку после запятой;
- Переносите строку перед оператором;
- Предпочитайте «логическое» разбиение строки «физическому»;
- Делайте дополнительный отступ перед «свернутой» частью строки:
- Переносите строку после запятой;
int i;
do
{
// Here comes a long line.
bool isSucceeded = a + b + c + d + e – h * MAX_FACTOR / DEFAULT_SCALE
- correctionFactor;
}
- Длинный список параметров метода также должен быть свернут, равно как и список аргументов в инструкции вызова метода:
// The method declaration.
public float DoSomethingFromManyArguments(
int argumentOne,
int argumentTwo,
decimal argumentThree,
string argumentFour)
{
// Method body goes here.
}
// The calling code.
float result = DoSomethingFromManyArguments(
1,
1,
0.5m,
“Some text”);
- Не объявляйте несколько переменных в одной строке, используйте отдельную строку для каждой переменной:
int customerID;
string customerName;
float salary;
- Рекомендуется одинаково выравнивать связанные строки кода, особенно это касается объявлений переменных. Например:
Position _position;
string _customerName;
float _salary;
_customerName = “John Doe”;
_salary = DEFAULT_SALARY;
_salary += SALARY_BONUS;
_position = Position.Supervisor;
Используйте для выравнивания символы табуляции.
Соглашения о наименованиях
- Не используйте венгерскую или другую префиксную нотацию за исключением случаев, оговоренных далее.
- Имена локальных переменных и аргументов методов должны записываться в нотации «верблюд»:
string customerName;
private int DoSomething(int firstArgument, float secondArgument);
- Имена закрытых полей класса должны следовать нотации «верблюд» с подчерком перед первым символом:
private string _customerName;
- Имена открытых полей класса должны следовать нотации «Паскаль»:
public int CustomerID;
- Имена свойств и методов класса должны следовать нотации «Паскаль»:
public bool ValidateAmount();
public bool FileExists
{
get;
}
- Имена классов, структур и нумераторов должны следовать нотации «Паскаль»:
public class CustomerAccount
{
};
private enum WorkMode
{
Add,
Update;
}
- Имена методов должны следовать шаблону «глагол» + «существительное» - например, “UpdateAccount”;
- Используйте единственное, а не множественное число в именах перечислителей. Иными словами, “WorkMode” - это правильное имя, а “WorkModes” - нет;
- Используйте значимые имена даже для закрытых методов, свойств, типов и т.д. Избегайте использовать короткие имена, такие как “a”, “b”, “n” за исключением общепринятых имен для переменных цикла “i” и“j”.
Общие принципы разработки
Культура кодирования
- Дублирование кода в программе строго запрещается.
- Не применяйте функциональную декомпозицию. Для повторного использования кода применяйте средства ООП, например, наследование;
- Обязательна замена числовых и строковых литералов символическими константами. Исключение можно сделать для самоочевидных констант, таких как 0 и 1. Давайте символическим константам значимые имена;
- Рекомендуется объединять связанные между собой константы целых типов в перечислители, а не целых типов – в абстрактные классы с открытыми статическими константными членами;
- Разделяйте общеупотребительные константы, перечислители и вспомогательные классы посредством System Frameworks проектов;
- Максимально следуйте практике ООД/ООП. Максимально используйте шаблоны проектирования, но делайте это в правильном контексте, как это описано в секции “Applicability” данного шаблона;
- Избегайте длинных и сложных методов, разбивайте их на несколько коротких. При модификации кода максимально используйте рефакторинг;
- Всегда обращайте внимание на предупреждения компилятора. Добивайтесь, чтобы их не было.
Соглашения о комментариях
- Код должен легко читаться и без комментариев. Выражайте свои мысли при помощи алгоритмического языка, а не английского или украинского;
- Текст комментария отделяйте от слэшей одним пробелом. Первая буква предложения должна быть прописной, в конце предложения должна стоять точка;
// This is a sample comment. This is yet another comment sentence.
- Комментарии должны подчиняться общим правилам сворачивания строк.
- Комментарии к методам, свойствам, классам, интерфейсам и другим конструкциям языка должны иметь XML-формат для возможной генерации программных документов в дальнейшем;
- Не используйте комментарии в стиле C: /* … */
- Комментарий не должен перефразировать то, что написано в коде. Старайтесь давать содержательные пояснения. Например, комментарий “Increment i by one” к коду “i++;” это плохая практика, а комментарий “Update the number of customer accounts processed” – хорошая.
Специфика Windows Forms
- Следуйте Microsoft User Interface Guidelines, если к вам не предъявляют других требований.
- Если два управляющих элемента служат одной цели (например, поле ввода для имени пользователя и метка перед ним), разрешается использовать тип элемента в окончании имени. Для предыдущего примера это могут быть имена “customerNameText” и “customerNameLabel” соответственно.
- Старайтесь убирать всю бизнес-логику из форм и управляющих элементов. В обработчики событий элементов помещайте только вызовы методов;
- Используйте нотацию «верблюд» для наименования экземпляров управляющих элементов на формах и пользовательских управляющих элементах, например, “optionsHeading”;
- Используйте нотацию «Паскаль» для наименования классов форм и управляющих элементов, например, “ ProductList ”;
- Стремитесь к повторному использованию UI и исходного кода. Делите ваш интерфейс на элементы; смело наследуйте формы и управляющие элементы.
Источник информации
osoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconnetframeworkdesignguidelines.asp