• 沒有找到結果。

退選系統

在文檔中 .NET實作線上課程輔助系統 (頁 31-0)

第三章 系統實作

3.4 退選系統

說明 : 首先由 reader 將學生已選之課程取出放入一 table,使使用 者可以知道目前已選之課程,同時可以檢查衝堂,在將已衝堂或者打 算退選之作業點選,已被退選之用

退選架構 :

圖 3-9 退選系統圖 1 退選執行畫面 :

圖 3-10 退選系統圖 2

3.4.1 檢查衝堂

說明 : 比對使用者所選之課程,以 if..else 迴圈一一比對是否有相 同的星期節次而形成衝堂,再將所衝堂之課程放入 listbox 中顯示, 同時在對如果已衝堂之科目點選進行退選

圖 3-11 衝堂檢查系統圖 1

衝堂執行畫面 :

圖 3-12 衝堂檢查系統圖 2 3.5 課程查詢

說明 : 利用 datagrid 從資料庫 課程資料表裡 將所有課程讀出顯 示,在依照科目編號 科目名稱 學分 星期與節次 必選修 一一排列 在 datagrid 的表格中

圖 3-13 課程查詢系統圖 1 課程查詢執行畫面 :

圖 3-14 課程查詢系統圖 2

3.6 線上名單傳訊

