2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  畢業(yè)設(shè)計(論文)</b></p><p>  題 目 學(xué)生選課管理系統(tǒng) </p><p>  英文題目 Student Course Selection System</p><p>  學(xué)生姓名 </p><p

2、>  學(xué) 號 </p><p>  指導(dǎo)教師 </p><p>  專 業(yè) 軟件技術(shù) </p><p><b>  摘 要</b></p><p>  隨著在校大學(xué)生人

3、數(shù)的不斷增加,教務(wù)系統(tǒng)的數(shù)據(jù)量也不斷的上漲。以往的選課方法是隨堂報名。這種方法雖然直接,但是造成選課的盲目性和教務(wù)處處理數(shù)據(jù)的繁重性。為了減輕教務(wù)處工作,以及每個學(xué)生更好的選擇自己所喜歡的科目。針對學(xué)生選課這一環(huán)節(jié),本系統(tǒng)從學(xué)生網(wǎng)上自主選課以及教師的課程發(fā)布兩個大方面進行了設(shè)計,基本實現(xiàn)了學(xué)生的在線信息查詢、選課功能以及教師對課程信息發(fā)布的管理等功能。</p><p>  本文通過分析瀏覽器/服務(wù)器結(jié)構(gòu)的特點并結(jié)

4、合選課的實際情況,提出了基于瀏覽器/服務(wù)器結(jié)構(gòu)網(wǎng)上選課系統(tǒng)的基本設(shè)計思想,簡要介紹了系統(tǒng)各功能模塊及數(shù)據(jù)庫的設(shè)計,著重討論了用 ASP.NET技術(shù)和SQL Server 2000開發(fā)網(wǎng)上選課系統(tǒng)時的數(shù)據(jù)庫訪問技術(shù)和動態(tài)網(wǎng)頁制作技術(shù),并給出了部分實現(xiàn)代碼。通過該系統(tǒng),使學(xué)生可以方便地在校園網(wǎng)上進行網(wǎng)上選課。該B/S結(jié)構(gòu)的系統(tǒng)在Windows XP系統(tǒng)和VS.NET平臺下開發(fā)完成,使用C#作為ASP.NET的開發(fā)語言,SQL Server

5、2000作為數(shù)據(jù)庫。系統(tǒng)有較高的安全性和較好的性能。其中連接數(shù)據(jù)庫的字符串可以隨時在web.config里修改,并經(jīng)過編碼加密,增加了靈活性,保護了數(shù)據(jù)庫的安全。代碼盡量使用存儲過程和盡量減少數(shù)據(jù)庫連接的打開時間等手段來提高性能。</p><p>  本文中除了有對程序的系統(tǒng)分析、總體設(shè)計、數(shù)據(jù)庫設(shè)計、功能實現(xiàn)等主體部分外,在這之前還介紹了與網(wǎng)上選課系統(tǒng)相關(guān)的信息、IIS介紹、IIS與ASP.NET的結(jié)合等的基本

6、內(nèi)容及發(fā)展情況。</p><p>  關(guān)鍵詞:網(wǎng)上選課,瀏覽器/服務(wù)器結(jié)構(gòu),ASP.NET,數(shù)據(jù)庫管理系統(tǒng)</p><p><b>  Abstract</b></p><p>  With the development of the enrolling number, the data for daily registry is incre

7、asing, too. And always we should go to classroom to enroll. Although this method directly, but result in blindness of the course enrollment and registry data processing of the heavy .In order to reduce the work registry

8、,and better each student to choose their own favorite subjects .This system is special for the on-line course choosing to design both from the aspect of the student and the teacher. The student can </p><p> 

9、 This paper gives the basic design idea of the Browser/Server structure based online course elect system by analyzing the characteristic of the Browser/Server structure and combining with the actual public elective cours

10、es conditions of our school.It introduces the function module and database design briefly,followed by a discussion on database accessing technology and the active page technology of the course elect system based on ASP.N

11、ET and SQL Server 2000.By using this system,students can elec</p><p>  This paper includes the system analysis, the main designing, the database designing, the function designing and, before this, some basic

12、 knowledge and present development of the programs mentioned above. </p><p>  Keywords: online course elect, Browser/Server structure,ASP.NET, DBMS</p><p><b>  目 錄</b></p>&l

13、t;p>  摘要…………………………………………………………………………………………</p><p>  Abstract………………………………………………………………………………………</p><p><b>  緒論1</b></p><p><b>  1 引言4</b></p><

14、p>  1.1課題研究的目的4</p><p>  1.2 課題研究的意義4</p><p>  1.3 課題的可行性分析5</p><p>  1.3.1 課題調(diào)研5</p><p>  1.3.2 可行性分析5</p><p>  2 系統(tǒng)分析與總體設(shè)計5</p><p>

15、<b>  2.1系統(tǒng)分析5</b></p><p>  2.2 系統(tǒng)總體設(shè)計6</p><p>  3 數(shù)據(jù)庫設(shè)計與實現(xiàn)5</p><p>  3.1數(shù)據(jù)庫系統(tǒng)分析5</p><p>  3.2 數(shù)據(jù)庫邏輯設(shè)計8</p><p>  3.3數(shù)據(jù)庫物理實現(xiàn)9</p>&l

16、t;p>  4 公共類與公共頁面設(shè)計13</p><p>  4.1 Web.config頁面設(shè)計13</p><p>  4.2 數(shù)據(jù)庫連接操作類—Db類16</p><p>  4.3 工具類MyUtility類18</p><p>  4.4 錯誤信息類和錯誤顯示頁面19</p><p>  5

17、系統(tǒng)說明書20</p><p>  5.1系統(tǒng)界面說明20</p><p>  5.2 系統(tǒng)管理說明26</p><p>  5.3教師管理說明29</p><p><b>  總結(jié)35</b></p><p><b>  致 謝36</b></p>

