题目:

一个典型的流程是:
2. 用户这时候有两个选择
2.1  按 单步执行 键, 在 GUI 看到你的程序是如何一步一步算出目前最大子数组的范围,当前计算到的临时子数组是在哪里,等等。 最好用不同的颜色标识不同的状态。
2.2  按 自动运行 键, 在 GUI 看到程序自动运行,并自动显示过程, 每次改变状态的时候要稍作停留 (例如 1 秒钟的时间)
3. 最好有一个 倒带 / 回滚 的键, 让用户可以看清楚关键的几步。

方法

将步骤存为数组遍历输出,再根据单,特定来进行操作

代码

package yiweishuzu;import java.util.Scanner;public class Shuzu {public static void main(String[] args){int n=0;int LONG=20;//数量int FANWEI=10;//   n  :    -n   ~   +nint step = 0;int number = 0;int a=1;Scanner input=new Scanner(System.in);String[] Content = new String[LONG];int [] num=new int[LONG];int []kuai=new int[LONG];System.out.println("原数组:");for(int k=0;k<LONG;k++){num[k]=(int)(1+Math.random()*FANWEI*2)-FANWEI;System.out.println(num[k]);}System.out.println("—————————————————————————————————————————————————————————————————————————————");//int [] num= {1,8,5,-6,9,-7,-9,4,5,-9,-3,4,-5,4};int i=0,t=0;int sum=0,max=0,aMax=num[0];//从第一个开始加直到最大,中途记录for(i=0;i<num.length;i++)//起始
        {Content[i] = "当前执行第 "+i+" 步,\n";t=0;max=num[t];//赋初值for(sum=num[t+i];t<num.length-i-1;t++)//加
            {if(max<=sum)//比较,记录最大
                {max=sum;}//System.out.println(sum);sum=sum+num[t+1+i];int s=i+t;Content[i]+="已经检查 "+(n++)+" 个子数组,";Content[i]+="从下标 "+i+" 到 "+s+" 的子数组总和是:"+sum+",\n";}if(aMax<=max){aMax=max;}//System.out.println("");Content[i]+="到第 "+i+" 步为止的最大子数组和为:"+aMax+"\n";}System.out.println("END:"+aMax);System.out.println("————————————————————————————————————————————————————————————————————————————");System.out.println("请输入操作");System.out.println("1.直接运行\n2.单步运行\n3.跳转到指定步骤\n4.退出\n");do{try{number = input.nextInt();}catch(Exception e){System.out.println("请输入整型序号");}switch(number){case 1:for(int k=step;k<LONG;k++){System.out.println(Content[k]);try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch block
                            e.printStackTrace();}}step = LONG-1;break;case 2:System.out.println(Content[step]);break;case 3:System.out.println("请输入步骤数");step = input.nextInt();System.out.println(Content[step]);break;case 4:return;default:System.out.println("请输入正确的序号");break;}if(step < LONG-1){System.out.println("1.直接运行(剩余步骤)\n2.单步运行(剩余步骤)\n3.跳转到指定步骤(剩余步骤)\n4.退出\n");step++;}if(step == LONG-1){String judge = null;System.out.println("————————————————————————————————————————————————————————————————————————————");System.out.println("运行步骤已全部执行完,是否回到初始页面(Y/N)");judge = input.next();switch(judge){case "Y":step = 0;System.out.println("1.直接运行\n2.单步运行\n3.跳转到指定步骤\n4.退出\n");break;case "N":return;default:System.out.println("请输入正确的字母");break;}}}while(a==1);for(int k=0;k<LONG;k++){System.out.println(Content[k]);}}
}

转载于:https://www.cnblogs.com/love-nan/p/10771723.html

