Завершено
4
08.05.2025, 03:28
10.05.2025, 04:24
Написать программу, которая выводит календарь (аналог утилиты ncal в UNIX).
Входной текстовый файл формата:
<период> | <формат вывода>
...
Возможные периоды:
month <номер_месяца>
year <год>
range <номер_месяца_1> <номер_года_1> <номер_месяца_2> <номер_года_2>
Возможные форматы вывода (некоторые могут быть указаны совместно):
vert
horiz
year_for_every_month
year_once
Пример входного файла:
range 1 1990 2 1991 | vert year_once
year 1991 | vert year_for_every_month
Написать программу, которая выводит календарь. Предусмотреть следующие режимы:
month- вывод календаря для заданного месяца (год, месяц).year - вывод календаря для заданного года (год).range - вывод календаря для заданного диапазона месяцевПрограмма также должна поддерживать управление форматированием:
vert) и горизонтальным(horiz) расположением дней недели (см. примеры ниже).year_for_every_month) или один раз для всех месяцев, принадлежащих году (year_once) (см. примеры).Передачу имен файлов реализовать через аргументы командной строки.
Записать результат работы программы в текстовый файл
   Сентябрь 2014      
Пн Вт Ср Чт Пт Сб Вс  
 1  2  3  4  5  6  7  
 8  9 10 11 12 13 14  
15 16 17 18 19 20 21  
22 23 24 25 26 27 28  
29 30           
    Сентябрь 2014     
Пн  1  8 15 22 29   
Вт  2  9 16 23 30   
Ср  3 10 17 24      
Чт  4 11 18 25      
Пт  5 12 19 26      
Сб  6 13 20 27      
Вс  7 14 21 28      
                                  2014
    Сентябрь          Октябрь           Ноябрь            Декабрь           
Пн  1  8 15 22 29        6 13 20 27        3 10 17 24     1  8 15 22 29   
Вт  2  9 16 23 30        7 14 21 28        4 11 18 25     2  9 16 23 30   
Ср  3 10 17 24        1  8 15 22 29        5 12 19 26     3 10 17 24 31   
Чт  4 11 18 25        2  9 16 23 30        6 13 20 27     4 11 18 25      
Пт  5 12 19 26        3 10 17 24 31        7 14 21 28     5 12 19 26      
Сб  6 13 20 27        4 11 18 25        1  8 15 22 29     6 13 20 27      
Вс  7 14 21 28        5 12 19 26        2  9 16 23 30     7 14 21 28      
                                  2015
    Январь            
Пн     5 12 19 26   
Вт     6 13 20 27   
Ср     7 14 21 28   
Чт  1  8 15 22 29   
Пт  2  9 16 23 30   
Сб  3 10 17 24 31   
Вс  4 11 18 25      
    Август 2014       Сентябрь 2014     Октябрь 2014      
Пн     4 11 18 25     1  8 15 22 29        6 13 20 27   
Вт     5 12 19 26     2  9 16 23 30        7 14 21 28   
Ср     6 13 20 27     3 10 17 24        1  8 15 22 29   
Чт     7 14 21 28     4 11 18 25        2  9 16 23 30   
Пт  1  8 15 22 29     5 12 19 26        3 10 17 24 31   
Сб  2  9 16 23 30     6 13 20 27        4 11 18 25      
Вс  3 10 17 24 31     7 14 21 28        5 12 19 26      
Для всех разработанных модулей должны быть созданы наборы unit тестов. Функции ввода/вывода нужно тестировать с помощью std::stringstream.