程序代码
(窗体模块)
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