Графічний комп’ютерний годинник

Автор: Пользователь скрыл имя, 19 Декабря 2012 в 20:05, курсовая работа

Описание работы

У моїй курсовій роботі моїм завданням стало створення графічного годинника на мові С\С++. Для створення такої програми необхідно дуже добре знати мову програмування. Зокрема необхідно знати як працювати із рядками, графікою, знати як будувати цикли і вміти працювати із шрифтами. Розглянемо задачу детальніше. Для забезпечення читання та виведення системної дати та часу необхідно знати як працювати із рядками і змінними, для забезпечення встановлення розміру часу необхідно знати як працювати із функціями введення та виведення, щоб створити інтерфейс годинника необхідно вміти працювати із графікою.

Содержание

1.Завдання на курсову роботу......................................……………………………2

2.Вступ..................................................................………………………………… ..4

3.Формулювання задачі.....................................……………………………………5

4.Методи розв’язування задачі……………………………………………………..6

5.Алгоритм розв’язування задачі......................................…… .………………………………………………………………………………………18

6.Програма та її опис...........................................………….…………………………………………23

7.Технологія програмування, виконання та від лагодження програми.....……25

8.Інструкція користувача................................................…………………………26


Висновки..................................................................……………… ……….……27

Список використаної літератури .....……………………………………..………28

Работа содержит 1 файл

Звіт.doc

— 237.50 Кб (Скачать)

Мiнiмальна програма на мовi Сi++ має вигляд:

main()

{

    return 0;

}

      Функцiя  починається з iменi. В даному  прикладi вона не має параметрiв,

тому за її iм'ям розташовуються порожнi круглi дужки (). Далi  обидвi фiгурнi

дужки {...} позначають блок або складений оператор, з яким  ми працюватимемо, як  з єдиним  цiлим. У Паскалi аналогiчний змiст мають операторнi дужки begin

  ... end.

      Мiнiмальна  програма має лише один оператор - оператор  повернення  зна-

чення return. Вiн завершує виконання програми та повертає  в  нашому  випадку

деяке цiле значення (ненульове  значення свiдчить про помилки  в програмi, ну-

льове про успiшне її завершення). Виконання навiть цiєї найпростiшої  програ-

ми, як i решти багатьох, проходить у декiлька  етапiв.

Етапи виконання програми на мовi Сi:

код  запуску ─> функцiя main() ─> код завершення.

 

Базовi типи даних

      Будь-яка  програма передбачає виконання певних операцiй з даними. Вiд їх

типу залежить, яким чином  будуть проводитися цi операцiї, зрештою, будем визначено, як реалiзовуватиметься алгоритм.

      Що таке  тип даних? Сформулювати це  поняття можна мтак : множина значень плюс перелiк дiй або операцiй, якi можна виконати мнад мкожною змiнною даного типу. Вважається, що змiнна або вираз належить до конкретного типу, якщо його значення лежить в областi допустимих значень цього типу.

Арифметичнi типи даних  об'єднують цiлi та дiйснi, цiлi у свою чергу - декiль-

ка рiзновидiв цiлих  та символьних типiв даних. Скалярнi типи включають в себе арифметичнi типи, покажчики та перелiчуванi типи. Агрегатнi або структуровані типи мiстять в собi масиви, структури та файли. Нарештi функцiї представляють дещо особливий клас, який слiд розглядати окремо.   

   Базовi типи  даних Сi можна перерахувати  у наступнiй послiдовностi:

1. char - символ

      Тип  може використовуватися  для   зберiгання  лiтери, цифри  або  iншого 

символу з множини  символiв ASCII. Значенням об'єкта типу  char є код символу.

Тип char iнтерпретується як однобайтове цiле  з областю  значень  вiд -128 до

127.

2. int - цiле 

      Цiлi  числа у дiапазонi вiд -32768 до 32767. В  операцiйних  середовищах

Windows та Windows NT використовуються 32-розряднi цiлi, що  дозволяє  розширити дiапазон їх  значень вiд -2147483648 до 2147483647. Як  рiзновиди  цiлих чисел, у деяких версiях компiляторiв iснують short - коротке  цiле (слово) та long (4 байти) - довге цiле. Хоча синтаксис мови  не залежить вiд ОС, розмiр-

нiсть цих типiв може коливатися вiд конкретної  реалiзацiї. Гарантовано лише,

що спiввiдношення розмiрностi є наступним: short <= int <=long.

3. float - число з плаваючою  комою одинарної точностi.

      Тип  призначений для зберiгання  дiйсних чисел. Може  представляти числа

як у фiксованому  форматi (наприклад число пi - 3.14159), так  i  в експонен-

цiальнiй формi - 3.4Е+8.

