您的位置:首页 > 编程语言 > C语言/C++

C++ 使用联合体保存成绩并输出

2016-05-10 21:50 597 查看
*文件名称:main.cpp

*作 者:杨栋

*版 本 号:v1.0

时间:4月21日

#include <iostream>

#include <string>

using namespace std;

class ExamInfo

{

public: //3种构造函数,分别用等级、是否通过和百分制来初始化

ExamInfo(string name,char grade)

:name(name),mode(GRADE),grade(grade){}

ExamInfo(string name,bool pass)

:name(name),mode(PASS),pass(pass){}

ExamInfo(string name,int percent)

:name(name),mode(PERCENTAGE),percent(percent){}

void show();

private:

string name ; //课程名称

enum

{

GRADE,

PASS,

PERCENTAGE

}mode; //采用何种计分方式

union

{

char grade; //等级制的成绩

bool pass; //是否通过

int percent; //百分制的成绩

};

};

void ExamInfo::show()

{

cout<<name<<":";

switch(mode)

{

case GRADE:

cout<<grade;

break;

case PASS:

cout<<(pass?"PASS":"FALL");

break;

case PERCENTAGE:

cout<<percent;

break;

}

cout<<endl;

}

int main()

{

ExamInfo course1("English",'B');

ExamInfo course2("Calculus",true);

ExamInfo course3("C++programing",85);

course1.show();

course2.show();

course3.show();

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: