zoukankan      html  css  js  c++  java
  • 程序进程逐步显示,并可以控制停止和继续

     

     

    用户用你的程序读入一个数组文件 (就像我们以前做过的那样),显示初始状态 (就像围棋打谱程序那样)
     
     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;
    }
  • 相关阅读:
    SpringMVC常用注解
    在Java 中,如何跳出当前的多重嵌套循环?
    当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
    查看远程库信息(git remote的用法)
    webpack和gulp的比较
    git pull 和git fetch的区别
    什么是性能优化?
    第一阶段的任务及燃尽图(第五天)
    第一阶段的任务及燃尽图(第二天)
    第一阶段的任务及燃尽图(第一天)
  • 原文地址:https://www.cnblogs.com/zql98/p/10775613.html
Copyright © 2011-2022 走看看