对象数组的应用

#include <iomanip>
io代表输入输出,manip是manipulator(操纵器)的缩写(在c++上只能通过输入缩写才有效。)
iomanip的作用:
主要是对cin,cout之类的一些操纵运算子,比如setfill,setw,setbase,setprecision等等。它是I/O流控制头文件,就像C里面的格式化输出一样.▲ setprecision用法
使用setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6。
如果setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数。setiosflags(ios::fixed)是用定点方式表示实数。
如果与setiosflags(ios::scientific)合用, 可以控制指数表示法的小数位数。setiosflags(ios::scientific)是用指数方式表示实数。
setiosflags(ios::fixed) 固定的浮点显示
setiosflags(ios::scientific) 指数表示
setiosflags(ios::left) 左对齐
setiosflags(ios::right) 右对齐
setiosflags(ios::skipws) 忽略前导空白
setiosflags(ios::uppercase) 16进制数大写输出
setiosflags(ios::lowercase) 16进制小写输出
setiosflags(ios::showpoint) 强制显示小数点
setiosflags(ios::showpos) 强制显示符号
# include <iostream>
# include <string>
#include <iomanip> 
using namespace std;
class student
{
private:
    int ID;
    string name;
    int math;
    int english;
    int computer;
public:
    void set_stu_info()
    {
        cin>>ID;
        cin>>name;
        cin>>math;
        cin>>english;
        cin>>computer;
    }
    int sum()
    {
        return math+english+computer;
    }
    double average()
    {
        return (math+english+computer)/3.0;
    }
    void print()//类里面调用成员函数不需要加对象名。
    {
        cout<<ID<<'\t'<<name<<'\t'<<math<<'\t'<<english<<'\t'; 
        cout<<computer<<'\t'<<sum()<<'\t'<<setiosflags(ios::fixed)<<setprecision(1)<<average()<<endl;
    }
};
int main()
{
    int i;
    student stud[5];
    for(i=0;i<5;i++)
    {
        stud[i].set_stu_info();
    }
        cout<<"Input the messages of five students(StudentID Name Math English Computer )"<<endl<<endl;
    cout<<"StuID    Name    Math    Eng    Com    Total    Average"<<endl;
    for(i=0;i<5;i++)
    {
        stud[i].print();
    }
    return 0;
}

 

posted on 2013-10-25 17:19  随风浪子的博客  阅读(312)  评论(0编辑  收藏  举报

导航