18、;<p>  參 考 文 獻37</p><p><b>  緒論 </b></p><p>  數(shù)據(jù)庫是從60年代初發(fā)展起來的計算機技術(shù)。經(jīng)過四十來年的發(fā)展,數(shù)據(jù)庫技術(shù)己經(jīng)趨于成熟。Web數(shù)據(jù)庫在新的Internet環(huán)境中發(fā)生了很大的變化。就數(shù)據(jù)應(yīng)用而言呈現(xiàn)出多樣化的空間,如數(shù)字圖書館、電子出版物、電子商務(wù)、遠程教育系統(tǒng)等的出現(xiàn),給web數(shù)據(jù)庫技術(shù)

19、提出了更多、更高的要求。同時,隨著國內(nèi)高校校園網(wǎng)的建設(shè),基于互聯(lián)網(wǎng)的應(yīng)用系統(tǒng)的開發(fā)正在蓬勃發(fā)展并發(fā)揮著較大的作用。例如,我國許多高校的網(wǎng)上招生系統(tǒng),學(xué)校的各種管理信息系統(tǒng),學(xué)校選課系統(tǒng),還有一些醫(yī)學(xué)院校開發(fā)出的網(wǎng)上診所、遠程診斷系統(tǒng)等等,都是基于校園網(wǎng)的應(yīng)用系統(tǒng)。 國外的教學(xué)科研軟件與國內(nèi)相比開發(fā)的早而且比較成熟。早在七十年代末,美國就建成了NSFNET(國家科學(xué)基金網(wǎng)),其課題的申報及課題的進展情況匯報都在網(wǎng)上進行。其網(wǎng)上教學(xué)教務(wù)管理

20、系統(tǒng)也十分完善,世界各地的學(xué)生可以坐在家里通過互聯(lián)網(wǎng)完成入學(xué)報名、選課、考試、畢業(yè)論文、取得學(xué)位這一學(xué)習(xí)生活的全過程。目前,國際上已具規(guī)模的遠程教育學(xué)校就有數(shù)百所之多,網(wǎng)上教育正在各地發(fā)揮著巨大的作用,為世界各國培養(yǎng)出大批人才。所有這些都表明,基于Internet的校園網(wǎng)的應(yīng)用已深入到校園內(nèi)的各個方面。在</p><p><b>  1 引言</b></p><p>

21、;  1.1課題研究的目的</p><p>  1.掌握采用Internet的TCP/IP協(xié)議,以B/S方式,ASP.NET編程技術(shù),多媒體技術(shù)。</p><p>  2.掌握一種多任務(wù)多用戶操作系統(tǒng)</p><p>  3.ASP.NET的動態(tài)網(wǎng)頁和SQL Server大型的數(shù)據(jù)庫。</p><p>  4.學(xué)會使用某種開發(fā)工具。<

22、/p><p>  5.培養(yǎng)相互合作的精神。</p><p>  1.2 課題研究的意義 </p><p>  學(xué)生選課系統(tǒng)是一個學(xué)校不可缺少的部分,它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要,所以學(xué)生選課系統(tǒng)應(yīng)該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點,如:效率低、保密性差,另外時間一長,將產(chǎn)

23、生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少的困難。</p><p>  隨著科學(xué)技術(shù)的不斷提高,計算機科學(xué)日漸成熟,其強大的功能已為人們深刻認(rèn)識,它已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。</p><p>  作為計算機應(yīng)用的一部分,使用計算機對選課信息進行管理,有著手工管理所無法比擬的優(yōu)點.例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這

24、些優(yōu)點能夠極大地提高人事勞資管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。</p><p>  因此,開發(fā)這樣一套軟件成為很有必要的事情,在下面的各章中我們將以開發(fā)一套學(xué)生選課系統(tǒng)為例,談?wù)勂溟_發(fā)過程和所涉及到的問題及解決方法。</p><p>  本文中所做的主要工作如下:</p><p>  (1)介紹了個性化頁面的背景及Win2000serv

25、er+IIS+ASP.NET系統(tǒng)的一般原理;(2) 闡述整個個性化頁面生成系統(tǒng)的系統(tǒng)結(jié)構(gòu)及工作原理;分析了系統(tǒng)實現(xiàn)中的特殊性、難點和重點。(3) 設(shè)計實現(xiàn)用戶管理、課程管理、選課信息錄入管理、新生信息錄入管理、課程的瀏覽和查找、學(xué)生查找等ASP.NET頁面 。(4) 分析并解決實現(xiàn)中的若干技術(shù)問題。 (5) 建立完整的網(wǎng)上選課,進行測試并分析結(jié)果。</p><p>  1.3 課題的可行性分析</p

26、><p>  1.3.1 課題調(diào)研</p><p> ?。?)與實踐活動和相關(guān)的文件和資料由教師提供。</p><p> ?。?)本課題要求學(xué)生有熟練的ASP.NET開發(fā)能力,有較強的自學(xué)能力以及一定的關(guān)系數(shù)據(jù)庫理論開發(fā)功底。</p><p>  (3)具有對復(fù)雜表進行處理的能力。</p><p> ?。?)具體問題再做詳

27、細(xì)調(diào)查研究并與指導(dǎo)老師面談。</p><p>  1.3.2 可行性分析</p><p>  (1) 技術(shù)可行性-----本系統(tǒng)僅需要一臺裝有Office軟件的計算機即可,對機器本身沒有太高的要求,一般當(dāng)前學(xué)?;騻€人電腦完全可滿足要求。對于軟件技術(shù)要求,現(xiàn)在的程序設(shè)計語言已非常成熟,要運用HTML樣式,圖形圖象制作工具來制作生動活潑的網(wǎng)頁及美觀的圖形文件或動畫文件,數(shù)據(jù)庫使用SQL Ser

28、ver 2000中提供的數(shù)據(jù)庫桌面工具ODBC。</p><p>  (2) 經(jīng)濟可行性-----由于本系統(tǒng)是為學(xué)生選課管理使用的系統(tǒng),裝上該應(yīng)用軟件,即可使用系統(tǒng),系統(tǒng)成本主要集中在系統(tǒng)軟件的開發(fā)上,當(dāng)系統(tǒng)投入運行后可以為學(xué)校節(jié)約大量的人力,物力。所帶來的效益遠遠大于系統(tǒng)軟件的開發(fā)成本。在經(jīng)濟上完全可行。</p><p> ?。?) 操作可行性-----界面設(shè)計時充分考慮管理人員的習(xí)慣,

