正好我闲着,给你写一个吧。
创新互联公司专业为企业提供吴起网站建设、吴起做网站、吴起网站设计、吴起网站制作等企业网站建设、网页设计与制作、吴起企业网站模板建站服务,十多年吴起做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
我写的这个评委分数是在代码里固定到数组里了,如果你需要运行时手动输入评分,可以将oldScores里的数据改成手动输入就行了(这个不用我再写了吧,如果不会再追问,再告诉你)。
你先新建一个类,将下面的main方法全部复制进去就能运行了,自己看一下吧。
/** 主方法 */
public static void main(String[] args)
{
/** 保存原始评分的数组(如果你需要运行时手动输入分数,将 oldScores中的数据改成手动输入就行了 */
double[] oldScores = {15, 77, 55, 88, 79, 98, 67, 89, 68, 88};
/** 最终将用来保存排序后的数组 */
double[] scores = new double[oldScores.length];
double temp;
/** 平均分 */
double avg = 0;
int k;
/** 将原始评分放入最终排序数组 */
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;
/** 记录计算平均分的分数个数 */
double num = 0;
for (int i = 1; i scores.length - 1; i++)
{
num++;
sum += scores[i];
}
/** 计算平均分 */
avg = sum / num;
/** 最公平的肯定不是在scores数组两端 */
double zgp = 0;
double cha = 0;
/** 标记与平均值差值最小的分数位置 */
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];
/** 由于最不公平的分数肯定在scores数组的第一个或者是最后一个 */
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];
}
/** 全部计算完成,下面开始输出结果 */
System.out.println("原始评委分数如下:");
for (int i = 0; i oldScores.length; i++)
{
System.out.print(oldScores[i] + ", ");
}
System.out.println();
System.out.println("排序后分数如下:");
for (int i = 0; i scores.length; i++)
{
System.out.print(scores[i] + ", ");
}
System.out.println();
System.out.println("去掉最高分和最低分后平均分:" + avg);
System.out.println("最公平分数:" + zgp);
System.out.println("最不公平分数:" + bgp);
}
//
import java.util.Scanner;
//
public class Test2014 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入学生人数:");
int n = sc.nextInt();
int sum = 0;
for(int i = 1;i = n;++i){
System.out.println("输入第"+i+"个学生成绩:");
sum += sc.nextInt();
}
System.out.println("总成绩是:"+sum+" "+"平均成绩是:"+(double)sum/n);
}
}
一、题目分析:
要计算每个学生的平均成绩,需要获取如下信息:
1、学生总数;
2、科目数;
3、每个学生每科的成绩。
然后累加每个学生的总分,并计算总成绩。
二、算法设计:
1、输入学生总数;
2、输入科目数;
3、对于每个学生,输入各科成绩,计算总分及平均分,保存平均分值。
4、输出结果。
三、参考代码:
#include stdio.h
#include stdlib.h
int main()
{
int n, m;
float *p;
int i,j;
scanf("%d%d",n,m);//输入学生总数n和学科总数m。
p = (float *)malloc(sizeof(float)*n);//申请空间以存储平均分。
for(i = 0; i n; i ++)
{
p[i] = 0;//初始为0.
for(j = 0; j m; j ++)//输入每个学生每科成绩。
{
float t;
scanf("%f",t);
p[i]+=t;//累加获得总分。
}
p[i]/=m;//计算平均分。
}
for(i = 0; i n; i ++)//输出结果。
printf("%f\n", p[i]);
free(p);//释放内存。
return 0;
}
为什么不首先设置一个欢迎界面呢?在欢迎界面上定义一个开始考试按钮,点击按钮跳转到考题页面,把所有的考题设置在一张表单里面,考题无非设置成一些单选或者多选的按钮。然后每个题目就是一个属性,获取验证,对了多少分,错误没分,然后统计下分数不就完了。希望对你设计有帮助哈。