//使用switch语句统计A B C D F 级成绩的GradeBook类
#include<string>
using namespace std;
class GradeBook
{
public :
GradeBook(string);//构造函数
void setCourseName(string);//获取课程名称
string getCourseName();//返回课程名称
void displayMessage();//diaplay 一个欢迎信息
void inputGrade();//输入学生的成绩等级
void diaplayGradeReport();//显示学生的等级结果
private:
string courseName;//课程名称
int aCount;//A级人数
int bCount;//B级人数
int cCount;//C级人数
int dCount;//D级人数
int fCount;//F级人数
};
#include "GradeBook.h"
int main()
{
GradeBook myGradeBook("C++大学英语教程");
myGradeBook.displayMessage();
myGradeBook.inputGrade();
myGradeBook.diaplayGradeReport();
system("pause >> cout ");
return 0;
}
#include "GradeBook.h"
#include<iostream>
GradeBook::GradeBook(string name) //初始化
{
setCourseName(name) ;
aCount = 0;
bCount = 0;
cCount = 0;
dCount = 0;
fCount = 0;
}
void GradeBook::setCourseName(string name)
{
if(name.length()<=25)
courseName = name;
else
{
courseName = name.substr(0,25);//select first 25 characters
cout << "Name \" " << name << "\" exceeds maximum length(25).\n"
<< "Limiting courseName to first 25 characters .\n" << endl;
}
}
string GradeBook::getCourseName()
{
return courseName;
}
void GradeBook::displayMessage()
{
cout << "Welcome to the grade book for " << getCourseName() << "!" << endl;
}
void GradeBook::inputGrade()
{
int grade;//输入的等级,,,为毛不是 “string grade ;”??因为后面!=EOF (-1)嘿嘿嘿
cout << "Enter the letter grade ." << endl;
cout << "Enter the EOF character to end input ." << endl;
//grade = cin.get()两边要加括号,运算符优先级不同,注意了啊!!!!!!!!!1
while((grade = cin.get())!=EOF) //循环输入后判断是不是终止输入信号
{
switch(grade)
{
case 'A':
case 'a':
aCount++;
break;
case 'B':
case 'b':
bCount++;
break;
case 'C':
case 'c':
cCount++;
break;
case 'D':
case 'd':
dCount++;
break;
case 'F':
case 'f':
fCount++;
break;
case'\n':
case'\t':
case' ':
break;
default:
cout << "Incorrect letter grade lettered.\n"
<< "Please enter a new grade:" << endl;
break;
}//end switch
}//end while
}//end algorithm
void GradeBook::diaplayGradeReport()
{
cout << "\nNumber of students who received each letter grade: "
<< "\nA: " << aCount
<< "\nB: " << bCount
<< "\nC: " << cCount
<< "\nD: " << dCount
<< "\nF: " << fCount
<< endl;
}