29、使得操作簡單;數(shù)據(jù)錄入迅速、規(guī)范、可靠;統(tǒng)計準(zhǔn)確;制表靈活;適應(yīng)力強;容易擴充。第2章內(nèi)容主要是:系統(tǒng)需求分析包括,現(xiàn)有系統(tǒng)介紹;系統(tǒng)的實體分析,實體關(guān)系圖。</p><p>  2 系統(tǒng)分析與總體設(shè)計</p><p><b>  2.1系統(tǒng)分析</b></p><p>  在本系統(tǒng)中,有三類用戶:系統(tǒng)管理員,教師和學(xué)生。三種不同的用戶所具有的

30、操作權(quán)限以及操作內(nèi)容均不一樣。</p><p>  本選課系統(tǒng)給予教師很大的自主權(quán),系統(tǒng)管理員只負(fù)責(zé)向系統(tǒng)中添加學(xué)生和教師的個人信息以及教學(xué)樓教室信息。系統(tǒng)管理員不參與開設(shè)課程、選擇課程等,一切均由教師、學(xué)生等錄網(wǎng)站自行完成。系統(tǒng)管理員設(shè)置一個選課時間段,在到達時間段以前,教師可以開設(shè)課程;到達時間段以后,學(xué)生可以登陸網(wǎng)站選擇課程。</p><p>  教師用戶登陸網(wǎng)站后可以開設(shè)課程,為自

31、己的課程編輯上課時間和地點,當(dāng)系統(tǒng)中出現(xiàn)時間地點沖突的時候,系統(tǒng)向教師用戶報告并推薦一個時間地點。每門課程可以是必修或則選修,教師為每門課程設(shè)置一個學(xué)分,并可以在課程結(jié)束后給予分?jǐn)?shù),如果學(xué)生及格,學(xué)生將獲得該課程的學(xué)分。</p><p>  對于學(xué)生用戶,每個學(xué)生除了必須選擇必修課程外,至少還要選擇兩門選修課程,學(xué)生可以對自己選課信息鎖定,以免不小心被修改。當(dāng)時候超過選課時段后,系統(tǒng)自動鎖定學(xué)生的選課課程。系統(tǒng)可

32、以根據(jù)學(xué)生的選課信息,生成一份學(xué)生自己的課表。課程結(jié)束后學(xué)生可登錄網(wǎng)站查詢成績與學(xué)分。</p><p>  根據(jù)上面的要求,從操作功能上可以分為兩個類:一個是通用操作,主要實現(xiàn)用戶的登錄注銷和修改密碼等;另一種是為不同用戶定制不同操作。</p><p><b>  1.通用操作</b></p><p><b> ?。?)登錄與注銷&l

33、t;/b></p><p>  每個用戶都可以用自己的帳號登錄系統(tǒng)。用戶操作完成后推出系統(tǒng),注銷后可以重新登錄系統(tǒng)。</p><p><b>  (2)修改密碼</b></p><p>  每個用戶第一次登錄都用默認(rèn)密碼(教師和學(xué)生與帳號一樣)。</p><p><b>  2.用戶所具有功能</b

34、></p><p><b>  系統(tǒng)管理員</b></p><p>  設(shè)置選課時間段:系統(tǒng)管理員通過此項功能設(shè)置選課時段,只有在選課時間段里,學(xué)生才可以選擇課程,超過次時間段,學(xué)生選課信息被自動所定,不得修改。</p><p>  錄入學(xué)生與教師個人信息:通過此項功能可以實現(xiàn)對教師和學(xué)生的個人信息添加刪除。</p><

35、;p>  錄入教學(xué)樓教室信息:通過此項功能可以把學(xué)校里所有的教學(xué)樓教室的信息錄入到系統(tǒng)中,以便教師在開設(shè)課程時候設(shè)置上課的教室。</p><p><b>  教師用戶</b></p><p>  顯示和修改個人信息:教師用戶登錄系統(tǒng)后,可以查看和修改教師的個人信息,如姓名,電話,E-mail地址等。</p><p>  開設(shè)課程:教師用戶

36、登錄系統(tǒng)后,可以開設(shè)課程,可以設(shè)置該課程為必修課程或則選修課程,可以設(shè)置該課程的最大人數(shù)。教師還可以為該課程設(shè)置一個前導(dǎo)課程,若學(xué)生沒有學(xué)習(xí)或則選擇前導(dǎo)課程則不能選擇該課程。</p><p>  編輯課程上課時間:教師在開設(shè)了課程后,可以靈活地設(shè)置上課時間和地點。</p><p>  給學(xué)生分?jǐn)?shù):課程結(jié)束后,教師用戶登錄系統(tǒng),可以為學(xué)過課程的學(xué)生給予相應(yīng)的成績,若</p>&

37、lt;p>  及格,給予學(xué)生學(xué)分。</p><p><b>  學(xué)生用戶</b></p><p>  顯示和修改個人信息:學(xué)生登錄系統(tǒng)后,可以查看和修改學(xué)生的個人信息,如姓名,性別,電話等。</p><p>  查看必修課程:學(xué)生登錄后,可以查看所有的必修課程。查看該課程的信息,上課時間地點,開課教師信息等。</p><

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

39、lt;/p><p><b>  查看學(xué)分和成績</b></p><p>  課程結(jié)束后,學(xué)生登錄系統(tǒng)可查看自己學(xué)習(xí)課程的成績和已獲的學(xué)分。</p><p>  2.2 系統(tǒng)總體設(shè)計</p><p>  在前面的系統(tǒng)的系統(tǒng)功能分析中,將系統(tǒng)劃分成10個模塊,如圖:</p><p>  圖2-1

