一、 题目:裁判员打分系统
二、 目的与要求:
1. 目的:
培养学生综合利用C++语言进行程序设计的能力,通过学生独立思考,提高学生将所学知识转化为分析和设计简单实际问题的能力,建立程序文档、归纳总结的能力,从而增强创新和实践能力。
2. 基本要求:
要求用C++语言编程,在Visual C++环境下调试完成。
三、设计方法和基本原理:
问题功能描述:
某比赛有7名评委对选手情况进行独立打分,去掉两个最高分和两个最低分,中间3个分数的平均值*7就是选手的得分。在给出选手打分同时,应该显示那两个评委的分数是最高分,那两个评委的分数是最低分。
四、主要技术问题的描述:
使用结构数组存放评委信息和对应的分数。结构体一个属性描述评委号,一个属性描述评委给出分数,按照评委分数属性进行排序,中间的三个值的和就是选手得分,而两头的值分别对应最高分和最低分。结构数组有关知识参见书P195例6.3。
#include<iostream.h>
#include <stdlib.h>
struct stu_type
{
char name[20];
double score;
};
struct stu_type compare(struct stu_type st[7])
{ double temp;
int i,j;
for(i=0;i<6;i++)
{
for(j=0;j<6-i;j++)
if(st[j].score>st[j+1].score)
{
temp=st[j].score;st[j].score=st[j+1].score;st[j+1].score=temp;
}
}
return(st[i]);}
void main()
{
int i;
double s;
struct stu_type st[7]={{"one",9.5},{"two",9.3},{"three",9.5},{"four",9.8},{"five",9.2},{"six",9.5},{"seven",9.4}};
struct stu_type stu;
for(i=0;i<7;i++)
cout<<" "<<st[i].score;
cout<<endl;
stu=compare(st);
s=(st[2].score+st[3].score+st[4].score)/3*7;
cout<<"评委号 分数"<<endl;
cout<<"最高分:"<<endl;
cout<<" "<<st[6].name;
cout<<" "<<st[6].score<<endl;
cout<<" "<<st[5].name;
cout<<" "<<st[5].score<<endl;
cout<<"最低分:"<<endl;
cout<<" "<<st[0].name;
cout<<" "<<st[0].score<<endl;
cout<<" "<<st[1].name;
cout<<" "<<st[1].score<<endl;
cout<<"选手分数: "<<s;
cout<<endl;
}