數據庫課程設計--選課系統(tǒng)_第1頁
已閱讀1頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  摘 要</b></p><p>  本文通過分析瀏覽器/服務器結構的特點并結合選課的實際情況,提出了基于瀏覽器/服務器結構網上選課系統(tǒng)的基本設計思想,簡要介紹了系統(tǒng)各功能模塊及數據庫的設計,著重討論了用 ASP.NET技術和SQL Server 2000開發(fā)網上選課系統(tǒng)時的數據庫訪問技術和動態(tài)網頁制作技術,并給出了部分實現(xiàn)代碼。通過該系統(tǒng),使學生可以方便地

2、在校園網上進行網上選課。該B/S結構的系統(tǒng)在Windows XP系統(tǒng)和VS2005.NET平臺下開發(fā)完成,使用C#作為ASP.NET的開發(fā)語言,SQL Server 2000作為數據庫。系統(tǒng)有較高的安全性和較好的性能。其中連接數據庫的字符串可以隨時在web.config里修改,并經過編碼加密,增加了靈活性,保護了數據庫的安全。代碼盡量使用存儲過程和盡量減少數據庫連接的打開時間等手段來提高性能。</p><p> 

3、 本文中主要介紹了學生選課系統(tǒng)中的學生選課界面即對數據庫的查詢添加功能,并且附上了部分代碼。</p><p><b>  摘 要1</b></p><p><b>  1.需求分析3</b></p><p>  2.系統(tǒng)功能與設計3</p><p>  2.1 系統(tǒng)分析3</p&

4、gt;<p>  2.2 用戶所具有的功能3</p><p>  2.3 系統(tǒng)總體設計4</p><p>  2.4 數據庫的設計5</p><p>  2.5 各個表的實現(xiàn)5</p><p><b>  3系統(tǒng)界面說明6</b></p><p>  3.1 系統(tǒng)登錄界面

5、6</p><p>  3.2.查看必修課程列表頁面8</p><p>  3.3.查看選修課程列表頁面9</p><p>  3.4.查看已選課程頁面11</p><p><b>  總 結13</b></p><p><b>  參考文獻14</b>&l

6、t;/p><p><b>  1 需求分析</b></p><p>  隨著在校大學生人數的不斷增加,教務系統(tǒng)的數據量也不斷的上漲。以往的選課方法是隨堂報名。這種方法雖然直接,但是造成選課的盲目性和教務處處理數據的繁重性。為了減輕教務處工作,以及每個學生更好的選擇自己所喜歡的科目。針對學生選課這一環(huán)節(jié),本系統(tǒng)從學生網上自主選課以及教師的課程發(fā)布兩個大方面進行了設計,基本

7、實現(xiàn)了學生的在線信息查詢、選課功能以及教師對課程信息發(fā)布的管理等功能。</p><p><b>  2 系統(tǒng)詳細設計</b></p><p><b>  2.1 系統(tǒng)分析</b></p><p>  在本系統(tǒng)中,有三類用戶:系統(tǒng)管理員,教師和學生。三種不同的用戶所具有的操作權限以及操作內容均不一樣。我負責的是學生這一部分&

8、lt;/p><p>  本選課系統(tǒng)給予教師很大的自主權,系統(tǒng)管理員只負責向系統(tǒng)中添加學生和教師的個人信息以及教學樓教室信息。系統(tǒng)管理員不參與開設課程、選擇課程等,一切均由教師、學生等錄網站自行完成。系統(tǒng)管理員設置一個選課時間段,在到達時間段以前,教師可以開設課程;到達時間段以后,學生可以登陸網站選擇課程。</p><p>  對于學生用戶,每個學生除了必須選擇必修課程外,至少還要選擇兩門選修課

9、程,學生可以對自己選課信息鎖定,以免不小心被修改。當時候超過選課時段后,系統(tǒng)自動鎖定學生的選課課程。系統(tǒng)可以根據學生的選課信息,生成一份學生自己的課表。課程結束后學生可登錄網站查詢成績與學分。</p><p>  根據上面的要求,從操作功能上可以分為兩個類:一個是通用操作,主要實現(xiàn)用戶的登錄注銷和修改密碼等;另一種是為不同用戶定制不同操作</p><p>  2.2 用戶所具有的功能<

10、;/p><p>  我主要負責學生用戶界面的設計:</p><p>  顯示和修改個人信息:學生登錄系統(tǒng)后,可以查看和修改學生的個人信息,如姓名,性別,電話等。</p><p>  查看必修課程:學生登錄后,可以查看所有的必修課程。查看該課程的信息,上課時間地點,開課教師信息等。</p><p>  選擇選修課程:學生登錄系統(tǒng)后,在所有選修課程中

