![](https://img-blog.csdnimg.cn/20200202113521215.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++入门/实验课作业
C++入门/实验课作业
<Running Snail>
奇点将至
展开
-
实验7.2 定义一个车(vehicle)基类,使用虚函数实现动态多态性
题目定义一个车(vehicle)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。观察虚函数的作用。C++代码如下:#include<iostream>using namespace std;class vehicle{public: void Run(){cout<<"Vehicle is runnin原创 2020-06-28 21:27:23 · 7739 阅读 · 1 评论 -
实验7.1 对Point类重载“++”(自增)、“–”(自减)运算符
题目定义Point类,有坐标_x,_y两个成员变量;对Point类重载“++”(自增)、“–”(自减)运算符,实现对坐标值的改变。C++代码如下:#include<iostream>using namespace std;class Point{private: int x,y;public: Point(int a,int b){x=a,y=b;} Point& operator++(); Point operator++(int); Point&原创 2020-06-28 21:24:06 · 3878 阅读 · 0 评论 -
实验7 多态性
一、 实验目的掌握运算符重载的方法;学习使用虚函数实现动态多态性。二、 实验任务定义Point类,有坐标_x,_y两个成员变量;对Point类重载“++”(自增)、“–”(自减)运算符,实现对坐标值的改变。定义一个车(vehicle)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。观察虚函数的作用。(选做)对实验六中的people类原创 2020-06-28 21:18:37 · 1113 阅读 · 0 评论 -
实验8 群体类、流类库与输入/输出(4学时)
一、 实验目的了解链表类的定义与实现,学习其使用方法;了解栈类的定义与实现,学习其使用方法;了解队列类的定义与实现,学习其使用方法;了解C++标准模板库STL的使用方法。熟悉流类库中常用的类及其成员函数的用法。学习标准输入输出及格式控制;学习对文件的应用方法(二进制文件、文本文件)。二、 实验任务编写程序link.h实现教材中例9.6的链表类。在测试程序lab9_1.cpp中定义两个整型链表A和B,分别插入5个元素,然后把B中的元素加入A的尾部。(题解:实验8.1 链表类的定义与实原创 2020-06-28 20:38:42 · 2756 阅读 · 1 评论 -
实验8.2 队列类的定义与实现
题目编写程序queue.h,用链表实现队列(或栈)类。在测试程序lab9_2.cpp中定义一个整型队列(或栈)对象,插入5个整数,压入队列(或栈),再依次取出并显示出来。C++代码如下://node.h#ifndef NODE_H//结点类模板#define NODE_Htemplate<class T>class linkedlist;//新添template<class T>//新添class node{private: node<T>* ne原创 2020-06-15 21:39:08 · 2002 阅读 · 1 评论 -
实验8.3 C++标准模板库(STL)中的双向队列类(deque)
题目使用C++标准模板库(STL)中的双向队列类(deque)重新实现上一小题。C++代码如下:#include <iostream> #include <deque> using namespace std;typedef deque<int>INTDEQUE;int main(){ INTDEQUE A; for (int i = 0; i < 5; i++) { A.push_back(i);} cout << "原创 2020-06-15 21:39:34 · 1108 阅读 · 0 评论 -
实验8.1 链表类的定义与实现
题目参照教材中链表类LinkedList的定义(教材中的例程9-6.h),给出其实现,注意合理使用Node类(教材中的例程9-3.h)的成员函数。在测试程序中定义整型链表A和B,分别插入5个元素,使用循环语句显示链表中的元素,然后把B中的元素加入A的尾部,再显示出来。C++代码如下://node.h#ifndef NODE_H//结点类模板#define NODE_Htemplate<class T>class linkedlist;//新添template<class T原创 2020-06-15 21:39:22 · 2838 阅读 · 2 评论 -
实验6.3 定义一个车(vehicle)基类(虚基类)
题目定义一个车(vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车(bicycle)类有高度(Height)等属性,汽车(motorcar)类有座位数(SeatNum)等属性。从bicycle和motorcar派生出摩托车(motorcycle)类,在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什么问题?编程试试看。不把vehicle设置为虚基类原创 2020-06-08 17:46:28 · 19303 阅读 · 0 评论 -
实验6.2 定义一个基类BaseClass,观察构造函数和析构函数的执行情况。
题目定义一个基类BaseClass,有整型成员变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。AC的C++代码如下:#include<iostream>using namespace std;class BaseClass{public: BaseClass(){cout<<"构造了BaseClass类的对象"<<endl;} ~ BaseClass(){cout<<"析构了BaseClass类原创 2020-06-08 17:41:47 · 10531 阅读 · 1 评论 -
实验6.1 定义一个基类Animal
题目定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge(int n)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程试试看。AC的C++代码如下:#include<iostream>using namespace std;class Animal{public: int age;};class dog:public Animal{public: void SetAge(int n){ag原创 2020-06-08 17:39:57 · 15533 阅读 · 1 评论 -
实验6 继承与派生
一、 实验目的学习定义和使用类的继承关系,定义派生类;熟悉不同继承方式下对基类成员的访问控制;学习利用虚基类解决二义性问题。二、 实验任务定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge(int n)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程试试看。定义一个基类BaseClass,有整型成员变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。定义一个车(vehic原创 2020-06-08 17:36:33 · 3328 阅读 · 0 评论 -
实验5.6 定义包含5个元素的对象数组,每个元素都是Employee类型的对象
题目定义包含5个元素的对象数组,每个元素都是Employee类型的对象。Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性。AC的C++代码如下:#include<iostream>#include <string.h>using namespace std;class Employee{priv原创 2020-06-01 19:30:55 · 7684 阅读 · 3 评论 -
实验5.5 定义一个Employee类
题目定义一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性,实现并测试这个类。AC的C++代码如下:#include<iostream>#include <string.h>using namespace std;class Employee{private: char name[10];原创 2020-06-01 19:28:50 · 10121 阅读 · 4 评论 -
实验5.4 编程实现两字符串的连接(使用string类定义字符串对象)
题目使用string类定义字符串对象,实现两字符串的连接。AC的C++代码如下:#include<iostream>#include<string>using namespace std;int main(){ string s1,s2; cout<<"请输入第一个字符串:"<<endl; cin>>s1; cout<<"请输入第二个字符串:"<<endl; cin>>s2; s1+=原创 2020-06-01 19:26:47 · 7136 阅读 · 1 评论 -
实验5.3 编程实现两字符串的连接(使用字符数组)
题目编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数AC的C++代码如下:#include<iostream> using namespace std; int main() { int m,n; //让用户输入一个长度值,用来做动态分配的大小(要比字符串长度大) cout<<"请输入两个字符串的长度:"<<endl; cin>>n>>m; char *str1=new char[n]; char *原创 2020-06-01 19:24:04 · 12946 阅读 · 1 评论 -
实验5.2 动态内存分配生成动态数组完成矩阵转置
题目使用动态内存分配生成动态数组来完成矩阵转置,使用指针实现函数的功能AC的C++代码如下:#include<iostream> using namespace std; void transpose(int **a,int **b,int row,int col){ for(int i=0;i<row;i++) for(int j=0;j<col;j++) b[j][i]=a[i][j];}int main(){ int row,col; co原创 2020-06-01 19:21:52 · 5922 阅读 · 1 评论 -
实验5.1 编写并测试3×3矩阵转置函数
题目编写并测试3×3矩阵转置函数,使用数组保存3×3矩阵AC的C++代码如下:#include<iostream>#include <algorithm>using namespace std;int a[3][3];void transpose(int a[3][3]){ for(int i=0;i<3;i++)//只置换一半(右上三角形区域) for(int j=i+1;j<3;j++) swap(a[i][j],a[j][i]);原创 2020-06-01 15:35:22 · 12890 阅读 · 3 评论 -
实验5 数组、指针与字符串
一、 实验目的学习使用数组数据对象;学习字符串数据的组织和处理;学习标准C++库的使用;掌握指针的使用方法;练习通过debug观察指针的内容及其所指的对象的内容;练习通过动态内存分配实现动态数组,并体会指针在其中的作用;分别使用字符数组和标准C++库练习处理字符串的方法。二、 实验任务编写并测试3×3矩阵转置函数,使用数组保存3×3矩阵。使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。使用原创 2020-06-01 15:33:17 · 2803 阅读 · 1 评论 -
实验4.2 实现客户机(CLIENT)类
题目实现客户机(CLIENT)类。定义字符型静态数据成员ServerName,保存其服务器名称;整型静态数据成员ClientNum,记录已定义的客户数量;定义静态函数ChangeServerName()改变服务器名称。在头文件client.h中定义类,在文件client.cpp中实现,在文件test.cpp中测试这个类,观察相应的成员变量取值的变化情况。AC的C++代码如下:类声明头文件 client.h //client.h #ifndef CLIENT_H #define CLIENT_H原创 2020-05-31 22:08:20 · 13050 阅读 · 2 评论 -
实验4 C++程序的结构(4学时)
一、 实验目的观察程序运行中变量的作用域、生存期和可见性;学习类的静态成员的使用;学习多文件结构在C++程序中的使用;二、 实验任务运行下面的程序,观察变量x、y的值。//lab5_1.cpp#include <iostream.h>void fn1();int x = 1, y = 2;int main(){cout << “Begin…” << endl;cout << "x = " << x << e原创 2020-05-31 22:00:56 · 2051 阅读 · 0 评论 -
实验3.3 设计一个用于人事管理的People(人员)类
题目(选做)设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中“出生日期”定义为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。...原创 2020-05-31 21:59:49 · 21346 阅读 · 5 评论 -
实验3.2 定义一个简单的Computer类
题目定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,定义并实现这个类。AC的C++代码如下:#include <iostream> using namespace std; enum CPU_rank {P1=1,P2,P3,P4,P5,P6,P7}; class CPU { private:原创 2020-05-31 21:58:26 · 20353 阅读 · 2 评论 -
实验3.1 定义一个CPU类,观察构造函数和析构函数的调用顺序
题目定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU_Rank,定义为enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7},frequency为单位是MHz的整型数,voltage为浮点型的电压值。观察构造函数和析构函数的调用顺序。AC的C++代码如下:#include<iostream>using namespace std;enum CPU_原创 2020-05-31 21:57:20 · 6910 阅读 · 0 评论 -
实验3 类与对象
一、 实验目的掌握类的定义和使用。掌握类的定义和对象的声明。复习具有不同访问属性的成员的访问方式。观察构造函数和析构函数的执行过程。学习类的聚集使用方法。使用VC++的debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。二、 实验任务定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU_Rank,定义为enum CPU_Rank {P1=1,P原创 2020-05-31 21:54:58 · 764 阅读 · 0 评论 -
实验2.4 使用系统函数pow(x,y)计算xy的值
题目使用系统函数pow(x,y)计算xy的值,注意包含头文件math.hAC的C++代码如下:#include<iostream>#include<math.h> using namespace std;int main(){ double x,y; cout<<"Please enter x and y\n"; cin>>x>>y; cout<<"The answer is\n"; cout<<p原创 2020-05-31 21:51:04 · 4734 阅读 · 0 评论 -
实验2.3 使用重载函数模板重新实现上小题中的函数Max1
题目使用重载函数模板重新可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值AC的C++代码如下:#include<iostream>#include<algorithm>using namespace std;template <class T>T Max1(T a,T b){ return max(a,b);}template <class T>T Max1(T a,T b,T c){ return max(max(原创 2020-05-31 21:47:44 · 969 阅读 · 0 评论 -
实验2.2编写重载函数Max1
题目编写重载函数Max1可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。AC的C++代码如下:#include<iostream>#include<algorithm>using namespace std;int Max1(int a,int b){ return max(a,b);}int Max1(int a,int b,int c){ return max(max(a,b),c);}double Max1(double a,do原创 2020-05-31 21:45:39 · 5947 阅读 · 0 评论 -
编写一个函数把华氏温度转换为摄氏温度
题目编写一个函数把华氏温度转换为摄氏温度,转换公式为:C = (F - 32) * 5/9AC的C++代码如下:#include<iostream>using namespace std;double Celsius(int f){ return 1.0*(f-32)*5/9;}int main(){ double f; cout<<"Please enter the fahrenheit\n"; cin>>f; cout<<"原创 2020-05-31 21:44:10 · 13637 阅读 · 2 评论 -
实验2 函数的应用
实验2 函数的应用一、 实验目的掌握函数的定义和调用方法。练习重载函数的使用。练习函数模板的使用。练习使用系统函数。学习使用VC++的debug调试功能,使用step into追踪到函数内部。二、 实验任务编写一个函数把华氏温度转换为摄氏温度,转换公式为:C = (F - 32) * 5/9。编写重载函数Max1可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。使用重载函数模板重新实现上小题中的函数Max1。使用系统函数pow(x,y)计算xy的值,注意包含头文件原创 2020-05-31 21:42:55 · 465 阅读 · 0 评论 -
test1 exam5定义一个可以精确表示年、月、日、小时、分、秒的结构体
定义一个表示时间的结构体,可以精确表示年、月、日、小时、分、秒;提示用户输入年、月、日、小时、分、秒的值,然后完整地显示出来#include<iostream>using namespace std;struct TimeStruct{ int year; int month; int day; int hour; int min; int sec;};int main(){ TimeStruct Time; cout<&原创 2020-05-14 16:15:49 · 3412 阅读 · 1 评论 -
test1 exam3编程计算图形的面积
程序可计算圆形、长方形、正方形的面积,运行时先提示用户选择图形的类型,然后,对圆形要求用户输入半径值,对长方形要求用户输入长和宽的值,对正方形要求用户输入边长的值,计算出面积的值后将其显示出来。#include<iostream>using namespace std;//圆形面积double circle(int r){ return 3.14 * r * r;}//长方形面积int rectangle(int a, int b) { return a * b;}//原创 2020-05-14 16:13:05 · 1038 阅读 · 0 评论 -
定义一个Point类,派生出Circle类,计算各派生类对象的面积Area()
定义一个Point类,派生出Circle类,计算各派生类对象的面积Area()#include<iostream> using namespace std; class Point { protected: int x,y; public: Point(){} int GetX() {...原创 2020-04-24 10:18:35 · 5537 阅读 · 1 评论 -
读取数量不定的输入数据
#include<iostream>int main(){ int sum=0,value=0; while(std::cin>>value) sum+=value; std::cout<<"Sum is:"<<sum<<std::endl; return 0; }原创 2020-01-24 08:43:07 · 327 阅读 · 1 评论 -
第一个程序
#include<iostream>int main(){ std::cout<<"Hellow word!"; return 0; }原创 2020-01-22 11:33:37 · 230 阅读 · 0 评论