




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录第一部分 实习目标和要求 .2一 实习目标2二 实习要求2三、时间安排2第二部分 程序编写3实 习 1 .3实 习 2 .3实 习 3 .4实 习 4 .5实 习 5 .5实 习 6.6实 习 7.7实 习 8.8实 习 9.9.实 习10.9.实 习 1110实 习 1211实 习 1312实 习 1413实 习 15 14实 习 16.16实 习 17.20第三部分 总 结.22一、 实习心得.22第一部分 实习目标和要求一、 实习目标通过该课程设计的操作与实践,使学生在了解使用vb程序设计方法、掌握面向对象程序设计的相关理论知识和设计技巧的基础上,能够将理论教学中涉及到的知识点 贯穿起来,通过对各个实习任务的练习,应用vb实现测量数据的程序处理;从而提高面向对象程序设计的综合设计能力、应用vb来解决测量中的数据处理等问题的实践能力二、 实习要求1认真努力作业。巩固所学vb语言基本知识。2鼓励多种形式的学习活动。如与同学展开讨论,请教老师,查阅图书资料,上网搜索信息等。3程序的功能要求。按个人能力可做适当的增减。有能力的,应实现更多的功能。4按时提交作业。课程设计作业包括全部vb软件工程文件和课程设计报告。5珍惜上机机会。上机期间不做与课程设计无关的事。6按照计划进行设计。三、时间安排周数时间实习内容指导教师第十五周第一天实习任务的安排、组织学生、资料收集(实习12)赵淑湘第二天实习(实习3实习6)赵淑湘第三天实习(实习7实习11)赵淑湘第四天实习(实习12实习16)赵淑湘第五天实习17 、成果整理赵淑湘第二部分 程序编写1、判断闰年:年号(intyear)能被4整除,但不能被100整除;或能被400整除程序代码:函数rn的功能是判断年号intyear是否为闰年,rn闰年function rn(intyear as integer)if intyear mod 4 = 0 and intyear mod 100 0 then rn = 闰年elseif intyear mod 400 = 0 then rn = 闰年 else rn = end ifend function运行情况如图1:图1 函数rn()的运行界面2一元二次议程ax2+bx+c=0存在实根的条件:a不等于0,且b2-4ac大于等于0。程序代码:函数ryycfc的功能是判断一元二次方程ax2+bx+c=0是否实根;ryycfc -一元二次方程function ryycfc(a, b, c) if a 0 and b 2 - 4 * a * c = 0 then ryycfc = 有实根 else ryycfc = 无实根 end ifend function运行情况如图2:图2 函数ryycfc()的运行界面3.输入三个数a,b,c,输出三者之中最大数程序编码:函数dxbj的功能是三个数的大小比较,输出最大的数,dxbj的意思是大小比较function dxbj(a, b, c) if a b and b c then dxbj = a end if if a b and c b then dxbj = a end if if b a and a c then dxbj = b end if if b a and c a then dxbj = b end if if c b and b a then dxbj = c end if if c b and a b then dxbj = c end ifend function运行情况: 如图3图3函数dxbj()的运行界面4.公民缉拿所得税,假定按规定超过800元起征收2%,8001600元之间征收3%,16005000元之间征收4%,500020000元之间征收6%,20000200000元之间征收10%,超过200000征收25%。输入收入,计算出所得税。程序编码:函数ns的功能是计算所得税,ns的意思是个人要缴纳的金额function ns(a) if a 800 and a 1600 and a 5000 and a 20000 and a 200000 then ns = 800 * 0.02 + (a - 1600) * 0.04 + (a - 2400) * 0.03 + (a - 5000) * 0.06 + (a - 20000) * 0.1 + (a - 200000) * 0.25 end ifend function运行情况:如图4图4函数ns()的运行界面5.小猴在一天摘了若干个桃子,当天吃掉一半多一个;第二天接着吃了剩下的桃子的一半多一个,以后每天都吃剩下的桃子的一半多一个,到第7天早上要吃时发现只剩下一个,问小猴那天共摘了多少个桃子?程序编码:函数tz的功能是计算小猴那天共摘了多少个桃子function tz()m = 1for i = 1 to 6n = (m + 1) * 2m = nnext itz = nend function运行情况:如图5图5函数tz()的运行界面6.已知xyz+yzz=532,其中x,y和z为09的数字,编程求出x、y和z。程序编码:函数xyz的功能是满足式子xyz+yzz=532的成立function xyz() for x = 1 to 9 for y = 1 to 9 for z = 0 to 9 if (100 * x + 10 * y + z) + (100 * y + 10 * z + z) = 532 then xyz = x= & x & & y= & y & & z= & z & end if next z next ynext xend function运行情况:如图6图6函数xyz()的运行界面7.某次大奖赛,有7个评委打分,满分为100分。对一名参赛者,输入7个评委的打分分数,去掉一个最高分、一个最低分后,求出平均分为该参赛者得分。编写程序输入评委的打分,输出参赛者得分。程序编码:函数js_click的功能是计算参赛者得分。option base 1private sub js_click() dim pf(7) as single dim su, ma, mi, aver as single dim i as integer pf(1) = val(p1.text) pf(2) = val(p2.text) pf(3) = val(p3.text) pf(4) = val(p4.text) pf(5) = val(p5.text) pf(6) = val(p6.text) pf(7) = val(p7.text) ma = pf(1) mi = pf(1) for i = 1 to 7 su = su + pf(i) if ma pf(i) then mi = pf(i) end if next i aver = (su - ma - mi) / 5 zd.text = trim(str(mi) pj.text = trim(str(aver)end subprivate sub qc_click() p1.text = p2.text = p3.text = p4.text = p5.text = p6.text = p7.text = zg.text = zd.text = pj.text = end subprivate sub tc_click() unload xsdfend sub运行情况:如图7图7函数js_click()的运行界面8.求s=1-1/2+1/3-1/4+1/99-1/100的值。程序编码:函数s的功能是计算s=1-1/2+1/3-1/4+1/99-1/100的值function s() dim n as integer dim su as double su = 0 for n = 1 to 100 su = su + (-1) (n + 1) / n next n s = suend function运行情况:如图8图8函数s()的运行界面9.求所有的水仙花数。所谓水仙花数是指一个三位数,它的各位数字的立方和等于该数本身。例如:因为153=13+53+33,所以153是水仙花数。程序代码:函数sxh的功能是统计水仙花数,sxh 水仙花。function sxh for x=0 to 9 for y=0 to 9 for z=0 to 9if 100*x+10*y+z=x3+y3+z3 then sxh=sxh&” ”& 100*x+10*y+z end if next znext ynext xend function运行情况如图9 图9 函数sxh的运行界面10、让用户输入5个数字,然后按照大小顺序输出。 程序编码:function px()const n = 5dim a(n) as integerdim t, j, i as integera(1) = 25: a(2) = 8: a(3) = 9: a(4) = 20: a(5) = 6for i = 1 to n for j = i + 1 to n if a(i) a(j) then t = a(i) a(i) = a(j) a(j) = t end if next j next i for i = 1 to n px = a(1) & & a(2) & & a(3) & & a(4) & & a(5) next iend function运行情况如图10: 图10 函数px的运行界面11、编一程序,先将10位评委对10位参赛歌手的评分(10分制)存入一个二维实型数组score(i,j)中,(其中i代表歌手,j代表评委),对每一位歌手,分别去掉它的最高分和一个最低分,计算并输出其余8个 分数的平均值。程序编码:option base 1private sub js_click() dim pf(10) as single dim su, ma, mi, aver as single dim i as integer pf(1) = val(p1.text) pf(2) = val(p2.text) pf(3) = val(p3.text) pf(4) = val(p4.text) pf(5) = val(p5.text) pf(6) = val(p6.text) pf(7) = val(p7.text) pf(8) = val(p8.text) pf(9) = val(p9.text) pf(10) = val(p10.text) ma = pf(1) mi = pf(1) for i = 1 to 10 su = su + pf(i) if ma pf(i) then mi = pf(i) end if next i aver = (su - ma - mi) / 8 zgf.text = trim(str(ma) zdf.text = trim(str(mi)df.text = trim(str(aver)end subprivate sub qc_click() p1.text = p2.text = p3.text = p4.text = p5.text = p6.text = p7.text = p8.text = p9.text = p10.text = zgf.text = zdf.text = df.text = end subprivate sub tc_click() unload xsdfend sub运行情况如图11图11 函数js_click()的运行界面12、随机产生10个1100的正整数放入数组,显示产生的数,求最大值、最小值及平均值。程序编码:function px()const n = 5dim a(n) as integerdim t, j, i as integera(1) = 25: a(2) = 8: a(3) = 9: a(4) = 20: a(5) = 6for i = 1 to n for j = i + 1 to n if a(i) a(j) then t = a(i) a(i) = a(j) a(j) = t end if next j next i for i = 1 to n px = a(1) & & a(2) & & a(3) & & a(4) & & a(5) next iend function运行情况如图: 图12为函数px的运行界面13、度转度分秒。程序代码:option explicitconst pi as double = 3.14159265358979dzdfm-含义为度转度分秒,功能是将度转换为度分秒输出.function dzdfm(jd as double) as variant dim fh as integer dim d, f, m as variant fh = sgn(jd) jd = abs(jd) d = int(jd) f = int(jd - d) * 60) m = (jd - d) * 60 - f) * 60 dzdfm = (d + f / 100 + m / 10000) * fhend function运行情况如图13所示图13 dzdfm函数运行界面14、度分秒转度。程序代码:option explicitconst pi as double = 3.14159265358979dfmzd-含义为度分秒转度,功能是将度分秒转换为度输出.function dfmzd(dfm as double) as double dim fh as integer dim d as integer dim f as integer dim m as double fh = sgn(dfm) dfm = abs(dfm) d = int(dfm) f = int(dfm - d) * 100) m = (dfm - d) * 100 - f) * 100 dfmzd = (d + f / 60 + m / 3600) * fhend function运行情况如图14 图14 dfmzd函数运行界面15、支导线计算。程序代码:private function zdxjs(dh as range, gcj as range, bc as range, yzzb as range, optional zyj as integer = 0, optional jd as integer = 3) as variantdim js(-1 to 50, 1 to 8) as variant dim yzb(1 to 4) as variant dim dhi as variant dim gcji as variant dim bci as variant dim yzzbi as variant dim ah as double dim bcsum as variant dim gcjsum as double dim n as integer dim i as integer js(-1, 1) = 点号 js(-1, 2) = 观测角 + chr(10) + chr(13) + ( + + ) js(-1, 3) = 坐标方位角 + chr(10) + chr(13) + ( + + ) js(-1, 4) = 边长d + chr(10) + chr(13) + (m) js(-1, 5) = x + chr(10) + chr(13) + (m) js(-1, 6) = y + chr(10) + chr(13) + (m) js(-1, 7) = x + chr(10) + chr(13) + (m) js(-1, 8) = y + chr(10) + chr(13) + (m) js(0, 1) = 1 js(0, 2) = 2 js(0, 3) = 3 js(0, 4) = 4 js(0, 5) = 5 js(0, 6) = 6 js(0, 7) = 7 js(0, 8) = 8 i = 0 for each dhi in dh i = i + 1 js(i, 1) = dhi.value next dhi n = i i = 1 for each gcji in gcj i = i + 1 js(i, 2) = gcji.value next gcji i = 1 for each bci in bc i = i + 1 js(i, 4) = bci.value next bci i = 0 for each yzzbi in yzzb i = i + 1 yzb(i) = yzzbi.value next yzzbi js(1, 7) = yzb(1) js(1, 8) = yzb(2) js(2, 7) = yzb(3) js(2, 8) = yzb(4) js(1, 3) = zbfsfwj(js(1, 7), js(1, 8), js(2, 7), js(2, 8) for i = 2 to n - 1 ah = js(i - 1, 3) js(i, 3) = fwjts(ah, dfmzhd(js(i, 2), zyj)r next i for i = 2 to n - 1 js(i, 5) = round(js(i, 4) * cos(js(i, 3), jd) js(i, 6) = round(js(i, 4) * sin(js(i, 3), jd) next i for i = 3 to n js(i, 7) = js(i - 1, 7) + js(i - 1, 5) js(i, 8) = js(i - 1, 8) + js(i - 1, 6) next i for i = 2 to n - 1 js(i, 2) = dfmkg(js(i, 2) js(i, 3) = hdzdfmkg(js(i, 3) next i js(1, 3) = hdzdfmkg(js(1, 3) for i = 2 to 6 js(n, i) = next i js(1, 2) = for i = 4 to 6 js(1, i) = next i zdxjs = js end function运行情况如图15所示 图15 支导线函数运行界面16、复合导线计算。程序代码:private function dxjs(dh as range, gcj as range, bc as range, yzzb1 as range, yzzb2 as range, optional zyj as integer = 0, optional jd as integer = 3) as variantdim js(-1 to 50, 1 to 11) as variant dim yzzbsz1(1 to 4) as variant dim yzzbsz2(1 to 4) as variant dim dhi as variant dim gcji as variant dim bci as variant dim yzzb1i as variant dim yzzb2i as variant dim gcjsum as variant dim vbsum as variant dim vxsum as double dim vysum as double dim fb as double dim yzfwj2 as double dim fx as integer dim fy as integer dim n as integer dim i as integer js(-1, 1) = 点号 js(-1, 2) = 观测角 + chr(10) + chr(13) + ( + + ) js(-1, 3) = 改正角 + chr(10) + chr(13) + ( + + ) js(-1, 4) = 坐标方位角 + chr(10) + chr(13) + ( + + ) js(-1, 5) = 边长d + chr(10) + chr(13) + (m) js(-1, 6) = x + chr(10) + chr(13) + (m) js(-1, 7) = vx + chr(10) + chr(13) + (mm) js(-1, 8) = y + chr(10) + chr(13) + (m) js(-1, 9) = vy + chr(10) + chr(13) + (mm) js(-1, 10) = x + chr(10) + chr(13) + (m) js(-1, 11) = y + chr(10) + chr(13) + (m) js(0, 1) = 1 js(0, 2) = 2 js(0, 3) = 3 js(0, 4) = 4 js(0, 5) = 5 js(0, 6) = 6 js(0, 7) = 7 js(0, 8) = 8 js(0, 9) = 9 js(0, 10) = 10 js(0, 11) = 11 i = 0 for each dhi in dh i = i + 1 js(i, 1) = dhi.value next dhi n = i i = 1 for each gcji in gcj i = i + 1 js(i, 2) = gcji.value next gcji i = 1 for each bci in bc i = i + 1 js(i, 5) = bci.value next bci i = 0 for each yzzb1i in yzzb1 i = i + 1 yzzbsz1(i) = yzzb1i.value next yzzb1izzb2i in yzzb2 i = i + 1 yzzbsz2(i) = yzzb2i.value next yzzb2i js(1, 10) = yzzbsz1(1) js(1, 11) = yzzbsz1(2) js(2, 10) = yzzbsz1(3) js(2, 11) = yzzbsz1(4) js(n - 1, 10) = yzzbsz2(1) js(n - 1, 11) = yzzbsz2(2) js(n, 10) = yzzbsz2(3) js(n, 11) = yzzbsz2(4) js(1, 4) = zbfsfwj(yzzbsz1(1), yzzbsz1(2), yzzbsz1(3), yzzbsz1(4) js(n - 1, 4) = zbfsfwj(yzzbsz2(1), yzzbsz2(2), yzzbsz2(3), yzzbsz2(4)。 yzfwj2 = js(n - 1, 4) gcjsum = 0 for i = 2 to n - 1 ah = js(i - 1, 4) gcjsum = gcjsum + dfmzjd(js(i, 2) js(i, 4) = fwjts(ah, dfmzhd(js(i, 2), zyj) next i fb = (js(n - 1, 4) - yzfwj2) * 180 / pi * 3600 fb = sgn(fb) * round(abs(fb), 0) js(n - 1, 4) = yzfwj2 if zyj = 0 then fb = -fb end if js(n + 1, 3) = fb vbsum = 0 for i = 2 to n - 2 js(i, 3) = sgn(fb) * int(abs(fb) / (n - 2) vbsum = vbsum + js(i, 3) next ijs(n - 1, 3) = fb - vbsum for i = 2 to n - 1 ah = js(i - 1, 4) js(i, 4) = fwjts(ah, dfmzhd(js(i, 2) + js(i, 3) / (180 / pi * 3600), zyj) next vxsum = 0 vysum = 0 bcsum = 0 for i = 2 to n - 2 js(i, 6) = round(js(i, 5) * cos(js(i, 4), jd) vxsum = vxsum + js(i, 6) js(i, 8) = round(js(i, 5) * sin(js(i, 4), jd) vysum = vysum + js(i, 8) bcsum = bcsum + js(i, 5) next js(n + 1, 6) = vxsum js(n + 1, 8) = vysum fx = int(vxsum - (js(n - 1, 10) - js(2, 10) * 1000) fy = int(vysum - (js(n - 1, 11) - js(2, 11) * 1000) vxsum = 0 vysum = 0 for i = 2 to n - 3 js(i, 7) = -1 * sgn(fx) * int(abs(fx) * js(i, 5) / bcsum) vxsum = vxsum + js(i, 7) js(i, 9) = -1 * sgn(fy) * int(abs(fy) * js(i, 5) / bcsum) vysum = vysum + js(i, 9) next i js(n - 2, 7) = -fx - vxsum js(n - 2, 9) = -fy - vysum for i = 3 to n - 2 js(i, 10) = js(i - 1, 10) + js(i - 1, 6) + js(i - 1, 7) / 1000 js(i, 11) = js(i - 1, 11) + js(i - 1, 8) + js(i - 1, 9) / 1000 next i js(n + 1, 1) = js(n + 1, 5) = bcsum js(n + 1, 7) = -fx js(n + 1, 9) = -fy js(n + 1, 2) = dzdfmkg(gcjsum) js(n + 1, 3) = fb for i = 2 to 9 js(n, i) = next i for i = 5 to 9 js(n - 1, i) = next i for i = 2 to 9 if i 4 then js(1, i) = end if next i js(n + 1, 4) = js(n + 1, 10) = js(n + 1, 11) = js(n + 2, 1) = 辅肋 + chr(10) + 计算 js(n + 2, 2) = fb= + str$(-1 * fb) + + space$(5) + fb容 + str$(round(12 * sqr(n - 1), 0) + + space(5) + fx= + str$(fx) + mm + space$(5) + fy= + str$(fy) + mm + space(5) + chr(10) + fd= + str$(round(sqr(fx 2 + fy 2), 1) _ + mm + space(5) + k=1/ + str$(int(bcsum / sqr(fx 2 + fy 2) * 1000) for i = 2 to n - 1 js(i, 2) = dfmkg(js(i, 2) js(i, 4) = hdzdfmkg(js(i, 4) next i js(1, 4) = hdzdfmkg(js(1, 4) dxjs = js end function运行情况如图16所示 图 16 附合导线函数运行界面17、取位函数。程序编码:private sub cmd_qw_click() dim numysz, numqwrsz as double dim qwz as integer dim n, fh as integer numysz = val(txt_ysz.text) fh = sgn(numysz) if numysz 0 then numysz = abs(numysz) end if n = val(txt_qws) if (int(numysz * 10 n) + 0.6) * 10 = int(numysz * 10 (n + 1) then numqwrsz = (int(numysz * 10 n) / 10 n end if numqwrsz = numqwrsz * fh txt_qwrsz.text = trim(str(numqwrsz)end subprivate sub cmd_tc_click() unload szqwend sub运行情况如图: 图17 取位函数的运行界面第三部分 总 结实 习 心 得通过一周短暂的vb实习,使我了解到了更多的有关vb方面的知识。发现自己还有很多的不足,还存在很多问题。以前我们只重视的是理论,不怎么样实践,对于书本上的知识,通过这次的实习,使我明白了实践才是硬道理。根据这次的实习,我知道了vb的集成开发环境,不仅有窗体窗口,还有属性窗口,工程资源管理器窗口,代码窗口,立即窗口,窗体布局窗口,工具箱窗口;我知道了界面的设计并可以熟练的应用,而且还了解了各个控件的意思:比如说label,text,command,picdure,option.在学习它们时最主要的是了解控件的属性,要记住在编写代码时我会用print,click,dbclick,load,unload,activate,deactivate,方法,inpubox函数等等。数据是程序的组成部分,在vb中,为解决各类实际问题,要采用不同的数据类型。数据类型不同,所代表的的数据范围,精度,存储空间也不同。vb的数据类型基本包括整形数(integer)长整型数(long)浮点型(single.double)字符串(string).vb支持的循环语句有,要记住他们不能分离,有一个就有另一个。数组必须先申明在使用,每一个控件是一个独立的对象,多个相同类型的控件可以组成一个控件数组,它们共享一个名称和事件过程,使用索引值来区分每个元素。函数过程又返回值。全局级过程是在一个窗体模块中public来定义的,其它模块可通过“窗体模块名,过程名”引用,在标准模块中定义全局
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 妇科超声考试题及答案
- 压疮管理规范理论考核试题及答案
- 2025年全国保密知识竞赛题库及答案
- 临床护理技术操作常见并发症理论考核试题附答案
- 2025年护士抢救工作试题及答案
- 2025年施工员之装修施工基础知识考试题库及参考答案(典型题)
- 2025年A特种设备相关管理考试题库及答案
- (2025)红十字初级急救员证考试题及答案
- 2025年全国企业员工全面质量管理知识竞赛试题及答案
- 化验室安全知识培训简报课件
- 电池UL1642安全标准解读
- 2025奢侈品皮具买卖合同
- 2025室内设计私人定制合同全面详细版
- 与欧美网红合作合同范本
- 2025年广东省中考数学试卷(含解析)
- 母猪的分娩和护理技术
- 冷库维保合同(2025版)
- 2025年北京市三力考试试题及答案
- 2025年智能家居软装搭配智能家居行业市场前景展望报告
- 互操作性标准-第1篇-洞察及研究
- 《水上客运重大事故隐患判定指南(暂行)》解读与培训
评论
0/150
提交评论