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;
}
*作 者:杨栋
*版 本 号: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;
}
相关文章推荐
- c++作业五
- C++ 游泳池造价
- C/C++——跟我重写智能指针auto_ptr模版类
- C++函数
- c++第五次上机实验--项目一、项目五
- C++四种强制类型转换关键字
- C++作业5
- C++第五次上机实验--数组分离
- c++实验5,求和
- C/C++程序运行时进程的内存分布情况
- 学生宿舍管理系统 150809205
- C语言课程设计第三节课:指针和链表使用 150809205
- Effective C++----3rd Edition, Item 2:用consts,enums和inlines取代#define
- C语言 O(1)的时间删除链表节点
- C++实现数组中出现最频繁的前top k个元素
- C语言 整数的整数次方(不考虑大数问题)
- C++ Primer 学习笔记_94_用来大型程序的工具 -命名空间[续3]
- C语言 二进制中1的个数
- C语言 打印1到最大的N位数(输入3,打印1,2,3~999)
- c++作业5