40、 系統(tǒng)模塊結(jié)構(gòu)圖</p><p>  用戶登錄身份驗證模塊驗證用戶名和密碼,并根據(jù)不同的用戶類型,跳轉(zhuǎn)到對應(yīng)的頁面中。設(shè)置選課時間模塊提供給系統(tǒng)管理員修改選課時間段。錄入信息模塊提供給系統(tǒng)管理員,用來錄入學(xué)生和教師信息,以及錄入教學(xué)樓教室等信息。開設(shè)課程模塊提供給教師用戶,用來開設(shè)一門必修課程或則選修課程。編輯課程時間地點模塊提供給教師用戶,編輯課程的上課時間地點友好的界面和操作。評分模塊用于教師用戶給選修該教

41、師開設(shè)的課程的學(xué)生評分。查看課程模塊包括查看必修課程、查看選修課程、查看已選課程、查看課程成績單。選課和鎖定模塊中實現(xiàn)選擇選修課程和鎖定選課信息的功能。</p><p>  3 數(shù)據(jù)庫設(shè)計與實現(xiàn)</p><p>  數(shù)據(jù)庫是此類系統(tǒng)的核心,系統(tǒng)中所有的信息都存儲在數(shù)據(jù)庫中,在所有ASP.NET頁面中通過ADO.NET與數(shù)據(jù)庫連接,操作數(shù)據(jù)庫中的數(shù)據(jù),從而實現(xiàn)所有需要的功能。 數(shù)據(jù)庫軟件有很

42、多,如Microsoft SQL Server 2000等。本系統(tǒng)中數(shù)據(jù)庫采用 Microsoft SQL Server 2000作為數(shù)據(jù)庫工具。數(shù)據(jù)庫是網(wǎng)站的核心,數(shù)據(jù)庫設(shè)計的合理與否對網(wǎng)站的建設(shè)有著至關(guān)重要的影響。一個良好的數(shù)據(jù)庫開發(fā)過程一般是先系統(tǒng)分析,再邏輯設(shè)計,然后物理實現(xiàn)。系統(tǒng)分析中分析數(shù)據(jù)庫用戶需求,并畫出E-R圖直觀地表示出數(shù)據(jù)庫系統(tǒng)的需求。邏輯設(shè)計中根據(jù)系統(tǒng)分析設(shè)計的一個關(guān)系模型。物理設(shè)計

43、為邏輯設(shè)計中的數(shù)據(jù)模型選取一個最合理的應(yīng)用環(huán)境的物理結(jié)構(gòu),通常選取一個常用數(shù)據(jù)庫軟件,用數(shù)據(jù)庫軟件創(chuàng)建與邏輯設(shè)計中數(shù)據(jù)模型對應(yīng)的數(shù)據(jù)庫。</p><p>  3.1數(shù)據(jù)庫系統(tǒng)分析</p><p>  本系統(tǒng)的數(shù)據(jù)庫實體主要有“學(xué)生”、“教師”、“教學(xué)樓”、“教室”、“課程”等。其中“教師”與“課程”存在“開設(shè)”聯(lián)系,并且一個教師可以開設(shè)N門課程,即“教師”與“課程”之間是一對多的關(guān)系。同

44、樣“教學(xué)樓”與“教室”也存在一對多的關(guān)系。一個學(xué)生可以學(xué)習(xí)N門課程,一門課程可以有M個學(xué)生學(xué)習(xí),即“學(xué)生”與“課程”之間是多對多的關(guān)系。同樣“課程”與“教室”之間也是多對多的關(guān)系。整個數(shù)據(jù)庫可以用一個E-R圖表示,如圖:</p><p>  圖3_1 課程 E-R圖</p><p>  E—R圖中的實體圖:</p><p>  圖 3-2 教學(xué)樓E_R圖<

45、;/p><p>  圖3-3 教室E_R圖</p><p>  圖3-4 學(xué)生E_R圖</p><p>  圖 3_5 課程E_R圖</p><p>  圖 3_6 選課E_R圖</p><p>  圖 3_7 教師E_R圖</p><p>  圖3_8 課程時間地點E_R圖</p>

46、;<p>  圖 3_9 管理員E_R圖</p><p>  3.2 數(shù)據(jù)庫邏輯設(shè)計</p><p>  數(shù)據(jù)庫邏輯設(shè)計就是將E—R圖轉(zhuǎn)換為關(guān)系模型的過程,即將所有實體和關(guān)系轉(zhuǎn)換成一系列的關(guān)系模式。轉(zhuǎn)換過程中常見規(guī)則有:</p><p> ?。?)一個實體型轉(zhuǎn)換為一個關(guān)系模式;</p><p> ?。?)一個一對一的聯(lián)系可轉(zhuǎn)

47、換成一個獨立的關(guān)系模式,也可與任意一端對應(yīng)的關(guān)系模式合并;</p><p> ?。?)一個一對多的聯(lián)系可以轉(zhuǎn)換成一個獨立的關(guān)系模式,也可與多的那一端對應(yīng)的關(guān)系模式合并;</p><p>  (4)一個多對多的關(guān)系轉(zhuǎn)換成一個關(guān)系模式。</p><p>  根據(jù)以上四條規(guī)則,下面將E—R圖轉(zhuǎn)換成關(guān)系模型。</p><p>  對于“教學(xué)樓”、“教

48、室”和兩者之間的關(guān)系,就可以根據(jù)規(guī)則(3)轉(zhuǎn)換成兩個關(guān)系模式</p><p>  教學(xué)樓(教學(xué)樓ID,教學(xué)樓名稱)</p><p>  教室(教室ID,教學(xué)樓ID,教室名稱)</p><p>  對于“學(xué)生”、“課程”和它們之間的“選修”關(guān)系就可以規(guī)則(4)轉(zhuǎn)換成三個關(guān)系模式。</p><p>  學(xué)生(學(xué)號,姓名,性別,年齡,登陸密碼,學(xué)分

49、,地址,電話,電子郵件)</p><p>  課程(課程編碼,課程名稱,開課教師編號,學(xué)分,最大人數(shù),課程簡介,前導(dǎo)課程編號)</p><p>  選課(學(xué)號,課程編號,成績)</p><p>  依次類推,剩下的關(guān)系轉(zhuǎn)換成下面三個關(guān)系模式:</p><p>  教師(教師編號,姓名,性別,年齡,電話,電子郵件,個人簡介)</p>