11、可以選擇至少兩門選修課程。同時可以查看相關信息。</p><p>  鎖定選課信息:學生登錄系統(tǒng),確定了所選課程后,可以鎖定自己的選課信息,以防被別人或則自己不小心修改。</p><p>  查看最終選課信息:學生登錄系統(tǒng)后,可列出已選擇的課程,若選課信息未被鎖定,則可以退選,若所選課程少于兩門,系統(tǒng)會提示選擇的課程少于兩門。</p><p>  查看學分和成績:課

12、程結束后,學生登錄系統(tǒng)可查看自己學習課程的成績和已獲的學分。</p><p>  2.3 系統(tǒng)總體設計</p><p>  根據系統(tǒng)的系統(tǒng)功能分析,可以劃分以下幾個模塊,如圖1所示</p><p><b>  圖1 系統(tǒng)總體設計</b></p><p>  2.4 數據庫的設計</p><p> 

13、 本系統(tǒng)的數據庫實體主要有“學生”、“教師”、“教學樓”、“教室”、“課程”等。其中“教師”與“課程”存在“開設”聯(lián)系,并且一個教師可以開設N門課程,即“教師”與“課程”之間是一對多的關系。同樣“教學樓”與“教室”也存在一對多的關系。一個學生可以學習N門課程,一門課程可以有M個學生學習,即“學生”與“課程”之間是多對多的關系。同樣“課程”與“教室”之間也是多對多的關系。整個數據庫可以用一個E-R圖表示,如圖2所示:</p>

14、<p>  圖2 數據庫的設計圖</p><p>  2.5 各個表的實現(xiàn)</p><p> ?。?)Student表。Student表用來存儲學生的個人信息,使用學號作為主鍵,如圖3:</p><p><b>  圖3</b></p><p> ?。?)Course表。Course表用來存儲課程信息,Cou

15、rse表以課程編號為主鍵,設置課程編號自動增加1(通過建表的時候對屬性列設置“標識”,并設置“標識遞增量”為1)。表中開課教師Id為外鍵,所有“TId”的值必須是Teacher表中的“TId”值。設置外鍵關系可以通過在建立表的窗口中單擊右鍵,在右鍵菜單中選擇“關系”,在彈出的對話框中設置外鍵關系。如圖4:</p><p><b>  圖4</b></p><p>  

16、(3)SC表。SC表用于存儲學生的選課信息,在SC表中學號和課程編號是主鍵,同時也是外鍵。如圖5:</p><p><b>  圖5</b></p><p><b>  3系統(tǒng)界面說明</b></p><p>  下面是在線選課系統(tǒng)的預覽,此處簡單介紹本系統(tǒng)的部分功能。</p><p>  3.1

17、 系統(tǒng)登錄界面</p><p><b>  圖6 系統(tǒng)登錄界面</b></p><p>  在用戶名和密碼處輸入用戶名和密碼,在“用戶類型”下拉列表框中選擇“學生”,單擊“登錄”按鈕,登錄選課系統(tǒng)。</p><p><b>  主要代碼如下:</b></p><p>  private void b

18、tnLogin_Click(object sender, System.EventArgs e)</p><p>  {int type = Int32.Parse(ddlType.SelectedItem.Value);</p><p>  string user = txtUser.Text.Trim();</p><p>  string inputkey =

19、 txtKey.Text.Trim();</p><p>  string key = "";</p><p>  string sql = "";</p><p>  DataSet ds;</p><p>  switch( type )</p><p><b> 

20、 {</b></p><p>  case 1://學生</p><p>  //驗證學生身份代碼 </p><p><b>  break;</b></p><p>  case 2://教師</p><p><b>  br

21、eak;</b></p><p>  case 3://系統(tǒng)管理員</p><p><b>  break;</b></p><p><b>  default;</b></p><p><b>  break;</b></p><p>

22、;<b>  }</b></p><p><b>  }</b></p><p>  3.2 查看必修課程列表頁面 </p><p><b>  圖7 查看比修課程</b></p><p>  登錄成功后,進入學生主頁,點擊“必修課程”鏈接,得到所有必修課程的列表,在列表中可以

23、看到所有必修課程及課程的簡單信息,如授課教師姓名、課程所占學分等。</p><p>  在列表中可以點課程名稱,如“計算機應用基礎”鏈接,查看課程詳細信息;點教師姓名,如“李萍”鏈接,查看教師的詳細信息;點擊“查看上課時間地點”鏈接,查看對應課程的上課時間和地點。</p><p>  在頁面加載的時候從數據庫讀取所有必修課信息,代碼如下:</p><p>  str

