文件名称:C++程序设计语言实验三
- 所属分类:
- 其他小程序
- 资源属性:
- [MacOS] [C/C++] [源码]
- 上传时间:
- 2011-08-18
- 文件大小:
- 1.2mb
- 下载次数:
- 0次
- 提 供 者:
- zhuchao0731@163.com
- 相关连接:
- 无
- 下载说明:
- 别用迅雷下载,失败请重下,重下不扣分!
介绍说明--下载内容均来自于网络,请自行研究使用
实验三: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”。
作业提交时间:下次实验课前提交。
一、实验内容
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