Java实训5

package cn.com.training.student;

import java.util.Scanner;

/*
        训练描述
                定义一个方法,查找指定数字在数组中出现的位置(若出现多次,多次打印)
                如: 数组[1,2,3,2]要查找的数是2 则方法内部会打印索引值 1 , 3 
                数组[1,2,3,2] 要查找的数是5 则方法每部会打印 “数组中没有这个数字”
        操作步骤描述
                 • 创建一个测试类,在测试类中书写上述代码
                 • 定义方法可以接受一个int[] brr和一个int key 
                 • 在方法中定义标记 int count = 0 ;
                 • 方法中遍历brr 对每个元素进行判断是否等于key,如果等于就打印索引值,并count++
                 • 遍历brr完毕之后 判断count的值,如果还为默认值0,则表示brr中没有key,直接打印”数组中没有这个数字”
                 • 在主方法中传入数组 arr 和数字 2 或者5 进行测试
 */
public class Training24 {
   public static void main(String[] agrs) {
       Scanner sc = new Scanner(System.in);
       
       int[] brr = {1,2,3,2};
       
       System.out.println("请输入数字:");
       int[] arr = new int[4];
       
       for(int i=0;i<arr.length;i++) {
           arr[i] = sc.nextInt();
       }
       
       findKey(5,brr);
       
       sc.close();
   }
   public static int findKey(int key,int[] brr) {
       int count = 0;
       for(int a=0;a<brr.length;a++) {
           if(brr[a]==key) {
               count++;
               System.out.println((key-1)+","+(key+1));
           }else if(brr[a]!=key) {
               System.out.println("数组中没有这个数字");
               break;
           }          
       }
        System.out.println("该数出现的"+count+"次");
       return count;
   }
}
 

package cn.com.training.student;

import java.util.Scanner;

/*
 
        综合案例25(输出闰年)
        训练描述
                定义一个方法,去打印指定两个年份之间所有的闰年年份
                如:将2000和2005传入方法,方法执行完毕会打印出这段之间的所有闰年年份
                2000和2004
        提示:
                计算公历年闰年的算法: 四年一闰,百年不闰,四百年再闰,即
                满足如下任意一条即使如年
                 • 年份是整百数的必须是400的倍数才是闰年(能被100整除并且能被400整除)
                 • 其他年份能被4的是闰年
                实例: 2000 是整百数,并且是400的倍数所以是闰年; 2004年是4的倍数是闰年
                2100 是整百的倍数但不是400的倍数,所以不是闰年
 */

public class Training25 {
   public static void main(String[] agrs){
      Scanner sc = new Scanner(System.in);
       
      System.out.println("请输入年份:");   
      int year = sc.nextInt();
       
       int y = leapYear(year);
       //System.out.println(y);
       
       //&& || !(&&)
       sc.close();
   }
   public static int leapYear(int year){
       int y = year;
       
       for(int i=2000;i<y;i++){
           if(i%4==0 || i%400==0 || i%100==0){
               System.out.println("所有的闰年"+i+"年");
           }
       }
       return y;
   }
}
 

package cn.com.training.student;

import java.util.Scanner;
/*
        综合案例26(求整数的位数)
        训练描述
                1.键盘录入一个整数(正数或者负数都可以,但是符号位不算有效的数字位)
                2.定义一个方法,该方法的功能是计算该数字是几位数字,并将位数返回
                3.在main方法中打印该数字是几位数
                例如:
                请输入一个整数:1234
                输出:1234是4位数字
                请输入一个整数:-34567
                输出:-34567是5位数字
        操作步骤描述
        略
*/
public class Training26 {
   public static void main(String[] agrs){
      Scanner sc = new Scanner(System.in);
      
      System.out.println("请输入多位数:");
      int num = sc.nextInt();
      int count = 0;
      
     do{
          num /= 10;
          if(num<0){
               num *= (-1);              
          }
              count++;      
      }while(num>0);
      
      System.out.println("该数为"+count+"位数");
      
     sc.close();
                                             
   }
}
 

package cn.com.training.student;

import java.util.Scanner;
    /*    
               综合案例27(求阶乘)
                        编写方法,求任意大于1的整数n的阶乘值,即 n!=1*2*3*……*(n-1)*n
                        例如:
                        输入   5
                        输出  120
                训练步骤
                        使用单重循环或者双重循环
        */
public class Training27 {
   public static void main(String[] agrs){
       Scanner sc = new Scanner(System.in);
       
       System.out.println("请输入数字:");
       int i = sc.nextInt();
       int fac = 1;

       //2的阶乘 1*2 
       for(int a=1;a<=i;a++){
           System.out.println(a);
           fac = fac * a;
       }
       System.out.println(i+"的阶乘为:"+fac);
       
       sc.close();
   }    
}
 

