Міністерство освіти України
Національний університет «Львівська політехніка»
Кафедра автоматизованих систем управління
К у р с о в а р о б о т а
з дисципліни "Системне програмування
та операційні системи"
на тему
"Програма-скрінсейвер"
Міністерство освіти України
Національний університет «Львівська політехніка»
Кафедра автоматизованих систем управління
Завдання на курсову роботу
з дисципліни "Системне програмування та операційні системи"
Прізвище, ім’я студента Вавроневич Валентина
Група КН - 22
Тема курсової роботи “Програма-скрінсейвер”
Спеціальна частина завдання:
1. Провести огляд літератури про особливості написання програм скрінсейверів під ОС MS DOS.
2. Реалізувати основну візуальну частину програми-скрінсейвера, - біжучий рядок, в графічному режимі.
3. Реалізувати можливість настройки основних параметрів програми, таких як пароль користувача, візуальні параметри біжучого рядка (колір фону; колір і зміст тексту біжучого рядка), з наступним їх збереженням (зчитуванням) в файлі.
4. Повну реалізацію алгоритму здійснити на мові Turbo C .
5.Середовище функціонування програми – MS DOS (Dos Navigator)
6. Термін завершення роботи - 2011р.
Завдання видано 2011 р.
Керівник ( підпис )
Студент ( підпис )
Зміст
стор.
Вступ ................................................................................................................................4
1. Огляд літератури ......................................................................................................5
2. Постановка задачі ......................................................................................................6
3. Загальний опис алгоритму розв’язку задачі .......................................................7
4 . Програмна реалізація алгоритму ...........................................................................9
4.1. Опис програмного комплексу на мові Turbo C..................................................9
4.1.1. Загальна характеристика і призначення програми .......................9
4.1.2. Вхідні та вихідні дані ..............................................................................9
4.1.3. Структура програми .............................................................................9
4.1.4. Модуль mss.exe та підпрограми .........................................................9
4.1.5. Таблиця ідентифікаторів програми......................................................9
4.1.6 Середовище реалізації програми...........................................................11
4.1.7 Технологія виконання та відлагодження програми..........................11
5. Інструкція користувачеві .......................................................................................11
6. Контрольні приклади та аналіз їх реалізації .......................................................12
Висновки .........................................................................................................................13
Список використаної літератури ...............................................................................13
Додатки ..........................................................................................................................14
Додаток 1. Текст програми на мові Turbo C
Вступ
Програми-скрісейвери – це утиліти, що перетворилися в незамінний атрибут практично будь-якої сучасної операційної системи, що поєднують в собі як практичну так і естетичну функції. В ті роки, коли перші скрінсейвери були запущені на ПК, їх первісним завданням був захист люмінофору від завчасного вигоряння.
Загроза була більш ніж реальною. Пригадайте, що було видно на екранах більшості ПК в ті роки? Переважно таблиця Norton Commander, настільки ж суворо геометрично побудований „Лексикон” або щось подібне. Сьогодні важко в це повірити, але ще декілька років тому можна було зустріти екран, на якому активний шар люмінофору вигорів точно по границям того ж Norton!
Окрім захисту люмінофора, програми-скрінсейвери можуть застосовуватися і для інших цілей. Наприклад, якщо потрібно відійти від робочого комп’ютера, а ні виключати його, ні залишати для загального перегляду інформацію на екрані не хочеться. В цьому випадку саме просте рішення – запустити програму-скрінсейвер, захищену паролем.
1. Огляд літератури
Робочий файл програми-скрінсейвера є ніщо більше, ніж звичайний exe-файл із зміненим розширенням. Для ОС Windows – це розширення .scr, для ОС MS DOS це розширення загально не визначене.
Так як програми – скрінсейвери не мають практичного використання в „чистому” MS DOS, то особливості їхнього використання визначаються активною графічною оболонкою – Volcov commander, Norton commander, Dos Navigator. В першій і другій графічній оболонці немає можливості встановлення користувачем програми-скрінсейвера, тому що ці оболонки є „ветеранами” свого типу програм і при їхньому створенні в ті часи крім основної задачі, - навігації по файловій структурі дисків, інших завдань не ставилось і відповідно можливості були мінімально-необхідні.
Графічна оболонка Dos Navigator більш широкі можливості і в тому числі – встановлення і вибір користувачем програми-скрінсейвера. Dos Navigator має свій тип розширення для файлів програм-скрінсейверів - .ss. Отже при використанні створеної програми-скрінсейвера в Dos Navigator розширення файлу потрібно змінити на розширення .ss.
2.Постановка задачі
Засобами мови Turbo C створити програму-скрінсейвер з середовищем функціонування MS DOS (Dos Navigator), захищену паролем користувача і можливістю його зміни, а також зміни і запам’ятовування параметрів біжучого рядка як основної візуальної частини програми-скрінсевера.
3. Алгоритм розв’язку
3.1 Загальний опис алгоритму.
Запуск програми.
Зчитування настройок з відповідного файлу, якщо такого немає, то файл створюється і застосовуються настройки „по-замовченню”. (функція readsetup())
Ініціалізація графічної підсистеми. (функція setgraph())
Запуск нескінченого циклу.
Цикл: відображення біжучого рядка (функція textrun()). При натисненні клавіші перевірка паролю (функція pswcheck()).
Якщо пароль не вірний – перехід на п.4.1
Якщо пароль вірний – перехід на п. 4.4
Виведення на екран (в текстовому режимі) меню користувача і очікування натиснення потрібної клавіші.
Клавіша „S” – настройка параметрів біжучого рядка (функція setup()).
Клавіша „P” – зміна паролю користувача (функція pswChange()).
Клавіша „Q” – вихід: збереження настройок (функція savesetup()), вихід з нескінченого циклу.
5. Вихід з програми.
Блоксхема:
4. Програмна реалізація алгоритму
Програма реалізована повністю на мові Turbo C.
Опис програмного комплексу на мові Turbo С.
4.1.1 Загальна характеристика і призначення програми.
Ім’я програми – “My screensaver”
Файл – mss.cpp
Мова програмування Turbo C;
Середовище функціонування програми – Dos Navigator (MS DOS)
Об’єм програми у текстових рядках – 443
Об’єм програми у байтах – mss.exe -67,128 байт , mss.cpp – 8,893 байт
Програма призначена для захисту інформації на екрані монітора у відсутність користувача. При використанні програми під ОС Windows функції захисту інформації на екрані можуть бути відключені засобами ОС Windows. При використанні програми під ОС MS DOS переривання виконання програми клавішами Ctrl+Break заблоковане програмно засобами вбудованого асемблера.
4.1.2 Вхідні та вихідні дані .
Вхідними даними програми є параметри відображення біжучого рядка і пароль користувача, що зчитуються з файлу або задаються в програмі.
Вихідними даними програми є параметри відображення біжучого рядка і пароль користувача, що були або не були змінені в процесі виконання програми. Вихідні дані зберігаються у файлі для подальшого зчитування.
колір фону – ціле число fcol
колір тексту біжучого рядка – ціле число tcol
довжина паролю користувача ціле число pswlen
довжина тексту біжучого рядка – ціле число textlen
текст біжучого рядка – масив символів text
пароль користувача – масив символів psw
4.1.3 Структура програми .
Програма реалізована у одному програмному модулі mss.cpp, з розбиттям на
відповідні підпрограми.
4.1.4 Модуль mss.exe та підпрограми.
Модуль book.exe є виконавчим файлом програми.
Підпрограми:
Readsetup – зчитує з файлу настройки
Savesetup – записує в файл настройки
Setgraph – ініціалізує графічну підсистему
Textrun – відображає на екрані біжучий рядок
Pswcheck – перевірка паролю
pswChange – зміна паролю
Cbreak – блокує використання Ctrl+break
HideCurs - ховає курсор.
ShowCurs - показує курсор.
4.1.5.Таблиця ідентифікаторів програми.
Ідентифікатор
Тип
Призначення
Fcol, tcol
Unsigned int
Колір фону і тексту біжучого рядка
Textlen, pswlen
Unsigned int
Довжина тексту біжучого рядка і паролю
Text, deftext,
Char text[20]
Char deftext=”My screensaver”
Текст біжучого рядка;
Те саме – по замовчуванню
Psw, defpsw, newpsw, trypsw, tmppsw
char psw[10];
char defpsw[10]="god"; char newpsw[10];
char trypsw[];
char tmppsw[10]
Пароль, пароль по-замовчуванню, новий пароль, введений пароль,
Підтверджений пароль
X,y,
maxx,maxy,
Int
В граф. реж:
Координати курсора (х,у), максимальні значення координат(х,у)
k,
ap
Int
Параметр циклу,
Номер відеосторінки
S, key
char
Зчитаний з клавіатури символ
Xc
Unsigned int
Позиція курсора в текст. реж.
4.1.6 Середовище реалізації програми.
Програма працює під керівництвом MS-DOS на IBM-сумісному ПК (при використанні графічної оболонки Dos Navigator)
4.1.7 Технологія виконання та відлагодження програми.
Програма відлагоджувалася в середовищі Turbo C++ v3.0
5.Інструкція користувачеві.
Опис інструкцій при роботі з програмою.
Після запуску програми на екрані з’являється біжучий рядок з текстом по-замовченню „My screensaver” білого кольору на чорному фоні. При натисканні клавіші з’являється запит для введення паролю, - при першому запуску використовується пароль по-замовченню – „GOD”. При введенні невірного паролю на екрані знову з’явиться біжучий рядок. При введенні вірного паролю з’являється меню, за допомогою якого при натисненні вказаних в ньому клавіш можна здійснити ті чи інші дії.
При настроюванні параметрів біжучого рядка (клавіша „S” меню) вибір параметру можна пропустити натиснувши клавішу „Space”, при цьому значення параметру залишиться попередньо визначеним.
При зміні паролю (клавіша „P” меню) потрібно ввести новий пароль, потім ввести його повторно. Якщо повторне введення не співпадає з попереднім, тоді пароль залишиться попередньо визначеним і запуститься біжучий рядок. В іншому випадку новий пароль буде запам’ятовано і при наступному запуску програми старий пароль не буде вважатися вірним.
6. Контрольні приклади та аналіз їх реалізації
При запуску програмі на екрані з’являється біжучий рядок (рис.1)
При натисканні клавіші з’явиться запит паролю.(рис.2)
Рис.1
Рис.2
При введені вірного паролю з’явиться меню користувача.(рис.3)
При натисканні клавіші S на екрані з’явиться перше підменю візуальних настройок.(рис.4)
Рис.3
Висновки : в процесі роботи над курсовою було створено діючу програму-скрінсейвер, вивчено особливості програм-скрінсейверів і основні принципи їхнього написання в середовищі TurboC.
Список використаної літератури:
“Язык программирования С”, Стивен Прата, изд. Диасофт, Киев, 2000.
2. “Программирование на С и С++” А.В.Крячков, И.В.Сухинина, В.К.Томшин, изд. Горячая линия –Телеком, Москва, 2000.
3. “Спарвочник програмиста ПК типа IBM PC, XT и AT” Р. Джордейн, изд. Финансы и статистика, Москва, 1992