版权声明:@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);
}
}
测试结果一:
测试结果二: