Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Помогите пожалйста! как написать календарь на любой месяц любого года в C++, (http://forum.oszone.net/showthread.php?t=194337)

Kudrashka JUL 18-12-2010 17:49 1568926

Помогите пожалйста! как написать календарь на любой месяц любого года в C++,
 
Суть задачи: Пользователь вводит день первого числа месяца (например в марте первое число -четверг) и количество дней в месяце (31 например). Выводиться должны числа от 1 по 31 соответственно дням недели в виде таблицы как в календаре :

ПН ВТ CР ЧТ ПТ СБ ВС
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 31

lxa85 18-12-2010 18:05 1568940

Kudrashka JUL, слишком мало условий. Где собственные наработки по задаче? Где возникла трудность?

Lilsun 18-12-2010 19:43 1569030

Так есть же уже готовые календари.. Зачем что то придумывать если можно просто кинуть на форму компонент..?!

lxa85 18-12-2010 20:29 1569069

Цитата:

Цитата Lilsun
Зачем что то придумывать если можно просто кинуть на форму компонент..?! »

Тогда кидай компонент и работай с ним.
В чем вопрос то? Что спросить хотелось?:)

Kudrashka JUL 19-12-2010 13:09 1569487

Вот программа . Не могу исправить в ней ошибки(

Код:

#include <iostream>
#include <iostream>
#include <iomanip>
#include <string>

using namespace std;
int main()
{ int jan_l_start_day, num_days_per_month, month, date, year;
bool leap_year_flag;
ofstream fout("output.dat");
cout << "Укажите, на какой день недели приходится 1-е января\n";
cout << "\n(0— понедельник,";
cout << "\n 1 — вторник и т.д.): ";
cin >> jan_l_start_day;
cout << "\n Введите год, для которого вы хотите построить календарь:";
cin >> year;
fout << "\n Календарь на " << year << " год";
if(!(year % 4) && (year % 100) || !(year % 400)) leap_year_flag = true; else leap_year_flag = false;
for(month = 1;
month <= 12;month++) { switch(month) { case 1: cout << "\n\n\n Январь\n";
num_days_per_month = 31; break; case 2: cout << "\n\n\n Февраль\n";
num_days_per_month = leap_year_flag ? 29 : 28; break;
case 3: cout << "\n\n\n Март\n"; num_days_per_month = 31; break;

case 4: cout << "\n\n\n Апрель\n"; num_days_per_month =30; break;
case 5: cout << "\n\n\n Май\n";
num_days_per_month =31; break; case 6: cout << "\n\n\n Июнь\n"; num_days_per_month = 30; break;
case 7: cout << "\n\n\n Июль\n"; num_days_per_month = 31; break;
case 8: cout << "\n\n\n Август\n";
num_days_per_month = 31; break; case 9: cout << "\n\n\n Сентябрь\n";
num_days_per_month =30; break; case 10: cout << "\n\n\n Октябрь\n"; num_days_per_month = 31; break;
case 11: cout << "\n\n\n Ноябрь\n"; num_days_per_month = 30; break;
case 12: cout << "\n\n\n Декабрь\n";
num_days_per_month =31; break;
} fout << "\nПон Вто Сре Чет Пят Суб Вос\n";
fout << " —-— —-— —-— —-— —-— —-— —-— \n";
for (date = 1; date < jan_l_start_day*4; date++) fout << " ";
for (date = 1; date <= num_days_per_month; date++) { fout.width.(3) ; fout << date;
if ((date+ jan_l_start_day) % 7 > 0) fout << " ";
else fout << "\n"; } jan_l_start_day = (jan_l_start_day + num_days_per_month) % 7;
} fout.close () ;
return (0); }


Drongo 19-12-2010 21:09 1569851

Цитата:

Цитата Kudrashka JUL
Вот программа . Не могу исправить в ней ошибки( »

Чтобы исправить ошибки, приведите код программы в читаемый вид: отступы, пробелы и т.д. Я не хочу "ломать" глаза... И на будущее, оформляйте ваш код тегом [code] - #

Lilsun 20-12-2010 18:24 1570598

Цитата:

Цитата lxa85
Тогда кидай компонент и работай с ним.
В чем вопрос то? Что спросить хотелось? »


Не понял причем тут я..
Я не чего не спрашивал. Я сказал пользователю!

lxa85 20-12-2010 19:03 1570614

Lilsun, прошу прощения, промашка вышла. :)


Время: 16:43.

Время: 16:43.
© OSzone.net 2001-