黑马程序员技术交流社区
标题:
一晚上写的代码,分享下喜悦,处女座
[打印本页]
作者:
吕猛
时间:
2011-12-27 00:39
标题:
一晚上写的代码,分享下喜悦,处女座
有朋友要去传智博客学习java基础,他们上课一个半月时间。开始上三天休息一天,然后上两天休息一天,然后再上三天休息,再上两天休息。按此类推。写了一个小程序用于计算都是哪天休息,总工休息了多少天。
处女之作,写的不是很好。希望大家多多交流!
/*
目的:用于计算休息的日期。
思路:1、定义一个类进行封装,里面有方法用于计算哪天休息和总工休息的方法,因为要直接调用,所以定义为静态的。
2、关于计算的方法:使用遍历的方法。外循环控制总共学的天数,内循环用于控制日期。
*/
class XiuXi
{
public static void main(String[] args)
{
//请再次输入:第一天上课时间,当月天数,总共课时天数。
//注意:第一天上课时间,当月天数应当为有效日期,总共上课天数不得超过56天。
LookXiuXi.JiSuan(2,31,56);
}
}
class LookXiuXi
{
private static int xiuXiDay=0, xiuXiTianShu=0;
static void JiSuan(int diYiTian,int meiYueTianShu,int xueXiTianShu )
{
if(0<diYiTian && diYiTian < meiYueTianShu && 28<=meiYueTianShu && meiYueTianShu<=31 && xueXiTianShu<56)
{
diaoYong(diYiTian,meiYueTianShu,xueXiTianShu );
}
else
System.out.println("您的输入有误:注意您输入的日期必须为有效日期,并且学习日期不能超过56天!");
}
private static void diaoYong(int diYiTian,int meiYueTianShu,int xueXiTianShu )
{
int shangKe=diYiTian-1;
for(int x=diYiTian;x<diYiTian+45;x=x+meiYueTianShu)
{
for(int y=diYiTian;y<meiYueTianShu && shangKe <diYiTian+xueXiTianShu-3; )
{
shangKe=shangKe+4;
xiuXiDay=shangKe;
if (xiuXiDay>meiYueTianShu)
{
xiuXiDay=shangKe-meiYueTianShu;
}
System.out.println("今天是"+xiuXiDay+"号,今天休息");
xiuXiTianShu++;
if(shangKe<diYiTian+xueXiTianShu-4)
{
shangKe=shangKe+3;
xiuXiDay=shangKe;
if (xiuXiDay>meiYueTianShu)
{
xiuXiDay=shangKe-meiYueTianShu;
}
System.out.println("今天是"+xiuXiDay+"号,今天休息");
xiuXiTianShu++;
y=y+7;
}
}
}
System.out.println("这一个半月,你一共休息了"+xiuXiTianShu+"天");
}
}
复制代码
作者:
blackbansy
时间:
2011-12-27 03:03
这题目有点类似三天大鱼两天晒网的故事。不管结果怎么样,精神是值得学习的。
作者:
吕猛
时间:
2011-12-27 13:24
blackbansy 发表于 2011-12-27 03:03
这题目有点类似三天大鱼两天晒网的故事。不管结果怎么样,精神是值得学习的。 ...
主要目的为了计算你上了几天学,休息了几天,平均每节课多少钱!
作者:
许庭洲
时间:
2012-8-30 14:44
很有创意,值得学习ing!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2