50、<p>  課程時間地點(課程編號,開始周次,結(jié)束周次,上課時間,上課教室ID)</p><p>  管理員(帳號,密碼)</p><p>  3.3數(shù)據(jù)庫物理實現(xiàn)</p><p>  經(jīng)過數(shù)據(jù)庫系統(tǒng)分析和邏輯設(shè)計后,數(shù)據(jù)庫的結(jié)構(gòu)已經(jīng)非常清晰,剩下的就是用一種數(shù)據(jù)庫軟件實現(xiàn)這樣的結(jié)構(gòu)。本系統(tǒng)中數(shù)據(jù)庫采用Microsoft SQL Server 2000

51、作為數(shù)據(jù)庫。首先我們在Microsoft SQL Server 2000的“企業(yè)管理器”創(chuàng)建一個數(shù)據(jù)庫,我們命名為“SC”,如圖3-1:</p><p><b>  圖3-1創(chuàng)建數(shù)據(jù)庫</b></p><p>  選中SC數(shù)據(jù)庫,向數(shù)據(jù)庫中添加8個表:Student,Teacher,Course,SC,CourseTime,Building,Room和Admin,每個

52、表與邏輯設(shè)計中一種的關(guān)系模式相對應(yīng)。下面是每個數(shù)據(jù)表中的屬性,包括屬性列的名稱、數(shù)據(jù)類型、長度、是否可以為空和備注說明等內(nèi)容。</p><p>  Student表。Student表用來存儲學(xué)生的個人信息,使用學(xué)號作為主鍵,如表3-2:</p><p>  表3-2 Student表</p><p>  Teacher表。Teacher表用來存儲教師的個人信息,用學(xué)

53、校分配給教師的教師編號作為主鍵,這樣可以避免重復(fù),如圖3-3:</p><p>  表3-3 Teacher表</p><p>  Course表。Course表用來存儲課程信息,Course表以課程編號為主鍵,設(shè)置課程編號自動增加1(通過建表的時候?qū)傩粤性O(shè)置“標(biāo)識”,并設(shè)置“標(biāo)識遞增量”為1)。表中開課教師Id為外鍵,所有“TId”的值必須是Teacher表中的“TId”值。設(shè)置外鍵關(guān)

54、系可以通過在建立表的窗口中單擊右鍵,在右鍵菜單中選擇“關(guān)系”,在彈出的對話框中設(shè)置外鍵關(guān)系。如表3-4:</p><p>  表3-4 Course表</p><p>  SC表。SC表用于存儲學(xué)生的選課信息,在SC表中學(xué)號和課程編號是主鍵,同時也是外鍵。如表3-5:</p><p><b>  表3-5 SC表</b></p>

55、<p>  CourseTime表。CourseTime表用來存放課程的上課時間和上課地點信息,其中課程編號和教室編號為外鍵。如表3-6:</p><p>  表3-6 CourseTime表</p><p>  Building表。Building表用來存放教學(xué)樓信息,Building表中教學(xué)樓編號為主鍵,自動增加1。如表3-7:</p><p>  表

56、3-7 Building表</p><p>  Room表。Room表用來存放教室信息,在Room表中,教室編號為主鍵,自動增加1,教學(xué)編號為外鍵。如3-8:</p><p>  表3-8 Room表</p><p>  Admin表。Admin表用來存放系統(tǒng)管理員信息,如表3-9:</p><p>  表3-9 Admin表</p&g

57、t;<p>  4 公共類與公共頁面設(shè)計</p><p>  4.1 Web.config頁面設(shè)計</p><p>  Web.Config文件是用來保存網(wǎng)站的很多全局設(shè)置,代碼是通過using Configuration引用,在Web.Config文件中添加數(shù)據(jù)庫連接字符串。在ADO.NET中用一個字符串來表示一個數(shù)據(jù)庫,一般都把這個字符串放到Web.Config文件中,在

58、整個項目中均可使用。</p><p>  <?xml version="1.0" encoding="utf-8" ?></p><p>  <configuration></p><p>  <system.web></p><p>  <!-- 動態(tài)調(diào)試編

59、譯</p><p>  設(shè)置 compilation debug="true" 以啟用 ASPX 調(diào)試。否則,將此值設(shè)置為</p><p>  false 將提高此應(yīng)用程序的運行時性能。</p><p>  設(shè)置 compilation debug="true" 以將調(diào)試符號(.pdb 信息)</p><p

60、>  插入到編譯頁中。因為這將創(chuàng)建執(zhí)行起來</p><p>  較慢的大文件,所以應(yīng)該只在調(diào)試時將此值設(shè)置為 true,而在所有其他時候都設(shè)置為</p><p>  false。有關(guān)更多信息,請參考有關(guān)</p><p>  調(diào)試 ASP.NET 文件的文檔。</p><p><b>  --></b><

61、/p><p>  <compilation </p><p>  defaultLanguage="c#"</p><p>  debug="true"</p><p><b>  /></b></p><p>  <!-- 自定義錯誤信息&

62、lt;/p><p>  設(shè)置 customErrors mode="On" 或 "RemoteOnly" 以啟用自定義錯誤信息,或設(shè)置為 "Off" 以禁用自定義錯誤信息。 </p><p>  為每個要處理的錯誤添加 <error> 標(biāo)記。</p><p>  "On" 始終顯

63、示自定義(友好的)信息。</p><p>  "Off" 始終顯示詳細(xì)的 ASP.NET 錯誤信息。</p><p>  "RemoteOnly" 只對不在本地 Web 服務(wù)器上運行的</p><p>  用戶顯示自定義(友好的)信息。出于安全目的,建議使用此設(shè)置,以便 </p><p>  不向遠程客

