




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、*大学课程设计科学计算器位院(系)学生姓名*指导教师兰完成日期和月日visual basic是近年来在国内外得到迅速推广应用的可视化程序设计语言具有简单易学, 功能强效率高等特点它提供了开发windows应用程序最迅速,最简捷的方法,不但专业 人员得心应手的开发工具,而且易于被非专业人员掌握使用。本课程主要讲述visual basic的基本概念,语法规则和利用visual basic进行程序设计方法。同时掌握窗休设 计,函数和控件的使用方法。vb程序设计是工科专业开设的一门基础编程课程。通过这门课程的学习,一方面是培养 一个人的逻辑编程能力,提高其使用计算机能力,为今后从事本专业领域的软件开发
2、打 下基础;另一方面通过vb中体现出的面向对象思想,以培养学生认识问题,分析问题解 决问题的思路和能力。目录一选题的意义系统功能需求分析2 1系统概述22系统的构成23系统的运行环境三.系统设计31总体结构设计32各功能的实现四总结参考文献一选题的意义随着现代科学技术ei新月异,高速发展,因此计算器进入课堂是历史的必然。计算器 的一个基本特点是计算迅速准确,使用计算器,可以把学生从烦琐的数字计算中解脱出 来,这样既减轻了屮年级学生的课业负担,又能使学生有更多的时间进行思考、动手操 作和实践活动,有利于开发学生的数学灵感,提高数学学习的兴趣,促进学生智力和能 力的发展。由于大部分学生已经接触过计
3、算器,因此教材只通过一幅计算器的外型结构 图,逐渐让学生了解计算器的键盘结构,同时通过一些简单的练习题,使学生学会这些 按键的使用方法。然后进一步用计算器探索规律,培养学生探索意识。本课程是一门当前流行的程序设计语言课程。通过vb程序设计语言及其程序设计方法 的学习,不仅使学生得到计算机的应用能力和操作技能的训练,更主要的是使学生提高 高级语言程序设计的能力,以及掌握最新的面向对象的程序设计方法,并能运用所学的 知识开发图形界面(windows)下的应用软件,为培养学生结合专业进行软件开发打好基 础。二. 系统功能需求分析2 1系统概述:本科学计算器是一种能实现 加,减,乘,除,倒数,乘方,止
4、切、in、long> n!函数,进制、 弧度转换等运算功能,并带有存储器、统计框等,基本实现了 windows自带计算器的所有 功能。要实现计算器的这些功能就用到我们所学的vb知识编写程序来实现运算功能并 解决问题,也是我们实训要达到的目的2 2系统的构成;command按钮(控件数组),文木框,option, check,菜单栏,列表框。构成科 学计算器界面。2 3系统的运行环境:microsoft visual basic中文版。三. 系统设计3 1总体结构设计:通过课后的资源共享、网上交流,将信息技术应用在促进师生之间的交流与合作上。现代教育理论十分强调合作学习,而合作学习有多种方
5、法,有交流、有讨论、有辩论、有角色扮演等等。 在信息技术与高屮数学整合的研究和探索屮,我们十分注重利用信息技术的优势,创设不受时空 限制的资源共享、快速灵活的信息获取、丰富多样的交互方式、打破地域界限的交流协作的环境 32各功能的实现1数值输入、小数点、止负号点数字操作相关代码:private sub cmdnum_click(lndex as integer)if isclickzhiast then call initvalueif isclickoklast then call initvaluetextl text = val(llf(isclicknumlast, textl tex
6、t, "") & index)isclicknumlast = trueisclickoklast = falseend sub,点+ ,,*,/操作符的操作相关代码:private sub cmdoper_click(lndex as integer)if isclicknumlast thencall compuresulttextl text = s1end ifflag = indexisclickoklast = falseisclicknumlast = falseoperf = flagend sub'占小数占八、j八、'这里需要新定义
7、一个新的变量s3,因为如果用s1的话会出现重复相加当前值的问 题'所以这里用以个新的变量当桥梁来相加private sub cmdpoint_click()dim s3if isclickzhiast then call initvalueif isclickoklast then call initvalueif isclicknumlast thens3 = textl texttextl text = s3 & ” ”elsetextl text = "0 "end ifisclickoklast = falseisclicknumlast = tru
8、eend sub止负号操作相关代码:private sub changeoper_click(lndex as integer)if isclickzhiast then call initvalue,判断是不是通过进制转换过来的数 '下面是判断数字前面是否有负号if not isneq thentextl text =& textl textisneq = trueelsetextl text = cstr(val(text1 text) * val(-1)isneq = falseend ifisclickoklast = trueend sub2计算功能(1) 加(+)、
9、减()、乘c)、除(/)、等简单算术计算功能的实现:v1计算结果操作相关代码:private sub compuresult()dim i as integer, jj = 1if not isclickoklast then s2 = textl textselect case flagcase 1s1 = cstr(val(s1) + val(s2)case 2s1 = cstr(val(s1) val(s2)case 3s1 = cstr(val(s1) * val(s2)case 4s1 = cstr(val(s1) / val(s2)case 5=cstr(val(s1)mod va
10、l(s2)case 6for i = 1 to s2j = ) * s1nexts1 = jcase 7s1 = cstr(val(s1) and val(s2)case 8s1 = cstr(val(s1) or val(s2)case 9s1 = cstr(val(s1) xor val(s2)case 10s1 = s1 * (2 a s2)end selectend sub2鼻”号输出结果:'点击等于('=')号操作private sub sumok_click()call compuresulttextl text = s1isclickoklast = tr
11、ueisclicknumlast = falseend sub(2) 进制转换及计算的实现(以十进制为例):v1数制转换函数:将十进制转换成八进制private sub toeight_click()dim s3call changeframecall ycbuttoncmdnum(8) enabled = falses2 = textl textif istenlast thentextl text = oct(s2)end ifif issixteenlast thens3 = clnt(,&hn & s2)textl text = oct(s3)end ifisclick
12、zhiast = true iseightlast = true istenlast = false issixteenlast = false end sub将任意进制转换成丁进制private sub toten_click()s2 = textl textcall changeframecall ycbuttonif iseightlast thentextl text = clnt(,&ou & s2)end ifif issixteenlast thentextl text = clnt(n&hn & s2)end ifisclickzhiast =
13、trueiseightlast = falseiste nlast = trueissixteenlast = falseend sub<2>点击进制按钮时触发的事件:'当点击进制的时候某些按钮比屏蔽掉相关代码:private sub ycbutton()dim i as booleanif tosixteen value = truethencmdnum(o) enabled =truecmdnum(1) enabled =truecmdnum(2) enabled =truecmdnum(3) enabled =truecmdnum(4) enabled =truecm
14、dnum(5) enabled =truecmdnum(6) enabled=truecmdnum(7) enabled =truecmdnum(8) enabled =truecmdnum(9) enabled =truecmdnum(10) enabled = true cmdnum(11) enabled = true cmdnum(12) enabled = true cmdnum(13) enabled = true cmdnum(14) enabled = true cmdnum(10) enabled = true cmdnum(15) enabled = truebuttond
15、at enabled = falsebuttons enabled = falsebuttonsun enabled = falsebuttonave enabled = falsebuttonfe enabled = falsebutt on dms enabled = false funopersin enabled = false funopercos enabled = false funopertan enabled = false funoperexp enabled = falsebuttonpi enabled = falseelself toeight value = tru
16、e then cmdnum(o) enabled = true cmdnum(1) enabled = true cmdnum(2) enabled = true cmdnum(3) enabled = true cmdnum(4) enabled = true cmdnum(5) enabled = true cmdnum(6) enabled = true cmdnum(7) enabled = true cmdnum(8) enabled = false cmdnum(9) enabled = false cmdnum(10) enabled = false cmdnum(11) ena
17、bled = falsecmdnum(12) enabled = falsecmdnum(13) enabled = falsecmdnum(14) enabled = false cmdnum(10) enabled = false cmdnum(15) enabled = falsebuttondat enabled = falsebuttons enabled = falsebuttonsun enabled = falsebuttonave enabled = falsebuttonfe enabled = falsebuttondms enabled = falsefunopersi
18、n enabled =falsefunopercos enabled =:falsefunopertan enabled =falsefunoperexp enabled=falsebuttonpi enabled = falseelself toten value = truethe ncmdnum(o) enabled = truecmdnum(1) enabled =truecmdnum(2) enabled =truecmdnum(3) enabled =truecmdnum(4) enabled =truecmdnum(5) enabled =truecmdnum(6) enable
19、d =truecmdnum(7) enabled =truecmdnum(8) enabled =truecmdnum(9) enabled =truecmdnum(10) enabled=falsecmdnum(11) enabled=falsecmdnum(12) enabled=falsecmdnum(13) enabled=falsecmdnum(14) enabled=falsecmdnum(10) enabled=falsecmdnum(15) enabled=falsebutt on dat en abled = falsebuttons enabled = falsebutto
20、nsun enabled = falsebuttonave enabled = falsebuttonfe enabled = truebutt on dms enabled = true funopersin enabled = true funopercos enabled = true funopertan enabled = true funoperexp enabled = truebuttonpi enabled = true elself totwo value = true then cmdnum(o) enabled = true cmdnum(1) enabled = tr
21、ue cmdnum(2) enabled = false cmdnum(3) enabled = false cmdnum(4) enabled = false cmdnum(5) enabled = false cmdnum(6) enabled = false cmdnum(7) enabled = false cmdnum(8) enabled = false cmdnum(9) enabled = false cmdnum(10) enabled = false cmdnum(11) enabled = false cmdnum(12) enabled = false cmdnum(1
22、3) enabled = false cmdnum(14) enabled = false cmdnum(10) enabled = falsecmdnum(15) enabled = falsebuttondat enabled = falsebuttons enabled = falsebuttonsun enabled = falsebuttonave enabled = falsebuttonfe enabled = falsebuttondms enabled = false funopersin enabled = false funopercos enabled = false
23、funopertan enabled = false funoperexp enabled = falsebuttonpi enabled = falseend ifend sub<3>进制运算(以加法为例):计算时,须将r进制数值转换成十进制数值进行计算,再将结果转换成r 进制数输出。select case zcase 0mm = trdec(val(todec(x, 2) + todec(y, 2), 2)case 1mm = trdec(val(todec(x, 8) + todec(y, 8), 8)case 2mm = str(x + y)case 3mm = trdec
24、(val(todec(hnum1, 16) + todec(hnum2, 16), 16)end select(3)求反函数及角度、弧度互化的相应计算(以正弦函数为例):v1上档键及up变量,用于求反函数private sub check1_click()if (checkl value = 1) then command1(0) caption = hasinh up = trueelsecommand1(0) caption = ”sirt up = falseend ifend subv2角度、弧度互化按钮,相应定义jtoh变量:角度按钮private sub option2_click
25、()if (jtoh = true) thentextl = str(val(text1) * (4 * atn(1) / 180)end ifjtoh = falseend sub弧度按钮private sub option3_click()if (jtoh = false) thentextl = str(val(text1) * 180 / (4 * atn(1)end ifjtoh = trueend subv3角度制、弧度制下的止弦、反止弦运算的实现:private sub command 1_click(lndex as integer)x = val(textl)select c
26、ase indexcase 0if (up = false) thenif (jtoh = true) thentextl = str(sin(x)elsetextl = str(sin(x * (4 * atn(1) / 180)end ifelsetextl = str(atn(x / sqr(-x * x + 1) * (180 / (4 * atn(1)end if2括号和统计框:(1)括号功能:左括号,将第一个数值x和算符传递给新的变量g和kprivate sub command8_click()g = xh = kend sub右括号,完成运算并将结果保存在bb变量中private
27、 sub command9_click()call resulttextl = mmi = val(textl)pp = trueselect case hcase 0bb = g + icase 1bb = g icase 2bb = g * icase 3bb = g / iend selectend sub(3)标准型标准型界你相关代码:option explicitdim counta as double, countb as double,'调用结果函数,算出括号中的结果并将其赋给变量i'变体型变量pp,用于点击等号时输出结果bb'再将括号屮接过与开始时输入的
28、数字进行计算'变量b b保存括号计算的最终结果sum as string, bl as booleanprivate sub command 1_click(index as integer)if bl = true thentextl text = ,m, bl = falseend iftextl text = textl text + commandl(index) captionend subprivate sub command2_click(lndex as integer)if textl text = ” thenmsgbox ”请输入数值后再点击此符号!谢谢! ”,”提示”exit subelsecounta = val(text1 text)sum = command2(lndex) captiontextl text = ”end ifend subprivate sub command3_click()bl = trueif textl text = " thenmsgbox h请
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- LY/T 1849-2024植物新品种特异性、一致性、稳定性测试指南丁香属
- 2025年中考语文一模试卷-1
- 物理●广东卷丨2023年广东省普通高中学业水平选择性考试物理试卷及答案
- 不予执行36课件
- 考研复习-风景园林基础考研试题附参考答案详解(达标题)
- 现代化工产业园精细磷化工厂房及配套设施项目可行性研究报告写作模板-申批备案
- 风景园林基础考研资料试题及参考答案详解(a卷)
- 2025-2026年高校教师资格证之《高等教育法规》通关题库附答案详解(a卷)
- 2024年滨州新能源集团有限责任公司及权属公司公开招聘工作人员递补笔试备考题库附答案详解(完整版)
- 2025年K2学校STEM课程实施效果评估与教育评价体系构建报告
- 呈阅件(清流县城市管理办法)
- 公务员职务与及职级并行规定课件
- 红河县年产50吨珍珠棉建设项目环评报告
- 术中大出血的抢救及护理配合
- 四川甘孜州遴选(考调)公务员39人2024年国家公务员考试考试大纲历年真题420笔试历年难易错点考题荟萃附带答案详解
- 商务英语听说-对外经济贸易大学中国大学mooc课后章节答案期末考试题库2023年
- 第十二讲 建设社会主义生态文明PPT习概论2023优化版教学课件
- 国家湿地公园总体规划导则
- 阆中张飞牛肉名称的来历
- 2021上半年江津区社区专职工作者《综合基础知识》试题
- 2023上海虹口区初三语文一模作文写作指导及范文:这也是我的舞台
评论
0/150
提交评论