前言
咳咳,你们开学了吗,反正我没有,害,不能一直颓废下去呢,所以呢,我觉得针对Java实训做一次全面的复习,一共12章,希望木木能都坚持下来,啊哈哈哈哈哈哈哈。
第一关:简单的无输入输出给定图案
- 咳咳,样式如图:
public class Test1 {
public static void main(String[] args) {
System.out.println(" *");
System.out.println(" ***");
System.out.println(" *****");
System.out.print("*******");
}
}
- 我赌两毛钱,绝对会有人说:”卧槽,这也太水了吧“。咳咳,我想说哈,并不是我想水文章的,而且再简单咱们也要写不是,还别说,这道题,木木第一次写还错了,啊哈哈哈哈哈哈哈。
- 注意点在于最后一行没有换行的,所以木木下次答题前一定会仔细看输出样式再答题的,害!太菜了我。
第二关:无输入求多边形的面积
- 任务描述:计算一个由正方形和等腰三角形组成的多边形的面积,其中正方形边长 4 厘米,等腰三角形底边为正方形的一条边,其到对角顶点的高为 2.6 厘米。
- 输出格式:该多边形的面积为 xxx
- xxx 为多边形的面积。
public class Test2 {
public static void main(String[] args) {
int square_length = 4;
double triangle_h = 2.6;
double area_square = square_length * square_length ;
double area_triangle = square_length * triangle_h / 2.0;
double area_total = area_square + area_triangle;
System.out.print("该多边形的面积为 " + area_total);
}
}
- 个人感觉,这个题还是没有难点的哦~
- 特别注意点就是在算三角形面积的时候为了保证是浮点型,要除以2.0哦,否则你会裂开。啊哈哈哈哈哈哈哈,走走走,下一个。
第三关:无输入求平抛小球与抛出点之间的距离
- 一小球以 10 米/秒的水平速度平抛,重力加速度取 9.8 米/秒^2 ,在忽略空气阻力的情况下,求经过时间 3 秒后,小球所在位置与抛出点之间的距离 (假设小球距地面足够高)。
- 输出格式:小球所在位置与抛出点之间的距离为 xxx 米。
public class Test3 {
public static void main(String[] args) {
double g = 9.8; // 声明浮点型变量 g,用于表示重力加速度
int v0 = 10; // 声明整型变量 v0, 用于表示水平初速度
int t = 3; // 声明整型变量 t, 用于表示小球飞行的时间
double s = v0 * t; //平抛运动经过 t 秒的水平位移s计算公式
double h = g * t*t / 2.0; //垂直方向位移hh的计算公式
double d = Math.sqrt(s*s + h*h);
System.out.print("小球所在位置与抛出点之间的距离为 "+ d + " 米。");
}
}
- 这不得不说呀,学这个,数学还是重要的,嘻嘻,还好公式题目有给,不然木木肯定又要去上度娘了。
- 还有哦,求一个数的平方根用 Math.sqrt(); 咳咳,你学废了吗?
第四关:无输入求星期几
- 本关任务:2017 年 1 月 1 日是星期天,求 10 天后是星期几。
public class Test4 {
public static void main(String[] args) {
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 第一步:声明 int 型变量 pre,值为一周的总天数
int pre=7;
// 第二步:声明 int 型变量 sum,值为几天后加上周几(2017 年 1 月 1 日是周几)的值
int sum = 7 + 10;
// 第三步:求天数除以一周的天数的余数,这个余数就是10天后为周几的值了
int weeknum = sum % pre;
// 第四步:格式化输出这个值 如果结果是1,那么输出格式为:10天后是星期 1。
System.out.print("10天后是星期 " + weeknum + "。");
/********** End **********/
}
}
- 咳咳,这个题,我成功的又错了,啊哈哈哈哈哈哈哈,鬼知道后面还有一个句号。害!真的是,不去做,都不会知道,原来自己这么菜,emmmm
第五关:有输入格式化输出平抛小球与抛出点之间的距离
- 跟第三题呢,是一样的,只是我们要添加输入格式了。
import java.util.Scanner; //使用import导入
public class Test5 {
public static void main(String[] args) {
double g = 9.8;
Scanner reader = new Scanner(System.in);
double v0 = reader.nextDouble(); //要啥类型后面就跟啥类型哈
int t = reader.nextInt();
double s = v0 * t;
double h = g * t*t / 2.0;
double d = Math.sqrt(s*s + h*h);
System.out.print(String.format("%.2f",d));
}
}
- 这题输入还好,后面的四舍五入真的真的烦,是的,我又翻车了,double类型算出直接输出老长一段了,系统给我GG。所以没办法,只能记下一个啦, String.format(“格式”,变量); 害,继续继续。
第六关:数学函数之求两数最大者
- 本关任务:获取键盘两次输入的值,输入两者中的最大数。
import java.util.Scanner;
public class Test6 {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
double a = reader.nextDouble();
double b = reader.nextDouble();
if(a<b)a=b;
System.out.print(a);
}
}
- 啊哈哈哈哈哈哈哈,一次过了,木木露出了欣慰的笑容。
第七关:数学函数之根据三角形三边长求面积
- 本关任务:根据从键盘输入的三角形的三个边长,求出三角形的面积,忽略三边长度不能组成一个三角形的情况,最后结果保留两位小数。
- 这里我们要用一下海伦公式哦!
import java.util.Scanner;
public class Test7 {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
int a = reader.nextInt();
int b = reader.nextInt();
int c = reader.nextInt();
double p = (a+b+c)/2.0;
double s = Math.sqrt(p*(p-a)*(p-b)*(p-c));
System.out.println("三角形的面积为:" + String.format("%.2f",s));
}
}
- 所以说呀,孰能生巧,现在这东西已经难不倒我啦,啊哈哈哈哈哈哈哈。
第八关:数学函数之三角函数
- 本关任务:从键盘输入的值分别为三角形的 a、b 两条边长和两边夹角 C 的角度,求出该三角形的面积,请对最终结果保留两位小数。
- 面积公式就用 s = 1/2 * a*b *sinC 哦。
import java.util.Scanner;
public class Test8 {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
double a = reader.nextDouble();
double b = reader.nextDouble();
double c = reader.nextDouble();
double radians = Math.toRadians(c); //记得要转化为弧度呢,不然会有偏差的
double C = Math.sin(radians);
double s = a*b*C/2.0;
System.out.format("%.2f",s); //写着写着,原来这样也可以。舒服了
}
}
- 这个题就是要注意一下角度和弧度之间的转换啦,不然出现偏差你又要怪eclipse是个垃圾东西了,啊哈哈哈哈哈哈哈,人家eclipse挺好的。记得了, Math.toRadians();
第九关:字符变换之大小写字母转换
- 本关任务:将键盘输入的大写字母转化为小写字母。
import java.util.Scanner;
public class Test9 {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
String s = reader.next(); //先输出一串字符串
char c = s.charAt(0); //然后我们再截取第一个值
c = (char)(c+32);
System.out.print(c);
}
}
- 原本以为很简单,但是一开始做就发现,怎么出入一个字符呀,害,找了许久,还是觉得这样子比较好,你学废了吗?啊哈哈哈哈哈哈哈。
第十关:基本数据类型转换
- 本关任务:变量 a 是一个 double 型的变量,请将其强转为 int 型,变量 b 是一个 short 型的变量,请将其转换为 double 型。
import java.util.Scanner;
public class Test10 {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
double a = reader.nextDouble();
short b = reader.nextShort();
int c = (int )a;
double d = b;
System.out.println(c);
System.out.print(d);
}
}
- 咳咳,这里有个地方是要注意的,就是当小的类型去接大的类型的时候,需要先将大的类型给强制转换掉,但是用大的数据类型去接是可以直接赋值的哦。奥里给!!!
第十一关:银行复利计息收益计算
- 本关任务:假定一个用户每月向一个储蓄帐户中存 1000 元人民币,年利率为 2.25%。那么月利率为 0.0225/12=0.001875。第一个月后,账户金额变为 1000*(1+0.001875)=1001.875,第二个月后,账户金额变为 (1001.875) *(1+0.001875)=1003.753516,依次类推。编写一个程序,输出 6 个月后的账户金额。
public class Test11 {
public static void main(String[] args) {
double s = Math.pow((1+0.001875),6);
System.out.format("%.2f",s*1000);
}
}
- 这个题目应该是学会怎么用pow求阶乘之类以后,复习了复习了,好兄弟们,啊哈哈哈。
第十二关:温度换算
- 本关任务:编写一个程序,依次将摄氏温度为 1°、2°、3°、4°、5° 转化为对应的华氏温度,将该值四舍五入保留两位小数后格式化输出, 摄氏温度和华氏温度转换公式如下:
- 华氏温度 = ( 9/5 ) × 摄氏温度 + 32。
- 输出格式例子:摄氏温度为20时,华氏温度为68.00。
public class Test12 {
public static void main(String[] args) {
int []a = {1,2,3,4,5};
for(int i=0;i<a.length;i++) {
double s = 9/5.0*a[i] + 32;
System.out.print("摄氏温度为" + a[i] +"时,华氏温度为"+ String.format("%.2f", s) + "。");
if(i!=a.length-1)System.out.println();
}
}
}
- 嘿嘿,想难我,不可能,啊哈哈哈哈哈哈哈。
- 有时候题目会要求你自己写一个公共类,并给你名字哦,我这里直接用Text12了,记得改哦。
第十三关:金融投资收益计算
- 本关任务:编写程序,读入投资额、年利率和投资年限,利用下面公式计算投资的未来价值:
- 未来价值 = 投资额×(1+月利率)^{12*年数}未来价值=投资额×(1+月利率) 12∗年数。
- 例如,如果输入投资额 1000、年利率 0.0325 和投资年限 1 年,则程序输出投资的未来价值为 1032.98 。
import java.util.Scanner;
public class Test13 {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
double s = reader.nextDouble();
double y = reader.nextDouble();
int cnt = reader.nextInt();
y = y/12.0;
double m = Math.pow((1+y),cnt*12) ;
System.out.format("%.2f",s*m);
}
}
- 咳咳,这个题你有没有好好看题目呢,上面写的是月利率哦,但是我们的输入缺失年利率哦,啊哈哈哈哈哈哈哈,我都忍不住要夸一句了,你真细,啊哈哈哈哈哈哈哈。
- 其余的还好啦,嗯嗯,加油哦!
咳咳,马宁老师的Java实训还是给力的。反正第一章让我们舒服了,啊哈哈哈哈哈哈哈。
明天继续第二章的奋斗。你也要加油哦,咳咳,我先去忍忍了,嘿嘿。