package cn.com.training.student;

import java.util.Scanner;


/*
        综合案例28(类和对象)
        训练描述:
                • 实现从控制台接收一个学员信息,并存储到一个对象中
                • 打印这个对象的所有属性值。
        操作步骤描述
                • 设计,并定义一个学员类:Student,要求有以下属性:
                 学员编号(String) 
                 姓名(String)
                ​  性别(String)
                 身高(double)
                 年龄(int)
                使用封装的原则,并提供无参和全参的构造方法。
                • 定义MainApp类,并包含main()方法。
                • 程序启动后,应分别提示用户输入学员编号、姓名等信息。
                例如控制台显示:
                C:\>请输入学员编号:
                C:\>....
                C:\>请输入学员姓名:
                C:\>....
                .................
                • 数据接收到程序中,并定义局部变量存储;
                • 创建Student对象,通过构造方法将所有数据存储到Student对象中;
                • 打印对象中的每个属性值。
        */
public class Training28MainApp {
   public static void main(String[] agrs){
       Scanner sc = new Scanner(System.in);
       
       Student hwt = new Student();
       
       System.out.println("请输入学员编号:");
       hwt.studentNum = sc.next();
       
       System.out.println("请输入学员名字:");
       hwt.name = sc.next();
       
       System.out.println("请输入学员性别:");
       hwt.sex = sc.next();
       
       System.out.println("请输入学员身高:");
       hwt.height = sc.nextDouble();
       
       System.out.println("请输入学员年龄:");
       hwt.age = sc.nextInt();
       
       System.out.println("学员编号:"+hwt.studentNum);
       System.out.println("名字:"+hwt.name);
       System.out.println("性别:"+hwt.sex);
       System.out.println("身高:"+hwt.height+"米");
       System.out.println("年龄:"+hwt.age+"岁");
       
       
       sc.close();
   }
}
28题需要再新建一个Class,该Class如下:

package cn.com.training.student;

public class Student {
    String studentNum;
    String name;
    String sex;
    double height;
    int age;
    
    static void hwt(){
        
    }
    
}
 

package cn.com.training.student;

/*
         案例描述
                 编写程序,打印如下图形
                         *        
                         **    
                         ***    
                         ****    
                         *****
                         ******
                         *******
         步骤描述
                 设计双重循环
                 外层循环控制行数,内层循环控制每一行打印内容
 */
public class Training29 {
  public static void main(String[] agrs){
      for(int i=1;i<=7;i++){
          for(int j=1;j<=i;j++){
              System.out.print("*");
          }
          System.out.println(" ");
      }
      
  }

}
 

package cn.com.training.student;
/*
        综合案例30(类和对象)★★★★★
        训练描述 
        分析以下需求,并用代码实现
         1.项目经理类Manager 
                属性:
                        姓名 name
                        工号 id
                        工资 salary
                        奖金 bonus
                行为:
                        工作 work()
         2.程序员类Coder
          属性:
                   姓名 name
                   工号 id
                   工资 salary
          行为:
                       工作 work()
         要求:
                  1.按照以上要求定义Manager类和Coder类,属性要私有,生成空参、有参构造,setter和getter方法
                  2.定义测试类,在main方法中创建该类的对象并给属性赋值(演示两种方法:setter方法和构造方法)
                  3.调用成员方法,打印格式如下:
                          工号为123基本工资为15000奖金为6000的项目经理一龙正在努力的做着管理工作,分配任务,检查员工提交上来的代码.....
                          工号为135基本工资为10000的程序员方便正在努力的写着代码......
   */
public class Training30MainApp {
   public static void main(String[] agrs){
       Manager man = new Manager();
       
       man.name = "一龙";
       man.id = "123";
       man.salary = 15000;
       man.bonus = 6000;
       
       System.out.print("工号为"+man.id+"基本工资为"+man.salary+"奖金为"+man.bonus+"的项目经理"+man.name);
       work1();
       
       Coder cod = new Coder();
       
       cod.name = "方便";
       cod.id = "135";
       cod.salary = 10000;
       
       System.out.print("工号为"+cod.id+"基本工资为"+cod.salary+"的程序员"+cod.name);
       work2();
       
   }
   static void work1(){
       System.out.println("正在努力的做着管理工作,分配任务,检查员工提交上来的代码.....");
   }
   
   static void work2(){
       System.out.println("正在努力的写着代码......");
   }
}

30题需要再新建两个Class,如下:

package cn.com.training.student;

public class Manager {
   String name;
   String id;
   int salary;
   int bonus;
     
  
}

package cn.com.training.student;

public class Coder {
   String name;
   String id;
   int salary;
}

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值