VB编程:SelectCase多分支选择结构实例测试生肖运势

程序代码

(窗体模块)

Private Sub Command1_Click()

   Dim iNum As Integer              '存储余数

   Dim i As Integer                      '循环计数

   For i = 0 To Img.UBound         '循环

       Img(i).BorderStyle = 0          '所有imageBorderStyle都为0

   Next i

   If Text1.Text <> "" And IsNumeric(Text1.Text) Then  '判断输入是否为空,是否为数字

       If Len(Text1.Text) < 5 Then                                      '判断输入是否是小于5的年代数字

           iNum = QueryZodiac(Text1.Text).iMod               '获取余数

           Img(iNum).BorderStyle = 1                                  '设置下标为余数的image边框为1

           Label2.Caption = QueryZodiac(Val(Text1.Text)).sAnimal & "," & QueryZodiac(Val(Text1.Text)).sDescription

       Else

               Text1.Text = "年代长度超过四位"

       End If

   Else

       Text1.Text = "请输入出生年代!"

   End If

End Sub


Private Sub Img_Click(Index As Integer)

   Dim i As Integer

   For i = 0 To Img.UBound          'image图像控件数组上标UBound

       Img(i).BorderStyle = 0

   Next i

   Img(Index).BorderStyle = 1

   Label2.Caption = QueryZodiac(Index).sAnimal & "," & QueryZodiac(Index).sDescription

End Sub


(标准模块)

Type Zodiac                                 '自定义数据类型

   iMod As Integer                       '余数

   sAnimal As String * 1               '属相

   sDescription As String * 300    '属相描述

End Type