64、戶端顯示應(yīng)用程序的詳細(xì)信息。</p><p><b>  --></b></p><p>  <customErrors </p><p>  mode="RemoteOnly" </p><p><b>  /> </b></p><p&g

65、t;  <!-- 身份驗證 </p><p>  此節(jié)設(shè)置應(yīng)用程序的身份驗證策略。可能的模式是 "Windows"、 </p><p>  "Forms"、 "Passport" 和 "None"</p><p>  "None" 不執(zhí)行身份驗證。 </

66、p><p>  "Windows" IIS 根據(jù)應(yīng)用程序的設(shè)置執(zhí)行身份驗證 </p><p>  (基本、簡要或集成 Windows)。在 IIS 中必須禁用匿名訪問。</p><p>  "Forms" 您為用戶提供一個輸入憑據(jù)的自定義窗體(Web 頁),然后 </p><p>  在您的應(yīng)用程序中驗證他

67、們的身份。用戶憑據(jù)標(biāo)記存儲在 Cookie 中。</p><p>  "Passport" 身份驗證是通過 Microsoft 的集中身份驗證服務(wù)執(zhí)行的,</p><p>  它為成員站點提供單獨登錄和核心配置文件服務(wù)。</p><p><b>  --></b></p><p>  <a

68、uthentication mode="Windows" /> </p><p><b>  <!-- 授權(quán) </b></p><p>  此節(jié)設(shè)置應(yīng)用程序的授權(quán)策略??梢栽试S或拒絕不同的用戶或角色訪問</p><p>  應(yīng)用程序資源。通配符: "*" 表示任何人,"?"

69、; 表示匿名</p><p>  (未經(jīng)身份驗證的)用戶。</p><p><b>  --></b></p><p>  <authorization></p><p>  <allow users="*" /> <!-- 允許所有用戶 --></p&

70、gt;<p>  <!-- <allow users="[逗號分隔的用戶列表]"</p><p>  roles="[逗號分隔的角色列表]"/></p><p>  <deny users="[逗號分隔的用戶列表]"</p><p>  roles=

71、"[逗號分隔的角色列表]"/></p><p><b>  --></b></p><p>  </authorization></p><p>  <!-- 應(yīng)用程序級別跟蹤記錄</p><p>  應(yīng)用程序級別跟蹤為應(yīng)用程序中的每一頁啟用跟蹤日志輸出。</p&

72、gt;<p>  設(shè)置 trace enabled="true" 可以啟用應(yīng)用程序跟蹤記錄。如果 pageOutput="true",則</p><p>  在每一頁的底部顯示跟蹤信息。否則,可以通過瀏覽 Web 應(yīng)用程序</p><p>  根目錄中的 "trace.axd" 頁來查看</p><

73、;p><b>  應(yīng)用程序跟蹤日志。</b></p><p><b>  --></b></p><p><b>  <trace</b></p><p>  enabled="false"</p><p>  requestLimit=&

74、quot;10"</p><p>  pageOutput="false"</p><p>  traceMode="SortByTime"</p><p>  localOnly="true"</p><p><b>  /></b></

75、p><p>  <!-- 會話狀態(tài)設(shè)置</p><p>  默認(rèn)情況下,ASP.NET 使用 Cookie 來標(biāo)識哪些請求屬于特定的會話。</p><p>  如果 Cookie 不可用,則可以通過將會話標(biāo)識符添加到 URL 來跟蹤會話。</p><p>  若要禁用 Cookie,請設(shè)置 sessionState cookieless=

76、"true"。</p><p><b>  --></b></p><p>  <sessionState </p><p>  mode="InProc"</p><p>  stateConnectionString="tcpip=127.0.0.1:42

77、424"</p><p>  sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"</p><p>  cookieless="false" </p><p>  timeout="20" </p>&l

78、t;p><b>  /></b></p><p><b>  <!-- 全球化</b></p><p>  此節(jié)設(shè)置應(yīng)用程序的全球化設(shè)置。</p><p><b>  --></b></p><p>  <globalization </p

79、><p>  requestEncoding="utf-8" </p><p>  responseEncoding="utf-8" </p><p><b>  /></b></p><p>  </system.web></p><p> 

80、 <appSettings></p><p>  <!-- 數(shù)據(jù)庫連接字符串</p><p><b>  --></b></p><p>  <add key="ConnectionString" value="data source=(local);initial catalog

81、=sc;persist security info=True;user id=sa;pwd=sa;packet size=4096" /></p><p>  <!-- 選課時間段</p><p><b>  --></b></p><p>  <add key="SCDateTime"

82、 value="2005-06-01 00:00:00 / 2005-06-15 00:00:00" /></p><p>  <add key="time.txt" value="E:\\選課系統(tǒng)\\time.txt" /></p><p>  </appSettings></p>&

83、lt;p>  </configuration></p><p>  在上面的代碼中部分解釋:</p><p>  Data source:表示數(shù)據(jù)庫服務(wù)器地址,可以填I(lǐng)P地址,若為本機數(shù)據(jù)庫,則填(local)</p><p>  Initial catalog:表示數(shù)據(jù)庫名稱。</p><p>  Persist secu

84、rity info:表示數(shù)據(jù)庫登錄驗證模式。SQL Server支持用戶名登錄驗證和Windows身份驗證兩種模式。一般選用前一種,故這里Persist security info的值署為True。</p><p>  User id:表示登錄數(shù)據(jù)庫的用戶名。</p><p>  Pwe:表示登錄數(shù)據(jù)庫的用戶名的密碼。</p><p>  Packet size:表

85、示包的大小值,此項默認(rèn)配置為4096即可。</p><p>  4.2 數(shù)據(jù)庫連接操作類—Db類</p><p>  在ASP.NET中通過ADO.NET技術(shù)對數(shù)據(jù)庫進行操作。ADO.NET中有許多很方便的類可用來操作數(shù)據(jù)庫,例如SqlConnection類、SqlDataAdapter類、SqlCommand類、DataSet類等。由于在選課系統(tǒng)中,操作數(shù)據(jù)庫的地方非常多,為了避免很多重

