(一)学习总结

1.在java中通过Scanner类完成控制台的输入,查阅JDK帮助文档,Scanner类实现基本数据输入的方法是什么?不能只用文字描述,一定要写代码,通过具体实例加以说明。

import java.util.Scanner;
public class ScannerDemo1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("输入数据:");
String str = scan.next();
System.out.println("输入的数据为:"+str);
}

}

Scanner 的头文件为import java.util.Scannner,之后再用Scanner声明,就可以调用了。最简单的数据输入直接使用Scanner类的next()方法。

2.Random类和Math类的random()方法都能产生随机数,这两种方式有什么区别,各有什么特点呢?查阅JDK帮助文档,并举例加以说明。

Math类的random()函数返回的值大于等于0.0小于1.0,

Random类产生的随机数再最大值范围内,按照概率均匀分布。

3.运行下列程序,结果是什么?查阅资料,分析为什么。

public class Test {
public static void main(String args[]) {
double a = 0.1;
double b = 0.1;
double c = 0.1;
if((a + b + c) == 0.3){
System.out.println("等于0.3");
}else {
System.out.println("不等于0.3");
}
}

}

结果为“不等于0.3“

原因为在Java中浮点数的计算会出现精度丢失的问题

改正之后

public class Test {
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.看商品猜价格

利用Random产生随机数,用for循环控制一共可以猜的次数,循环内竞猜价格与随机数进行比较大小,进行输出。

package test;
import java.util.Scanner;
import java.util.Random;
public class yi { public static void main(String[] args) {
// TODO Auto-generated method stub
Random rand = new Random();
int price_unkown;
int max = 100;
int min = 1;
int i,a,flag=0;
a=rand.nextInt(100);
System.out.println("商品价格"); for(i=1;i<=10;i++){
System.out.print("输入竞猜的价格");
Scanner in = new Scanner(System.in);
price_unkown = in.nextInt();
flag++;
if(price_unkown == a){
System.out.println("猜对了");
System.out.println("猜测的次数"+flag);
System.out.println("商品价格"+a);
break;
}
else if(price_unkown < a){
System.out.println("猜小了");
}
else if(price_unkown > a){
System.out.println("猜大了");
} }System.out.println("商品价格为"+a);
} }

2.万年历

package test;
import java.util.Scanner;
public class yi {
static boolean isleap(int year){ //判断闰年
if(year%400==0 || (year%4==0 && year%100!=0)){ //是闰年
return true;
} else{
return false;
}
}
static final int N = 1900; //用N表示起始年份 public static void main(String[] args) {
// TODO Auto-generated method stub
int n = 1;//1900年1月1日 是星期一
int month[] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; //用来存储月份的天数
int year[] = new int[1001]; //用来存储每年1月1日是星期几
year[0] = n;
for(int i=1;i<year.length;i++){
int days = 365;
if(isleap(i+N-1)){//如果它的前一年是闰年则需要加366
days = 366;
year[i] = (year[i-1] + days)%7;
}
else{
year[i] = (year[i-1] + days)%7;
}
}
int Month ,Year;
Scanner in = new Scanner(System.in);
System.out.println("请输入年份在(1900~2900之间):");
Year = in.nextInt();
if(Year>2900 || Year<1900){
System.out.println("输入年份不合法,请重新输入!");
return;
}
//System.out.println(year[Year-1970]);
System.out.println("请输入月份(1~12之间):");
Month = in.nextInt();
if(Month>12 || Month<1){
System.out.println("输入月份不合法,请重新输入!");
return;
}
System.out.println("星期日" +"星期一 "+"星期二"+"星期三"+"星期四"+"星期五"+"星期六");
System.out.println();
if(isleap(Year)){ //如果是闰年,2月改为29号
month[2] = 29;
}
int day=0; //用来记录当前月的一号是今年的第几天
for(int i=1;i<Month;i++){
day = day + month[i];
} day = (year[Year-N]+day)%7;
for(int i=0;i<7;i++){//输出控制
if(day == i){
System.out.print(" " + 1 + " ");
if(day == 6){
System.out.println();
}
break;
}
else{
System.out.print(" ");
}
}
for(int i=2;i<=month[Month];i++){
if(i<10){
System.out.print(" " + i + " ");
}
else{
System.out.print(" " + i + " ");
}
if((day+i-1)%7 == 6){
System.out.println();
}
}
}
}

3.评分系统

package ww;
import java.util.Scanner;
public class w { private static int grades[]; public static void main(String[] args) {
grades = new int [5];
for(int x=0;x<5;x++) {
double[] scores = new double[10];
Scanner input = new Scanner(System.in);//扫描器用于读取控制台输入
for (int i = 0; i < scores.length; i++) {//输入分数
System.out.print("请输入第" + (i + 1) + "位评委的分数,满分十10分");
String temp = input.nextLine().trim();
scores[i] = Double.parseDouble(temp);
}
getScore(scores);//对分数进行处理的函数
}
} private static void getScore(double[] scores) {
//对分数进行排序
double temp;
for (int i = 0; i < scores.length - 1; i++) {
for (int j = i + 1; j < scores.length; j++) {
if (scores[i] > scores[j]) {
temp = scores[i];
scores[i] = scores[j];
scores[j] = temp;
}
}
}
//去掉一个高分,一个低分后的平均分
double sum =0;
for (int i = 1; i < scores.length-1; i++) {
sum+=scores[i];
}
double pjf = sum/(scores.length-2);
System.out.println("去掉一个最高分:"+scores[scores.length-1]);
System.out.println("去掉一个最低分:"+scores[0]);
System.out.println("最后的平均分是:"+String.format("%.2f",pjf));//平均分保留2位小数
}
}

