《软件设计基础(VB)》简单科学计算器课程设计报告书

上传人:ra****d 文档编号:121622552 上传时间:2022-07-19 格式:DOC 页数:25 大小:1.31MB
收藏 版权申诉 举报 下载
《软件设计基础(VB)》简单科学计算器课程设计报告书_第1页
第1页 / 共25页
《软件设计基础(VB)》简单科学计算器课程设计报告书_第2页
第2页 / 共25页
《软件设计基础(VB)》简单科学计算器课程设计报告书_第3页
第3页 / 共25页
资源描述:

《《软件设计基础(VB)》简单科学计算器课程设计报告书》由会员分享,可在线阅读,更多相关《《软件设计基础(VB)》简单科学计算器课程设计报告书(25页珍藏版)》请在装配图网上搜索。

1、河北联合大学 ?软件设计根底VB?课程设计报告设计名称: 简易科学计算器 姓 名: 学 号: 专业班级: 学 院: 设计时间: 设计地点: 成绩:指导教师评语: 指导教师签字: 年 月 日目 录1.课程设计目的32.课程设计任务与要求33.课程设计说明书44.课程设计成果205.程序调试过程236.设计问题的缺乏和改良方案237.课程设计心得248.附录249.参考文献 241课程设计目的?软件设计根底VB?课程设计是这门课程的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖VB的知识点,又接近工程实际需要。目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以

2、及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握VB这门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。2课程设计任务与要求:要求:本次课程设计利用?软件设计根底VB?课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的根本技能,独立完成所布置的任务。要求:1、对系统进行功能需求分析2、设计合理的数据结构和系统框架3、界面设计美观、清楚、合理4、编程简练,程序功能齐全,能正确运行5、具有一定的创新性6、说明书、流程图要清楚7、课题完成后必须按要求提交课程设计报告任务:能够完成数字的连续运算和函数的求值根本要求:1能够完成数

3、值常数的四那么运算,不要求支持运算符的优先级。2能够进行如下函数的求值运算,包括sin, cos, tan, exp, log, ln, sqr, 1/x,以及常数e和园周率。3设置5个存贮键,以便将中间运算结果存入,在需要的时候取出参与运算。4支持键盘快捷运算仅要求数字及运算符。5ON进行初始化,去除内存中的数,OFF退出,CE去除显示。6因为控件数目较多,要求采用控件数组,以减少事件处理的复杂程度,使程序简洁高效。7出错处理:操作数如果不符合数学上的定义,应该给出错误信息。例:0做除数,负数或0做真数等情况。创新要求:如支持运算符的优先级,或者增加新的函数等。3课程设计说明书功能描述窗体通

4、过窗体命令按钮或键盘输入数字实现根本的数学运算,使用窗体的功能按钮计算某些特殊函数概要设计模块结构图: 根据功能分析,建立系统的体系结构,即将整个系统分解成假设干子模块,用框图表示各功能模块之间的接口关系如下列图。输入数字赋值给变量输入运算符及num2,由功能函数求值求值 简易科学计算器功能框图详细设计 总体流程图:开始 输入num1输入运算符opttype输入num2判断是否有足够的数运算,有那么运算并赋值给num1,无那么取出num2输出结果结束各功能模块流程图:开始1.数字按钮:输入数字结束开始2功能函数:计算函数结束开始3.运算符结束输入并存储运算符开始4.存储键结束取出数值代码实现详

5、细说明各功能模块的实现过程,所用到的算法、技巧等附上代码。如:本系统总共1个窗体:form1详细如下:form1作用:“进入应用程序。所用控件:1个文本框,2个框架,数个命令按钮,2个单项选择按钮和1个菜单项设计思路:用文本框显示输入的数字并将结果显示在文本框中,用命令按钮来计算和输入数字。详细内容: command1(0-9)为数字的控件数组,command2(0-7)为功能函数的控件数组,command5(0-4)为记忆按钮,command6(0-3)为运算符的控件数组。代码如下:Dim lastinput As String 定义输入标志 Dim num1 As Double 第一个数D

6、im num2 As Double 第二个数Dim opttype As Integer 运算符Dim optnum As Integer 点击运算符次数Dim i(5) As DoubleDim eqvnum As Integer 点击等号次数Function calc(num1, opttype, num2) As Double自定义运算过程Select Case opttypeCase 0选择/运算If num2 = 0 Then除数为0提示出错 Text1.Text = Error 程序设计界面MsgBox 0不能做除数, 48, 提示Elsecalc = num1 / num2End

