第一次实训
人员名单:16012110 王明 16012120 李少宇
领航员:王明
驾驶员:李少宇
项目代码:https://gitee.com/axsj/10wm_20lsy_sxy/blob/master/java
1.黄金点
阿超的课都是下午两点钟,这时班上不少的同学都昏昏欲睡,为了让大家兴奋起来,阿超让同学玩一个叫“黄金点”的游戏:
N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值。提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分。记录每一次游戏每名同学的数字和分数。
2. 研究与快乐学习的过程:
3. 设计思路与想法:先假设参与游戏人数 和 游戏的局数 通过计算算出谁胜谁负 最后算出俩人得分情况。
4. 以下是俩人呕心沥血研究出的代码:
1 import java.util.Scanner
3 public class gold { 4 public static void main(String[] args){ 5 int N=10; 6 int b=2; 7 @SuppressWarnings("resource") 8 Scanner scanner=new Scanner(System.in); 9 double sum; 10 double max,min; 11 int maxtotal=0; 12 int mintotal=0; 13 int []total=new int[100]; 14 double []value=new double[100]; 15 int [][]grade=new int[100][100]; 16 for(int j=1;j<=b;j++) 17 { 18 sum=0.0; 19 max=0.0; 20 System.out.println("第"+j+"轮游戏准备就绪"); 21 for(int i=1;i<=N;i++) 22 { 23 System.out.print("请输入玩家"+i+"所选择的数字:"); 24 double num=scanner.nextDouble(); 25 value[i]=num; 26 sum=sum+num; 27 } 28 double G=(sum/N)*0.618; 29 min=Math.abs(value[1]-G); 30 for(int l=1;l<=N;l++) 31 { 32 if(Math.abs(value[l]-G)>=max) 33 { 34 max=Math.abs(value[l]-G); 35 } 36 37 if(Math.abs(value[l]-G)<=min) 38 { 39 min=Math.abs(value[l]-G); 40 } 41 42 } 43 for(int m=1;m<=N;m++) 44 { 45 if(Math.abs(value[m]-G)==max) 46 { 47 grade[j][m]=-2; 48 } 49 if(Math.abs(value[m]-G)==min) 50 { 51 grade[j][m]=N; 52 } 53 if(Math.abs(value[m]-G)!=max&&Math.abs(value[m]-G)!=min) 54 { 55 grade[j][m]=0; 56 } 57 } 58 for(int n=1;n<=N;n++) 59 { 60 System.out.println("第"+n+"名游戏玩家所得分数为:"+grade[j][n]); 61 } 62 } 63 for(int s=1;s<=N;s++) 64 { 65 total[s]=0; 66 } 67 for(int p=1;p<=N;p++) 68 { 69 for(int q=1;q<=b;q++) 70 { 71 total[p]=grade[q][p]+total[p]; 72 } 73 } 74 for(int r=1;r<=N;r++) 75 { 76 System.out.println("第"+r+"名玩家所得总分为:"+total[r]); 77 } 78 for(int s=1;s<=N;s++) 79 { 80 if(total[s]>=maxtotal) 81 { 82 maxtotal=total[s]; 83 } 84 if(total[s]<=mintotal) 85 { 86 mintotal=total[s]; 87 } 88 } 89 for(int t=1;t<=N;t++) 90 { 91 if(total[t]==maxtotal) 92 { 93 System.out.println("恭喜玩家"+t+"胜利,获得黄金!"); 94 } 95 if(total[t]==mintotal) 96 { 97 System.out.println("玩家"+t+"失败!!"); 98 } 99 } 100 } 101 }
5. 说了这么多还是要看结果:

6. 心得体会:俗话说的好,一根筷子容易折,两根筷子难折断。 通过我们俩个人不断的思考和研究能够很容易很轻松的去完成一组代码,王明同学主要负责指挥和设计该次实训的整体思路,我负责操作。
其实在这次实训任务当中也遇到了几个瓶颈,但是我们通过查阅资料 还有请教刘洪雨同学,通过他的耐心解答,圆满完成了此次任务。通过这次实训学习我也深刻的感受到了合作的重要性,就像老师说的1+1>2!
7, 组员评价:可以说王明同学是一个思维特别灵活 点子特别多,又爱帮助同学的一个老好人了,但是也有点缺点,毕竟人无完人吗!他有时爱偷懒 好马虎,有好几次就是因为马虎代码敲错,导致整组代码无法正常运行,但是通过本次
的合作我们俩互取所长,互补所短,他和我都改掉了好多缺点,也希望以后有更多机会跟王明同学一起合作学习。