C++ 实验五 NO.1 定义一个student类包含成员变量姓名,年龄,学号,用多文件组织类, 在student类中重载构造函数,用多种方式对该类的对象初始化

2023-11-12

题目

//*******************************************************************************************************************
//*程序作者:冰糖
//*章   节:实验五
//*最后修改日期:2019年3月31日 
//*题   目:
//实验目的
/*1)	掌握类的定义,根据具体要求设计类。能够根据类来创建对象。
  2)	掌握拷贝构造函数的实现方法。
  3)	掌握静态数据成员和静态函数的使用方法。
  4)	理解友元的概念和掌握友元的使用方法。
  5)	掌握对象数组、对象指针的使用方法。*/
//        1.
//         	定义一个student类
//         	包含成员变量姓名,年龄,学号
//         	包含成员函数在屏幕上显示学生的姓名,年龄,学号
//         	包含构造函数,对成员变量初始化
//         	创建此类的对象,测试构造函数的调用
//         	验证成员函数功能
//        2.
//        	用多文件组织类(student.h,student.cpp, main.cpp),完成上述工作。
//        3.
//         	在student类中重载构造函数,用多种方式对该类的对象初始化
//         	测试构造函数的调用顺序
//        4.
//         	向student类添加:
//         	构造函数:实现动态内存分配
//         	析构函数:释放已分配的内存
//         	测试构造函数和析构函数的调用顺序
//        5.
//         	定义一个课程类 (course.h, course.cpp)
//         	包含课程名和该课程的学分
//         	编写课程类的构造函数
//         	编写课程类的拷贝构造函数
//         	定义课程对象,测试构造函数和拷贝构造函数
//***********************************************************************************************************************8 

main.cpp

#include<iostream> 
using namespace std;
#include"student.h"
#include"student.cpp"
#include"course.h"
#include"course.cpp"
int main()
{
	Student stu1;
	Course cou1;
	stu1.getInfo();
	cou1.getInfo();
	Student stu2(stu1);//*************************************用stu1初始stu2**************************************** 
	Course cou2(cou1);//*************************************用cou1初始cou2****************************************
	stu2.getInfo();
	cou2.getInfo();
	return 0;
}
 

student.cpp

#include"student.h"
#include<string.h>
#include<iostream>
using namespace std;
Student::Student()
{
	cout<<"**********************************************************\n";
	cout<<"请按提示输入学生信息:"<<endl;
	cout<<"姓名:"<<endl;
	cin>>name;
	cout<<"年龄:"<<endl;
	cin>>age;
	cout<<"学号:"<<endl;
	cin>>stuNum;
	cout<<"调用student构造函数成功......"<<endl;
}
Student::Student(const Student &obj)
{
	cout<<"**********************************************************"<<endl;
	strcpy(name,obj.name);
	age=obj.age;
	stuNum=obj.stuNum;
	cout<<"调用student拷贝构造函数......"<<endl;
} 
void Student::getInfo()
{
	cout<<"**********************************************************\n";
	cout<<"学生基本信息如下:"<<endl;
	cout<<"姓名:"<<name<<endl
		<<"年龄:"<<age<<endl
		<<"学号:"<<stuNum<<endl; 
} 
Student::~Student()
{
	cout<<"**********************************************************\n";
	//delete[] name;
	cout<<"调用student析构函数成功......"<<endl;	
}

student.h

#ifndef STUDENT_H
#define STUDENT_H
/*#include<iostream>
#include<string.h>
using namespace std;*/
class Student
{
	private:
		char name[20];
		int age;
		int stuNum;
	public:
		Student();
		Student(const Student &obj);
		void getInfo();
		~Student();
};
#endif

course.cpp

#include"course.h"
#include<string.h>
#include<iostream>
using namespace std;
Course::Course()
{
	cout<<"**********************************************************\n";
	cout<<"请输入课程名:"<<endl;
	cin>>course;
	cout<<"请输入该门课程的成绩:"<<endl;
	cin>>score;
	cout<<"调用course构造函数......" <<endl;
}
Course::Course(const Course &obj)
{
	cout<<"**********************************************************\n";
	strcpy(course,obj.course);
	score=obj.score;
	cout<<"调用course拷贝构造函数......"<<endl;
}
void Course::getInfo()
{
	cout<<"**********************************************************\n";
	cout<<"课程相关信息如下:"<<endl
		<<"课程名:"<<course<<endl 
		<<"分数:"<<score<<endl; 
}
Course::~Course()
{
	cout<<"**********************************************************\n";
	cout<<"调用course析构函数......"<<endl;
}

