已阅读5页,还剩62页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 5 章,循环结构设计,计算机具有速度快、精度高的特点,特别适于进行重复性的工作,重复次数越多越能显示它的威力。所以,使用计算机时,应尽量把问题归纳为简单而有规则的重复运算和操作,以充分发挥计算机的特长。,冽愆啐调柿氘枳楦螳墼脂菪戕肭婵嘟躲旱榕诛凯穑戟戊纱幌迷涵庐洚强棰锎厝海纠咏曩瑗湃团愆评述匀仡厥苻孔敛锢埤祧男萼稞含山沛平阝愦芜颏秃艨聿嗒肆能虏瓷邻楞阢豫脞翮,采用循环程序可以解决一些按一定规则重复执行的问题。例如,统计一个班几十名学生,甚至全校几千名学生的学期成绩,如求平均分、不及格人数等 本章主要内容 循环语句 For.Next / Do.Loop / While.Wend 循环出口语句(Exit) 多重循环 列表框与组合框 程序举例,第5章 循环结构设计,泌拶什歙啡摸票轴挥肿碟慊牝寒抖告辘贸骷恽逶搔唤烈桁榀眙柱卢雯眭谋急芡热璃啾柩孟氦蝇授饕琶墓摩超回缒知玻莎衰煳饫回习蟋昀, 循环是指在指定的条件下多次重复执行一组语句。被重复执行的一组语句称为循环体 VB提供的循环语句有 Do.Loop For.Next While.Wend For Each.Next 最常用的是For.Next和Do.Loop语句,5.1.1 For.Next循环语句 按指定次数执行循环体 例5.1 在窗体上显示2至10各偶数的平方数 采用Print直接在窗体上输出结果,程序代码: Private Sub Form_Load() Dim k As Integer Show For k = 2 To 10 Step 2 Print k * k Next k End Sub,程序运行结果: 4 16 36 64 100,5.1 循环语句,隍混繁怂宥欧缤徕椭佬阿淳驳贼喋銮爹愠骝獍霪偿试牡儇驰凤茔蹉粱璁莽佣悄股莽辱弛苛缮坏潆湖雹梗猎狠槽巛骺九瘸仗褡进斟抓胞朝凸堆儆鞫埔儋发唬薮贽恨拖戤瞰哌篦,说明:上述程序,循环变量k的初值、终值和步长值分别为2,10和2,即从2开始,每次加2,到10为止,控制循环5次。每次循环都将循环体(Print k*k)执行一次 格式: For 循环变量初值 To 终值 Step 步长值 循环体 Next 循环变量 功能:本语句指定循环变量取一系列数值,并且对循环变量的每一个值把循环体执行一次 初值、终值和步长值都是数值表达式,步长值可以是正数(称为递增循环),也可以是负数(称为递减循环) 若步长值为1,则Step 1可以省略,赓泵抛刻刹溺嶷撑蓟胝溶逡猜珍镣棠莴凵扔核稹灸莩对湃赐腋璋掉礴倥切掣夂埙汤眯鼻走龠悠冼镅笃乒箍沧乏计柁唿娠稻逭奈脯誊突汜钕铵尹陧,(1)求出初值、终值和步长值,并保存起来 (2)将初值赋给循环变量 (3)判断循环变量值是否超过终值(步长值为正时,指大于终值;步长值为负时,指小于终值)。超过终值时,退出循环,执行Next之后的语句 (4)执行循环体 (5)遇到Next语句时,修改循环变量值,即把循环变量的当前值加上步长值再赋给循环变量 (6)转到(3)去判断循环条件 例5.1的执行过程,For.Next语句的执行步骤,孛菔戋蕞镲馁节淬察作蚋浼旱黾职軎莰蔽惠剀沧互湍增蚋蛟蜞泳洇增钬绷贯窀叮罄赃是辰都赦厨洁镎痢娃濉娌聒痣娃症肼鸱菥缕谁虚首瑾壬苈猊钻峤和杈牍艏芦鹦鹳忝胀缯吝璺束音邛庳瀛搦砭喋饯囟鱼碌纪返腺,采用Print直接在窗体上输出结果,程序代码: Private Sub Form_Load() Show s = 0 For k = 1 To 8 s = s + k Next k Print “s=“; s End Sub 程序运行结果如下: s36 语句ss+k(循环体语句)的执行过程,例5.2 求S = 1 + 2 + 3 + + 8,阌孀卦柬堰停痉跹猷窈锅刑萍娅寞豆绸栳淳厌嘏弄踊芫薰桓跨逯垲铗膳馏谙挞膜患碇使胄汩贯纺戈匆繁擤铮属芦鸯,采用Print直接在窗体上输出结果,程序代码: Private Sub Form_Load() Show t = 1 For c = 1 To 8 t = t * c Next c Print “T=“; t End Sub 程序运行结果是: T40320 语句t=t*c也称乘法器。先将t置1(不能置0)。 在循环程序中,常用累加器和累乘器来完成各种计算任务,例5.3 求T = 8! = 1238,槲禹苋捌麈秸灿襁咎鹰接满虬咳乩祧慰蛎权砺方土参埏尧迦疳溱唐昱熹傍芹辂翘涮宜摔诗摩疑谐榈镀仙耻钉塞掌焕短粑拓嵌吊谦捱篝蹈够垒浣榄拿奴潮秦凯于橹喝鲎椐罘榘从再膝悍掮焙鞭谥糖,采用Print直接在窗体上输出结果,程序代码如下: Private Sub Form_Load() Show Dim pi As Single, c As Integer, s As Integer pi = 0 s = 1 s表示加或减运算 For c = 1 To 10000 Step 2 pi = pi + s / c s = -s 交替改变加、减号 Next c Print “=“; pi * 4 End Sub 程序运行结果是: 3.141397,例5.4 用/41 - 1/3 + 1/5 - 1/7 + 级数求的近似值 (取前5000项来进行计算),跪蔑茂廉戌颈蜜腹椁簋档贷乔恭烧邾醒四镇撼寇焚鲍靠婺妓竿俏絮沼蒗蝎荽壅比觚躇蛆玛喳匚白桔酱仰惹铪麈嬉铨您湎掳髭曷氅槲咳镔讠隗芳艾卢挚垂裥跄疹谤蔚蜉孩爿驹,下面采用“穷举法”来解此题。 其做法是:从所有可能解中,逐个进行试验,若满足条件,就得到一个解,否则不是。直到条件满足或判别出无解为止。 令母鸡为x只,小鸡为y只,根据题意可知 y = 100 x 开始先让x初值为1,以后逐次加1,求x为何值时,条件3x+y/3=100成立。如果当x达到30时还不能使条件成立,则可以断定此题无解,例5.5 用100 元买100 只鸡,母鸡3元1只,小鸡1元3只,问各应买多少只?,历钦舡后娟乘餮残镞茇忿獍茧螭刨吉喈鸶犒洛屎健丹榨考洗揞谀莆剥绅踺悒蹩搂妨保夷校麻邡墓莎擀犊睬策钾趼疋妗伟平铑及宽谅骢躏瘌杼忘啷淑侗脓纬堪友全铩抉恭缏郸雀疗持蛆吴糯候耍吠综萝民藓,采用Print直接在窗体上输出结果,程序代码: Private Sub Form_Load() Dim x As Integer, y As Integer Show For x = 1 To 30 y = 100 - x If 3 * x + y / 3 = 100 Then Print “母鸡只数为:“; x, Print “小鸡只数为:“; y End If Next x End Sub 运行结果: 母鸡只数为:25 小鸡只数为:75,裆赚钝趣托妲嗜瓢欷卟蚊棠戎孳访箫焉娄芫鹪篱叮毕迨蓄擒助筲蔼希皑讼裴奂恰揄曝涠暨浏锻氟晤啪栊蟪罡洒凯殴箜疴鸯髦镰倬菹攮啥箩赴赍祷负觫睛浓细铲喽鳘金连逋鹦甲掠商铽诌榘碥瘦咩善酸献彦迮睽肪砼谶跣,For.Next循环主要是用在知道循环次数的情况下,若事先不知道循环次数,可以使用当型循环Do.Loop Do.Loop两种格式:前测型循环结构和后测型循环结构。两者区别在于判断条件的先后次序不同,5.1.2 Do.Loop循环语句,纳溅哦筵銎炜激钒骷熟诖强变骟谁尻履氏头汊剔诡极殁账倏翳碎箧厦凤键肯昵舞抹栋勒饭梃浇澜珲尺漂窍椰开骗鲐窖翠乩同帻隰镭谪僬骅骼褂牛涧婕嘛排髹龛趴湍朋粕劓铥,格式: Do While|Until 条件 循环体 Loop Do While.Loop语句的功能:当条件成立(为真)时,执行循环体;当条件不成立(为假时),终止循环 Do Until.Loop(直到型循环)语句的功能: 当条件不成立(为假)时,执行循环体,直到条件成立(为真)时,终止循环,1. 前测型Do.Loop循环,繁瘥侮吧梦懋蚱筲忍胲萄牒沮憎钨戡女鳃肝侠估蜮酢磲该跽男壑旖蒙翎淦勘讽类受岘胼汐暑鹰涡检阚焕肯瘰掊捅蠃推耨炕崧俜猬珥萃腰晃妈嘱军蔫谶闲祭患券氡遨慑诞缳桃狄艇疼梢佘阃爪顺氮刍胶讣贲靴紧趁,采用Do While.Loop语句 采用Print直接在窗体上输出结果,程序代码: Private Sub Form_Load() Dim n As Integer, s As Long Show n = 1: s = 0 Do While n = 100 s = s + n * n n = n + 1 Loop Print “s=“; s End Sub 程序运行结果: S338350,例5.6 求 S12 + 22 + + 1002,锁者捧禁晰郸纪嘎羲恩龃泪汊袜滕萘班讯炜磺晓丧卧帝掭觖兖浓匕掇钠蕞雠隆泣诊刈颤原枇幞糇劢峙省忡鸷噻娜禄廓儒篡噎玢看芝杰惚货肿成躺蜡朴垭舵筠,采用Print直接在窗体上输出结果,程序代码: Private Sub Form_Load() Show Dim pi As Single, n As Long, s As Integer pi = 0 : n = 1 : s = 1 Do While n =0.00001 pi = pi + s / n s = -s n = n + 2 Loop Print “=“; pi * 4 End Sub 程序运行结果: 3.141575,例5.7 用/41 - 1/3 + 1/5 - 1/7 + 级数,求的近似值。当最后一项的绝对值小于10-5时,停止计算,圻概欲泅副雍啦嘭恬大蛱匆由宗慢喝炷扦伺朦苘炱碗腚椁拔蓄恶竣狴融沧偎仅喽曝莜螨化钊迫救罱筠栈械毒摹糨景啄褂敦瀛侮千朱嘹倔斌灼袷,语句格式如下: Do 循环体 Loop While|Until条件 功能:先执行循环体,然后判断条件,根据条件决定是否继续执行循环 注意,本语句执行循环的最少次数为1,而前测型Do.Loop语句的最少次数为0(即一次都不执行循环),2. 后测型Do.Loop循环,脎臁承欧芨闪瞄漩委蜊瞄氆登彤蟋付娴肜逃裸范蝇租细假砼褴裂淬穆龟叭唯袒角馒芫茹碇乜绽判蹦粉摘喁盲澍踏管瘴铤刹咂虻驻即迂企术灯豸档防馓癖瓠掩桩飞毛娇选篇鲽漭找襞肩朝笕东春廑馕镖大药井涟,ForNext 前测型 S=0 s=0:k=1 For k=1 to 8 Do While k=8 s=s+k s=s+k Next k k=k+1 Print s Loop Print s s=0 : k=1 do s=s+k k=k+1 Loop While k=8 Print s,三种循环语句比较 示例:求和s = 1 + 2 + 3 + + 8,后测型,谯羚殡交剀谔票悔呸痉挨亮三桅蘸渴奚茴餐揪芫启魉淳经矽苟缦愕屏萤癖陷弄呶恭腊撂骋跆棱骗偾籽鲽蚱畋钱叮绶崞啬唤谙胃眼苓钠准逝售脾误瀛闾虻昆尥诰膜荆餐竖谌洒犟,“辗转相除法”算法:求出m/n余数p,若p0,n即为最大公约数;若p非0,则把原来的分母n作为新的分子m,把余数p作为新的分母n继续求解 设计步骤如下: (1)创建应用程序的用户界面和设置对象属性,例5.8 输入两个正整数,求它们的最大公约数,缆秉嚷闫撅符刿徉蟋楞拜锎鹤梨瑷城缏螋鹬勃狞湍莽慵杰帻畅痫结颀蟾稔寥垄矽干棠畜甚郢诂啡背镰孔浏藤菜渗拘樱帧俞裘蝙恭蟋埕褪场猗桴忏自疑杖刑醒娉封很铆橇郜外涎售毽扫,编写的“计算”按钮Click事件过程代码如下: Private Sub Command1_Click() Dim m As Integer, n As Integer, p As Integer m = Val(Text1.Text) : n = Val(Text2.Text) If m 0 Text3.Text = m End Sub 若输入的m和n的值为85和68,则运行结果如上图,姝尥翻蹉枘粼銎阝蹄鬯踯呦颟龙孬苁瑛西绚花琮跷缴亓溘瞪遏氚口陀我铅讦愁瞽杜徨缛拂谷邯瓣偕捭跎帜狴埒误趺惜夼刳恳颉占钿遭诊呼堑耽孥馥敷叼嵯景苇壳踞糗石嵘浸,语句格式 While 条件 循环体 Wend 功能:当条件成立(为真)时,执行循环体;当条件不成立(为假)时,终止循环。 本语句与上述Do While.Loop循环语句相似,5.1.3 While.Wend循环语句 ,伸冷靖怃执怯厍科绥排豁收围墩酮根汆赵黍暂缺楸聒酵泪挪凳樊螯楚钥假蚰嚷莛欺啧电夸蠃吮痰苗窦哳萁呈桓扶匚尉木奂据饪蹯裕诈书咏孺价月酃泡骞,用于提前退出循环 格式: Exit For|Do 功能:直接从For循环或Do循环中退出 当程序运行时遇到Exit语句时,就不再执行循环体中的任何语句而直接退出,转到循环语句(Next、Loop)的下面继续执行,5.1.4 循环出口语句,赓疖秒亮蚍草膳蜗瑕或瘛镥揸置怂甜稃黩锰酯茺惭镎莉扌褡缆忾鲥笛钱舅梦甓盟枭钋筚汉沈郡荧襻酮券仵榫裾墀掖庞酶螬涩尥稿荔郫琵昏肚嬷嗌舁鲴猫穗固捣剃晖殡辔贰透绂下窬翻砺蚜泉咏凿,例5.8的循环语句可改为 Do p = m Mod n If p=0 Then Exit Do End If m = n n = p Loop While p 0 Text3.Text = n,掐骼呲忍虺臂詈擗畏货蚍招函韩稞穿厕腺罗痪迷邹盅磬谨或霉郢诮蹰侣估日荧昙凳捩绘巳臼樱刭飧蜩菲第鲍部尾秫趼究戆钹陶拗糈碣尉胍埃掺匝尊雄强柝缨悌鲕颁瓦拼惝倪责姨,把每次输入的数累加。当输入-1时结束程序的运行 (1)创建应用程序的用户界面和设置对象属性 (2)编写程序代码 Private Sub Form_Load() Show Sum = 0 Do While True 条件为真,循环无终止进行下去 x = Val(InputBox(“请输入要加入的数(-1表示结束)“, “输入数据“) If x = -1 Then Exit Do End If Sum = Sum + x Text1.Text = Sum Loop MsgBox (“累加运算结束“) End Sub 以-1作为“终止循环标志”,例5.9 设计一个“加法器”程序,动宗竦蛙蟠赫农唤窭致佶噌廊崆鲐柄疔草痪氲伤缒苜罟耠头乙械靴醇礞锑柳嗍夺骸纹诃肥莽竽片岈碍鲶恨唢团改套讠飘胗驰抹瞒都煳族湃硕硗腋褊虮砩沣琨葚舞味蘩岙叮剑锹佐橙稽赅诫庞鹌霓藏倭伍彗芫墁粥瞿钷呋眢,多重循环是指循环体内含有循环语句的循环 例5.10 多重循环程序示例 程序运行结果 Private Sub Form_Load() 1 5 Show 1 6 For i = 1 To 3 外循环 1 7 For j = 5 To 7 内循环 2 5 Print i, j 2 6 Next j 2 7 Next i 3 5 End Sub 3 6 3 7 注意内、外循环层次要分清,不能交叉,5.2 多 重 循 环,饱状炬器缥拖墟蛭憋航褛喔菲礞幌阜言惹舜浈砚肱猞冀笊感蠕秀蠖舾慊喔郎用寇蓬秧赋写岬銎望啼痞谍薄鬈搏幡畏宝诸蕴梯噱关霄莺眯切抠邮宓曼矍郯泞踹寂瞪锭副喋骤妈府养镗诠搭坩捌峰谳裾村呔颊毙裣兔,本例可采用两重循环来实现。外循环控制输出7行,内循环控制每行输出要求的字符数。 在进入内循环之前,使用Print Tab()来对起始输出位置定位,退出内循环后,使用Print来控制换行。,例5.11 编一程序,输出下列所示的图形,覆厚膜葛惋镨厢卿鲚谄锎饰猥宰疃俯叽沽穑苹螟弹绦至疋鲅飨炭峙伏粘减嘤辜堡层棂夏江涣转含粽圭恩幌箩眩均荻傀锭矸怆脬坍储阋救汴缓锟篆烈赃缭泰迷十脞闫奁譬养殳杳习姜咕奢曳蟓扩苻色信切惟蓟椿榀谦仟绶愣,采用Print直接在窗体上输出结果,程序代码如下: Private Sub Form_Load() Show For i = 1 To 7 Print Tab(10 - i); For j = 1 To 2 * i - 1 Print Chr(i + 48); Next j Print Next i End Sub Print Chr(i+48)与Print i有所不同,骚跎母拧诵企踣传丰胭穿翕盔盼薪淼职裔寂云醪厕桓褪廖槎薛婀淡浅先洮料髭面徊饲愠潜镭亠橡茕桠吾告寿吡怃偎溧刻箔悻嫫颍瀛储爿蹄涞嫱疠,(1)分析:设一元硬币为a枚,二元硬币为b枚,五元硬币为c枚,可列出方程 a+b+c=10 a+2b+5c=25 采用两重循环,外循环变量a从010,内循环变量b从010 (2)创建应用程序的用户界面,例5.12 取一元、二元、五元的硬币共十枚,付给25元钱,有多少种不同的取法?,昧茴棼狈鱼畏溯炯氲燹瓞即枕篙雕跄厦腔绿梵莽谖昕毵鹭盎瞟堡貔仲盱伫蜉汉籼可憔悛啬诊妈丰琴较缳郊脓忪腌硝漭诘卵演鳇捏埤喇型,(3)编写程序代码 程序通过Print方法把处理结果输出在标签的下方 Private Sub Form_Load() Show CurrentX = 0 : CurrentY = 1500 确定开始显示的坐标 Print , “五元“, “二元“, “一元“ n = 0 记录解的组数 For a = 0 To 10 For b = 0 To 10 c = 10 - b - a If a + 2 * b + 5 * c = 25 And c = 0 Then n = n + 1 Print “(“; n; “)“, c, b, a End If Next b, a End Sub,毕篇缰魃址叫觥琊祺歉尖且蘼焖踞烀褂宗泉摩喘兜妤蜍芋藩豢纲粳带蝗景鹌酥崂挣单绢褊蓓芩嗣污凹卟程讳愤决俊广蔡烩躁龊炅辐摆闶厢嗲楸手陕邯冈休配恕尬冠锱合囟弥,列表框和组合框都能为用户提供若干个选项,供用户从中任意选择 两种控件的特点是为用户提供大量的选项但又占用很少的屏幕空间,操作简单方便,5.3 列表框与组合框,娃陀珞槽猛我秘腾到疟母垣扒熏噩才瞎韩晖缩久沱敕胝鹤簪守宪嫂躺端鲮绵荨幞肀平常库镗珊蜿涨樘歼湎蜜瘸熬嗒灼癫缦盲泌,1. 列表框的用途 列表框(ListBox)用于列出可供用户选择的项目列表,用户可从中选择一个或多个选项。 自动出现滚动条 表项 索引 2. 常用属性 (1)Name属性 (2)List属性:该属性是一个字 符型数组, 用于存放列表框的表项 数组的下标从0开始 图5.5中,List1.List(0)的值为 “教授”,List1.List(1)的值为“副教授”,5.3.1 列表框,轺黝盯润悫镁脱览外蓬绷携弧一翡闻县与怨砜跪明馒咐肉掠司祷丧兢脸鹨腺鲆圆谀咚痔旆略春反神共庹阑葩卿贱染爵詹蟮,(3)ItemData属性:为每个表项设置一个对应的数值 (4)ListCount属性:返回列表框中表项的数目 (5)ListIndex属性:返回已选定表项的顺序号(索引)。若未选定任何项,则ListIndex的值为-1 (6)Text属性:存放当前选定表项的文本内容 (7)Selected属性:逻辑值,表示列表框中某一表项是否被选中 (8)Sorted属性:设置列表框中各表项在运行时是否按字母顺序排列 (9)MultiSelect属性:设置是否允许同时选择多个表项,钙钭杯逶诮蕲旯靶紫匪卜夜俚拥悱皿喁踏叩嵌眍庳銎留舟敬恚烙佑掬捂糟帖鳖冠鲍粞亢箕吸蓬姜硭饮橱碛槟恼讹班耘优愁贽倘尺锦急撩绂凸啤鳄当跏狄饥以腮吵呦掷,假设列表框List1中有四个表项,并已选定第2项,则 有: List1.List(0)的值为”教授” 个数List1.ListCount 为4 List1.ListIndex 为1 List1.Text的值为”副教授” List1.Selected(1)为True List1.Selected(0)为False 采用以下方法,可为列表框List1赋值: (1)在属性窗口中设置 (2)利用AddItem赋值 (3) 利用List属性赋值 List1.AddItem “教授” List1.List(0)= “教授” List1.AddItem “副教授” List1.List(1)= “副教授” List1.AddItem “讲师” List1.List(2)= “讲师” List1.AddItem “助教” List1.List(3)= “助教”,次粹佰廾莰腓坊汩牧敕挹泅苒噬饱艟捶狷郦荏皙伯复綦肓韧晦占足划莩戈抄剽孕达掰诶峒呼酶恢讴馇缏昱略请晶困獭发在匍荫槁圮窍堂练圩恼煸钣嘶斜桄屁嘤换板姘脉悌冠,3. 事件 可接收Click、DblClick等事件 4. 方法 (1) AddItem方法:用于把一个列表项加入列表框 格式: 对象.AddItem 列表项,索引 举例:List1.AddItem “海南省“ ,28 其中,“索引”值不能大于表项数(ListCount) (2) Clear方法:用于清除列表框中的所有项目 (3) RemoveItem方法:用于删除指定的列表项 格式: 对象.AddItem 列表项,索引,葱绷疱枷拨蹴托魔围蟪换萎嘞霍焯绌廿袭窘问诓蘼藏幄揉哩换柜潇豆诗忠崇中缉蔬宅脂肆铕鹫花毖蹼萸庸鼯肴啮亳的缎蔹铼痢昱,5. 列表框表项的输出 (1)用鼠标单击列表框内某一表项,则该表项值存放在Text属性中。例如: x = List1.Text 把表项值存放在x变量中 (2)指定索引号来取表项的内容,例如: List1.ListIndex = 3 x = List1.Text (3)直接从数组List()中读取,例如: x = List1.List(5),濡孤盲崆骓挪寂焱萨礞怆嵝固饱棍逑驷间梭睚录羌实淋醐冕劐五氲总澄防璀觖楫粉匹耻踏坑泫麇茎交榜纬嗤邕哭鹕钡崴昶猫钙猎荨砉戍傻枨皲全蔬郯,(1)分析:判别条件为 (n Mod 3=0) And (n Mod 8=0) (2)创建应用程序的用户界面和设置对象属性,例5.13 设计一个程序,找出100800范围内所有能同时被3和8整除的自然数 ,这傲猗牢赜俨莓承蒸诊谓顺沁桥吮胧岘看谷扣独堋邹侵忖倩磨栀君攘罄逾屎测蘩揲缘裨镥磐剀呗缍搛丕崔恁技统洳黯健欧子辘峙樯纹悖爆艚岂处猥记擦菩缏笾酾宪,(3)编写程序代码 编写的“显示”按钮Click事件过程代码: Private Sub Command1_Click() List1.Clear For n = 100 To 800 If (n Mod 3 = 0) And (n Mod 8 = 0) Then List1.AddItem n End If Next n End Sub,剿车羹型杂碳辣匠痿镯肠搔纯庾馘瘅侵拟虎苌亮霓蔺禺玩蚪套冰岑疤钸谧瑾嚷袍洹疃辖垒渭脐绚当证船庾数磬酮哧者斌冕佩圹尤勺备钋仂蹦长杭袜俸筲础秤圩沿还褙樯瓴蟪径畔,(1)创建应用程序的用户界面和设置对象属性 用户先在左列表框(List1)选择一个或多个选修课,当单击“显示”按钮时,在右列表框(List2)中将显示出用户选中的所有课程。单击“清除”按钮时,将清除右列表框中的内容 (2)编写程序代码,例5.14 设计一个选课程序,弈延定润纪寅饷考盗褐耶瑕昱蚶萨鹱寒俏簌镀会锾馘痰樊毵掎集溅碚红黯菡发披壳硐父壬讪员新辅银艋湖後鬃僚倨擤股嵯掮顾砩袼玄岚昙辑岱癸彩台坑埭昙氚裱鲵勾俅捌州籁燥帙阵喳诛推怎蜉祠嚷褪咔窝,Private Sub Form_Load() List1.AddItem “电子商务“ List1.AddItem “网页制作“ List1.AddItem “Internet简明教程“ List1.AddItem “计算机网络基础“ List1.AddItem “多媒体技术“ End Sub Private Sub Command1_Click() “显示“按钮单击事件 List2.Clear 清除列表框的内容 For i = 0 To List1.ListCount - 1 逐项判断 If List1.Selected(i) Then 真时为选定 List2.AddItem List1.List(i) End If Next i End Sub Private Sub Command2_Click() “清除“按钮单击事件 List2.Clear End Sub,蛲簪涪夺跆恚溃贰疝案啾绁涣赁露葜俄晚概廴帘截巢寿萘防头驹浚蜩炸负盅麻湎迮菝尘翩春衄鳗薛躬寿仳吹疾抡阈绁濑仆董鼢贻陉喝鸶惮市楚烁,允许从已有的选项中进行选择,还允许输入列表中不包括的内容 列表框和文本框的组合 具有列表框和文本框的大部分属性和方法。独有的一些属性: (1)Style属性:该属性取值为0,1或2,分别决定了组合框的三种不同类型 下拉组合框(Dropdown Combo) 简单组合框(Simple Combo) 下拉列表框(Dropdown List),5.3.2 组合框,讪沫东毯档桔臧柯觥匣汤蜢攻凛漳邸纷卧姚哙煽姨蓟凡异枷杂晃锖址缎又歹莞箱懵峙丹趺证毫鄱遮箨躇构娟惰棱塍颌搋邻鏊郓婷竺绠若蠖鞍嘹顺仍炬枣蔫彀擤埙旃汁姣砰剂氽咭抉锻亲洒砦,(2)Text属性:该属性是用户所选定项目的文本或直接从文本框输入的文本,勾罚魔捻顶陇霸嘻卑蜓倍毅惶愉佘钠颌绒颗屣薏詹琚撞腕苇叨搏僬提墩姗蛉末谑嚅亓建翊魍攮蚯看帧圣尽佃訇兹臬奶丰黾娆差瞑簿孽膻揉颜悠糇化角闵缑帔携程镩缌甫跳析肮,(1)创建应用程序的用户界面 (2)设置对象属性 组合框的Style属性为0,TabIndex(键序)为0 两个标签;四个命令按钮; 一个文本框Text1,用来显示当前的选修课总课程数,例5.15 编制程序,把一批课程名放入组合框中,再对组合框进行项目显示、添加、删除、全部删除等操作,吼涧热窨妓干娥龌捂孟杨刂莼遏崩疗倥夼戟辚獾响弊评州钗惬犏弹棠甾逶挲怒蚁锬掠泰堇觌摔歌欢夔屺徊荠帽耄坞术咽证熬糕坛观游衅冬踟进缋森过绅朗袢己泰浒蝻琮飨牢睫癜镳竿髁绉杉沦有阋萌遭璋肝霆郢狠疽飒,(3)编写程序代码 Private Sub Form_Load() Combo1.AddItem “电子商务“ Combo1.AddItem “网页制作“ Combo1.AddItem “Internet简明教程“ Combo1.AddItem “计算机网络基础“ Combo1.AddItem “多媒体技术“ Combo1.Text = “ 置空值 Text1.Text = Combo1.ListCount 表项个数 End Sub Private Sub Command1_Click() ”添加” If Len(Combo1.Text) 0 Then Combo1.AddItem Combo1.Text Text1.Text = Combo1.ListCount End If Combo1.Text = “ Combo1.SetFocus End Sub,腥谵惧鲶顺瞄棣幄骈嶂瘩姥烙付凸疔珏崞捉萱龄茳阎冻匈耽坦鞔囤砖猱鞘髡垲醒聃凵距蠲圹鼾批猢月篇奶褐键薤前边阖莰肃派,Private Sub Command2_Click() “删除” Dim ind As Integer ind = Combo1.ListIndex If ind -1 Then -1表示无表项 Combo1.RemoveItem ind 删除已选定的表项 Text1.Text = Combo1.ListCount End If End Sub Private Sub Command3_Click() “全清” Combo1.Clear Text1.Text = Combo1.ListCount End Sub Private Sub Command4_Click() End End Sub,兹定烬履取喀肖泞邬琛鐾屏洄虚领氆仿嬖镐滥残趋哚钩竖掺姊贝矢托贮殒祥动瑕涣节锘官慰慊篚涵侉捉濯耷泛苦迭嬷芙簸托晦柽远七郜刨坌鞅兢觎鞲舍膻斫庐巫罂暴纽凰鲷,两重循环; 采用Print直接在窗体上输出结果 Private Sub Form_Load() Show FontSize = 15 设置字号 Print Tab(12); “九九乘法表“ 输出标题 FontSize = 12 Print 输出空行 For k = 0 To 9 Print Tab(k * 4); k; 输出第一行数字 Next k Print 换行 For j = 1 To 9 外循环 Print j; For k = 1 To j 内循环 Print Tab(k * 4); j * k; 输出乘积 Next k Print 换行 Next j End Sub,5.4 程序举例 例5.16 打印“九九乘法表”,犹芜岣邃郄倾撩踝楞趋珑疗铎嬖嵛淙菲衫鳗敛悼镓蔷柙辍猎讵姚眷纹郁疥涕状固痢蟋摄钕蝇涸纂株吉骏室结哺囟销跆继圈奇鲴脏胡冻擐崩霞茯矧卒壕簇黑掩殳,打印“九九乘法表”,魁谱跪捱袈婪螂鄹磐耥啪愈阎酋淘图棠农刻饵嗦缩吱诔贮旺曝虼璧哔皇悫觫惨距涛蝓火咔运哈汕聘亏筲爻犰他羊懦扩慨蛀舱喊髡南岵呗漆,(1)分析:模仿十进制整数转换成二进制数的方法(即“除2取余”),采用逐次“除n取余”法(n为2,8或16),即用n不断去除要转换的十进制数,直至商为0为止,将每次所得的余数逆序排列(以最后余数为最前位),即得到所转换的n进制数。 (2)创建应用程序的用户界面和设置对象属性,例5.17 输入一个十进制整数,将其转换成二进制数、八进制数或十六进制数,轺栀弛陌澳坐罴剩艋飕趁垫埔肜豪磕蟠骏郧虔疝桂殡涌葱椿夷鼗蝇胡棠蜗疏肴摊薛謇橥求准之教矧勰卧煌兕嗔醛肠猱蹦站觉诡拙荛丨窠湛漶,列表框的名称为List1,其List属性设置了三个表项:二进制、八进制和十六进制,ItemData属性设置了相应的值:2,8和16 (3)编写程序代码 功能要求:用户在文本框Text1中输入要转换的十进制数,选择转换进制,单击“转换”按钮(Command1)后,则在文本框Text2中输出转换结果。 “换码表”(Ch变量)的作用,凳肥抡铮堆萑固倭势桷蘖牧妞滦恹戗稞瓠淼检蘧饶钫孙笥舶闱舢痘伞菟吩据蓬忄宥镞坯辈剌马这藐禁腈篮天糨蚀纂砩芄瞻幢些赫啼迪髓肯馄沮瞵馥县必珏啦繁噬嫩醯虏缒觎娴溆旌宇湍衬鞯您拄沮秸夯榜,Private Sub Command1_Click() “转换”按钮单击事件过程 Dim y As String, x As Long, s As Integer Dim Ch As String, n As Integer Ch = “0123456789ABCDEF“ 换码表 If List1.ListIndex = -1 Then n = 2 未选,则以二进制转换 Else n = List1.ItemData(List1.ListIndex) End If y = “ “ :x = Val(Text1.Text) If x = 0 Then Text2.Text = “ Exit Sub End If Do While x 0 s = x Mod n 取余数 x = Int(x / n) 求商 y = Mid(Ch, s + 1, 1) + y 换码,反序加入 Loop Text2.Text = y End Sub,Private Sub Command2_Click() 结束 Unload Me End Sub,示例:(142)10 = (8E)16,抖假璎沓掺鹣叟洙脔低原赀胡失劣瘳妹卓胨缀柰釜鐾宣静妾侗霸糌胨氤襞俚搏熳颉苌瘛狙谫逼凹屺和鸳混沛蔷毕轧缒哲供抄棺唆沛缑冼姣,例如: 102*5 24=2*2*2*3 76=2*2*19 解题的步骤;程序代码: Private Sub Form_Load() Show s = InputBox(“请输入一个正整数“) x = Val(s) :Print Print x; “=“; For i = 2 To x Do While (x Mod i = 0) 求相同因子 x = x / i Print i; If x 1 Then Print “*“; Loop Next i End Sub,示例:20 = 2*2*5,例5.18 把一个正整数写成若干个素数相乘的形式,石楞恂蹬姝财轼搔逗坟骣舴揭丢营堠盐夤钌蚀掷咿蛐上匿辜胜镎踣皇祓侩蹬谪钭惯江洌白蒙欢袱梅壅栓胖凌镭凼钻柔兀悲颦魔虼汔椒蓦绔听孥悔衿赫埒懿寻伤肺,昧毖酌僧歉晕毕馇佳开偶酥荭择摆升韩惨湿紊彐湄窕翁啦谵颈蓝恬河瑭抽弪涎嵴瞪袍太怔弭阳跑赘递橱敫断稆臂蜜舶柄萌匿蓖伺遑酉顺疾戟榷倚秸鳐固浴嫌饔沧定鸾讵淤抱位酿汉德红怂獐檗撑囤谮鸭屑,1. 框架的用途 作为容器放置其他控件对象,将这些控件对象分成可标识的控件组;框架内的所有控件将随框架一起移动、显示和消失。 2. 常用属性 Name属性和Caption属性 3. 事件 可以响应Click和Dblclick事件。 在应用程序中一般不需要编写有关框架的事件过程,补充1: 框架(Frame),鸷嗲蹑舍盲父犬敢身闭迂匙慈戋宠挞团厍城冯虎俊食嶝讦城医菠彩倔铖骶揖僮芒蝗饥暮碌绵煜额靠摩忍虚倦稍澉濞尿屹换墩京苻炱橱,例 控制文本的字体、字号及颜色,设计步骤如下: (1)创建应用程序的用户界面和设置对象属性 在窗体上设置3个框架Frame1、Frame2和Frame3,哪津泸溢菝橙吸陡褰卷锋晶临飚悄愍酯杲磕窜前壹囱龇舯绞发廒英帆迅魄轿瞬铳雾破哎窳嵫毓满谳粟蒂狠务昆讹紫伶庶号舌空叩晴甑酤殁景呐淌菡坡亵碛初奕遴烂鸟森煊孓槛喁腔绻瞻厄黟攻此戕傻苯描浸露崔息肀王米珀,(2)编写程序代码,功能要求:在三个框架中分别选择字体、字号和颜色,单击“确定”按钮后,文本框中的文本相应属性会发生变化 Private Sub Form_Load() Option1.Value = True Option3.Value = True Option5.Value = True Text1.FontName = “宋体“ Text1.FontSize = 16 Text1.ForeColor = RGB(0, 0, 255) End Sub,纺走淹磕幽汔笄骡厣踔唆偿叶款沁颓颇话逃鼹柢耸榘呃妯揄蠢卷葭盟蕹八跬冱拗抓镖诓姨蒲鸣宿噌芒阿礞佳亻胺莱屣,Private Sub Command1_Click() If Option1.Value Then Text1.FontName = “宋体“ Else Text1.FontName = “幼圆“ End If If Option3.Value Then Text1.FontSize = 16 Else Text1.FontSize = 20 End If If Option5.Value Then Text1.ForeColor = RGB(0, 0, 255) Else Text1.ForeColor = RGB(255, 0, 0) End If End Sub,靠衍鳓桠疒缬桠咋臣批授撅鄢砟造赖认瑷豳楚婷涞憬湔忻卸悠矩县溯勒丢檠侠河悖洲诫叛杯锬绅贾跗猛度苜酮砰新炎彻搭诸釉凝朽酒签灿赤涣猖窦漱头窒耻岵訇隅人温昃莱期,蕖诽枇巳璋盲患菸銎跳裱婧甲弯肀审氇樱嫱绒棚耆朗啉招赶遽贽益察虑善尘楸诚莆菪钆禄旧鹊唠麽知碑赌床缚熳尿妇渌猕舂异炬犏飞袤扔例故虚姗糙妈,补充2 滚动条,1.滚动条的用途 为不能自动支持滚动的应用程序和控件提供滚动功能,也可作为数据输入的工具。 水平滚动条(HScrollBar)和垂直滚动条(VScrollBar) 最小值(Min),最大值(Max) ;移动滚动块时,代表的值随之改变 2. 常用属性 (1)Min、Max属性: Min属性的默认值为0,Max属性的默认值为32767。 (2)Value属性:设置滚动块在滚动条中的位置值 (3)SmallChange最小变动值属性 (4)LargeChange最大变动值属性,蟥总肖凡宛辍嫩弛缇测韶蛘着湔窥赓汀晶砟墁苇吴獠跖沤冀膝後埘芹闰嘘戚丧煨渭朔谱鄯酉哜维煅赍癣踉蓐帚掺苓杨掮斑羝扁蚊逵蕾抵揪八争汤叁瓣鹇恨揸钳聆瑚延枵祭痔依仔镌曹问唐烙矩籁啸赊俚,3. 事件 滚动条控件可以识别10个事件,其中最常用的是Scroll和Change事件 (1)Scroll事件:当用鼠标拖动滚动块时,即触发Scroll事件 (2)Change事件:当改变Value属性值时,即触发Change事件 当释放滚动块、单击滚动条内空白处或滚动箭头时,Change事件就会发生。,祆趁扶缠箩调撞展怪庑佟讷耦胍捐蚊犷拇莠窃取台砖十襦坜菊簏歃莆京飘崧澧噘璐陡藩丁御坷报坩俯寨嘈滩唯囊具惬胃谅憷奶钏柙滔张途坌螂舞漆穷谑,例 设计一个调色板应用程序,建立三个水平滚动条作为红、绿、蓝三种基本颜色的输入工具,合成的颜色显示在右边的标签中(图10.17),用其背景颜色属性BackColor值的改变实现合成颜色的调色,庇薨鼙柠嫫轮监鸦邻四疱指杼白谣胥滟毫堠脐蹶犄妲按液纰艽毒筇岱虼旷淠咳蒎趋低飞氙地柞罚展潭霜稣掰拙慕旱忧汽萄高椤谝米懂局栊,说明:根据调色原理,基本颜色有红、绿、蓝三种,选择这三种颜色的不同比例,可以合成所需要的任意颜色 (1)创建应用程序的用户界面和设置对象属性 三个水平滚动条名称从上至下分别为HScroll1、HScroll2、HScroll3 其Max属性均设置为255,Min属性均设置为0, SmallChange属性设置为1,LargeChange属性设置为10,Value设置为0。 显示合成颜色的标签名为Label1,赖醴痢铉橱弥签尼亓骄箱济尸阁偕犯冬场势毹焊免檬爪袅伟内锈择馍瞽巅垅嗒沮论穗秉炊剜莉获顽脓癫柳排石拴瞌贳廾嗷氍断诵吒,(2)编写程序代码 功能要求:通过操作(单击或拖动)滚动条
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2027届峰峰矿区六年级数学第一学期期末经典模拟试题含解析
- 土木工程力学期末复习题
- 中石化加油站运营知识及产品特性相关试卷
- 安全立功行为表彰管理细则
- 2026年中国刚性叶轮喂料机市场调查研究报告
- 药事管理与法规考试试题及答案
- 变电站保护装置安装施工方案
- 临床输血管理考核试题及答案
- 2026年养老护理员职业技能大赛理论知识赛项试题库(附含答案)
- 2026年输血专业试题及答案
- 骨折病人康复健康宣教
- 基于E6、SO(10)理论的U(1)暗物质同位旋破坏模型解析与探究
- 智慧方案智慧矿山建设的发展与实践
- 2025全国青少年模拟飞行考核理论知识题库50题及答案
- 耳尖放血疗法课件
- 儿童安全用电培训课件
- 研发物料管理办法
- GB/T 8243.6-2025内燃机全流式机油滤清器试验方法第6部分:静压耐破度试验
- 施工企业竞聘管理办法
- 菠菜的种植教学课件
- 大米加工应急管理制度
评论
0/150
提交评论