编写一个计算器程序课程设计报告-范例
计算器课程设计报告
计算器课程设计报告一、课程目标本节计算器课程设计以提升学生的数学计算能力、逻辑思维能力和实际应用能力为核心,结合三年级学生的认知特点和实际需求,制定以下课程目标:1. 知识目标:(1)学生能够掌握计算器的基本功能及操作方法;(2)学生能够运用计算器进行简单的四则运算,并理解相关数学概念;(3)学生能够运用计算器解决生活中的实际问题,提高数学应用能力。
2. 技能目标:(1)培养学生运用计算器进行快速、准确计算的能力;(2)培养学生运用计算器辅助解决数学问题的能力;(3)提高学生逻辑思维能力,培养学生独立思考和解决问题的能力。
3. 情感态度价值观目标:(1)激发学生对计算器的兴趣,培养学生主动探究新知的习惯;(2)培养学生合作交流、分享成果的团队精神;(3)培养学生将所学知识应用于实际生活的意识,增强学生的自信心和成就感。
本课程旨在通过计算器教学,使学生在掌握基本计算技能的同时,提高数学素养,培养实际应用能力,激发学生对数学学习的兴趣,为学生的终身学习打下坚实基础。
二、教学内容本节计算器课程依据课程目标,结合课本内容,选择以下教学材料和安排:1. 教学大纲:(1)计算器的基本功能介绍与操作方法;(2)使用计算器进行加、减、乘、除四则运算;(3)运用计算器解决实际问题。
2. 教学内容安排与进度:第一课时:认识计算器,了解计算器的基本功能和操作方法,包括开关机、清屏、数字键、运算符号键等。
第二课时:学习使用计算器进行加、减、乘、除四则运算,并通过练习巩固运算方法。
第三课时:运用计算器解决生活中的实际问题,如购物找零、计算面积等。
3. 教材章节及内容列举:(1)第三章《计算器与计算》:介绍计算器的基本功能、操作方法及四则运算;(2)第四章《计算器在实际应用中的作用》:举例说明计算器在生活中的应用,提高学生实际操作能力。
教学内容科学系统地组织,注重理论与实践相结合,使学生能够熟练掌握计算器的使用方法,并能在实际生活中运用计算器解决简单问题,提高学生的数学素养。
c课程设计计算器报告
c 课程设计计算器报告一、教学目标本课程的教学目标是使学生掌握C语言的基本语法,熟练使用C语言进行程序设计。
具体分为三个部分:1.知识目标:学生需要掌握C语言的基本语法,包括数据类型、运算符、控制结构、函数等。
2.技能目标:学生能够使用C语言编写简单的程序,解决实际问题。
3.情感态度价值观目标:培养学生对计算机科学的兴趣,提高学生解决问题的能力。
二、教学内容教学内容主要包括C语言的基本语法和程序设计的基本方法。
具体安排如下:1.第一章:C语言概述,介绍C语言的历史和发展,理解C语言的特点。
2.第二章:数据类型和运算符,学习C语言的基本数据类型和运算符。
3.第三章:控制结构,学习C语言的条件语句和循环语句。
4.第四章:函数,学习C语言的函数定义和调用。
5.第五章:数组和字符串,学习C语言的数组和字符串操作。
6.第六章:指针,学习C语言的指针概念和应用。
7.第七章:结构体和文件,学习C语言的结构体和文件操作。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法:1.讲授法:讲解C语言的基本语法和概念。
2.案例分析法:通过分析实际案例,让学生理解C语言的应用。
3.实验法:安排实验课程,让学生动手编写C语言程序。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C程序设计语言》2.参考书:《C Primer Plus》、《C和指针》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、编程环境五、教学评估本课程的评估方式包括平时表现、作业、考试等。
具体安排如下:1.平时表现:占课程总评的30%,包括课堂参与度、提问回答、小组讨论等。
2.作业:占课程总评的30%,包括课后练习、编程任务等。
3.考试:占课程总评的40%,包括期中考试和期末考试。
评估方式要求客观、公正,能够全面反映学生的学习成果。
我们将根据学生的实际情况,及时给予反馈,帮助学生提高。
六、教学安排本课程的教学进度安排如下:1.每周一次课,每次课2小时。
c语言程序设计课程计算器设计报告
课程设计实验报告题目 C/C++语言程序设计所在院系信息学院专业计算机科学与技术班级 12级计科班学生指导教师2014年9月24 日程序设计流程图:源代码:#include <stdio.h>#include<math.h> #include <stdlib.h>void fun1(){printf("\t\t\t*****************************\n");printf("\t\t\t$ 欢迎使用计算器 $\n");printf("\t\t\t$ $\n");printf("\t\t\t$ 1.加法 $\n");printf("\t\t\t$ 2.减法 $\n");printf("\t\t\t$ 3.乘法 $\n");printf("\t\t\t$ 4.除法 $\n");printf("\t\t\t$ 5.乘方 $\n");printf("\t\t\t$ 6.开方 $\n");printf("\t\t\t$ 7.八进制转换 $\n");printf("\t\t\t$ 8.十六进制转换 $\n");printf("\t\t\t$ 9.退出 $\n");printf("\t\t\t$ $\n");printf("\t\t\t*****************************\n");}void fun2(float x,float y,int c){float z;int n,i;switch(c){case 1: z=x+y;printf("结果:%g+%g=%g\n",x,y,z);break; case 2: z=x-y;printf("结果:%g-%g=%g\n",x,y,z);break; case 3: z=x*y;printf("结果:%g*%g=%g\n",x,y,z);break; case 4: if(y==0)printf("错误!");else{z=x/y;printf("结果:%g/%g=%g\n",x,y,z);}break; case 5: n=x;for(i=1;i<y;i++){x=x*n;}printf("结果:%g\n",x);break;default:printf("请重新输入!");}}void fun3(float x,int c){float z;switch(c){case 6:if(x<0)printf("错误!");else{z=sqrt(x);printf("结果:%g\n",z);}break;default:printf("请重新输入!");}}void convert(int m,int c){char s[128];switch(c){case 7:printf("结果:%o\n",m);break;case 8:printf("结果:%x\n",m);break;default:printf("请重新输入!");}}void main(){for(;;){float x,y,z;int c,m;char h;fun1();printf("请选择运算:\n");printf("1\n2\n3\n4\n5\n6\n7\n8\n9\n"); printf("请输入运算方式前面的数字:\n");scanf("%d",&c);if(c==1||c==2||c==3||c==4||c==5){printf("输入两个数:");scanf("%f%f",&x,&y);fun2(x,y,c);}if(c==6){printf("输入一个数:");scanf("%f",&x);if(x<0)printf("错误!");elsefun3(x,c);}if(c==7||c==8){printf("输入一个数:");scanf("%d",&m);convert(m,c);}if(c==9){printf("<<<<<<<<<谢谢使用!>>>>>>>>>\n");} if(c>='a' && c<='z')printf("没有这个选择!\n");if(c>='A' && c<='Z')printf("没有这个选择!\n");}}。
简单计算器设计报告
简单计算器设计报告045一、基本功能描述通过文本编辑框实现基本整数的加减乘除运算二、设计思路如下图是整个程序进行的流程图, 基本方法是在ItemText文本编辑框输入字符, 程序对字符进行判断, 若输入不是数字则提示错误。
输入正常时, 通过下拉框ComboBox_InsertString选择相应运算符。
点击等号IDC_OK, 即可得出运算结果。
操作简便, 算法简单。
三、软件设计1、设计步骤打开Microsoft Visual C++ 6.0,在文件中点击新建, 在弹出框内选择MFC AppWizard[exe]工程, 输入工程名zhoutong及其所在位置, 点击确定将弹出MFC AppWizard-step 1对话框, 选择基本对话框, 点击完成MFC AppWizard就建立了一个基于对话窗口的程序框架四、主要程序分析1.字符判定函数BOOL IsInt(TCHAR*str) {int i=atoi(str);TCHAR strtemp[256]; wsprintf(strtemp,"%i",i); if(strcmp(str,strtemp)!=0) {return FALSE;}Else{return TRUE;}}3、该函数通过atoi把文本编辑框读取的字符转换为数字, 再通过wsprintf把转换数字转换为字符, 通过strcmp比较原字符和转换得来的字符。
如相同返回true,不通则返回false.4、运算符选择程序BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam){HWND hwndComboOP=GetDlgItem(hwnd,IDC_COMBOOP);ComboBox_InsertString(hwndComboOP,-1,TEXT("+"));ComboBox_InsertString(hwndComboOP,-1,TEXT("-"));ComboBox_InsertString(hwndComboOP,-1,TEXT("*"));ComboBox_InsertString(hwndComboOP,-1,TEXT("/"));return TRUE;}通过ComboBox_InsertString插入要输入的运算符5、主程序字符获取TCHAR str1[256];TCHAR str2[256];GetDlgItemText(hwnd,IDC_EDIT1,str1,sizeof(str1));GetDlgItemText(hwnd,IDC_EDIT2,str2,sizeof(str2));调用子程序判断输入是否为数字if(IsInt(str1)==FALSE){MessageBox(hwnd,TEXT("第一个数不是合法整数"),TEXT("错误"),MB_OK|MB_ICONERROR); return;}if(IsInt(str2)==FALSE){MessageBox(hwnd,TEXT("第二个数不是合法整数"),TEXT("错误"),MB_OK|MB_ICONERROR); return;}将输入字符转换为数字int i1=atoi(str1);int i2=atoi(str2);int i3=0;获取运算符HWND hwndComboOp=GetDlgItem(hwnd,IDC_COMBOOP);int curIndex=ComboBox_GetCurSel(hwndComboOp);运算switch(curIndex){case 0:{i3=i1+i2;}break;case 1:{i3=i1-i2;}break;case 2:{i3=i1*i2;}break;case 3:{i3=i1/i2;}break;}运算结果转换为字符TCHAR str3[256];itoa(i3,str3,10);输出运算结果SetDlgItemText(hwnd,IDC_EDIT3,str3);}break;退出程序case IDC_EXIT:{exit(0);}break;五、结果分析六、该计算器只能实现简单的整数运算, 不能对小数分数进行运算。
c简单计算器课程设计报告
c 简单计算器 课程设计报告一、课程目标知识目标:1. 让学生掌握简单计算器的基本功能,包括加、减、乘、除等四则运算。
2. 使学生理解计算器操作规则,如先算乘除后算加减、括号的作用等。
3. 帮助学生掌握计算器上的其他功能键,如清除、取反、百分比等。
技能目标:1. 培养学生运用计算器进行四则运算的能力,提高计算速度和准确性。
2. 培养学生运用计算器解决实际问题的能力,如购物找零、计算面积等。
3. 培养学生通过观察、思考、提问等方式,发现计算器使用过程中的问题,并尝试解决。
情感态度价值观目标:1. 培养学生对待计算器等电子设备的正确态度,爱护设备,遵守使用规范。
2. 培养学生在合作学习中互相帮助、共同进步的精神,增强团队意识。
3. 通过计算器教学,激发学生对数学学科的兴趣,提高学生的自信心和自主学习能力。
本课程针对年级学生的特点,注重培养学生的学习兴趣和实践能力。
课程性质为实践操作类,强调学生在动手实践中掌握知识。
在教学过程中,教师需关注学生的学习需求,及时调整教学策略,确保学生能够达到课程目标。
课程目标分解为具体学习成果,以便于后续教学设计和评估。
在教学结束后,学生应能独立使用计算器完成四则运算,解决实际问题,并在学习过程中培养良好的情感态度和价值观。
二、教学内容1. 计算器基本结构认知:让学生了解计算器各部分名称及其功能,如数字键、运算符号键、等于键、清除键等。
2. 四则运算操作方法:教学加、减、乘、除四则运算的计算器操作方法,以及运算顺序和括号的使用。
- 加法和减法运算- 乘法和除法运算- 混合运算及括号应用3. 计算器其他功能键使用:介绍取反、百分比、开方等特殊功能键的操作方法。
4. 实践应用:设计实际应用场景,让学生运用计算器解决购物找零、计算面积、计算速度等问题。
- 购物找零问题- 长度、面积、体积计算- 速度、时间、路程计算教学内容参考教材相关章节,结合课程目标进行整合。
教学大纲安排如下:第一课时:计算器基本结构认知、四则运算操作方法(加法和减法运算)第二课时:四则运算操作方法(乘法和除法运算)第三课时:四则运算操作方法(混合运算及括号应用)第四课时:计算器其他功能键使用第五课时:实践应用(购物找零问题)第六课时:实践应用(长度、面积、体积计算)第七课时:实践应用(速度、时间、路程计算)教学内容注重科学性和系统性,确保学生能够循序渐进地掌握计算器的使用方法,并在实际应用中巩固所学知识。
计算器程序设计报告
计算器程序设计报告计算器程序设计报告1. 引言2. 设计目标本计算器程序的设计目标如下:提供简单的四则运算功能,包括加法、减法、乘法和除法;提供括号功能,可以进行复杂的运算操作;提供求幂功能,支持指数运算;接受用户输入,并返回计算结果。
3. 系统设计3.1 输入与输出本计算器程序采用命令行界面。
用户可以通过键盘输入数学表达式,程序将对表达式进行解析计算,并将结果输出到屏幕上。
3.2 表达式解析与计算本计算器程序的关键功能是解析并计算用户输入的数学表达式。
为了实现这一功能,我们需要进行以下步骤:1. 从用户输入中提取出数字、运算符和括号,并将它们按照正确的顺序组合成一个合法的数学表达式。
2. 对表达式中的括号进行处理,按照括号的优先级逐步计算子表达式的值,最终得到整个表达式的结果。
3. 对表达式中的运算符进行处理,按照运算符的优先级进行相应的运算。
3.3 错误处理为了提高用户体验和程序的健壮性,我们需要对用户输入进行合法性检查,并及时给出错误提示。
例如,输入的表达式中如果缺少括号或运算符,或者存在不支持的字符,程序应该能够及时发现并提示用户进行修正。
4. 系统实现本计算器程序的实现可以采用编程语言。
提供了丰富的字符串处理和数值计算的库,十分适合用来实现一个简单的计算器程序。
具体的实现过程如下:1. ,我们需要定义一个函数,用于接受用户输入的数学表达式,并返回计算结果。
这个函数可以使用的input函数实现。
2. 接下来,我们需要编写一个函数,用于对用户输入的表达式进行解析,并把它们按正确的顺序组合成一个合法的数学表达式。
这个函数可以使用的字符串处理函数实现。
3. 对于带有括号的表达式,我们可以使用递归的方式进行解析和计算。
递归函数可以反复调用自身,处理子表达式,并将最终的计算结果返回。
4. ,我们需要编写一个函数,用于对表达式中的运算符进行处理,并按照优先级进行相应的运算。
5. 测试与验证为了验证计算器程序的正确性和可靠性,我们需要进行一系列的测试。
编写一个计算器程序课程设计报告范例
编写一个计算器程序课程设计报告范例Coca-cola standardization office【ZZ5AB-ZZSYT-ZZ2C-ZZ682T-ZZT18】《金融IT 入门-程序设计》课程设计报告中国地质大学长城学院XX 系2017年 月 3 日目录一.总体概述:二.设计目标: 三.程序流程图: 四.程序代码:五.设计体会:题目: 用Python 编写简易计算器程序学号:专业: 班级: 姓名: 指导教一、设计内容1.课程设计目的:1)掌握Java语言的程序设计方法;2)理论联系实际,进一步提高学生的软件开发技术;3)培养学生分析、解决问题的能力;4)提高学生实践论文撰写能力。
2.课程设计任务:1)设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运算(可以进行浮点数和负数的运算);2)有求倒数、退格和清零功能。
3.创新要求:能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。
图形界面采用继承windowadapter类,采取调用类方法来注册监听!4.设计要求:1)设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。
且有小数点、正负号、求倒数、退格和清零功能。
2)课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。
3)认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。
二、原理与分析1.开发的技术及功能本课程设计是要做一个图形界面的计算器,其界面主要是由swing组件中的控件构成。
程序实现了计算器的基本功能有:加、减、乘、除基本算术运算(可以进行浮点和负数运算)和sin、cos、tan等三角函数求值运算,同时能进行指数运算和自然对数运算,还有求倒数、退格和清零功能。
2.设计思路设计这个计算器主要是参考Windows操作系统中自带的计算器,由于编者水平和时间的限制,不能将计算器设计到科学型及其他更复杂的类型,在设计过程中还参考了一些其他的优秀设计。
QT课程设计报告【范本模板】
题目:简易计算器学院:信息科学与技术专业:软件工程姓名:学号:2014.04.19一、需求分析当今社会是信息社会,科技经济高速发展的社会,为了更方便人们的工作生活和加速人们处理信息的速度,计算器应运而生。
然而,电脑已经成为当代人生活的必需品,运行在电脑上的计算器成为了人们的生活学习绝佳伴侣。
下面是用C++编写的,基于Qt图形用户界面应用程序框架的计算器,它实现了对整数,浮点数的加﹑减﹑乘﹑除﹑幂运算。
二、设计过程1.界面设计在QT设计器中布置好计算器界面,所有按键采用的pushButton控件,显示计算结果采用的是lineEdit控件.完成的界面如下图所示:图计算器界面为了使按钮显示美观,将每个button的属性设置如下:图button大小、字体属性为符合人们的使用习惯,将lineEdit空间的属性更改,使得输入的数字和符号出现在空间的右边起。
如图:图lineEdit控件属性更改2.控件重命名将界面布局设计好后,将各个空间改名,例如“0"改为but0.3.简单信号响应对于button exit退出程序,这样简单的响应,直接在设计器中通过添加信号和槽来完成,如图:图信号和槽4.辅助数据成员及函数为了区分每一次计算和保存操作数、操作符,和辅助函数(如:输出函数),在calculator。
h的类中设定数据成员以及成员函数:calculat。
cpp中辅助函数的实现:5.数字键的响应以button 0为例,在calculator。
cpp文件中添加but0的代码,如下:6.小数点的响应当一个操作数已经输入了一个小数点时,将小数点按钮置为不可用,以防用户重复输入小数点,导致输入操作数不合法,如下如:7.运算功能的响应以加法为例,向lineEdit中输入显示+号,并在数据成员中保存,以便后面进行计算:8.清屏的响应首先将lineEdit的显示清除,再置为0;将一切辅助的数据成员数据重置到新一轮计算的开始状态,如:运算符为空,操作数为0等.实现如下:9.等号的响应根据数据成员记录的运算符和操作数进行相应的计算,并将得出的结果转化为string显示在lineEdit上,并重置辅助数据成员,准备下一轮的计算开始。
JAVA课程设计----计算器小程序报告共13页文档
#####学院JA V A语言课程设计报告小程序计算器系统管理班级:#######姓名:###指导老师:###时间:2012年6月25日至6月29日目录1、课程设计概述--------------------------------------------------31.1利用java编写计算器,使之具备一定的功能:-----------------31.2 课程设计的主要思想--------------------------------------------------31.3 该项目设计的目的-----------------------------------------------------32、需求分析方案--------------------------------------------------42.1功能需求分析-----------------------------------------------42.2 性能需求分析-----------------------------------------------43、总体设计方案--------------------------------------------------53.1界面设计----------------------------------------------------------------------53.2功能介绍-----------------------------------------------------------------------54、详细说明、调试---------------------------------------------64.1程序流程图-------------------------------------------------------64.2部分代码说明-----------------------------------------------------64.3程序调试与结果示例-------------------------------------------85、个人总结-----------------------------------------------------106、附录(代码)-----------------------------------------------116.1登陆界面代码--------------------------------------------116.2计算器主界面--------------------------------------------126.3 退出界面代码-------------------------------------------151.课程设计概述1.1利用java编写计算器,使之具备一定的功能:(1)使用图形用户界面:一个文本框;0-9数字按钮;加、减、乘、除运算符;“等于”符号;复位按钮;(2)完成整数、实数的四则运算(加、减、乘、除);(3)通过按钮点击实现数据的复位(清零);(4)实数运算中小数位的精度一致。
编写一个计算器程序课程设计报告范例定稿版
编写一个计算器程序课程设计报告范例HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】《金融IT 入门-程序设计》课程设计报告中国地质大学长城学院XX 系2017年月 3 日 目录 一.总体概述: 二.设计目标: 三.程序流程图: 四.程序代码:五.设计体会:细则题目: 用Python 编写简易计算器程序 学号:专业:班级:姓名: 指导教师:2016-2017学年 第二学期一、设计内容--------------------------------------------------- - 2 -1. 课程设计目的:------------------------------------------- - 2 -2.课程设计任务:??------------------------------------------ - 2 -3.创新要求:------------------------------------------------ - 2 -4.设计要求:------------------------------------------------- - 2 -二、原理与分析------------------------------------------------- - 2 -1.开发的技术及功能------------------------------------------ - 3 -2.设计思路-------------------------------------------------- - 3 -3.设计效果图------------------------------------------------ - 3 -三、设计过程--------------------------------------------------- - 3 -1. 程序思路:----------------------------------------------- - 3 -2.功能实现:------------------------------------------------ - 4 -1)加减乘除求余以及指数运算------------------------------ - 4 -2)其他运算---------------------------------------------- - 4 -3)主要方法说明------------------------------------------ - 6 -4)程序流程图-------------------------------------------- - 6 -3.算法思路:------------------------------------------------ - 7 -4.数据分析:------------------------------------------------ - 8 -四、设计结果与分析---------------------------------------------- - 8 -⒈运行调试-------------------------------------------------- - 8 -1)进行加减乘除求余以及指数运算-------------------------- - 8 -2)求倒-------------------------------------------------- - 9 -3)退格------------------------------------------------- - 10 -4)清零------------------------------------------------- - 10 -5)求余弦、求正切、对e求幂、求平方根、求自然对数、求倒运算- 11 -6)连续运算(例:2*3*4=24.0)--------------------------- - 11 -7)异常处理(例:求倒时输入数为0)--------------------- - 12 -五、设计体会与小结-------------------------------------------- - 13 -六、参考文献-------------------------------------------------- - 13 -七、源程序---------------------------------------------------- - 14 -一、设计内容1.课程设计目的:1)掌握Java语言的程序设计方法;2)理论联系实际,进一步提高学生的软件开发技术;3)培养学生分析、解决问题的能力;4)提高学生实践论文撰写能力。
C语言课程设计-计算器程序设计报告书
C语言课程设计-计算器程序设计报告书课程设计说明书题目计算器程序设计起讫日期 2006 年 7月 3日至 2006 年 8月 6日所在院系软件学院专业机械+软件班级 04-2 学生姓名学号指导教师2010年 8 月日摘要当今社会是信息社会,科技经济高速发展的社会~为了更方便人们的工作生活和加速人们处理信息的速度,计算器应运而生。
由于它体积小巧,携带方便,价格便宜,构造简单等诸多的优点成为人们生活中的必备品~随着科技的发展计算器的种类变得更多,功能变得更强大,体积变得更小~电脑的出现改变人们的生活习惯,很多事情都可以电脑来完成~电脑的更大一个优点就是可以通过软件的应用无限的延伸电脑功能的外延~下面我们将用我们学习的c 语言编写一个简易的计算器程序~实现简单的初步的计算功能~本程序的编写基础是Tubro C2.0汉化版,它在tubro c的原有基础上实现了多汉字的支持方便了我们的使用。
生成的程序可移植性强兼容性好稳定~现在只实现了加、减、乘、除、求幂、求模,求平方根,求Sin,求Cos,求Log10,以及一个时钟原代码。
这个系统是基于软件发展的生命周期来研制的,它可以直接输入数学表达式,不需要任何转换,就可以直接输出数学四则运算的结果。
但是,每次只能运算一个表达式。
不能运算多个表达式。
在程序里面在添加一组选择函数即可。
本论文主要介绍了本课题的开发背景,开发的过程和所要完成的功能。
重点的说明了系统设计思想,设计的步骤、难点技术和解决方案。
关键词:C语言 Tubro c 2.0汉化版计算器时钟目录第一章综述…………………………………………………………………1 (1 课题的现实意义………………………………………………………1 11(2 软件环境........................................................................1 1(3 硬件环境 (1)第二章系统设计流程图……………………………………………………2 2(1 系统流程图……………………………………………………………2 (2 主要功能表……………………………………………………………2 2第三章系统分析和设计……………………………………………………3 (1 图形的绘制和输出……………………………………………………3 33(2 文本的输出显示...............................................................3 3(3 计算函数的调用...............................................................4 3(4 程序的运行和退出 (5)第四章系统测试.....................................................................6 4(1 系统测试........................................................................6 4(2 调试..............................................................................6 4(3 错误原因分析一...............................................................6 4(4 错误原因分析二 (6)第五章用户使用说明书……………………………………………………8 5(1 运行Turbo C程序进入计算器界面…………………………………8 5(2 计算器的使用..................................................................9 5(3 退出程序 (9)第六章工作总结 (10)参考文献………………………………………………………………………11 附录: 源代码第一章综述1.1 课题的现实意义现实学习生活中,常会遇到一些数目较大数据繁杂的数值运算,徒手运算起来很困难,这时候我们就必须用到计算器,所以便着手开发了这个计算器程序,以便用于自己的学习工作。
计算器程序设计报告
计算器程序设计报告计算器程序设计报告1-引言1-1 背景计算器是一种常见的工具,可以进行基本的数学运算,如加减乘除等。
为了满足用户的需求,我们决定设计一个计算器程序,使用户能够方便地进行各种数学运算。
1-2 目的本报告旨在描述我们设计的计算器程序的详细功能和实现过程。
通过本文档,读者将了解到如何使用计算器程序进行各种数学运算,并且可以根据需要进行扩展。
2-需求分析2-1 用户需求用户希望使用一个具有简单操作界面、支持各种基本数学运算,并具备一些额外功能的计算器程序。
2-2 功能需求●支持基本的四则运算:加法、减法、乘法、除法。
●支持括号的运算优先级。
●支持取余和取模运算。
●支持科学计数法。
●支持计算平方根、立方根等常用数学函数。
●支持存储和读取计算结果。
●支持清除当前输入和计算结果。
●支持多种界面主题选择。
●支持历史记录功能,记录之前的计算操作。
3-设计方案3-1 总体架构计算器程序将采用分层架构,包括界面层、业务逻辑层和数据存储层。
界面层负责用户交互,业务逻辑层负责处理用户的输入和计算逻辑,数据存储层负责存储用户的计算结果和历史记录。
3-2 界面设计界面将采用简洁直观的设计,包括数字按钮、运算符按钮和其他功能按钮。
用户可以通过按钮进行数学运算和额外功能的操作。
3-3 数据结构设计程序将使用栈来处理运算符的优先级和括号的匹配。
同时,还需设计适当的数据结构来存储计算结果和历史记录。
4-功能实现4-1 基本四则运算程序将设计相应的函数来实现加法、减法、乘法和除法运算,并考虑数值溢出和除数为零的异常情况。
4-2 括号的运算优先级程序将使用栈来处理具有括号的运算,保证括号内的运算先于外层运算。
4-3 科学计数法程序将设计函数来处理科学计数法表示的数值,并进行相应的运算。
4-4 常用数学函数程序将设计函数来计算平方根、立方根等常用数学函数,并进行相应的运算。
4-5 计算结果的存储和读取程序将提供存储计算结果和读取之前结果的功能,方便用户进行连续计算和结果的查看。
C++课程设计(计算器)报告
课程设计报告Visual C++ 课程设计题目:计算器题目:计算器1.程序功能简介实现计算器功能。
用户根据程序提示,输入数字,选择要进行的运算,可以进行加,减,乘,除,开方、温度单位的换算。
2.课程设计要求(1)完善计算器程序,改写成可对实数操作。
(2)完善程序,改为多个操作数基本四则运算,遇到0为止(3)增加函数、完成四则混合运算,注意算法要考虑优先级,对应增加主菜单选项。
(4)添加语句,使四则运算具有测试功能,即计算器出题目,并要求用户计算,同时计算机判断用户对错并打分,要求十题为一个单元,加减运算时最高为两位数运算,乘除法为两位数乘一位数,除法是两位数或三位数除以一位数,且没有余数。
3.设计思路将原函数的int型数据改为float型数据。
仿照类设计四则混合运算的程序,四则混合运算的分函数主要有double eval_exp(char *exp);//运算四则运算表达式的主函数,返回结果、void oopcalc::sizeyunsuan();//四则运算调用的主函数、double oopcalc::eval_exp(char *exp)//计算表达式函数并返回结果、get_token();//取表达式函数等。
利用类的结构编写一个void test()//测试函数,并给出选项选择测试的内容。
并参考资料改写随机数生成器源代码,使之符合类的结构能够被调用,添加有关头文件。
4.程序结构图5.添加的主要函数代码添加四则运算主要代码oopcalc::parser(){exp_ptr = NULL;}// 将exp_prt赋值为空指针double oopcalc::eval_exp(char *exp)//计算表达式函数并返回结果{double result;exp_ptr = exp;//将指针指向表达式get_token();//取表达式函数if(!*token)//取得链表为空时,显示错误警告,并返回0值{serror(2);return 0.0;}eval_exp2(result);if(*token) serror(0);return result;}void oopcalc::eval_exp2(double &result)//识别加减符号{register char op;double temp;eval_exp3(result);while((op = *token) == '+' || op == '-')//判断指针指向的符号{get_token();eval_exp3(temp);switch(op) //通过switch语句实现判断{case '-':result = result - temp;break;case '+':result = result + temp;break;}}}void oopcalc::eval_exp3(double &result)//识别乘除号与百分号,方法同加减号{register char op;double temp;eval_exp4(result);while((op = *token) == '*' || op == '/' || op == '%'){get_token();eval_exp4(temp);switch(op) {case '*':result = result * temp;break;case '/':result = result / temp;break;case '%':result = (int) result % (int) temp;break;}}}void oopcalc::eval_exp4(double &result){double temp, ex;register int t;eval_exp5(result);if(*token== '^'){get_token();eval_exp4(temp);ex = result;if(temp==0.0){result = 1.0;return;}for(t=(int)temp-1; t>0; --t) result = result * (double)ex;}}void oopcalc::eval_exp5(double &result){register char op;op = 0;if((tok_type == DELIMITER) && *token=='+' || *token == '-') {op = *token;get_token();}eval_exp6(result);if(op=='-') result = -result;}void oopcalc::eval_exp6(double &result){if((*token == '(')){get_token();eval_exp2(result);if(*token != ')')serror(1);get_token();}else atom(result);}void oopcalc::atom(double &result){switch(tok_type){case NUMBER:result = atof(token);get_token();return;default:serror(0);}}void oopcalc::serror(int error)//输入空时显示输入错误{static char *e[]= //将一组字符串赋值给指针{"Syntax Error","Unbalanced Parentheses","目前没有表达式"};cout << e[error] << endl;//输出字符串}void oopcalc::get_token()//{register char *temp;tok_type = 0;temp = token;*temp = '\0';if(!*exp_ptr) return;while(isspace(*exp_ptr)) ++exp_ptr;if(strchr("+-*/%^=()", *exp_ptr)){tok_type = DELIMITER;*temp++ = *exp_ptr++;}else if(isalpha(*exp_ptr)){while(!isdelim(*exp_ptr)) *temp++ = *exp_ptr++;tok_type = V ARIABLE;}else if(isdigit(*exp_ptr)){while(!isdelim(*exp_ptr)) *temp++ = *exp_ptr++;tok_type = NUMBER;}*temp = '\0';}int oopcalc::isdelim(char c){if(strchr(" +-/*%^=()", c) || c==9 || c=='\r' || c==0)return 1;return 0;}void oopcalc::sizeyunsuan()//——————————————————————————————四则运算{char expstr[80];cout << "输入0使计算终止。
C语言计算器程序设计报告
C语言集中上机实验报告一、需求分析(1)制作一个计算器,能够计算四则混合运算以及乘方和开方,并显示出正确的结果。
(2)程序能根据运算符的高低进行运算(开放符号置左置右不影响正常运算)(3)可以输入括号二、设计思路(1)运用栈以及结构体来实现,将数字与运算符分别放在结构体与栈里面,将栈以及结构体里的字符数值一一匹配计算,将得出的结果保存到另一个栈里(zhan3)。
(2)开始,对所输入的字符串进行转化,把运算符存放在zhan2里面,把数值存放到data结构体里面,然后进行运算和操作。
(3)运用循环来实现无限输入,用数组nibo来跟踪整个过程,每次运算后将值置空,若检测到空,计算得出结果,退出输入q。
三、流程图四、主程序段#include<stdio.h>#include<math.h>#include<malloc.h>double jisuan(char a[]){int i=1,j,k,m,cnt=0,t1=0,t2=0,t3=0;char nibo[50],zhan2[50];//zhan2存放的是运算符double x,n,l,z=0,zhan3[50];//暂存结果typedef struct{double d1;int d2;}dd;typedef struct{dd data[50];int top;}zhan1;zhan1 *shu;shu=(zhan1 *)malloc(sizeof(zhan1));shu->top=0;while(a[i]!='\0'){if(a[i]>='0'&&a[i]<='9'){z=0;j=i+1;while(a[j]>='0'&&a[j]<='9'){j++;}j--;for(k=i;k<=j;k++){z=z*10+a[k]-'0';}j=j+1;//j跳到数字后一位x=z;if(a[j]=='.')//如果是小数的话就把小数和整数一起加上{l=1;i=j+1;j=i+1;while(a[j]>='0'&&a[j]<='9'){j++;}j--;for(k=i;k<=j;k++){n=pow(0.1,l);l=l+1;x=x+n*(a[k]-'0');}i=j+1;}else i=j;shu->data[++shu->top].d1=x;shu->data[shu->top].d2=++cnt;nibo[++t1]='0'+shu->data[shu->top].d2;nibo[t1+1]='\0';}//如果是数字那么就保存到结构体里的dd数组里的第二个成员里else if(a[i]=='('){zhan2[++t2]=a[i];i++;}else if(a[i]==')'){j=t2;while(zhan2[j]!='('){nibo[++t1]=zhan2[j];nibo[t1+1]='\0';j--;}t2=j-1;i++;}else if(a[i]=='+'){while(t2>0&&zhan2[t2]!='('){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}else if(a[i]=='-'){if(a[i-1]=='$'){a[0]='0';i=0;}else if(a[i-1]=='('){a[i-1]='0';a[i-2]='(';i=i-2;t2--;}else{while(t2>0&&zhan2[t2]!='('){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}}else if(a[i]=='*'||a[i]=='/'){while(zhan2[t2]=='*'||zhan2[t2]=='/'||zhan2[t2]=='^'||zhan2[t2]=='#'){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}else if(a[i]=='^'||a[i]=='#'){while(zhan2[t2]=='^'||zhan2[t2]=='#'){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}}//把输出的多项式中的数字字符先转换成数值型存入结构体里,然后把加减乘除等的字符存入到zhan2里--这是转化过程并存储入站//下面就是开始计算结果相当于出站的过程把dd结构体里的数值取出和zhan2的字符来进行运算,当前结果存储到zhan3里,就用nibo数组来判断是否计算完毕while(t2>0){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}j=1;t3=0;while(j<=t1){if(nibo[j]>='0'&&nibo[j]!='^'&&nibo[j]!='#')//{for(i=1;i<=shu->top;i++){if((int)(nibo[j]-'0')==shu->data[i].d2){m=i;break;}}zhan3[++t3]=shu->data[m].d1;}else if(nibo[j]=='+'){zhan3[t3-1]=zhan3[t3-1]+zhan3[t3];t3--;}else if(nibo[j]=='-'){zhan3[t3-1]=zhan3[t3-1]-zhan3[t3];t3--;}else if(nibo[j]=='*'){zhan3[t3-1]=zhan3[t3-1]*zhan3[t3];t3--;}else if(nibo[j]=='/'){zhan3[t3-1]=zhan3[t3-1]/zhan3[t3];t3--;}else if(nibo[j]=='^'){zhan3[t3-1]=pow(zhan3[t3-1],zhan3[t3]);t3--;}else if(nibo[j]=='#'){zhan3[t3]=sqrt(zhan3[t3]);}j++;}return zhan3[t3];}void main()//{for(;;){char x,a[50];double jieguo;int i=0;a[0]='$';printf("#表示开方,^表示乘方(支持负数)\n");printf("请输入表达式无需输入= 号直接回车可输出答案退出请输入q \n\n");scanf("%c",&x);if(x=='q') break;while(x!='\n'){a[++i]=x;scanf("%c",&x);}a[i+1]='\0';jieguo=jisuan(a);printf("\n");printf("结果为:%lf",jieguo);printf("\n\n\n");printf("退出请输入q 继续请直接输入\n\n"); }}}五、调试分析六、调试说明以及分析:1、当输入为正确的格式时,能算出正确的结果,其中包括:小数、整数以及个位以上的数字,且运算符包括:加、减、乘、除运算,还有就是可以加括号等。
计算器程序设计报告
计算器程序设计报告一、设计分析编写一个计算器程序,要求:1、界面类似于windows系统中提供的计算器界面;2、能实现加、减、乘、除、乘方、开方等功能。
界面类似于windows系统中提供的计算器界面,则数字的输入和功能的执行都通过按键来实现,并且能够在显示区域里及时的显示出数据,所用本程序使用VC++提供的高度可视化的应用程序开发工具MFC来实现。
要实现加、减、乘、除、乘方、开方等功能,则在程序中包含"math.h"库函数文件,通过引用相应的函数来实现乘方、开方等功能。
在输入第一个计算参数以后,点击需要执行的计算方式,然后输入第二个计算参数,点击“=”按钮,则会在显示区显示出正确的结果。
本程序从设计上来讲,主要分为两个重点部分,一个是数字的输入,即逐个点击单个数字(包括小数点)之后,这些数据能够在显示区正确的显示。
第二个是数据的计算,先输入第一个计算参数,然后选择计算方式,再输入第二个计算参数,最后点击“=”按钮,计算结果。
二、程序结构按照程序的设计,可以分为数据显示模块、数据输入模块、计算方式选择模块、结果计算模块、菜单模块等五个主要模块,其中,数字输入模块和计算模块是重点和难度,这两个模块的流程图如下所示:1、数字输入的流程图:点击一个数字键以后,流程开始:2、数据计算的流程:三、各模块的功能及程序说明按照程序的设计,可以分为数据显示模块、数据输入模块、计算方式选择模块、结果计算模块、菜单模块等五个主要模块,以下逐个说明各模块的功能及程序说明。
1、数据显示模块。
数据显示模块显示用户输入的数字和计算器计算的结果,主要由一个数字显示框组成。
数字显示框是一个编辑框控件,属性设置为只读模式,不能由用户编辑。
在MFC的类向导中,给数字显示框添加一个变量m_num,用来记录数字的变化,当每次操作以后,都会把数字更新到界面上,显示给用户。
2、数据输入模块。
数据输入模块用来输入1、2、3、4、5、6、7、8、9、0等十个数字和一个“.”小数点,并且可以进行数据正负的转换。
《C++语言程序设计》课程设计报告-分数计算器
《C++语言程序设计》课程设计报告C++语言课程设计——简单计算器说明书目录一、设计目标 (3)二、设计图 (3)三、图解 (5)四、调试和测试 (9)五、分析及结论 (10)六、附录 (12)一、设计目标制作一个分数计算器,以完成分数之间,分数与整数之间的四则运算,以及求分数的指数。
系统界面不做牵制要求。
在进行运算后可以选择继续运算或者进行下一次新的运算,能实现返回功能。
二、设计图1、总体设计图2、详细图模块功能说明及调用关系说明:三、图解1、欢迎使用简单计算器2、等待系统进入主菜单在此选择计算类型【选择代码,回车确定】1、为选择分数与分数之间的四则运算、2、为选择分数与整数之间的四则运算3、为分数的指数运算0、为安全退出程序3、选择分数与分数之间的四则运算分数与分数的加法如:18/5+16/3=134/15 分数与分数的减法如:1/6-/2=-1/3注:在此举例分数与分数的加法、减法计算完成后,按y或n,选择是否继续,y则继续本类运算,n为返回到主菜单,再次进行选择4、选择分数与整数之间的四则运算分数与整数的乘法如:1/2*2=1/1分数与整数的加法如:1/5+6=31/5注:在此举例分数与整数的乘法、加法计算完成后,按y或n,选择是否继续,y则继续本类运算,n为返回到主菜单,再次进行选择5、选择分数的指数运算如:1/3的2次方等于1/9如:2/3的2次方等于4/9注:计算完成后,按y或n,选择是否继续,y则继续本类运算,n 为返回到主菜单,再次进行选择6、安全退出至此,以安全退出。
四、调试和测试<1>、调试方法:首先打开Microsoft Visual C++ 6.0 ,运行程序,出现错误修改再运行,直至运行结果0 error ,0 warning结束。
接着进入程序界面,看程序能否实现所要求的各项功能,再作下一步的修改。
<2>、调试时出现的问题及解决方案:1、当多次运行程序时,屏幕被运行数据占满,显得很杂乱。
C语言课程设计(计算器)
目录1 前言 (2)2 需求分析 (2)2.1要求 (2)2.2任务 (2)2.3运行环境 (2)2.4开发工具 (2)3 概要设计 (2)3.1系统流程图 (3)3.2查询函数流程图 (4)4 详细设计 (8)4.1分析和设计 (8)4.2具体代码实现 (9)5 课程设计总结 (25)参考文献 (25)致谢 (26)1 前言编写一个程序来实现算术计算器。
通过结构体数组和共用体数组来存放输入的每一数字或运算符号的记录(包括1.2.3等数字, +、--、*、等运算符号), 然后将其信息存入文件中。
输入一个算术计算式, 就在屏幕上显示结果。
2 需求分析2.1要求(1)用C语言实现程序设计;(2)利用结构体、共用体进行相关信息处理;(3)画出查询模块的流程图;(4)系统的各个功能模块要求用函数的形式实现;(5)界面友好(良好的人机互交), 程序要有注释。
2.2任务(1)定义一个结构体类型数组, 输入0~9及+、--、*等符号的信息, 将其信息存入文件中;(2)输入简单的加减乘除算术计算式, 并在屏幕上显示计算结果;(3)画出部分模块的流程图;(4)编写代码;(5)程序分析与调试。
2.3运行环境(1)WINDOWS2000/XP系统(2)TurboC2.0编译环境2.4开发工具C语言3 概要设计3.1系统流程图如图3.1所示。
图3.1系统流程图3.2查询函数流程图4 详细设计4.1分析和设计在程序的开头部分定义了结构替类型, 用来存放按钮信息struct s_button /*按键的结构体*/{int sx,sy,ex,ey;char *head;int press;}button[17]; /*图表按键数*/char far *vid_mem;static int tx=32,ty=3; /*静态变量*/float v1=0.0,v2=0.0;用输入函数input()来输入按键放在s_button数组中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《金融IT 入门-程序设计》课程设计报告中国地质大学长城学院XX 系2017年 月 3 日目录一.总体概述: 二.设计目标: 三.程序流程图: 四.程序代码:五.*六.设计体会:题目: 用Python 编写简易计算器程序学号:$专业: 班级:姓名: 指导教师:、2016-2017学年 第二学期一、设计内容--------------------------------------------- - 4 -1. 课程设计目的:------------------------------------- - 4 -2.课程设计任务:-------------------------------------- - 4 -3.创新要求:------------------------------------------ - 4 -4.设计要求: ------------------------------------------- - 4 -二、原理与分析------------------------------------------- - 5 -1.开发的技术及功能------------------------------------ - 5 -2.设计思路-------------------------------------------- - 5 -3.设计效果图------------------------------------------ - 5 -三、设计过程--------------------------------------------- - 5 -1. 程序思路:----------------------------------------- - 5 -2.功能实现:------------------------------------------ - 6 -1)加减乘除求余以及指数运算------------------------ - 6 -2)其他运算---------------------------------------- - 6 -3)主要方法说明------------------------------------ - 6 -4)程序流程图-------------------------------------- - 6 -3.算法思路:------------------------------------------ - 6 -4.数据分析:------------------------------------------ - 7 -四、设计结果与分析---------------------------------------- - 7 -⒈运行调试-------------------------------------------- - 7 -1)进行加减乘除求余以及指数运算-------------------- - 7 -2)求倒-------------------------------------------- - 9 -3)退格-------------------------------------------- - 9 -4)清零-------------------------------------------- - 9 -5)求余弦、求正切、对e求幂、求平方根、求自然对数、求倒运算------------------------------------------------ - 9 -6)连续运算(例:2*3*4=)-------------------------- - 9 -7)异常处理(例:求倒时输入数为0)---------------- - 9 -五、设计体会与小结--------------------------------------- - 9 -六、参考文献-------------------------------------------- - 10 -七、源程序---------------------------------------------- - 10 -一、设计内容1.课程设计目的:1)掌握Java语言的程序设计方法;2)理论联系实际,进一步提高学生的软件开发技术;3)培养学生分析、解决问题的能力;4)提高学生实践论文撰写能力。
2.课程设计任务:1)设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运算(可以进行浮点数和负数的运算);2)有求倒数、退格和清零功能。
3.创新要求:能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。
图形界面采用继承windowadapter类,采取调用类方法来注册监听!4.设计要求:1)设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。
且有小数点、正负号、求倒数、退格和清零功能。
2)课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。
3)认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。
二、原理与分析1.开发的技术及功能本课程设计是要做一个图形界面的计算器,其界面主要是由swing组件中的控件构成。
程序实现了计算器的基本功能有:加、减、乘、除基本算术运算(可以进行浮点和负数运算)和sin、cos、tan等三角函数求值运算,同时能进行指数运算和自然对数运算,还有求倒数、退格和清零功能。
2.设计思路设计这个计算器主要是参考Windows操作系统中自带的计算器,由于编者水平和时间的限制,不能将计算器设计到科学型及其他更复杂的类型,在设计过程中还参考了一些其他的优秀设计。
但本计算器除了常用的加减乘除(可以进行浮点和负数运算)这些基本运算外,还有求余、求倒、退格、清零,甚至还能进行一些复杂科学的运算,比如余弦(cos)、正切(tan)、指数运算(pow)、自然对数运算(log)、求平方根(sqrt)以及对e的指数运算(exp),并且还能进行连续运算。
总体上说来,本计算器设计简单,代码很少,程序很小,但功能却很强大,这是同类计算器所不具备的。
3.设计效果图设计时先在设计界面中添加按钮等控件,后在按钮的actionPerformed事件中添加代码完成其功能其中调用了Java类中的Math函数库以及各种字符串操作。
设计的界面如下:图一计算器运行界面三、设计过程1.程序思路:1)本应用程序继承自框架类(JFrame),容器Container c采用BorderLayout 边缘布局,将单行文本框加入到“North”区域,包含各种按钮的面板JPanel p 加入到”Center”区域。
包含各种按钮的面板JPanel p 采用3行6列的网格布局,然后将数字按钮和运算符按钮以及控制按钮用一个for循环添加到面板中同时注册按钮事件监听器。
如:Button b=new Button();(事件监听器);2)事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。
事件处理分以下几种情况:数字按钮事件(”0”,”1”,”2”…”8”,”9”)、运算符按钮事件(”+”,”-“,”*”,”/”,”%”)、正负号按钮事件(”+/-“)、小数点按钮事件(”.”)、等号按钮事件(”=”)、求倒按钮事件(”求倒”)、退格按钮事件(”退格”)、清除按钮事件(“C”) 、正切(tan)、余弦(cos),以及求平方根(sqrt)、指数(pow)、对e的指数(exp)、对数运算(log)。
3)在事件处理,触发按钮事件时,先判断是或是数字是或是“-/+”是或是“.”,是的话就将负号“-”、数字、小数点“.”分别写入文本框并存放在sum中,然后判断是或是“退格”、“求倒”等,是的话进行相应的处理,都不是的话则跳到doOperation()执行运算同时将运算符存放在preOperater中。
触发按钮事件时,要进一步分析,是重新开始计算时触发的按钮事件还是计算中间触发的按钮事件。
4)计算器完成的是一个数学表达式,如:3+2,所以可以采用一个数组来存储数字或字符,如3,+,2分别存储在数组中,最后运算时,可以一一取出来进行运算。
5)利用按钮设计计算器的各个运算符和操作符,通过按钮的事件处理实现按钮计算功能。
6)利用文本框显示操作数和运算结果。
2.功能实现:1)加减乘除求余以及指数运算void doOperation(){double m=());if("")) sum=m; 法思路:这是一个简单的计算器,里面所涉及到的功能就是加、减、乘、除、开方运算、等基本功能。
仅须定义两个变量来保存双运算操作的前一个数和当前在计算器上显示的数字即可,而对于单运算的操作要求更加简单,只需要一个变量就可以了。
当然对数据进行判断是必不可少的。
在输入数据之后(0))判断输入的数据是否符合要求。
不符合要求给出提示,符合要求以后将判断点击的运算符,执行相应的操作。
对于单运算操作要进一步判断是否符合要求,如果是就进入下步计算,如果不是就弹出相应的提示:“负数不能开根号"; "除数不能为零";用try….catch捕获异常,如果有异常则中止活动。
在进行开方(sqrt)运算时,如果输入数为负数,则弹出"负数不能开根号",中止运算。
在进行自然对数运算时(log)如果输入数为负数,则弹出"负数不能进行自然对数运算”。
在进行三角函数运算时(cos、tan)不必考虑输入的数字是否符合规范,对于任意输入的数函数本身有一个判断的过程,都能把输入的数转化为合适的范围,进而得到正确的结果。
对于加减乘除等双运算操作,每个功能都由每一个模块来实现,当按下加按钮时,进行相应的加法操作,这一块对相应的操作数没有要求;当点击减号时,则进行减法操作,由()得到数字按钮的值显示在相应的文本框中;乘法操作在点击一个操作数然后点击乘号再点击另一个时得出相应的结果显示在文本框中;在作除法运算时,当被除数点击为零时,调用catch进行异常处理,弹出“Infinity”。
4.数据分析:在事件处理,触发按钮事件时,先判断是或是数字是或是“-/+”是或是“.”,是的话就将负号“-”、数字、小数点“.”分别写入文本框并存放在sum中,然后判断是或是“退格”、“求倒”等,是的话进行相应的处理,都不是的话则跳到doOperation()执行运算同时将运算符存放在preOperater中。