VB程序设计课程设计报告科学计算器专业:班级:学号:姓名:指导教师:设计日期:目录第1章课程设计概述1.1科学计算器1.2任务要求1.3开发环境第2章总体设计2.1系统功能需求分析2.2系统总体设计框架2.3系统各功能模块的目的与意义第3章详细设计3.1主要功能模块的算法设计思路第4章调试分析过程描述4.1测试输出结果4.2对程序调试过程中存在问题的思考第5章课程设计体会5.1课程设计过程中的学习体会与收获5.2对VB语言和本次课程设计的认识第6章附录6.1源程序代码6.2参考文献及网站第1章课程设计概述1.1科学计算器随着电子技术的发展,计算机的功能越来越强大,精度越来越高,性能越来越好,可以实现复杂的科学计算,Windows系统也自带了一个功能强大的计算器。本次课设要设计一个科学计算器,除了基本的四则运算之外,还有三角与反三角、对数与反对数、乘方与幂运算等。科学计算器除了具有普通计算器的标准功能之外,还具有很多其他数据计算功能。1.2任务要求学生利用学到的面向对象的基本原理和VB语言语法以及编程技巧,通过灵活应用VB6.0集成开发环境进行应用程序和系统的开发设计,掌握可视化程序设计的基本方法和步骤,强化巩固已有编程知识,训练新的设计与编程思路,帮助熟悉程序编写,及时查究错误,具体要求如下:1.整个课程设计的各个环节学生自己动手。2.每个学生可从前6个题目选做2题,或从后两题中选做一题。3.写出相应的算法分析和源代码。4.要求上机调试通过。5.对课程设计进行总结,撰写课程设计报告。1.3开发环境1.3.1硬件环境中央处理器:intelpentium(R)4@2.40GHz(32位)内存:512MB(400MHz)显卡:NVIDIAGeforce@64MB1.3.2软件环境操作系统:Windows8.1中文版开发软件:visualbasic6.0第2章总体设计2.1系统功能需求分析本次课设设计的科学计算器包括以下功能:1.具有小数点后10位以上的精度。2.可以直接输出随机数、圆周率、自然对数的底数和重力加速度等常用常数。3.可以输入0~9、00、小数点等数字或数学符号,并能对数字取反。4.能够计算加、减、乘、除四则运算。5.可以计算倒数、平方、立方、开方和任意乘方或幂指运算,以及阶乘运算。6.能够计算以10为底的对数和自然对数,以及自然对数为底的幂运算。7.具有三角与反三角函数的计算功能,并能在角度、弧度和梯度之间进行换算。8.可以将数据记录到内存中,并能将输入的数据和内存中的数据进行四则运算。9.能够实现数据的统计计算,包括和、平均值和方差。10.可以对计算或输入的结果进行复制,也能通过粘贴方式向计算器输入数字。2.2系统总体设计框架统计框数据的处理保存调出清除基本运算进制之间的转换科学计算器特殊功能平均值标准误差求和+-*\科学计数法三角函数的运算阶乘倒数乘方对数函数角度弧度梯度指数2.3系统各功能模块的目的与意义1)sin、cos、tan、ATn按钮分别求某个数值/角度/弧度的正弦、余弦、正切、反正切值。2)Exp、Rnd按钮分别返回e的x次幂和取[0,999999999)之间的随机数,而mod保证了随机数是整数。3)角度、弧度按钮计算sin、cos、tan、ATn时进行转换。第3章详细设计3.1主要功能模块的算法设计思路3.1.1sin流程图开始IsJdm_Tb_Out.Text=str(Sin((Val(m_Tb_Out.Text)/180)*PI))m_Tb_Out.Text=str(Sin(Val(m_Tb_Out.Text)))开始Left(m_Tb_Out.Text,2)=.m_Tb_Out.Text=0+Right(m_Tb_Out.Text,Len(m_Tb_Out.Text)-1)Left(m_Tb_Out.Text,2)=-.m_Tb_Out.Text=-0+Right(m_Tb_Out.Text,Len(m_Tb_Out.Text)-1)3.2.2atn流程图开始IsJdm_Tb_Out.Text=str(Sin((Val(m_Tb_Out.Text)/180)*PI))m_Tb_Out.Text=str(Sin(Val(m_Tb_Out.Text)))开始Left(m_Tb_Out.Text,2)=.m_Tb_Out.Text=0+Right(m_Tb_Out.Text,Len(m_Tb_Out.Text)-1)Left(m_Tb_Out.Text,2)=-.m_Tb_Out.Text=-0+Right(m_Tb_Out.Text,Len(m_Tb_Out.Text)-1)第4章调试分析过程描述4.1测试输出结果4.2对程序调试过程中存在问题的思考第5章课程设计体会5.1课程设计过程中的学习体会与收获经过两天的上机实践学习,使我对VB有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对VB的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对VB中经常出现的错误也不了解,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过实践,使我在这几个方面的认识有所提高。5.2对VB语言和本次课程设计的认识通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习VB,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。第6章附录6.1源程序代码DimnumlAsDouble............................................’用来存放第一个操作数DimopAsInteger.................................................’用来记录操作符的Index值PrivateSubCommand1_Click()End.....................................................................’’OFF’操作EndSubPrivateSubCommand2_Click(IndexAsInteger)SelectCaseIndexCase0To9....................................................’数字0~9Text1.Text=Text1.Text&IndexEndSelectEndSubPrivateSubCommand3_Click(IndexAsInteger)DimzAsIntegerSelectCaseIndexCase0..................................................................’小数点IfInStr(Text1.Text,.)ThenText1.Text=Text1.Text&.EndIfCase1To4..........................................................’加、减、乘、除numl=Val(Text1.Text)op=IndexText1.Text=Case5..................................................................’正负Text1.Text=-Val(Text1.Text)Case6.................................................................’等号Ifop=1ThenIfVal(Text1.Text)=0ThenMsgBox分母不能为0,请重新输入Text1.Text=Elsez=numl/Val(Text1.Text)Text1.Text=numl&/&Val(Text1.Text)&=&zEndIfEndIfIfop=2Thenz=numl*Val(Text1.Text)Text1.Text=numl&*&Val(Text1.Text)&=&zEndIfIfop=3Thenz=numl-Val(Text1.Text)Text1.Text=numl&-&Val(Text1.Text)&=&zEndIfIfop=4Thenz=numl+Val(Text1.Text)Text1.Text=numl&+&Val(Text1.Text)&=&zEndIfEndSelectEndSubPrivateSubCommand4_Click(IndexAsInteger)SelectCaseIndexCase0................................................................’X-MOpenC:\计算器ForInputAs#1A=Text1.TextPrint#1,AClose#1Case1................................................................’RMOpenC:\计算器ForInputAs#1Input#1,AText1.Text=AClose#1Case2................................................................’M+Text1.Text=Text1.Text+ACase3Text1.Text=.............................................’‘ON’操作Text1.SetFocusCase4..............................................................’清除Text1.Text=Case5.............................................................’退格nt=Len(Text1.Text)Ifnt1ThenText1.Text=Left(Text1.Text,nt-1)EndIfEndSelectEndSubPrivateSubCommand5_Click(IndexAsInteger)SelectCaseIndexCase0.........................................................’sinSum=Sin(Val(Text1.Text)*3.141592653/180)Text1.Text=Round(Sum,6)Case1...................................................................’cosSum=Cos(Val(Text1.Text)*3.141592653/180)Text1.Text=Round(Sum,6)Case2....................................................................’tanSum=Tan(Val(Text1.Text)*3.141592653/180)Text1.Text=Round(Sum,6)Case3...................................................................’ctgSum=1/Tan(Val(Text1.Text)*3.141592653/180)Text1.Text=Round(Sum,6)Case4...................................................