vb简易科学计算器的设计与开发课程设计报告可视化编程武汉理工大学华夏学院_第1页
vb简易科学计算器的设计与开发课程设计报告可视化编程武汉理工大学华夏学院_第2页
vb简易科学计算器的设计与开发课程设计报告可视化编程武汉理工大学华夏学院_第3页
vb简易科学计算器的设计与开发课程设计报告可视化编程武汉理工大学华夏学院_第4页
vb简易科学计算器的设计与开发课程设计报告可视化编程武汉理工大学华夏学院_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学号 可视化编程课程设计报告简易科学计算器的设计与开发专业班级:计算机科学与技术1112学生姓名:指导教师:钱小红/李小艳教 学 系:信息工程系2012年6月15日课程设计报告书学生姓名: 专业班级:计算机1111-1112班指导教师: 钱小红/李小艳 工作单位: 华夏学院计算机教研室 设计题目:简易科学计算器的设计与开发初始条件: 1、完成可视化编程的学习 2、带visual basic 的机器要求完成的主要任务:主要任务:(在规定的时间内完成下列任务)1、能够完成数值常数的四则运算,不要求支持运算符的优先级。2、能够进行如下函数的求值运算,包括sin, cos, tan, exp, log

2、, ln, sqr, 1/x,以及常数e和圆周率。3、设置5个存贮键,以便将中间运算结果存入,在需要的时候取出参与运算。4、能够进行初始化,清除内存中的数,退出运算,清除显示。5、因为控件数目较多,要求采用控件数组,以减少事件处理的复杂程度,使程序简洁高效。6、出错处理:操作数如果不符合数学上的定义,应该给出错误信息。例:0做除数,负数或0做真数等情况。设计报告撰写格式要求:(课程设计报告按统一通用格式书写)具体内容如下: 设计任务与要求 总体方案与说明 程序主要模块的流程图 源程序清单与注释 问题分析与解决方案(包括调试记录、调试报告,即在调试过程中遇到的主要问题、解决方法及改进设想); 小

3、结与体会附录: 源程序(必须有简单注释) 使用说明 参考资料时间安排:6月15日-21日第一天布置题目,确定任务、查找相关资料第二天第四天功能分析,编写程序,调试程序、运行系统;第五天程序验收、答辩;撰写设计报告。指 导 教 师 签 字: 2012年6月15日系 主 任 签 字: 年 月 日1.设计任务与要求1.设计任务利用vb语言设计一个简易的科学计算器,学会利用vb控件数组实现数值的计算以及基本函数的计算。2.基本要求:(1)要能够完成数值常数的四则运算。(2)要能够进行简单函数的求值运算,包括sin, cos, tan, exp, log, ln, sqr, 1/x,以及常数e和园周率。

4、(3)要求设置5个存贮键,以便于存储计算的中间结果,并能够取出参与运算。(4)要求采用控件数组,使程序简洁高效。(5)要能够进行出错处理:操作数如果不符合数学上的定义,应该给出错误信息。2.总体方案一、计算器如图此计算器主要实现数值的四则运算,以及sin, cos, tan, exp, log, ln, sqr, 1/x,以及常数e和圆周率等函数功能。实现数值的存储与取出。3.详细设计输入数字加 减 乘 除倒数存储结果清除对数运算余弦正弦平方平方根正切退格结果图1设计框架流程图为实现以上功能我的基本思路是在窗体上建立多个控件数组,第一个控件数组有十个命令按钮,用来实现0到9数字的输入,第二个控

5、件数组有四个命令按钮,用来实现 “+”、“-”、“*”、“/”符号的输入,第三个控件数组实现sin, cos, tan, log, ln, sqr, 1/x等函数的计算。退格,清除,等于,退出计算器 ,圆周率及常数e等功能分别作为独立的命令按钮,另外设置五个命令按钮用来存储运算的中间结果,在需要的时候能够再取出来参与运算。设置一个单独的命令按钮用来清除存储的中间结果。4.源程序清单与注释5.问题分析与解决方案(1) 计算结果无法存储,导致计算过程中的中间计算值丢失,按照任务要求设置了五个存储键,但是只能存储一个结果,前一个结果总会被后一个值给覆盖,经过与同学讨论,多次调试改进,最终运行成功,可