4. double - число з плаваючою  комою подвiйної точностi 

      Має  значно бiльший дiапазон значень,  порiвняно з типом float: +(1.7 10-

308 ... 1.7 10308).

      У мовах Сi та Сі++ , на вiдмiну вiд Паскаля, використовується  префiксний запис оголошення. При цьому на початку вказується тип змiнної,  а  потiм  її  iм'я. Змiннi повиннi бути описаними до того моменту, як  вони  будуть  використовуватися у програмi. Нiяких додаткових ключових слiв при цьому не пишуть.

      Наприклад:

int name;

float var, var1;

double temp;

char ch;

long height;

      Змiннi можна  iнiцiалiзувати (присвоювати  їм  початковi значення) безпо-

середньо у мiсцi їх опису:

int height = 33 ;

float income = 2834.12 ;

char val = 12 ;

      Для  виведення iнформацiї на екран  використаємо функцiю printf()(деталь-

но про операцiї  введення-виведення значень змiнних йтиметься у роздiлi 1.3.4.

"Функцiї введення та виведення"):

printf("Вiк Олега-%d.Його  прибуток %.2f",age,income);

      Крiм  того, цiлi типи char, short, int, long  можуть  використовуватися з 

модифiкаторами  signed (iз  знаком) та  unsigned (без знаку). Цiлi  без  знаку

(unsigned) не  можуть набувати  вiд'ємних значень, на  вiдмiну  вiд  знакових

цiлих (signed). За рахунок  цього дещо розширюється дiапазон можливих додатних значень типу.

 

 

Функцiї  введення та виведення

      Що б  там не було, але реальнi програми  важко уявити  без  використання

операцiй введення та виведення.

В мовi Сi на стандартнi потоки  введення-виведення  (в  бiльшостi  випадкiв -

клавiатура та монiтор) завжди вказують iмена  stdin  та  stdout. Обробку  цих 

потокiв здiйснюють  функцiї, визначенi  в  заголовочному  файлi  stdio.h.

      Розглянемо основнi функцiї введення-виведення.

Функцiя   getchar()  зчитує  i  повертає  черговий  символ  з   послiдовностi

символiв вхiдного  потоку. Якщо  цю   послiдовнiсть   вичерпано,  то  функцiя 

getchar() повертає значення -1 (цьому значенню вiдповiдає константа EOF).

Функцiя  putchar(аргумент), де  аргументом є вираз  цiлого  типу,  виводить у 

стандартний вихiдний потiк значення аргументу, перетворене до типу char.

Приклад :

#include<stdio.h>

void main()

{

  char ch;

  ch=getchar();

  putchar(ch);

}

      Для  введення та виведення бiльш   складної  iнформацiї  використовуються 

функцiї scanf() та printf().

Функцiя printf() призначена для виведення iнформацiї за заданим  форматом.

Синтаксис функцiї printf():

printf("Рядок формату"[, аргумент1[, аргумент2, [...]]]);

      Першим  параметром даної функцiї є  "рядок формату", який задає  форму ви-

ведення iнформацiї. Далi можуть розташовуватися вирази арифметичних типiв або рядки (в списку аргументiв вони вiдокремлюються комами).

      Функцiя  printf() перетворює значення  аргументiв  до вигляду, поданого у 

рядку формату, "збирає" перетворенi значення в цей рядок  i виводить одержану послiдовнiсть символiв у стандартний потiк виведення.

      Рядок  формату складається  з об'єктiв  двох типiв: звичайних  символiв,

якi з рядка копiюються в потiк  виведення, та специфiкацiй перетворення.

Кiлькiсть специфiкацiй у рядку  формату  повинна  дорiвнювати  кiлькостi аргу-

ментiв.

Приклад :

#include<stdio.h>

void main()

{

  int a=10,b=20,c=30;

  printf(" a==%d \n b==%d \n c==%d \n",a,b,c);

}

      Специфiкацiї  перетворення для функцiї printf():

%d - десяткове цiле;

%i - десяткове цiле;

%o - вiсiмкове цiле без  знаку;

%u - десяткове цiле без  знаку (unsigned)

%x - шiстнадцяткове цiле  без знаку;

%f - представлення величин  float та double з фiксованою точкою;

%e або %Е - експоненцiальний  формат представлення дiйсних  величин;

%g - представлення дiйсних  величин як f або Е в залежностi  вiд значень;

%c - один символ (char);

%s - рядок символiв; 

%p - покажчик

%n - покажчик

%ld - long (в десятковому  виглядi);

%lo - long (у вiсiмковому  виглядi);

%p - виведення покажчика  в шiстнадцятковiй формi;

%lu - unsigned long.

      Можна  дещо  розширити  основне   визначення  специфiкацiї  перетворення,

помiстивши модифiкатори мiж знаком %  i  символами, якi  визначають тип перетворення.

 

