Вечный календарь на c++ в Microsoft Visual Studio

XVII Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Вечный календарь на c++ в Microsoft Visual Studio

Крикунов Р.С. 1
1МАОУ СОШ № 211 им. Л. И. Сидоренко
Портнягина Н.В. 1
1МАОУ СОШ № 211 им. Л. И. Сидоренко
Автор работы награжден дипломом победителя I степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

Актуальность

Актуальность выбранной темы является вызванным практическим моим интересом в теме программирования. Тема актуальна и представляет практический интерес. Использование программы 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/Рефакторинг

Просмотров работы: 360