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

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

姓名: XXXX          班级: XXXXXXX          学号: XXXXXXXXXXXX

一、实验目标

在集成开发环境下,依照Java语言的基本语法编译和执行简单Java的程序,通过本次实践环节理解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();
        }
    }

四、预习遇到的问题

 对于基础知识的掌握并不太够,导致在问题分析时可能不是最优策略,由于对于问题的理解不同也与别人的方案存在着较大出入。但是实验就是为了发现问题以及解决问题。并且因为是实验所以更充满着许多不确定性,所以哪种方案是对的也犹未可知,正因为实验的不确定性才使着实验具有吸引力,实践出真知。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值