文件名称:C++程序设计语言实验三

介绍说明--下载内容均来自于网络,请自行研究使用

实验三:C++编程入门
一、实验内容
1.  类模版。
2.  运算符重载。
3.  友元。
4.  继承。
二、实验题目
1,  设计一个类SavingsAccount,定义一个静态数据成员记录存款的年利率(rate),该类的每个成员都包含一个私有的数据成员balance,表示该成员当前的存款数额。提供一个成员函数CalMonthlyInterest(),用以计算月利息(用balance乘以rate再除以12),并将这个月利息加入balance中。提供一个静态成员函数ModifyRate(),用以改变静态数据成员rate的值。定义两个不同的SavingsAccount对象saver1和saver2,当前存款数额balance分别为2000.00和3000.00。首先将rate设置为3%,计算每个存款人的月息并打印新的结果,然后将rate设置为4%,再次计算每个存款人的月息并打印新的结果。

2,  设计一个学生类student,包括学生学号、姓名、成绩;设计一个友元函数,比较某两个学生成绩的高低;读入一个文本文件(格式如示例studengt.txt,每行的学号、姓名、成绩之间用四个空格隔开)中所有学生的学号、姓名、成绩,输出最高成绩和最低成绩的学生信息(学号、姓名、成绩)。

3,  阅读下面例子,将题中的Time类声明为Data类的友元类,通过Time类中的display函数引用Data类的私有数据,输出年、月、日和时、分、秒。
#include <iostream>
using namespace std;
class Date;         //对Date类的提前引用声明
class Time         //定义Time类
{
public:
  Time(int,int,int);
  void display(Date &);  //display是成员函数,形参是Date类对象的引用
private:
  int hour;
  int minute;
  int sec;
};

class Date                //声明Date类
{
public:
  Date(int,int,int);
  friend void Time∷display(Date &);  //声明Time中的display函数为友元成员函数
private:
  int month;
  int day;
  int year;
};

Time∷Time(int h,int m,int s)  //类Time的构造函数
{
  hour=h;
  minute=m;
  sec=s;
}
void Time∷display(Date &d)    //display的作用是输出年、月、日和时、分、秒
{
  cout<<d.month<<″/″<<d.day<<″/″<<d.year<<endl; //引用Date类对象中的私有数据
  cout<<hour<<″:″<<minute<<″:″<<sec<<endl;    //引用本类对象中的私有数据
}

Date∷Date(int m,int d,int y)     //类Date的构造函数
{
  month=m;
  day=d;
  year=y;
}

int main( )
{
  Time t1(10,13,56);       //定义Time类对象t1
  Date d1(12,25,2004);      //定义Date类对象d1
  t1.display(d1);        //调用t1中的display函数,实参是Date类对象d1
  return 0;
}

4,  将下面程序改为在类模板外定义各成员函数:
#include <iostream>
using namespace std;
template<class numtype>        //定义类模板
class Compare
{
public:
  Compare(numtype a,numtype b)
  {
    x=a;y=b;
  }
  numtype max( )
  {
    return (x>y)?x:y;
  }
  numtype min( )
  {
    return (x<y)?x:y;
  }
private:
  numtype x,y;
};

int main( )
{
  Compare<int> cmp1(3,7);      //定义对象cmp1,用于两个整数的比较
  cout<<cmp1.max( )<<″ is the Maximum of two integer numbers.″<<endl;
  cout<<cmp1.min( )<<″ is the Minimum of two integer numbers.″<<endl<<endl;
  Compare<float> cmp2(45.78,93.6);  //定义对象cmp2,用于两个浮点数的比较
  cout<<cmp2.max( )<<″ is the Maximum of two float numbers.″<<endl;
  cout<<cmp2.min( )<<″ is the Minimum of two float numbers.″<<endl<<endl;
  Compare<char> cmp3(′a′,′A′);    //定义对象cmp3,用于两个字符的比较
  cout<<cmp3.max( )<<″ is the Maximum of two characters.″<<endl;
  cout<<cmp3.min( )<<″ is the Minimum of two characters.″<<endl;
  return 0;
}

5,  有两个矩阵a和b,均为2行3列,求两个矩阵的和。重载运算符“+”使之用于矩阵相加。如:c=a+b。重载插入运算符“<<”和流提取运算符“>>”,使之能用于该矩阵的输入和输出。

6,  利用类继承分别完成一个学生类、一个大学生类、一个本科生类,本科生类中包括了一个学生作为他的班长。在创建一个本科生对象时赋予他的全部信息,输出该本科生对象的全部信息。

7,  利用c++继承、多态虚函数、构造函数完成以下程序:设计人、老师、学生、大学生、研究生、大四学生等类、其主要属性自己定义,要求包括以下方法:
1)  构造函数,创建对象的主要信息
2)  Display,显示每种类对象的主要信息

