程序进程逐步显示,并可以控制停止和继续

 

 

用户用你的程序读入一个数组文件 (就像我们以前做过的那样),显示初始状态 (就像围棋打谱程序那样)
 
 1.1. 用户也可以自行定义数组的大小,或者要求随机生成一个数字矩阵。
 
2. 用户这时候有两个选择
 
 2.1  按 单步执行 键, 在 GUI 看到你的程序是如何一步一步算出目前最大子数组的范围,当前计算到的临时子数组是在哪里,等等。 最好用不同的颜色标识不同的状态。
 
 2.2  按 自动运行 键, 在 GUI 看到程序自动运行,并自动显示过程, 每次改变状态的时候要稍作停留 (例如 1 秒钟的时间)
 
3.  这时最好有一个 倒带 / 回滚 的键, 让用户可以看清楚关键的几步。
 
(当然,用户可以选择是普通模式还是扩展定义的连通模式)

 

以上是老师所描述的用户需求

我认为,这个东西很简单

首先调出原来的程序代码,由于重装电脑,需要重新在控制台设置,import。

然后根据我的想法我仅仅插入了一些输出代码,以及定义了一个定义。

package 数组;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Random;
import java.util.Scanner;

import javax.sound.sampled.Line;
import javax.swing.plaf.basic.BasicInternalFrameTitlePane.MaximizeAction;

public class main {


    public static void main(String[] args) {
        
        int[] A=new int[10];
        Scanner in=new Scanner(System.in);
//        for(int i=0;i<10;i++)
//        { 
//                    A[i]=in.nextInt();
//        }
        
        int[] B={4,-2,3,4,-5,-6,1,-8,-9,2};
        
        main a=new main();
        
        System.out.println(a.max(B, 10)); 
    }
/*
 * @param A
 * @param n
 * @return
 */
public int max(int[] A,int n)
{ int k=1;
    int end=A[0];
    int sum=A[0];
    int m=0;
    int nn=0;
    for(int i=0;i<n;i++)
    {
        //sum=A[i]; 
        
        for(int j=i+1;j<n;j++)
        {
            
            System.out.print("已检查"+k+++"个子数组,  最大子数组和为:"+end+";  "); 
            
            //System.out.println(sum); 
            sum+=A[j];
            if(sum>end)
                {
                end=sum;
                m=i;
                nn=j;
                }
            System.out.print("子数组为[");
            for(int p=m;p<nn+1;p++)
                System.out.print(A[p]+",");
            System.out.print("]");
            System.out.print("
");
            //System.in.read();
            
        }
        
    }
    return end;
}
原文地址:https://www.cnblogs.com/zql98/p/10775613.html