ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

实验一 java基础编程(预习报告)

2022-01-17 22:33:45  阅读:139  来源: 互联网

标签:case java int cA 编程 System 预习 break println


面向对象——Java实验报告

实验一: Java基础编程

实验一 java基础编程(预习报告)

<center> 
<strong>姓名:</strong> 
<u>XXX</u> 
&emsp;&emsp;
<strong>班级:</strong> 
<u>XXXXX</u> 
&emsp;&emsp;
<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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有