《软件设计基础(VB)》简单科学计算器课程设计报告书_第1页
《软件设计基础(VB)》简单科学计算器课程设计报告书_第2页
《软件设计基础(VB)》简单科学计算器课程设计报告书_第3页
《软件设计基础(VB)》简单科学计算器课程设计报告书_第4页
《软件设计基础(VB)》简单科学计算器课程设计报告书_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

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课程设计说明书 = 1 *

4、GB2 功能描述窗体通过窗体命令按钮或键盘输入数字实现根本的数学运算,使用窗体的功能按钮计算某些特殊函数概要设计模块结构图: 根据功能分析,建立系统的体系结构,即将整个系统分解成假设干子模块,用框图表示各功能模块之间的接口关系如下列图。输入数字赋值给变量输入运算符及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 D

6、ouble 第一个数Dim 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 = num

7、1 / num2End 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)

8、 16 Then Exit 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

9、SubPrivate 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 SubPriv

10、ate Sub Command14_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.Tex

11、t = Format(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

12、= numCase 4 计算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 Su

13、bPrivate Sub 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

14、e = e + 1 / 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()

15、初始化Call Form_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

16、= Asc(1) Theni = 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)

17、ElseIf KeyAscii = 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

18、 = 0num2 = 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(+) 按下加号键 Co

19、mmand6_Click (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(Te

20、xt1.Text) - 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(T

21、ext1.Text, 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.程序调试过程写出程序调试步骤,及遇到的问题。在程序调试设置断点,通过变量赋值寻找其中错误,逐条检查,修改其中的错误。程序调试时遇到的错误是:1.键盘输入不正确2.不能连续运算3.记忆按钮功能无法实现6.设计问题的缺乏和改良方案设计问题的缺乏之

温馨提示

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

评论

0/150

提交评论