新疆农业大学计算机与信息工程学院
班 级 名 称: 电科112 指 导 老 师: 吴艳 实 验 名 称: 类 实 验 成 绩: 实 验 日 期: 5月30日—6月24日 学 号: 114633244 实 验 学 时: 8学时 姓 名: 周巾逸 一、实验目的
利用所学习的C++知识,完成功能相应完整的系统的设计开发。运用面向对象的编程思想开发设计程序。
二、准备内容
1. 完成小型系统的设计开发,将主要部分进行注释。 2. 演示系统,演示过程中必须讲解出模块思想。 3. 回答老师的提问。
三、实验内容
自已编写类的:写代码,得分点处要用注释标注
做实验指导书的:写代码,每个功能模块用注释标注,每个类用注释标注,循环、判断、SWITCH语句用注释标注出来
做游戏的:写代码,每个类用注释标注,循环、判断、SWITCH语句用注释标注出来。将自己修改的地方标注出来。
四、实验结论
制作系统的心得体会
1
新疆农业大学计算机与信息工程学院
班 级 名 称: 电科112 指 导 老 师: 吴艳 实 验 名 称: 类 实 验 成 绩: 实 验 日 期: 5月30日—6月24日 学 号: 114633244 实 验 学 时: 8学时 姓 名: 周巾逸 一、实验目的
利用所学习的C++知识,完成功能相应完整的系统的设计开发。运用面向对象的编程思想开发设计程序。
二、准备内容
1. 完成小型系统的设计开发,将主要部分进行注释。 2. 演示系统,演示过程中必须讲解出模块思想。 3. 回答老师的提问。
三、实验内容
1. 实验题目:歌手打分程序(实验指导书)
N名裁判给M名歌手打分,评分原则是去掉一个最高分,去掉一个最低分,剩下的分数的平均值为该歌手的最终得分。裁判给分的范围是60≤分数≤100。裁判人数N=5。编写一个程序,每个裁判所给的分数由键盘输入,要求屏幕按一定格式输出四项内容:歌手的姓名、他的最终得分、去掉的最高分、最低分;假如有4名歌手参加比赛,按得分由高到低输出全部歌手姓名和得分。 2.实验代码
#include
const int jn=5; // 评委人数 //常成员函数 const int pn=4; // 选手人数 class cr //定义一个比赛结果类 {
private:
short num; // 选手号码 char name[10]; // 选手姓名
float score[jn]; // 记录各评委给选手的打分 float average; // 选手最后得分
2
新疆农业大学计算机与信息工程学院
班 级 名 称: 电科112 指 导 老 师: 吴艳 实 验 名 称: 类 实 验 成 绩: 实 验 日 期: 5月30日—6月24日 学 号: 114633244 实 验 学 时: 8学时 姓 名: 周巾逸 public:
~cr();//定义析构函数 cr( );// 无参数构造函数
cr(short n, char * ps); // 一般构造函数
float MaxScore( ); // 成员函数求评委打的最高分 float MinScore( ); // 成员函数求评委打的最低分 void SetAvg(); // 成员原函数求选手的最后得分
float GetAvg() { return average; } // 成员函数读选手的最后得分 short GetNo( ) { return num; } // 读选手的编号的成员函数 void setNo (int i) { num = i; } // 设置选手的编号成员函数 char * GetName( ) { return name;} // 读选手的姓名的成员函数
float GetScore(int j){ return score[j];} // 读第j个评委的打分的成员函数
void SetScore(int k, float av){ score[k] = av;} // 记录第j个评委的打分成员函数
friend void Sort(cr * pr, int n); // 按最后得分由高到低排序 //友元函数 };
cr::~cr(){
cout<<\本轮结束\< cr::cr( ) // 无参数构造函数 { num = 0; //选手号码赋初值 strcpy(name, \); //姓名赋初值 for(int i = 0; i < jn; i++)//循环语句 score[i] = 0;//裁判的打分赋个初值 } cr::cr(short n, char * ps) // 一般构造函数含有选手的号码和姓名 3 新疆农业大学计算机与信息工程学院 班 级 名 称: 电科112 指 导 老 师: 吴艳 实 验 名 称: 类 实 验 成 绩: 实 验 日 期: 5月30日—6月24日 学 号: 114633244 实 验 学 时: 8学时 姓 名: 周巾逸 { num = n;//输入选手号码 strcpy(name, ps);//输入选手姓名 for(int i = 0; i < jn; i++)//循环语句 score[i] = 0; } float cr::MaxScore( )//自定义成员函数求最高分 { float max; max = score[0]; for( int i = 1; i < jn; i++ )//循环语句 if(score[i] > max) max = score[i]; return max; } float cr::MinScore( )//自定义成员函数求最低分 { float min; min = score[0]; for( int i = 1; i < jn; i++ )//循环语句 if(score[i] < min) min = score[i]; return min; } void cr::SetAvg() // 自定义成员函数求选手的最后得分 { float total = 0; for( int i = 0; i < jn; i++)//循环语句 total += score[i]; 4 新疆农业大学计算机与信息工程学院 班 级 名 称: 电科112 指 导 老 师: 吴艳 实 验 名 称: 类 实 验 成 绩: 实 验 日 期: 5月30日—6月24日 学 号: 114633244 实 验 学 时: 8学时 姓 名: 周巾逸 total -= MaxScore()+MinScore(); average=total/(jn-2); } void Sort(cr * pr, int n) //自定义成员函数按最后得分由高到低排序 { int i, j,k; cr temp;//temp的初值为0 for (i=0;i k=i; for (j=i+1;j if ((pr[j].average) > (pr[k].average))//判断语句 k=j; if (k!=i)//判断语句 { temp=pr[i]; pr[i]=pr[k]; pr[k]=temp; } } } int main( ) { cr r[pn] = {cr(1, \一号\), cr(2, \二号\), cr(3, \三号\), cr(4, \四号\)}; float temp,min,max; cout << \采用100分制,裁判给分的范围是60≤分数≤100精确到小数点后两位,得分间用'TAB'键分隔\< for( int i =0; i 5