第三章
来源:互联网 发布:淘宝如何签署食品协议 编辑:程序博客网 时间:2024/05/10 12:00
第三章(使用批量数据)
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
#include<iostream>
#include<ios>
#include<iomanip>
#include<string>
using namespace std;
int main()
{
cout<< "please enter your first name: ";
stringname;
cin>> name;
cout<< "hello "+name+ " !"<<endl;
cout<< "Enter all your homework grades followed by end-of-file:";
doublemidterm, final;
cin>> midterm >> final;
intcount = 0;
doublesum = 0;
intx;
while(cin>> x){
++count;
sum+= x;
}
streamsizeprec = cout.precision();
cout<< " your final grade is " << setprecision(3) <<0.2 * midterm + 0.4 * final + 0.4 * sum / count <<setprecision(prec)<<endl;
return0;
}
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
头文件<ios>定义了一个类型streamsize,输入输出库就是用这个类型表示长度的。
头文件<iomanip>定义了控制器setprecision,这个控制器允许我们指明输出所包含的有效位数。
另外,如果要精确小数点后的几位数,一应写成如下形式:
#include<iostream> //加头文件
cout << setiosflags ( ios::fixed)<<setpercision(n)<<number<< endl;
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
#include<iostream>
#include<algorithm>
#include<ios>
#include<string>
#include<iomanip>
#include<vector>
using namespace std;
int main()
{
cout<<" please enter your first name: ";
stringname;
cin >> name;
cout<< "hello, " << name << " !"<<endl;
cout << "please enter your final and midterm examgrades: ";
double final, midterm ;
cin >> final >> midterm;
cout << "enter all your homework grades followed byend-of-file: ";
vector<double> homework;
double x;
while(cin >> x){
homework.push_back(x);
}
typedef vector<double>::size_type vec_sz;
vec_sz size = homework.size() ;
if(size == 0){
cout << endl <<"you must enter your grades please tryagain."<< endl;
return 1;
}
sort(homework.begin() , homework.end() );
vec_sz mid = size/2;
double median ;
median = size % 2 == 0 ? (homework[mid]+homework[mid-1])/2:homework[mid];
streamsize prec = cout.precision();
cout<< "your final grade is "<< setprecision(3) <<0.2*midterm + 0.4 * final +0.4*median <<setprecision(prec) << endl;
return0;
}
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
小结:
关于库中的容器的操作:
vector<T>::size_type //一种类型,它确保能够保存能够存在的最大向量中的所有元素。
v.begin() // 返回一个值,这个值指示v的第一个元素。
v.end() //返回一个数值,这个数值指示紧跟在v的最后一个元素之后的位置。
Vector<T>v //创建了一个空的向量,这个向量可以保存T类型的元素 。
v.push_back(e) // 给向量添加一个元素,这个元素的初始值为e
v[i] //返回存储在位置i中的值
v.size() //返回v的元素个数
习题。。。。。。