面向对象程序设计基础
- 格式:pptx
- 大小:2.32 MB
- 文档页数:5


面向对象程序设计
课程设计报告
题目:矩阵的运算
院系:计算机与软件学院
专业:软件工程嵌入式
一.题目内容及设计要求
定义矩阵类, 设计一个矩阵类,将相应的函数和数据封装在类中,简化程序,实现矩阵加法、减法、乘法 、矩阵转置、求矩阵的逆矩阵等。
一. 总体方案设计
2.1总体功能框架:
设置不同的重载函数,如加法重载,减法重载,乘法重载,转置重载;
2.2 类的设计说明
class Matrix
{
public:
Matrix();//无参构造函数
friend void In(Matrix &);定义的友元函数来实现录入的功能
friend void Out(Matrix &); 定义的友元函数实现输出的功能
矩阵的运算
矩阵的加法 矩阵的减法 矩阵的逆矩阵 矩阵的乘法
矩阵的转置 Matrix operator +(Matrix &);//定义了重载函数,来实现加法的运算
Matrix operator -(Matrix &);//定义了重载函数,来实现减法的运算
Matrix operator *(Matrix &);//定义了重载函数,来实现乘法的运算
friend Matrix transfor(Matrix &);//定义了重载函数,来实现转置的运算
Matrix Inverse(double * Ora_Matrix,int m_Image_m,int m_Image_n);//实现逆矩阵函数
private:
int m,n;
//矩阵的行数和列数
Datatype *p;
//矩阵的基址
};
想通过重载函数来实现加法,减法的操作,重载函数,在相同的声明域中的函数名相同的,而参数表不同的,即通过函数的参数表而唯一标识并且来区分函数的一种特殊的函数。在相同的声明域中的函数名相同的,而参数表不同的,即通过函数的参数表而唯一标识并且来区分函数的一种特殊的函数。因此,有的时候 ,为了简化代码,有了函数重载,只要写一个函数,就能根据不同的用途进行调用,可以说,一个函数,多种用途,简化了代码。体现了面向对象编程的优越性。
实验一 C++基础
1.1 实验目的
1.了解并熟悉开发环境,学会调试程序;
2.熟悉C++中简单的标准输入输出函数的使用方法;
3.理解const修饰符的作用并学会应用;
4.理解内联函数的优缺点并学会其使用场合;
5.理解并学会函数重载;
6.理解并熟练掌握使用new和delete来分配内存;
7.理解并熟练掌握引用的使用方法。
1.2 实验内容
1.2.1 程序阅读
1.理解下面的程序并运行,然后回答问题。
#include
int max_def(int x, int y)
{
return (x>y?x:y);
}
int max_def(int x, int y, int z)
{
int temp = 0;
return (temp=(x>y?x:y))>z?temp:z;
}
double max_def(double x, double y)
{
return (x>y?x:y);
}
int main()
1 {
int x1 = 0;
int x2 = 0;
double d1 = 0.0;
double d2 = 0.0;
x1 = max_def(5,6);
x2 = max_def(2,3,4);
d1 = max_def(2.1,5.6);
d2 = max_def(12.3,3.4,7.8);-----------------------------------------------------①
cout<<"x1="<
cout<<"x2="<
cout<<"d1="<
cout<<"d2="<
return 1;
}
问题一:上述程序的输出结果是什么?
问题二:用的是哪个函数?
答:调用的函数是
int max_def(int x, int y, int z)
{
int temp = 0;
return (temp=(x>y?x:y))>z?temp:z;
东华理工大学 2011 — 2012 学年第 1 学期
面向对象程序设计 期 末 考试试题( A1 )卷 7.若有下面的函数调用:fun(a+b,3,max(n-1),b);则fun的实参个数是 ( ) 。
A.3 B. 4 C. 5 D. 6
8.以下不是标准模板库组成部分的是( )
A.容器 B. 迭代器 C. 泛型算法 D. 函数模板
9. 语句int *p=&k;定义了指针p,与这个语句等效的语句序列是( )。
A. int *p;p=&k; B. int *p;p=k; C. int *p;*p=&k; D. int *p;*p=k;
10. 要求用过函数实现一种不太复杂的功能,并且要加快执行速度,则选用( )。
A. 内联函数 B.重载函数 C.递归函数 D.嵌套函数
11.从下列运算符函数的原型看,肯定不属于类FunType的成员函数的是( )
A. int operator +(FunType); B. FunType operator +();
C. FunType operator +(int); D. int operator +(FunType,FunType);
12.假设名字空间A中有函数void f(),且名字空间A被嵌套在名字空间B中,则以下哪一项实现了对函数f的访问( )。
A. A.B.f(); B. B.A.f(); C. A::B::f(); D. A::B::f();
13. 假定指针变量p定义为“int *p=new int[30];”,要释放p所指向的动态内存,应使用语句( )。
A. delete p; B. delete *p; C. delete &p; D. delete []p;
1 实 验 报 告
姓名: 班级: 学号:
课程:c++面向对象程序设计
一、实验题目:类和对象
二、实验地点:闽江学院实验楼201
三、实验目的:
1.了解C++面向对象程序设计的基本概念以及了解C++程序的基本结构。
2.了解类,对象的概念,掌握类及类中成员函数的定义及使用方法。
3.掌握对象的定义及使用方法。
4.了解构造函数,析构函数,拷贝构造函数的作用,特点,定义方式及使用方法。
四、实验内容:
1.定义一个日期类Date,该类对象存放一个日期,可以提供的接口有:
Void getDate(); //取日期值,格式如”2011年10月17日”
Void getYear(); //取年份
Void getMonth(); //取月份
Void getDay(); //取日期
Void setDate(int y,int m,int d); //设置日期值
还允许对日期对象作以下定义:
Date d1(2011,11,8); //用所给日期定义个日期对象
Date d2; //定义日期对象
Date d3(d1); //用已有的日期对象构造一个新对象
2.定义一个FDAccount类,用以描述一个定期存折(fixed deposit),实现现金支取。余额合计。信息显示等。存折基本信息包括帐号,账户名称,存款余额,存取期限(以月为单位),存款利率(以百分点为单位)等。
提示:存折的基本信息定义为存折类的私有的数据成员,利用构造函数的初始化存折类对象,在利用构造函数的参数表传入实参,初始化存折对象的数据成员。 2 五、实验中遇到的问题及解决方法:
①由于对类的定义还不熟悉,导致实验过程中,出现类成员的定义错误;但在及时翻看课本后得以解决。
②对调用函数还是有些不熟,导致函数在调用的过程中出现了错误;但是在同学的帮助下,顺利解决。
③实验内容2相对比较复杂,首次接触该类题目,还是有点棘手。