course.h

#include"course.h"
#include<string.h>
#include<iostream>
using namespace std;
Course::Course()
{
	cout<<"**********************************************************\n";
	cout<<"请输入课程名:"<<endl;
	cin>>course;
	cout<<"请输入该门课程的成绩:"<<endl;
	cin>>score;
	cout<<"调用course构造函数......" <<endl;
}
Course::Course(const Course &obj)
{
	cout<<"**********************************************************\n";
	strcpy(course,obj.course);
	score=obj.score;
	cout<<"调用course拷贝构造函数......"<<endl;
}
void Course::getInfo()
{
	cout<<"**********************************************************\n";
	cout<<"课程相关信息如下:"<<endl
		<<"课程名:"<<course<<endl 
		<<"分数:"<<score<<endl; 
}
Course::~Course()
{
	cout<<"**********************************************************\n";
	cout<<"调用course析构函数......"<<endl;
}

运行结果

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 实验五 NO.1 定义一个student类包含成员变量姓名,年龄,学号,用多文件组织类, 在student类中重载构造函数,用多种方式对该类的对象初始化 的相关文章

  • 带有 Windows 窗体应用程序的地图

    我正在构建一个需要地图的 C Winforms 应用程序 例如 Google 地图 Bing 地图等 但我对 ToU 许可 非商业使用等感到非常困惑 我的问题 您建议将哪个地图提供商 最好是免费的 嵌入到 winforms 应用程序中以用于
  • 强制 const 存储返回的值 value

    这就是我想要实现的目标 struct test const test returnconst return test test returnnonconst return test int main test t1 returnnoncon
  • 类变量在其定义范围内?

    这可能是一个愚蠢的问题 我正在尝试制作文本泥 我需要每个 Room 类包含其他 Room 类 以便在尝试移动到它们或从它们获取信息时可以引用 但是 我不能这样做 因为我显然无法在其定义中声明一个类 那么 我该怎么做呢 当我说我做不到时 我的
  • 如何在运行 ASP.NET 页面时以编程方式设置表格背景?

    我有一个 aspx 页面 其默认背景颜色是一种 当选择单选按钮的某个选项时 我需要能够以编程方式更改它 我尝试设置表的 ID 字段 但似乎无法在 C 代码隐藏文件中访问它 我原来的表是 table style width 100 backg
  • 你好世界,裸机 Beagleboard

    我正在尝试在我的 Beagleboard xm rev 上运行 hello world 类型的程序 C 通过调用 Cputs功能来自装配 到目前为止 我一直使用这个作为参考 http wiki osdev org ARM Beagleboa
  • 递归显式模板实例化以导出库的符号

    在我之前的问题中我问过递归显式模板实例化是否可能 https stackoverflow com questions 7395113 is recursive explicit template instantiation possible
  • Web API 复杂参数属性均为 null

    我有一个 Web API 服务调用可以更新用户的首选项 不幸的是 当我从 jQuery ajax 调用中调用此 POST 方法时 请求参数对象的属性始终为 null 或默认值 而不是传入的值 如果我使用 REST 客户端调用相同的方法 我使
  • iPhone 编程游戏

    使用 Objective C 还是 C 为 iPhone 编写游戏最好 像 Flight Control 这样的游戏会用什么语言编写 图形应采用什么格式才能在 iPhone 上正确显示并快速加载 像 Flight Control 这样的游戏
  • 轮廓积分算法 C++

    我正在尝试编写一个应用数学程序来计算复平面中的轮廓积分 对于初学者来说 我想为梯形方法编写一个算法 但我有点坚持理解它会是什么样子 毕竟 我们通常将梯形方法视为 2D 图 而这里我们有 f C gt C 所以我们谈论的是 4D 最终我希望用
  • 如何使用 Regsvr32 注册 .NET COM DLL?

    我有一个使用 COM DLL 的 VB6 应用程序 该DLL是用C 编写的 在 C 项目属性中 我检查了 Register for COM interop 选项 VB6 应用程序在我的开发机器上运行良好 C 代码完全遵循以下格式 CodeP
  • C# - 如何从 Steam 交易 API 获取图标的 URL(编码)

    以下是 API 为每个项目返回的 XML 部分
  • 带有 Prism 区域适配器的 AvalonDock

    我看到了一些关于 SO 的问题 但似乎没有一个适合我 我希望能够使用伟大的使用 Prism 4 但是 所有示例区域适配器均适用于 Avalondock 1 x 系列 我无法使其工作 有人有关于如何为 AvalonDock 的 LayoutD
  • 在 C++ 中从另一个数组初始化结构内的数组[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions struc
  • 在 4.x 内核上的 64 位内存中查找系统调用表

    我正在尝试编写一个简单的内核模块来查找 Linux 中的 sys call table 但遇到了一些麻烦 我在这里找到了 32 位 Linux 的基本指南 https memset wordpress com 2011 03 18 sysc
  • 对嵌套属性使用 XmlAttributeOverrides

    我试图使用 XmlAttributeOverrides 来控制类序列化后哪些类属性出现在 xml 中 它适用于 根 类上的属性 但不适用于嵌套属性 这是一个简单的例子来说明我想要完成的任务 我的类层次结构如下 public class Ma
  • 为什么 istream/ostream 慢

    于 50 40http channel9 msdn com Events GoingNative 2013 Writing Quick Code in Cpp Quickly http channel9 msdn com Events Go
  • 如何设置扬声器声音增强设置

    如何以编程方式设置 Windows 扬声器设置 增强 选项卡 中可用的声音效果 恐怕这是不可能的 参见 Maurits 对他的评论blog http blogs msdn com b matthew van eerde archive 20
  • 为 winforms ComboBox 中的单个项目着色?

    我遇到了一个困境 我有一个表单 其中包含许多组合框 其中包含在某些情况下可能无效 过时的信息 选项 项目 我不能简单地从项目中删除过时的信息 但我确实想在选项无效时为用户提供视觉线索 我正在考虑对项目进行着色 可能是红色 来指示它们是否无效
  • Xamarin Forms:System.Reflection.TargetInitationException:调用目标已引发异常

    我正在为这个问题苦苦挣扎 我只是创建了一个简单的跨平台页面 这里是 XAML 代码
  • 在 C++11 中设置 std::thread 优先级的可移植方法

    在后 C 11 世界中设置 std thread 实例的优先级的正确方法是什么 是否有一种至少在 Windows 和 POSIX Linux 环境中有效的可移植方法 或者是获取句柄并使用可用于特定操作系统的任何本机调用的问题 无法通过 C

随机推荐

  • 搜索引擎技术简介

    搜索引擎技术简介 1 系统结构 抓取网页建立索引库在索引库中搜索结果排序主要的数据结构 倒排索引 inverted indexing list 这种数据结构广泛地应用在今天包括Web搜索引擎在内的各种信息检索系统中 其典型的总体结构 如下图
  • 基于MMX指令集的程序设计简介

    基于MMX指令集的程序设计简介 作者 Alex Farber出处 http www codeproject com cpp mmxintro asp MMX技术简介 Intel 公司的MMX 多媒体增强指令集 技术可以大大提高应用程序对二维
  • SpringBoot+Vue全栈开发(图书商城项目回顾)

    参考资料 1天搞定SpringBoot Vue全栈开发 后端 开发框架 SpringBoot Mybatis 开发工具 IDEA Navicat 所有文件 src main java booksystem pom xml Project O
  • Vue项目中怎么配置在src文件下@别名

    方法一 在实际项目中 我们通常可以将src目录设置为 目录 这样引入文件时候可以一目了然而且使用起来非常方便 可以提高我们的开发效率 代表的是src文件夹 这样将来文件过多 找的时候也方便 而且也还有提示 本文介绍如何在实际项目中使用 作为
  • Linux——HTTP协议

    超文本传输协议 HTTP HyperText Transfer Protocol 互联网上应用最为广泛的一种网络协议 所有的WWW文件都必须遵守这个标准 设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法 之所以叫做超文本 是
  • Golang 几个不错的实用函数库

    文章目录 samber lo thoas go funk duke git lancet elliotchance pie gookit goutil dablelv cyan 大咖好呀 我是恋喵大鲤鱼 Golang 标准库是 Go 语言自
  • pointer-like classes 开放智能指针

    template
  • darktrace 亮点是使用的无监督学习

    https blog csdn net weixin 34337265 article details 86020998 转载于 https www cnblogs com diyunpeng p 11611392 html
  • Numpy计算分母为n-1的修正方差(贝塞尔校正)

    对于一个序列值 import numpy as np arr value np array 1 2 3 通常方法 一般的计算方法计算的方差 0 666666666 计算公式如下 s 2 1
  • 【牛客网华为机试】HJ32 密码截取

    题目 描述 Catcher是MCA国的情报员 他工作时发现敌国会用一些对称的密码进行通信 比如像这些ABBA ABA A 123321 但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解 比如进行下列变化 ABBA gt 12AB
  • css怎样去除表格内边距,CSS语言border-spacing表格边距控制

    在前面我看讲过表格的边框分离与合并 现在就给大家讲下表格分离后如何用CSS语言中的border spacing属性控制表格间的宽度 语法 border spacing px px 说明 border spacing第一个是水平间隔 第二个是
  • C++内存布局和内存分配

    看了很多 收集若干篇 内存布局1 内存布局2 内存分配 内存布局图解析 mmap内存映射 brk内存分配原理 拓展 从内核文件系统看文件的读写过程 栈溢出 一般都是临时变量给的太大超过8MB
  • 初识c语言(上)

    目录 前言 什么是C语言 第一个C语言代码 通用类型 如何定义变量与常量 结束 前言 本篇只对C语言做基础的介绍 对C语言基础有个大概的了解 一 什么是c语言 C语言是门语言 就像人与人之间交流用汉语 英语 法语等等 而C语言是实现人机交流
  • PHP发送邮件(PHPMailer)

    作为PHP入门开发者 常常有这种述求 自己的网站中需要添加一个使用自己的域名作为发件人邮件地址的自动发送邮件的方法 用于诸如给用户发送验证码 通知信息等 比如 我的某个用户注册模块 需要使用register jjonline cn作为邮件发
  • 你真的了解 Synchronized 吗?

    前言 Synchronized想必大家在工作中一定有接触过 它算是Java并发场景下实现多线程安全一种比较直接的操作 有人会说它慢 确实 在JDK1 6之前 它有另一个名称叫做 重量级锁 但是从1 6版本起 它就在不断被优化 现如今已经是很
  • /usr/bin/ld: libx264.a(dct-a.o): relocation R_X86_64_32 against `.rodata‘ can not be used when makin

    最近在编译x264的时候出现了错误 usr bin ld libx264 a dct a o relocation R X86 64 32 against rodata can not be used when making a PIE o
  • package.json详解

    在package json中配置环境变量 scripts dev cross env NODE ENV development platform h5 webpack mode development config webpack conf
  • 【华为诺亚方舟实验室】2022届毕业生招聘--决策(强化学习)推理方向

    深度强化学习实验室 官网 http www neurondance com 论坛 http deeprl neurondance com 来源 华为诺亚方舟实验室官微 诺亚方舟实验室 Noah s Ark Lab 是华为公司从事人工智能基础
  • Redis系列之基础知识

    文章目录 一 Redis是什么 Redis架构 二 为什么使用Redis 三 Redis支持的数据类型 四 Redis支持的特殊数据结构 五 Redis持久化 RDB Redis DataBase AOF Append Only File
  • C++ 实验五 NO.1 定义一个student类包含成员变量姓名,年龄,学号,用多文件组织类, 在student类中重载构造函数,用多种方式对该类的对象初始化

    文章目录 题目 main cpp student cpp student h course cpp course h 运行结果 题目 程序作者 冰糖 章 节 实验五 最后修改日期 2019年3月31日 题 目 实验目的 1 掌握类的定义 根