7、 IfCase 1 选择*运算calc = num1 * num2Case 2 选择-运算calc = num1 - num2Case 3 选择+运算calc = num1 + num2End SelectIf Text1.Text Error Then Text1.Text = Trim(Str(calc)除数为0重新输入num1 = 0num2 = 0lastinput = eqvopttype = -1End FunctionPrivate Sub Command1_Click(Index As Integer)0-9运算数的输入If Len(Text1.Text) 16 Then Ex

8、it Sub num1的输入If Text1.Text = 0 Or lastinput = eqv Then Text1.Text = Text1.Text = Text1.Text & Indexlastinput = numIf lastinput = opt Then num2的输入Text1.Text = Text1.Text = Text1.Text & Indexlastinput = numEnd IfCommand1(0).SetFocus0获得焦点End SubPrivate Sub Command10_Click()OFF按钮,关闭程序EndEnd SubPrivate

9、Sub Command11_Click()CE按钮,去除If Len(Text1.Text) = 1 ThenText1.Text = Left(Text1.Text, Len(Text1.Text) - 1)ElseMsgBox 已经是最后一位, 48, 提示 End IfEnd SubPrivate Sub Command12_Click()-/+按钮Text1.Text = Trim(-Val(Text1.Text)End SubPrivate Sub Command13_Click()x2按钮Text1.Text = Text1.Text 2End SubPrivate Sub Com

10、mand14_Click()八进制按钮Text1.Text = Oct(Text1.Text)End SubPrivate Sub Command2_Click(Index As Integer)功能函数按钮Const pi As Single = 3.14159265358979 将x转化为角度制Dim x As Doublex = Val(Text1.Text) If Option2.Value = ture Then x = x * pi / 180 计算三角函数时判断条件Select Case IndexCase 0 计算sin ,以特定格式输出Text1.Text = Format(

11、Sin(x), 0.#)lastinput = numCase 1 计算expText1.Text = 10 Text1.Text lastinput = numCase 2 计算sqr If Text1.Text 0 ThenText1.Text = Format(Sqr(Val(Text1.Text), #.#)lastinput = numElseMsgBox 被开方数不能为负数, 48, 提示Text1.Text = Text1.SetFocusEnd IfCase 3 计算cosText1.Text = Format(Cos(x), 0.#)lastinput = numCase 4

12、 计算logText1.Text = Log(text1.text) / Log(10)lastinput = num Case 5 计算1/x If x = 0 ThenMsgBox 数据输入不正确, 48, 提示ElseText1.Text = 0 & 1 / Val(x)lastinput = numEnd IfCase 6 计算tanText1.Text = Format(Tan(x), 0.#)lastinput = numCase 7 计算lnText1.Text = Log(Text1.Text)lastinput = numEnd SelectEnd SubPrivate Su

13、b Command3_Click() 按钮Text1.Text = 3.1415926 直接输出lastinput = numEnd SubPrivate Sub Command4_Click()e按钮 Dim e As Double, i As Integer, j As Integer j作为内循环的循环变量 Dim dblFact As Double 存放阶乘结果的变量 e = 2 i = 1 Do i = i + 1 dblFact = 1 初始化阶乘结果变量 For j = 1 To i 内嵌套循环,求阶乘 dblFact = dblFact * j Next e = e + 1 /

14、 dblFact Loop Until 1 / dblFact 1 / 10 16 直至第i项的值 16 Or InStr(1, Text1.Text, .) 0 And lastinput eqv Then Exit SubIf lastinput = opt Or lastinput = eqv Or lastinput = neg ThenText1.Text = Text1.Text + 0.ElseText1.Text = Text1.Text + .End Iflastinput = numEnd SubPrivate Sub Command9_Click()初始化Call For

15、m_Loadoptnum = 0End SubPrivate Sub copy_Click()菜单项的代码Clipboard.Clear 清空剪贴板Clipboard.SetText Text1.Text 将文本框内容放入剪贴板End SubPrivate Sub form_KeyPress(KeyAscii As Integer)0-9和“.键盘输入Text1.SetFocusText1.Text = Dim i As IntegerIf KeyAscii = Asc(0) Theni = 0 Call Command1_Click(i)ElseIf KeyAscii = Asc(1) Th

16、eni = 1Call Command1_Click(i)ElseIf KeyAscii = Asc(2) Theni = 2Command1_Click (i)ElseIf KeyAscii = Asc(3) Theni = 3Command1_Click (i)ElseIf KeyAscii = Asc(4) Theni = 4Command1_Click (i)ElseIf KeyAscii = Asc(5) Theni = 5Command1_Click (i)ElseIf KeyAscii = Asc(6) Theni = 6Command1_Click (i)ElseIf KeyA

17、scii = Asc(7) Theni = 7Command1_Click (i)ElseIf KeyAscii = Asc(8) Theni = 8Command1_Click (i)ElseIf KeyAscii = Asc(9) Theni = 9Command1_Click (i)ElseIf KeyAscii = Asc(.) ThenCommand8_ClickEnd IfEnd SubPrivate Sub Form_Load()窗体加载事件Form1.Picture = LoadPicture(App.Path + 1.jpg) 为窗体设置背景图片num1 = 0num2 =

18、0opttype = -1Text1.Text = 0lastinput = eqvoptnum = 0eqvnum = 0End SubPrivate Sub paste_Click()菜单项 粘贴 按钮Text1.Text = Clipboard.GetText 将剪贴板内容取出End SubPrivate Sub Text1_Click()Text1.Text = End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)运算符键盘输入Select Case KeyAscii Case Asc(+) 按下加号键 Command6_Clic

19、k (3) 调用运算符单击事件过程 Text1.Text = Case Asc(-) 按下减号键 If Text1.Text Then 假设文本框不空,看作减号,否那么看作负号 Command6_Click (2) 调用减号按钮单击事件过程 KeyAscii = 0 按键不再影响文本框 End If Text1.Text = Case Asc(*) 按下乘号键 Command6_Click (1) Case Asc(/) 按下除号键 Command6_Click (0) Case Asc(=)按下=键 num2 = Val(Right(Text1.Text, Len(Text1.Text) -

20、 1) Text1.Text = calc(num1, opttype, num2) lastinput = eqv optnum = 0Select Case eqvnumM1-M5在键盘输入的代码Case 0i(0) = Val(Right(Text1.Text, Len(Text1.Text) - 1)Case 1i(1) = Val(Right(Text1.Text, Len(Text1.Text) - 1)Case 2i(2) = Val(Right(Text1.Text, Len(Text1.Text) - 1)Case 3i(3) = Val(Right(Text1.Text,

21、Len(Text1.Text) - 1)Case 4i(4) = Val(Right(Text1.Text, Len(Text1.Text) - 1)End Selecteqvnum = eqvnum + 1 End SelectEnd SubPrivate sub command15_click 清空按钮Text1.text=0” 文本框内容显示为0Lastinput=eqv 标志显示为“=标志4课程设计成果 1.程序加载的效果见右图:2.程序运行效果如右图:3.各种提示信息如下列图: 5.程序调试过程写出程序调试步骤,及遇到的问题。在程序调试设置断点,通过变量赋值寻找其中错误,逐条检查,修

22、改其中的错误。程序调试时遇到的错误是:1.键盘输入不正确2.不能连续运算3.记忆按钮功能无法实现6.设计问题的缺乏和改良方案设计问题的缺乏之处:1 程序在四那么运算时无法实现先乘除后加减的算法2 程序在运算结果出现小于0的小数时,小数点前的0不能显示3 没有进行进制转化的功能键4 数字太大时不能使用科学计算法改良方案:1. 通过选择结构判断条件编写支持优先级的代码2. 判断条件在出现小于0的数时在其前面加03. 添加按钮,能够进行数字转化4. 编写代码使大于某数的数用科学计算法表示7.课程设计心得在本次设计中通过对设计任务的思考以及自己在设计前的准备,使我感受到自己在单独的做某件事的时候开始前

23、的准备很重要,再设计过程中要不断的在设计过程中注重细节,在生活中的灵感可以运用到各种可能的情况中,所以对于生活中的一些突发想象,我们应该记着它。并且我们要不断地翻阅资料,上网去借鉴,学习,在找到相关的有助于我们工作的,我们要去学习它,明白它。还有就是在干每件事时,我们不应该把希望全部寄托在别人身上,虽然人际交往很重要,但朋友不是全部,每个人都要以自己为主,而不是完全靠别人,如果是那样,那么只能说你不是让你在丰富自己,而是一直在求他人,这样的人生我想每个人都是不愿意要的。而且通过自己的努力,当看到自己的成果时,你会感到你很伟大,你会很快乐,会把这种快乐分享给每一个你愿意分享的人。8.附录有些需要说明的局部。如添加ActiveX等非不标准部件,或使用文件操作时对路径有特殊要求等。假设没有特殊要求,此处为“无。无9.参考文献1、 陈明锐.Visual Basic程序设计及应用教程.北京:高等教育出版社,2021.122、 张春英. Visual Basic程序设计实例教程.北京:北京邮电大学出版社,2021.13、 匡松 吕峻闽Visual Basic程序设计根底教程. 北京:中国铁道出版社,2006.1

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!