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 ...
随机推荐
- Python与R的区别和联系
转自:http://bbs.pinggu.org/thread-3078817-1-1.html 有人说Python和R的区别是显而易见的,因为R是针对统计的,python是给程序员设计的,其实这话对 ...
- 初学Python的一些细节
一.python的数据类型 1.python的基本数据类型包括数值数据类型和字符串数据类型:基本数据类型的特点是不允许改变,如果改变基本数据类型的值,会导致内存的重新分配. int 整形 二进制 ...
- XVII Open Cup named after E.V. Pankratiev. GP of Moscow Workshops
A. Centroid Tree 枚举至多两个重心作为根,检查对于每个点是否都满足$2size[x]\leq size[father[x]]$即可. #include<stdio.h> # ...
- XV Open Cup named after E.V. Pankratiev. GP of Three Capitals
A. Add and Reverse 要么全部都选择$+1$,要么加出高$16$位后翻转位序然后再补充低$16$位. #include<stdio.h> #include<iostr ...
- Thinkphp3.2.3加载外部类并调用类里面的方法 获取token
例如:加载七牛上传类(thinkphp自带的) $qiniu = new \Think\Upload\Driver\Qiniu\QiniuStorage($setting['driverConfig' ...
- JS对象1
1 String对象 字符串创建 (1) 直接创建 var s="hello"; console.log(s); console.log(typeof s) >> he ...
- Vue重修02
1.v-for的优先级比v-if/v-show都大 v-bind也可以绑定自定义的属性 2.父组件向子组件传值 <!DOCTYPE html> <html lang="en ...
- redis安装(单节点)
# tar -zxvf redis.tar.gz # cd redis 安装(使用 PREFIX 指定安装目录): # make PREFIX=/usr/local/redis install 安装完 ...
- 关于 vuex 的使用忠告
第一.看明白这张图在说话 简单解释一下,actions接收到components的行为后actions请求api 等获取数据,提交到mutations,然后mutations中才改变state ,反映 ...
- llinux挂载多个光驱
因为u盘量产,一个u盘两启,所以linux需要访问多个cdrom(一个物理光驱,一个虚拟光驱),本来一位无法使用,看了看/dev目录下面, [root@linux-node3 cdrom]$ ll / ...