实验一 java基础编程(预习报告)
作者:互联网
面向对象——Java实验报告
实验一:
Java基础编程
实验一 java基础编程(预习报告)
<center>
<strong>姓名:</strong>
<u>XXX</u>
  
<strong>班级:</strong>
<u>XXXXX</u>
  
<strong>学号:</strong>
<u>XXXXXXXXXXXX</u></center>
一、实验目标
(1)能够运用集成开发工具开发简单的Java程序,理解java语言的语法规则;
(2)能够利用Java语言解决实际问题,进一步熟悉和掌握java语言的程序设计的方法。
二、实验环境
IntelliJ IDEA Community Edition 2021.1 x64 + openjdk-16.0.1
三、实验准备
- 小明带了
20元
来商店买一本书,剩余的钱还可以买哪种商品?可以购买几件?剩余多少钱?
**问题分析:**一本书的价格为10元,在购买完书之后还可以购买其他商品的数量的计算过程中,我觉得可以采用枚举的方式逐项枚举每件商品可能的数量。并使用判断语句以保证可能的数量的价值不会超过剩余金额。并通过计算已有商品的价值来计算余额。
money =20 for(橡皮) for(尺子) for(牛奶) for(书) {sum=n*price(橡皮)+m*price(尺子)+i*price(牛奶)+j*price(书); if sum<money-price(书): 余额=money-price(书)-sum; 输出数量与余额; }
- 利用switch语句将学生成绩分为优秀
(90-100分)
、良好(80-89)
、中(70-79)
,及格(60-69)
和不及格(<60)
。
**问题分析:**使用输入语句对分数进行输入然后进行除以十以划分等级。
switch (score){ case 10: case 9:"优秀";break;//90-100分 case 8:"良好";break;//80-89分 case 7:"中";break;//70-79分 case 6:"及格";break;//60-69分 default:"不及格";break;//<60分 }
注意及时使用break语句,(break在switch(开关语句)中在执行一条case后跳出语句的作用。)
- 定义一个
计算器类
,该类中包含加、减、乘、除
4个静态方法,并定义一个测试类
,调用对应的方法进行四则运算。
**问题分析:**本题目的两个实验目标点,分别实现计算器类与测试类,在计算器类之中还包含了加、减、乘、除四个静态方法。因此其应该有以下结构。
//计算器类结构 class Calculator { public static int add(int n, int m) ; public static int sub(int n, int m) ; public static int mult(int n, int m) ; public static int div(int n, int m) ; }
在测试类这一方面我有两种方案,一种是直接测试所有函数,一种则偏向于较能真实的计算器模式。
//直接测试 class test { public static void testCa() { Calculator cA = new Calculator(); 输入n,m; System.out.println("add:"+cA.add(n, m)); System.out.println("mult:"+cA.mult(n, m)); System.out.println("sub:"+cA.sub(n, m)); System.out.println("div:"+cA.div(n, m)); } } //提供用户选择 class test { public static void testCa() { Calculator cA = new Calculator(); Scanner cin = new Scanner(System.in); 输入m,n; System.out.println("please input your choice:(+ - * /)"); int choice = cin.next().charAt(0); switch (choice) { case '+': System.out.println(cA.add(n, m)); break; case '*': System.out.println(cA.mult(n, m)); break; case '-': System.out.println(cA.sub(n, m)); break; case '/': System.out.println(cA.div(n, m)); break; } } }
- 打印
100-999
以内的水仙花数(水仙花数即每个位数上数字的3次幂
之和等于数字它本身,如153=1*1*1+5*5*5+3*3*3)。
**问题分析:**水仙花数=每个位数上数字的
3次幂
之和;可分析为:
nmi=n*n*n+m*m*m+i*i*i
,则是求每位数字mod(10)的结果,则其结构为while (N > 0) { int temp = N % 10; sum = sum + temp * temp * temp; N /= 10; }
定义
boolean
类型 函数isFlower(int n)
按其返回值进行输出,则完整结构应该为:public static boolean isFlower(int n) { int sum = 0; int N = n; while (N > 0) { int temp = N % 10; sum = sum + temp * temp * temp; N /= 10; } return sum == n; }
- 在类中定义一个静态方法
printStar
打印一颗树,该方法没有返回值,需要一个整形参数number定义树的高度,在主方法中调用这个方法,number值为5和10时得到下图的结果。
**问题分析:**分析其图形结构,当number=5时:其结构如下
* //在第i层在*的左侧共有number-i个' ' *** //在第i层共有2*i-1个'*' ***** ******* *********
因此其函数应该为以下结构:
public static void printStar(int number) { for (int i = 1; i <= number; i++) { 输出number-i个' '; 输出 2*i-1个'*'; System.out.println(); } }
四、预习遇到的问题
对于基础知识的掌握并不太够,导致在问题分析时可能不是最优策略,由于对于问题的理解不同也与别人的方案存在着较大出入。但是实验就是为了发现问题以及解决问题。并且因为是实验所以更充满着许多不确定性,所以哪种方案是对的也犹未可知,正因为实验的不确定性才使着实验具有吸引力,实践出真知。
标签:case,java,int,cA,编程,System,预习,break,println 来源: https://blog.csdn.net/m0_46230650/article/details/122549883