当前位置:   article > 正文

C++使用vector、deque容器对五个选手计算平均分数_std::deque 计算元素的平均值

std::deque 计算元素的平均值
  1. #include<iostream>
  2. using namespace std;
  3. #include<vector>
  4. #include<deque>
  5. #include<algorithm>
  6. #include<string>
  7. #include<ctime>
  8. /*
  9. 5名选手: 选手ABCDE, 10个评委分别对每一名选手打分,去除最高分,去除评委中最低分
  10. */
  11. class Person
  12. {
  13. public:
  14. Person(string name, int score)
  15. {
  16. this->m_Name = name;
  17. this->m_Score = score;
  18. }
  19. string m_Name;
  20. int m_Score;
  21. };
  22. void createPerson(vector<Person> &v)
  23. {
  24. string nameseed = "ABCDE";
  25. for(int i=0; i<5; i++)
  26. {
  27. string name = "选手";
  28. name += nameseed[i];
  29. int score = 0;
  30. Person p(name, score);
  31. //将创建的Person对象 放入到容器中
  32. v.push_back(p);
  33. }
  34. }
  35. //打分
  36. void setScore(vector<Person> &v)
  37. {
  38. for(vector<Person>::iterator it = v.begin(); it!=v.end(); it++)
  39. {
  40. //将评委的分数放入到deque容器中
  41. deque<int> d;
  42. for(int i=0;i<10;i++)
  43. {
  44. int score = rand()%41 +60; //60~100
  45. d.push_back(score);
  46. }
  47. cout << "选手:" << it ->m_Name << "打分:" << endl ;
  48. for(deque<int>::iterator dit = d.begin(); dit != d.end(); dit++)
  49. {
  50. cout << *dit << " ";;
  51. }
  52. cout << endl;
  53. sort(d.begin(),d.end());
  54. d.pop_front();
  55. d.pop_back();
  56. //取平均分
  57. int sum=0;
  58. for(deque<int>::iterator dit2 = d.begin(); dit2 != d.end(); dit2++)
  59. {
  60. sum += *dit2;
  61. }
  62. int avg = sum / d.size();
  63. //将平均分赋值给选手身上
  64. it ->m_Score = avg;
  65. }
  66. }
  67. void showScore(vector<Person> &v)
  68. {
  69. for(vector<Person>::iterator it = v.begin(); it!= v.end(); it++)
  70. {
  71. cout << "选手:" << it->m_Name << " 的平均分:" << it->m_Score << endl;
  72. }
  73. }
  74. int main()
  75. {
  76. //随机数种子
  77. srand((unsigned int)time(NULL));
  78. //1.创建5名选手
  79. vector<Person> v; //存放选手的容器
  80. createPerson(v);
  81. //测试
  82. /*for(vector<Person>::iterator it = v.begin(); it != v.end(); it++)
  83. {
  84. cout << "姓名:" << it->m_Name << " 分数: " << (*it).m_Score << endl;
  85. }*/
  86. //2.给5名选手打分
  87. setScore(v);
  88. //3.显示最后得分
  89. showScore(v);
  90. return 0;
  91. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/517661
推荐阅读
  

闽ICP备14008679号