對參賽結果分數進行處理:參賽選手n人(n>1),評委m人(m>2),評委給每一選手打一個分數score(分數score為小于等于10的一個正實數)。選手的最后得分lastScore計算方法為
(1)m<9時,去掉一個最高分和一個最低分后另m-2個得分的平均值。(2)m≥9時,去掉兩個最高分和兩個最低分后另m-4個得分的平均值。假設事先已經建立了text型的資料檔案f1.txt,其中依次記錄著n個選手的編號(一個正整數)、姓名(一個字串)以及m個評委給出的得分。請編制程式,依次從資料檔案f1.txt中讀入n個選手的有關資訊,而后按上述規定方法計算出每一個選手的最后得分,而且往螢屏上以及另一個text型檔案f2.txt中同時輸出如下形式的結果資訊。假設參賽選手人數n=5,評委人數m=7,磁盤檔案f1.txt中的初始資料為:1 zhangjin 8.8 9.3 7.9 8.7 8.9 9.7 9.22 lintao 8.9 8.2 8.6 8.8 8.5 9.1 9.33 guojian 8.9 8.4 8.7 8.6 8.6 8.4 8.64 maling 7.9 8.3 8.5 8.6 8.5 8.9 8.35 liuyifan 9.5 9.1 9.8 9.2 9.0 9.5 8.9那么,程式執行后,螢屏顯示結果以及磁盤檔案f2.txt中的結果均應該為:---------------------------------------------------------- 參賽號 姓 名 最高分 最低分 累積分 最后得分 ---------------------------------------------------------- 1 zhangjin 9.7 7.9 44.9 8.98 2 lintao 9.3 8.2 43.9 8.78 3 guojian 8.9 8.4 42.9 8.58 4 maling 8.9 7.9 4
思考:可進一步考慮找出比賽的第1至第k名,也在螢屏以及f2.txt中同時輸出相關的結果資訊(k小于等于n,并規定若多個選手最后得分相同時,則有效分(即已洗掉原來的最高分后)中最高分高者名次優先)。(二) 設計根據題目,建立結構體player,其成員如下:型別成員名描述intnumber選手序號charname選手名字double *score選手得分然后建立函式,如下表:型別函式名描述doublemax_score求最大分數doublemin_score求最小分數doublemax_score2求第二大分數doublemin_score2求第二小分數doubleget_totalscore求選手總分doubleget_tscore求選手累計得分doubleget_lastscore求選手最后得分(三) 用戶手冊用戶只需將f1.txt放入檔案夾中,運行程式,然后會在螢屏輸出檔案f1.txt和檔案f2.txt中的內容。檔案f2.txt保存在檔案夾中。(四) 除錯及測驗打開檔案程式,運行計算各位選手的得分情況。(1)運行實體:(2)進一步改進:無論評委幾人,程式都會找出第二高分和第二低分,可以改為只有在評委人數大于9人時執行。(3)附錄源程式#include #include using namespace std;struct player //結構體 player{int number;char name[40];double * score;//成員表列};double min_score(double s[],int n);//求最低分數 double max_score(double s[],int n);//求最高分數double get_totalscore(double s[],int n);//求總分double min_score2(double s[],int n);//求第二低分數double max_score2(double s[],int n);//
原題和分析如下的百度文庫里:
【程式設計報告 對參賽結果分數進行處理- 百度文庫 】https://wk.baidu.com/view/fc1f36c0aa00b52acfc7cadd?fromShare=1&fr=copy©fr=copylinkpop
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/42861.html
標籤:Eclipse
上一篇:不知道怎么學習java
下一篇:框架原始碼入口應該怎么找?
