假设某综艺活动海选工6位评委,设计程序完成以下功能: 为用户提供一个交互的菜单界面,用户可以根据需要选择想要的操作, 程序功能菜单应该包括: 1、输入、输出当前选手6位评委的打分 2、输出最高分、最低分 3、输出最后得分(去掉最低分和最高分的平均分)
思路梳理
1.要实现用户根据输入选择想要的操作,首先需要一个目录界面;其次,编号对应相应的操作,应该通过switch语句来实现。
2.输入成绩,应该存储在一个数组中,易于进行排序等操作。
3.要输出最高分最低分,则需要进行排序操作,相信学习过C语言的同学,对排序并不陌生,此处代码使用了冒泡排序法。
4.输出最后得分的话,则需按照需求,去掉最高分和最低分之后,对剩余成绩进行求平均数操作。
这是C++程序的头文件:
#include <iostream>
using namespace std;
类声明:
class Score{
public:
void set_score();
void showmenu();
void choose();
void showhighscore();
void showlastscore();
void sort();
float score[6];
}per;
C++里面的类声明相当于C语言里面的结构体;但类里面默认private,结构体里面默认public。
void Score::set_score(){
cout << "请输入您的打分:" << endl;
for (int i = 0; i < 6; i++)
cin >>per. score[i] ;
sort();
}
void Score::showmenu(){
cout << endl;
cout << " " << "1. 评分" << endl;
cout << endl;
cout << " " << "2. 输出最高分和最低分" << endl;
cout << endl;
cout << " " << "3. 输出最后得分" << endl;
cout << endl;
cout << " " << "4. 退出" << endl;
cout << endl;
}
void Score::sort(){
for (int i = 0; i < 6; i++){
for (int j = 0; j < i; j++){
if (per.score[i] > per.score[i + 1]){
float temp = per.score[i];
per.score[i] = per.score[i + 1];
per.score[i + 1] = temp;
}
}
}
}
void Score::showhighscore(){
cout << "最高分为" << "\t" << "最低分" << endl;
cout << per.score[0] << "\t\t" << per.score[5] << endl;
}
void Score::showlastscore(){
float eve = (per.score[1] + per.score[2] + per.score[3] + per.score[4]) / 4;
cout << "去掉一个最高分:" << per.score[5] << "分" << endl;
cout <<" " << "去掉一个最低分:" << per.score[0] << "分" << endl;
cout << "最后得分为:" << eve << endl;
}
void Score::choose(){
int i;
cin >> i;
switch (i){
case 1:
set_score();
showmenu();
choose();
break;
case 2:
showhighscore();
showmenu();
choose();
break;
case 3:
showlastscore();
showmenu();
choose();
break;
case 4:
cout << "感谢您的使用!" << endl;
break;
default:
cout << "很抱歉,没有您所选的业务!请重新输入:";
choose();
}
}
主函数
int main(){
per.showmenu();
per.choose();
per.sort();
system("pause");
return 0;
}
运行结果展示
菜单界面:
选项1:
选项2:
选项3:
选项4: