Контрольная работа по "Информатике"
Автор: vare • Ноябрь 1, 2020 • Контрольная работа • 697 Слов (3 Страниц) • 295 Просмотры
Определите структуру для хранения даты с полями для хранения значений дня, месяца и года. Для работы со структурой опишите методы:
- lastNumber() возвращает количество дней в том месяце, которому принадлежит дата d;
- chekDate() проверяет правильность даты. Если дата не правильная, возвращается false и устанавливается дата 1 января 1-го года нашей эры;
- isLeap() возвращает true, если год является високосным.
Пример определения и использования функции LastNumber():
[pic 1]
В программе високосный год определен не совсем правильно. Год високосный, если он делится на четыре без остатка, но если он делится на 100 без остатка, это не високосный год. Однако, если он делится без остатка на 400, это високосный год. Таким образом, 2000 год является особым високосным годом, который бывает лишь раз в 400 лет. Напишите метод isLeap(), который определяет, является ли код високосным. Вызовите этот метод в методе lastNumber(), чтобы исправить код. Напишите код метода chekDate().
Измените текст программы таким образом, чтобы дата вводилась с клавиатуры и вызовите для вашей структурной переменной методы lastNumber(), chekDate() и isLeap(). Вывод результатов работы методов должен сопровождаться соответствующими сообщениями.
Отчет о проделанной работе должен содержать текст задания, текст программы, тесты
#include <iostream>
using namespace std;
struct Date {
int day, month, year;
int lastNumber(),chekDate(),isLeap();
};
int Date::isLeap(){
if (year % 4 == 0 || year % 400 == 0 || year % 100 == 0){
return true;
}
else {
return false;
}
}
int Date::chekDate() {
if (year > 0) {
if (month > 0) {
if (day <= 31 && day > 0 &&(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)) {
return true;
}
if (day <=30 && (month == 4 || month == 6 || month == 9 || month == 11) && day > 0) {
return true;
}
if (((day <=28 && month == 2 && Date::isLeap() == true) || (day <= 29 && month == 2 && Date::isLeap() == false)) && day > 0) {
...