当飞机上的仪器出故障时,飞行员常常得估计他们到最近机场的距离。他们的方法是利用他们的高度和他们和机场之间的角度的估计。编写一个程序,帮助飞行员进行计算。
程序应以高度和角度作为输入,输出估计距离。公式为:距离distance=高度hight/ tan(degree)。
说明:tan(degree)为角度为degree的正切值。
提示:在JAVA中,Math类的静态方法tan(double degree),用于计算弧度为degree的角度的正切值。
在C语言中,函数名: tan, 头文件:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
while(scanner.hasNext()){
//scanner.hasNext()判断系统输入是否结束
double h=scanner.nextDouble();
double d=scanner.nextDouble();
double distance=h/Math.tan(d);
System.out.printf("%.2fn",distance);
}
}
}
7-2 sdut-数据类型-2 应用勾股定理,了解世界灿烂文明 (10 分)
定义:在平面上的一个直角三角形中,两个直角边边长的平方加起来等于斜边长的平方。如果设直角三角形的两条直角边长度分别是和,斜边长度是,那么可以用数学语言表达:
请编程程序,实现如下功能:输入直接三角形的两个直角边的边长,求它们的斜边边长,结果保留2位小数。
提示:在Java中利用Math类的方法——**Math.sqrt()**求平方根。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int i=1;
while(scanner.hasNext()) {
double a=scanner.nextDouble();
double b=scanner.nextDouble();
System.out.printf("%.2fn", Math.sqrt(a*a+b*b));
}
}
}
7-1 java基本语法-整数四则运算 (10 分)
输入2个整数,输出它们的和、差、乘积和准确的商。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int a=in.nextInt();
int b=in.nextInt();
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a*1.0/b);
}
}
函数题
6-1 学生类 (20 分)
有一个学生类的结构如下:
class Student {
private int no;
private String name;
private int score;
public Student(int _no, String _name, int _score) {
no = _no;
name = _name;
score = _score;
}
public int getNo() {return no;}
public String getName() {return name;}
public int getScore() {return score;}
public void print(){
System.out.println(no + " "+name+" "+score);
}
}
请构造main函数完成如下功能: 从键盘中读入三个学生的信息,比较他们的成绩,按照成绩由高到低排列输出
裁判测试程序样例:
import java.util.Scanner;
public class Main {
public static void main(String []args)
{
Scanner in = new Scanner(System.in);
Student a = new Student(in.nextInt(),in.next(),in.nextInt());
Student b = new Student(in.nextInt(),in.next(),in.nextInt());
Student c = new Student(in.nextInt(),in.next(),in.nextInt());
if(a.getScore()>b.getScore()&&a.getScore()>c.getScore())
if(b.getScore()>c.getScore())
{a.print();b.print();c.print();}
else
{a.print();c.print();b.print();}
if(b.getScore()>a.getScore()&&b.getScore()>c.getScore())
if(a.getScore()>c.getScore())
{b.print();a.print();c.print();}
else
{b.print();c.print();a.print();}
if(c.getScore()>b.getScore()&&c.getScore()>a.getScore())
if(b.getScore()>a.getScore())
{c.print();b.print();a.print();}
else
{c.print();a.print();b.print();}
}
}
6-2 人口统计 (10 分)
本题运行时要求键盘输入10个人员的信息(每一个人信息包括:姓名,性别,年龄,民族),要求同学实现一个函数,统计民族是“汉族”的人数。
函数接口定义:public static int numofHan(String data[])
裁判测试程序样例:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
final int HUMANNUM=10;
String persons[]=new String[HUMANNUM];
Scanner in=new Scanner(System.in);
for(int i=0;i
代码
public static int numofHan(String data[]){
String s = "汉族";
int num = 0;
for(String s_t: data){
if( s_t.indexOf(s) >= 0 ){
num ++;
}
}
return num;
}



