《C++大学教程》3.11修改GradeBook类

按如下要求修改GradeBook类:
a)包括第二个 string 数据成员,它表示授课教师的名字。
b)提供一个可以改变教师姓名的设置函数,以及一个可以得到该名字的获取函数。
c)修改构造函数,它指定了两个形参,一个针对课程名称,另一个针对教师姓名。
d)修splayessage使得它首先输出信息和课程名称,然后输出“Thiscourse is presented by:”,后跟教师姓名。

第一种情况:命名一个GradeBook.h文件

以下文件为GradeBook.h文件,不可以直接运行。

//3.11修改GradeBook类
#include <iostream>
#include <string>
// using namespace std;单独的类文件,不能使用using命令class GradeBook
{
public:GradeBook(std::string course_name, std::string teacher_name)//构造函数{setCourseName(course_name);setCourseTeacher(teacher_name);}void setCourseName(std::string name){if (name.size() <= 25)courseName = name;if (name.size() > 25){courseName = name.substr(0, 25);std::cerr << "name\"" << name << "\"exceeds maximum length(25).\n"<< "Limiting courseName to first 25 characters.\n"<< std::endl;}}std::string getCourseName() const{return courseName;}void setCourseTeacher(std::string name){courseTeacher = name;}std::string getCourseTeacher() const{return courseTeacher;}void displayMessage() const{std::cout << "Welcome eto the grade book for\n"<< getCourseName() << "!\nThis course is presented by "<< getCourseTeacher() << std::endl;}private:std::string courseName, courseTeacher;
};

第二种情况:采用GradeBook.h和GradeBook.cpp两个文件

1.头文件GradeBook.h用于描述类的公共接口不暴露类的成员函数的实现。(给客户提供他需要输入的信息,但看不到具体实现过程)
2.GradeBook.cpp中GradeBook成员函数的定义描述了GradeBook类的具体实现细节。(类实现程序员编写的)

// GradeBook.h#include <iostream>
#include <string>class GradeBook
{
public:GradeBook(std::string, std::string);void setCourseName(std::string);std::string getCourseName() const;void setCourseTeacher(std::string);std::string getCourseTeacher() const;void displayMessage() const;private:std::string courseName, courseTeacher;
};

