Java面向对象实验 2 ——基本数据 控制结构

一、上机目的

  1.掌握Eclipse环境的使用。

     2.掌握基本数据类型及基本类型数组的使用方法

  3.掌握Java控制结构中的控制语句和循环语句及其使用方法。

二、上机内容

1..编程求10以内整数的和。

public class T1 {
    public static void main(String[] args) {
        int i=1,sum=0;
        for( ;i<=10;i++){
            sum+=i;
        }
        System.out.println("10以内整数的和为:"+sum);
    }
}

2.编程实现将由键盘输入的十进制正整数转换为二进制数,并输出转换后的二进制结果。

package OOP.work.Test2;

import java.util.Scanner;
/*编程实现将由键盘输入的十进制正整数转换为二进制数,并输出转换后的二进制结果。*/
public class T2 {
        public static void main(String[] args){
            //获取用户输入
            Scanner sc = new Scanner(System.in);
            System.out.println("请随机输入一个十进制整数:");

            //检验用户输入的数值是否符合要求
            if(sc.hasNextInt()){
                int num=sc.nextInt();
                if(num>=0){
                    System.out.print("十进制"+num+"的二进制为:");
                    String binary = Integer.toBinaryString(num);//直接调用Integer.toBinaryString()方法
                    System.out.println(binary);
                }else{
                    System.out.println("您输入的数值有误,请重新输入。");
                }
            }else{
                System.out.println("您输入的数值有误,请重新输入。");
            }
        }
}

 

3.编程实现由键盘输入的年份是否为闰年,要求采用方法调用的方式实现。

/*编程实现由键盘输入的年份是否为闰年,要求采用方法调用的方式实现。*/
public class T3 {
    private  int year;

    public T3(int year) {
        this.year = year;

        if(year%4 == 0 || year%400 == 0){
            System.out.println("你输入的年份是闰年");
        }else {
            System.out.println("你输入的年份不是闰年");
        }
    }
}


//测试类
public class T3_test{
    public static void main(String[] args) {
        T3 Bigyear=new T3(2022);
    }
}

 

4. 编程求s=1!+2!+…+n!(n从键盘输入),采用方法调用的方式实现。

import java.util.Scanner;

/*编程求s=1!+2!+…+n!(n从键盘输入),采用方法调用的方式实现。*/
public class T4 {
    public static void main(String[] args) {
        int k=1;
        long sum=0,s;
        Scanner scanner=new Scanner(System.in); //使用Scanner类定义对象
        System.out.println("请输入一个整数:");
        k=scanner.nextInt();
        for(int j=1;j<=k;j++){
            s=1;
            for(int i=1;i<=j;i++){
                s*=i;  //计算阶乘
            }
            sum=sum+s;
        }
        System.out.println("sum="+sum);
    }
}

 

 

5. 编程求s=1-2+3-4+…+99-100。

/*编程求s=1-2+3-4+…+99-100。*/
public class T5 {
    public static void main(String[] args) {
        int i=0,sum=0;
        for ( ; i<=100;i++){
            double a=Math.pow(-1,i-1);
            sum +=(a * i);
        }
        System.out.println("1-2+3-4+…+99-100的和为:"+sum);
    }
}

 

6. 试编写一个程序,其功能是:从键盘输入一个整数,输出这个数的每位数字之和。

例如:输入245789,输出35。

import java.util.Scanner;

/*
试编写一个程序,其功能是:从键盘输入一个整数,输出这个数的每位数字之和。
例如:输入245789,输出35。
*/
public class T6 {

    public static void main(String[] args) {
        Scanner scanner =new Scanner(System.in);
        System.out.println("请输入一个长整数:");
        long num =scanner.nextLong();
        String string=Long.toString(num);
        char arr[]=string.toCharArray();
        int sum=0;
        for(int i=0;i<arr.length;i++){
           /*System.out.println("这个数的第"+(i+1)+"位为"+arr[i]);*/
           int a=Integer.parseInt(String.valueOf(arr[i]));
           sum =sum +a;
       }
        System.out.println("长整数各数之和为"+sum);

    }
}

 

 

7. 设计并实现一个要求用户输入两个数并猜测两数之和的程序。如果用户猜对结果,就显示祝贺消息,否则显示慰问信息以及正确答案。

package OOP.work.Test2;

import java.util.Scanner;
/*设计并实现一个要求用户输入两个数并猜测两数之和的程序。
如果用户猜对结果,就显示祝贺消息,否则显示慰问信息以及正确答案*/
public class T7 {
    private   int num1;
    private   int num2;

    public T7(int num1, int num2) {
        this.num1 = num1;
        this.num2 = num2;
        Scanner scanner=new Scanner(System.in);
        System.out.println("输出你猜的两数之和:");
        int sum=scanner.nextInt();
        if(num1+num2 == sum){
            System.out.println("你可真棒,猜对啦");
        }else {
            System.out.println("你可真是个大聪明,正确答案是:"+(num1+num2));
        }
    }

}


//测试类
public class T7_test {
    public static void main(String[] args) {
        T7 number=new T7(23,24);
    }

}

 

8 编写程序,一列数的规律如下:1、1、2、3、5、8、13、21、34……

求这列数的第30个数是多少。

/*编写程序,一列数的规律如下:1、1、2、3、5、8、13、21、34……
求这列数的第30个数是多少。
*/
public class T8 {
    public static void main(String[] args){
        System.out.println("这列数的第三十个数是:"+fib(30));
    }
    public static int fib(int n) {
        if (n == 1 || n == 2) {
            return 1;
        } else {
            return fib(n - 1) + fib(n - 2);
        }
    }
}

9*.输入年月日,输出这一天的前一天。

import java.util.Scanner;

/*输入年月日,输出这一天的前一天*/
public class T9 {
    public static void main(String[] args) {
            Scanner sc= new Scanner(System.in);
            System.out.println("请输入年月日:");
            int year=sc.nextInt();
            int month=sc.nextInt();
            int day=sc.nextInt();
            int a[]= {31,29,31,30,31,30,31,31,30,31,30,31};
            int b[]= {31,28,31,30,31,30,31,31,30,31,30,31};
            boolean flag = (year%4==0 && year%100!=0 || year%400==0);
            if (day==1){
                if (month==3){
                    if(flag){
                        System.out.println("上一天是"+year+"年"+"2月"+"29号");
                    }else {
                        System.out.println("上一天是"+year+"年"+"2月"+"28号");
                    }
                }else{
                    if (month==1){
                        System.out.println("上一天是"+(year-1)+"年"+"12月"+"31号");
                    }else {
                        month--;
                        if (month==1||month==3||month==5||month==7||month==8||month==10||month==12){
                            day=31;
                        }else{
                            day=30;
                        }
                        System.out.println("上一天是"+year+"年"+month+"月"+day+"号");
                    }
                }
            }else {
                System.out.println("上一天是"+(year)+"年"+month+"月"+(day-1)+"号");
            }

        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值