Java基础 实验一:简单数据类型和流程控制

版权声明:@YDDUONG https://blog.csdn.net/y_dd6011/article/details/83832231

1.实验目的
掌握标识符的定义规则、表达式的组成、各种数据类型及其使用方法、各种运算符的使用及其优先级控制。掌握分支结构,循环结构,continue,break,语句标号等内容。


2.实验内容
(1)输入一个三角形的3个边长,检查是否能构成一个直角三角形。
(2)任意从键盘输入一个0到9999之间的数,判断输入的数是几位数。
(3)铁路运货的运费与路程远近及货物的重量有关,设有如下的单位运费:

不足100千米,每吨每千米为1.0元

100千米以上,不足300千米,每吨每千米为0.9元

300千米以上,不足500千米,每吨每千米为0.8元

500千米以上,不足1000千米,每吨每千米为0.7元

1000千米以上,每吨每千米为0.6元

编程:对输入的货物重量和路程,计算相应的运费。
(4)用循环语句编程:求1~1000之间的偶数之和。 
(5)编程求:1!+2!+3!+……+10!。

 

3.实验要求
第(2)题加入异常处理机制;第(4)题用for和while循环各做一遍。

package exprimentfirst;
import java.util.Scanner;
public class ExprimentFirst {
    Scanner input = new Scanner(System.in);
    public static void main(String[] args) {
        ExprimentFirst demo = new ExprimentFirst();
        demo.firstQuestion();
        demo.secondQuestion();
        demo.thirdQuestion();
        demo.fourthQuestion();
        demo.fifthQuestion();
    }
    public static class RAT {//三角形类
        private double a;
        private double b;
        private double c;
        void isTrueRAT(){//是否可以构成直角三角形
            double temp;
            if(a<b){
                temp=a;
                a=b;
                b=temp;
            }
            if(a<c){
                temp=a;
                a=c;
                c=temp;
            }
            if(a*a-b*b-c*c==0)System.out.println("恭喜,您输入的三条边可以构成直角三角形。");
            else System.out.println("失败,您输入的三条边不可以构成直角三角形。");
        };
    }        
    public void firstQuestion(){
        System.out.println("这是问题一:****************************************");
        RAT rat = new RAT();
        System.out.print("请输入三角形的三条边:");
        rat.a = input.nextDouble();
        rat.b = input.nextDouble();
        rat.c = input.nextDouble();3
        rat.isTrueRAT();
    }
    public void secondQuestion(){
        System.out.println();
        System.out.println("这是问题二:****************************************");
        int a;
        int count=0;
        System.out.print("请输入0~9999之间的整数(包括0和9999):");
        a = input.nextInt();
        if(a<0||a>9999){//异常处理
            System.out.print("您输入的数据不在0~9999之间,请重新输入:");
            a = input.nextInt();
        }
        do{
            count++;
            a=a/10;
        }while(a!=0);
        System.out.println("您输入数据的位数为:"+count);
    }
    public void thirdQuestion(){
        System.out.println();
        System.out.println("这是问题三:****************************************");
        double weight;//货物重量(t)
        double distance;//路程(km)
        double freight = 0;//运费(元)
        System.out.print("请输入货物重量(t)和路程(km):");
        weight = input.nextDouble();
        distance = input.nextDouble();
        if(distance <= 100)freight = weight * distance * 1.0;
        else if(distance > 100 && distance <= 300)freight = weight * distance * 0.9;
        else if(distance > 300 && distance <= 500)freight = weight * distance * 0.8;
        else if(distance > 500 && distance <= 1000)freight = weight * distance * 0.7;
        else if(distance > 1000)freight = weight * distance * 0.6;
        System.out.println("需要的运费为:"+freight+"元");
    }
    public void fourthQuestion(){
        System.out.println();
        System.out.println("这是问题四:****************************************");
        int i;
        int sum = 0;
        for(i = 2;i <= 1000;i += 2)sum += i;
        System.out.println("1~1000之间的偶数之和为(for版):"+sum);
        i = 2;
        sum = 0;
        while(i <= 1000){
            sum += i;
            i += 2;
        }
        System.out.println("1~1000之间的偶数之和为(while版):"+sum);
    }
    public void fifthQuestion(){
        System.out.println();
        System.out.println("这是问题五:****************************************");
        int i;
        int j;
        int temp;
        int sum = 0;
        for(i=1;i<=10;i++){
            temp = 1;
            for(j=1;j<=i;j++){
                temp = temp*j;
            }
            sum = sum+temp;
        }
        System.out.println("1!+2!+3!+……+10!的和为:"+sum);
    }
}

测试结果一:

测试结果二:

猜你喜欢

转载自blog.csdn.net/y_dd6011/article/details/83832231