(一)学习总结
1.在java中通过Scanner类完成控制台的输入,查阅JDK帮助文档,Scanner类实现基本数据输入的方法是什么?不能只用文字描述,一定要写代码,通过具体实例加以说明。
import java.util.*;
public class 123 {
public static void main(String[] args) {
int a;
System.out.println("请输入一个数字:");
Scanner input = new Scanner(System.in);
a = input.nextInt();
System.out.println("输入的数字是:"+a);
}
这是输入一个int型的数,不同类型要用不同的函数。
2.Random类和Math类的random()方法都能产生随机数,这两种方式有什么区别,各有什么特点呢?查阅JDK帮助文档,并举例加以说明。
Math类:int x=(int)(Math.random()*x+y);
Math类的random()返回一个x-y之间的小数。
Random类:
Random rand = new Random();
int x=rand.nextInt(x)+y;
产生一个x-y之间的随机数。
3.运行下列程序,结果是什么?查阅资料,分析为什么。
输出结果是不等于0.3,在计算double类型数据时会产生误差。
比较两个double类型的数据相等时,其原理是看二者相减是否无限趋近于0。
public class ABC {
public static void main(String args[]) {
double a = 0.1;
double b = 0.1;
double c = 0.1;
if((a + b + c)-0.3<1e-6){
System.out.println("等于0.3");
}else {
System.out.println("不等于0.3");
}
}
}
(二)实验总结
实验内容:
1.看商品猜价格
import java.util.*;
public class Q1111 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int x,a;
int n=0,j=0;
x = (int) (Math.random() * 100);
while(true){
for(a=5;a>0;a--){
System.out.println("请输入商品价格,你还有"+a+"次机会");
int i,f;
i=in.nextInt();
f=i*20;
if(i==x)
{
System.out.println("你猜对了,你的得分为"+f+"分!");
j=j+f;
break;
}
else
{
if(i>x)
{
System.out.println("猜高了,你还剩余"+(a-1)+"次机会!");
}
else
{
System.out.println("猜低了.你还剩余"+(a-1)+"次机会!");
}
}
}
n=n+1;
System.out.println("是否继续? (yes/no)");
String t;
t =in.next();
if(t.equals("yes"))
{
continue;
}
else if(t.equals("no"))
{
break;
}
}
System.out.println("你一共猜了"+n+"次,总得分为"+j);
}
}
2.万年历
import java.util.Scanner;
public class Q3333 {
public static void main(String[] args) {
int year=0;
int month=0;
int day=0;
Scanner input=new Scanner(System.in);
System.out.print("请输入年份:");
year=input.nextInt();
System.out.print("请输入月份:");
month=input.nextInt();
int a=0;
for(int i=1900;i<year;i++)
{
if((i%4==0&&i%100!=0)||(i%400==0))
{
a=a+366;
}else
{
a=a+365;
}
}
int b=0;
for(int j=1;j<=month;j++)
{
switch(j)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day=31;
break;
case 4:
case 6:
case 9:
case 11:
day=30;
break;
case 2:
if(year%4==0&&year%100!=0||year%400==0)
{
day=29;
}else
{
day=28;
}
}
if(j<month)
{
b=b+day;
}
}
a=a+b;
int c=0;
int temp=1+a%7;
if(temp==7)
{
c=0;
}
else
{
c=temp;
}
System.out.println("星期日 星期一 星期二 星期三 星期四 星期五 星期六");
for(int k=0;k<c;k++)
{
System.out.print(" ");
}
for(int m=1;m<=day;m++)
{
System.out.print(m+" ");
if((a+m)%7==6)
{
System.out.print("
");
}
}
}
}
3.评分系统
import java.util.*;
public class Q2222 {
public static void main(String[] args) {
int i,j,y,t;
int num=0;
double l=0;
int score1[][]=new int[5][10];
int score2[][]=new int[5][8];
double score3[] = new double[5];
int score4[] = new int[5];
Scanner putin=new Scanner(System.in);
for(i=0;i<5;i++)
{
for (j=0;j<10;j++)
{
System.out.println("第"+(j+1)+"位评委请给第"+(i+1)+"号选手打分");
score1[i][j] = putin.nextInt();
}
}
for(i=0;i<5;i++)
{
for(j=0;j<10;j++)
{
for(y=0;y<9;y++)
{
if(score1[i][y]<score1[i][y+1])
{
t=score1[i][y];
score1[i][y]=score1[i][y+1];
score1[i][y+1]=t;
}
}
}
}
for(i=0;i<5;i++)
{
for(j=0;j<8;j++)
{
score2[i][j]=score1[i][j+1];
}
}
for(i=0;i<5;i++)
{
for(j=0;j<8;j++)
{
num+=score2[i][j];
}
score3[i]=num/8;
score4[i]=i+1;
}
for (i=0;i<=4;i++)
{
for (j=0;j<=3;j++)
{
if (score3[j]<score3[j+1])
{
l= score3[j];
score3[j]=score3[j+1];
score3[j+1]=l;
t=score4[j];
score4[j]=score4[j+1];
score4[j+1]=t;
}
}
}
for (i=0;i<=4;i++)
{
System.out.println("第"+(i+1)+"名是第"+score4[i]+"号选手,得分为"+score3[i]);
}
}
}
(三)代码托管