瑞星卡卡安全论坛技术交流区系统软件 这个程序怎么弄?谢谢【求助】

12   1  /  2  页   跳转

这个程序怎么弄?谢谢【求助】

这个程序怎么弄?谢谢【求助】

内容:设计一个查询并打印万年历的程序
要求:程序运行后,首先在屏幕上显示主菜单:
查询某年某月某日是星期几
查询某年是否是闰年
打印某年的全年日历
退出

在主菜单中输入1后,显示:
                  “请输入年月日(xxxx,xx,xx)”
    运行后输出:xxxx年xx月xx日是星期x,是否继续查询(Y/N)?
    如果输入Y,则重新显示“请输入年月日(xxxx,xx,xx)”,否则回到主菜单。
在主菜单中输入2后,显示: 
          “请输入要查哪一年(xxxx)”
    运行后输出:xxxx年市(否)是闰年,是否继续查询(Y/N)?
    如果输入Y,则重新显示“请输入要查哪一年(xxxx)”,否则回到主菜单。
在主菜单中输入3后,显示:
            “请输入要打印的年份(xxxx)”
      运行后输出xxxx年的日历,格式为:
xxxx
  x(月数)
            0    1    2    3    4    5    6
            S    M    T    W    T    F    S
            x    x    x    x    x    x    x
            x    x    x    xx  xx  xx  xx
            xx  xx  xx  xx  xx  xx  xx
            xx  xx  xx  xx  xx  xx  xx 
            xx  xx  xx
  x(月数)
            0    1    2    3    4    5    6
            S    M    T    W    T    F    S
                          x    x    x    x
            x    x    x    x    x    xx  xx
            xx  xx  xx  xx  xx  xx  xx
            xx  xx  xx  xx  xx  xx  xx
            xx  xx  xx  xx  xx  xx  xx
          运行后显示:“是否继续打印(Y/N)?”
          如果输入Y,则重新显示“请输入要打印的年份(xxxx)”,否则回到主菜单。
在主菜单中输入4后,显示:“是否真的退出(Y/N)?”
          如果输入Y,结束程序运行,否则重新显示主菜单.
提示:
闰年计算,满足下列之一是闰年:
1):能被4整除,但不能被100整除;
2):能被4整除,但能被400整除;
闰年二月29天,平年28天,

星期几的计算:
s=x-1+(x-1)/4+(x-1)/100+(x-1)/400-40+c
  x是年份    c是该年从元旦开始到这一天的天数
s/7的余数就是星期几
例如:1982年12月26日
由于该年不是闰年,所以二月28天,
c=31+28+31+30+31+30+31+31+30+31+30+26=360(这是一月一日到十二月二十六日的天数)
s=1982-1+(1982-1)/4+(1982-1)/100+(1982-1)/400-40+360
s/7=2821/7=403余数为0,所以为星期天
最后编辑2007-06-20 19:06:38
分享到:
gototop
 

上边的月份格式应该是
  x(月份)
  0    1    2    3    4    5    6
  S    M    T    W    T    F    S
                    x    x    x    x
  x    x    x    x    x    xx    xx
  xx    xx    xx    xx    xx    xx    xx
  xx    xx    xx    xx    xx    xx    xx 
  xx    xx    xx    xx    xx    xx
各位谁会呵,请指教一下啊,在下不胜感激
gototop
 

这个月份格式怎么老是一发出之后就出错阿
大家将就着看
格式就是我们平时那种格式
谁会?
请说一下
谢谢
gototop
 

我看了好多遍了,目前好像还没有这个底....

偶收藏了先,将来能的话,就把楼主这个当习题做罢~
gototop
 

不知道

附件附件:

下载次数:258
文件类型:application/octet-stream
文件大小:
上传时间:2007-6-13 15:32:48
描述:



gototop
 

555555555555555555555
那我可怎么办啊
马上就要交了阿
要完不成作业了阿
伤心
5555555555555555
谁会阿
我一辈子的幸福就交到你的手上了
快来救救我吧
gototop
 

楼主如果很着急的话,可以去百度知道的程序设计里发帖求救
gototop
 
gototop
 

嘿嘿……
谢谢了俄阿
gototop
 