86、復(fù)代碼的編寫,所以對數(shù)據(jù)庫操作做了簡單的封裝—Db類。在Db類中有三個靜態(tài)函數(shù)ExecuteSelectSql、ExecuteSql和ExecuteInsertSql,其中ExecuteSelectSql函數(shù)用來執(zhí)行查詢操作,ExecuteSql用來執(zhí)行修改、插入和刪除三類操作,ExecuteInsertSql執(zhí)行需要返回剛插入記錄的identity的insert語句。</p><p>  通過ADO.NET執(zhí)行

87、SQL語句從而對數(shù)據(jù)庫進行操作,一般順序為:先通過SqlConnection的Open函數(shù)連接到數(shù)據(jù)庫,然后再通過Sqlcommand執(zhí)行指定的SQL語句,執(zhí)行結(jié)束后再調(diào)用SqlConnection的Close函數(shù)關(guān)閉數(shù)據(jù)庫連接。</p><p>  ExecuteSelectSql函數(shù)的代碼如下:</p><p>  /// <summary></p><

88、p>  /// 執(zhí)行select類型的sql語句,返回select得到的數(shù)據(jù)集</p><p>  /// </summary></p><p>  /// <param name="sqlSelect">select語句</param></p><p>  /// <returns>返回se

89、lect得到的數(shù)據(jù)集</returns></p><p>  public static DataSet ExecuteSelectSql( string sqlSelect )</p><p><b>  {</b></p><p>  SqlConnection conn = new SqlConnection(connStri

90、ng);</p><p>  SqlDataAdapter sda = new SqlDataAdapter(sqlSelect,conn);</p><p>  DataSet ds = new DataSet();</p><p><b>  try</b></p><p><b>  {</b>

91、;</p><p>  sda.Fill(ds);</p><p><b>  }</b></p><p>  catch(SqlException e)</p><p><b>  {</b></p><p>  throw new Exception(e.Message)

92、;</p><p><b>  }</b></p><p>  return ds;</p><p><b>  } </b></p><p>  ExecuteSql函數(shù)代碼如下:</p><p>  public static int ExecuteSql( string

93、 sql )</p><p><b>  {</b></p><p>  int rows = -1;</p><p>  SqlConnection conn = new SqlConnection(connString);</p><p>  SqlCommand cmd = new SqlCommand(sql,c

94、onn);</p><p><b>  try</b></p><p><b>  {</b></p><p>  conn.Open();</p><p>  rows = cmd.ExecuteNonQuery();</p><p><b>  }</b&

95、gt;</p><p>  catch(SqlException e)</p><p><b>  {</b></p><p>  throw new Exception(e.Message);</p><p><b>  }</b></p><p><b>  f

96、inally</b></p><p><b>  {</b></p><p>  cmd.Dispose();</p><p>  conn.Close();</p><p><b>  } </b></p><p>  return rows;</p

97、><p><b>  }</b></p><p>  4.3 工具類MyUtility類</p><p>  在網(wǎng)站的編寫過程中經(jīng)常會有很多公共函數(shù)調(diào)用,把它們都寫在一個工具類里:MyUtility類,每個函數(shù)作為工具類的一個靜態(tài)成員函數(shù)。其中包括MD5靜態(tài)成員函數(shù)以及Alert靜態(tài)成員函數(shù)。</p><p>  MD5靜態(tài)

98、成員函數(shù):MD5算法。MD5算法是一個不可逆的加密算法,通常用于重要信息的加密,如登錄密碼,在ASP.NET中,提供有MD5的算法實現(xiàn)函數(shù),調(diào)用MD5算法代碼如下:</p><p>  public static string MD5(string str)</p><p><b>  {</b></p><p>  string result

99、 = "";</p><p>  result = FormsAuthentication.HashPasswordForStoringInConfigFile(str,"MD5");</p><p>  return result;</p><p><b>  }</b></p><

100、p>  Alert靜態(tài)成員函數(shù)的功能是顯示一個提示對話框,在網(wǎng)站的運行過程中,經(jīng)常需要給用戶一些即時反饋,比如修改密碼成功,選課成功等提示框。代碼如下:</p><p>  public static string Alert(string s)</p><p><b>  {</b></p><p>  return "<

101、;script language=\"javascript\">alert(\""+s+"\");</script>";</p><p><b>  }</b></p><p>  Back函數(shù)的功能是回退到某個網(wǎng)頁,i的取值通常為負(fù),當(dāng)為-1時表示回退到上一個網(wǎng)頁,為-2時表示回

102、退到上上個網(wǎng)頁,依次類推。代碼如下:</p><p>  public static string Back(int i)</p><p><b>  {</b></p><p>  return "<script language=\"javascript\">location.href=\"

103、;javascript:history.go("+i+");\";</script>";</p><p><b>  }</b></p><p>  4.4 錯誤信息類和錯誤顯示頁面</p><p>  在用戶使用系統(tǒng)過程中,可能由于用戶操作失敗或則網(wǎng)絡(luò)原因等,系統(tǒng)運行會出現(xiàn)一些錯誤,為了便于

104、統(tǒng)一,本系統(tǒng)定義專用的錯誤信息類和錯誤顯示頁面。在錯誤信息類ErrorInfo類中,定義了所有的本系統(tǒng)中所出現(xiàn)的錯誤情況和函數(shù)Message。函數(shù)Message根據(jù)錯誤情況得到相應(yīng)顯示字符串。錯誤顯示頁面根據(jù)URL中錯誤代碼參數(shù)顯示不同的錯誤信息。</p><p><b>  4.5登錄頁面</b></p><p>  登錄頁面是所有用戶公用的功能。不同的用戶登錄到系

