




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象与C+课程设计论文题目:计算器院 系: 计算机信息与技术 学科专业: 计算机科学与技术 学 号: B10060121 学生姓名: 童则辉 指导教师: 赵娟 2013年1月4日摘要本课程设计将实现一个简单计算器。这个计算器不仅能实现简单的加减乘除运算还实现了科学计算功能。它的设计简单易行系统具有较好的显示界面快速简单的操作准确得到答案具有计算器的基本功能并且具有可行性。降低了数字计算难度和节约了时间对大家的计算有了一定帮助。在课程设计中开发工具统一使用了VC+6.0同时使用了面向对象的思想如类、对象、多态、重载、等遵守C+程序标识符的般约定并加了适量的注释。在程序设计中采用了结构化与面向对象两种解决问题方法。目 录第一章总体设计11.1 功能需求分析11.2 功能结构21.3 程序流程3第二章 详细设计42.1 Main函数42.2 类zhujiemian42.3 类jiben72.4 类sanjiao102.5 类jinzhi132.6 类anweiyunsuan17第三章 功能测试及运行效果193.1 主界面193.2 基本数据运算界面193.3 三角函数运算界面203.4 进制转换运算界面203.5 按位运算界面203西安工业大学北方信息工程学院 计算机科学与技术 面向对象与C+课程设计 第一章 总体设计本计算器是基于C+语言面向对象程序设计的思路和方法实现了计算器的基本运算、三角函数、进制转换的功能。1.1功能需求分析1基本运算功能主要包括加、减乘、除、取余等。 2三角函数运算功能主要包括正弦、余弦、正切等。 3进制转换功能主要包括十进制转化为二进制,八进制,十六进制等的转换。4 进行逻辑运算包括与,或,非,异或,按位与,按位或运算等。 通过上述功能的设计与实现实现了计算器的基本功能。当然在实际的计算器中其功能要比本课题的多的多也复杂的多本课题仅以比较简单易懂的方式介绍给读者一个计算器的设计与实现的流程。从而让读者明白一个项目开发中需要做的工作并在今后的工作中能遇到相关问题能知道如何解决1.2 功能结构图图1-2-1结构功能图1.3程序流程见图图1-3-1程序流程第二章 详细设计2.1. Main函数(1)主要源代码#include#includezhujiemian.hvoid main()zhujiemian f;f.show();cout谢谢使用。endl;2.2 类zhujiemian(1)局部变量见表2-2-2表2-2-2变量名类型KIntaJibenbSanjiaocJinzhizhuanhuandanweiyusuan函数名返回类型参数类型功能Show()Void无显示主界面菜单(3)各对象见表2-2-3表2-2-3对象名所属类调用的函数功能a基本Show1()调用显示基本运算界面函数b三角Show2()调用显示三角运算界面函数c进制转换Show3()调用显示进制转换运算界面函数d按位Show()调用显示按位运算界面函数(4)源代码见文件:zhujiemian.cpp和zhujiemian.h1、zhujiemian.cpp:#include zhujiemian.h#include jiben.h#include luoji.h#include sanjiao.h#include shuzhizhuanhuan.h#include#include windows.hzhujiemian:zhujiemian(int ii)k=ii;zhujiemian:zhujiemian()zhujiemian:show() coutendl;cout 多元化计算器 endl;cout endl;cout 1. 基本运算. 2. 三角运算. endl;cout endl;cout 3. 进制转换. 4. 逻辑运算. endl;cout endl;cout 5.退出系统. endl;coutendl;switch(k)case 1:jiben d;d.show1();break;case 5:exit(0);2、zhujiemian.h:class zhujiemian public:zhujiemian(int ii=0);show();virtual zhujiemian();private:int k;2.3类jiben(1)局部变量见表2-3-1表2-3-1变量名类型iintaCharxDoubleyDouble(2)函数见表2-3-2表2-3-2函数名返回类型参数类型功能Show1()VoidDouble x,double y显示基本运算界面adVoidDouble x,double y实现加法运算suVoidDouble x,double y实现减法运算muVoidDouble x,double y实现乘运算diVoidDouble x,double y实现除法运算quyuVoidDouble x,double y实现取余运算(3)源代码见文件:jiben.cpp和jiben.h(均为部分代码)1、jiben.cpp:coutendl;cout 基本运算 endl;cout endl;cout 1. 加法运算. 2. 减法运算. endl;cout endl;cout 3. 乘法运算. 4. 除法运算. endl;cout endl;cout 5.取余运算. 6. 返回到主界面 endl;coutendl;switch(k)case 1:int i=1;while(i=1)char a;coutx;couty;ad(x,y);cout是否继续加法:;cina;while(a!=N& a!=n& a!=Y& a!=y)cout输入错误请重新输入endl;cout是否继续:;cina;if(a=N|a=n)i=0;break;break;case 6: :system(cls);zhujiemian a; a.show();break;cout是否继续基本运算:;char a;cina;while(a!=N& a!=n& a!=Y& a!=y)cout输入错误请重新输入endl;cout是否继续:;cina;if(a=N|a=n)zhujiemian a;a.show();jiben:jiben()void jiben:ad(double x,double y)coutx+y的值:x+yendl;void jiben:su(double x,double y)coutx-y的值:x-yendl;void jiben:mu(double x,double y)coutx*y的值:x*yendl;void jiben:di(double x,double y)while(y=0)cout错误,除数不能为0.;couty;coutx/y的值:x/yendl;void jiben:quyu(double x,double y)while(y=0)cout错误,取余数不能为0.;couty;coutx%y的值:(int)x%(int)yendl;2、jiben.h:class jiben public:jiben(double xx=0,double yy=0);void show1();void ad(double x,double y); /加法void su(double x,double y); /减法void mu(double x,double y); /乘法void di(double x,double y); /除法void quyu(double x,double y); /% 取余virtual jiben();private:double x,y;2.4类sanjiao该类负责显示三角函数运算界面以及通过此类实现正弦、余弦、正切等三角函数的运算功能。(1)局部变量见表2-4-1表2-4-1变量名类型iIntxdoubleydouble表2.4.1 (2) 函数见表2-4-2表2-4-2函数名返回类型参数类型功能Show2()Void无显示三角运算界面Sin()VoidDouble x实现正弦运算Cos()VoidDouble x实现余弦运算Tan()VoidDouble x实正切运算Cot()VoidDouble x实现余切运算(3)源程序代码见文件:sanjiao.cpp和sanjiao.h(均为部分代码)1、sanjiao.cpp:sanjiao:show2()coutendl;cout 三角运算 endl;cout endl;cout 1. sin运算. 2. cos运算. endl;cout endl;cout 3. tan运算. 4. cot运算. endl;cout endl;cout 5.返回到主界面. endl;coutendl;while(j=1)switch(k)case 1:int i=1;while(i=1)char c;couta;si(a);cout是否继续正弦运算:;cinc;while(c!=N& c!=n& c!=Y& c!=y)cout输入错误请重新输入endl;cout是否继续三角运算:;cinc;if(c=N|c=n)i=0;break;break;case 4: :system(cls);zhujiemian a; a.show();break;cout是否继续三角运算:;char c;cinc;while(c!=N& c!=n& c!=Y& c!=y)cout输入错误请重新输入endl;cout是否继续:;cinc;if(c=N|c=n)zhujiemian a;a.show();sanjiao:sanjiao()void sanjiao:si(double a)double b=a;while(b=360)b=b-360;while(b0)b=b+360;b=pai*b/180;coutsin(a)的值为:sin(b)=360)b=b-360;while(b0)b=b+360;b=pai*b/180;coutcos(a)的值为:cos(b)endl;2、sanjiao.h:class sanjiao public:sanjiao(double aa=0);show2();void si(double a); /sin函数void co(double a); /cos函数void ta(double a); /tan函数virtual sanjiao();private:double a;2.5类jinzhi(1)局部变量见表2-5-1表2-5-1变量名类型iIntxdoubleydouble(2)函数见表2-5-2表2-5-2函数名返回类型参数类型功能Show3()Void无显示进制运算界面BianerVoidDouble x实现十进制转二进制BianbaVoidDouble x实现十进制转八进制BianshiliuVoidDouble x实现十进制转十六进制(3)源代码见文件:jinzhi.cpp和jinzhi.h(均为部分代码)1、jinzhi.cpp:void shuzhizhuanhuan:show3()coutendl;cout 进制转换运算 endl;cout endl;cout 1. 十转二. 2. 十转八. endl;cout endl;cout 3. 十转十六. 4. 按位运算. endl;cout endl;coutendl;while(j=1)switch(k)case 1: /变二进制int i=1;while(i=1)char a;coutx;bianer(x);cout是否继续转二进制:;cina;while(a!=N& a!=n& a!=Y& a!=y)cout输入错误请重新输入endl;cout是否继续进制转换:;cina;if(a=N|a=n)i=0;break;break;case 4: system(cls);zhujiemian a; a.show();break;cout是否继续进制转换运算:;char a;cina;while(a!=N& a!=n& a!=Y& a!=y)cout输入错误请重新输入endl;cout是否继续:;cina;if(a=N|a=n)zhujiemian a;a.show();void shuzhizhuanhuan:bianshiliu(double x) /十进制变十六进制int s16;int y=(int)x; for(int i=0;i=0;i-) if(si!=0&count=0) count+; cout=0;t-) if(st=10)/当st10时转换为字符 coutchar(st+55); else coutst; coutendl;2、jinzhi.h:class shuzhizhuanhuan public:shuzhizhuanhuan(double xx=0);void show3();void bianer(double x); /十进制转二进制void bianba(double x); /十进制转八进制void bianshiliu(double x); /十进制转十六进制virtual shuzhizhuanhuan();private:double x;2.6 类anweiyunsuan(1)局部变量见表2-6-1表2-6-1变量名类型iIntmcharnchar(2)函数见表2-6-2函数名返回类型参数类型功能Show4()Void无显示按位算界面yuVoidDouble x,double y实现与运算HuoVoidDouble x,double y实现或运算QufanVoidDouble x,double y实现取反运算ZuoyiVoidDouble x,double y实现左移运算youyiVoidDouble x,double y实现右移运算表2-6-23)源代码见文件:anweiyunsuancpp和anweiyunsuan.h(均为部分代码)1、janweiyunsuan.cpp:anweiyunsuan:show4()coutendl;cout 按位运算 endl;cout endl;cout 1. 与运算. 2. 或运算. endl;cout endl;cout 3. 异或运算. 4. 取反运算. endl;cout endl;cout 5.左移运算.6.右移运算. endl;cout endl;cout 7.返回到主界面. endl;coutendl;anweiyunsuan:yu(int x,int y)coutx与y的值为:(x&y)endl;anweiyunsuan:huo(int x,int y)coutx或y的值为:(x|y)endl;anweiyunsuan:yihuo(int x,int y)coutx异或y的值为:(xy)endl;anweiyunsuan:fei(int x)coutx取反的值为:(x)endl;anweiyunsuan:zuoyi(int x,int y)x=(xy);coutx左移的值为:xy);coutx右移的值为:xendl;2、janweiyunsuan.cpp:class anweiyunsuan public:anweiyunsuan();anweiyunsuan(int xx,int yy);virtual anweiyunsuan();show4();yu(int x,int y); /与运算huo(int x,int y); /或运算yihuo(int x,int y); /异或运算fei(int x); /取反运算zuoyi(int x,int y); /左移运算youyi(int x,int y); /右移运算private:int m,n;第三章 功能测试及运行效果3.1 主界面见图3-1-1主界面图3-1-13.2 基本数据运算界面见图3.2.1图3-1-1基本运算3.3 三角函数运算界面见图3-3-1图3-3-1三角函数运算3.4 进制转换运算界面见图3-4-1 图3-4-1进制转换3.5按位运算界面见图3-5-1 图3.5.1按位运算第四章 工作总结以前总以为自己对面线对象的c+已经理解的很是深刻了,但实际上
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高性能铁氧体磁体项目发展计划
- 干部廉洁考试及答案
- 2025年工信部考试中心题库及答案
- 房车知识培训班课件
- 2025年电工理论考试题目及答案
- 2025年广东军转考试真题及答案
- 2025年小学各科考试题及答案
- 慢丝车间安全培训课件
- 情景投稿课件模板
- 生物中考试题数学及答案
- 药包材生产质量管理手册
- 社会组织管理概论全套ppt课件(完整版)
- 政府预算理论与实务(第四版)全套教学课件
- 四年级上册美术课件第1课 送给老师的花|沪教版
- 轧机设备安装施工方案
- 最新开工报告范文
- (完整版)IATF16949新版过程乌龟图的编制与详解课件
- 制药企业仓库温湿度分布的验证
- GB∕T 3099.4-2021 紧固件术语 控制、检查、交付、接收和质量
- 山东临清实验中学2012学年八年级语文 7课背影共3课时教案(表格版) 人教新课标版
- 深圳牛津小学英语单词汇总
评论
0/150
提交评论