实训一

码云地址:https://gitee.com/sfr123/sl

伙伴的博客地址:

https://www.cnblogs.com/sfr123/p/10095296.html

实训一内容:

1.黄金点

阿超的课都是下午两点钟,这时班上不少的同学都昏昏欲睡,为了让大家兴奋起来,阿超让同学玩一个叫“黄金点”的游戏:

N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值。提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分。记录每一次游戏每名同学的数字和分数。

2.研究合作过程:

3.设计思路:

我二人决定用数组来存游戏同学输入的数,我们认为游戏需要定义游戏的人数(N)和游戏的局数(b),经过计算找出胜利者和失败者,算出他们得分和扣分

4..代码如下:


import java.util.Scanner;

public class gold {
     public static void main(String[] args){
     int N=10;
     int b=2; @SuppressWarnings("resource")
        Scanner scanner=new Scanner(System.in); double sum;
        double max,min;
        int maxtotal=0;
        int mintotal=0;
        int []total=new int[100];
        double []value=new double[100];
        int [][]grade=new int[100][100];
        for(int j=1;j<=b;j++)
        {
            sum=0.0;
            max=0.0;
            System.out.println("第"+j+"轮游戏");
            for(int i=1;i<=N;i++)
            {
                System.out.print("请输入玩家"+i+"输入的数字:");
                double num=scanner.nextDouble();
                value[i]=num;
                sum=sum+num;
            }
            double G=(sum/N)*0.618;
            min=Math.abs(value[1]-G);
            for(int l=1;l<=N;l++)
            {
                if(Math.abs(value[l]-G)>=max)
                {
                    max=Math.abs(value[l]-G);
                }
           
                if(Math.abs(value[l]-G)<=min)
                {
                    min=Math.abs(value[l]-G);   
                }
                   
            }
            for(int m=1;m<=N;m++)
            {
                if(Math.abs(value[m]-G)==max)
                {
                    grade[j][m]=-2;
                }
                if(Math.abs(value[m]-G)==min)
                {
                    grade[j][m]=N;
                }
                if(Math.abs(value[m]-G)!=max&&Math.abs(value[m]-G)!=min)
                {
                    grade[j][m]=0;
                }
            }
            for(int n=1;n<=N;n++)
            {
                System.out.println("第"+n+"名游戏玩家所得分数为:"+grade[j][n]);
            }
        }
        for(int s=1;s<=N;s++)
        {
            total[s]=0;
        }
        for(int p=1;p<=N;p++)
        {
            for(int q=1;q<=b;q++)
            {
                total[p]=grade[q][p]+total[p];
            }
        }
        for(int r=1;r<=N;r++)
        {
            System.out.println("第"+r+"名玩家所得总分为:"+total[r]);
        }
        for(int s=1;s<=N;s++)
        {
            if(total[s]>=maxtotal)
            {
                maxtotal=total[s];
            }
            if(total[s]<=mintotal)
            {
                mintotal=total[s];
            }
        }
        for(int t=1;t<=N;t++)
        {
            if(total[t]==maxtotal)
            {
                System.out.println("玩家"+t+"胜利!");
            }
            if(total[t]==mintotal)
            {
                System.out.println("玩家"+t+"惜败!");
            }
        }
    }
}

 

 5.运行结果:

 

5.心得

在这几天的时间里,通过与队友的一起努力,使我认识到了合作的重要性,其实有伙伴的情况下,有时候的确能够激励我们进行编程。伙伴是一个做事非常细心得人,做事认真,而我做事毛手毛脚经常出错,跟他一起合作我做事变得更仔细认真了。伙伴主要负责指

挥,我负责操作。虽然有时候思想上会有些不一致,但正因为这些不一致让我们对程序的优化有了更大的提升,是程序能够进一步的完善起来。

经过反复的交流、讨论发现了自己薄弱的地方并通过合作伙伴的优秀的地方来提高。在这个实训的过程中重要的是理解这个 黄金点游戏是怎么回事,滤清设计思路然后根据学习的知识来编程。在设计思路时遇到了很多困难也与合作伙伴出现了许多分歧,编写代码

时也是出现了各种各样的错误但是通过查阅资料、浏览网站、借鉴等方式也成功的解决了。在成功的那一刻我们都是开心的,激动的。努力是不会白费的。

 

posted @ 2018-12-11 15:12  刘晓彤  阅读(161)  评论(2编辑  收藏  举报