說明 : 利用 session(“stu_No")紀錄登入者的資料,同時利用 application 保留相關資料,同時統計線上人數,還有顯示目前登入此 系統的線上名單,已供點選來做傳訊的功能

圖 3-15 線上名單傳訊圖 1 點選線上名單使用者 :

圖 3-16 線上名單傳訊圖 2 傳訊成功畫面:

圖 3-17 線上名單傳訊圖 3

3.7 聊天室系統

說明:此聊天室是透過 Application 和 Session 的運用,當使用者進 入某個頁面時,會先檢查該使用者是否已經登

入,"ChatObject.GetUserID(Me)"的功能是取得現行使用者的 ID,

如果已經存在,就表示該使用者其實剛才登入過,只是不正常斷線或 者是直接從瀏覽器網址列輸入網址而跳至首頁,這時候,就必須透過 ChatObject.Logout(Me)將該使用者登岀。ChatObject 類別物件的每 一個 Method 都被宣告成 Shared(共用),因此,該物件的 Method 在 被使用時,每一個網站中的不同使用者其實都是在使用在同一塊記憶 體中的 ChatObject 物件。

登入聊天室會執行以下幾個部分:

1.檢查使用者是否登入(透過 ChatObject.GetUserID)。

2.檢查網站的使用人數是否超過上線(透過 ChatObject.GetHowManyUsers)。

3.檢查使用者名稱是否已經存在(透過 ChatObject.CheckUserExist)。

4.如果一切正常則登入(使用 ChatObject.Login)。

5.如有登入,則一定也有登岀(使用 ChatObjecy.Logout)。

5. 登入時順便紀錄使用者性別(使用 ChatObject.SetUserSex)。

登入聊天室的 Method 執行了幾個動作:

1.AddUser(UserName),用來在聊天室中增加一個使用者。

2.WebForm.Session(“UserName")=UserName,這段程式用來將使用 者登入的 ID,儲存在自己的 Session(“UserName")中。

3.SetLastTalkMinte(WebForm),則是設定最後發言時間。

下列介面是聊天室畫面:

圖 3-18 聊天室登入畫面

3.8 行事曆系統

說明:行事曆的功能設計在同一支程式上中,然後把通用的函式寫成 模組的形式,程式只有兩支:

程式 功能

1 Default.aspx 負責所有行事曆介面

2 ScheduleFunctions.vb 共用所有的函式部分,全部寫成模組 3 LoginObject.vb 權限帳號處理

表 3-1 行事曆系統表 1 系統進入後會出現下面的介面:

圖 3-19 行事曆登入畫面 1

在月曆控制項填入資料:上面的畫面這個大型的控制項是透過

ASP.NET 產生的控制項完成的,行事曆的控制項在 WebForm 上面顯示 的時候會觸發 DayRender 事件,DayRender 事件是月曆控制項在顯示 每一天的時候都會觸發的事件。當 DayRender 函式被觸發的時候會傳 入一個參數"e",e 代表的是該事件被觸發時,一併傳入的參數,

而 e.Day,則是月曆控制項目前正在顯示哪一天,因此,透過這參數,

取得目前登入的使用者該日期的行事曆內容:

項目 功能

ReadSchedule 定義在 ScheduleFunctions.vb 中,取得

某人某天的行事曆

LoginObject.GetCurrentUserAccount(Me) 取得目前登入的使用者名稱

e.Day.Date DayRender 事件執行中,目前正在顯示的

日期

表 3-2 行事曆系統表 2

接著在透過傳回的 SelectedDaySchedule 保留傳回的行事曆內容,

SelectedDaySchedule 是第一個結構陣列,該結構定義在 ScheduleFunctions.vb 中。

接著是行事曆的基本畫面:

圖 3-20 行事曆登入畫面 2

可以透過頁標籤來切換行事曆畫面,可按照月、日、和週行事曆不同 的介面依照個人習慣來安排自己的行程。

新增行事曆與刪除行事曆項目:在上面的畫面中,填入相關的資料之 後,按下新增鈕,即可新增一筆行事曆,透過

SaveSchedule(ScheduleFunctions.vb 中)來儲存行事曆,傳入的參 數分別是:

參數 內容

StartDate.Time 開始時間

EndDateTime 結束時間

TB_Schedule_Body.Text 行事曆事件內容

ScheduleType.個人 行事曆項目類別

LoginObject.GetCurrentUserAcconnt(Me) 目前使用者帳號

表 3-3 行事曆系統表 3

3.9 手機簡訊系統

說明:設計一個發送簡訊的介面,透過發送簡訊的函式及可以發送簡 訊,主要是從透過 Web 發送簡訊,由於我們不是電訊公司,於是我利 用電訊公司所提供的系統介面,來達到線上傳送簡訊的目的。我們是 使用台灣簡訊(http://www.twsms.com)所提供的系統介面,以下是台 灣簡訊所提供的一個 API 發送介面(http://api.twsms.com):

透過http://api.twsms.com 傳遞簡訊的參數內容:

Server Name: http://api.twsms.com/SendSMS.php Server Port:80(HTTP)

Data SendType:POST or GET 參數內容: 25:ResponeID 參數空白

26:ResponeURL 參數空白 30:帳戶沒有通數可以發送

我們使用下列方法讀取網頁:

Function GetWebPage(ByVal URL As String) As String Dim MyRequest As System.Net.HttpWebRequest = System.Net.WebRequest.Create(URL)

Dim MyWebResponse As System.Net.WebResponse = MyRequest.GetResponse() Dim MyStream As IO.Stream

MyStream = MyWebResponse.GetResponseStream

Dim StreamReader As New IO.StreamReader(MyStream, System.Text.Encoding.Default)

GetWebPage = StreamReader.ReadToEnd()

圖 3-23 簡訊發送系統程式片段 1

透過這段程式,就可以完成上述的功能,也可以取回發送簡訊之後的 傳回碼,因此我們把簡訊的函式設計如下:

'發送簡訊

Function SendSMS(ByVal phoneNumber As String, ByVal Message As String) As String Dim ret As String

Dim URL As String

URL = "http://api.twsms.com/SendSMS.php?M=" &

System.Web.HttpUtility.UrlEncode(Message, System.Text.Encoding.Default) URL += "&N=" & phoneNumber & "&L=&CID=rocky1218&CPW=sqlserve"

ret = GetWebPage(URL) SendSMS = ret

End Function

圖 3-24 簡訊發送系統程式片段 2 下圖是發送簡訊的介面:

圖 3-25 簡訊發送系統介面圖

3.10 電子郵件發送系統

說明:下面網頁提供了一個人性化介面,讓使用者直接在網頁上輸入 寄件者名稱及電子郵件信箱、收件者名稱及電子郵件信箱、主旨與內 容等資料後點取"傳送郵件"按鈕,就可以替使用者寄出郵件。

下列介面是電子郵件發送系統的畫面

圖 3-26 電子郵件發送系統介面圖

此系統利用 ASP.NET 提供的 MailMessage、MailAttachment、SmtpMail 三個類別讓我們建置寄信服務,這三個類別使用

CDOSYS(Collaboration Data Objects for Windows 2000)訊息元件 傳送郵件,如此就不必依賴其他元件。MailMessage、MailAttachment 及 SmtpMail 類別位於 System.Web.Mail 命名空間,使用之前必須加 上<%@Import Namespace="System.Web.Mail"%>敘述匯入命名空 間。我們必須先建立 MailMssage 物件才能開始撰寫郵件,其宣告方 式如下:

Dim objMail As New MailMessage()

在建立 MailMessage 物件之後就可以存取其屬性:

Attachments:用來設定與郵件一起傳送的附加檔案,例如下面敘述 可以新增附加檔案:

objMail.Attachments.Add(MailAttachment 物件)

3.11 檔案上傳系統

說明:下面的介面是具有檔案上傳的功能,它允許瀏覽者將檔案上傳 至伺服器的某個位置。ASP.NET 提供的 HttpPostedFile 類別讓我們 無須依賴任何軟體,就可以完成檔案上傳功能。檔案上傳介面類似如 下畫面,中間有一個文字方塊及"瀏覽"按鈕,這個部分是讓使用者 選擇要上傳的檔案,由 HtmlInputFile 控制項所組成。當使用者按 下"上傳"時,會執行後端的程式碼將指定的檔案上傳至伺服器;當

使用者按下"重新設定"時,會清除檔案上傳欄位的內容。

下列是檔案上傳系統介面圖:

圖 3-27 檔案上傳系統介面圖

檔案上傳介面重點在於使用 HtmlInputFile 控制項來製作檔案上傳 欄位,其宣告語法如下:

<Input Type="File" Runat="Server" Id="…" Accept="…"

Maxlength="n" Size="n">

3.12 討論區系統:

說明:當在課表查詢後出現的課表,點選上面課程即會跳到課程討論 去,亦可以選擇其他討論區,討論區介面提供附加檔案,只需上該介 面點取瀏覽在上傳即可,以下是討論區介面:

圖 3-28 討論區系統介面圖

討論區系統結構:我們將系統切割成底下幾個 WebForm 網頁:

編號 網頁名稱 主要功能

1 Default.aspx 首頁

2 Post.aspx 張貼一篇文件

3 BulletinBoardSearchEngine.aspx 搜尋版面中的文件 4 BulletinBoardDownload

AttachFile.aspx

下載文件中的附加檔案

5 ShowMessage.aspx 顯示某篇文件

表 3-4 討論區系統結構

第四章 心得感想

我們這次以 ASP.NET 來實作一個線上課程學習系統,是我們在大 學期間首次用所學的工具來架構一個系統,從大一到現在大四,其實 碰到的程式都是課堂上作業所需要的,所以功能等都在老師的規定下 來寫程式。當在這專題時,嘗試把自己的想法運用各種工具去建立起 來,一開始真的不知道如何下手,在做專題的過程中一直摸索,到處 去書局找有沒有適合專題用的書,討論要使用何種開發工具,怎麼分 工合作,整個系統的規劃如何呈現,程式的撰寫,反覆彼此討論。

一開始便在想說首頁要如何呈現,接下來的功能要有什麼,是先 有課表嗎?或者是登入選擇其他的功能,當我們決定以課表為整個系 統架構的主體時,接下來就是決定在這課表底下要擁有什麼樣的功 能,所以我們開始思考了非常多功能,一個一個部分來作增加,由於 考慮的是課程在線上的學習,我們就很直接的以自己的角度去想說我 們本身就是學生,當用這樣一個系統時,想要有什麼樣的東西可以方 便我們獲得我們所需要的,用最直接的想法,這時也才知道不管如何 去設計一套系統,最重要的就是他的使用者,畢竟做出來的東西不是 自己怎麼想的完善就夠了,主要面對的是要提供所使用的人的感受以 及實用性。

最後要感謝我們指導老師﹣趙啟時老師,在我們專題上,給予我 們方向,像當我們想很多不知如何下手時簡潔的告訴我們先作了再 說,不要滿腦空想而不實際下手,以及提供了很多寶貴的意見和資源。

參考資料

[1] 陳惠貞.陳俊榮,“ASP.NET 程式設計",學貫出版社,July,2002 [2] 宇翔電腦研究室,"ASP.NET 程式設計寶典",文魁圖書,

May,2002

[3] 董大偉," ASP.NET 程式設計徹底研究", 文魁圖書,Mar.,2003 [4] 陳會安,"ASP.NET 網頁製作徹底研究",旗標出版社,Oct.2002 [5] Andy Wigley, Peter Roxburgh," 建構 .NET 行動應用程式",

微軟 Press 圖書,Oct.,2002

[6] 台灣微軟網站 http://www.microsoft.com/taiwan/

在文檔中 .NET實作線上課程輔助系統 (頁 31-0)

相關文件