Java 第一次作业的更多相关文章

  1. java第一次作业0

    lsl321 java第一次作业 #1. 本章学习总结 你对于本章知识的学习总结 本章我们学习了各种java相关文件的使用,以及码云,博客,pat等程序辅助软件,这些对于我们专业的学习有非常大的帮助, ...

  2. Java第一次作业——Java语言基础

    <Java技术>第一次作业 学习总结 1.Scanner类实现基本数据输入方法 Scanner input=new Scanner(System.in); int num = input. ...

  3. Java第一次作业

    (一)学习总结 1.在java中通过Scanner类完成控制台的输入,Scanner类实现基本数据输入的方法是什么? import java.util.Scanner; System.out.prin ...

  4. Java第一次博客作业

    第一次博客作业 目录 三次作业题目详情 作业中的错误分析 感想与心得 题目详情 题目1:第一次作业: 类图: 题目2 类图: 题目3 类图: 题目4 题目5 题目6 类图: 题目7 类图: 题目8 第 ...

  5. 软件工程(QLGY2015)第一次作业小结(含成绩)

    相关博文目录: 第一次作业点评 第二次作业点评 第三次作业点评 Github项目提交 github的代码提交,大部分人都只是提交了单个文件,存在几个问题 请提交完整的项目文件到github 问题:为什 ...

  6. OO第一次作业总结

    OO第一次学习总结 1.第一次作业:多项式加法 从未接触过java的我,在从输入输出开始学了几天后,按照C语言的思路,写出了一个与面向过程极其接近的程序. 在这个程序中,存在两个类:一个是Comput ...

  7. 构建之法助教园地第一次作业--点评<西北师范大学|李晓婷>

    一 博客点评 第一次作业--准备篇:https://www.cnblogs.com/Mookiepiece/p/10464606.html#4192515 点评内容: 首先,你对电脑很感兴趣,兴趣就是 ...

  8. 从入门到不放弃——OO第一次作业总结

    写在最前面: 我是一个这学期之前从未接触过java的小白,对面向对象的理解可能也只是停留在大一python讲过几节课的面向对象.幸运的是,可能由于前三次作业难度还是较低,并未给我造成太大的困难,接下来 ...

  9. < JAVA - 大作业(2)仿qq即时通讯软件 >

    < JAVA - 大作业(2)仿qq即时通讯软件 > 背景 JAVA上机大作业:设计一个仿qq即时通讯软件 任务简要叙述:设计一款仿QQ的个人用户即时通讯软件,能够实现注册,登陆,与好友聊 ...

随机推荐

  1. 【Fungus入门】10分钟快速构建Unity中的万能对话系统 / 叙事系统 / 剧情系统

    我真的很久没有写过一个完整的攻略了(笑),咸鱼了很久之后还是想来写一个好玩的.这次主要是梳理一下Unity的小众插件Fungus的核心功能,并且快速掌握其使用方法. 官方文档:http://fungu ...

  2. JAVA_SE基础——35.static修饰成员函数

    在Java中适用static关键字修饰的方法称为静态方法. 声明静态方法的语法格式如下: 权限修饰符 static 数据类型 方法名(){ 方法体 } 静态方法 可以使用类名直接调用     类名.方 ...

  3. kubernetes进阶(04)kubernetes的service

    一.service概念 Service是对一组提供相同功能的Pods的抽象,并为它们提供一个统一的入口.借助Service,应用可以方便的实现服务发现与负载均衡,并实现应用的零宕机升级.Service ...

  4. GIT入门笔记(2)- 典型的工作模式

      分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库.   下图是经典的git开发过程.   Git的功能特性:   ...

  5. centOs6.5配置jdk及其注意事项

    1.下载jdk1.7 百度云链接: https://pan.baidu.com/s/15vXLO2eV18eVvmt-R5jGnQ 密码: 1gd6 2.解压压缩包 通过终端在/usr/local下新 ...

  6. loadrunner录制时web时,安全证书问题

    测试环境:win7+LoadRunner11+ie9 遇到的问题:用LoadRunner录制时,打开百度,总是报安全证书问题,如图所示 解决方法:Tools——Recording Options——p ...

  7. 模板引擎Jade详解

    有用的符号: | 竖杠后的字符会被原样输出 · 点表示下一级的所有字符都会被原样输出,不再被识别.(就是|的升级版,实现批量) include 表示引用外部文件 短杠说明后面跟着的字符只是一段代码(与 ...

  8. JavaScript的对象/下

    JavaScript的对象 一.BOM对象 BOM----browser object model 1.window对象 所有浏览器都支持window对象. 概念上讲,一个html文档对应一个wind ...

  9. POJ-3255 Roadblocks---Dijkstra队列优化+次短路

    题目链接: https://vjudge.net/problem/POJ-3255 题目大意: 给无向图,求1到n的次短路长度 思路: 由于边数较多,应该使用dijkstra的队列优化 用d数组存储最 ...

  10. 卷积神经网络的一些经典网络2(Inception)

    在架构内容设计方面,其中一个比较有帮助的想法是使用1x1卷积.1x1卷积能做什么? 对于6x6x1的通道的图片来说,1x1卷积效果不佳,如果是一张6x6x32的图片,那么使用1x1卷积核进行卷积效果更 ...