Java第一次作业——Java语言基础
标签(空格分隔): 未分类
---张鹏 计科1501班
******
1.在java中通过Scanner类完成控制台的输入,查阅JDK帮助文档,Scanner类实现基本数据输入的方法是什么?不能只用文字描述,一定要写代码,通过具体实例加以说明。
首先把import java.util.scanner导入程序,然后通过Scanner in=
new Scanner(System.in)创建一个Scanner,随后调用in.nextInt()或者in.nextDouble等进行输入,输入的方法有多种例如整型,浮点型等多种。
import java.util.Scanner;
Scanner in=new Scanner(System.in);
a=in.nextInt();
2.Random类和Math类的random()方法都能产生随机数,这两种方式有什么区别,各有什么特点呢?
直接调用Math.random()是产生一个[0,1)之间的随机数,然而用
import java.util.Random;
Random rand=new Random();
a=random.nextInt();
这样产生的是一个整形随机数,而且运用random()方法产生的随机数可以控制随机数的范围,比如a=rand.nextInt(100);表示的就是随机产生0-100的随机整形数。
二.总结
比如猜数游戏中就是引用了产生整形随机数。
程序设计思路:首先调用产生随机数的函数money=rand.nextInt(100);产生一个整形价格然后再调用输入函数in.nextInt();输入一个猜的价格,如果猜大了提示一下,猜小了也提示,总共有10次机会。
再此个程序中没有遇到难解的问题,编写的挺顺利。
import java.util.Random;
import java.util.Scanner;
public class Caishu {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
Random rand=new Random();
int money,cai,i=1;
money=rand.nextInt(100);
System.out.println("请输入猜的价格?");
cai=in.nextInt();
while(i<=10)
{
if(cai>money){
System.out.println("猜大了!");
i++;
}
else if(cai<money){
System.out.println("猜小了!");
i++;
}
else{
System.out.println("猜对了!它的价格是:"+ money);
System.out.println("猜的次数为:"+ i);
break;
}
System.out.println("请输入猜的价格?");
cai=in.nextInt();
}
if(i>10){
System.out.println("商品价格为:"+ money);
}
}
}
万年历
设计思路:其中已知1900年1月1日是星期一,从此天算起到所输入日期的总天数,然后再用totaldays%7公式算出今天是星期几。
遇到的问题:算出的总天数不对
解决思路:可能是闰年判断不当
修改后天数正确,可以求得其是周几。
程序如下
******
import java.util.Scanner;
public class Rili {
/**
* @param args
*/
public static void main(String[] args){
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int year,month,day,a=0,c=0,d=0,i,totaldays,xingqi;
System.out.print("请输入年份:");
year=in.nextInt();
if(year<1900){
System.out.println("输入的年份错误,应比1900大或者等于1900,请重新输入!:");
year=in.nextInt();
}
else{
for(i=1900;i<year;i++){
if(i%4==0&&i%100!=0||i%400==0){
a+=366;
}
else {
a+=365;
}
}
}
System.out.print("请输入月份:");
month=in.nextInt();
while(month>12){
System.out.println("月份输入错误,应小于等于12,请重新输入!");
month=in.nextInt();
}
if(month==1){
c+=0;
}
else{
for(i=1;i<=month-1;i++){
if(i==1||i==3||i==5||i==7||i==8||1==10||i==12){
c+=31;
}
else if(i==4||i==6||i==9||i==11){
c+=30;
}
else if(i==2){
if(year%4==0&&year%100!=0||year%400==0){
c+=29;
}
else{
c+=28;
}
}
}
}
System.out.print("请输入日:");
day=in.nextInt();
if(month==2){
if(year%4==0&&year%100!=0||year%400==0){
while(day>29){
System.out.print("输入的日错误,应小于等于29,请重新输入!:");
day=in.nextInt();
}
d+=day;
}
else{
while(day>28){
System.out.print("输入的日错误,应小于等于28,请重新输入!:");
day=in.nextInt();
}
}
d+=day;
}
else{
while(day>31){
System.out.print("输入的日错误,应小于31,请重新输入!:");
day=in.nextInt();
}
d+=day;
}
totaldays=a+c+d;
xingqi=totaldays%7;
System.out.print("总天数" + totaldays);
System.out.print("今天是星期" +xingqi);
}
}
历史截图为
******
*************
本周进度条
| | 代码行数(新增/累积)|学习时间(新增/累积)|本周学习内容|
| -------- |:----------------:|:----------------:|:------------:|
| 目标 | 5000行 | 300小时 | |
| 第2-4周 | 300/200 | 30/25 | 学习了Java基本基础,编写了基本程序 |
| 第5周 | | | |
| 第6周 | | | |