DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Календар

Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра інформатики

Інформація про роботу

Рік:
2013
Тип роботи:
Курсова робота
Предмет:
Програмування частина 4 Технологія системного програмування

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ Тернопільський національний технічний університет ім. Івана Пулюя   Кафедра інформатики і математичного моделювання     Курсова робота З дисципліни «Програмування» на тему «Календар» Зміст Вступ ………………………………...………………………………… 2 Аналіз завдання ………………………………………………………. . 4 Розробка алгоритму функціонування ………………………………... 5 Опис основних змінних та функцій …………………………………. 6 Тестування програми …………………………………………………. .8 Висновки ………………………………………………………………...14 Перелік використаної літератури ……………………………………...15 Лістинг програми …………………………………………………….....16 Вступ Серед основних функції програмних засобів виділяють: збір, обробку, передачу, збереження інформації; автоматизацію проектно-конструкторських та інших управлінських робіт. Сучасний спеціаліст, пов'язаний с комп’ютерною автоматизацією обов’язково повинен володіти основами програмування, так як раціональне і правильне використання цифрового апарату є дуже важливим аспектом багатьох сучасних систем автоматики. Щоб реалізувати завдання даної курсової роботи, я повинен створити програму для перегляду календаря на будь-який, заданий користувачем річ, а також визначення дня тижня за введеними роком, місяцем та днем. Справитися з цією задачею мені допоможе об’єктна-орієнтоване програмування, або ООП. На даний момент ООП являється домінуючим стилем при створення програм. ООП являється третім великим етапом (після структурного і модульного програмування) в процесі розвитку структурного підходу. Створювані в середині 70-х років великі програмні системи продемонстрували, що в рамках процедурно-орієнтованого стилю використання структурного підходу не дає бажаного результату. Число помилок, пов’язаних з неправильним використанням процедур і некоректним врахуванням взаємозв’язків між компонентами, стало нелінійно рости. Терміни уводу в експлуатацію цих систем постійно зривались. Зменшити число подібних помилок і спростити їх знаходження могла дозволити алгоритмічна декомпозиція, що орієнтується на «природні» елементи (об’єкти) простору вирішуваної задачі. В цьому випадку спрощувалось зіставлення програмованих конструкцій з модельованими об’єктами. Основним поняттям ООП являється клас, який можна розглядувати з двох сторін: по-перше, з позиції предметної області: клас відповідає певному характерному об’єкту цієї області. По-друге, з позиції технології програмування, що реалізує дані зіставлення: «клас» в ООП – це певна програмна структура, яка володіє трьома важливими властивостями: інкапсуляція, спадкування, ізоморфізму. Не мало важливі і такі властивості ООП: об’єктна-орієнтований аналіз предметної області, створення і знищення об’єктів, принципи організації взаємодії об’єктів. Аналіз завдання Метою роботи являється розробка програми на мові Сі для обробки даних. Моя програма повинна коректно обробляти дані, представлені у вигляді таблиці: Назва місяця Нд Пн Вт Ср Чт Пт Сб                                                 Розроблена програма повинна виконувати наступні задачі: Створювати календар на будь-який рік, заданий користувачем. Визначати день тижня Завершувати роботу. Розробка алгоритму функціонування Для виконання даної курсової роботи знадобиться стандартна бібліотека мови програмування Сі – time.h. Щоб створити календар на заданий рік, потрібно використовувати арифметичний тип time_t для представлення часу, та структуру struct tm,що містить компоненти календарного часу: Ім’я Опис  int tm_sec; Секунди від початку хвилини(0,59)  int tm_min; Хвили від початку години(0,59)  int tm_hour; Години до півночі(0,23)  int tm_mday; Число місяця(1,31)  int tm_mon; Місяці після січня(0,11)  int tm_year; Роки із 1900(в Windows), с 1970(в Unix)  int tm_wday; Дні з неділі(0,6)  int tm_yday; Дні з першого січня(0,365)  int tm_isdst; Ознака літнього часу   Опис основних змінних та функцій В програмі використовуються наступні основні функції: Назва функції Параметри Призначення  void main ( ) основна функція програми  void intro ( ) титульна сторінка  void calendar ( ) визначення дня неділі  void calendar_1 ( ) створення календаря   В програмі використовуються наступні основні змінні: Назва змінної Тип Призначення К-сть символів  ch char зберігає поточний пункт меню 1  i int лічильник циклу або елемент масиву 1  j int лічильник циклу або елемент масиву 1  m int лічильник масиву 1  *month[ ] char масив, що містить місяці 12  *wday[] char масив, що містить дні тижня 8  tm*timeinfo struct структура компонентів часу 1  year int зберігає поточний рік 1  month int зберігає поточний місяць 1  day int зберігає поточний день 1   В програмі використовуються наступні стандартні бібліотеки мови Сі: #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<iostream.h> #include <time.h> iostream.h - заголовний файл з класами, функціями і змінними для організації вводу-виводу в мові програмування C + +. stdio.h - містить визначення макросів, константи та оголошення функцій і типів, що використовуються для різних операцій стандартного вводу і виводу. conio.h - заголовний файл для створення текстового інтерфейсу користувача. stdlib.h - заголовний файл, який містить у собі функції, що займаються виділенням пам'яті, контроль процесу виконання програми, перетворення типів та інші. time.h – заголовний файл, що містить типи і функції для роботи з датою і часом. Тестування програми Після запуску програми перед користувачем з’явиться екран з титульною сторінкою. / Для продовження роботи потрібно натиснути будь-яку клавішу. Після чого з’явиться головне меню програми: / Тепер подивимось, що відбудеться при натисненні користувачем кожного пункту меню. Нумерація пунктів – є нумерацією клавіш на клавіатурі. При натисненні клавіші 1, програма запросить ввести рік, який потрібно вивести на екран: / / Після уведення року, програма помісячно буде виводити результат виконання на екран: / / Якщо рік буде уведено некоректно, то програма видасть відповідне повідомлення і знову повернеться до пункту введення року: / Після успішного виведення останнього місяця календаря, виведеться повідомлення із пропозицією повернутися до головного меню , або повністю завершити роботу програми. / При натисненні клавіші 2, програма почергово буде запрошувати ввід року, місяця і дня для визначення дня тижня. / / / Після уведення всіх даних, програма виведене на екран, який день тижня випаде в той рік, місяць та день, які ввів користувач та запитає, чи продовжити роботу далі, чи завершити роботу: / Якщо дані були введені некоректно, то видасться відповідне повідомлення: / 3 – вихід із програми. При натисненні на клавіатурі клавіші 3 буде здійснено вихід. Висновки В процесі виконання курсової роботи, розроблена програма на мові Сі для обробки даних типу структура. Обробка даних включає: Створення календаря на будь-який рік Визначення дня неділі за введеними роком, місяцем та днем Вихід із програми Також в програмі розроблено титульну сторінку, яка містить інформацію про курсову роботу. При розробці програми використовувалися функції, масиви, вказівники. Перелік використаної літератури Гукин Д. Язык программирования Си для «чайников» — М.: Диалектика,2006. — С. 352 Кочан С. Программирование на языке Си — 3-е изд. — М.: Вильямс, 2006. — С. 496 Шилдт Г. Полный справочник по C — 4-е изд. — М.: Вильямс, 2004. — С. 704 Прата С. Язык программирования С: Лекции и упражнения — 1-е изд. — М.: Вильямс, 2006. — С. 960 Керниган Б., Ритчи Д. Язык программирования Си — 2-е изд. — М.: Вильямс, 2007. — С. 304 Лістинг програми #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> #include<iostream.h> #include <time.h> #include <windows.h> void kalendar() { clrscr(); struct tm time_check; int year, month, day; char ch; char Su[20]; CharToOem("недiля ", Su); char Mo[20]; CharToOem("понедiлок", Mo); char Tu[20]; CharToOem("вiвторок", Tu); char We[20]; CharToOem("середа", We); char Th[20]; CharToOem("четвер", Th); char Fr[20]; CharToOem("п'ятниця", Fr); char Sa[20]; CharToOem("субота", Sa); char error[100]; CharToOem("Неправильно введенi данi", error); char *wday[] = {Su, Mo, Tu, We, Th, Fr, Sa, error}; char year_1[100]; CharToOem("1 - Рiк(1970-2037): ", year_1); char month_1[100]; CharToOem("2 - Мiсяць: ", month_1); char day_1[100]; CharToOem("3 - День: ", day_1); char rez[100]; CharToOem("Цим днем є ", rez); char back[100]; CharToOem("0 - повернутися до головного меню \\ 1 - вихiд iз програми ", back); textbackground(1); textcolor(15); clrscr(); clrscr(); cprintf("\n\r"); cprintf(year_1); cscanf("%d", &year); cprintf("\n\r"); cprintf(month_1); cscanf("%d", &month); cprintf("\n\r"); cprintf(day_1); cscanf("%d", &day); cprintf("\n\r"); cprintf("\n\r"); time_check.tm_year = year - 1900; time_check.tm_mon = month - 1; time_check.tm_mday = day; time_check.tm_hour = 0; time_check.tm_min = 0; time_check.tm_sec = 1; time_check.tm_isdst = -1; if (mktime(&time_check) == -1) time_check.tm_wday = 7; if (mktime(&time_check) == -1) {cprintf(error);cprintf("\n\r"); cprintf("\n\r");} else { cprintf(rez); cprintf(wday[time_check.tm_wday]); cprintf("\n\r"); cprintf("\n\r"); } cprintf(back); do ch=getch();while((ch!='0')&&(ch!='1')); if (ch=='0')/*kalendar()*/return; else exit(0); getchar(); getchar(); } void kalendar_1() { clrscr(); char ch, start, ph; time_t now; struct tm * timeinfo; int year, m, i, j; char wday[100]; CharToOem(" Нд Пн Вт Ср Чт Пт Сб \n", wday); char January[20]; CharToOem("Сiчень", January); char February[20]; CharToOem("Лютий", February); char March[20]; CharToOem("Березень", March); char April[20]; CharToOem("Квiтень", April); char May[20]; CharToOem("Травень", May); char June[20]; CharToOem("Червень", June); char July[20]; CharToOem("Липень", July); char August[20]; CharToOem("Серпень", August); char September[20]; CharToOem("Вересень", September); char October[20]; CharToOem("Жовтень", October); char November[20]; CharToOem("Листопад", November); char December[20]; CharToOem("Грудень", December); char error[200]; CharToOem("Некоректно введенi данi!", error); char* month[] = {January,February,March,April,May,June,July,August,September,October,November,December}; char back[100]; CharToOem("0 - повернутися до головного меню \\ 1 - вихiд iз програми ", back); char enter_year[200]; CharToOem("Введiть рiк (1970-2037): ", enter_year); char xt[100]; CharToOem("Для продовження натиснiть '+' ", xt); char weit[100]; CharToOem(" ('+' - наступний мiсяць \\ '-' - попереднiй мiсяць)", weit); textbackground(1); textcolor(7); do{ clrscr(); cprintf("\n\r"); cprintf (enter_year); cscanf ("%d",&year); time (&now); timeinfo = localtime (&now); timeinfo->tm_year = year-1900; timeinfo->tm_mon = 0; if(mktime (timeinfo)==-1) { cprintf("\n\r"); cprintf(error); getch(); getch();} } while(mktime (timeinfo)==-1); cprintf("\n\r"); cprintf("\n\r"); cprintf (xt); m =-1; cprintf("\n\r"); while(m<12) { for(i=1; i<33; i++) { timeinfo->tm_mday = i; mktime (timeinfo); if(timeinfo->tm_mon > m) { do start=getch();while((start!='+') && (start!='-')); if(start=='+') { clrscr(); cprintf("\n\r"); cprintf(" %d", year); cprintf("\n\r"); cprintf("\n\r"); textcolor(8); cprintf(weit); textcolor(7); cprintf("\n\r"); cprintf("\n %s\n",month[timeinfo->tm_mon]); cprintf("\n\r"); cprintf("_______________________________\n"); cprintf("\n\r"); textcolor(14); cprintf(wday); cprintf("\n\r"); textcolor(7); cprintf("_______________________________\n"); cprintf("\n\r"); for(j=0;j<(timeinfo->tm_wday);j++) cprintf(" "); m++; break; } //----------------------------------------------------------------- if(start=='-' && timeinfo->tm_mon!=1 ) { timeinfo->tm_mon=m-1; mktime (timeinfo); clrscr(); cprintf("\n\r"); cprintf(" %d", year); cprintf("\n\r"); cprintf("\n\r"); textcolor(8); cprintf(weit); textcolor(7); cprintf("\n\r"); cprintf("\n %s\n",month[timeinfo->tm_mon]); cprintf("\n\r"); cprintf("_______________________________\n"); cprintf("\n\r"); textcolor(14); cprintf(wday); cprintf("\n\r"); textcolor(7); cprintf("_______________________________\n"); cprintf("\n\r"); for(j=0;j<(timeinfo->tm_wday);j++) cprintf(" "); m--; break;} else { do ph=getch();while(ph!='+');} } if (m==11 && timeinfo->tm_mon ==0) { m++; break; } cprintf("%4d",timeinfo->tm_mday if(timeinfo->tm_wday==6) printf("\n"); } } cprintf("\n\r"); cprintf("\n\r"); cprintf(back); do ch=getch();while((ch!='0')&&(ch!='1')); if (ch=='0')/*kalendar()*/return; else exit(0); getchar(); getchar(); } void intro(); void main() { intro(); char ch; char ch1[100]; char ch2[100]; char ch3[100]; char ch4[100]; clrscr(); do{ clrscr(); _setcursortype(_NOCURSOR); CharToOem("1 - Перегляд календаря\n", ch1); CharToOem("2 - Визначення дня недiлi\n", ch2); CharToOem("3 - Вихiд\n", ch3); CharToOem(" Натиснiть клавiшу, вiдповiдно до обраної дiї: ", ch4); textbackground(1); textcolor(15); clrscr(); cprintf("\n\r"); cprintf(ch1); cprintf("\n\r"); cprintf(ch2); cprintf("\n\r"); cprintf(ch3); cprintf("\n\r"); cprintf(ch4); do ch=getch();while((ch!='1')&&(ch!='2')&&(ch!='3')); if (ch=='3') exit(0); if (ch=='2') kalendar (); if (ch=='1') kalendar_1(); } while(1); } void intro(){ char ch1[100]; CharToOem(" Мiнiстерство освiти i науки України", ch1); char ch2[100]; CharToOem(" Тернопiльський нацiональний технiчний унiверситет iменi Iвана Пулюя", ch2); char ch3[100]; CharToOem(" Факультет комютерно-iнформацiйних систем i програмної iнженерiї", ch3); char ch4[100]; CharToOem(" Курсова робота", ch4); char ch5[100]; CharToOem(" на тему:", ch5); char ch6[100]; CharToOem(" \"Створення календаря\"", ch6); char ch7[100]; CharToOem(" Виконав", ch7); char ch8[100]; CharToOem(" студент групи СI-11", ch8); char ch9[100]; CharToOem(" Зеньков В.Л.", ch9); char ch10[100]; CharToOem(" Прийняв", ch10); char ch11[100]; CharToOem(" Гладьо Ю.Б.", ch11); char ch12[100]; CharToOem(" Тернопiль 2011", ch12); _setcursortype(_NOCURSOR); textbackground(1); textcolor(3); clrscr(); cprintf("\n\r"); cprintf(ch1); cprintf("\n\r"); cprintf("\n\r"); cprintf(ch2); cprintf("\n\r"); cprintf("\n\r"); cprintf(ch3); cprintf("\n\r"); cprintf("\n\r"); cprintf("\n\r"); cprintf("\n\r"); cprintf(ch4); cprintf("\n\r"); cprintf("\n\r"); cprintf(ch5); cprintf("\n\r"); cprintf("\n\r"); cprintf(ch6); cprintf("\n\r"); cprintf("\n\r"); cprintf("\n\r"); cprintf(ch7); cprintf("\n\r"); cprintf(ch8); cprintf("\n\r"); cprintf(ch9); cprintf("\n\r"); cprintf("\n\r"); cprintf(ch10); cprintf(ch11); cprintf("\n\r"); cprintf("\n\r"); cprintf("\n\r"); cprintf("\n\r"); cprintf(ch12); getch(); }
Антиботан аватар за замовчуванням

09.09.2013 10:36

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!