此外,要求每个类包含一个生日对象,其类型为Birthday类,学生类应该包含一个班主任对象,其类型为老师类。
三、实验要求
  将程序源代码压缩后提交至学院FTP上对应实验和班级的目录中。
  作业命名方式为:“学号姓名.rar”。
  作业提交时间:下次实验课前提交。

(系统自动生成,下载前可以参看下载内容)

下载文件列表

压缩包 : lab3.rar 列表
lab3/1.cpp
lab3/11.txt
lab3/2.cpp
lab3/2.txt
lab3/3.cpp
lab3/4.cpp
lab3/5.cpp
lab3/6.cpp
lab3/7.cpp
lab3/C++程序设计语言-实验03.doc
lab3/Exercise_2/1/1.exe
lab3/Exercise_2/1/CMakeCache.txt
lab3/Exercise_2/1/CMakeFiles/1.dir/build.make
lab3/Exercise_2/1/CMakeFiles/1.dir/cmake_clean.cmake
lab3/Exercise_2/1/CMakeFiles/1.dir/CXX.includecache
lab3/Exercise_2/1/CMakeFiles/1.dir/depend.internal
lab3/Exercise_2/1/CMakeFiles/1.dir/depend.make
lab3/Exercise_2/1/CMakeFiles/1.dir/DependInfo.cmake
lab3/Exercise_2/1/CMakeFiles/1.dir/flags.make
lab3/Exercise_2/1/CMakeFiles/1.dir/main.cpp.obj
lab3/Exercise_2/1/CMakeFiles/1.dir/progress.make
lab3/Exercise_2/1/CMakeFiles/1.dir/Student.cpp.obj
lab3/Exercise_2/1/CMakeFiles/cmake.check_cache
lab3/Exercise_2/1/CMakeFiles/CMakeCCompiler.cmake
lab3/Exercise_2/1/CMakeFiles/CMakeCXXCompiler.cmake
lab3/Exercise_2/1/CMakeFiles/CMakeDetermineCompilerABI_C.bin
lab3/Exercise_2/1/CMakeFiles/CMakeDetermineCompilerABI_CXX.bin
lab3/Exercise_2/1/CMakeFiles/CMakeDirectoryInformation.cmake
lab3/Exercise_2/1/CMakeFiles/CMakeOutput.log
lab3/Exercise_2/1/CMakeFiles/CMakeSystem.cmake
lab3/Exercise_2/1/CMakeFiles/CompilerIdC/a.exe
lab3/Exercise_2/1/CMakeFiles/CompilerIdC/CMakeCCompilerId.c
lab3/Exercise_2/1/CMakeFiles/CompilerIdCXX/a.exe
lab3/Exercise_2/1/CMakeFiles/CompilerIdCXX/CMakeCXXCompilerId.cpp
lab3/Exercise_2/1/CMakeFiles/Lab0201.dir/build.make
lab3/Exercise_2/1/CMakeFiles/Lab0201.dir/cmake_clean.cmake
lab3/Exercise_2/1/CMakeFiles/Lab0201.dir/CXX.includecache
lab3/Exercise_2/1/CMakeFiles/Lab0201.dir/depend.internal
lab3/Exercise_2/1/CMakeFiles/Lab0201.dir/depend.make
lab3/Exercise_2/1/CMakeFiles/Lab0201.dir/DependInfo.cmake
lab3/Exercise_2/1/CMakeFiles/Lab0201.dir/flags.make
lab3/Exercise_2/1/CMakeFiles/Lab0201.dir/main.cpp.obj
lab3/Exercise_2/1/CMakeFiles/Lab0201.dir/progress.make
lab3/Exercise_2/1/CMakeFiles/Lab0201.dir/Student.cpp.obj
lab3/Exercise_2/1/CMakeFiles/Makefile.cmake
lab3/Exercise_2/1/CMakeFiles/Makefile2
lab3/Exercise_2/1/CMakeFiles/progress.marks
lab3/Exercise_2/1/CMakeFiles/TargetDirectories.txt
lab3/Exercise_2/1/CMakeLists.txt
lab3/Exercise_2/1/cmake_install.cmake
lab3/Exercise_2/1/data.txt
lab3/Exercise_2/1/Debug/main.obj
lab3/Exercise_2/1/Debug/main.pch
lab3/Exercise_2/1/Debug/main.pdb
lab3/Exercise_2/1/Debug/vc60.idb
lab3/Exercise_2/1/Debug/vc60.pdb
lab3/Exercise_2/1/main.cpp
lab3/Exercise_2/1/Makefile
lab3/Exercise_2/1/Student.cpp
lab3/Exercise_2/1/Student.h
lab3/Exercise_2/1/student.txt
lab3/Exercise_2/2/2.exe
lab3/Exercise_2/2/CMakeCache.txt
lab3/Exercise_2/2/CMakeFiles/2.dir/build.make
lab3/Exercise_2/2/CMakeFiles/2.dir/cmake_clean.cmake
lab3/Exercise_2/2/CMakeFiles/2.dir/CXX.includecache
lab3/Exercise_2/2/CMakeFiles/2.dir/depend.internal
lab3/Exercise_2/2/CMakeFiles/2.dir/depend.make
lab3/Exercise_2/2/CMakeFiles/2.dir/DependInfo.cmake
lab3/Exercise_2/2/CMakeFiles/2.dir/flags.make
lab3/Exercise_2/2/CMakeFiles/2.dir/main.cpp.obj
lab3/Exercise_2/2/CMakeFiles/2.dir/Message.cpp.obj
lab3/Exercise_2/2/CMakeFiles/2.dir/progress.make
lab3/Exercise_2/2/CMakeFiles/cmake.check_cache
lab3/Exercise_2/2/CMakeFiles/CMakeCCompiler.cmake
lab3/Exercise_2/2/CMakeFiles/CMakeCXXCompiler.cmake
lab3/Exercise_2/2/CMakeFiles/CMakeDetermineCompilerABI_C.bin
lab3/Exercise_2/2/CMakeFiles/CMakeDetermineCompilerABI_CXX.bin
lab3/Exercise_2/2/CMakeFiles/CMakeDirectoryInformation.cmake
lab3/Exercise_2/2/CMakeFiles/CMakeOutput.log
lab3/Exercise_2/2/CMakeFiles/CMakeSystem.cmake
lab3/Exercise_2/2/CMakeFiles/CompilerIdC/a.exe
lab3/Exercise_2/2/CMakeFiles/CompilerIdC/CMakeCCompilerId.c
lab3/Exercise_2/2/CMakeFiles/CompilerIdCXX/a.exe
lab3/Exercise_2/2/CMakeFiles/CompilerIdCXX/CMakeCXXCompilerId.cpp
lab3/Exercise_2/2/CMakeFiles/Makefile.cmake
lab3/Exercise_2/2/CMakeFiles/Makefile2
lab3/Exercise_2/2/CMakeFiles/progress.marks
lab3/Exercise_2/2/CMakeFiles/TargetDirectories.txt
lab3/Exercise_2/2/CMakelists.txt
lab3/Exercise_2/2/cmake_install.cmake
lab3/Exercise_2/2/main.cpp
lab3/Exercise_2/2/Makefile
lab3/Exercise_2/2/Message.cpp
lab3/Exercise_2/2/Message.h
lab3/Exercise_2/3/3.exe
lab3/Exercise_2/3/CMakeCache.txt
lab3/Exercise_2/3/CMakeFiles/3.dir/build.make
lab3/Exercise_2/3/CMakeFiles/3.dir/cmake_clean.cmake
lab3/Exercise_2/3/CMakeFiles/3.dir/CXX.includecache
lab3/Exercise_2/3/CMakeFiles/3.dir/depend.internal
lab3/Exercise_2/3/CMakeFiles/3.dir/depend.make
lab3/Exercise_2/3/CMakeFiles/3.dir/DependInfo.cmake
lab3/Exercise_2/3/CMakeFiles/3.dir/File.cpp.obj
lab3/Exercise_2/3/CMakeFiles/3.dir/flags.make
lab3/Exercise_2/3/CMakeFiles/3.dir/main.cpp.obj
lab3/Exercise_2/3/CMakeFiles/3.dir/progress.make
lab3/Exercise_2/3/CMakeFiles/cmake.check_cache
lab3/Exercise_2/3/CMakeFiles/CMakeCCompiler.cmake
lab3/Exercise_2/3/CMakeFiles/CMakeCXXCompiler.cmake
lab3/Exercise_2/3/CMakeFiles/CMakeDetermineCompilerABI_C.bin
lab3/Exercise_2/3/CMakeFiles/CMakeDetermineCompilerABI_CXX.bin
lab3/Exercise_2/3/CMakeFiles/CMakeDirectoryInformation.cmake
lab3/Exercise_2/3/CMakeFiles/CMakeOutput.log
lab3/Exercise_2/3/CMakeFiles/CMakeSystem.cmake
lab3/Exercise_2/3/CMakeFiles/CompilerIdC/a.exe
lab3/Exercise_2/3/CMakeFiles/CompilerIdC/CMakeCCompilerId.c
lab3/Exercise_2

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度更多...
  • 请直接用浏览器下载本站内容,不要使用迅雷之类的下载软件,用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.

相关评论

暂无评论内容.

发表评论

*主  题:
*内  容:
*验 证 码:

源码中国 www.ymcn.org