問題的提出:
在現代社會中,一個人總是離不開數字。人在社會上總是要有一個身分證號碼,學生在學校讀書一定會有一個學號,而且這些號碼不都是一些無意義的數字。我寫的這個程式是用來分析這些數字,並把其中有意義的意思表達出來。
程式設計環境:
VS.NET
實作技術:
ASP.NET
關鍵:
String.Substring(Int32,Int32)方法的運用,Literal控制項的使用,switch語句的使用。
正文:
在Web窗體上,放上一個Label控件,一個Literal控件,一個TextBox控件,一個Button控件。設定Label控制項的Text屬性為“您的學號:”,Literal控制項的Visible屬性設定為“False”。我主要是對Button控制項的Click()事件進行編碼。當點擊一下按鈕後,對輸入的數字進行分析,然後把分析的內容用Literal控制顯示出來。
Button控制項的Click()事件:
string studentNo = txtNo.Text; // 將學號賦給studentNo字串
if (!studentInfo.Visible)
{
studentInfo.Visible = true; // 如果Literal控制項是不可見的,則顯示它.
}
try
{
// 取子字串操作
string strStartYear = studentNo.Substring(0,2); // 入學年份
string strTotalYears = studentNo.Substring(2,1); // 學制
string strSchool = studentNo.Substring(3,2); // 學院
string strClass = studentNo.Substring(5,1); // 班級
string strNumber = studentNo.Substring(6,2); // 號碼
// 將數字跟文字對應起來
// 內容純屬虛構
switch (strSchool)
{
case "01":
strSchool = "文學院";
break;
case "02":
strSchool = "理學院";
break;
case "03":
strSchool = "工學院";
break;
case "04":
strSchool = "科技學院";
break;
case "05":
strSchool = "傳播與藝術學院";
break;
case "06":
strSchool = "商學院";
break;
case "07":
strSchool = "法學院";
break;
case "08":
strSchool = "職教學院";
break;
case "09":
strSchool = "建工學院";
break;
case "10":
strSchool = "資訊學院";
break;
default:
strSchool = "子虛烏有";
break;
}
studentInfo.Text = "您於"+strStartYear+"年入學"+",所選專業是"+strTotalYears+"年制的。"+
"您現在在"+strSchool+"學院"+strClass+"班級學習"+",您的號碼是:"+strNumber+"。";
}
catch
{
Response.Write("取子字串操作越界!");
}
finally
{
}
註:這裡的學號是8位的。
舉例:
Web應用程式執行後,在文字方塊內輸入:02408122。看看結果是什麼? :)
效果圖:
程式的擴充:
為了禁止輸入錯誤的內容,可以添加一個RegularExpressionValidator和一個ValidationSummary控件,正則表達式為“d{8}”,當輸入的不是8位數字,則會在頁面上顯示出錯訊息。
摘要:
對身分證號碼的分析同對學號的分析類似。
正文:
這裡認為身分證號是18位數的。
在頁面上新增一個Label控件,一個TextBox控件,一個Button控件,一個Literal控件。 Label控制項的Text屬性設為“身分證字號:”,Literal控制項會顯示身分證號裡的資訊。關鍵還是在Button控制項的Click()事件中。
Button控制項的Click()事件:
string strID = txtID.Text;
if (!txtID.Visible)
{
txtID.Visible = true;
}
try
{
string strYear = strID.Substring(6,4); // 年
string strMonth = strID.Substring(10,2); // 月
string strDay = strID.Substring(12,2); // 日
Literal1.Text = "您的生日是:"+strYear+"年"+strMonth+"月"+strDay+"號碼";
}
catch
{
Response.Write("程式有錯誤!");
}
finally
{
}
顯示效果圖: