软件工程练习——找水王2

Posted 小嵩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件工程练习——找水王2相关的知识,希望对你有一定的参考价值。

    随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID。据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗?

    设计思想:这次的水王有三个,所以我选择用排除法一个个进行排除,假设第一个ID是水王,用它与之后的其他ID进行比较,对出现的次数进行统计,最后将这个ID全部拿出来,放入另一个数组中(出栈入栈的思想)。然后循环这个过程,直到全部水王找出。

package shuiwang2;
import java.util.*;

public class Find_shuiwang {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Find_function function = new Find_function();
        Scanner sca1=new Scanner(System.in);
        Scanner sca2=new Scanner(System.in);
        System.out.println("输入帖子数:");
        int n=sca1.nextInt();
        String post[]=new String[n];
        
        int i;
        System.out.println("输入帖子ID:");
        for(i=0;i<n;i++)
        {
              post[i]=sca2.nextLine();
        }
        String shuiwang[] = function.find(post, n);
        System.out.println("水王ID是:");
        for(i=0;i<3;i++)
        {
            System.out.println(shuiwang[i]+" ");
        }
        
    }

}
Find_shuiwang
package shuiwang2;

public class Find_function {
    String[] find(String[] post,int n)
    {
        int i,j = 0;
        int num_find=0;//找到几个相同的ID
        int num_mark=0;//标记有几个ID入栈
        int num_shuiwang=0;        
        String shuiwang[]= new String[3];
        String zhan[]=new String[n+1];//建一个栈放ID
                
        while(num_shuiwang<3){//当水王没找全之前一直循环
            shuiwang[num_shuiwang]=post[0];//令第一个ID为水王
            for(i=0;i<n-num_mark;i++)//两两对比
            {            
                if(shuiwang[num_shuiwang].equals(post[i]))
                    {
                        zhan[num_mark]=post[i];
                        num_find+=1;
                        
                        for(j=i;j<n-num_mark-1;j++)//前移数组
                        {
                            post[j]=post[j+1];
                        }
                        num_mark+=1;
                    }            
            }
            if(num_find >= n/4)
            {
                num_shuiwang+=1;
                num_find = 0;
            }
            else
            {
                num_find = 0;
            }
        }
        return shuiwang;
    }
}
Find_function

    结果截图:

以上是关于软件工程练习——找水王2的主要内容,如果未能解决你的问题,请参考以下文章

软件工程课堂练习找水王s

课堂练习-找水王

课堂练习--找水王

课堂练习找水王02

课堂练习……找水王

课堂练习--“找水王续"