Java 第一次作业
(一)学习总结
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 第一次作业的更多相关文章
- java第一次作业0
lsl321 java第一次作业 #1. 本章学习总结 你对于本章知识的学习总结 本章我们学习了各种java相关文件的使用,以及码云,博客,pat等程序辅助软件,这些对于我们专业的学习有非常大的帮助, ...
- Java第一次作业——Java语言基础
<Java技术>第一次作业 学习总结 1.Scanner类实现基本数据输入方法 Scanner input=new Scanner(System.in); int num = input. ...
- Java第一次作业
(一)学习总结 1.在java中通过Scanner类完成控制台的输入,Scanner类实现基本数据输入的方法是什么? import java.util.Scanner; System.out.prin ...
- Java第一次博客作业
第一次博客作业 目录 三次作业题目详情 作业中的错误分析 感想与心得 题目详情 题目1:第一次作业: 类图: 题目2 类图: 题目3 类图: 题目4 题目5 题目6 类图: 题目7 类图: 题目8 第 ...
- 软件工程(QLGY2015)第一次作业小结(含成绩)
相关博文目录: 第一次作业点评 第二次作业点评 第三次作业点评 Github项目提交 github的代码提交,大部分人都只是提交了单个文件,存在几个问题 请提交完整的项目文件到github 问题:为什 ...
- OO第一次作业总结
OO第一次学习总结 1.第一次作业:多项式加法 从未接触过java的我,在从输入输出开始学了几天后,按照C语言的思路,写出了一个与面向过程极其接近的程序. 在这个程序中,存在两个类:一个是Comput ...
- 构建之法助教园地第一次作业--点评<西北师范大学|李晓婷>
一 博客点评 第一次作业--准备篇:https://www.cnblogs.com/Mookiepiece/p/10464606.html#4192515 点评内容: 首先,你对电脑很感兴趣,兴趣就是 ...
- 从入门到不放弃——OO第一次作业总结
写在最前面: 我是一个这学期之前从未接触过java的小白,对面向对象的理解可能也只是停留在大一python讲过几节课的面向对象.幸运的是,可能由于前三次作业难度还是较低,并未给我造成太大的困难,接下来 ...
- < JAVA - 大作业(2)仿qq即时通讯软件 >
< JAVA - 大作业(2)仿qq即时通讯软件 > 背景 JAVA上机大作业:设计一个仿qq即时通讯软件 任务简要叙述:设计一款仿QQ的个人用户即时通讯软件,能够实现注册,登陆,与好友聊 ...
随机推荐
- python之路--day6--字符编码
一.知识储备 cpu--控制和运算 内存--暂时存储cpu需要的数据 硬盘--永久保存数据2.文本编辑器的原理存储原理 1,启动文本编辑器 2,在编辑器上输入内容---此时输入内容还在内存上 3,保存 ...
- gradle入门(1-8)gradle 的依赖查看、依赖排除和指定版本(需要验证!)
一.依赖查看 gradle dependencies 在gradle dependencies输出会有如下几种标记: 1.版本 : 唯一的依赖. 2.版本():还存在该库其他版本的依赖或者间接依赖,并 ...
- maven入门(9)Maven常用命令
Maven常用命令 清理 clean编译 compile打包 package安装 install跳过测试 clean package -Dmaven.test.skip=true
- spark2.1:flatMap的用法
代码示例: val sample_data_combine_result=List( (0,(List(FitModel(4022,1447.92,-8.38983306721434,2.0)),1) ...
- Java-Maven(一):Maven的简介与安装
Maven的简介 Maven是什么? Maven是一个项目管理和整合的工具.Maven为开发者提供了一套完整的构建生命周期框架.开发者可以通过Maven更快的自动完成工程的基础构建陪孩子,因为Mave ...
- 框架学习笔记之Mybatis(二)
一.动态sql 通过mybatis提供的标签,实现sql语句的拼接. 1.where <select id="findUserList" parameterType=&quo ...
- js中的栈与堆的讲解/基本数据类型与引用类型的讲解
1.栈(stack)和堆(heap) stack为自动分配的内存空间,它由系统自动释放:而heap则是动态分配的内存,大小不定也不会自动释放. 2.基本类型和引用类型 基本类型:存放在栈内存中的简单数 ...
- 全球性WannaCry蠕虫勒索病毒感染前后应对措施
前言:针对WannaCrypt勒索病毒的讨论和技术文章是铺天盖地,大量的技术流派,安全厂家等纷纷献计献策,有安全厂家开发各种安全工具,对安全生态来说是一个好事,但对个人未必就是好事,我们国家很多用户是 ...
- 【Swift】ios开发中巧用 description 打印对象时,打印对象的属性
ios开发中我们打印对象的时候,会直接输出对象地址,这样不方便我们开发.我们可以 巧用 description 打印对象时,输出对象的属性 在oc中直接重写即可.swift中需要遵守Printable ...
- Log4j1.2配置详解
Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志的输出到控制台,或者文件等等. 同时,在各大框架中也主要是使用log4j来进行日志的输出. 下面是log4j1.x版本的详细 ...