编写一个计算器程序课程设计报告-范例
计算器课程设计报告
计算器课程设计报告一、课程目标本节计算器课程设计以提升学生的数学计算能力、逻辑思维能力和实际应用能力为核心,结合三年级学生的认知特点和实际需求,制定以下课程目标: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");}}。
计算器程序设计报告
计算器程序设计报告计算器程序设计报告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操作系统中自带的计算器,由于编者水平和时间的限制,不能将计算器设计到科学型及其他更复杂的类型,在设计过程中还参考了一些其他的优秀设计。
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 计算结果的存储和读取程序将提供存储计算结果和读取之前结果的功能,方便用户进行连续计算和结果的查看。
计算器设计报告
高级语言程序设计课程设计报告题目:计算器学号:20131211420姓名:路延红指导教师:李菊霞计算机科学与应用系一、选题分析计算器:1.内容: 编写一个高精度计算器程序,可以计算任意精度的数字。
2.制作菜单;3.为各操作设计函数;二、算法设计1. 设计菜单界面2.添加成功后返回主菜单;3.选择相应数字进入系统;4.退出系统。
三、数据结构void fun1()//算术运算void menu()void fun2()//进制转换void main()四.程序源码#include<stdio.h>#include<math.h>void menu(){printf(" |============================|\n"); printf(" | 1.算术运算; 2.进制转换; |\n"); printf(" |============================|\n\n"); }void fun1()//算术运算{int a,b;char oper; printf("请输入算式:");scanf("%d%c%d",&a,&oper,&b);switch(oper){case '+':printf("结果为:%d\n",a+b);break;case '-':printf("结果为:%d\n",a-b);break;case '*':printf("结果为:%d\n",a*b);break;case '/':printf("结果为:%.2f\n",(float)a/b);break;case '%':printf("结果为:%d\n",a%b);break;default:printf("输入有误!\n");break;}}void fun2()//进制转换{int choice,value,i,j=0,k,t;char s[50];int a[4];printf("********************************************************\n");printf(" 1.十进制转换成二进制; 2.十进制转换成十六进制;\n");printf(" 3.二进制转换成十进制; 4.二进制转换成十六进制;\n");printf(" 5.十六进制转换成二进制; 6.十六进制转换成十进制;\n");printf("********************************************************\n");printf("请选择:");scanf("%d",&choice);switch(choice){case 1:printf("请输入十进制数值:");scanf("%d",&value);while(value>=2){if(value%2!=0)s[j++]='1';elses[j++]='0';value=value/2;}if(value==1)s[j]='1';printf("结果为:");for(i=j;i>=0;i--)printf("%c",s[i]);break;case 2:printf("请输入十进制数值:");scanf("%d",&value);printf("结果为:%x",value);break;case 3:printf("请输入二进制数:");scanf("%s",s);for(i=0;s[i]!='\0';i++);i--;value=0;for(j=0;j<=i;j++){ t=1;if(s[j]=='1'){ for(k=i-j;k>0;k--)t*=2;value+=t;}}printf("结果为:%d\n",value);break;case 4:printf("请输入二进制数:");scanf("%s",s);for(i=0;s[i]!='\0';i++);i--;value=0;for(j=0;j<=i;j++){ t=1;if(s[j]=='1'){ for(k=i-j;k>0;k--)t*=2;value+=t;}}printf("结果为:%x\n",value);break;case 5:printf("请输入十六进制数值:");scanf("%x",&value); while(value>=2){if(value%2!=0)s[j++]='1';elses[j++]='0';value=value/2;}if(value==1)s[j]='1';printf("结果为:");for(i=j;i>=0;i--)printf("%c",s[i]);break;case 6:printf("请输入十六进制数值:");scanf("%x",value); printf("结果为:%d\n",value);break;default:printf("选择有误!\n");break;}}void main(){int choice;while(choice!=0){menu();printf("请选择(0退出):");scanf("%d",&choice);if(choice==1)fun1();else if(choice==2)fun2();printf("\n");}}五、运行结果六、课程设计总结通过这次课程设计,学到了很多编程知识,也知道了自己欠缺。
编写一个计算器程序课程设计报告_范例
《金融IT 入门-程序设计》课程设计报告中国地质大学长城学院XX 系2017年 月 3 日题目: 用Python 编写简易计算器程序 学号: 专业: 班级: 姓名:指导教师:2016-2017学年 第二学期目录一.总体概述:二.设计目标:三.程序流程图:四.程序代码:五.设计体会:一、设计内容------------------------------------------------------------ - 2 -1. 课程设计目的:---------------------------------------------------- - 2 -2.课程设计任务:--------------------------------------------------- - 2 -3.创新要求:--------------------------------------------------------- - 2 -4.设计要求: ---------------------------------------------------------- - 2 -二、原理与分析---------------------------------------------------------- - 3 -1.开发的技术及功能--------------------------------------------------- - 3 -2.设计思路----------------------------------------------------------- - 3 -3.设计效果图--------------------------------------------------------- - 4 -三、设计过程------------------------------------------------------------ - 4 -1. 程序思路:-------------------------------------------------------- - 4 -2.功能实现:--------------------------------------------------------- - 6 -1)加减乘除求余以及指数运算--------------------------------------- - 6 -2)其他运算------------------------------------------------------- - 6 -3)主要方法说明--------------------------------------------------- - 8 -4)程序流程图----------------------------------------------------- - 9 -3.算法思路:-------------------------------------------------------- - 10 -4.数据分析:-------------------------------------------------------- - 12 -四、设计结果与分析------------------------------------------------------ - 12 -⒈运行调试---------------------------------------------------------- - 13 -1)进行加减乘除求余以及指数运算---------------------------------- - 13 -2)求倒----------------------------------------------------------- - 9 -3)退格---------------------------------------------------------- - 10 -4)清零---------------------------------------------------------- - 11 -5)求余弦、求正切、对e求幂、求平方根、求自然对数、求倒运算------ - 11 -6)连续运算(例:2*3*4=24.0)------------------------------------ - 12 -7)异常处理(例:求倒时输入数为0)------------------------------ - 13 -五、设计体会与小结----------------------------------------------------- - 14 -六、参考文献----------------------------------------------------------- - 15 -七、源程序------------------------------------------------------------- - 15 -一、设计内容1.课程设计目的:1)掌握Java语言的程序设计方法;2)理论联系实际,进一步提高学生的软件开发技术;3)培养学生分析、解决问题的能力;4)提高学生实践论文撰写能力。
C语言课程设计报告【简易计算器设计】
C语言课程设计报告【简易计算器设计】1000字一、设计目的本设计旨在通过设计一个简易计算器,使初学者通过该计算器,了解C语言基本语法并且巩固数学运算知识。
二、设计内容(一)需求分析本计算器,要求能够完成一般的数学运算(加、减、乘、除),以及开平方、自然对数、正弦等常用函数的计算。
(二)功能设计1. 实现加、减、乘、除基本运算符的计算功能,实现数值运算。
2. 实现开平方、自然对数、正弦等常用函数的计算功能。
3. 提供菜单界面,使用户可以选择所需要的计算功能。
4. 能够对输入的数字进行异常处理,如输入非数字字符等。
(三)技术实现本计算器的实现基于C语言,主要涉及基本输入输出和函数的应用。
1. 输入输出功能:本计算器通过scanf函数实现用户输入,通过printf函数将结果输出。
2. 函数应用:本计算器通过调用数学库函数实现对开平方、自然对数、正弦等常用函数的计算。
(四)算法设计本计算器的算法主要基于基本的数学运算原理以及数学库函数的应用。
1. 加法运算:\t输入要加的两个数a和b\t输出a+b的结果2. 减法运算:\t输入要减的两个数a和b \t输出a-b的结果3. 乘法运算:\t输入要乘的两个数a和b \t输出a*b的结果4. 除法运算:\t输入要除的两个数a和b \t如果b=0,输出错误信息\t否则,输出a/b的结果\t5. 开平方:\t输入要开平方的数a\t如果a<0,输出错误信息\t否则,输出a的平方根\t6. 自然对数:\t输入要求自然对数的数a \t如果a≤0,输出错误信息\t否则,输出a的自然对数\t7. 正弦:\t输入要求正弦的角度a\t输出a的正弦值(五)程序设计以下是本计算器的主体代码:。
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等十个数字和一个“.”小数点,并且可以进行数据正负的转换。
java程序设计报告---设计一个计算器
课程设计课程设计目的设计一个基于Swing的计算器应用程序,完成普通的算术运算。
课程设计要求1.设计的计算器是基于Swing的,可以完成加减乘除和取余运算。
2.增加计算器的日期计算功能,能够计算两个日期之间相距的天数。
(要判断键入的日期格式是否正确,并能正确处理按钮动作事件,同时能够得到正确的计算结果)设计要点主要练习使用布局管理器设计一个计算器的界面,并使用事件监听器处理数据的输入,完成相关的计算。
在面板上可以增加一个算术/日期的转换按钮来选择是普通计算还是日期计算。
以及增加一个清零的按钮CE,用以将显示结果的单行文本域清空,同时将各个参数设置为默认值。
二、总体方案设计日常生活中经常需要用到计算器,比如科学计算,数值计算,会计业务等等,在Applet 中实现一个精巧的计算器,可以让用户的操作也更方便和快捷。
本项目需要实现一个具有四则运算的计算器,能够实现基本的加、减、乘、除运算,以及其它的辅助功能;界面简洁适用;要提供主要的设计思路、类的设计,本次设计添加转进制等功能。
本应用程序继承自框架(frame),此程序使用frame布局管理器bordelayout,将单行文本加入相应区域,包含各种按纽的面板buttonpanel加入相应区域还可以将进制转换的面板与单行文本框放一块包含各种按纽的面板buttonpanel采用N行N列的网格布局,然后将数字按钮和运算符按钮以及控制按钮添加到面板中,同时注册按钮事件监听器。
布局设计好后再添加按钮事件。
对于此程序要考虑到点击加、减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮的数值设置到文本框中,否则则应把文本框中的内容加上你所点击按钮的数值设置到文本框中。
四、程序的调试与运行结果说明程序功能实现:使用swing组件和awt图形用户界面以及BroadLayout布局管理器。
通过在按钮的单击事件处理方法中调用类的成员方法calculator()来进行简易计算器的各种运算,并正确实现运算功能。
《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学年 第二学期目录一.总体概述:二.设计目标:三.程序流程图:四.程序代码:五.设计体会:一、设计容-------------------------------------------------------------- - 2 -1. 课程设计目的:---------------------------------------------------- - 2 -2.课程设计任务:------------------------------------------------- - 2 -3.创新要求:--------------------------------------------------------- - 2 -4.设计要求: ---------------------------------------------------------- - 2 -二、原理与分析---------------------------------------------------------- - 2 -1.开发的技术及功能--------------------------------------------------- - 2 -2.设计思路----------------------------------------------------------- - 3 -3.设计效果图--------------------------------------------------------- - 3 -三、设计过程------------------------------------------------------------ - 3 -1. 程序思路:-------------------------------------------------------- - 3 -2.功能实现:--------------------------------------------------------- - 4 -1)加减乘除求余以及指数运算--------------------------------------- - 4 -2)其他运算------------------------------------------------------- - 5 -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)提高学生实践论文撰写能力。
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();b.addActionListener(事件监听器);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=Double.parseDouble(x.getText());if(preOperater.equals("")) sum=m; //无前一操作,结果为刚输入数//将结果与文本框中的数据按照前一个运算符运算if(preOperater.equals("+")) sum=sum+m; //加法运算if(preOperater.equals("-")) sum=sum-m; //减法运算if(preOperater.equals("*")) sum=sum*m; //乘法运算if(preOperater.equals("/")) sum=sum/m; //除法运算if(preOperater.equals("%")) sum=sum%m; //求余if(preOperater.equals("pow")) sum=Math.pow(sum, m); //求幂,指数运算}2)其他运算Ⅰ、求平方根Void sqrt(){double m=Double.parseDouble(x.getText());if (m<0)x.setText("负数不能开根号");elsex.setText(""+Math.sqrt(m));}Ⅱ、对数运算Void log(){double m=Double.parseDouble(x.getText());if (m<0)x.setText("负数不能进行自然对数运算");elsex.setText(""+Math.log(m));}Ⅲ、余弦运算Void cos(){double m=Double.parseDouble(x.getText());x.setText(""+Math.cos(m));}Ⅳ、正切运算Void tan(){double m=Double.parseDouble(x.getText());x.setText(""+Math.tan(m));}Ⅴ、e的指数运算Void exp(){double m=Double.parseDouble(x.getText());x.setText(""+Math.exp(m));}Ⅵ、倒数运算Void daoshu(){if (Double.parseDouble(x.getText())==0)x.setText("除数不能为零");else{x.setText(""+1/(Double.parseDouble(x.getText())));preOperater="";}}3)主要方法说明public cos(double x) //求x的余弦函数public tan (double x) //求x的正切函数public sqrt(double x) //求x的平方根public log (double x) //求x的自然对数运算public exp (double x) //求e的x次幂public pow (double a,double b) //求a的b次幂public daoshu (double x) //求x的倒数4)程序流程图3.算法思路:这是一个简单的计算器,里面所涉及到的功能就是加、减、乘、除、开方运算、等基本功能。