Function QueryZodiac(iYear As Integer) As Zodiac

   Select Case iYear Mod 12        '取余函数,确定生肖

       Case 0

           QueryZodiac.iMod = 0

           QueryZodiac.sAnimal = "猴"

           QueryZodiac.sDescription = "“猴为人祖”的传说颇多。《山海经》载,“其状如禺而文臂,豹虎而善投,名曰举父“,可见夸父(即举父)形象实乃猴子。成都地区神话认为盘古开天地,猴群中的伏羲女娲繁衍出人类。古吐蕃在《*王统记》中载其先祖系狲猴所变。羌族神话《木姐珠和冉必娃》,冉必娃用火烧掉全身猴毛成了美男子。"

             

       Case 1

           QueryZodiac.iMod = 1

           QueryZodiac.sAnimal = "鸡"

           QueryZodiac.sDescription = "《韩诗外传》概括鸡的“五德”,“头戴冠,文也;足搏距,武也;见敌敢干,勇也;见食相呼,义也;守夜不失时,信也”。故鸡有德禽的雅号。玉兔与月亮,金乌与太阳常相提并论。《淮南子· 精神》说“日中有蹬乌”,即三足乌:日乌、金乌、金鸦。明代杨慎的《艺林伐山》说“日中有金鸡”,日与月,太阳属东方酉鸡却位于西;月亮属西方卯兔却居于东,原因是“日月阴阳互藏其宅也”。李白的《梦游天姥吟留别》中吟“半壁见海日,空中闻天鸡。”"

       Case 2

           QueryZodiac.iMod = 2

           QueryZodiac.sAnimal = "狗"

           QueryZodiac.sDescription = "《汉书》载,帝高辛氏有狗名盘瓠,取犬戎吴将军首级被赐以少女,“随盘瓠升南山产子,男女十二,后繁盛也“。《搜神记》扩充说盘瓠是皇后耳朵跳出的金虫变成。西南的苗、畲、瑶、黎、侗、壮、佤等民族,也传说盘瓠是族群始祖。少数民族还有狗取谷种的传说,哈尼族认为,天神女儿把五谷带到人间,被贬成狗。"

       Case 3

           QueryZodiac.iMod = 3

           QueryZodiac.sAnimal = "猪"

           QueryZodiac.sDescription = "猪有“乌金”之名,父系氏族公社时期,猪是财富标志,临夏大何庄的墓葬有三十六块猪骨陪葬。豕是士庶以下平民的祭品,以豕为之,陈豕于室,合家而祀,即“家”字。畜牧户供奉豕神、栏神。豕神本职厕神,南方农村厕所和猪圈多合二为一,故厕神多兼职圈神。厕神即紫姑神,或死于厕的西汉戚夫人。猪栏神是姜太公,封神时姜太公把为自己预留的东岳神让给黄飞虎,自己当猪栏神。浙西一带常在猪栏张贴黄纸,“姜太公在此、百无禁忌“。"

       Case 4

           QueryZodiac.iMod = 4

           QueryZodiac.sAnimal = "鼠"

           QueryZodiac.sDescription = "老鼠偷吃粮食,证明“仓鼠有余粮”,说明这户富足,家中鼠多象征富裕。清代方叡颐《梦园丛说》记载粤东一种“钱鼠”玩具,叫声好像数钱。老鼠能发出数钱般的声音。旧时湖北等地以此声为吉祥之兆。浙江一带却认为“前半夜主得财,后半夜主散财”,而崇明一带则认为此声预示祸灾祸。"

       Case 5

           QueryZodiac.iMod = 5

           QueryZodiac.sAnimal = "牛"

           QueryZodiac.sDescription = "因为牛耕,中国人对牛感情渐深,把诸如憨厚勤劳,不求回报等优秀品质附在牛身上,鲁迅就以“俯首甘为孺子牛”言志。《大戴礼记·曾子天圆》:“诸侯之祭,牛,曰太牢。”《清史稿·礼志一》:“太牢,牛一,羊一,豕一”,牛都是最尊贵的祭祀品,是天子祭祀*和天地之用。春秋战国的诸侯会盟,国君执牛耳割血,涂在嘴里。"

       Case 6

           QueryZodiac.iMod = 6

           QueryZodiac.sAnimal = "虎"

           QueryZodiac.sDescription = "虎是百兽之王,寅虎相配,甲骨文“寅”字如箭矢状,《说文》中“寅”意为“阳气上升,虽上有冻土,必破土而出”,与虎的凶猛刚阳之气契合。如果说商代铜器虎食人卣反映古人对虎的畏惧,那在战争的虎烙印,则代表对征服的渴望,行军打白虎幡旗,晓勇者为“虎将”,调兵用虎符,兵器有虎纹……"

       Case 7

           QueryZodiac.iMod = 7

           QueryZodiac.sAnimal = "兔"

           QueryZodiac.sDescription = "嫦娥奔月传说源于《淮南子.览冥训》,嫦娥在月中有玉兔相伴。兔是月的象征。《春秋运斗枢》说:“行失瑶光,则月出兔”。《乐府诗集》有“白兔常跪捣药虾蟆九”的诗句,晋朝傅玄在《拟天问》中吟:“月中何有?白免捣药。”"

       Case 8

           QueryZodiac.iMod = 8

           QueryZodiac.sAnimal = "龙"

           QueryZodiac.sDescription = "龙的来历说法颇多,以闻一多推断,蛇为图腾的氏族先后兼并许多别的图腾氏族,形成“以大蛇为主体,兼有马的头、鬣的尾,鹿的角,狗的爪,鱼的鳞和须混合而成的龙图腾”。"

       Case 9

           QueryZodiac.iMod = 9

           QueryZodiac.sAnimal = "蛇"

           QueryZodiac.sDescription = "蛇多以负面形象出现。“人心不足蛇吞象”形容蛇的贪婪;《农夫和蛇》写出蛇的狡猾和冷血;狠毒之人被形容为“蛇蝎心肠”。"

       Case 10

           QueryZodiac.iMod = 10

           QueryZodiac.sAnimal = "马"

           QueryZodiac.sDescription = "作为六畜之首,马除用作交通运输,还是强大的军事装备。战国以“万乘之国”,“千乘之国”等马拉战车的数量来形容国力强弱。历代君王将帅以拥有骏马为荣。周穆王拥八骏。汉武帝为取得大宛汗血宝马两次远征大宛。唐太宗钟爱“六骏”, 飒露紫、拳毛騧、青骓、什伐赤、特勒骠、白蹄乌,刻在昭陵以表彰战功。还有秦始皇的“追风”、“白兔”,项羽的“乌骓马”,刘备的“的卢”,关羽的赤兔,等等。"

       Case 11

           QueryZodiac.iMod = 11

           QueryZodiac.sAnimal = "羊"

           QueryZodiac.sDescription = "古人视羊为“德畜”,善群、好仁、死义、知礼。善群,羊喜欢聚群。好仁指羊善良,有角但不好斗。死义指羊被宰杀时安静,视死如归,故有宣王“以羊易牛”的故事。知礼指羊知恩,羊羔跪乳象征孝道。"

   End Select

End Function


程序总结

   1、为了让Text1.Text文本框在加载的时候,光标就会出现在里边,可以把它的TabIndex属性设为0;

   2、这个例子再次体现了控件数组处理问题的优越性;

   3、自定义数据类型。。。还没怎么了解;SelectCase多分支选择结构语句看着有点头晕,主要是字太多,可以适当精简。


程序附件

   源程序下载地址:http://pan.baidu.com/s/1slTd7Xj 密码:58id


上一篇:阿里云天池大赛赛题解析——机器学习篇-赛题一(1)


下一篇:阿里云天池大赛赛题解析——机器学习篇-赛题一(2)