01趙玉榮-04郝玥-03安海瑩實訓一
阿新 • • 發佈:2018-12-11
一、碼雲地址: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。
程式碼如下:
import 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!!! |
安海瑩 | 狂野幻想 幽默詼諧 | 收集材料 | 解決一切後勤服務的保障者 | 毛楞 | 處理問題要沉著冷靜一些 | 再說我,我就哭啦!!! |
郝玥 | 秀外慧中 言辭犀利 | 整理材料 | 腦洞大開的謀士 | 太磨蹭 | 打字速度提高 | 我們能行!!! |