#include"iostream.h"
#include"iomanip.h"
#include"stdlib.h"
leapyear(int a)/*是否是闰年*/
{
if((a%4==0&&a%100!=0)||(a%100==0&&a%400==0))
return (1);
else return (0);
}
int aa[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int cc[12]={31,29,31,30,31,30,31,31,30,31,30,31};
char bb[8][8]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
ww(int a,int b,int c)
{
int n=0,m=0,i,j,k=0;
for(i=1;i<c;i++)
{
if(leapyear(i)==1)
m=m+366;
else m=m+365;
}
for(j=1;j<b;j++)
{if(leapyear(c)==1) k=k+cc[j-1];
else k=k+aa[j-1];
}
n=(m+k+a)%7;
return n;
}
void yuefen(int m)
{
cout<<"最大天数是:";
if(m==2)
cout<<aa[m-1]+1;
else cout<<aa[m-1]<<endl;
}
void nianfen(int n)/*打印年份的日历*/
{
int i,j,k;
if(leapyear(n)==1)
{
for(j=1;j<=12;j++)
{
cout<<j;
cout<<"月份"<<endl;
cout<<" 日"<<" 一"<<" 二"<<" 三"<<" 四"<<" 五"<<" 六"<<endl;
for(i=0;i<ww(1,j,n);i++)
{
cout<<setw(4)<<"";
}
for(k=1;k<=cc[j-1];k++)
{
cout<<setw(4)<<k;
if((ww(1,j,n)+k)%7==0)
cout<<endl;
}
cout<<endl;
}
}
else
{
for(j=1;j<=12;j++)
{
cout<<j;
cout<<"月份"<<endl;
cout<<ww(1,j,n)<<endl;
cout<<endl<<" 日"<<" 一"<<" 二"<<" 三"<<" 四"<<" 五"<<" 六"<<endl;
for(i=0;i<ww(1,j,n);i++)
{
cout<<setw(4)<<"";
}
for(k=1;k<=aa[j-1];k++)
{
cout<<setw(4)<<k;
if((ww(1,j,n)+k)%7==0)
cout<<endl;
}
cout<<endl;
}
}
}
void nianyue(int n,int y)/*打印某年某月的月历*/
{
int i,k;
if(leapyear(n)==1)
{
cout<<" 日"<<" 一"<<" 二"<<" 三"<<" 四"<<" 五"<<" 六"<<endl;
for(i=0;i<ww(1,y,n);i++)
{
cout<<setw(4)<<"";
}
for(k=1;k<=cc[y-1];k++)
{
cout<<setw(4)<<k;
if((ww(1,y,n)+k)%7==0)
cout<<endl;
}
cout<<endl;
}
else
{ cout<<endl<<" 日"<<" 一"<<" 二"<<" 三"<<" 四"<<" 五"<<" 六"<<endl;
for(i=0;i<ww(1,y,n);i++)
{
cout<<setw(4)<<"";
}
for(k=1;k<=aa[y-1];k++)
{
cout<<setw(4)<<k;
if((ww(1,y,n)+k)%7==0)
cout<<endl;
}
cout<<endl;
}
}
void main()
{
int n,m;
int day,month ,year;
while(1)
{
cout<<"***********************************:"<<endl;
cout<<"1查询某年某月某日是星期几"<<endl
<<"2是否为闰年"<<endl
<<"3查询某月的最大天数"<<endl
<<"4打印某年的全年日历"<<endl
<<"5打印某年某月的月历"<<endl
<<"6exit"<<endl
<<"***********************************:"<<endl;
cout<<"请输入要操作的指令:"<<endl;
cin>>n;
switch(n)
{
case 1:cout<<"请输入要查询的日期:";
cout<<"year:";
cin>>year;
cout<<endl<<"month:";
cin>>month;
cout<<endl<<"day:";
cin>>day;
cout<<"星期是:";
cout<<bb[ww(day,month,year)]<<endl;break;
switch(ww(day,month,year))
{
case 1:cout<<"星期一";break;
case 2:cout<<"星期二";break;
case 3:cout<<"星期三";break;
case 4:cout<<"星期四";break;
case 5:cout<<"星期五";break;
case 6:cout<<"星期六";break;
case 7:cout<<"星期日";break;
}
cout<<endl;break;
case 2:cout<<"请输入要查询的年份:";
cin>>m;
if(leapyear(m)==1) cout<<"是闰年"<<endl;
else cout<<"不是闰年,请返回重新输入"<<endl;
break;
case 3:cout<<"请输入月份:";
cin>>m;
yuefen(m);break;
case 4:cout<<"请输入所要打印年份:";
cin>>m;
nianfen(m);break;
case 5:cout<<"请输入年份:";
cin>>n;
cout<<endl<<"请输入月份:";
cin>>m;
cout<<endl;
nianyue(n,m);break;
case 6:exit(0);
}
}
}
gototop
 
12   1  /  2  页   跳转
页面顶部
Powered by Discuz!NT