面向对象程序设计大作业 2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象程序设计大作业
计算器类
完成时间:2013 年 5月25日
计算器类
1.编程目的
设计实现计算器类,能进行整数及实数的加、减、乘、除、平方、开方等基本运算,及能进行二进制,十进制,八进制,十六进制数值之间的转换,以及能进行三角函数的计算。
2.系统简介
本程序利用类完成了十进制下的四则运算(加,减,乘,除),可以把十进制转化为二进制、八进制、十六进制,可以进行一些常用的函数运算(比如sin、cos、tan、sqrt等)。程序设计语言采用Visual C++6.0,程序运行平台Windows 7,程序通过调试运行实现了设计目标。
刚开始时出现主要的运算界面,然后进行选择1-3.选择1,则进行一般运算;选择2,则进行三角函数运算;选择3,则进行进制的转换。若选择1,则又分为1-7个选择,利用if...else if...else...语句来实现。若选择1,进行加法运算;选择2,进行减法运算;选择3,进行乘法运算;选择4,进行除法运算;选择5,进行取余运算;选择6,幂运算;选择7,开方运算。三角函数和进制转换与此类同。
3.编程思路
本程序分为三类:(1)实现了十进制下的四则运算(加、减、乘、除),还可以进行平方、开方的运算及幂的运算;(2)实现十进制转换为二进制、八进制、十六进制。(3)进行三角函数的基本运算。
建立一个文件,该文件包含三个类程序分别为class Trigonometric、class HexBinDecOct、class Calculate且分别对应三角函数运算、进制转换、一般运算,最后是一个主函数。
4总体设计(附类图)
编程实现计算器,用类来完成。首先,编写的是三角函数(sin、cos、tan)的实现类;其次,一般运算(加、减、乘、除、开方、幂)类;最后是,把十进制转换为二进制、八进制、十六进制。
具体程序实现如下图表示:
5.关键技术说明
面向对象设计方法的核心概念——类,利用类可以实现对数据的封装及隐蔽。在面向对象程序设计中,程序模块是由类构成的,类是对逻辑上相关的函数与数据的封装,它是对问题的抽象描述。
类成员的访问控制属性包括三种:公有类型(public)、私有类型(privite)、保护类型(protected)。公有类型成员定义了类的外部接口,公有成员用public 关键字声明,在类外只能访问类的公有成员。私有成员在关键字privite后面声明,如果私有成员紧接着类名称,则关键字可以省略。私有成员只能被本类的成员函数访问,来自类外的任何访问都是非法的。保护类型成员的性质和私有成员的性质相似,其差别在于继承过程中对产生的新类影响不同。
本程序包含公有成员和私有成员,不含保护类成员。分别为class Trigononetric、class Calculate、class HexBinDecOct
6.源代码
#include
#include
#include
using namespace std;
#define pi 3.14159265
/**********************************************************
**/
class Trigonometric
{//三角函数实现
private: double number;//要操作的数
char ch2;//选择控制
public: void print1();//界面输出
void set1(double num)//传值给操作函数
{
number=num;
}
};
void Trigonometric::print1()
{
cout<<"\t\t进入三角函数的运算"< cout<<"\t\t请输入一个弧度数:"< cin>>number; set1(number); cout<<"\t\t 1.求sin(a)"< cout<<"\t\t 2.求cos(a)"< cout<<"\t\t 3.求tan(a)"< cout<<"\t\t 4.求全部!"< cin>>ch2; back3: if(ch2=='1') cout<<"sin("< else if(ch2=='2') cout<<"cos("< else if(ch2=='3') cout<<"tan("< else if(ch2=='4') { cout<<"sin("< cout<<"cos("< cout<<"tan("< } else { cout<<"\t\t输入有误!请重新选择:"< cin>>ch2; goto back3; } } /**********************************************************