//GradeBook.cpp#include <iostream>
#include "GradeBook.h"
using namespace std;GradeBook::GradeBook(string course_name, string teacher_name){setCourseName(course_name);setCourseTeacher(teacher_name);}void GradeBook::setCourseName(string course_name){if (course_name.size() <= 25)courseName = course_name;if (course_name.size() > 25){courseName = course_name.substr(0, 25);cerr << "name\"" << course_name << "\"exceeds maximum length(25).\n"<< "Limiting courseName to first 25 characters.\n"<< endl;}}
string GradeBook::getCourseName() const{return courseName;}void GradeBook::setCourseTeacher(string teacher_name){courseTeacher = teacher_name;}
string GradeBook::getCourseTeacher() const{return courseTeacher;}void GradeBook::displayMessage() const{cout << "Welcome eto the grade book for\n"<< getCourseName() << "!\nThis course is presented by "<< getCourseTeacher() << endl;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/629658.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编写RedisUtil来操作Redis

目录 ​编辑 Redis中文网 第一步&#xff1a;建springboot项目 第二步&#xff1a;导依赖 第三步&#xff1a;启动类 第四步&#xff1a;yml 第五步&#xff1a;Redis配置类 第六步&#xff1a;测试类 第七步&#xff1a;编写工具类 RedisUtil 第八步&#xff1a;编写…

Python 面向对象之继承

目录 概述 继承的作用 缺点 单继承实现 设置person类 创建子类学生类 实例化student类 创建worker子类 实例化worker类 子类独有属性 父类私有属性 子类构造函数修改 实例化子类 多继承实现 创建基类 创建父亲类 创建母亲类 创建子类 引入基类 创建子类并继…

现代雷达车载应用——第3章 MIMO雷达技术 3.5节 汽车MIMO雷达的挑战

经典著作&#xff0c;值得一读&#xff0c;英文原版下载链接【免费】ModernRadarforAutomotiveApplications资源-CSDN文库。 3.5 汽车MIMO雷达的挑战 在本节中&#xff0c;我们讨论了汽车MIMO雷达的设计挑战&#xff0c;包括多径反射存在时的测角、波形正交性和高效高分辨率角…

如何保证新加入的依赖版本与当前项目的其他相关依赖版本兼容?或者如何确保依赖版本升级后适合当前项目?或者如何保证新引入的依赖版本适合当前项目?

如何保证新加入的依赖版本与当前项目的其他相关依赖版本兼容&#xff1f;或者如何确保依赖版本升级后适合当前项目&#xff1f;或者如何保证新引入的依赖版本适合当前项目&#xff1f; 如题&#xff0c;可通过maven仓库找出各个版本之间的对应关系举例 如题&#xff0c;可通过m…

C/C++利用指针输出二维数组元素

方法一 用指向单个整型常量的指针p依次访问每个元素 int main() {int i, j;int a[2][3] { 1,2,3,4,5,6 };int* p &a[0][0];for (i 0; i< 2; i) {for (j 0; j < 3; j) {cout << left << setw(3) << *p;p;}cout << endl;}return 0; } 方法…

二阶构造设计模式

目录 构造函数回顾 深入思考 实验 构造函数的真相 半成品对象 引入二阶构造设计模式 设计理念 二阶构造设计模式图 二阶构造示例 完整demo 小结 构造函数回顾 类的构造函数用于对象的初始化。构造函数与类同名并且没有返回值。构造函数在对象定义时自动被调用 深入…

iphone 5s的充电时序原理图纸,iPAD充电讲解

上一篇写了iphone 5的时序。那是电池供电的开机时序。iphone 5s也是差不多的过程&#xff0c;不说了。现在看iphone5s手机充电时候的时序。iphone5s充电比iphone5充电简单了很多。 首先是usb接口接到手机上&#xff0c;usb线连接到J7接口上。J7接口不只是接usb&#xff0c;还能…

[bat批处理] 一键清理 Windows10 系统垃圾

文章目录 &#x1f680;使用批处理一键清理 Windows10 系统垃圾&#x1f528;编写批处理文件 &#x1f680;使用批处理文件&#x1f528;注意事项&#x1f680;总结 &#x1f680;使用批处理一键清理 Windows10 系统垃圾 Windows10 系统在使用过程中会产生大量的临时文件、日志…

kind类型是namespace和Resource Quota的yaml如何编写?有哪些关键字?

本次介绍两个关联度很高的类型&#xff0c;Namespace和Resource Quota。 Namespace基本说明 在 Kubernetes 中&#xff0c;Namespace 是对集群的一种虚拟化分区&#xff0c;用于将资源&#xff08;如 Pod、Service、ReplicaSet 等&#xff09;进行逻辑隔离和组织。它是一种对…

基于YOLOv8深度学习的苹果叶片病害智能诊断系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

工作需求清单

现在的项目我需要做的&#xff1a; 前端 内容描述参考备注1加载3D模型加载从Blender导出的glb 3D模型文件基本模型加载[完成] 2023-11-72灯效果已完成光锥&#xff0c;应添加LED面板灯-基本灯光功能3风扇效果添加风扇叶片旋转效果-基本灯光功能4交互 在3D场景中添加交互选项&…

Linux搭建 Kubernetes(K8S)集群详情教程

当搭建 Kubernetes 集群时&#xff0c;涉及的详细步骤可能较多&#xff0c;以下是详细的 Kubernetes 单节点集群搭建步骤&#xff1a; 步骤 1: 准备工作 确保满足以下基本要求&#xff1a; 一台运行 Ubuntu 18.04 或更高版本的机器。2 GB 或更多内存。2 个 CPU 核心或更多。…

引领未来:话务数据展示大屏助力企业决策

在当今信息爆炸的时代&#xff0c;企业需要一个直观、高效的数据展示平台来帮助他们快速获取、分析和决策。山海鲸可视化话务数据展示大屏&#xff0c;就是这样一款引领企业迈向高效决策新纪元的产品。 一、什么是山海鲸可视化话务数据展示大屏&#xff1f; 山海鲸可视化是一款…

【不用找素材】ECS 游戏Demo制作教程(1) 1.15

一、项目设置 版本&#xff1a;2022.2.0f1 &#xff08;版本太低的话会安装不了ECS插件&#xff09; 模板选择3D URP 进来后移除URP&#xff08;因为并不是真的需要&#xff0c;但也不是完全不需要&#xff09; Name: com.unity.entities.graphics Version: 1.0.0-exp.8 点击…

HTML概述、基本语法(表格整理、标签、基本结构)

一、HTML概述 HTML指的是超文本标记语言 超文本&#xff1a;是指页面内可以包含图片、链接、声音、视频等内容 标记&#xff1a;标签&#xff08;通过标记符号来告诉浏览器页面该如何显示&#xff09; 我们可以打开浏览器&#xff0c;右击页面&#xff0c;点击查看网页源代码&…

Java队列-Disruptor 的使用

一、什么是 Disruptor 从功能上来看&#xff0c;Disruptor 是实现了“队列”的功能&#xff0c;而且是一个有界队列。那么它的应用场景自然就是“生产者-消费者”模型的应用场合了。 可以拿 JDK 的 BlockingQueue 做一个简单对比&#xff0c;以便更好地认识 Disruptor 是什么…

第二百六十九回

文章目录 概念介绍设置方法示例代码内容总结 我们在上一章回中介绍了Card Widget相关的内容&#xff0c;本章回中将介绍国际化设置.闲话休提&#xff0c;让我们一起Talk Flutter吧。 概念介绍 我们在这里说的国际化设置是指在App设置相关操作&#xff0c;这样可以让不同国家的…

书生·浦语大模型--第二节课作业

书生浦语大模型--第二节课作业 基础部分生成300字小故事hugging face 下载功能 进阶部分浦语灵笔的图文理解及创作部署Lagent 工具调用 Demo 创作部署 基础部分 生成300字小故事 hugging face 下载功能 hugging face被墙了&#xff0c;在本地电脑无论是不是科学上网&#xff…

STM32 定时器输入捕获2——捕获高电平时长

由上图我们可以知道&#xff0c;高电平时间t2-t1。在代码中&#xff0c;可以记录此时t1的时间然后再记录t2的时间&#xff0c;t2-t1&#xff0c;就是我们所想要的答案。 但是&#xff0c;还有更简单一点点的&#xff0c;当到达t1的时候&#xff0c;我们把定时器清零&#xff0c…

现代工程科技杂志现代工程科技杂志社现代工程科技编辑部2023年第21期目录

能源科技 配网故障停电原因及改进对策研究 上官安琪 110kV变电站电气自动化技术及应用策略 陈祥 变电运维误操作事故预控措施分析 高翔;韦婉 智能变电站变电运维安全与设备维护探究 温亮亮;覃万全 110kV变电站电气设计及其防雷保护案例研析 谢旭平 变电运维…