ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:141.85KB ,
资源ID:22939817      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22939817.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++课程设计简单计算器的设计 2Word下载.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++课程设计简单计算器的设计 2Word下载.docx

1、VC+ 6.0系统可以在一张CD盘上,也可以在“Visual Studio( Visual C+、Visual Foxpro)”等产品的第一张CD盘上。一般都有一个VC的自动安装程序,也可以执行VC6目录下的setup.exe,在安装包的提示下进行,对初学者可采用“典型安装”方式。在安装好VC 6.0系统后,有时根据需要添加或删除某些部件,可插入CD盘重新执行setup.exe安装程序,安装程序会检测当前系统安装VC6的足件,用户单击“添加删除”按钮后,在“安装维护”对话框中选定要添加的部件或撤消选定要删除的部件。与一般的应用软件一样,有以下两种启动方式:(1)通过“开始”按钮,选择“程序”菜

2、单,然后打开“Microsoft Visual studio 6.0中文版”子菜单中的“Microsoft Visual C+ 6.0 中文版”程序。(2)用户也可以使用命令行启动VC。单击“开始”按钮后选择“运行”命令,在“运行”对话框中输入c:Program FilesMicrosoft Visual StudioVC98VC6.exe(按默认盘符和路径安装)即可。1.4 可行性及需求分析本设计是简单计算器。日常计算机使用中,常常涉及到一些有关计算的问题,一个小型的计算器软件变得非常有用,该校型计算器需要空间资源较少,对电脑其他程序的应用影响较小。它的设计按软件工程的方法进行,系统具有良好

3、的界面、必要的交互信息和较好的健壮性;醒目美观的软件封面。使用人员能快捷简单地进行操作。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。本软件主要用于计算机windows 2000/XP以上版本的用户的使用,这次课程设计一般是实现简单计算器的功能。要程序能实现:加,减,乘,除,开方,倒数等运算功能;还要实现数据的输入,输出,计算,显示及程序退出等功能。另外还可以实现多种科学计算的功能,如:三角函数的计算,弧度与角度间的转换,对数指数的计算等等。二、程序设计与实现2.1程序结构本计算器首先是通过在计算器的界面上按下相应的按钮,来进行基本的加,减,乘

4、,除等基本运算,计算器还能够进行平方运算,求平方根运算,乘方运算,三角函数运算(包括正弦函数(sin)、余弦函数(cos)、正切函数(tan)、余切函数(cot),对数函数(ln、log),指数函数(exp),幂函数(x)等运算。2.2详细步骤2.2.1程序的流程图2.2.2程序设计具体步骤1)总体功能:整个计算器除了基本的加、减、乘、除运算外,另外还有个功能可以实现七大运算:三角函数运算功能、对数函数运算功能、指数函数运算功能、乘方运算功能、平方运算功能、根式运算功能、归零功能。各个运算功能的详细设计说明分别如下:a、基本运算功能 主要实现数据的加、减、乘、除运算,提供简单的科学计算!b、三

