C++课程设计报告--小型特殊计算器

上传人:lizhe****0001 文档编号:31218819 上传时间:2018-02-06 格式:DOC 页数:30 大小:301.50KB
返回 下载 相关 举报
C++课程设计报告--小型特殊计算器_第1页
第1页 / 共30页
C++课程设计报告--小型特殊计算器_第2页
第2页 / 共30页
C++课程设计报告--小型特殊计算器_第3页
第3页 / 共30页
C++课程设计报告--小型特殊计算器_第4页
第4页 / 共30页
C++课程设计报告--小型特殊计算器_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《C++课程设计报告--小型特殊计算器》由会员分享,可在线阅读,更多相关《C++课程设计报告--小型特殊计算器(30页珍藏版)》请在金锄头文库上搜索。

1、 课程设计报告课程:面向对象程序设计学号: 姓名: 班级: 教师: 塔里木大学计算机科学与技术学院课程设计名称: 小型特殊计算器1.设计内容:实现一个特殊的计算器,可以实现复数、有理数、矩阵和集合的特殊计算。程序可以实现复数、有理数的加、减、乘、除,可以实现矩阵的加法、减法和乘法运算,也可以实现集合的求交集、并集、子集的运算。2.设计目的与要求:2.1 设计目的达到熟练掌握 C+语言的基本知识和技能; 基本掌握面向对象程序设计的基本思路和方法; 能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2.2 设计要求要求利用面向对象的方法以及 C+的编程思想来完成系统的设计; 要求在设计

2、的过程中,建立清晰的类层次; 在系统的设计中,至少要用到面向对象的一种机制。3.系统分析与设计3.1 主要知识点运算符重载增加了 C+语言的可扩充性。运算符的重载实际上就是一种函数调用的形式,可以用成员函数重载运算符,就是将运算符重载定义为一个类的成员函数的形式;也可以用友元函数重载。用友元重载运算符的友元函数是独立于类以外的一般函数。3.2 关键技术程序中每一种数据类型用一个类来实现,共设计了 4 个类。复数类complex,矩阵类 matrix,有理数类 rational 以及集合类 set。每一种类都定义了相应的运算符重载函数。具体定义如下所示:(1)类 complex类 complex

3、 中,成员变量 image 表示虚部,real 表示实部。成员函数 print()用来显示数据。运算符重载函数都是用友元函数来实现的。分别重载+、-、*、/运算符。(2)类 matrix类 matrix 中,成员变量 elems 用来存放矩阵的所有元素,rows 表示矩阵的行,cols 表示矩阵的列。成员函数 SetElems()用来给矩阵中的每一个元素赋值,Disp()用来显示矩阵中的所有元素。其它友元函数分别重载+、-、*、/运算符。(3)类 rational类 rational 中,有两个成员变量:denominator 用来表示有理数的分母,numerator 表示有理数的分子。有理数

4、成员函数 print()用来显示有理数,optimization()用来优化有理数函数。友元函数 real()用来将有理数转换为实数,其它友元函数分别重载+、 -、*、/运算符。(4)类 set类 set 中,有两个成员变量:elems 用来存储集合中的元素,card 表示集合中元素的个数。成员函数 print()用来输出集合中的元素,additem()用来给集合增加元素。友元函数分别重载了&、=、!=、+、*、class complex public:void print();complex();complex(float r,float i)real= r;image= i;virtual

5、 complex();friend complex operator + (complex a,complex b);friend complex operator - (complex a,complex b);friend complex operator * (complex a,complex b);friend complex operator / (complex a,complex b);private:float image;float real;/*/ rational.h: interface for the rational class.class rational pu

6、blic:void print(); /输出函数rational(int x=0,int y=0);virtual rational();friend rational operator + (rational num1,rational num2); /重载运算符+friend rational operator - (rational num1,rational num2);/重载运算符-friend rational operator * (rational num1,rational num2); /重载运算符*friend rational operator / (rational

7、num1,rational num2);/重载运算符/friend bool operator =(rational num1,rational num2); /重载运算符=friend double real(rational x); /声明转换函数private:void optimization(); /优化有理数函数int denominator; /分母int numerator; /分子;/*/ matrix.h: interface for the matrix class.class matrix public:void Disp(); /显示矩阵所有元素int matrix:

8、operator ()(short row, short col); /重载运算符成员函数()void SetElem(short row,short col,int val); /将元素(row,col)设置为valmatrix();matrix(short r,short c)rows= r;cols= c;elems= new introws*cols;virtual matrix();friend matrix operator +(matrix p,matrix q); /重载运算符friend matrix operator -(matrix p,matrix q); /重载运算符

9、friend matrix operator *(matrix p,matrix q); /重载运算符private:int * elems; /存放矩阵的所有元素short cols; /矩阵的列short rows; /矩阵的行;/*/ set.h: interface for the set class.#include /enum bool false,true;enum errcode noerr,overflow;/定义集合类 class set public:void print(); /显示输出集合元素set()card=0;virtual set();errcode addi

10、tem(int); /增加集合元素friend bool operator /声明重载运算符&,判断某一整数是否属于某一集合friend bool operator =(set,set); /声明重载运算符=,判断两个集合是否相等friend bool operator !=(set,set); /声明重载运算符!=,判断两个集合是否不等friend set operator *(set,set); /声明重载运算符*,求两个集合的交friend set operator +(set,set); /声明重载运算符+,求两个集合的并friend bool operator #include co

11、mplex.hcomplex:complex()complex:complex()/*/*函数名称:print功能描述:显示复数修改记录:*/void complex:print()cout0)cout#include #include rational.hrational:rational(int x,int y)numerator= x;denominator= y;optimization(); /有理数优化rational:rational()/*/*函数名称:optimization功能描述:定义有理数优化函数修改记录:*/void rational:optimization()in

12、t gcd;if(numerator=0) /如果分子为零,则分母为 1 后返回denominator= 1;return;/取分子分母中较小的数作为公约数极限gcd= (abs(numerator)abs(denominator)?abs(numerator):abs(denominator);if(gcd=0)return; /若为 0,则返回for(int i= gcd;i1;i-) /用循环找最大公约数if(numerator%i=0)& (denominator%i=0)break;numerator/=i; /i 为最大公约数,将分子分母整除它,重新赋值denominator/=i

13、;/若分子分母均为负数,则结果为正if(numerator#include #include matrix.hmatrix:matrix()matrix:matrix()/*/*函数名称: matrix:operator ()(short row, short col)功能描述: 重载运算符成员函数修改记录:*/int matrix:operator ()(short row, short col)if(row=1 & row=1 & col=1 & row=1 & col0)coutset2.card )return false;for(int i=0;i#include matrix.h#include complex.h#include rational.h#include set.hvoid jiemian();void tuichu();void complexcompute();void rationalcompute();void matrixcompute();void setcompute();/*/* main 函数 */*

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号