Автор: Пользователь скрыл имя, 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
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<< "_____________________________
if (strcmp(q1,q2) != 0)//проверка на продолжение работы с программой
break;// выход из вечного цикла
else n++;//продолжение работы с программой
}
cout << "By Lytvynenko Alexey, ki-11-1. \n";//конечное сообщение
cin >> y;
}
Приложение Б
Окно консоли
Пример выполнения программы, если выбрать «обычный» формат задания даты:
Рис. – Работа программы при выборе «обычного»
формата задания даты
Полностью аналогично программа работает, если выбрать «цифровой» формат задания даты:
Рис. – Работа программы при выборе «цифрового»
формата задания даты
Приложение В