永发信息网

求助:Java 作业

答案:2  悬赏:0  手机版
解决时间 2021-05-07 23:28

Problem 1 : (20 marks)

Expo 2010 Shanghai China will be a great event after Beijing Olympic. The duration of the EXPO will be

Between May1st - Oct.31, 2010. Your task is to print a Calendar for the EXPO duration. Hint: Use GregorianCalendar class from Java API.

要完整的程序 谢谢

最佳答案

用JAVA API写的,没有。不过,我可以给你个更详细的,“授之以鱼,不如授之以渔”吗!接招吧----->


***************************************************************************************************************************************


万年历【C语言版本】


设你程序实现多规格输出万年历,要求按以下输出规格,每一横排x个月,x可选取1,2,3,4,6。


1.算法设计


设置两个数组:一维m数组存放月份的天数,如m(8)=31,即8月份为31天。二维d数组存放日号,如d(3,24)=11,即3月份第2个星期的星期四为11号。


输入年号y,m数组数据通过赋值完成。根据历法规定,平年二月为28天;若年号能被4整除且不被100整除,或能被400整除,该年为闰年,二月份为29天,则必须把m(2)改为29。


同时,根据历法,设y年元旦时星期w(取值为0~6,其中0为星期日),整数w可根据下式求出:



w为s除以7的余数,公式中符号[ ]为取整。元旦以后,每增加一天,w增加1,当w=7时改为w=0即可。


设置三重循环,i,j,k为d数组的d(i,j*10+k)赋值。i:1~12,表月份号;j:1~6,表每个月约定最多6个星期。k:0~6,表星期k。从元旦的a=1开始,每赋一个元素,a增加1,同时w=k+1。当w=7时,w=0(为星期日)。当a>c(i)时,终止第i月的赋值操作。


输入格式参数x(1,2,3,4,6),设置四重循环控制规格输出:


n循环,n:1~12/x,控制输出12/x段(每一段x个月)。


j循环,j:1~6,控制输出每月的6个星期(6行)。


i循环,i:t~t+x-1,控制输出每行x个月(从第t个月至t+x-1月,t=x(n-1)+1)。


k循环,k:0~6,控制输出每个星期的7天。


2、万年历C程序设计



#include<stdio.h>


void main()


{


int a,i,j,n,k,t,w,x,y,z,d[13][78];


int m[14] = {0,31,28,31,30,31,30,31,31,30,31};


char wst[] = "Sun Mon Tue Wed Thu Fri Sat";


printf("Please enter the year:");


scanf("%d",&y);


if(y%4==0&&y%100 != 0 || y%400 == 0)


{


a=1;


w=(y+(y-1)/4-(y-1)/100+(y-1)/400%7);


for(i=1;<=12;i++)


{


a=1;


for(j=1;j<=6;j++)


{


while(k<w)


k=k+1;


d[i][j*10+k] = a;


a=a+1;


w=k+1;


if(w==7)


w=0;


if(a>m[i])


break;


}


if(a>m[i])


break;


}


}


printf("input x(1,2,3,4,6):");


scanf("%d",&x);


for(k=1;k<=16*x-3;k++)


printf(" ");


printf("=====%d=====\n",y);


for(n=1;n<=12/x;n++)


{


t=x*(n-1)+1;


printf("\n ");


for(z=1;z<=x;z++)


{


for(k=1;k<=15;k++)


printf(" ");


printf("%2d",t+z-1);


for(k=1;k<=14;k++)


printf(" ");


}


printf("\n ");


for(z=1;z<=x;z++)


printf("%s",wst);


for(j=1;j<=6;j++)


{


printf("\n ");


for(i=t;i<=t+x-1;i++)


{


printf(" ");


for(k=0;k<=6;k++)


if(d[i][j*10+k]==0)


printf(" ");


else


printf("%4d",d[i][j*10+k]);


}


}


}


}


*************************************************************************************************************************************


好了,就是这些了,提醒你朋友:别老是期望别人给你最正确的答案,只有你自己悟出的才是最正确的!!!我这里给你提供个思路,希望你能从中找到从“面向对象角度”解决这一问题的方法(我提供的这个是从“面向过程角度”写的)!!!


全部回答
import java.util.*; public class test { public static void main( String[] args ) { String[] wd= { "日", "一", "二", "三", "四", "五", "六" }; GregorianCalendar g = new GregorianCalendar( 2010, Calendar.MAY, 1 ); for ( int i = 5; i <= 10; ++i ) { P( "星期\t" ); for ( int j = 0; j < wd.length; ++j ) P( wd[j] + "\t" ); P(); for ( int j = 0; j < g.get( Calendar.DAY_OF_WEEK ); ++j ) P( "\t" ); int thisMonth = g.get( Calendar.MONTH ); int c = 2; for ( int j = 1; j <= 31; ++j ) { int d = g.get( Calendar.DAY_OF_MONTH ); P( d + "\t" ); if ( g.get( Calendar.DAY_OF_WEEK ) == 7 ) { P("\n"); if ( c == 2 ) P( i+"" ); else if ( c == 1 ) P( "月" ); --c; P( "\t" ); } g.add( Calendar.DAY_OF_YEAR, 1 ); if ( g.get( Calendar.MONDAY ) != thisMonth ) { P("\n\n"); break; } } } } static void P( String s ) { System.out.print( s ); } static void PN( String s ) { System.out.println( s ); } static void P() { System.out.println(); } }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我玩手机QQ游戏的时候怎么会显示女孩子的头像
子续累讼之,遇颖达亦寻卒,事隧不穷竟。
怎样才能短时间内肥起来呢?
电脑显示屏会抖是什么原因?
WIN32汇编中的子程序的定义
天龙八部2 勇猛龙怎么打技能 7技
为什么我的感冒会那么奇怪?
怎样更换自己喜欢的QQ头像?
QQ幻想世界 家族族长怎样可以把族长位置让给
我家里住宁波海曙的,请问哪里有补习高一的
有没有这种类型的图片
360急救箱解压不了怎么办?
在男朋友家很烦,烦的我好想跟他分手,我该怎
爱家庭爱老公的句子,用句子骂无情的老公和婆
晚上想你了怎么办
推荐资讯
为什么我打开网页时出现很严重的延长拖曳现象
心情会随什么变化呀
我怎样开通农场
SJsuper show!!!广州站去哪买票啊???
天丝四件套怎么洗,天丝面料的四件套怎么洗
程锡应地址在什么地方,想过去办事
短头发的王络丹、短头发的赵琳、短头发的马苏
快递投诉后怎么撤销,怎么撤销在中国国家邮政
怎样才能做好一个qa?
陌上花歌是什么意思
英语一共有多少种语法,我想知道下日语4级的语
在第3批志愿里报第2批志愿的学校折校会被录取
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?