Построение вечного календаря

Автор: Пользователь скрыл имя, 23 Декабря 2012 в 15:27, курсовая работа

Краткое описание

Целью данного курсового проекта является программная реализация вечного календаря (алгоритм расчёта дня недели по заданной дате).
Программа должна работать следующим образом:
– пользователь вводит дату,
– после выполнения программы на экран должен выводиться день недели, на который попадает эта дата.
Программа должна быть реализована на языке С++ в среде Visual C++.

Оглавление

Введение………………………………………………………....……
4
1 Постановка задачи и сфера её применения…..………………......
5
2 Теоретическая часть…………………………………….……….....
6
2.1 История календарей……………………..………….......…….
6
2.2 Описание использованного алгоритма.………...…………...
11
2.3 Пример реализации алгоритма………………………………
11
3 Программная реализация………………………………….……….
13
3.1 Описание алгоритма и структуры программы……………..
13
3.2 Описание программных средств…………………………….
17
4 Инструкция пользователя………………………………………….
20
Заключение……………………………………………………..…….
21
Перечень ссылок……………………………………………………..
22
Приложение А Текст программы………………………….………..
23
Приложение Б Результат………..……………………………….…..
28
Приложение В …………………………………………….………….
29

Файлы: 1 файл

kursavvvch.doc

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

    cin >> a;

cout << "\n";

 

while(true)//вечный цикл

{

if(a==1)//если выбран обычный формат

{

cout << "Imput data, month, year \n";

cin >> d >> q2 >> y;//ввод даты

/*переход  от обычного формата к цифровому*/

if (strcmp(q2,"jan") == 0) m=1;

if (strcmp(q2,"feb") == 0) m=2;

if (strcmp(q2,"mar") == 0) m=3;

if (strcmp(q2,"apr") == 0) m=4;

if (strcmp(q2,"may") == 0) m=5;

if (strcmp(q2,"jun") == 0) m=6;

if (strcmp(q2,"jul") == 0) m=7;

if (strcmp(q2,"aug") == 0) m=8;

if (strcmp(q2,"sep") == 0) m=9;

if (strcmp(q2,"oct") == 0) m=10;

if (strcmp(q2,"nov") == 0) m=11;

if (strcmp(q2,"dec") == 0) m=12;

}

else//если выбран цифровой формат

{

cout << "Imput data, month, year \n";

cin >> d >> m >> y;//ввод даты

}

  if (d>0 && m>0 && y>=0 && d<32 && m<13)//поверхностная проверка корректности даты

{

if((fun2(m)==1 && d<32) || (fun2(m)==0 && d<31)  || (fun2(m)==-2 && d<29) || (fun2(m)==-2 && ((y/4*4 == y && y/100*100 != y) || y/400*400 == y)) && d<30)//проверка корректности даты

{

  x= fun1(d,m,y)%7;//вызов функции просчёта дня недели

    switch(x)

{

case 5: cout << "it is Monday \n\n";

break;

case 6: cout << "it is Tuesday \n\n";

break;

case 0: cout << "it is Wednesday \n\n";

break;

case 1: cout << "it is Thursday \n\n";

break;

case 2: cout << "it is Friday \n\n";

break;

case 3: cout << "it is Saturday \n\n";

break;

case 4: cout << "it is Sunday \n\n";

break;

default: cout << "Sistem error \n\n" << "\a";

}

else cout << "Error, does not correct record date \n\n";//сообщение об ошибке

}

else cout << "Error, does not correct record date \n\n";//сообщение об ошибке

    cout << "Would you like to continue working with the program? (yes/no)\n";//запрос на продолжение работы с программой

cin >> q2;//ввод да или нет

cout<< "_______________________________________________________________________________\n\n";;

if (strcmp(q1,q2) != 0)//проверка на продолжение работы с программой

break;// выход из вечного цикла

else n++;//продолжение работы с программой

}

            cout << "By Lytvynenko Alexey, ki-11-1. \n";//конечное сообщение

cin >> y;

}

Приложение  Б

Окно консоли

Пример выполнения программы, если выбрать «обычный» формат задания даты:

Рис. – Работа программы при выборе «обычного»

формата задания  даты

 

Полностью аналогично программа работает, если выбрать «цифровой» формат задания даты:

 

Рис. – Работа программы при выборе «цифрового» 

формата задания даты

Приложение  В


Информация о работе Построение вечного календаря