求输入年份和月份,显示出前后三个月的日历的C++程序!

[复制链接]
查看11 | 回复2 | 2011-6-11 20:13:10 | 显示全部楼层 |阅读模式
设计内容及其基本原理和设计方法
1.问题描述:
随意给出某年某月(如2003年1月),可以显示2002年12月、2003年1月、2003年2月的日历(包括每月的天数和所对应的星期几),并且在每月的左上角或右上角打印出相应的年份和月份,要求输出界面尽可能整齐、美观。
2.解决方案:
根据问题描述,可以将问题解决分为两部:
(1)从公元01年的第一天开始考虑(01年1月1日对应星期一),判断该月的前1个月是否是1月份,从而确定要输出的第一个月的年份,进而判断从01年至要显示第一个月所在的年以前的年份是否闰年,以计算从01年至要显示第一个月所在的年开始的总天数;
(2)计算从01年至显示第一个月开始的总天数
(3)注意每月的天数不同,并且二月份又有两种情况:是闰年和不是闰年的情况。
(4)为了将每月的日期和星期相对应,用总天数除7取余,控制日期和星期几的对应关系。
四、主要技术问题的描述
依据三的描述,可以构造两个函数,一个函数来判断该年是否闰年:int IsLeapYear( int year );另一个函数计算从01年开始到给定月份month的前一个月开始的总天数:int CaculDay(int year,int month),利用一个一维数组month_day[],存放不同月对应的天数。

回复

使用道具 举报

千问 | 2011-6-11 20:13:10 | 显示全部楼层
这个网络上很多的。下面这个就是我网络上弄来的,自己改了下。这个需要输入年份及月份,你自己改改吧,弄个循环或什么的把一年的打印出来。#include using namespace std; const int mon[2][12]=; int Is_Leap(int year){
if(year%400==0 || (year%4==0 && year%100!=0))
return 1;
else return 0; } void ShowCalendar(int y,int m){
int i=0,...
回复

使用道具 举报

千问 | 2011-6-11 20:13:10 | 显示全部楼层
KOOLUN...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行