Java课堂测试——一维数组
题目:
一个典型的流程是:
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=;
int LONG=;//数量
int FANWEI=;// n : -n ~ +n
int step = ;
int number = ;
int a=;
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=;k<LONG;k++)
{
num[k]=(int)(+Math.random()*FANWEI*)-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=,t=;
int sum=,max=,aMax=num[];
//从第一个开始加直到最大,中途记录
for(i=;i<num.length;i++)//起始
{
Content[i] = "当前执行第 "+i+" 步,\n";
t=;
max=num[t];//赋初值
for(sum=num[t+i];t<num.length-i-;t++)//加
{
if(max<=sum)//比较,记录最大
{
max=sum;
}
//System.out.println(sum);
sum=sum+num[t++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 :
for(int k=step;k<LONG;k++)
{
System.out.println(Content[k]);
try {
Thread.sleep();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
step = LONG-;
break;
case :
System.out.println(Content[step]);
break;
case :
System.out.println("请输入步骤数");
step = input.nextInt();
System.out.println(Content[step]);
break;
case :
return;
default:
System.out.println("请输入正确的序号");
break;
}
if(step < LONG-)
{
System.out.println("1.直接运行(剩余步骤)\n2.单步运行(剩余步骤)\n3.跳转到指定步骤(剩余步骤)\n4.退出\n");
step++;
}
if(step == LONG-)
{
String judge = null;
System.out.println("————————————————————————————————————————————————————————————————————————————");
System.out.println("运行步骤已全部执行完,是否回到初始页面(Y/N)");
judge = input.next();
switch(judge)
{
case "Y":
step = ;
System.out.println("1.直接运行\n2.单步运行\n3.跳转到指定步骤\n4.退出\n");
break;
case "N":
return;
default:
System.out.println("请输入正确的字母");
break;
}
}
}while(a==);
for(int k=;k<LONG;k++)
{
System.out.println(Content[k]);
}
}
}
Java课堂测试——一维数组的更多相关文章
- java课堂测试2(两种方式)
实验源代码 这是不使用数组形式的源代码 /* 2017/10/10 王翌淞 课堂测试2 */import java.util.Scanner; public class Number { public ...
- java基础5 (一维)数组和二维数组
本文知识点(目录): 一维数组(一维数组的概念.优点.格式.定义.初始化.遍历.常见异常.内存分析以及常见操作(找最大值.选择排序.冒泡排序等等)) 二维数组(二维数组的遍历.排序.查找.定义. ...
- Java课堂测试--实现ATM的基本操作体会
9月20的周四的Java课堂第一节课上就是有关于实现ATM的考试内容,在实现的过程中我了解到自己本身还是有很多的不足之处,例如在实现工程方面的相似性上面还有些许就的欠缺,再者就是回宿舍拿电源的原因导致 ...
- JAVA课堂测试之一位数组可视化
代码: package test;//求最大子数组 import java.util.Scanner; import javax.swing.JOptionPane; public class shu ...
- Java课堂测试01及感想
上周进行了Java的开学第一次测验,按要求做一个模拟ATM机功能的程序,实现存取款.转账汇款.修改密码.查询余额的操作.这次测验和假期的试题最大的不同还是把数组存储改成的文件存储,在听到老师说要用文件 ...
- java课堂测试
package 作业2; //信1805-1 杨一帆 20183608 public class ScoreInformation1 { private String stunumber; pr ...
- java课堂测试—根据模板完成一个简单的技术需求征集系统
课堂上老师发布了一个页面模板要求让我们实现一个系统的功能,模仿以后后端的简单工作情况. 然后在这个模板的基础上,提供了一个注册的网页模板,接着点击注册的按钮,发现register里面调用了zhu/zh ...
- java课堂测试样卷-----简易学籍管理系统
程序设计思路:分别建立两个类:ScoreInformation类(用来定义学生的基本信息以及设置set和get函数)ScoreManagement类(用来定义实现学生考试成绩录入,考试成绩修改,绩点计 ...
- 第十一周java课堂测试
Main.java package class_third_copy; import java.util.Scanner; import classthird.Test; import classth ...
随机推荐
- Redis数据结构之quicklist
本文及后续文章,Redis版本均是v3.2.8 我们在使用Redis对外暴露的list数据结构时,给我们带来极大的便利性.其底层实现所依赖的内部数据结构就是quicklist. 我们先来回忆下list ...
- UOJ#218. 【UNR #1】火车管理 线段树 主席树
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ218.html 题解 如果我们可以知道每次弹出栈之后新的栈顶是什么,那么我们就可以在一棵区间覆盖.区间求和 ...
- es elasticsearch-head安装
---恢复内容开始--- 参考 https://www.jianshu.com/p/36d7f97a20cd 1.下载安装git clone git://github.com/mobz/elastic ...
- FZU 2285 迷宫寻宝
思路: bfs求最短路径. #include<stdio.h> #include<iostream> #include<queue> #include<cst ...
- webpack 打包测试和生产多个版本
cross-env修改生产环境变量 npm i --save-dev cross-env 在package.json里这么配置 npm run build就是打包到生产环境 npm run build ...
- DWM1000 巧用Status 快速Debug
在Debug DWM1000 的时候,可以巧用Status 加快Debug,例如如下代码 if (status_reg & SYS_STATUS_RXFCG) { …… } else { sp ...
- poj2976 Dropping tests(01分数规划 好题)
https://vjudge.net/problem/POJ-2976 又是一波c++AC,g++WA的题.. 先推导公式:由题意得 Σa[i]/Σb[i]<=x,二分求最大x.化简为Σ(a[i ...
- Node.js_密码明文_密文_加密库_sha1
加密库 sha1 加密模块,能够将指定 明文 加密成一个长度相等的 密文 let pwd = 'qwe123456'; const secret = sha1(pwd); 同样的明文,加密得到同样的密 ...
- Java 中的字符串与 []byte 字节数组
一.字符串 1.比较 String.HashSet.List 中的 contains 方法 其中, String.List 都使用了 indexOf 方法,本质是遍历,时间效率为 O(n).而 Has ...
- table表格固定前几列,其余的滚动
我查了好多资料,只找到一个demo <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""h ...