Директиви

     У багатьох програмах   ми  зустрiчаємо використання  так  званих директив. Синтаксис  використання їх у програмi  наступний :

#include <file_1> ─ директива включення, підключає до програми необхідний файл або бібліотеку.

#pragma ─ директива, яка дозволяє передавати компілятору різні команди.

#endif ─ директива, яка позначає закінчення програми.

     По-перше, слiд   звернути увагу  на  те,  що  на  вiдмiну  вiд  бiльшостi

операторiв, ці директиви не завершуються крапкою  з комою. Використання таких директив призводить до того, що препроцесор  пiдставляє на мiсце цих директив тексти файлiв. Якщо iм'я файла мiститься у дужках <…>, то  пошук файлу буде  проводитися  у спецiальному каталозi файлiв для включення (як, правило, каталог INCLUDE, усi файли з розширенням *.h - header-файли). Якщо даний  файл  у  цьому  каталозi буде вiдсутнiм, то препроцесор видасть вiдповiдне повiдомлення  про  помилку, яка є досить типовою для  початкiвцiв при роботi в  iнтегрованому середовищi:

    < Unable to open include file 'file.h'>

    <Неможливо вiдкрити  файл включення ' file.h'>

     У цьому випадку  достатньо перевiрити не тiльки  наявнiсть header-файлу у

вiдповiднiй директорiї, але й впевнитися у тому, що опцiя Options\Directories

дiйсно вiдповiдає правильному диску  та спецiальному каталогу, де  розташовані файли включення.

Iснує i другий спосiб - вказiвка  iменi файла у подвiйних лапках - file_n.txt,

 так найчастiше  пiдключають програмiсти власностворенi  файли включення. Тодi пошук файлу ведеться у поточнiй директорiї активного диску, якщо ж пошук буде невдалим,  система   закiнчує його  у   спецiальному   каталозi   для  header -файлiв, як i у загальному випадку. Найбiльш частим у початкiвцiв є включення

файлу "stdio.h":

#include <stdio.h>

main()

{

    printf("Hello ! ...\n");

    return 0;

}

     Слiд   зауважити, що  файли  включення  iнодi  можуть  вмiщувати  в   собi

команднi  рядки включення iнших файлiв, причому без нiяких обмежень у глибину вкладеностi. Цей прийом широко застосовується при розробцi великих програмних проектiв.

 

Оператори

        Тепер перейдемо  до  запису  алгоритмiв  програм  безпосередньо  мовою 

програмування Сi nf Cі++.

        Оператори - це  основнi  елементи,  з  яких  "будуються" програми  на 

будь-якiй мовi програмування. Бiльшiсть  операторiв  складаються  з  виразiв.

Виходячи з цього, спочатку розглянемо вирази.

Вираз представляє собою  об'єднання операцiй  i операндiв. Найпростiший  вираз складається з одного операнду.

Приклади виразiв :

5

-7

10+21

a*(b+d*1)-1

x=++a%3

a>3

 

        Неважко помiтити, що операнди  можуть  бути  константами, змiнними,  їх 

об'єднаннями. Деякi вирази складаються з менших виразiв.

Дуже важливою особливiстю  мови Сi або Сі++ є те, що кожний вираз  має  значення. Наведемо приклади кiлькох виразiв i їх значень :

-5+7     2

1<2     1

6+(a=1+2)   9

a=1+2     3

 

 

        Як вже було сказано, основу  будь-якої програми  складають  оператори.

Оператором-виразом називається  вираз, вслiд за яким стоїть  крапка  з  комою.

     Взагалi усi оператори можна згрупувати у  наступнi класи:

  • оператори присвоювання;
  • виклики функцiй;
  • розгалуження;
  • цикли.

        Проте,  оператори  найчастiше  вiдносяться  до  бiльш  нiж  одного  з

чотирьох   класiв.  Наприклад,  оператор   if  (a=fn(b+c)>d)  складається   з 

представникiв   наступних    класiв :  присвоювання,   виклик   функцiї    та

розгалуження. У тому i є гнучкiсть Сi, що є можливiсть  змiшування в одному

операторi операторiв  рiзних класiв. Проте навряд  чи  слiд  цим  зловживати -

програма може вийти  правильною, проте надто заплутаною та нечитабельною.

 

Оператор  розгалуження if

        Оператор розгалуження призначений  для виконання тих  або iнших  дiй в

залежностi вiд iстинностi або хибностi деякої умови. Основний оператор  цього 

блоку в Сi - if ... else не має  ключового  слова  then, як  у  Паскалi, проте 

обов'язково вимагає, щоб  умова, що перевiряється, розмiщувалася  б у круглих

дужках. Оператор,  що   слiдує   за  логiчним   виразом,  є   then - частиною 

Информация о работе Графічний комп’ютерний годинник