01赵玉荣-03安海莹-04郝玥-实训一

一、码云地址:https://gitee.com/zyr16012001/codes

二、结对编程过程照片:

三、解题思路

我们选择了第一个黄金点项目

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

思路

1.输入的数字放进数Q,求Q平均值 *0.618=G,在用输入的数字减去G。
2.得出Z,把Z放在两个数组里A,B。
3.数组A里排大小, 数组B做参照。
4.A里最小的数字和B里的每一个数字对比,然后找出A里最小数字在B里的位置,此人成绩为参加的人数。
5.用A里最大数字 和数组B里每一个数字比较,找出与B里相同数字的位置n, 这个人成绩是-2。
6.其余人得分为0。

代码如下:

mport java.util.Scanner;
public class 黄金点 {
    public static void main(String[] args) {
        kk();
    }
    public static  void kk(){
        Scanner 黄金点 =new Scanner(System.in);
        System.out.println("想要进行游戏,请按1,不想游戏,按任易数字");
        int z=黄金点.nextInt();
        while(z==1){
        // TODO Auto-generated method stub
        Scanner 黄金点1 =new Scanner(System.in);
        System.out.println("输入同学的个数:");
        int n=黄金点1.nextInt();
        int [] a=new int[n+1];
        int sum=0;
        //输入同学数
        for (int i=0;i<n;i++)
        {
            int h=i+1;
            System.out.println("第"+h+"个同学");
            int m=黄金点1.nextInt();
            a[i]=m;
            sum+=m;
        }
        //输出a[]数组
        for (int i=0;i<n;i++){
            System.out.print(a[i]+" ");
        }
        System.out.print("\n ");
        int x=0;
        double g=0;
        x=sum/n;
        g=x*0.618;
        //把绝对值存入数组
        double [] f=new double[n+1];
        for (int i=0;i<n;i++){
            if (a[i]>=g){
                f[i]=a[i]-g;
            }
            else{
                f[i]=g-a[i];
            }
        }
        //输出f[]数组
        for (int i=0;i<n;i++){
            System.out.print(f[i]+" ");
        }
        System.out.print("\n ");
        double [] e=new double[n+1];
        for (int i=0;i<n;i++){
            e[i]=f[i];
        }
        //输出e[]数组
        for (int i=0;i<n;i++){
            System.out.print(e[i]+" ");
        }
        System.out.print("\n ");
        //排序后的绝对值
        for (int i=0;i<10;i++){
            for(int j=i;j<10;j++){
                if(e[i]>e[j]){
                    double r=e[j];
                    e[j]=e[i];
                    e[i]=r;
                }
                 
            }
        }
        //输出排序后的数组
        for (int i=0;i<n;i++){
            System.out.print(e[i]+" ");
        }
        System.out.print("\n ");
        double h=e[0];
        double t=e[n];
        //判断排序后的数在原来的位置
        System.out.print(e[0]);
        System.out.print(e[n-1]);
        System.out.print("\n ");
        int l=0;
        int k=0;
        for (int i=0;i<n;i++){
            if(e[0]==f[i]){
                int k1;
                k1=i;
                //System.out.println(k);
            }  
        }
        for (int i=0;i<n;i++){
            if(e[n-1]==f[i]){
                //int l;
                l=i;
                System.out.println(l);
            }
        }
        int q=l+1;
        int w=k+1;
        System.out.println(k);
        System.out.println(l);
        System.out.println("第"+w+"个同学"+"得"+n+"分");
        System.out.println("第"+q+"个同学"+"得-2分");
        System.out.println("其余同学得0分");
    }
    System.out.println("游戏结束");
    }
}

四、运行结果截图:

五、小结感受:

    经过这两天的努力和坚持,我们朝着一个方向努力,所以最终必将导致质的飞跃。失败总是会有的,我们在编程设计想代码思路的时候遇到了一些困难,走了很多弯路,对于经验不足,几条代码的不注意等的问题,但还好,人多力量大每人在各自独立设计、实现软件的过程中不免要犯这样那样的错误。在结对编程中,因为有随时的复审和交流,程序各方面的质量较高,这样,程序中的错误就会少得多,这样会省下很多以后修改、测试的时间,两人合作能有更强的解决问题的能力,当有另一个人在你身边和你紧密配合, 做同样一件事情的时候,  你不好意思开小差,好意思糊弄,不浪费时间,更有效地交流,相互学习和传递经验,达到知识共享,高效学习,带来1+1>2的效果

六、对于合作伙伴,指出优点、缺点,希望ta提高的地方   

姓名 风格 团队贡献 优点 缺点 希望ta提高的地方 创作中的口头禅
赵玉荣 独出手眼 欹嵚历落 完善材料 适当提出建议的军师 磨蹭 处理事情要快而稳 不着急,慢慢来,咱三是个team!!!
安海莹 狂野幻想 幽默诙谐 收集材料 解决一切后勤服务的保障者 毛楞 处理问题要沉着冷静一些 再说我,我就哭啦!!!
郝玥 秀外慧中 言辞犀利 整理材料 脑洞大开的谋士 太磨蹭 打字速度提高 我们能行!!!
posted @ 2018-12-11 16:09  草莓草莓  Views(151)  Comments(0Edit  收藏  举报