C++大学基础教程_5_6switch选择语句

本文介绍了一个使用switch语句来统计ABCDF级成绩的GradeBook类,包括初始化课程名称、输入成绩等级和显示等级结果等功能。
//使用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;
}

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值