正好我閑著,給你寫一個吧。
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供吳起網(wǎng)站建設(shè)、吳起做網(wǎng)站、吳起網(wǎng)站設(shè)計、吳起網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、吳起企業(yè)網(wǎng)站模板建站服務(wù),十多年吳起做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
我寫的這個評委分?jǐn)?shù)是在代碼里固定到數(shù)組里了,如果你需要運行時手動輸入評分,可以將oldScores里的數(shù)據(jù)改成手動輸入就行了(這個不用我再寫了吧,如果不會再追問,再告訴你)。
你先新建一個類,將下面的main方法全部復(fù)制進(jìn)去就能運行了,自己看一下吧。
/**?主方法?*/
public?static?void?main(String[]?args)
{
/**?保存原始評分的數(shù)組(如果你需要運行時手動輸入分?jǐn)?shù),將?oldScores中的數(shù)據(jù)改成手動輸入就行了?*/
double[]?oldScores?=?{15,?77,?55,?88,?79,?98,?67,?89,?68,?88};
/**?最終將用來保存排序后的數(shù)組?*/
double[]?scores?=?new?double[oldScores.length];
double?temp;
/**?平均分?*/
double?avg?=?0;
int?k;
/**?將原始評分放入最終排序數(shù)組?*/
for?(int?i?=?0;?i??oldScores.length;?i++)
{
scores[i]?=?oldScores[i];
}
/**?開始排序?*/
for?(int?i?=?0;?i??scores.length?-?1;?i++)
{
k?=?i;
for?(int?j?=?i?+?1;?j??scores.length;?j++)
{
if?(scores[k]??scores[j])
{
k?=?j;
}
}
if?(i?!=?k)
{
temp?=?scores[k];
scores[k]?=?scores[i];
scores[i]?=?temp;
}
}
/**?計算去掉最高分和最低分之后的和?*/
double?sum?=?0;
/**?記錄計算平均分的分?jǐn)?shù)個數(shù)?*/
double?num?=?0;
for?(int?i?=?1;?i??scores.length?-?1;?i++)
{
num++;
sum?+=?scores[i];
}
/**?計算平均分?*/
avg?=?sum?/?num;
/**?最公平的肯定不是在scores數(shù)組兩端?*/
double?zgp?=?0;
double?cha?=?0;
/**?標(biāo)記與平均值差值最小的分?jǐn)?shù)位置?*/
int?flag?=?0;
/**?開始尋找最公平評分?*/
for?(int?i?=?1;?i??scores.length?-?1;?i++)
{
/**?為cha賦初始值,注意比較差值要使用絕對值比較?*/
if?(i?==?1)
{
cha?=?Math.abs(scores[i]?-?avg);
}
double?cha1?=?Math.abs(scores[i]?-?avg);
if?(cha1??cha)
{
cha?=?cha1;
flag?=?i;
}
}
zgp?=?scores[flag];
/**?由于最不公平的分?jǐn)?shù)肯定在scores數(shù)組的第一個或者是最后一個?*/
double?bgp?=?0;
if?(Math.abs(scores[0]?-?avg)??Math.abs(scores[scores.length?-?1]?-?avg))
{
bgp?=?scores[0];
}
else
{
bgp?=?scores[scores.length?-?1];
}
/**?全部計算完成,下面開始輸出結(jié)果?*/
System.out.println("原始評委分?jǐn)?shù)如下:");
for?(int?i?=?0;?i??oldScores.length;?i++)
{
System.out.print(oldScores[i]?+?",?");
}
System.out.println();
System.out.println("排序后分?jǐn)?shù)如下:");
for?(int?i?=?0;?i??scores.length;?i++)
{
System.out.print(scores[i]?+?",?");
}
System.out.println();
System.out.println("去掉最高分和最低分后平均分:"?+?avg);
System.out.println("最公平分?jǐn)?shù):"?+?zgp);
System.out.println("最不公平分?jǐn)?shù):"?+?bgp);
}
//
import?java.util.Scanner;
//
public?class?Test2014?{
public?static?void?main(String[]?args)?{
Scanner?sc?=?new?Scanner(System.in);
System.out.println("輸入學(xué)生人數(shù):");
int?n?=?sc.nextInt();
int?sum?=?0;
for(int?i?=?1;i?=?n;++i){
System.out.println("輸入第"+i+"個學(xué)生成績:");
sum?+=?sc.nextInt();
}
System.out.println("總成績是:"+sum+"?"+"平均成績是:"+(double)sum/n);
}
}
一、題目分析:
要計算每個學(xué)生的平均成績,需要獲取如下信息:
1、學(xué)生總數(shù);
2、科目數(shù);
3、每個學(xué)生每科的成績。
然后累加每個學(xué)生的總分,并計算總成績。
二、算法設(shè)計:
1、輸入學(xué)生總數(shù);
2、輸入科目數(shù);
3、對于每個學(xué)生,輸入各科成績,計算總分及平均分,保存平均分值。
4、輸出結(jié)果。
三、參考代碼:
#include stdio.h
#include stdlib.h
int main()
{
int n, m;
float *p;
int i,j;
scanf("%d%d",n,m);//輸入學(xué)生總數(shù)n和學(xué)科總數(shù)m。
p = (float *)malloc(sizeof(float)*n);//申請空間以存儲平均分。
for(i = 0; i n; i ++)
{
p[i] = 0;//初始為0.
for(j = 0; j m; j ++)//輸入每個學(xué)生每科成績。
{
float t;
scanf("%f",t);
p[i]+=t;//累加獲得總分。
}
p[i]/=m;//計算平均分。
}
for(i = 0; i n; i ++)//輸出結(jié)果。
printf("%f\n", p[i]);
free(p);//釋放內(nèi)存。
return 0;
}
為什么不首先設(shè)置一個歡迎界面呢?在歡迎界面上定義一個開始考試按鈕,點擊按鈕跳轉(zhuǎn)到考題頁面,把所有的考題設(shè)置在一張表單里面,考題無非設(shè)置成一些單選或者多選的按鈕。然后每個題目就是一個屬性,獲取驗證,對了多少分,錯誤沒分,然后統(tǒng)計下分?jǐn)?shù)不就完了。希望對你設(shè)計有幫助哈。