6、以按需存储结果。正确代码如下:dim t1 as double, t2 as double, t3 as double, t4 as double, t5 as doubleprivate sub command7_click()if t1 = 0 then t1 = val(text2.text) else text1.text = t1end ifend subprivate sub command8_click()if t2 = 0 then t2 = val(text2.text) else text1.text = t2end ifend subprivate sub command

7、10_click()if t3 = 0 then t3 = val(text2.text) else text3.text = t1end ifend subprivate sub command11_click()if t4 = 0 then t4 = val(text2.text) else text1.text = t4end ifend subprivate sub command12_click()if t5 = 0 then t1 = val(text2.text) else text1.text = t5end ifend subprivate sub command13_cli

8、ck()t1 = 0t2 = 0t3 = 0t4 = 0t5 = 0end sub(2)三角函数的调试存在问题,对于正切值的计算和有关规定不清楚。经过翻阅书本及网络查询,最终得以完成代码的编写,并调试成功。正确代码如下:dim m as integer dim n as integer m = a mod 180 - 90 if m = 0 then msgbox (90+180*n)度的正切值无意义,请重新输入 elsesum = (tan(a * pi / 180) text2.text = sum end if6.小结与体会 回顾此次课程设计,我感慨颇多实训期间,让我学到了很多东西,不仅

9、使我在理论上对vb程序设计有了全新的认识,在实践能力上也得到了提高,真正地做到了学以致用,对我来说受益非浅。亲身感受到理论与实际的相结合,让我大开眼界。也是对以前所学知识的一个初审吧!这次实训对于我以后学习、找工作也真是受益菲浅,在短短的一周中相信这些宝贵的经验会成为我今后成功的重要的基石。这次我做的项目是简易科学计算器的设计与开发,其中包含了简单四则运算,三角函数的计算,倒数的计算,开方及幂函数的计算等几个部分。还要涉及到中间运算结果的存储问题,在实训刚开始的时候,做的只是一个简单的科学计算器界面,感觉还比较简单,但是编写的代码在调试的时候却出现了很多问题。而且,有时候由于考虑不周以及粗心的

10、缘故,代码方面也存在很大的误差。老师们教会了我们很多简单实用的技巧。也让我们意识到了要想全面完整的完成一个模块,首先要经行程序设计,全面分析会用到的东西及考虑可能会出现的情况。所以出现的问题也在老师的指导下,顺利解决了。通过解决编程及调试过程中遇到的问题,我不仅巩固了以前的所学过的知识,而且学到了很多在书本上没学到过的新知识。这次课程设计让我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正解决实际问题,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中难免会遇到各种各样的问题这让我发现了自己的不足之处,对一些学过

11、的知识理解的不够深刻,掌握的不够牢固,这次实训不仅是一次实践作业更是一次自己进步的证明。付出不一定会有回报,但是不付出就一定不会有回报。课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实际能力的重要环节,是对我们的实际工作能力的具体训练和考察过程,随着科学技术发展的日新月异,当今计算机应用在生活中可以说是无处不在。因为作为二十一世纪的大学来说掌握程序开发技术是十分重要的,而vb又是最常见,功能最强大的一种高级语言,因此做好vb课程设计十分必要。在解决问题过程当中,我们更需要冷静思考,仔细分析代码的特点以及对书籍的查看。在平时的学习过程当中应加强对各代码的记忆和理解。附录

12、1源程序public sum as doublepublic k as stringpublic pi as doublepublic c as doublepublic d as doublepublic n as doubledim t1 as double, t2 as double, t3 as double, t4 as double, t5 as double function log10(x) log10 = log(x) / log(10) end function function logn(x) logn = log(x) / log(n) end functionpriv

13、ate sub command1_click(index as integer)select case indexcase 1text1.text = text1.text & 1 控制0到9数字的运算,运算个加减乘除的计算控件case 2text1.text = text1.text & 2case 3text1.text = text1.text & 3case 4text1.text = text1.text & 4case 5text1.text = text1.text & 5case 6text1.text = text1.text & 6case 7text1.text = te

14、xt1.text & 7case 8text1.text = text1.text & 8case 9text1.text = text1.text & 9case 0text1.text = text1.text & 0case 10text1.text = text1.text & .end selectend subprivate sub command2_click(index as integer)select case indexcase 0sum = text1.texttext1.text = k = +case 1sum = text1.texttext1.text = k

15、= -case 2sum = text1.texttext1.text = k = *case 3sum = text1.texttext1.text = k = /end selectend subprivate sub command3_click()dim a as doublea = text1.textif k = + thensum = sum + atext2.text = sumelseif k = - thensum = sum - atext2.text = sumelseif k = * thensum = sum * atext2.text = sumelseif k

16、= / then if text1.text = 0 then msgbox 除数不能为零!请重新输入 判断除数是否为0,若为零弹出信息框并清空输入数据,要求重新输入 text1.text = text2.text = label2.caption = label3.caption = a = 0 b = 0 k = else sum = sum / a text2.text = sum end ifelseif k = sin then 等号的三角计算sum = sin(a * pi / 180)text2.text = sumelseif k = cos thensum = cos(a *

17、 pi / 180)text2.text = sumelseif k = tan then dim m as integer dim n as integer m = a mod 180 - 90 if m = 0 then msgbox (90+180*n)度的正切值无意义,请重新输入 else sum = tan(a * pi / 180) text2.text = sum end if elseif k = cot then sum = 1 / (tan(a * pi / 180) text2.text = sum elseif k = lg then 等号的lg计算 sum = log

18、(val(text1.text) text2.text = sum elseif k = ln then 等号的ln计算 sum = log10(val(text1.text) text2.text = sum elseif k = logn then 等号的log n a计算 sum = logn(val(text1.text) text2.text = sum elseif k = 2 then 等号的幂函数计算 sum = (val(text1.text) 2 text2.text = sum elseif k = c then sum = val(text1.text) c text2

19、.text = sum elseif k = 0.5 then 等号的开方运算 sum = (val(text1.text) 0.5 text2.text = sum elseif k = d then sum = (val(text1.text) (1 / d) 倒数计算 text2.text = sumend ifend subprivate sub command4_click(index as integer) 退格dim b as integerb = len(text1.text)if b 1 thentext1.text = val(str(left(text1.text, le

20、n(text1.text) - 1)elsetext1.text = end ifend subprivate sub command5_click()text1.text = text2.text = 清除label2.caption = label3.caption = a = 0b = 0k = end subprivate sub command6_click(index as integer)select case indexcase 0label2.caption = sink = sincase 1label2.caption = cosk = coscase 2label2.c

21、aption = tank = tancase 3label2.caption = cotk = cotcase 4 对数计算label2.caption = lgk = lgcase 5label2.caption = lnk = lncase 6n = val(inputbox(请输入对数运算的底数, 请输入数字)label2.caption = log 普通对数计算label4.caption = nk = logncase 7 幂运算label3.caption = 2k = 2case 8c = val(inputbox(请输入运算幂指数, 输入数字)label3.caption =

22、 ck = ccase 9 幂运算label2.caption = k = 0.5case 10 开方运算d = val(inputbox(请输入需要开多少次方, 输入数字)label2.caption = d & k = dend selectend subprivate sub command7_click()if t1 = 0 then t1 = val(text2.text) else text1.text = t1end ifend subprivate sub command8_click()if t2 = 0 then t2 = val(text2.text) else text1.text = t2end ifend subprivate sub

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论