(一)作者瞎叨叨:
想不到吧,我今天又更新了!主要是晚上在学STL容器感觉这玩意挺有意思的,课程里刚好有一个阶段性小程序设计,我就拿来写了,感觉灵活性真的好高啊,然后我就按捺不住自己再发了这一篇博文,明明我现在还是STL小白呢哈哈,可能写出来的代码有些幼稚,但也是我成长过程的风景嘛,记录一下啦,如有建议请大家评论或者私信哦~我都会看的~
——Agoni酱
(二)设计要求:
![](https://i-blog.csdnimg.cn/blog_migrate/e3ca02be298e5ffbb33a521beb4ddeca.png)
PS:其实我也没跟实现步骤走啦哈哈哈,至少我靠自己做出来了!(夸我)
(三)程序相关事项(可见于main.cpp程序文件开头):
/*
开发项目:【黑马程序员~C++提高编程程序小设计】基于deque容器的简易评委打分系统
程序结构:main.cpp (由于程序简单,就不分开啦)
开发语言:C++开发环境:Windows Visual Studio 2022
程序实现:可以完成对五名选手的成绩计算(十名评委打分,去除一个最高分一个最低分求均值),并且排名呈现
程序特性:今天晚上学习到了STL容器,感觉很有意思,此程序重心是对deque容器的使用以及类的使用,利用deque容器实现程序可以完成对输入有效性的检测,有完善的交流机制,可以较好呈现结果,程序较为简单,深刻体会到了deque容器和类使用的灵敏度极高,很有意思
*/
/*
完成时间:2023年1月9日22:33:31当前版本:V1.0
发布时间:2023年1月9日22:35:00
更新日志:无
*/
(四)程序代码:
/*
开发项目:【黑马程序员~C++提高编程程序小设计】基于deque容器的简易评委打分系统
程序结构:main.cpp (由于程序简单,就不分开啦)
开发语言:C++ 开发环境:Windows Visual Studio 2022
程序实现:可以完成对五名选手的成绩计算(十名评委打分,去除一个最高分一个最低分求均值),并且排名呈现
程序特性:今天晚上学习到了STL容器,感觉很有意思,此程序重心是对deque容器的使用以及类的使用,利用deque容器实现程序
可以完成对输入有效性的检测,有完善的交流机制,可以较好呈现结果,程序较为简单,深刻体会到了deque容器和类
使用的灵敏度极高,很有意思
*/
/*
完成时间:2023年1月9日22:33:31 当前版本:V1.0
发布时间:2023年1月9日22:35:00
更新日志:无
*/
#include <iostream>
#include <deque>
#include <algorithm>
using namespace std;
double getscore(deque<double> score);
class Person {
public:
char name;
double score;
Person(char name, double score) {
this->name = name;
this->score = score;
}
};
int main() {
char name = 'A';;
deque<double> fanal,score;
deque<Person> players;
deque<double>::const_iterator begin;
deque<Person>::iterator playerbegin;
cout << "*************************** 欢迎使用评委打分系统! ***************************" << endl
<< "***************************** 制作:CSDN:agoni酱 *****************************" << endl
<< "说明:此系统设计比较简略,可用于对五位选手的打分,评委为十人,此系统会自动删去" << endl
<< " 每位选手的最高分和最低分,随后求出平均分并排名显示出来,以表格的形式呈现!" << endl
<< "温馨提示:支持浮点数运算,线性输入,请输入0~10以内的数字,避免引起程序崩溃" << endl
<< "******************************************************************************" << endl;
for (int i = 0; i < 5; i++) {
cout << "system:请评委们为选手" << name << "打分!" << endl;
Person player =Person (name, getscore(score)) ;
players.push_back(player);
fanal.push_back(player.score);
name++;
}
sort(fanal.begin(), fanal.end());
begin = fanal.end();
cout << endl << "********************************** 结果如下 **********************************" << endl
<< "** 名 次 选手姓名 最终成绩 **" << endl
<< "** **" << endl;
for (int i = 0; i < 5; i++) {
begin--;
playerbegin = players.begin();
for (int j = 0; j < 5 ; j++) {
if (playerbegin->score == *begin) {
cout << "** 第 " << i + 1 << " 名 " << playerbegin->name
<< " " << *begin << " **" << endl;
playerbegin->score = -1;
break;
}
playerbegin++;
}
}
cout << "** **" << endl
<< "******************************************************************************" << endl;
return 0;
}
double getscore(deque<double> score) {
double num;
cout << "system:请输入十位评委的打分(0~10分):";
for (int i = 0; i < 10; i++) {
cin >> num ;
if (num > 10 || num < 0) {
cout << endl << "system:输入存在错误,已剔除错误数据,请继续输入:";
i--;
continue;
}
score.push_back(num);
}
sort(score.begin(), score.end());
for (deque < double > ::const_iterator it = ++score.begin(); it < --score.end(); it++) {
num += *it;
}
return num / 8.0;
}
// THE END
(五)版权声明:
此程序完全由本人制作,并且仅在CSDN平台发布,虽然我是个小菜鸡,但也是不能商用的哦嘿嘿
(六)结语
嘿嘿这次更新真勤快,那么我也打算在过年前完成对C++的学习,再接再厉!我们,很快再见!!!(真的!!!)