A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吕猛 黑马帝   /  2011-12-27 00:39  /  2616 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文



       有朋友要去传智博客学习java基础,他们上课一个半月时间。开始上三天休息一天,然后上两天休息一天,然后再上三天休息,再上两天休息。按此类推。写了一个小程序用于计算都是哪天休息,总工休息了多少天。
      处女之作,写的不是很好。希望大家多多交流!
  1. /*
  2. 目的:用于计算休息的日期。
  3. 思路:1、定义一个类进行封装,里面有方法用于计算哪天休息和总工休息的方法,因为要直接调用,所以定义为静态的。
  4.           2、关于计算的方法:使用遍历的方法。外循环控制总共学的天数,内循环用于控制日期。
  5. */

  6. class  XiuXi
  7. {
  8.         public static void main(String[] args)
  9.         {
  10.                 //请再次输入:第一天上课时间,当月天数,总共课时天数。
  11.                 //注意:第一天上课时间,当月天数应当为有效日期,总共上课天数不得超过56天。
  12.                 LookXiuXi.JiSuan(2,31,56);
  13.         }
  14. }
  15.                
  16. class LookXiuXi
  17. {
  18.         private static int xiuXiDay=0, xiuXiTianShu=0;
  19.         static void JiSuan(int diYiTian,int meiYueTianShu,int xueXiTianShu )
  20.         {
  21.                 if(0<diYiTian && diYiTian < meiYueTianShu && 28<=meiYueTianShu && meiYueTianShu<=31 && xueXiTianShu<56)
  22.                 {
  23.                         diaoYong(diYiTian,meiYueTianShu,xueXiTianShu );
  24.                 }
  25.                 else
  26.                         System.out.println("您的输入有误:注意您输入的日期必须为有效日期,并且学习日期不能超过56天!");       
  27.         }

  28.         private static void diaoYong(int diYiTian,int meiYueTianShu,int xueXiTianShu )
  29.         {
  30.                 int shangKe=diYiTian-1;
  31.                 for(int x=diYiTian;x<diYiTian+45;x=x+meiYueTianShu)
  32.                 {                       
  33.                         for(int y=diYiTian;y<meiYueTianShu && shangKe <diYiTian+xueXiTianShu-3; )
  34.                         {

  35.                                         shangKe=shangKe+4;
  36.                                         xiuXiDay=shangKe;
  37.                                         if (xiuXiDay>meiYueTianShu)
  38.                                         {
  39.                                                 xiuXiDay=shangKe-meiYueTianShu;
  40.                                         }
  41.                                         System.out.println("今天是"+xiuXiDay+"号,今天休息");
  42.                                         xiuXiTianShu++;
  43.                                         if(shangKe<diYiTian+xueXiTianShu-4)
  44.                                         {
  45.                                                 shangKe=shangKe+3;
  46.                                                 xiuXiDay=shangKe;
  47.                                                 if (xiuXiDay>meiYueTianShu)
  48.                                                 {                                               
  49.                                                         xiuXiDay=shangKe-meiYueTianShu;
  50.                                                 }
  51.                                                 System.out.println("今天是"+xiuXiDay+"号,今天休息");
  52.                                                 xiuXiTianShu++;
  53.                                                 y=y+7;
  54.                                         }                                               
  55.                         }       
  56.                 }
  57.                 System.out.println("这一个半月,你一共休息了"+xiuXiTianShu+"天");       
  58.         }
  59. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨玉揆 + 1

查看全部评分

3 个回复

正序浏览
很有创意,值得学习ing!
回复 使用道具 举报
吕猛 黑马帝 2011-12-27 13:24:07
藤椅
blackbansy 发表于 2011-12-27 03:03
这题目有点类似三天大鱼两天晒网的故事。不管结果怎么样,精神是值得学习的。 ...

主要目的为了计算你上了几天学,休息了几天,平均每节课多少钱!
回复 使用道具 举报
这题目有点类似三天大鱼两天晒网的故事。不管结果怎么样,精神是值得学习的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马