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!!! |
安海莹 | 狂野幻想 幽默诙谐 | 收集材料 | 解决一切后勤服务的保障者 | 毛楞 | 处理问题要沉着冷静一些 | 再说我,我就哭啦!!! |
郝玥 | 秀外慧中 言辞犀利 | 整理材料 | 脑洞大开的谋士 | 太磨蹭 | 打字速度提高 | 我们能行!!! |