编写一个计算器程序课程设计报告-范例
- 格式:doc
- 大小:1.04 MB
- 文档页数:21
计算器课程设计报告一、课程目标本节计算器课程设计以提升学生的数学计算能力、逻辑思维能力和实际应用能力为核心,结合三年级学生的认知特点和实际需求,制定以下课程目标:1. 知识目标:(1)学生能够掌握计算器的基本功能及操作方法;(2)学生能够运用计算器进行简单的四则运算,并理解相关数学概念;(3)学生能够运用计算器解决生活中的实际问题,提高数学应用能力。
2. 技能目标:(1)培养学生运用计算器进行快速、准确计算的能力;(2)培养学生运用计算器辅助解决数学问题的能力;(3)提高学生逻辑思维能力,培养学生独立思考和解决问题的能力。
3. 情感态度价值观目标:(1)激发学生对计算器的兴趣,培养学生主动探究新知的习惯;(2)培养学生合作交流、分享成果的团队精神;(3)培养学生将所学知识应用于实际生活的意识,增强学生的自信心和成就感。
本课程旨在通过计算器教学,使学生在掌握基本计算技能的同时,提高数学素养,培养实际应用能力,激发学生对数学学习的兴趣,为学生的终身学习打下坚实基础。
二、教学内容本节计算器课程依据课程目标,结合课本内容,选择以下教学材料和安排:1. 教学大纲:(1)计算器的基本功能介绍与操作方法;(2)使用计算器进行加、减、乘、除四则运算;(3)运用计算器解决实际问题。
2. 教学内容安排与进度:第一课时:认识计算器,了解计算器的基本功能和操作方法,包括开关机、清屏、数字键、运算符号键等。
第二课时:学习使用计算器进行加、减、乘、除四则运算,并通过练习巩固运算方法。
第三课时:运用计算器解决生活中的实际问题,如购物找零、计算面积等。
3. 教材章节及内容列举:(1)第三章《计算器与计算》:介绍计算器的基本功能、操作方法及四则运算;(2)第四章《计算器在实际应用中的作用》:举例说明计算器在生活中的应用,提高学生实际操作能力。
教学内容科学系统地组织,注重理论与实践相结合,使学生能够熟练掌握计算器的使用方法,并能在实际生活中运用计算器解决简单问题,提高学生的数学素养。
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++语言程序设计所在院系信息学院专业计算机科学与技术班级 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操作系统中自带的计算器,由于编者水平和时间的限制,不能将计算器设计到科学型及其他更复杂的类型,在设计过程中还参考了一些其他的优秀设计。
#####学院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语言课程设计-计算器程序设计报告书课程设计说明书题目计算器程序设计起讫日期 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 -二、原理与分析---------------------------------------------------------- - 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.算法思路:这是一个简单的计算器,里面所涉及到的功能就是加、减、乘、除、开方运算、等基本功能。