5、角函数运算功能用来执行三角函数的运算,包括正弦函数(sin)、余弦函数(cos)和正切函数(tan) c、对数函数运算功能用来执行对数函数的运算,包括以e为底ln函数和以10为底的lg函数。d、指数函数运算功能用来执行指数函数的运算。e、乘方运算功能用来执行乘方的运算,进行数值的成倍计算。f、平方运算功能用来执行平方运算,说到底它也属于乘方运算的范畴。g、根式运算功能用来执行根式的运算。h.归零、删除功能主要实现数据的清零,当用户输入数据出错时,使用此功能可以清除已输入的内容并重新输入新的运算内容。具体程序如下:double operate(double y, char c, double x

6、) /对两个数计算 (含是双目运算符:如 *, / 等等) double r; if(c = -) r = x - y; else if(c = + r = x + y;/ & y != 0) r = x / y;* r = x * y; r = 1; for(int i = 1; i = y; i+) r *= x; % int r0 = (int)x % (int)y; r = double(r0); return r;double operate_one(double one, char cc) /对一个数运算(含单目运算符:如log(L), sin(S) 等等) if(cc = Q r

7、 = sqrt(one); else if(cc = C r = cos(one);S r = sin(one);T r = tan(one);c r = acos(one);s r = asin(one);t r = atan(one);double operate_L(double a, double b, char dian)/求对数的值 double r = log(b) / log(a);2)运算符的比较等级typedef struct node /为了处理符号而建立的链表(如: 1+(-2) char data; node *next;node;typedef struct sta

8、ck_num /存储 数 的栈 double *top; double *base;stack_num;typedef struct stack_char /存储 运算符号 的栈 char *top; char *base;stack_char;stack_num S_num;/定义stack_char S_char;char fu18 = n, )L(;int compare1000; /表现出各运算符号的优先级double shu1000;/存储 数 的数组double dai_result;/运算的结果,是为了处理 M 运算(简介函数里有M的定义)int biao = 0;/和dia_r

9、esult 一样,为了处理 M 运算char lineSIZE;/输入的所要计算的表达式void init()/初始化 comparefu0 = -2;/用数字的大小表现出符号的优先级 comparefu1 = -1; comparefu2 = 2; comparefu3 = 2; comparefu4 = 4; comparefu5 = 4; comparefu6 = 4; comparefu7 = 5; for(int i = 8;= 15; comparefui = 6; comparefu16 = 7; S_num.base = (double*)malloc(sizeof(doubl

10、e)*SIZE);/为栈开辟空间 S_char.base = (char*)malloc(sizeof(char)*SIZE);/同上 S_num.top = S_num.base; S_char.top = S_char.base;void push_num(double n)/数字进栈 * +S_num.top = n;void push_char(char c)/运算符号进栈 * +S_char.top = c;double pop_num()/数字出栈 double m = *S_num.top; S_num.top-; return m;char pop_char()/运算符号出栈

11、char cc = *S_char.top; S_char.top-; return cc;char get_top_char()/得到运算符号的栈中最顶端的运算符号 return *S_char.top;3)整个表达式具体运算程序:double compute() /对整个表达式的计算 char c; /表示运算符号 int p = 0;/用于shu+p, 先初始化 int i, j; init();/进行初始化 push_char(); linestrlen(line) = ; linestrlen(line)+1 = 0 if(biao) push_num(dai_result);/把运

12、算的结果先进栈, 在这个结果的基础上继续进行运算 biao = 0; for(i = 0; linei != )/把表达式中的数字字符串转化成可计算的数字 int flag = 0; int flag1 = 1;/标记是否是运算符号 / int flag2 = 1;/标记是否出现_ double h = 0; int ge;/位数 int biao_dian = 0;/是否是小数的类型 while(1) flag1 = 1; for(j = 0; j = 16; j+) if(linei = fuj) flag1 = 0; break; if(linei = break;. i+; ge =

13、0; biao_dian = 1;P shu+p = pi;E shu+p = e; if(flag1) h = h * 10 + (linei - 0 flag = 1; if(biao_dian) ge+; else if(flag) if(biao_dian) int r = 1; for(int k = 1; k push_num(m); i+; else if(m = -1) c = else if(m = -2) else if(m = -3) else if(m = -4) else if(m = -5) else if(m = -6) else if(m = -7) else

14、if(m = -8) else if(m = -9) else if(m = -10) else if(m = -11) else if(m = -12) else if(m = -13) else if(m = -14) else if(m = -15) else if(m = -16) else if(m = -17) char ch = get_top_char();/得到最顶端运算符号 if(comparech = comparec & ch ! if(ch = | ch = | ch = | ch = double one = pop_num(); char dian = pop_c

15、har(); push_num(operate_one(one, dian); else if(ch = double one_L = pop_num(); double two_L = pop_num(); push_num(operate_L(two_L, one_L, dian); else double x = pop_num(); double y = pop_num(); if(dian = x = 0)/判断是否除了零 cout= 3) else void output(double result)/打出结果 printf(所得结果是: coutresultvoid check()/检查表达式是否合法 void introduce(); char cc;/决定计算器按哪种功能进行计算 double result;/结果 void input(); if( check_kuohao() & check_char() )/看是否合法, 合法则计算 result = compute(); output(result); coutcc) if(cc = system(cls introduce();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1