- 3
- 0
- 约8.61千字
- 约 26页
- 2018-09-13 发布于湖北
- 举报
面向对象程序设计大作业
------计算器类
学 院 名 称 (四号宋体居中)填写全称
专业班级 (四号宋体居中)填写全称
学生姓名 (四号宋体居中)
学 号 (四号宋体居中)
指 导 教 师 (四号宋体居中)
完成时间: 年 月 日
计算器类
编程目的
系统简介
本计算器程序可以进行加减乘除平方的基本运算,及二进制,十进制,八进制,十六进制之间的转换,三角函数的计算。程序是用类实现的,采用多文件结构。
编程思路
将程序分成三个模块,分别是:加减乘除平方基本运算模块;进制转换模块;三角函数计算模块;然后设计一个menu()函数将对三个模块进行调用,该函数通过主函数进行调用。程序分成三个文件,分别是:calculator.h 、caculator.cpp main.cpp;
总体设计(附类图)
(1)加减乘除平方进本运算模块:
该功能主要是利用运算符重载,对+ - * / ^ 进行重载,使其完成相应的计算;用户首先输入要计算的表达式,然后从表达式中提取出运算数和运算符,如果输入有误则对用户进行提示,让其重新进行输入;利用构造函数构造三个变量,分别对应运算数和结果,判断运算符的类型,调用重载函数进行计算通过构造函数将计算结果进行保存,最后调用类中的show()函数将结果显示出来;特别的,对于除法运算,应该判断除数是否为0,然后进行计算,由于计算结果可能不是整数,所以增加对double类型的构造函数,显示结果时调用的是show2()函数进行显示。
(2)进制转换模块:
本程序不光可以进行2,4,8,16进制之间的转换,可以进行任意进制之间的转换。用户首先输入需要进行进制转换的数和该数的进制,然后输入想要转换的进制。通过构造函数产生两个变量,然后调用scalechange()函数进行进制转换。并将结果进行输出。
(3)三角函数模块:
程序可对8种三角函数进行计算,用户首先输入三角函数表达式,然后程序从表达式中提取出想用的三角函数和运算数,然后判断三角函数的类型,通过构造函数定义类的变量,调用TriFunction()进行计算,同样的因为计算的三角函数的数比一定为整数,所以设置flaot类型的构造函数;在类中分别实现8中三角函数的功能,判断用户要计算的函数进行调用。
(4)菜单函数:
设置4个选项,分别为:加减乘除平方基本运算;进制转换;三角函数实现;退出程序。用户首先进行选择,如果输入正确,则根据选择调用相应的函数,否则提示用户重新进行输入,直到输入正确。
(5)主程序:
主程序比较简单,只是调用了menu()函数。
(6)程序中用到的其他函数
system(“pause”);表示按任意键继续;
system(“cls”);表示将屏幕上的所有内容清除,为了让界面整洁。
关键技术说明
加减乘除平方进本运算模块
对于字符串和整数之间的转化利用了c语言中的函数atoi();
通过调用类中的getnum()函数来判断除数是否为0。
进制转换模块:
在进行进制转换时用到了栈,直接运用STL中的stack,包含在头文件stack中。具体方法是:首先将要进行转换的数转化成10进制,然后将10进制转化成目的进制。转化成10进制的代码:
基本思想是:对于n进制数abcdefg,转换成10进制数为:
a*n^6 + b*n^5 + c*n^4 + d*n^3 +e*n^2 + f*n^1 + g*n^0
将十进制数m转换成n进制的思想是:不断将m%n放入栈中,直到m=0,然后依次输出栈的栈顶元素,直到栈为空。
考虑到对于16进制的数,数中可能会输入ABCDEF或者abcdef,所以将输入的数字转换成字符串形式,并进行判断转换。
三角函数模块:
首先定义:
char a[8][6]={log,log10,sin,asin,cos,acos,tan,atan};
数组中包含的是三角函数。对数组进行遍历,同时通过函数strcmp()判断要计算的函数是否在其中,有的话调用函数直接进行计算,否则,提示用户重新进行输入。类中三角函数的实现直接调用了C语言中math.h头文件中的函数。
通过函数atof()将字符串转化为flaot类型的数。
源代码
calculator.h
#ifndef CALCULATOR_H
#define CALCULATOR_H
class calculator
{
private:
int num;
double num2;
int scal;//几进制
char tri[10];//三角函数
float ang;//弧度
public:
calculator(int a);
您可能关注的文档
- 陈安之:21世纪非常成功心法_z46folm.doc
- 陈安之21世纪非常成功心法4qfjf84e.doc
- 陈列原则 销售入职培训第4单元ixnif_v1.ppt
- 陈列原则 销售入职培训fve_ftui.ppt
- 陈 列 原 则 销售入职培训第4单元p6l5l5nq.ppt
- 陈屿中心小学安全工作领导机构及岗位安全职责wdrrdnna.doc
- 陆梁油田作业区接害岗位识别b9togeey.doc
- 陆港物流园区赢利模式的研究_i0wrg_r.docx
- 陈思的夜空超级经典语录jhtseti7.doc
- 陈式太极拳竞赛套路56式拳谱及分动说明_mwvzuyu.docx
- 2026年辽宁工程职业学院单招职业倾向性考试题库参考答案详解.docx
- 2026年赤峰应用技术职业学院单招职业技能测试题库附答案详解.docx
- 2026年贵州水利水电职业技术学院单招职业技能考试题库及参考答案详解一套.docx
- 2026年遵义医药高等专科学校单招职业技能测试题库及参考答案详解1套.docx
- 2026年机房环境监控方案及报警调试.docx
- 重庆市物业小区生活垃圾分类管理制度及规范.docx
- 诊所依法执业自查工作制度.docx
- 2026年矿产资源补偿费征收管理办法题库及答案.docx
- 用户满意度调查表(产品与服务类).docx
- 幼儿园关于家长对教师满意度实名问卷调查表2026年.docx
原创力文档

文档评论(0)