24、ing sql = "select Course.*,TName from Course,Teacher where CType like '必修' and Course.TId like Teacher.TId";//查詢處所有必修課程信息</p><p>  DataSet ds = Db.ExecuteSelectSql(sql);</p><p>

25、;  if ( ds != null && ds.Tables.Count > 0 )</p><p><b>  {</b></p><p>  dgCourse.DataSource = ds.Tables[0];</p><p>  dgCourse.DataBind();//將查詢結果綁定到DataGrid中<

26、;/p><p><b>  }</b></p><p>  3.3.查看選修課程列表頁面</p><p><b>  圖8 查看選修課程</b></p><p>  單擊“選修課程”鏈接,查看所有選修課程列表,在列表中給出了比必修課程更多的信息,比如多了對應選修課程的前導課程、最大人數、當前已選人數等,

27、對每個選修課程均有一個“選修該課程”的按鈕,單擊此按鈕方可選擇對應課程。</p><p>  主要代碼如下: </p><p>  string sql = "select x.*,TName,(select CName from Course as y where y.CId = x.CPreCId) as CPreCName from Course as x,Teach

28、er where x.CType like '選修' and x.TId like Teacher.TId";</p><p>  //查詢該學生已選修的課程</p><p>  DataSet ds = Db.ExecuteSelectSql(sql);</p><p>  if ( ds != null && ds.Ta

29、bles.Count > 0 )</p><p><b>  {</b></p><p>  dgCourse.DataSource = ds.Tables[0];</p><p>  dgCourse.DataBind();</p><p>  for ( int i = 0; i < ds.Tables[

30、0].Rows.Count; i++ )</p><p>  {sql = "select count(*) from SC where CId = "+ds.Tables[0].Rows[i]["CId"].ToString();</p><p>  DataSet ds1 = Db.ExecuteSelectSql(sql);</p>

31、<p>  if ( ds1 != null && ds1.Tables.Count > 0 && ds1.Tables[0].Rows.Count > 0 )</p><p>  dgCourse.Items[i].Cells[6].Text = ds1.Tables[0].Rows[0][0].ToString();</p><p&

32、gt;<b>  }</b></p><p><b>  }</b></p><p>  bool locked= bool.Parse(Session["Locked"].ToString());</p><p>  if ( ! locked )</p><p><b&

33、gt;  {</b></p><p>  lbLock.Text = "您尚未鎖定選課信息!";</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p>

34、<p>  lbLock.Text = "選課信息已被鎖定!";</p><p>  dgCourse.Columns[9].Visible = false;</p><p><b>  }</b></p><p>  3.4.查看選課時間頁面</p><p><b>  圖9 查

35、看選課時間</b></p><p>  查看選課時間代碼如下:</p><p>  DateTime dtStart,dtEnd;</p><p><b>  try</b></p><p><b>  {</b></p><p>  dtStart = Date

36、Time.Parse(txttimeStart.Text);</p><p>  dtEnd = DateTime.Parse(txtTimeEnd.Text);</p><p><b>  }</b></p><p><b>  catch</b></p><p><b>  {<

37、/b></p><p>  Response.Write(MyUtility.Alert("輸入錯誤"));</p><p><b>  return;</b></p><p><b>  }</b></p><p>  StreamWriter sw = new Stre

38、amWriter("http://localhost/sc/login.aspx",false);</p><p>  sw.WriteLine(dtStart.ToString());//寫入開始時間</p><p>  sw.WriteLine(dtEnd.ToString());//寫入結束時間</p><p>  sw.Close();&

39、lt;/p><p>  lbTime.Text = "選課時間為:"+dtStart.ToString()+"到"+dtEnd.ToString();</p><p><b>  總 結</b></p><p>  經過一段時間的學習與實踐,我選擇的課題學生選課系統(tǒng)基本完成。其功能基本符合網絡上的用戶要

40、求,能夠在線選課,在線添加課程,在線查詢課程等。雖然由于自己知識上的不足,有些地方有少許錯誤和容錯性能比較低,但是還是可以基本完成選課系統(tǒng)應有的功能。</p><p>  通過這次設計過程我得到了很多的寶貴經驗,讓我遇到困難時能夠及時的發(fā)現(xiàn)并且想辦法去解決,而不是向以往一樣只是在那發(fā)呆,不知所措。通過這次設計我學會的不僅是知識,還有遇見困難時要冷靜沉著,想想原因和為什么不知道怎么解決。相信下次做這方面的設計時,我

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論