`
_jia_shun
  • 浏览: 27812 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

C++大学基础教程_4_9标记控制的循环

c++ 
阅读更多
//GradeBook.h
#include<string>
using  std::string;

class GradeBook
{
public:
	GradeBook(string );//重载构造函数
	void setCourseName(string );//设置课程名称
	string getCourseName();//返回课程名称
	void disPlayMessage();//欢迎信息
	void determineClassAverage();//统计全班学生某一门课程的平均分以及总分
private:
	string courseName;//course name for this GradeBook class
};

 

 

//GradeBook.cpp
#include<iomanip>
#include <iostream>
using namespace std;
#include "GradeBook.h"  //两个include头文件的顺序还对报错有影响额,好神奇!!!!!



GradeBook::GradeBook(string name)
{
	setCourseName(name);
}

//进行判断,如果输入coursename字符大于25,则取前25个字符
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 25characters.\n" << endl;
	}
}

string  GradeBook::getCourseName()
{
	return courseName;
}

void GradeBook::disPlayMessage()
{
	cout << "welcome to the grade book for\n" << getCourseName() << "!\n"<< endl;
	
}

void GradeBook::determineClassAverage()
{
	int total = 0;//学生总成绩
	int grade;//输入的学生成绩
	int gradeCounter = 0 ;//输入的学生成绩个数
	double average ;//学生的平均成绩

	cout << "Enter the first grade or -1 to quit :" << endl;
	cin >> grade ;
	
	while(grade!=-1)
	{
		total = total +grade ;
		gradeCounter = gradeCounter +1 ;//计数器加一
		cout << "Enter the " << gradeCounter +1<< "th grade or -1 to quit :" << endl;
	    cin >> grade ;
	}
	if(gradeCounter != 0)
	{
		average = static_cast<double>(total)/gradeCounter ;
		cout << "\n Total of all " << gradeCounter << " grades entered is :" << total << endl;
		cout << "Class average is :" << setprecision(4) << fixed << average << endl;
	}
	else
		cout << "No grades were entered !" << endl;
	
}

 

 

 

 

// main.cpp
#include "GradeBook.h"

int main()
{
	GradeBook myGradeBook("C++大学基础教程");
	myGradeBook.disPlayMessage();
	myGradeBook.determineClassAverage();
	system("pause >>  cout ");
	return 0;
}

 

分享到:
评论

相关推荐

    C++基础教程

    《C++基础教程》是一本全面介绍C++编程语言的教程,由Juan Soulié撰写,Jing Xu翻译。本书适合任何希望学习C++的读者,无论是否有编程背景,都能从中受益。对于熟悉C语言的读者,前三章可以作为复习,但要注意C++在...

    C++语言基础教程习题参考解答

    ### C++语言基础知识点解析 #### 一、C++语言概述 **1.2 填空题解析** 1. **#** - 这里提到的`#`是指C++中的预处理器指令的起始符号。例如`#include &lt;iostream&gt;`用于引入标准输入输出流库。 2. **;{}** - 分号`;`...

    sao-lei.zip_C++编程 扫雷_saolei.org.cn_saoleic++_visual c_扫雷C++编写

    1. **C++基础知识**:C++是一种面向对象的编程语言,具备强大的性能和灵活性。在开发扫雷游戏时,你需要理解基本的数据类型、控制结构(如if-else、for、while循环)、函数、类和对象等概念。 2. **图形用户界面...

    小游戏开发实例教程 c++版

    《小游戏开发实例教程 c++版》是一本专为C++初学者和游戏爱好者设计的教程,旨在通过实际的游戏开发案例,帮助读者掌握C++编程语言在游戏开发中的应用。教程覆盖了从基本的C++语法到游戏编程的核心概念,包括图形...

    DM-E402 龙人勇士_tapee1i_C++_walkc6x_

    这个项目的源代码和教程对于学习C++编程以及机器人控制技术的初学者来说是一份宝贵的资源。下面我们将深入探讨其中涉及的知识点。 一、C++编程基础 C++是一种强大的面向对象的编程语言,它继承了C语言的效率,并...

    C++大学教程,一本适合初学者的入门教材(part2)

    2.9 构造算法与自上而下逐步完善:实例研究2(标记控制重复) 2.10 构造算法与自上而下逐步完善:实例研究3(嵌套控制结构) 2.11 赋值运算符 2.12 自增和自减运算符 2.13 计数器控制循环的要点 2.14 for重复结构 ...

    C++大学教程,一本适合初学者的入门教材(part1)

    2.9 构造算法与自上而下逐步完善:实例研究2(标记控制重复) 2.10 构造算法与自上而下逐步完善:实例研究3(嵌套控制结构) 2.11 赋值运算符 2.12 自增和自减运算符 2.13 计数器控制循环的要点 2.14 for重复结构 ...

    word版C++教程(来之不易)

    考虑到兼容性问题,教程还指出了一些仅在ANSI C++标准中引入的新特性,并标记了那些在旧版编译器中可能不支持的部分。 总之,"word版C++教程(来之不易)"是一个全面且实用的学习资源,覆盖了C++语言的基础到高级...

    MATLAB基础教程(第五版).rar

    4. **控制流结构**:介绍if-else语句、switch-case语句、for循环和while循环,以及函数的定义与调用。 5. **数组与矩阵操作**:讲解数组的创建、索引、排序、拼接、转置、查找、替换等操作,以及矩阵运算,如乘法、...

    C++教程,适合初学者

    根据提供的文件信息,我们可以归纳出一系列关于C++编程的基础知识点,尤其适合初学者。...通过上述知识点的学习,初学者可以建立起扎实的C++基础知识,并为进一步学习更复杂的编程概念打下坚实的基础。

    C++大学教程

    C++大学教程(目录) 第1章 计算机与C++编程简介-------------------------------------------------1 1.1 简介--------------------------------------------------------------1 1.2 什么是计算机--------...

    鸡啄米:C++编程入门系列教程

    《鸡啄米:C++编程入门系列教程》是针对初学者精心制作的一份教程,旨在帮助读者快速掌握C++编程的基础知识和技能。教程由知名教育机构“鸡啄米”出品,以其一贯的高质量标准,提供了系统且易懂的学习内容。 教程...

    C语言中文网VIP资料(C++新特性)

    4. **范围基础的for循环(Range-based for loop)** 这个新特性简化了遍历容器(如数组和集合)的过程,使得代码更加简洁和易于理解。例如: ```cpp for (auto element : container) { // 处理element } ``` ...

    Absolute C++中文版(原书第2版)-完美的C++教程,文档中还包含英文版

    第1章 C++基础 1 1.1 C++简介 1 1.1.1 C++语言的起源 1 1.1.2 C++与面向对象的程序设计 1 1.1.3 C++的特点 2 1.1.4 C++术语 2 1.1.5 C++程序示例 2 1.2 变量、表达式及赋值语句 4 1.2.1 标识符 4 1.2.2 ...

    c++实训游戏开发 扫雷项目

    这个项目不仅能够帮助你巩固C++基础知识,还能让你掌握面向对象编程技巧,理解游戏逻辑和交互设计。 首先,C++是编程领域中一种强大的、通用的编程语言,尤其适用于系统软件、游戏开发和高性能计算。它提供了丰富的...

    C++MFC教程

    1、需要有好的C/C++基础。正所谓“磨刀不误砍柴工”,最开始接触VC时不要急于开始Windows程序开发,而是应该进行一些字符界面程序的编写。这样做的目的主要是增加对语言的熟悉程度,同时也训练自己的思维和熟悉一些...

    扫描器 C++源码编写

    - C++扫描器源码通常包括一个主循环,该循环从输入流中获取字符,调用状态转换函数,并生成标记。 - 另外,还需要定义各种枚举类型或结构体来表示标记类型,以及存储标记的类或结构。 7. **学习资源**: - ...

Global site tag (gtag.js) - Google Analytics