Java课堂测试——一维数组相关推荐

  1. 【java基础】——一维数组和二维数组存储占用内存大小问题

    问题:在java中,一维数组和二维数组在数据量一样的情况下,开辟的内存大小是怎样的? 一.尝试阶段: 1.代码一: public class OneArrayMemory{public static ...

  2. java基础5 (一维)数组和二维数组

    本文知识点(目录): 一维数组(一维数组的概念.优点.格式.定义.初始化.遍历.常见异常.内存分析以及常见操作(找最大值.选择排序.冒泡排序等等))     二维数组(二维数组的遍历.排序.查找.定义 ...

  3. Java——动态创建一维数组和二维数组

    一.数组的定义: 整数型一维数组:int[] a;或 int a[];        a = new int[m];(m为数组元素个数) 整数型二维数组:int[][] a;或 int a[][];或 ...

  4. Java中的一维数组和二维数组

    Java中的数组 常用的就是一维数组.二维数组. 一维数组 数组定义:数据就是相同数据元素的集合. 数组是一种引用数据类型.不属于基本数据类型. (1) 如何定义(声明)一维数组? 声明格式:数据类型 ...

  5. Java 中的一维数组以及二维数组(8千字零基础超全详解)

    文章目录 前言 一.一维数组 1. 数组的初始化 1.1 动态初始化一 1.2 动态初始化二 1.3 静态初始化 2. 数组使用的注意事项和细节 3. 经典例题 4. 数组赋值机制(重难点!) 5. ...

  6. java正确定义一维数组_java一维数组定义,创建一维数组详解

    前面给大家介绍了一下什么是java数组,下面要接着给大家介绍的就是java一维数组定的定义以及创建一维数组方面的知识. 数组当中的每个元素都只带有一个下标的时候,这样的数组就是一维数组,一维数组实质上 ...

  7. java两个一维数组相加求和_数组求和统计

    # # 代码中的类名.方法名.参数名已经指定,请勿修改,直接返回方法规定的值即可 # # 计算有多少对符合条件的数对 # @param a int整型一维数组 数组a # @param b int整型 ...

  8. 【java】使用一维数组实现评委打分功能

    /**作者:筱筱*功能:1.跳水比赛,10个评委打分.运动员的成绩是10个成绩去掉一个最高分.去掉一个最低分,* 剩下的8个分数的平均分就是最后得分.使用一维数组实现打分功能.* 2.请把打最高分的评 ...

  9. Java课堂测试01及感想

    上周进行了Java的开学第一次测验,按要求做一个模拟ATM机功能的程序,实现存取款.转账汇款.修改密码.查询余额的操作.这次测验和假期的试题最大的不同还是把数组存储改成的文件存储,在听到老师说要用文件 ...

最新文章

  1. python学到什么程度可以写爬虫-刚开始学习 Python 到可以写出一个爬虫大约需要多长时间...
  2. 人力资源oracle,Oracle Connections
  3. 谁说菜鸟不会数据分析--读书笔记
  4. UVA1584 ​​​​​​​Circular Sequence【字符串】
  5. 笨办法学 Python · 续 第七部分:大作业
  6. nodejs系列笔记02---模块路径解析
  7. Powershell都有哪些好用的技能?
  8. php 取字符串的首字母,php取得字符串首字母的方法,php取得字符串_PHP教程
  9. ENVI 5.6/IDL 8.8 新特性介绍
  10. Phalcon调试大杀器之phalcon-debugbar安装
  11. Geolocation API
  12. linux addr2line使用手册,addr2line 命令使用方法
  13. 江苏扬州|2021年起,高支模须用盘扣式钢管支架!
  14. canvas中文文档参考
  15. 部署JAX-WS Web服务作为战争中的Apache Tomcat(Deploying JAX-WS webservice as War in Apache Tomcat)...
  16. Deep Learning for Modulation Classification: Signal Features in Performance Analysis解读
  17. 浏览器保存下载不带后缀的图片文件名命名规则
  18. Movement Disorders脑电格兰杰因果分析:运动皮质在帕金森病复发性震颤中的作用
  19. 嵌入式软件开发工程师要求
  20. windows 编辑器terminal出现ANOMALY: meaningless REX prefix used

热门文章

  1. 计算机图形学真实绘图实验报告,计算机图形学实验报告.doc
  2. aggr代码 cellranger_单细胞转录组测序数据分析流程-数据预处理
  3. hadoop 基础环境搭建(一)
  4. 网站推广中的优化雷区作为网站推广专员你了解多少?
  5. 企业网络推广——企业网络推广专员如何预估网站优化流量的增长?
  6. 分子排列不同会导致_原子或分子之间的作用力是什么力?
  7. python迷宫小游戏代码_C++课程设计迷宫小游戏
  8. android简化log输出方法
  9. 开发日记-20190712 关键词 读书笔记 《Perl语言入门》Day 8
  10. flask gevent uwsgi nginx 联合高并发 部署