105、統(tǒng)中將轉(zhuǎn)向不同的頁面。解決方法運用了ASP.NET的內(nèi)置對象Session記錄用戶登錄信息,同樣也可以在網(wǎng)站里隨時判斷用戶是否已經(jīng)登錄。</p><p><b>  5 系統(tǒng)說明書</b></p><p><b>  5.1系統(tǒng)界面說明</b></p><p>  下面是在線選課系統(tǒng)的預(yù)覽,此處簡單介紹本系統(tǒng)的部分功能。&

106、lt;/p><p>  1.登錄頁面,如圖5-1:</p><p>  圖5-1用戶登錄界面</p><p>  在用戶名和密碼處輸入用戶名和密碼,在“用戶類型”下拉列表框中選擇“學(xué)生”,單擊“登錄”按鈕,登錄選課系統(tǒng)。</p><p><b>  主要代碼如下:</b></p><p>  priv

107、ate void btnLogin_Click(object sender, System.EventArgs e)</p><p><b>  {</b></p><p>  int type = Int32.Parse(ddlType.SelectedItem.Value);</p><p>  string user = txtUser.

108、Text.Trim();</p><p>  string inputkey = txtKey.Text.Trim();</p><p>  string key = "";</p><p>  string sql = "";</p><p>  DataSet ds;</p><

109、p>  switch( type )</p><p><b>  {</b></p><p>  case 1://學(xué)生</p><p>  //驗證學(xué)生身份代碼 </p><p><b>  break;</b></p><p&g

110、t;  case 2://教師</p><p>  //驗證教師身份代碼</p><p><b>  break;</b></p><p>  case 3://系統(tǒng)管理員</p><p>  //驗證管理員身份代碼</p><p><b>  break;</b>

111、;</p><p><b>  default;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  查看必修課程列表頁面,如

112、圖5-2:</p><p>  圖5-2 必修課信息查詢</p><p>  登錄成功后,進入學(xué)生主頁,點擊“必修課程”鏈接,得到所有必修課程的列表,在列表中可以看到所有必修課程及課程的簡單信息,如授課教師姓名、課程所占學(xué)分等。</p><p>  在列表中可以點課程名稱,如“計算機應(yīng)用基礎(chǔ)”鏈接,查看課程詳細(xì)信息;點教師姓名,如“李萍”鏈接,查看教師的詳細(xì)信息;

113、點擊“查看上課時間地點”鏈接,查看對應(yīng)課程的上課時間和地點。</p><p>  在頁面加載的時候從數(shù)據(jù)庫讀取所有必修課信息,代碼如下:</p><p>  string sql = "select Course.*,TName from Course,Teacher where CType like '必修' and Course.TId like Teache

114、r.TId";//查詢處所有必修課程信息</p><p>  DataSet ds = Db.ExecuteSelectSql(sql);</p><p>  if ( ds != null && ds.Tables.Count > 0 )</p><p><b>  {</b></p><p

115、>  dgCourse.DataSource = ds.Tables[0];</p><p>  dgCourse.DataBind();//將查詢結(jié)果綁定到DataGrid中</p><p><b>  }</b></p><p>  查看選修課程列表頁面,如圖5-3:</p><p>  圖5-3選修課信息查詢

116、</p><p>  單擊“選修課程”鏈接,查看所有選修課程列表,在列表中給出了比必修課程更多的信息,比如多了對應(yīng)選修課程的前導(dǎo)課程、最大人數(shù)、當(dāng)前已選人數(shù)等,對每個選修課程均有一個“選修該課程”的按鈕,單擊此按鈕方可選擇對應(yīng)課程。</p><p>  主要代碼如下: </p><p>  string sql = "select x.*,TName

117、,(select CName from Course as y where y.CId = x.CPreCId) as CPreCName from Course as x,Teacher where x.CType like '選修' and x.TId like Teacher.TId";</p><p>  //查詢該學(xué)生已選修的課程</p><p>  D

118、ataSet ds = Db.ExecuteSelectSql(sql);</p><p>  if ( ds != null && ds.Tables.Count > 0 )</p><p><b>  {</b></p><p>  dgCourse.DataSource = ds.Tables[0];</p&g

119、t;<p>  dgCourse.DataBind();</p><p>  for ( int i = 0; i < ds.Tables[0].Rows.Count; i++ )</p><p><b>  {</b></p><p>  sql = "select count(*) from SC where

120、CId = "+ds.Tables[0].Rows[i]["CId"].ToString();</p><p>  DataSet ds1 = Db.ExecuteSelectSql(sql);</p><p>  if ( ds1 != null && ds1.Tables.Count > 0 && ds1.Tables

121、[0].Rows.Count > 0 )</p><p>  dgCourse.Items[i].Cells[6].Text = ds1.Tables[0].Rows[0][0].ToString();</p><p><b>  }</b></p><p><b>  }</b></p><p&

122、gt;  bool locked= bool.Parse(Session["Locked"].ToString());</p><p>  if ( ! locked )</p><p><b>  {</b></p><p>  lbLock.Text = "您尚未鎖定選課信息!";</p>

123、<p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  lbLock.Text = "選課信息已被鎖定!";</p><p>  dgCourse.Columns

124、[9].Visible = false;</p><p><b>  }</b></p><p>  查看已選課程頁面,如圖5-4:</p><p><b>  圖5-4 已選課程</b></p><p>  在上一步查看選修課程的列表中,選擇“計算機密碼學(xué)”、“計算機圖形學(xué)”、“線性代數(shù)”三門課程

125、后,點擊“已選課程”鏈接查看已經(jīng)選擇的課程列表,在列表中除了可以看到與上一步中相同的信息外,還可以查看到課程成績。剛才選擇的三門課程的成績均為0,當(dāng)課程結(jié)束后,教師登錄本系統(tǒng)給所有學(xué)生評分,學(xué)生再次瀏覽此頁面可查看到課程的成績,若成績合格,學(xué)生可獲得對應(yīng)課程的學(xué)分。</p><p><b>  鎖定課程代碼如下:</b></p><p>  string sql =

溫馨提示

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

評論

0/150

提交評論