畢業(yè)論文——基于BS結(jié)構(gòu)的在線(xiàn)學(xué)籍管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于B/S結(jié)構(gòu)的在線(xiàn)學(xué)籍管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘 要隨著科學(xué)技術(shù)的發(fā)展,計(jì)算機(jī)領(lǐng)域不斷取得新的研究成果。計(jì)算機(jī)在代替和延伸腦力勞動(dòng)方面發(fā)揮越來(lái)越重要的作用,不僅在工業(yè)方面而且在日常生活中也越來(lái)越離不開(kāi)計(jì)算機(jī)。而在學(xué)校里,也需要計(jì)算機(jī)來(lái)處理大量的學(xué)生數(shù)據(jù)。在數(shù)字化的今天,為了加快學(xué)校學(xué)籍管理,以及使學(xué)校對(duì)學(xué)生數(shù)據(jù)的管理更加簡(jiǎn)單。開(kāi)發(fā)一套學(xué)籍管理系統(tǒng)迫在眉捷,結(jié)合本次畢業(yè)設(shè)計(jì)的題目開(kāi)發(fā)了學(xué)籍管理系統(tǒng)。本文是對(duì)學(xué)校里的大量學(xué)生學(xué)籍信息處理的研究。本文是基于B/S結(jié)構(gòu)的在線(xiàn)學(xué)籍管理系統(tǒng),開(kāi)發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用界面的開(kāi)發(fā)兩個(gè)方面。本系統(tǒng)用ASP.NET進(jìn)行開(kāi)發(fā)與設(shè)計(jì),用SQL開(kāi)發(fā)后臺(tái)數(shù)據(jù)庫(kù)。在界面外觀上便于瀏覽和操作,數(shù)據(jù)查詢(xún)時(shí)簡(jiǎn)單快捷。系統(tǒng)實(shí)現(xiàn)了學(xué)生信息的添加、刪除和修改,以及用戶(hù)的注冊(cè)、權(quán)限設(shè)置。關(guān)鍵詞:學(xué)籍管理;B/S結(jié)構(gòu);后臺(tái)數(shù)據(jù)庫(kù)設(shè)計(jì)The Design and Implementation of On-line Student Status Management System Based on B/S structureAbstractWith the development of the science and technology, computer plays a more and more important part in replacing and extending the peoples capacity. People use computer not only in the industry field, but also in the daily life. A lot of data needs to be dealt with,especially in school. In the modern society, student management is greatly improved by using computer. The system is based on B/S structure, as a part of the application of the computer; student information management system has its own advantages. The system contains two aspects: setting up and maintenance of background database; and the development of the interface. The system is developed by using ASP.NET, and database is operated with SQL. The interface is friendly to browse and operate, and the data is easy to query. The following functions have been implemented, for example, student informations addition, deletion and modification, as well as users registration and privilege setup.Key words: Student Management; B/S Structure; Background Database Design目 錄論文總頁(yè)數(shù):22頁(yè)1引言11.1課題背景11.2選題意義11.3主要研究?jī)?nèi)容11.4主要研究思路和方法12基礎(chǔ)理論介紹12.1B/S模式12.2ASP.NET技術(shù)22.3C#語(yǔ)言32.4結(jié)構(gòu)化查詢(xún)語(yǔ)言SQL33系統(tǒng)方案33.1系統(tǒng)結(jié)構(gòu)設(shè)計(jì)33.2系統(tǒng)模塊劃分33.3系統(tǒng)功能關(guān)系圖44系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)64.1系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)64.2系統(tǒng)功能模塊的設(shè)計(jì)與實(shí)現(xiàn)95系統(tǒng)測(cè)試175.1測(cè)試環(huán)境175.2測(cè)試過(guò)程175.3測(cè)試結(jié)果19結(jié) 論19參考文獻(xiàn)20致 謝21聲 明221 引言1.1 課題背景隨著科學(xué)技術(shù)、網(wǎng)絡(luò)信息的不斷發(fā)展,計(jì)算機(jī)科學(xué)也日漸成熟,其強(qiáng)大的功能已成為人們深刻認(rèn)識(shí),如今,它已進(jìn)入人類(lèi)社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)生信息進(jìn)行管理,具有手工管理所無(wú)法比擬的優(yōu)點(diǎn)?,F(xiàn)今學(xué)校的規(guī)模不斷擴(kuò)大,學(xué)生數(shù)量急劇增加,有關(guān)學(xué)生的各種信息量也成倍增長(zhǎng)。而對(duì)龐大的信息量,需要有學(xué)生學(xué)籍管理系統(tǒng)來(lái)提高學(xué)生管理工作的效率。通過(guò)這樣的系統(tǒng),可以做到信息的規(guī)范管理,科學(xué)統(tǒng)計(jì)和快速查詢(xún),從而減少管理方面的工作量。1.2 選題意義針對(duì)目前學(xué)校發(fā)展迅速,學(xué)生管理要求不斷加強(qiáng)和復(fù)雜化,在線(xiàn)學(xué)籍管理系統(tǒng)由此誕生,為使學(xué)校管理各種各樣學(xué)生信息,為老師和學(xué)生方便簡(jiǎn)捷的查詢(xún)所需信息和資源,也為了后臺(tái)的維護(hù)和更新。學(xué)生學(xué)籍管理是一個(gè)教育單位不可缺少的部分,它的內(nèi)容對(duì)于學(xué)校的管理和運(yùn)行來(lái)說(shuō)相當(dāng)重要,所以本系統(tǒng)應(yīng)該能夠?yàn)橛脩?hù)提供充足的信息和快捷的查詢(xún)方式。1.3 主要研究?jī)?nèi)容綜合運(yùn)用以前所學(xué)的專(zhuān)業(yè)知識(shí),設(shè)計(jì)開(kāi)發(fā)一個(gè)學(xué)籍管理系統(tǒng),本設(shè)計(jì)要求實(shí)現(xiàn)部分功能學(xué)籍的管理、學(xué)籍的錄入、學(xué)籍的修改。具體包括以下內(nèi)容:(1)在設(shè)計(jì)與開(kāi)發(fā)中,既探討能實(shí)現(xiàn)用戶(hù)對(duì)學(xué)籍資料的查詢(xún),又能實(shí)現(xiàn)安全可靠的修改,管理;(2)能實(shí)現(xiàn)用戶(hù)的添加與管理,添加時(shí)能進(jìn)行身份驗(yàn)證。1.4 主要研究思路和方法主要針對(duì)B/S模式實(shí)現(xiàn)在線(xiàn)學(xué)籍管理,在界面外觀上便于操作和瀏覽。數(shù)據(jù)庫(kù)查詢(xún)簡(jiǎn)單容易。本系統(tǒng)將采用ASP.NET2.0來(lái)開(kāi)發(fā),用C#語(yǔ)言編寫(xiě)代碼,SQL創(chuàng)立連接數(shù)據(jù)庫(kù)。在模塊開(kāi)發(fā)和程序編寫(xiě)的過(guò)程中,學(xué)習(xí)和掌握系統(tǒng)模塊的開(kāi)發(fā)與設(shè)計(jì),熟悉代碼的編寫(xiě)和含義。掌握數(shù)據(jù)庫(kù)的創(chuàng)建和修改、以及各個(gè)表之間的關(guān)系。2 基礎(chǔ)理論介紹系統(tǒng)采用B/S工作模式,前臺(tái)使用ASP.NET技術(shù),用C#語(yǔ)言編譯。后臺(tái)使用SQL 2000數(shù)據(jù)庫(kù)平臺(tái), 2.1 B/S模式B/S結(jié)構(gòu)(Browser/Server結(jié)構(gòu))結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶(hù)工作界面是通過(guò)WWW瀏覽器來(lái)實(shí)現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端(Server)實(shí)現(xiàn),形成所謂三層3-tier結(jié)構(gòu)。這樣就大大簡(jiǎn)化了客戶(hù)端電腦載荷,減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量,降低了用戶(hù)的總體成本(TCO)。以目前的技術(shù)看,局域網(wǎng)建立B/S結(jié)構(gòu)的網(wǎng)絡(luò)應(yīng)用,并通過(guò)Internet/Intranet模式下數(shù)據(jù)庫(kù)應(yīng)用,相對(duì)易于把握、成本也是較低的。它是一次性到位的開(kāi)發(fā),能實(shí)現(xiàn)不同的人員,從不同的地點(diǎn),以不同的接入方式(比如LAN, WAN, Internet/Intranet等)訪(fǎng)問(wèn)和操作共同的數(shù)據(jù)庫(kù);它能有效地保護(hù)數(shù)據(jù)平臺(tái)和管理訪(fǎng)問(wèn)權(quán)限,服務(wù)器數(shù)據(jù)庫(kù)也很安全 。2.2 ASP.NET技術(shù) (1)ASP.NET的含義ASP.NET是一種將各種WEB元素組合在一起的服務(wù)器技術(shù),是一個(gè)統(tǒng)一的WEB開(kāi)發(fā)平臺(tái),它提供了生成一個(gè)完整的WEB應(yīng)用程序所必需的各種服務(wù)。作為一種新的WEB技術(shù),ASP.NET支持多種程序語(yǔ)言,如VB.NET、VC.NET和VC#等程序設(shè)計(jì)語(yǔ)言。ASP.NET在結(jié)構(gòu)上與以前的版本不同,是一種建立在CLR(Common Language Runtime)基礎(chǔ)上的程序開(kāi)發(fā)架構(gòu)。(2)ASP.NET技術(shù)的特點(diǎn):1增強(qiáng)的性能。ASP.NET 是在服務(wù)器上運(yùn)行的編譯好的公共語(yǔ)言運(yùn)行庫(kù)代碼。與被解釋的前輩不同,ASP.NET 可利用早期綁定、實(shí)時(shí)編譯、本機(jī)優(yōu)化和外緩存服務(wù)。2世界級(jí)的工具支持。ASP.NET 框架補(bǔ)充了 Visual Studio 集成開(kāi)發(fā)環(huán)境中的大量工具箱和設(shè)計(jì)器。WYSIWYG 編輯、拖放服務(wù)器控件和自動(dòng)部署只是這個(gè)強(qiáng)大的工具所提供功能中的少數(shù)幾種。3威力和靈活性。由于 ASP.NET 基于公共語(yǔ)言運(yùn)行庫(kù),因此 Web 應(yīng)用程序開(kāi)發(fā)人員可以利用整個(gè)平臺(tái)的威力和靈活性。.NET 框架類(lèi)庫(kù)、消息處理和數(shù)據(jù)訪(fǎng)問(wèn)解決方案都可從 Web 無(wú)縫訪(fǎng)問(wèn)。ASP.NET 也與語(yǔ)言無(wú)關(guān),所以可以選擇最適合應(yīng)用程序的語(yǔ)言,或跨多種語(yǔ)言分割應(yīng)用程序。另外,公共語(yǔ)言運(yùn)行庫(kù)的交互性保證在遷移到 ASP.NET 時(shí)保留基于 COM 的開(kāi)發(fā)中的現(xiàn)有投資。4簡(jiǎn)易性。ASP.NET 使執(zhí)行常見(jiàn)任務(wù)變得容易,從簡(jiǎn)單的窗體提交和客戶(hù)端身份驗(yàn)證到部署和站點(diǎn)配置。例如,ASP.NET 頁(yè)框架使您可以生成將應(yīng)用程序邏輯與表示代碼清楚分開(kāi)的用戶(hù)界面,和在類(lèi)似 Visual Basic 的簡(jiǎn)單窗體處理模型中處理事件。另外,公共語(yǔ)言運(yùn)行庫(kù)利用托管代碼服務(wù)(如自動(dòng)引用計(jì)數(shù)和垃圾回收)簡(jiǎn)化了開(kāi)發(fā)。5可管理性。ASP.NET 采用基于文本的分層配置系統(tǒng),簡(jiǎn)化了將設(shè)置應(yīng)用于服務(wù)器環(huán)境和 Web 應(yīng)用程序。由于配置信息是以純文本形式存儲(chǔ)的,因此可以在沒(méi)有本地管理工具幫助的情況下應(yīng)用新設(shè)置。此“零本地管理”哲學(xué)也擴(kuò)展到了 ASP.NET 框架應(yīng)用程序的部署。只需將必要的文件復(fù)制到服務(wù)器,即可將 ASP.NET 框架應(yīng)用程序部署到服務(wù)器。不需要重新啟動(dòng)服務(wù)器,即使是在部署或替換運(yùn)行的編譯代碼時(shí)。6可縮放性和可用性。ASP.NET 在設(shè)計(jì)時(shí)考慮了可縮放性,增加了專(zhuān)門(mén)用于在聚集環(huán)境和多處理器環(huán)境中提高性能的功能。另外,進(jìn)程受到 ASP.NET 運(yùn)行庫(kù)的密切監(jiān)視和管理,以便當(dāng)進(jìn)程行為不正常(泄漏、死鎖)時(shí),可就地創(chuàng)建新進(jìn)程,以幫助保持應(yīng)用程序始終可用于處理請(qǐng)求。7自定義性和擴(kuò)展性。ASP.NET 隨附了一個(gè)設(shè)計(jì)周到的結(jié)構(gòu),它使開(kāi)發(fā)人員可以在適當(dāng)?shù)募?jí)別“插入”代碼。實(shí)際上,可以用自己編寫(xiě)的自定義組件擴(kuò)展或替換 ASP.NET 運(yùn)行庫(kù)的任何子組件。實(shí)現(xiàn)自定義身份驗(yàn)證或狀態(tài)服務(wù)一直沒(méi)有變得更容易。8安全性。借助內(nèi)置的 Windows 身份驗(yàn)證和基于每個(gè)應(yīng)用程序的配置,可以保證應(yīng)用程序是安全的。2.3 C#語(yǔ)言C#是一種新的編程語(yǔ)言,是Microsoft Visual Studio.NET的一部分。C#是一種簡(jiǎn)單、類(lèi)型安全、面向?qū)ο蟮木幊陶Z(yǔ)言,其語(yǔ)法風(fēng)格源自C/C+語(yǔ)言。在語(yǔ)法和思維方面上,C#同Java非常相近。C#的優(yōu)點(diǎn)是兼有Visual Basic語(yǔ)言的易用性和C/C+的執(zhí)行效率。2.4 結(jié)構(gòu)化查詢(xún)語(yǔ)言SQLSQL全稱(chēng)是“結(jié)構(gòu)化查詢(xún)語(yǔ)言(Structured Query Language)”,它是數(shù)據(jù)庫(kù)的核心語(yǔ)言??梢酝瓿蓴?shù)據(jù)查詢(xún)、數(shù)據(jù)定義、數(shù)據(jù)操作、數(shù)據(jù)控制等操作。SQL是一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)語(yǔ)言,是面向集合的描述性非過(guò)程化語(yǔ)言。最早的是IBM的圣約瑟研究實(shí)驗(yàn)室為其關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)SYSTEM R開(kāi)發(fā)的一種查詢(xún)語(yǔ)言,它的前身是SQUARE語(yǔ)言。SQL語(yǔ)言結(jié)構(gòu)簡(jiǎn)潔,功能強(qiáng)大,簡(jiǎn)單易學(xué),所以自從IBM公司1981年推出以來(lái),SQL語(yǔ)言,得到了廣泛的應(yīng)用。3 系統(tǒng)方案3.1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)學(xué)生學(xué)籍管理系統(tǒng)是一個(gè)完整的學(xué)校學(xué)生信息管理系統(tǒng)。在本系統(tǒng)中主要包括用戶(hù)登錄和注冊(cè)功能、用戶(hù)和角色管理功能、教師信息管理功能、班級(jí)和年級(jí)管理功能、課程信息管理功能、學(xué)生信息管理功能,學(xué)生成績(jī)管理功能等。3.2 系統(tǒng)模塊劃分根據(jù)系統(tǒng)需求分析,系統(tǒng)劃分為7個(gè)模塊:1.用戶(hù)登錄和注冊(cè)模塊用戶(hù)登錄和注冊(cè)功能主要包括的功能如下:用戶(hù)登錄:驗(yàn)證用戶(hù)的信息是否合法,以及驗(yàn)證用戶(hù)是否為系統(tǒng)的合法用戶(hù)。用戶(hù)注冊(cè):由系統(tǒng)管理員添加新的用戶(hù)。2.用戶(hù)和角色管理功能用戶(hù)和角色管理功能主要包括用戶(hù)管理、角色管理及其用戶(hù)和角色之間的關(guān)系管理。在系統(tǒng)中主要包括:用戶(hù)管理、角色管理、添加角色和用戶(hù)修改密碼。 3.教師信息管理功能教師信息管理功能主要對(duì)教師信息的管理,如教師信息的添加、修改和刪除等。在系統(tǒng)中主要包括:添加新的教師信息、刪除教師信息、刪除教師信息。4.班級(jí)和年級(jí)管理功能班級(jí)和年級(jí)管理功能主要實(shí)現(xiàn)班級(jí)和年級(jí)的管理功能,如班級(jí)和年級(jí)的添加、修改、刪除、查看等。在系統(tǒng)中主要包括管理班級(jí)和年級(jí)、添加班級(jí)和年級(jí)、修改班級(jí)和年級(jí)、查看班級(jí)和年級(jí)。5.課程信息管理功能課程信息管理功能主要對(duì)課程信息進(jìn)行管理,如課程信息的添加、修改、刪除等。在系統(tǒng)中主要包括添加課程信息、添加課程信息、刪除課程信息。6.學(xué)生信息管理功能學(xué)生信息管理功能主要對(duì)學(xué)生信息進(jìn)行管理,如學(xué)生信息的添加、修改、刪除等。在系統(tǒng)中主要包括添加學(xué)生信息、修改學(xué)生信息、刪除學(xué)生信息。7.學(xué)生成績(jī)管理功能學(xué)生成績(jī)管理功能主要對(duì)學(xué)生的成績(jī)進(jìn)行管理,如學(xué)生成績(jī)的添加、刪除、修改等。在系統(tǒng)中主要包括添加學(xué)生信息、修改學(xué)生信息、刪除學(xué)生信息。3.3 系統(tǒng)功能關(guān)系圖1系統(tǒng)功能關(guān)系圖,如圖1學(xué)生學(xué)籍管理系統(tǒng)用戶(hù)登錄和注冊(cè)模塊用戶(hù)和角色管理模塊教師信息管理模塊學(xué)生信息管理模塊課程信息管理模塊班級(jí)和年級(jí)管理模塊學(xué)生成績(jī)管理模塊圖1 系統(tǒng)功能關(guān)系圖2學(xué)生模塊學(xué)生登錄系統(tǒng)后,學(xué)生可以操作學(xué)生信息的查看,學(xué)生成績(jī)的查詢(xún)和學(xué)生退出系統(tǒng)。學(xué)生信息查看主要對(duì)學(xué)生信息進(jìn)行瀏覽,如學(xué)生信息的姓名、地址、聯(lián)系方式等。學(xué)生成績(jī)管理查詢(xún)主要對(duì)學(xué)生的成績(jī)進(jìn)行瀏覽,如學(xué)生成績(jī)的分?jǐn)?shù)、科目,如圖2。學(xué)生登錄學(xué)生信息查看學(xué)生成績(jī)的查詢(xún)學(xué)生退出登錄圖2 學(xué)生模塊3教師模塊教師登錄系統(tǒng)后,教師可以操作學(xué)生和教師信息的查看,學(xué)生成績(jī)的添加、刪除和修改,以及教師退出系統(tǒng)。信息查看主要對(duì)信息進(jìn)行瀏覽,如信息的姓名、地址、聯(lián)系方式等,這里可以查看到教師和學(xué)生的信息。學(xué)生成績(jī)管理功能主要對(duì)學(xué)生的成績(jī)進(jìn)行管理,如學(xué)生成績(jī)的添加、刪除、修改等,如圖3。教師登錄教師信息查看學(xué)生成績(jī)的添加、刪除、修改教師退出登錄學(xué)生信息查看圖3 教師模塊4系統(tǒng)管理員模塊系統(tǒng)管理員是系統(tǒng)最大權(quán)限的擁有者。在本系統(tǒng)中主要包括用戶(hù)登錄和注冊(cè)功能、用戶(hù)和角色管理功能、教師信息管理功能、班級(jí)和年級(jí)管理功能、課程信息管理功能、學(xué)生信息管理功能,學(xué)生成績(jī)管理功能等,如圖4。管理員登錄學(xué)生、教師信息添加,修改、刪除學(xué)生成績(jī)的查詢(xún)、修改管理員退出登錄課程信息的管理班級(jí)和年級(jí)的管理學(xué)生、教師用戶(hù)的管理圖4 系統(tǒng)管理員模塊4 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)4.1 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)總體設(shè)計(jì):數(shù)據(jù)庫(kù)包括用戶(hù)數(shù)據(jù)、角色數(shù)據(jù)、部門(mén)數(shù)據(jù)、教師數(shù)據(jù)、年級(jí)和班級(jí)數(shù)據(jù)、學(xué)生數(shù)據(jù)、課程數(shù)據(jù)、成績(jī)數(shù)據(jù)。1.功能模塊表(Tree)功能模塊表Tree用來(lái)存儲(chǔ)功能模塊的數(shù)據(jù)。表1 功能模塊表字段名數(shù)據(jù)類(lèi)型字段說(shuō)明鍵引用備注TreeIDInt功能模塊IDPK主鍵(自動(dòng)增一)TitleVarchar(200)功能模塊名稱(chēng)ParentIDInt父節(jié)點(diǎn)IDUrlVarchar(200)頁(yè)面鏈接地址ProNameVarchar(200)功能模塊所屬的名稱(chēng)2.角色表(Role)角色表Role用來(lái)存儲(chǔ)系統(tǒng)的角色數(shù)據(jù)。表2 角色表字段名數(shù)據(jù)類(lèi)型字段說(shuō)明鍵引用備注RoleIDInt角色I(xiàn)DPK主鍵(自動(dòng)增一)RoleNameVarchar角色名稱(chēng)TreeIDint關(guān)聯(lián)的功能模塊ID引用表Tree的TreeID的字段3.用戶(hù)表(User)用戶(hù)表User用來(lái)存儲(chǔ)用戶(hù)的數(shù)據(jù)。表3 用戶(hù)表字段名數(shù)據(jù)類(lèi)型字段說(shuō)明鍵引用備注UserIDInt用戶(hù)IDPK主鍵(自動(dòng)增一)UserNameVarchar(200)用戶(hù)名稱(chēng)PasswordVarchar(255)用戶(hù)密碼EmailVarchar(200)電子郵件RoleID所屬角色I(xiàn)DFK引用Role表的RoleID字段4.年級(jí)表(Grade)年級(jí)表Grade用來(lái)存儲(chǔ)年級(jí)的信息。表4 年級(jí)表字段名數(shù)據(jù)類(lèi)型字段說(shuō)明鍵引用備注GradeIDInt年級(jí)IDPK主鍵(自動(dòng)增一)DesnVarchar(200)年級(jí)名稱(chēng)YearDateInt時(shí)間(年)Swmesterint包含的學(xué)期5.部門(mén)表(Department)部門(mén)表Department用來(lái)存儲(chǔ)部門(mén)的信息。表5 部門(mén)表字段名數(shù)據(jù)類(lèi)型字段說(shuō)明鍵引用備注DepartmentIDInt部門(mén)IDPK主鍵(自動(dòng)增一)DesnVarchar(200)部門(mén)名稱(chēng)Bodytext部門(mén)備注6.教師表(Teacher)教師表Teacher用來(lái)存儲(chǔ)教師的信息。表6 教師表字段名數(shù)據(jù)類(lèi)型字段說(shuō)明鍵引用備注TeacherIDInt教師IDPK主鍵(自動(dòng)增一)NameVarchar(200)教師姓名AgeInt年齡Addressint聯(lián)系地址PhoneVarchar(200)聯(lián)系電話(huà)BirthdayDatetime出生日期HireDateDatetime雇用日期DepartmentIDint所屬部門(mén)FK引用Department表的DepartmentID字段7.班級(jí)表(Class)班級(jí)表Class用來(lái)存儲(chǔ)班級(jí)的信息。表7 班級(jí)表字段名數(shù)據(jù)類(lèi)型字段說(shuō)明鍵引用備注ClassIDInt班級(jí)IDPK主鍵(自動(dòng)增一)DesnVarcher(200)班級(jí)名稱(chēng)TeacherIDInt班主任IDFK引用Teacher表的TeacherID字段GradeIDInt所屬年級(jí)IDFK引用Grade表的GradeID字段StartDateDatetime開(kāi)始日期EndDateDatetime結(jié)束日期StuNumint學(xué)生數(shù)量8.課程表(Course)課程表Course用來(lái)存儲(chǔ)班級(jí)的信息。表8 課程表字段名數(shù)據(jù)類(lèi)型字段說(shuō)明鍵引用備注CourseIDInt課程IDPK主鍵(自動(dòng)增一)DesnVarchar(200)課程名稱(chēng)BodyText課程的詳細(xì)信息StartDateDatetime開(kāi)始日期EndDateDatetime結(jié)束日期CourseHourInt課時(shí)TeacherIDInt任課教師IDFK引用Teacher表的TeacherID字段ExamineDateDatetime考試時(shí)間TotalMarkdecimal總學(xué)分9.學(xué)生信息表(Student)學(xué)生信息表Student用來(lái)存儲(chǔ)班級(jí)的信息。表9 學(xué)生信息表字段名數(shù)據(jù)類(lèi)型字段說(shuō)明鍵引用備注StudentIDInt學(xué)生IDPK主鍵(自動(dòng)增一)ClassIDInt班級(jí)IDFK引用Class表的ClassID字段NameVarcher(200)學(xué)生姓名AgeInt年齡SexInt性別Addressint聯(lián)系地址PhoneVarcher(200)聯(lián)系電話(huà)BirthdayDatetime出生日期EntranceDateDatetime入學(xué)時(shí)間NationalityVarcher(200)民族PoliticalVarcher(200)政治面貌NativePlaceVarcher(200)籍貫IdentityCardVarcher(200)身份證號(hào)碼Maritalint婚姻狀況HukouVarcher(200)戶(hù)口Stateint學(xué)生狀態(tài)1.在校2.休學(xué)3.退學(xué)4.離校5.其他Desntext備注10.成績(jī)表(Score)成績(jī)表Score用來(lái)存儲(chǔ)班級(jí)的信息。表10 成績(jī)表字段名數(shù)據(jù)類(lèi)型字段說(shuō)明鍵引用備注ScoreIDInt成績(jī)IDPK主鍵(自動(dòng)增一)CourseIDInt課程IDFK引用Course表的CourseID字段StudentIDInt學(xué)生IDFK引用Student表的StudentID字段MarkDecimal課程成績(jī)Flagint審核的標(biāo)志在本系統(tǒng)數(shù)據(jù)庫(kù)中,各個(gè)表之間的關(guān)系比較簡(jiǎn)單,表之間的引用關(guān)系也比較簡(jiǎn)單。用戶(hù)表User通過(guò)Role表和功能模塊表Tree形成關(guān)聯(lián);教師表Teacher引用部門(mén)表Department;班級(jí)表Class和課程Course都引用教師表Teacher的主鍵ID作為外鍵;班級(jí)表Class還引用年級(jí)表Grade的主鍵ID作外鍵;學(xué)生表Student引用班級(jí)表Class的主鍵ID作外鍵;成績(jī)表Score分別引用學(xué)生表Student,課程表Course的主鍵ID作外鍵;最終設(shè)計(jì)各個(gè)表之間的關(guān)系圖,如圖5。圖5 數(shù)據(jù)庫(kù)表關(guān)系4.2 系統(tǒng)功能模塊的設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)主要針對(duì)B/S模式實(shí)現(xiàn)在線(xiàn)學(xué)籍管理,要求在界面外觀上便于操作和瀏覽。數(shù)據(jù)庫(kù)查詢(xún)簡(jiǎn)單容易。在設(shè)計(jì)系統(tǒng)界面時(shí),為了能使系統(tǒng)便于操作和瀏覽,我把系統(tǒng)主頁(yè)面分左右設(shè)計(jì)。左邊主要是功能模塊的選擇,登入系統(tǒng)后,點(diǎn)擊學(xué)生信息管理系統(tǒng),用Treeview下拉導(dǎo)航出系統(tǒng)所以可操作的功能,用戶(hù)根據(jù)自己身份的權(quán)限進(jìn)行操作。右邊是點(diǎn)擊功能模塊相關(guān)項(xiàng)后出現(xiàn)的操作界面。系統(tǒng)總的設(shè)計(jì)風(fēng)格是簡(jiǎn)單、簡(jiǎn)捷、便于所以用戶(hù)操作。在外觀上便于信息的瀏覽和查找,用戶(hù)功能模塊查看清晰,使用方便。在外觀顏色基調(diào)是藍(lán)色,比較柔和、輕快,不易產(chǎn)生視覺(jué)疲勞。1.系統(tǒng)登錄模塊登錄功能由LoginBtn按鈕控件實(shí)現(xiàn),它觸發(fā)LoginBtn_Click(object sender,EventArgs e)事件。該事件驗(yàn)證用戶(hù)輸入的用戶(hù)名稱(chēng)和密碼是否正確,只有當(dāng)都正確時(shí)才能登錄系統(tǒng)中,否則頁(yè)面將通過(guò)Message控件顯示相關(guān)錯(cuò)誤信息。用戶(hù)登錄成功后,將跳轉(zhuǎn)到Main.aspx(系統(tǒng)主界面)。驗(yàn)證用戶(hù)名稱(chēng)和密碼時(shí),通過(guò)User類(lèi)的函數(shù)GetUserLogin()從數(shù)據(jù)庫(kù)獲取用戶(hù)的ID信息。如果ID為空,則用戶(hù)登錄失敗。用戶(hù)登錄成功后,程序使用Session變量保存用戶(hù)的ID信息。首先定義類(lèi)并獲取用戶(hù)的登陸信息,再通過(guò)用戶(hù)輸入的信息判斷用戶(hù)是否合法,再驗(yàn)證用戶(hù)合法性,并跳轉(zhuǎn)到系統(tǒng)平臺(tái),如圖6。圖6 系統(tǒng)登錄模塊登錄成功和失敗處理的部分代碼如下:protected void LoginBtn_Click(object sender, EventArgs e) String userId = ; StudentManager.User user = new StudentManager.User(); SqlDataReader recu = user.GetUserLogin(UserName.Text.Trim(),StudentManager.User.Encrypt(Password.Text.Trim(); if (recu.Read() userId = recuUserID.ToString(); recu.Close(); if (userId != null) & (userId != ) SessionUserID = userId; Response.Redirect(/DesktopModules/Main.aspx); else Message.Text = 你輸入的用戶(hù)名稱(chēng)或者密碼有誤,請(qǐng)重新輸入!;取消登錄功能由CancelBtn按鈕控實(shí)現(xiàn),單擊此按鈕,觸發(fā)CancelBtn_Click(object sender,EventArgs e)事件,該事件清空用戶(hù)名稱(chēng)和密碼輸入內(nèi)容。CancelBtn_Click(object sender,EventArgs e)事件代碼如下:protected void CancelBtn_Click(object sender, EventArgs e) UserName.Text = Password.Text = ;2.學(xué)生信息管理模塊學(xué)生通過(guò)成功登錄系統(tǒng)登錄界面后,來(lái)到學(xué)生信息管理模塊,學(xué)生可以查詢(xún)信息,修改自己相關(guān)信息,查詢(xún)課程、查詢(xún)所選課程的分?jǐn)?shù)。當(dāng)用戶(hù)在頁(yè)面AddStudent.aspx中輸入合法的信息的學(xué)生信息,并單擊頁(yè)面中的添加按鈕,就可以實(shí)現(xiàn)添加新的學(xué)生信息。該添加功能由事件AddBtn_Click(object sender.EventArgs e)實(shí)現(xiàn),它調(diào)用Student類(lèi)的AddStudent()方法實(shí)現(xiàn)添加功能。如果頁(yè)面輸入內(nèi)容合法,定義類(lèi),再添加信息,成功顯示操作結(jié)果信息,失敗時(shí)顯示添加操作中的失敗的錯(cuò)誤信息,如圖7。圖7 學(xué)生信息管理模塊部分代碼如下:protected void AddBtn_Click(object sender,EventArgs e)if (Page.IsValid = true)StudentManager.Student student = new StudentManager.Student();trystudent.AddStudent(Int32.Parse(ClassList.SelectedValue),Name.Text,Int32.Parse(Age.Text.Trim(),Int32.Parse(SexList.SelectedValue),Address.Text.Trim(),Phone.Text.Trim(),DateTime.Parse(Birthday.Text.Trim(),DateTime.Parse(EntranceDate.Text.Trim(),Nationality.Text.Trim(),Political.Text.Trim(),NativePlace.Text.Trim(),IdentityCard.Text.Trim(),Int32.Parse(Maritallist.SelectedValue),Hukou.Text.Trim(),Int32.Parse(StateList.SelectedValue),Desn.Text);Response.Write(window.alert(+ASPNET2System.OPERATIONADDSUCCESSMESSAGE + );catch (Exception ex)Response.Redirect(/DesktopModules/ErrorPage.aspx?ErrorUrl=+ ASPNET2System.RedirectErrorUrl(Request.RawUrl)+ &ErrorMessage= + ex.Message.Replace(n, );3.教師信息管理模塊教師用戶(hù)登陸系統(tǒng)后,點(diǎn)擊進(jìn)入教師信息管理模塊。教師用戶(hù)可以對(duì)自己信息進(jìn)行查詢(xún)、添加,對(duì)學(xué)生信息進(jìn)行查詢(xún)、添加學(xué)生分?jǐn)?shù)等功能。教師信息模塊中,可以添加教師信息,修改教師信息以及刪除教師信息。添加教師信息:頁(yè)面初始化實(shí)現(xiàn)下拉列表的形式顯示部分信息的功能,該功能由函數(shù)Page_Load(objectsender,EventArgse)實(shí)現(xiàn)。部門(mén)信息由函數(shù)BindDepartmentData()調(diào)用Department類(lèi)的GetDepartments()方法從數(shù)據(jù)庫(kù)中獲取,并使用SqlDataReader對(duì)象read保存結(jié)果,如圖8。圖8 教師信息管理模塊4.用戶(hù)注冊(cè)模塊添加新用戶(hù)功能由AddBtn按鈕控件實(shí)現(xiàn)。單擊它,觸發(fā)事件AddBtn_Click(objectsender,EventArgs e),調(diào)用User類(lèi)函數(shù)AddUser()實(shí)現(xiàn)添加功能,并把用戶(hù)信息存放到數(shù)據(jù)庫(kù)中,在添加新用戶(hù)時(shí),使用Encrypt()對(duì)用戶(hù)密碼進(jìn)行加密,操作成功,則顯示提示信息;錯(cuò)誤,則彈出失敗對(duì)話(huà)框,如圖9。圖9 用戶(hù)注冊(cè)模塊以下為添加用戶(hù)成功和失敗時(shí)處理部分代碼如下:protected void AddBtn_Click(object sender, EventArgs e) if (Page.IsValid = true) StudentManager.User user = new User(); try user.AddUser(UserName.Text.Trim(), StudentManager.User.Encrypt(Password.Text.Trim(), Email.Text.Trim(), Int32.Parse(RoleList.SelectedValue); Response.Write(window.alert( + ASPNET2System.OPERATIONADDSUCCESSMESSAGE + ); catch (Exception ex) Response.Redirect(/DesktopModules/ErrorPage.aspx?ErrorUrl= + ASPNET2System.RedirectErrorUrl(Request.RawUrl) + &ErrorMessage= + ex.Message.Replace(n, );5課程管理模塊課程信息管理功能主要對(duì)課程信息進(jìn)行管理,如課程信息的添加、修改、刪除等。在系統(tǒng)中主要包括添加課程信息、添加課程信息、刪除課程信息,如圖10。圖10 課程管理模塊以下為添加信息和返回上級(jí)的主要代碼:protected void AddBtn_Click(object sender,EventArgs e)if (Page.IsValid = true)StudentManager.Course course = new StudentManager.Course();trycourse.AddCourse(Desn.Text.Trim(),Body.Text,DateTime.Parse(StartDate.Text.Trim(),DateTime.Parse(EndDate.Text.Trim(),Int32.Parse(CourseHour.Text.Trim(),Int32.Parse(TeacherList.SelectedValue),DateTime.Parse(ExamineDate.Text.Trim(),Decimal.Parse(TotalMark.Text.Trim();Response.Write(window.alert( + ASPNET2System.OPERATIONADDSUCCESSMESSAGE + );catch (Exception ex)Response.Redirect(/DesktopModules/ErrorPage.aspx?ErrorUrl=+ ASPNET2System.RedirectErrorUrl(Request.RawUrl)+ &ErrorMessage= + ex.Message.Replace(n, );protected void ReturnBtn_Click(object sender,EventArgs e)Response.Redirect(/DesktopModules/Course/CourseManage.aspx);6班級(jí)和年級(jí)管理模塊班級(jí)和年級(jí)管理功能主要實(shí)現(xiàn)班級(jí)和年級(jí)的管理功能,如班級(jí)和年級(jí)的添加、修改、刪除、查看等。在系統(tǒng)中主要包括管理班級(jí)和年級(jí)、添加班級(jí)和年級(jí)、修改班級(jí)和年級(jí)、查看班級(jí)和年級(jí),如圖11和圖12。圖11 班級(jí)管理模塊圖12 年級(jí)管理模塊7學(xué)生成績(jī)管理功能學(xué)生成績(jī)管理功能主要對(duì)學(xué)生的成績(jī)進(jìn)行管理,如學(xué)生成績(jī)的添加、刪除、修改等。在系統(tǒng)中主要包括添加學(xué)生信息、修改學(xué)生信息、刪除學(xué)生信息,如圖13。圖13 學(xué)生成績(jī)管理模塊以下為添加成績(jī)時(shí)部分代碼。protected void AddBtn_Click(object sender, EventArgs e)if (CourseList.SelectedIndex = -1)Response.Write(window.alert( + ASPNET2System.OPERATIONNOSELECTMESSAGE + );return;if (Page.IsValid = true)StudentManager.Score score = new Score();tryscore.AddScore(Int32.Parse(StudentList.SelectedValue),Int32.Parse(CourseList.SelectedValue),Double.Parse(Mark.Text.Trim();Response.Write(window.alert( + ASPNET2System.OPERATIONADDSUCCESSMESSAGE + );catch (Exception ex)Response.Redirect(/DesktopModules/ErrorPage.aspx?ErrorUrl=+ ASPNET2System.RedirectErrorUrl(Request.RawUrl)+ &ErrorMessage= + ex.Message.Replace(n, );5 系統(tǒng)測(cè)試5.1 測(cè)試環(huán)境本系統(tǒng)測(cè)試環(huán)境;CPU P4 2.0 ,內(nèi)存DDR2 1G, SQL SERVER 2000,安裝了Visual studio2005,配置好了IIS。5.2 測(cè)試過(guò)程1.用戶(hù)登入如果信息錯(cuò)誤在測(cè)試用戶(hù)登錄窗口時(shí),當(dāng)輸入用戶(hù)名或者密碼錯(cuò)誤時(shí),將提示“用戶(hù)名或者密碼輸入有誤,請(qǐng)重新輸入!”我反復(fù)測(cè)試過(guò),只有輸入正確的用戶(hù)名和密碼,才能進(jìn)入系統(tǒng),否則將始終停留在用戶(hù)登錄界面,如圖14。圖14 用戶(hù)登錄信息錯(cuò)誤提示2.添加用戶(hù)信息錯(cuò)誤時(shí),提示信息在測(cè)試添加用戶(hù)時(shí),當(dāng)輸入用戶(hù)名為空,用戶(hù)密碼兩次不一致,電子郵件不能為空或者電子郵件輸入格式不正確時(shí),將有提示信息說(shuō)明錯(cuò)誤。在設(shè)計(jì)用戶(hù)名信息時(shí),用了驗(yàn)證控件RequireFieldValidator,指示為必須項(xiàng),確保用戶(hù)不會(huì)跳過(guò)。兩次密碼設(shè)置一直,用了驗(yàn)證控件CompareValidator,在測(cè)試輸入密碼必須一致才能進(jìn)行添加用戶(hù)。電子郵件用了驗(yàn)證控件RegularExpressionValidator,匹配電子郵件格式正確。以上三個(gè)控件控制了用戶(hù)添加信息操作和指示錯(cuò)誤的信息產(chǎn)生原因,如圖15。圖15 添加用戶(hù)信息錯(cuò)誤提示3.添加學(xué)生信息錯(cuò)誤時(shí),提示信息添加信息錯(cuò)誤時(shí)提示錯(cuò)誤,利用驗(yàn)證控件,指示錯(cuò)誤的原因,通過(guò)輸入正確完成操作,如圖16。圖16 添加信息錯(cuò)誤時(shí)提示錯(cuò)誤5.3 測(cè)試結(jié)果系統(tǒng)在上述軟硬件環(huán)境下分別對(duì)學(xué)生,教師和系統(tǒng)管理員的詳細(xì)設(shè)計(jì)功能做出測(cè)試,結(jié)果能夠達(dá)到預(yù)期功能。在用學(xué)生用戶(hù)進(jìn)行登陸后,能完成信息的添加、查詢(xún)、修改和查詢(xún)分?jǐn)?shù),也能對(duì)自己用戶(hù)密碼進(jìn)行修改;在用教師用戶(hù)進(jìn)行登陸后,能查看學(xué)生信息、對(duì)教師信息添加、修改、對(duì)學(xué)生分?jǐn)?shù)進(jìn)行添加、刪除;在用管理員用戶(hù)登陸后,能完成對(duì)所有模塊進(jìn)行操作和管理,如:學(xué)生信息添加、刪除、修改,教師信息添加、刪除、修改,班級(jí)的添加,系的添加,用戶(hù)的管理。所以模塊的功能正常運(yùn)行。完成了預(yù)計(jì)的要求。結(jié) 論本系統(tǒng)采用瀏覽器/服務(wù)器體系結(jié)構(gòu)作為軟件結(jié)構(gòu),應(yīng)用SQL Server 2000以及ASP.NET技術(shù),實(shí)現(xiàn)了學(xué)籍的管理工作,在時(shí)間和空間上便利了用戶(hù),具有較強(qiáng)的實(shí)用性。目前,本系統(tǒng)已經(jīng)基本建成,基本的功能都已經(jīng)具備。 實(shí)現(xiàn)了基本的用戶(hù)和用戶(hù)權(quán)限管理,可以對(duì)學(xué)生信息進(jìn)行錄入、修改、刪除等的管理;可以對(duì)教師信息進(jìn)行修改、添加和刪除。用戶(hù)角色類(lèi)主要有:系統(tǒng)管理員、學(xué)生、教師。系統(tǒng)管理員具有管理用戶(hù)和功能模塊管理權(quán)限,教師具有對(duì)所有學(xué)生信息進(jìn)行查看、進(jìn)行對(duì)學(xué)生分?jǐn)?shù)添加的權(quán)限。目前,國(guó)內(nèi)基于網(wǎng)絡(luò)的教學(xué)處于迅速崛起的發(fā)展階段,迫切需要一個(gè)能夠很好地支持教師教學(xué)、學(xué)生學(xué)習(xí)的專(zhuān)用教學(xué)平臺(tái)。本系統(tǒng)只是一個(gè)專(zhuān)用的學(xué)生學(xué)籍在線(xiàn)管理平臺(tái)的一部分。如果再添加學(xué)生網(wǎng)上對(duì)老師進(jìn)行評(píng)教、老師在線(xiàn)和學(xué)生進(jìn)行交流、提問(wèn)和回答等交流平臺(tái)等功能,系統(tǒng)將更加的完善,更加成熟的成為一個(gè)較完善的專(zhuān)用教學(xué)平臺(tái)。我今后會(huì)將此系統(tǒng)逐步完善,趨于成熟,并與網(wǎng)絡(luò)課程緊密結(jié)合,使其成為一個(gè)較完善的專(zhuān)用教學(xué)平臺(tái)。在完成畢業(yè)設(shè)計(jì)制作的過(guò)程中,我收獲很大。我學(xué)到了很多在平時(shí)上課沒(méi)有學(xué)到的知識(shí),豐富了我的專(zhuān)業(yè)知識(shí)能力。在邊學(xué)邊做的過(guò)程中,我慢慢學(xué)會(huì)了網(wǎng)頁(yè)的制作,網(wǎng)站的布局和后臺(tái)與數(shù)據(jù)庫(kù)的連接。以前覺(jué)得很復(fù)雜和很高深的知識(shí),在自己動(dòng)手和詢(xún)問(wèn)老師和同學(xué)中,逐步解決了實(shí)際中開(kāi)發(fā)的問(wèn)題。雖然開(kāi)發(fā)過(guò)程對(duì)于自己一個(gè)第一次做系統(tǒng)的人來(lái)說(shuō)時(shí)困難的,但是每當(dāng)完成和解決一個(gè)問(wèn)題后,都很高興。在學(xué)習(xí)新知識(shí)的同時(shí),又完善和加深了以前上課學(xué)到的基礎(chǔ)知識(shí),發(fā)現(xiàn)其實(shí)里面有很多能融會(huì)貫通的地方。到現(xiàn)在為止,系統(tǒng)能夠?qū)崿F(xiàn)根據(jù)要求的設(shè)計(jì)計(jì)劃內(nèi)的大部分功能,但在開(kāi)發(fā)過(guò)程中所遇到很多的問(wèn)題還是的出乎當(dāng)初開(kāi)始設(shè)計(jì)時(shí)預(yù)料之外。感謝我的畢業(yè)設(shè)計(jì)指導(dǎo)教師的指導(dǎo)和啟發(fā),使我不斷的修正錯(cuò)誤,克服困難。最終能夠?qū)崿F(xiàn)現(xiàn)在系統(tǒng)所能夠展示的功能。并在此過(guò)程中切身體會(huì)到一個(gè)項(xiàng)目的設(shè)計(jì)開(kāi)發(fā)人員,在系統(tǒng)立項(xiàng)前期所應(yīng)該做到哪些前瞻性的信息收集和基礎(chǔ)設(shè)計(jì)工作,才能夠始終把握系統(tǒng)進(jìn)展的方向,和總體設(shè)計(jì)上的主動(dòng)性。 參考文獻(xiàn)1 方睿,刁仁宏,吳四九.網(wǎng)絡(luò)數(shù)據(jù)庫(kù)原理及應(yīng)用M.成都:四川大學(xué)出版社,2005年。 2 陳峰棋.ASP與SQL網(wǎng)站數(shù)據(jù)庫(kù)程序設(shè)計(jì)M .北京:科學(xué)出版社,2006年。3 程不功,龍躍進(jìn),卓琳.ASP.NET 2.0動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程M.北京:清華大學(xué)出版社,2007年。4 郭晶,孫偉娟.ASP網(wǎng)站開(kāi)發(fā)四酷全書(shū)M.北京:電子工業(yè)出版社,2006年。5 李偉紅.SQL Server 2000使用教程M.北京:中國(guó)水利水電出版社,2003年。6 胡勇輝,曹倬瑝,蘭湘濤等.ASP.NET開(kāi)發(fā)實(shí)戰(zhàn)詳解M.北京:電子工業(yè)出版社,2006年。7 羅兵,羅順文.Visual C#2005編程技巧大全M .北京:中國(guó)水利水電出版社,2007年。8 Adam Freeman,Allen Jones.NET安全編程M.北京:清華大學(xué)出版社,2006年。致 謝本文是在張路橋老師的熱情關(guān)心和指導(dǎo)下完成的,他淵博的知識(shí)和嚴(yán)謹(jǐn)?shù)闹螌W(xué)作風(fēng)使我受益匪淺,對(duì)順利完成本課題起到了極大的作用。在此向他表示我最衷心的感謝!在論文完成過(guò)程中,本人還得到了田鴻川老師和劉杰同學(xué)的熱心幫助,本人向他們表示深深的謝意!最后向在百忙之中評(píng)審本文的各位專(zhuān)家、老師表示衷心的感謝!聲 明第 22 頁(yè) 共22 頁(yè)