C++ Vector实现计算多个学生成绩
2012-12-20 14:34
399 查看
利用vector,如何实现一次可以计算多个学生的成绩呢?下面是代码:
否则由于midhwork是形参,不会有任何改变。
// PE3-5--写一个程序,可以计算多个学生的成绩 // 时间:2012-12-19 21:54:23 #include <algorithm> // sort函数 #include <iomanip> // 定义控制符setprecision #include <ios> // 定义输入输出库表示长度的streamsize类型 #include <iostream> // cout,cin类型 endl控制符 #include <string> // size_type类型等 #include <vector> #define EOF 0; using namespace std; // 计算出家庭作业的中值 int hworkmid(vector<double> hwork, vector<double>& midhwork); int main() { string str; double mid, final; vector<string> name; vector<double> midterm, finalterm, midhwork; double hwork; vector<double> homework; cout << "~~~~姓名:"; cin>>str; do { name.push_back(str); cout << "期中成绩:"; cin >> mid; midterm.push_back(mid); cout << "期末成绩:"; cin >> final; finalterm.push_back(final); int count = 0; cout << "作业成绩(3次):" << endl; do { count++; cout << "~~~次数" << count << ": "; cin >> hwork; homework.push_back(hwork); }while (count != 3); // 家庭作业中值 hworkmid(homework, midhwork); // 清空homework容器 homework.clear(); cout << "~~~~姓名:"; cin>>str; } while ( str != "EOF"); cout << "学生的最终成绩:" << endl; vector<double> grades; int numbers = name.size(); for (int i=0; i != numbers; i++) { grades.push_back(midterm[i]*0.2 + finalterm[i]*0.4 + midhwork[i]*0.4); cout << name[i] << ": " << grades[i] << endl; } return 0; } // 计算出家庭作业的中值 int hworkmid(vector<double> hwork, vector<double>& midhwork) { typedef vector<double>::size_type vec_sz; vec_sz size = hwork.size(); if (size == 0) { cout << endl << "You must enter your grades. " "Please try again." << endl; return 1; } // 分数排序 sort(hwork.begin(), hwork.end()); // 计算家庭作业的中值 double median; vec_sz mid = size/2; median = size % 2 == 0 ? (hwork[mid] + hwork[mid -1]) / 2 : hwork[mid]; midhwork.push_back(median); }唯一需要注意的的是,在实现函数hworkmid的时候,参数为引用类型:
// 计算出家庭作业的中值 int hworkmid(vector<double> hwork, vector<double>& midhwork)而非
int hworkmid(vector<double> hwork, vector<double>midhwork)
否则由于midhwork是形参,不会有任何改变。
相关文章推荐
- 通过MapReduce程序来实现计算学生平均成绩
- 使用C++结合文件操作和链表实现学生成绩管理系统
- 例程 【C++】MFC 创建对话框,实现对“学生课程成绩”的管理
- c++链表实现学生成绩管理系统(简易版)
- c++小小程序——学生总成绩计算并打印报表
- 设计一个学生成绩管理系统,实现对学生成绩的动态管理,实现对学生成绩的输入,显示,删除,查找,插入,最佳,保存,计算,排序等主要功能
- C++实现学生信息及成绩处理系统(面向对象的程序设计思想)
- 在一个长度为10的整型数组里面,保存了班级10个学生的考试成绩。要求编写5个函数,分别实现计算考试的总分,最高分,最低分,平均分和考试成绩降序排序
- C实现输入学生数学成绩计算平均分及及格率
- 2015年C++第三周,任务二:输入几个学生的成绩,用空格隔开,利用容器vector输出成绩,并显示各个等级的数量。
- C实现输入学生数学成绩计算平均分及及格率
- 【C++】单链表实现学生成绩表系统
- Linux-C基础知识学习:C语言作业-将5个学生成绩保存在一个数组中,单独实现一个计算平均成绩的average函数, 在main函数中获取该函数返回的平均值,并打印。
- c++实现简单的学生成绩管理系统
- 【C++】MFC 创建对话框,实现对“学生课程成绩”的管理
- 6.对学生成绩进行统计计算,参加考试的有6名学生,考试成绩分别为94.5,89.0,79.5,64.5,81.5,73.5,显示考试的总分和平均分,之后显示大于考试平均分的成绩信息。请写出实现上述功能
- C语言利用结构体数组实现学生成绩管理系统
- Student类,包括学生姓名、性别、年龄、Java成绩。要求创建五个该类对象,输出每个学生信息,计算并输出这五个学生Java成绩的平均值, 以及计算并输出他们Ja
- 用单链表实现学生成绩管理
- 【C++ Advanced】制作一个简易的学生成绩管理系统 #0