Введение
Актуальность
Актуальность выбранной темы является вызванным практическим моим интересом в теме программирования. Тема актуальна и представляет практический интерес. Использование программы Visual Studio позволяет представить код программы наглядно.
Цель проекта
Написание программы в среде Visual Studio для вычисления дня недели любого дня года.
Задачи проекта
Изучить теоретический материал по теме
Изучить алгоритмы и функции на c++
Составить алгоритм для написание программы
Написать программу на языке с++
Это прикладной проект. Продуктом является - Прикладная программа по определению дня недели с помощью объектно-ориентированной программы Visual Studio.
Теоретическая часть
MicrosoftVisualStudio
Microsoft Visual Studio — линейка продуктов компании Microsoft, включающих интегрированную среду разработки программного обеспечения и ряд других инструментов.
Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. [1]
IntelliSense — технология автодополнения Microsoft, наиболее известная в Microsoft Visual Studio. Дописывает название функции при вводе начальных букв. Кроме прямого назначения, IntelliSense используется для доступа к документации и для устранения неоднозначности в именах переменных, функций и методов, используя рефлексию. [2]
Рефакторинг или переработка кода, преобразование алгоритмов — процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения и имеющий целью облегчить понимание её работы. [3]
Р ис. 1. Интерфейс VisualStudio
Спецификатор типа void
П
ри написании программы использовался спецификатор void. В начале программы пишем «void», чтобы написать в нём все действия, которые будут происходить во время использования программы.
Рис. 2. Спецификатор void
Операторы if и else
В программе используется условный оператор, который, если условие верно, то выполняется часть программы, идущая по ветви true, если условие неверно, то выполняется часть программы, идущая по ветви else.
Н а данном изображении представлено хотим ли мы начать программу и выделил цифрами «1» - продолжить или «0» - отказаться.
Рис. 3. Начало программы
Вводится ответ, и если выбрано число «1», то запускается программа.
Рис. 4. Оператор if
Е
сли условие «if» не выполняется, происходит условие «else».
Рис. 5. Оператор else
Цикл while
Цикл с предусловием выполняется до тех пор, пока условие истинно.
П
ри помощи «while» зацикливается то или иное действие.
Рис. 6. Цикл while
Если переменная «while» равна числу «1», цикл запускается заново. Если не соответствует этому числу, цикл заканчивается и выводится сообщение. В данном случае «Спасибо за внимание!».
Практическая часть
Код программы
#include<iostream>
usingnamespace std;
void vvod() {
int a, b, c, d;
cout << "\nВведите месяц: ";
cin >> b;
cout << "Введите дату: ";
cin >> a;
cout << "Введите год: ";
cin >> c;
if (b == 1) {
d = a;
}
if (b == 2) {
d = 31 + a;
}
if (b == 3) {
d = 31 + 28 + a;
}
if (b == 4) {
d = 31 + 28 + 31 + a;
}
if (b == 5) {
d = 31 + 28 + 31 + 30 + a;
}
if (b == 6) {
d = 31 + 28 + 31 + 30 + 31 + a;
}
if (b == 7) {
d = 31 + 28 + 31 + 30 + 31 + 30 + a;
}
if (b == 8) {
d = 31 + 28 + 31 + 30 + 31 + 30 + 31 + a;
}
if (b == 9) {
d = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + a;
}
if (b == 10) {
d = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + a;
}
if (b == 11) {
d = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + a;
}
if (b == 12) {
d = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + a;
}
if (c % 400 == 0 || c % 4 == 0 && c % 100 != 0) {
if (b > 2) {
d = d + 1;
}
}
for (int i = 1000; i < c; i++) {
if (i % 400 == 0 || i % 4 == 0 && i % 100 != 0) {
d = d + 1;
}
}
d = 10 + d - 1;
d = d + 365 * (c - 1000);
d = d % 7;
if (d == 1) {
cout << "День недели: Понедельник\n";
}
if (d == 2) {
cout << "День недели: Вторник\n";
}
if (d == 3) {
cout << "День недели: Среда\n";
}
if (d == 4) {
cout << "День недели: Четверг\n";
}
if (d == 5) {
cout << "День недели: Пятница\n";
}
if (d == 6) {
cout << "День недели: Суббота\n";
}
if (d == 0) {
cout << "День недели: Воскресенье\n";
}
}
void calendar() {
cout <<"* * * * * * * * * * * * * * * * * * * * * *\n";
cout <<"* *\n";
cout << "* Янаврь - 1 Февраль - 2 Март - 3 *\n";
cout << "* *\n";
cout << "* Апрель - 4 Май - 5 Июнь - 6 *\n";
cout << "* *\n";
cout << "* Июль - 7 Август - 8 Сентябрь - 9 *\n";
cout << "* *\n";
cout << "* Октябрь - 10 Ноябрь -11 Декабрь - 12 *\n";
cout <<"* *\n";
cout <<"* * * * * * * * * * * * * * * * * * * * * *\n";
}
int main() {
setlocale(0, "");
int g, u;
cout <<"Здравсвуйте. Я представляю вам свою дипломную работу на тему Вечный календарь.\n"; // выводим сообщение
cout << "Начнём?\n";
cout << "\nПродолжить - 1";
cout << "\nОтказаться - 0\n";
cin >> u; // узнаем ответ
if (u) { // проверяем, что ответил пользователь
calendar();
vvod();
cout <<"\nЕщёраз?\n";
cout <<"\nДа - 1";
cout <<"\nНет - 0\n";
cin >> g;
while (g == 1) {
calendar();
vvod();
cout <<"\nЕщёраз?\n";
cout <<"\nДа - 1";
cout <<"\nНет - 0\n";
cin >> g;
}
cout << "Спасибо за внимание!";
}
else
cout << "Тогда ничем не могу вам помочь!" << endl;
return 0;
}
Заключение
После проделанных мною шагов у меня получилась программа, которая поможет с лёгкостью определить день недели текущего года, прошедших и будущих лет.
Полезность моего проекта заключается в том, чтобы людям было очень просто планировать какие-либо события на дни, недели, года вперёд.
Но это не финальная версия программы. В будущем мне бы хотелось добавить определение восхода и захода солнца к выбранному дню.
Список источников
https://ru.wikipedia.org/wiki/Microsoft_Visual_Studio
https://ru.wikipedia.org/wiki/IntelliSense
https://ru.wikipedia.org/wiki/Рефакторинг