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 ...
随机推荐
- 记一次Mysql魔鬼实训
1.查看某个Mysql数据库当前使用的字符集 show create database [库名称] 2.查看当前书库版本信息 #mysql -V MariaDB [(none)]> use my ...
- 2018-2019-1 20189201 《LInux内核原理与分析》补漏_1125写
我的愿望是 好好学习Linux 一.题目与解释 1 test.txt 中的内容是: No Name Mark Percent 01 tom 69 91 02 jack 71 87 03 alex 68 ...
- 15,EasyNetQ-高级API
EasyNetQ的使命是为基于RabbitMQ的消息传递提供最简单的API. 核心IBus接口有意避免公开AMQP概念,如交换,绑定和队列,而是实现基于消息类型的默认交换绑定队列拓扑. 对于某些场景, ...
- yum clear all无反应
卸载重装yum 操作系统版本:centos7 [root@linux-node3 ~]# uname -r 3.10.0-514.el7.x86_64 一.将现有的yum源卸载 [root@linux ...
- matplotlib 命令行画图保存
服务器上没有图形界面,需要用matplotlib画图并直接保存成图片,然后下载到客户端查看. 1. 首先安装matplotlib: python -m pip install -U matplotli ...
- bat入门--第一个bat文件
所谓的批处理就是从记事本开始进行的. 1.新建一个记事本文件, 2, 打开的记事本上敲入一行字:@echo off 意思:隐藏以下输入的代码(off改成on是打开代码显示). 3.再输入:echo h ...
- “扩展域”与"边带权"的并查集
https://www.luogu.org/problemnew/show/P1196 银河英雄传说 #include<bits/stdc++.h> using namespace std ...
- ubuntu重复登录问题
第一次遇到: 昨天好不容易装好了驱动,紧接着装了CUDA,cuDNN,Anaconda,VSCode等等.然后安装pytorch的时候遇到了下载的问题,后来也算搞定了.但是在更换了显示器后重启(好像是 ...
- php 获取 两个时间戳之间 相隔 【多少年】 【 多少个月】 【多少天】 【 多少个小时】 【多少分】【 多少秒 】
/** * 返回两个时间的相距时间,*年*月*日*时*分*秒 * @param int $one_time 时间戳一 大的时间戳 * @param int $two_time 时间戳二 小的时间戳 * ...
- 1python简介
02 python和03 python的区别: python:优美,清晰,简单. python2x: 源码重复,混乱,冗余. 源码不规范. python3x: 源码整合,优美,清晰 ...