实验项目A、Java结构化基础和数组编程

一、实验目的

1、掌握Eclipse开发环境的基本使用。
2、掌握第一个Java程序的编写、编译和执行。
3、掌握控制台IO的基本使用。
4、掌握控制台格式化输出的实现。
5、掌握语言基础:常量、变量、运算符、表达式的使用。
6、掌握三种基本结构程序的基本组织和编写:顺序、选择和循环。
7、掌握程序排错的基本方法和技术、了解程序设计风格。
8、掌握一维数组的使用。
9、掌握二维数组的使用。

二、实验内容和主要步骤

1.准备开发环境
2.使用Eclipse IDE编写第一个Java程序(选做)
3.控制台IO实现程序
4.控制台格式化输出(课后完成)
5.数据类型、常量、变量的测试程序
6.运算符测试程序
7.分支结构的应用编程
8.循环结构的应用编程
9.使用一维数组读取并处理成绩
10.转置一个随机二维数组

 三、实验结论和思考

1、类名等标识符能否使用中文?这样做好不好?
答:可以,但不建议这样做,因为关键字几乎都是英文的,这样会使中英文混淆,导致代码可读性差。

2、利用java.util.Random类如何生成一个两位随机正整数,给出简单代码。
答:

import java.util.Random; 
import java.util.Scanner; 
    Random random = new Random(); // 生成随机数对象 
    int a = random.nextInt(90)+10; 

3、编写一个能够完成四则运算测试的交互程序。
具体需求有:
(1)每次执行程序,随机生成两个两位大于等于10的整数,假设为a和b。
(2)然后要求用户计算a+b、a-b、a*b和a/b(a整除以b)的值。
(3)计算完之后,综合给出用户的答题情况,包括:用户答案、正确答案、是否答对。
(4)假设每道算式25分,给出用户是否合格的结论(60分以上合格)。
(5)询问用户是否继续测试?按y键继续,按n键退出本测试程序。
作答要求:
(1)编写程序,在下方贴出程序代码。
答:package 实验1包; 

import java.util.Random;
  import java.util.Scanner;
  
 public class   GuessResult {
	 public void Test() {
		 Scanner input = new Scanner(System.in);
		 Random random = new Random(); // 生成随机数对象
		 int score=0;//定义得分变量
		 int a = random.nextInt(90)+10; //随机生成20以内运算数存入a中
		 int b = random.nextInt(20); //随机生成20以内运算数存入b中
		// 显示运算式,并输入答案
		 System.out.println("请输入以下各算式的计算结果");
		 System.out.printf("%d + %d =", a, b);
		 int result1 = input.nextInt(); // 输入答案
		 System.out.printf("%d - %d =", a, b);
		 int result2 = input.nextInt();
		 System.out.printf("%d * %d =", a, b);
		 int result3 = input.nextInt();
		 System.out.printf("%d / %d =", a, b);
		 int result4 = input.nextInt();
		 if(result1==(a+b)) {
			 score+=25;
			 System.out.printf("(1)恭喜你答对了,得分25分!\n");
		 }
		 else
			 System.out.printf("(1)很遗憾答错了,正确答案是:%d\n",a+b);
		 
		 if(result2==(a-b)) {
			 score+=25;
			 System.out.printf("(2)恭喜你答对了,得分25分!\n");
		 }
		 else
			 System.out.printf("(2)很遗憾答错了!正确答案是:%d\n",a-b);
		 
		 if(result3==(a*b)) {
			 score+=25;
			 System.out.printf("(3)恭喜你答对了,得分25分!\n");
		 }
		 else
			 System.out.printf("(3)很遗憾答错了!正确答案是:%d\n",a*b);
		 
		 if(result4==(a/b)) {
			 score+=25;
			 System.out.printf("(4)恭喜你答对了,得分25分!\n");
		 }
		 else
			 System.out.printf("(4)很遗憾答错了!正确答案是:%d\n",a/b);
		 
		 if(score>=60)//分数60分以上为合格
			 System.out.println("---恭喜你,此次测验合格通过,再接再厉哦---");
		 else
			 System.out.println("很遗憾,此次测验不合格,请继续努力");
	 }
     public static void main(String[] args) {

            Scanner input = new Scanner(System.in);
            GuessResult  d=new GuessResult ();

            d.Test();
            System.out.println("<<您是否要继续参与测试?继续请按y健,退出请按n健>>"
                    + "");

            char c = input.next().charAt(0);//键入y值或n值

            if(c=='y') {
                System.out.println("请继续参与测试");
                d.Test();
            }
            else {
                input.close();
                System.out.println("已退出测验");
            }
        }
}
 

(2)执行程序,给出能够说明问题的执行截图。
答:

4、编写补充完成“使用一维数组读取并处理成绩”的DealScore程序。
其中有6个方法和主方法需要补充,请按以下顺序作答完成。
作答要求:
(1)在DealScore中:public static void show(double[] ascore)方法被补充正确代码后其完整的截图(不是源代码,是源代码截图)如下。
答:


(2)在DealScore中:public static double getSum(double[] ascore)方法被补充正确代码后其完整的截图(不是源代码,是源代码截图)分别如下。
答:


(3)在DealScore中:public static double getAvg(double[] ascore)方法被补充正确代码后其完整的截图(不是源代码,是源代码截图)分别如下。
答:


(4)在DealScore中:public static double getMax(double[] ascore)方法被补充正确代码后其完整的截图(不是源代码,是源代码截图)分别如下。
答:

(5)在DealScore中:public static double getMin(double[] ascore)方法被补充正确代码后其完整的截图(不是源代码,是源代码截图)分别如下。
答:


(6)在DealScore中:public static void descSort(double[] ascore)方法被补充正确代码后其完整的截图(不是源代码,是源代码截图)分别如下。
〖提示:升序排序已经做好,它使用了实用类Arrays.sort。那么降序如何实现呢?〗
答:


(7)在DealScore中主方法中如下注释行处:

                      

需要补充代码,将正确代码粘贴到下面。
〖提示:这是主方法中的空缺代码,需要结合上下文仔细通读,会明白这里缺什么?〗
答:

5、编写补充完成“转置一个随机二维数组”的Reverse2dArray程序。
其中有2个方法需要补充,请按以下顺序作答完成。
作答要求:
(1)在Reverse2dArray中:public Reverse2dArray(int r, int c)构造方法被补充正确代码后其完整的截图(不是源代码,是源代码截图)如下。
答:

 


(2)在Reverse2dArray中:public int[][] reverse2dArray()方法被补充正确代码后其完整的截图(不是源代码,是源代码截图)如下。
答:

(3)执行正确补充完成的Reverse2dArray程序,并将一次执行结果的截图粘贴在下面。
答:

四、实验心得(必须填写)

        在做DealScore.java这个程序补充代码的第一小题时,对于 显示double数组ascore中的成绩,用空格分隔 ,我就一直思维惯性地选择用System.out.println格式化输出,一直想不出来该怎样实现不换行输出且数组元素间空格隔开,后就重新去翻看书,才发现自己把另一种格式化输出.print给忘了,这种可以实现输出元素不换行,并且用字符串连接语句实现空格间距。在做如何利用升序方法写出降序方法时。我冥思苦想,硬是毫无头绪,偶然间看到冒泡排序的元素交换法,就给了我很大的灵感。我便直接将升序后的结果进行头尾交换顺序,就完成了降序功能。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tang_Fxiao_tang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值