如何在VB中用比较简单的语句编写一个计算星座的程序 求详细过程

如何在VB中用比较简单的语句编写一个计算星座的程序 求详细过程,第1张

简单是相对的,如果要求代码少而精,可能可读性与结构性就差,反之,要求可读性与结构性比较好,可能代码会增多。

就目前发展来说,由于计算机的速度和存储空间的极大提升,程序(算法)的可读性与结构性是主流要求。

我曾经说过,解决一个问题用一行代码和用一千行代码(例子举得比较极端),对计算机运行来说人们的感觉没有什么区别。

你的这个问题,有多种多样的解决方法,想当然的方法,会用到数组和比较复杂的If语句。

我现在用一个方法,请你看看是否觉得简单呢?

在窗体添加2个组合框,Combo1和Combo2,一个 按钮和一个文本框Text1:

代码如下:

Option Explicit

Private XZ As String

Private Sub Command1_Click()

Dim M As String

Dim D As String

Dim d1 As Date

Dim d2 As Date

Dim L As Integer

M = Combo1.Text

D = Combo2.Text

L = InStr(XZ, M)

If D <= Mid(XZ, L + 3, 3) Then

Text1.Text = "你的星座是:" &Mid(XZ, L - 3, 3)

Else

Text1.Text = "你的星座是:" &Mid(XZ, L + 6, 3)

End If

End Sub

Private Sub Form_Load()

Dim i As Integer

Combo1.Clear

For i = 1 To 12

If i <10 Then

Combo1.AddItem "0" &CStr(i) &"月"

Else

Combo1.AddItem CStr(i) &"月"

End If

Next i

Combo1.Text = Combo1.List(0)

Combo2.Clear

For i = 1 To 31

If i <10 Then

Combo2.AddItem "0" &CStr(i) &"日"

Else

Combo2.AddItem CStr(i) &"日"

End If

Next i

Combo2.Text = Combo2.List(0)

XZ = "魔羯座01月20日水瓶座02月19日双鱼座03月20日白羊座04月20日金牛座05月21日双子座06月21日巨蟹座" &_

"07月22日狮子座08月23日处女座09月23日天秤座10月23日天蝎座11月22日射手座12月21日魔羯座"

End Sub

我这个程序,没有用数组和复杂的If语句,但是,用了Instr()函数,可读性就相对差一些了。

同时2月份,还没有考虑闰年问题以及大月小月问题.

import java.io.*import javax.servlet.*import javax.servlet.http.*import java.util.*public class xingzuo extends HttpServlet { public void doGet(HttpServletRequest req,HttpServletResponse res) throws IOException { res.setContentType("text/html")res.setCharacterEncoding("GB2312")PrintWriter out = res.getWriter()String getmonth = req.getParameter("month")int month = new Integer(getmonth).intValue()String getday = req.getParameter("day")int day = new Integer(getday).intValue()String test=req.getParameter("T1")boolean err=falseint xingzuonumber=0int fenjie[]={21,19,21,21,22,22,23,24,24,24,23,22}int zuida[]={31,29,31,30,31,30,31,31,30,31,30,31}String xingzuo[]={"水平座","双鱼座","白羊座","金牛座","双子座","巨蟹座","狮子座","处女座","天秤座","天蝎座","人马座","山羊座"}String xingge[]=new String[12]xingge[0]="这个星座常被称为'天才星座'或'未来星座'。"xingge[7]="处女座的特色是有丰富的知性,做事一丝不苟,"xingge[8]="天秤座的人爱好美与和谐,也相当仁慈并富有同情心,"xingge[9]="这个星座的人有著强烈的第六感、神秘的探视能力及吸引力,"xingge[10]="这个星座出生的人崇尚自由、无拘无束及追求速度的感觉,"xingge[11]="就像是只走在高山绝壁的山羊一样稳健踏实,"out.print("<html")out.print("<body bgcolor=#3300ff")out.print("<center")if(zuida[month-1]<day) { err=true}if(day= fenjie[month-1]) { xingzuonumber=(month%12)+1}else{xingzuonumber=month}if (err) { out.print("您输入的生日有错误,请重新输入")}else{ out.print("<table border=1"+"<tr")out.print("<td")out.print("<img src = 'image/"+ xingzuonumber + ".jpg'</td")out.print("<td")out.print("您的生日是"+month+"月"+day+"日"+"您的星座是"+xingzuo[(xingzuonumber+10)%12]+"这个星座的特点是:"+xingge[(xingzuonumber+10)%12]+"<font color=red<a href = xingzuo.jsp点击返回首页")} //out.print(xingzuo[0])out.print("</tr</table</center")out.print("</body")out.print("</html")} }

可以化简

function constellation(date)

DateList = 1 : 12 %1:12换成对应的日期

CList = {'射手','射手','射手',...} %这里换成对应的星座名称。

index = find(CList <= date,1,'last') 

disp(CList{index})


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11589678.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存