




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、交通与汽车工程学院课程设计说明书课 程 名 称: 程序设计基础课程设计 课 程 代 码: 8234580 题 目: 简易计算器程序设计 年级/专业/班: 2009级/热能与动力工程(汽车发动机)/ 3班 学 生 姓 名: 魏学行 学 号:开 始 时 间: 2010 年 4 月 26 日完 成 时 间: 2010 年 5 月 21 日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书(计算书、图纸、分析报告)撰写质量(45)总 分(100)指导教师签名: 年 月 日目 录摘要 - 2 -1 引言 - 3 -1.1 选题背景 - 3 -1.2 任务与分析 - 3 -
2、2 方案设计 - 4 -3 界面设计 - 4 -4 代码设计及程序调试 - 5 -5 软件使用说明 - 6 -总结与体会 - 12 -致谢 - 14 -参考文献 - 15 -摘 要 随着计算机的不断更新发展,计算器扮演着极为重要的角色, Windows环境下的Visual Basic提供了丰富的图形功能。本文主要通过对方案设计、界面设计、代码编写及调试以及软件使用说明等的介绍,介绍了作者利用Visual Basic对“简易计算器”应用软件的开发设计过程,并分析了所开发软件系统的优点和不足。关键词:Visual Basic 简易计算器 程序设计 1 引 言 1.1 选题背景 通过一年来对Visu
3、al Basic 高级语言程序设计的学习,我已经掌握了一些常用的控件的使用方法,对简单的程序设计的常用算法也有了一定的了解,还掌握了对图形和动画的一些基本操作。为了进一步加深理解、验证、巩固课堂教学内容,加深对可视化编程思想的理解,强化Visual Basic对程序流程控制、常用控件的属性、事件、方法的理解和使用;为了进一步提高编程能力、程序的调试能力,理论联系实际的能力;巩固所学的这些程序设计的方法,为了达到后续课程对实际编程计算能力的要求,特选定“简易计算器”这个小题目作为课程设计实践教学环节的题目,有助于培养综合运用所学知识解决实际问题的能力,可以充分发挥想象力和创新能力;有助于提高独立
4、思考能力,和自学能力。1.2 任务与分析 本软件应具有运算加减乘除四则基本运算,其中涉及到了VB的很多知识点,例如:在界面设计中应熟悉掌握各个控件的属性,各种循环语句,选择语句,控件组等等。有助于培养综合运用所学知识解决实际问题的能力,可以充分发挥想象力和创新能力;有助于提高独立思考能力,和自学能力。2 方案设计 本软件按照一般计算器的界面以及功能设计,具有最为基础的加减乘除四则运算。先建立一个新的项目文件,里面包含一个Form1的窗体。然后,添加控件,包括一个Text框(Text1)。一个控件数组,包含17个按钮,这17个按钮使用的名称都是Command1,只是Index属性不同。按下数字键
5、在液晶屏上会出现数字,这是最基本的功能。第一次按下运算键,再按下数字键,将重新输入第二个数字,再次按下运算键,将算出前两个数的结果,然后按下数字键,将又重新输入新的数字。输入数字后,按下“等于键”将仍输出原来的数字,输入运算符和第二个数字后在按下“等于”,将得到二者的结果。然后又重复第二、三步。 按下“清除”,数据被全部清除。所以还将运用到赋值。3 界面设计控件名称属性控件名称属性控件名称属性Command1(00Command1(11Command1(22Command1(33Command1(44Command1(55Command1(66Command1(77Command1(88Com
6、mand1(88Command1(10.Command1(11=Command1(12+Command1(13-Command1(14*Command1(15/Command1(16ACText1“”Image4 代码设计及程序调试1. 先在General里声明窗体级全局变量: Dim Num1, Num2 As SingleDim StrNum1, StrNum2 As StringDim FirstNum As Boolean '判断是否是数字开头2. 字符型变量转变为实型变量因为Text1里是存放字符串的,所以要把输入的数据进行运算,必须把字符型变量转变为实型变量,分别用Num1
7、、Num2和StrNum1、StrNum2进行存放。 在Form_Load事件里给变量初赋值: Num1 = 0Num2 = 0StrNum1 = ""StrNum2 = ""FirstNum = True3. Select Case语句区分各个按钮因为17个按钮使用的是同一事件,所以我们用一个Select Case语句区分各个按钮,双击任意按钮输入代码: Private Sub Command1_Click(Index As IntegerSelect Case IndexCase 0 To 9If FirstNum ThenStrNum1 = Str
8、(Index实型转字符型FirstNum = False初赋值为假Else非初赋值StrNum1 = StrNum1 + Str(IndexEnd IfText1.Text = StrNum1显示<还有其他语句,等待插入>End SelectEnd Sub4. 处理小数点。 在General里声明新的变量: Dim PointFlag As Boolean '判断是否已有小数点在Form_Load里进行初赋值:PointFlag = False在Command的单击事件里接着上面输入新的代码:Case 10If Not PointFlag Then如果没有小数点If Fir
9、stNum Then如果是第一个字符StrNum1 = "0."FirstNum = FalseElseStrNum1 = StrNum1 + "."End IfElse已有小数点Exit Sub则退出单击事件End IfPointFlag = TrueText1.Text = StrNum15. 处理四则运算:先在General里声明新变量:Dim Runsign As Integer '储存运算符号Dim SignFlag As Boolean '判断是否已有运算符号然后在Form_Load中进行初赋值:Runsign = 0Sign
10、Flag = False在接下的Command1_Click中继续输入代码:Case 12 To 15FirstNum = True使下一次可以输入新数据PointFlag = False'还原标记值If SignFlag Then前面已有运算符未运算Call RunElseSignFlag = TrueStrNum2 = StrNum1把字符串1复制给字符串2StrNum1 = ""字符串1清空End IfRunsign = Index - 11 储存键入的运算符里面运算的部分我用了一个过程,是因为在按下等号时还会调用到运算过程,这样可以减少代码的输入,也使程序便
11、于浏览。建立过程(Procedure),可以在General部分直接输入,也可以通过菜单里的“Add Procedure”添加。Run的代码如下:Sub Run(Num1 = Val(StrNum2Num2 = Val(StrNum1Select Case RunsignCase 1加equal = Num1 + Num2Case 2减equal = Num1 - Num2Case 3乘equal = Num1 * Num2Case 4除equal = Num1 / Num2End SelectStrNum2 = Str(equalStrNum1 = StrNum2Text1.Text = S
12、trNum2End Sub6. 下面是其余的代码:(在Command1_Click事件里,接着写Case 11If Not SignFlag ThenText1.Text = StrNum1equal = Val(StrNum1FirstNum = TruePointFlag = FalseElseCall RunSignFlag = FalseEnd IfCase Else清除按钮Call ClearData里面又用到了一个ClearData过程,实际上就是Form_Load里的变量初赋值,代码如下:Sub ClearData(Num1 = 0Num2 = 0StrNum1 = "
13、"StrNum2 = ""FirstNum = TruePointFlag = FalseRunsign = 0SignFlag = FalseText1.Text = "0."End Sub下面给出完整的程序代码:Dim Num1, Num2 As SingleDim StrNum1, StrNum2 As StringDim FirstNum As Boolean '判断是否是数字开头Dim PointFlag As Boolean '判断是否已有小数点Dim Runsign As Integer '储存运算符号Di
14、m SignFlag As Boolean '判断是否已有运算符号Sub ClearData(Num1 = 0Num2 = 0StrNum1 = ""StrNum2 = ""FirstNum = TruePointFlag = FalseRunsign = 0SignFlag = FalseText1.Text = "0."End SubSub Run(Num1 = Val(StrNum2Num2 = Val(StrNum1Select Case RunsignCase 1equal = Num1 + Num2Case 2eq
15、ual = Num1 - Num2Case 3equal = Num1 * Num2Case 4equal = Num1 / Num2End SelectStrNum2 = Str(equalStrNum1 = StrNum2Text1.Text = StrNum2End SubPrivate Sub Command1_Click(Index As IntegerSelect Case IndexCase 0 To 9If FirstNum ThenStrNum1 = Str(IndexFirstNum = FalseElseStrNum1 = StrNum1 + Str(IndexEnd I
16、fText1.Text = StrNum1Case 10If Not PointFlag ThenIf FirstNum ThenStrNum1 = "0."FirstNum = FalseElseStrNum1 = StrNum1 + "."End IfElseExit SubEnd IfPointFlag = TrueText1.Text = StrNum1Case 12 To 15FirstNum = TruePointFlag = False'还原标记值If SignFlag ThenCall RunElseSignFlag = True
17、StrNum2 = StrNum1StrNum1 = ""End IfRunsign = Index - 11Case 11If Not SignFlag ThenText1.Text = StrNum1equal = Val(StrNum1FirstNum = TruePointFlag = FalseElseCall RunSignFlag = FalseEnd IfCase ElseCall ClearDataEnd SelectEnd SubPrivate Sub Form_Load(Call ClearDataEnd Sub5 软件使用说明本软件使用十分简单,按照
18、普通计算器的使用方法即可。先按下需要计算的第一个数字,再按下运算符号,再按下第二个计算数字,最后按下等号即可得到运算结果。总结与体会本段具体内容为本次课程设计整体上的总结与体会,可包含所设计软件的优点和不足的分析,遇到的困难及解决方法等。例如:在这个系统课设创作的过程中,我学会了基本的VB编程技能,对软件制作也有了初步的了解。同时也遇到了种种困难,体验到了编程的艰辛。在实现“车次查询”的过程中,语句格式不清楚,无法与数据库实现链接。点击“查询”后,无法显示车站序列名。后来,我们通过相互讨论及查询相关资料,细心检查语句。不断使逻辑和格式趋于完善。最终,问题得以解决。软件的制作是一件辛苦而费力的工
19、作,但在老师和同学的帮助下,我不但按时完成,而且从中学到了许多课本上没有的东西,首先是团队的合作精神。现代软件的制作不是一个人可以完成的,个人始终需要集体的支持。在遇到困难时,大家集中在一起进行分析讨论,共同解决。其次是学习与实践的关系。在课本上学到了VB程序的基础知识。但在实践中,需要大量的拓展知识。我们在理解书本知识的基础上,查阅了大量的书籍,不仅找到了问题的解决方法,而且优中取优,尽量选取最简方法,从而促进了我们VB知识的提高。或者:在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,大大提高了自己的动手能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。当然,我也深刻地体会到从理论到实践是很难的过程,每一个参数的选择都需要仔细地思考,稍微差一点就会使计算的结果相差很远。还有就是在编程的过程中,需要学习很多以前没有学过的有关知识。在设计中会遇到很多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度房屋买卖合同违约后房产评估及处理
- 健康管理师跨学科知识整合试题及答案
- 二零二五年度小店铺劳动合同制员工福利保障协议
- 二零二五年度水利工程延期责任分担协议书
- 二零二五年度幼儿园实习教师实习与就业对接服务协议
- 二零二五年度新房团购合同解除书
- 2025年度科技苗圃租赁研发合作合同
- 全媒体创作者的职业路径试题及答案
- 2025年妇幼保健员考试冲刺试题及答案
- 二零二五年度养殖场租赁与农业保险产品设计合作合同
- 榆林200MWp并网光伏发电项目可行性研究报告
- 测深、测速记载及流量计算表(畅流期流速仪法)
- 机房动力环境配电柜电量监测监控系统报价清单
- 大数据发展服务中心一体化智能化公共数据平台(分平台)
- 全业务端到端-L2题库
- 特发性矮身材诊断与治疗
- 幼儿园小班语言活动《魔法亲亲》教案
- 黄十字与亚健康
- 中国特色社会主义理论与实践研究知识点整理及思考题答案
- 创意知名画家达芬奇个人生平介绍PPT
- 篮球-行进间单手肩上投篮教案
评论
0/150
提交评论