課程設(shè)計----高校學(xué)生管理系統(tǒng)設(shè)計與實現(xiàn)_第1頁
已閱讀1頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  第一章 概 述</b></p><p>  1.1 PHP的概念</p><p>  PHP: Hypertext Preprocessor (超文本預(yù)處理器) 的縮寫,它是一種服務(wù)器端的 HTML 腳本/編程語言,是一種簡單的、面向?qū)ο蟮?、解釋型的、健壯的、安全的、性能非常之高的、獨立于架?gòu)的、可移植的、動態(tài)的腳本語言</p&g

2、t;<p>  PHP是一種功能強大的腳本語言。PHP將擊敗PERL/Python并取而代之。PHP是下一代的PERL/Python腳本。PHP可以勝任任何PERL/Python做的工作,并且做的更多,更好,更簡潔!! </p><p>  1.2 PHP在網(wǎng)絡(luò)編程方面的優(yōu)越性</p><p>  1995年時,Rasmus在用PHP寫他的個人主頁;今天,PHP成為風(fēng)靡全球的

3、腳本語言,越來越多的站點選擇使用PHP,連Yahoo都放棄了自己的腳本而改用PHP支持它的網(wǎng)站。可以說,PHP是一個奇跡。我一直認為,任何奇跡背后都有它的原因?,F(xiàn)在,就讓我們透過這個奇跡,來看看PHP的成功之道。</p><p><b>  1 簡單易用</b></p><p>  PHP的入門門檻很低,它對使用者的要求微乎其微。學(xué)過C語言的人,使用PHP幾乎不需要什

4、么時間。它們的語法是如此相似,以至于我常常想,是不是在C語言變量前加個$就能改成PHP。這使得大量C程序員在網(wǎng)絡(luò)腳本中選擇了PHP。另外,比起ASP的組件系統(tǒng)和Java龐大的類庫來,PHP的函數(shù)庫要好學(xué)多了。在編程風(fēng)格上,PHP更是自由,你可以使用N種風(fēng)格來寫你的腳本程序。這些特性使得PHP成為初學(xué)者的首選語言。搶占初學(xué)者市場是很重要的策略。如同任何人都會對自己的初戀記憶猶新一樣,人們往往會對最初學(xué)習(xí)的語言有很深的感情。即使后來自己成長

5、了,改用其他語言了,還是會時時記起最初學(xué)習(xí)的語言。在這點上,PHP做得很出色。</p><p><b>  2 剪裁得當</b></p><p>  PHP開發(fā)組是最了解網(wǎng)絡(luò)的一群人,他們非常清楚用戶要的是什么。PHP就是要做一個出色的網(wǎng)絡(luò)腳本語言,而且,它只是要做一個網(wǎng)絡(luò)腳本語言。PHP提供的函數(shù)集在網(wǎng)絡(luò)方面相當強大,而且重點均專注于網(wǎng)絡(luò)應(yīng)用。像PHP中的無組件文件

6、上傳,超多數(shù)據(jù)庫支持等特性都表現(xiàn)出這個特點。順便說一句,PHP甚至支持ACCESS數(shù)據(jù)庫。專注使得PHP在網(wǎng)絡(luò)上表現(xiàn)出極其優(yōu)秀的性能。有失才能有得。</p><p><b>  3 支持強大</b></p><p>  PHP有強大的OpenSource團體支持,在網(wǎng)絡(luò)上有數(shù)以萬計的開源代碼。你可以整合幾個現(xiàn)有程式來實現(xiàn)你的應(yīng)用,也可以分析大師級的代碼來得到提高。PH

7、P還有很多擴展性的項目來增強PHP在某個方面的功能。像注重編程規(guī)范化和代碼重用的PEAR,提供可編譯模板技術(shù)的Smarty,甚至開發(fā)桌面程序的GTK。</p><p>  分析完這幾個理由,我們可以看出,PHP的成功得益于PHP開發(fā)組的戰(zhàn)略眼光。PHP提供了一個最小工作集,使用戶能用最簡單的方式高效地完成自己需要的應(yīng)用。這正是初學(xué)者需要的。然后它通過方便的擴展來提供各個方面的解決方案,這樣,你只需要學(xué)你要用到的那

8、個領(lǐng)域的東西。當你涉及的領(lǐng)域越來越多時,你的水平也隨之提高,當你熟悉了大多領(lǐng)域時,回頭看看,會發(fā)現(xiàn)不知不覺已到山腰。PHP也提供了我們一種學(xué)習(xí)態(tài)度。</p><p><b>  1.3系統(tǒng)開發(fā)環(huán)境</b></p><p>  操作系統(tǒng)—Windows xp</p><p>  本系統(tǒng)使用的操作系統(tǒng)為Windows xp作為底層操作系統(tǒng),界面友好

9、,性能穩(wěn)定。</p><p><b>  數(shù)據(jù)庫—MYSQL</b></p><p>  MySQL是一個真正的多用戶、多線程SQL數(shù)據(jù)庫服務(wù)器。SQL(結(jié)構(gòu)化查詢語言)是世界上最流行的和標準化的數(shù)據(jù)庫語言。MySQL是以一個客戶機/服務(wù)器結(jié)構(gòu)的實現(xiàn),它由一個服務(wù)器守護程序mysqld和很多不同的客戶程序和庫組成。</p><p>  SQL是

10、一種標準化的語言,它使得存儲、更新和存取信息更容易。例如,你能用SQL語言為一個網(wǎng)站檢索產(chǎn)品信息及存儲顧客信息,同時MySQL也足夠快和靈活以允許你存儲記錄文件和圖像。</p><p>  MySQL 主要目標是快速、健壯和易用。最初是因為我們需要這樣一個SQL服務(wù)器,它能處理與任何可不昂貴硬件平臺上提供數(shù)據(jù)庫的廠家在一個數(shù)量級上的大型數(shù)據(jù)庫,但速度更快,MySQL就開發(fā)出來。自1996年以來,我們一直

11、都在使用MySQL,其環(huán)境有超過 40 個數(shù)據(jù)庫,包含 10,000個表,其中500多個表超過7百萬行,這大約有100 個吉字節(jié)(GB)的關(guān)鍵應(yīng)用數(shù)據(jù)。</p><p>  MySQL建立的基礎(chǔ)是業(yè)已用在高要求的生產(chǎn)環(huán)境多年的一套實用例程。盡管MySQL仍在開發(fā)中,但它已經(jīng)提供一個豐富和極其有用的功能集。</p><p>  務(wù)器平臺—APACHE&

12、lt;/p><p>  Apache 伺服器則是目前最多 WWW 網(wǎng)站所采用伺服器。您可以至 http://www.apache.org 下載最新版的程式及相關(guān)文件,若您覺得從國外下載要很久的話,也可以用它的 Mirror 站臺下載。 </p><p>  PHP 則可以去它的官方網(wǎng)站 http://www.php.net 下載所需要的程式。 </p><p>  雖然

13、目前 WindowsNT 或者 Windows98 等 Win32 的作業(yè)平臺也能安裝 PHP 及 Apache 伺服器,不過這似乎沒什么道理,因為 PHP 和 Apache 在 UNIX下可以跑得更快更好。 </p><p>  當然,若想使用商業(yè)化的作業(yè)平臺,SUN、IBM、HP、DEC、SGI、NEC 等公司都有提供相關(guān)的 UNIX 或者是 WindowsNT 的作業(yè)平臺。加上高安全性調(diào)整過后的 Apach

14、e 伺服器:Stronghold 或是其它支援 SSL 的 Apache 版本。這種組合,相信能滿足商業(yè)化的需求。而 PHP 就扮演著快速方便的 CGI 角色,讓客戶對站臺的服務(wù)品質(zhì)更加滿意。</p><p><b>  發(fā)語言—PHP</b></p><p>  PHP是一種簡單的,面向?qū)ο蟮?,解釋型的,健壯的,安全的,性能非常之高的,獨立于架?gòu)的,可移植的,動態(tài)的

15、腳本語言。PHP具有和JAVA類似的Class關(guān)鍵字。因為不需要虛擬機,以致速度比JAVA快5倍。PHP正迅速變成一種標準的,多用途的,面向?qū)ο蟮哪_本語言。PHP不僅可用來開發(fā)Web應(yīng)用程序,也可以開發(fā)普通應(yīng)用程序。 </p><p>  PHP是一種功能強大的腳本語言。PHP將擊敗PERL/Python并取而代之。PHP是下一代的PERL/Python腳本。PHP可以勝任任何PERL/Python做的工作,并且

16、做的更多,更好,更簡潔??! </p><p>  PHP是Hypertext Pre-Processor(超文本預(yù)處理器)的縮寫,它是一種服務(wù)器端的HTML腳本/編程語言。PHP語法上與C相似,可運行在Apache, Netscape/iPlanet, 和 Microsoft IIS Web 服務(wù)器上。PHP作為一種工具,可以讓你創(chuàng)建動態(tài)的Web頁面。應(yīng)用PHP的網(wǎng)頁與常規(guī)的HTML頁面并無二致,你可以用同樣的方

17、式來創(chuàng)建、編輯它們。PHP允許你直接在HTML文件里寫入簡單的腳本,這一點與Javas cript非常相似。而不同的是,PHP不依賴于瀏覽器,是服務(wù)器端的語言,而Javas cript卻是一種客戶端的嵌在HTML中的語言。概念上,PHP與Netscape的LiveWire Pro產(chǎn)品,Microsoft的ASP以及SunMicrosystem 的JSP相似。 </p><p>  PHP不僅可以用來創(chuàng)建Web應(yīng)用

18、程序,也可以用來開發(fā)普通的單機應(yīng)用程序。 </p><p>  PHP的強勁之處在于: </p><p>  ·PHP是一項最優(yōu)秀的技術(shù)。其它技術(shù),如PERL,Python, Tcl, VB s cript, ASP 相對來說,都是陳舊低劣的。即使是Java/JSP,也在PHP之下。 </p><p><b>  ·開放源碼 <

19、/b></p><p>  ·廣泛的數(shù)據(jù)庫連接 </p><p><b>  ·大量的擴展庫 </b></p><p>  ·作為一種多用途的腳本語言,比PERL,VB s cript, ASP, JSP都要優(yōu)秀</p><p>  第二章 系統(tǒng)的需求分析</p><

20、;p>  2.1 系統(tǒng)需求分析</p><p>  需求分析的基本任務(wù)是準確的回答“ 系統(tǒng)必須做什么?”這個問題。在需求分析這個階段,需要仔細的研究系統(tǒng)所實現(xiàn)的功能,并進一步將他們具體化。</p><p><b>  1.任務(wù)概述</b></p><p><b>  目標</b></p><p&g

21、t;  將學(xué)生考勤、平時成績的評定、以及成績查詢的大量業(yè)務(wù),用計算機系統(tǒng)操作完成,對它進行全面現(xiàn)代化管理,以便提高信息管理效率。</p><p><b>  運行環(huán)境</b></p><p>  軟件:Microsoft Windows 2000 Server及Windows 2000 SPI</p><p><b>  或更高版本&

22、lt;/b></p><p><b>  IE5.5以上</b></p><p>  硬件:64 MB RAM 鼠標或其他定點設(shè)備</p><p><b>  系統(tǒng)要完成的任務(wù)</b></p><p><b>  實現(xiàn)學(xué)生安全登錄</b></p>&l

23、t;p><b>  實現(xiàn)網(wǎng)上簽到</b></p><p>  通過技術(shù)手段,避免學(xué)生冒名簽到。</p><p><b>  統(tǒng)計學(xué)生平時成績。</b></p><p>  實現(xiàn)網(wǎng)上成績的查詢。</p><p><b>  2.功能需求</b></p><

24、;p>  系統(tǒng)必須完成的功能包括:</p><p><b>  注冊與登錄功能</b></p><p>  該功能主要實現(xiàn)學(xué)生與老師的安全登錄。</p><p><b>  簽到功能</b></p><p>  該功能主要實現(xiàn)學(xué)生上課網(wǎng)上簽到,以減少老師點名簽到的時間,提高上課效率。 <

25、/p><p><b>  統(tǒng)計功能</b></p><p>  系統(tǒng)中的統(tǒng)計功能可以根據(jù)學(xué)生簽到次數(shù),統(tǒng)計學(xué)生的平時成績。</p><p><b>  查詢功能</b></p><p>  該功能從不同的角度進行查詢,多層次地滿足老師及學(xué)生對總成績及個人成績的查詢要求。</p><p

26、><b>  2.2 總體設(shè)計</b></p><p>  1.本課題研究的內(nèi)容</p><p>  本論文從網(wǎng)站設(shè)計的基本原理出發(fā),使用php+mysql技術(shù),PHP是一個類似微軟ASP的服務(wù)器端的嵌入式超文本處理語言,是建立動態(tài)網(wǎng)站的強大工具。MySQL是一個真正的多用戶、多線程SQL數(shù)據(jù)庫服務(wù)器。MySQL是以一個客戶機/服務(wù)器結(jié)構(gòu)的實現(xiàn),它由一個服務(wù)器守

27、護程序mysql和很多不同的客戶程序和庫組成。由于其源碼的開放性及穩(wěn)定性,且與網(wǎng)站流行編徎語言PHP的完美結(jié)合,現(xiàn)在很多站點都利用其當作后端數(shù)據(jù)庫,使其獲得了廣泛應(yīng)用。而MySQL是一個輕型SQL數(shù)據(jù)庫服務(wù)器,可運行在多種平臺上,包括Windows NT和Linux,它還有一個GPL版本,MySQL被認為是建立數(shù)據(jù)庫驅(qū)動的動態(tài)網(wǎng)站的最佳產(chǎn)品。PHP、MySQL和Apache是Linux平臺網(wǎng)站的最佳拍檔。</p><

28、p>  通過對公共課網(wǎng)上系統(tǒng)的分析、設(shè)計與具體實施,從而具體介紹了基于Internet/Intranet的網(wǎng)站應(yīng)用系統(tǒng)的分布式架構(gòu)模式及實現(xiàn)機理。最后采用了</p><p>  PHP+MYSQL,設(shè)計并實現(xiàn)了公共課網(wǎng)上系統(tǒng)</p><p><b>  系統(tǒng)設(shè)計模型</b></p><p>  2.此系統(tǒng)共分為六個較大的模塊:</p

29、><p> ?。ㄒ唬? 注冊模塊 (二). 身份驗證模塊 (三).學(xué)生查詢模塊 (四)、學(xué)生簽到模塊 (五)、教師控制臺模塊 (六)、學(xué)生出勤統(tǒng)計模塊 </p><p>  在這七個模塊當中共完成19項功能,分別如下:</p><p><b>  注冊模塊</b></p><p>  新用戶注冊(教師或?qū)W

30、生)</p><p>  用戶登陸(教師或?qū)W生)</p><p><b>  圖2-1 流程示意</b></p><p><b>  身份驗證模塊</b></p><p><b>  教師注冊身份驗證</b></p><p><b>  學(xué)生注

31、冊身份驗證</b></p><p>  回答信息庫中的個人信息</p><p><b>  圖2-2 流程示意</b></p><p><b>  (三)學(xué)生查詢模塊</b></p><p><b>  用戶輸入學(xué)號</b></p><p>

32、<b>  用戶出勤信息查看</b></p><p><b>  圖2-3流程示意</b></p><p><b>  學(xué)生簽到模塊</b></p><p><b>  個人信息提取</b></p><p><b>  簽到結(jié)果查看</b&

33、gt;</p><p><b>  圖2-4流程示意</b></p><p>  (四)教師控制臺模塊</p><p><b>  開始學(xué)生簽到</b></p><p><b>  停止學(xué)生簽到</b></p><p><b>  查看本次簽到

34、信息</b></p><p><b>  流程示意圖2-5</b></p><p> ?。ㄎ澹熎谀┙y(tǒng)計模塊</p><p><b>  統(tǒng)計專業(yè)</b></p><p><b>  統(tǒng)計年級</b></p><p><b>  點

35、名次數(shù)</b></p><p><b>  每次點名分數(shù)</b></p><p><b>  流程示意圖2-6</b></p><p>  學(xué)生(表間關(guān)系) 主鍵</p><p><b>  圖2-7</b></p><p><b>

36、;  第三章 設(shè)計與實施</b></p><p>  3.1系統(tǒng)數(shù)據(jù)庫設(shè)計</p><p>  表1 學(xué)生信息表(s_infor)</p><p>  表2 教師信息表(t_infor)</p><p>  表3 學(xué)生簽到信息表(s_login)</p><p>  表4 學(xué)生注冊信息表(s_signup)

37、</p><p>  表5 教師注冊信息表(t_signup)</p><p>  表6 學(xué)生出勤統(tǒng)計表(Statistic)</p><p>  表7 簽到控制表(t_control)</p><p>  表8 替名簽到信息查看表(t_view)</p><p><b>  3.2系統(tǒng)基本流程</b&

38、gt;</p><p><b>  1.注冊</b></p><p> ?。?)下面是學(xué)生注冊頁:</p><p><b>  圖3-1</b></p><p>  (2)學(xué)生注冊驗證頁:</p><p>  通過提出隨機問題,實現(xiàn)用戶安全注冊。防止他人注冊。</p&g

39、t;<p><b>  圖3-2</b></p><p>  如果問題回答正確,顯示“您已成功通過驗證” 返回主頁。</p><p>  如果問題回答錯誤,顯示“請仔細檢查您的確認密碼和學(xué)號是否正確”。</p><p>  如果帳號已被注冊,顯示“此用戶帳號已經(jīng)被注冊了,您無法再次進行注冊”。</p><p&g

40、t;<b>  2.登錄</b></p><p><b> ?。?)用戶登錄頁</b></p><p><b>  圖3-3</b></p><p>  注冊后,系統(tǒng)將用戶的帳號和密碼插入數(shù)據(jù)庫,用戶正確輸入帳號和密碼,即可登錄。</p><p>  若輸入的帳號和密碼不正確。

41、顯示“你輸入的帳號或密碼不正確,請重新輸入”。</p><p>  ☆教師登錄,進入教師控制臺</p><p><b>  圖3-4</b></p><p><b>  ☆學(xué)生登錄</b></p><p>  如果教師點擊開始簽到,學(xué)生登錄進入簽到頁。</p><p>  如

42、果教師點擊停止簽到,學(xué)生登錄進入成績查詢頁。</p><p><b>  3.簽到</b></p><p><b> ?。?)學(xué)生簽到頁</b></p><p><b>  圖3-5</b></p><p>  通過ip防止冒名簽到,限定每個ip再同一節(jié)課只能有一個人簽到,并且

43、通過對時間的限制防止同一人在同一節(jié)課多次簽到。</p><p><b> ?。?)冒名簽到頁 </b></p><p>  如果有人冒名簽到,教師可以在冒名簽到頁中查看到,IP地址出現(xiàn)相同的,證明學(xué)生曾試圖在一臺電腦上給兩個人簽到。</p><p><b>  圖3-6</b></p><p>&l

44、t;b>  4.統(tǒng)計</b></p><p>  每簽到一次,系統(tǒng)記錄在數(shù)據(jù)庫中。期末教師輸入每次簽到的分數(shù),</p><p>  分數(shù)*統(tǒng)計次數(shù)=平時成績</p><p><b>  圖3-7</b></p><p><b>  5.查詢</b></p><p

45、>  教師輸入專業(yè),查詢整個專業(yè)的成績。</p><p><b>  圖3-8</b></p><p>  6.學(xué)生輸入學(xué)號,查詢個人的成績。</p><p><b>  圖3-9</b></p><p>  3.3系統(tǒng)主要功能模塊的實現(xiàn)</p><p>  下面將對以

46、上六個模塊中的14項功能的實現(xiàn)做具體詳細地闡述。</p><p><b> ?。ǘ┲饕δ埽?lt;/b></p><p>  新用戶來訪須知,簡介系統(tǒng)將為用戶提供本系的基本介紹;</p><p>  新用戶注冊,為新用戶建立一個信息輸入環(huán)境,同時系統(tǒng)將保存新的用戶個人資料;</p><p>  檢驗身份,是用來檢驗用戶的身

47、份,防止別人冒名注冊;</p><p><b> ?。ㄈ?實現(xiàn)方式</b></p><p><b>  用戶初訪須知:</b></p><p>  這是一個版面,即告訴每一個新來到本系統(tǒng)訪問的用戶,怎樣進行注冊,能讓學(xué)生和老師一目了然,正確注冊個人信息。我在這里用一個名稱為index.php的頁面來簡單地介紹了本系的一些

48、概況和信息。</p><p>  選擇自己的身份,老師或者學(xué)生</p><p>  登錄用戶名和登錄密碼為進入系統(tǒng)的必添資料</p><p>  如果沒有進行注冊,需在這里進行注冊</p><p><b>  新用戶注冊:</b></p><p>  這是一個為新用戶提供輸入個人資料的界面窗口,同

49、時,根據(jù)學(xué)校信息庫的特點,為每一個用戶設(shè)計了準確的個人信息。在這里這些個人資料將輸入到數(shù)據(jù)庫(ts_signup)中的用戶記錄表(t_singup或s_signup)當中。在設(shè)計過程當中,使用了t_signup和s_signup兩個文件來完成此項功能,它們的執(zhí)行步驟如下:</p><p>  教師填寫如下個人資料(t_signup.php)</p><p>  學(xué)生填寫如下個人資料(s_s

50、ignup.php)</p><p><b>  (四) 程序解析:</b></p><p>  學(xué)生用戶注冊(s_signup.php):</p><p>  在此系統(tǒng)當中,自始自終都是以php技術(shù)當中服務(wù)器的表單變量作為操作的標識,而且,在不同的功能當中,通過它來實現(xiàn)參數(shù)的傳遞,完成特定的功能。系統(tǒng)只有通過它才能調(diào)用,但我們可以對使用的系統(tǒng)

51、變量進行定義和初始化,具體實現(xiàn)如下:</p><p>  $s_sno ‘為學(xué)生的學(xué)號,在這里它是唯一可以標示某一個人的身份;</p><p>  $s_name '注冊者姓名;</p><p>  $s_pro 注冊者專業(yè)</p><p>  $s_zh

52、 注冊者帳號;</p><p>  $s_pasw '注冊者密碼;</p><p>  $textfield '注冊者的確認密碼</p><p><b>  頁面進行分析:</b></p><p>  用戶個人資料填寫(s_signup.jsp)</p>

53、<p>  在此頁面當中,主要由兩部分組成,一部分是顯示輸入信息界面,另一部分為函數(shù)控制部分,由javascript語言實現(xiàn)。function sub()語句主要是控制注冊者填寫的內(nèi)容不能為空。例如下:</p><p>  function sub()</p><p><b>  {</b></p><p>  if(docume

54、nt.form1.s_name.value=="")</p><p><b>  {</b></p><p>  window.alert("請?zhí)顚懩愕牡卿浢?quot;);</p><p>  window.form1.id.focus();</p><p>  return false

55、;</p><p><b>  }</b></p><p>  if(document.form1.s_pasw.value=="")</p><p><b>  {</b></p><p>  window.alert("請?zhí)顚懨艽a!");</p>

56、;<p>  window.form1.pwd.focus();</p><p>  return false;</p><p><b>  }……</b></p><p>  余下的內(nèi)容為HTML的設(shè)計頁面。例如下:</p><p>  <style type="text/css"

57、;></p><p><b>  <!--</b></p><p>  h1,h2,h3,h4,h5,h6 {</p><p>  font-family: 學(xué)生注冊;</p><p><b>  }</b></p><p><b>  h1 {<

58、/b></p><p>  font-size: 10px;</p><p>  color: #006699;</p><p><b>  }</b></p><p><b>  --></b></p><p>  </style></HEAD

59、></p><p>  關(guān)鍵的語句在與取得表單輸入信息,語句如下:</p><p>  <form method="post" name="form1" action="s_answer.php"></p><p>  注冊表單輸入(s_answer.php)</p><

60、;p>  在此頁面,主要完成數(shù)據(jù)向數(shù)據(jù)庫中的操作:選擇數(shù)據(jù)庫表(s_signup),填加一條記錄,即新用戶生成,返回主頁面。</p><p>  重名用戶的控制,即注冊用戶的用戶名稱如果在系統(tǒng)中存在,那么將返回信息告訴用戶重新填寫用戶名稱。實現(xiàn)此功能,首先,從數(shù)據(jù)庫中確認申請的用戶名稱是否重復(fù),代碼如下</p><p><b>  <?php</b><

61、;/p><p>  mysql_select_db($database_conn, $conn);</p><p>  $query_Recordset2 = "SELECT * FROM s_signup where s_sno='$s_sno'";</p><p>  $Recordset2 = mysql_query($quer

62、y_Recordset2, $conn) or die(mysql_error());</p><p>  $row_Recordset2 = mysql_fetch_assoc($Recordset2);</p><p>  $totalRows_Recordset2 = mysql_num_rows($Recordset2);</p><p>  if($tot

63、alRows_Recordset2>0)</p><p>  echo "此學(xué)號已經(jīng)被注冊了,您無法再次進行注冊";</p><p><b>  else { </b></p><p>  mysql_select_db($database_conn, $conn);</p><p>  $qu

64、ery_Recordset2 = "SELECT * FROM s_signup where s_sno='$s_zh'";</p><p>  $Recordset2 = mysql_query($query_Recordset2, $conn) or die(mysql_error());</p><p>  $row_Recordset2 = my

65、sql_fetch_assoc($Recordset2);</p><p>  $totalRows_Recordset2 = mysql_num_rows($Recordset2);</p><p>  if($totalRows_Recordset2>0)</p><p>  echo "此用戶帳號已經(jīng)被注冊了,您無法再次進行注冊";&

66、lt;/p><p>  其次是將數(shù)據(jù)輸入輸入庫中:</p><p>  $insert_query="insert into s_signup values(\"$field1\",\"$field2\",\"$field3\",\"$field4\",\"$field5\");&qu

67、ot;;</p><p>  mysql_query($insert_query, $conn);}</p><p>  3 身份驗證模塊(一) 主要功能</p><p>  防止他人冒名注冊個人帳戶;</p><p>  不同的用戶具有不同的管理功能</p><p>  輸入成功后,具有返回的功能;</p&

68、gt;<p><b>  (二)實現(xiàn)方式</b></p><p><b>  身份驗證</b></p><p>  $row=mysql_fetch_row($Recordset1);</p><p>  $i=mt_rand(7,11);</p><p><b>  if(

69、$i==7)</b></p><p>  print "請準確回答你的\"電話號碼\" ?";</p><p>  else if($i==8)</p><p>  print "請準確回答你的\"家庭地址\" ?";</p><p>  else i

70、f($i==10)</p><p>  print "請準確回答你的\"父親名\" ?";</p><p>  else if($i==9)</p><p>  print "請準確回答你的\"母親名\" ?";</p><p>  else if($i==11)

71、</p><p>  print "請準確回答你的\"個人愛好\" ?";</p><p>  $field=$row[$i];</p><p>  $field1=$s_sno;</p><p>  $field2=$s_name;</p><p>  $field3=$s_p

72、ro;</p><p>  $field4=$s_zh;</p><p>  $field5=$s_pasw;</p><p><b>  }</b></p><p><b>  else</b></p><p>  header("Location:s_fail.

73、php");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  ?></b></p><p>  ◆ 成績輸入存儲模塊(cjsr_ok.jsp)</p><p>  第一,查找的信

74、息不能為空,否則視為無效。</p><p>  第二,連接數(shù)據(jù)庫(chengji),輸入信息。如果有信息正確,寫入。代碼如下:</p><p>  String asql="SELECT * FROM chengji where id='"+id+"'";</p><p>  ResultSet RS=conn

75、ben.executeQuery(asql);</p><p><b>  ……</b></p><p>  (id,name,rgzn,hbyy,jkjs,sjjg,sjksj,java,xhxt,dmtjs) Values('"+id+"','"+name+"','"+rgz

76、n+"','"+hbyy+"','"+jkjs+"','"+sjjg+"','"+sjksj+"','"+java+"','"+xhxt+"','"+dmtjs+"')&

77、quot;;</p><p>  成績修改輸入模塊(cjsrup.jsp)</p><p>  輸入要修改學(xué)生的學(xué)號和姓名等待系統(tǒng)確認后,將進入修改主頁面。</p><p>  第二,將要修改是成績輸入到表單中,由表單提交到數(shù)據(jù)庫中。</p><p>  name="id" '為了建立不同的紀錄而設(shè)定

78、的代號,在這里它是唯一可以標示某一個學(xué)生的身份;</p><p>  name="pwd" '學(xué)生密碼;</p><p>  name="rgzn" '代表課程人工智能;</p><p>  name="hbyy" '代表課程匯編語言</p&

79、gt;<p>  name="jkjs" '代表課程接口技術(shù);</p><p>  name="sjjg" '代表課程數(shù)據(jù)結(jié)構(gòu);</p><p>  name="sjksj" '代表課程數(shù)據(jù)庫設(shè)計;</p><p>  name=&qu

80、ot;java" '代表課程java語言;</p><p>  name="xhxt" '代表課程信號系統(tǒng);</p><p>  name="dmtjs" '代表課程多媒體技術(shù);</p><p>  function sub()定義到表中姓名和學(xué)號不能為空。例

81、子如下:</p><p>  function sub()</p><p><b>  {</b></p><p>  if(document.form1.id.value=="")</p><p><b>  {</b></p><p>  window

82、.alert("請?zhí)顚懩愕膶W(xué)號!");</p><p>  window.form1.id.focus();</p><p>  return false;</p><p><b>  }</b></p><p><b>  4學(xué)生查詢模塊</b></p><

83、p><b> ?。ㄒ唬┲饕δ?lt;/b></p><p>  查詢功能是面向全體用戶的查詢功能;</p><p>  查找的對象主要包括數(shù)據(jù)庫中簽到信息表(s_login)中的全部內(nèi)容。</p><p>  查找對象與數(shù)據(jù)庫匹配的字符,如不相符不予以查找。</p><p>  查詢的結(jié)果顯示在查詢結(jié)果頁面(sss_i

84、nfor.php)上。</p><p><b> ?。ǘ崿F(xiàn)方式</b></p><p>  成績查詢模塊(sss_infor.php) </p><p>  查找學(xué)生學(xué)號(sss_infor.php)</p><p>  要求輸入學(xué)生的學(xué)號,這部分由標準的HTML代碼生成;</p><p> 

85、 關(guān)鍵的語句在與取得數(shù)據(jù)庫信息,語句如下:</p><p>  <form method="post" action="sss_infor.php">。</p><p>  顯示成績模塊(sss_infor.php)</p><p>  連接數(shù)據(jù)庫,查找信息。如果有正確的信息顯示出來</p><

86、;p>  mysql_select_db($database_conn, $conn);</p><p>  $query_Recordset1 = "SELECT * FROM s_login where s_sno='$field' ";</p><p>  第二, 把要顯示的信息輸入出來 </p><p>  $max

87、Rows_Recordset1 = 20;</p><p>  $pageNum_Recordset1 = 0;</p><p>  $query_Recordset1 = "SELECT * FROM s_login where s_sno='$field' ";</p><p>  $query_limit_Recordset

88、1 = sprintf("%s LIMIT %d, %d", $query_Recordset1, </p><p><b>  5學(xué)生簽到模塊</b></p><p><b> ?。ㄒ唬┲饕δ?lt;/b></p><p>  根據(jù)用戶帳號,從數(shù)據(jù)庫中學(xué)生信息表中提取數(shù)據(jù);</p><

89、p>  將提取的信息放到簽到信息頁上;</p><p><b> ?。ǘ崿F(xiàn)方式</b></p><p>  根據(jù)用戶帳號提取個人信息 </p><p>  mysql_select_db($database_conn, $conn);</p><p>  $query_Recordset2 = "SE

90、LECT s_infor.* FROM s_infor ,s_signup where s_infor.s_sno= s_signup.s_sno and s_signup.s_zh='$s_zh'";</p><p><b>  實現(xiàn)簽到</b></p><p>  連接數(shù)據(jù)庫,查找信息。如果有正確的信息輸入進去</p>&l

91、t;p>  mysql_select_db($database_conn, $conn);</p><p>  $query= "insert into s_login values(\"$s_sno\",\"$s_name\",\"$s_pro\",\"$s_gra\",\"$cc\",\&quo

92、t;$ip\");";</p><p>  $Recordset1 = mysql_query($query, $conn) or die(mysql_error());</p><p>  header("location: pp.php?flag=2");</p><p>  第二,把要顯示的信息轉(zhuǎn)到s_infor.php

93、頁面輸出來 </p><p><b>  <?php</b></p><p>  $maxRows_Recordset1 = 20;</p><p>  $pageNum_Recordset1 = 0;</p><p>  mysql_select_db($database_conn, $conn);</p&

94、gt;<p>  $query_Recordset1 = "SELECT * FROM s_login where s_sno='$field' ";</p><p><b>  ?></b></p><p><b>  6教師控制臺模塊</b></p><p>&l

95、t;b> ?。ㄒ唬┲饕δ?lt;/b></p><p> ?。?)教師允許簽到,設(shè)置數(shù)據(jù)庫(t_control)中控制標志位;</p><p> ?。?)停止簽到,設(shè)置數(shù)據(jù)庫中(t_control)控制標志為;</p><p><b> ?。ǘ?實現(xiàn)方式</b></p><p><b>  設(shè)置

96、標志為 </b></p><p><b>  教師允許簽到</b></p><p>  if(!strcmp($button,"開始"))</p><p>  { //使標志位值為1 開始簽到</p><p>  $query_Recordset1 = "insert int

97、o t_control(falg) values(\"1\");";</p><p>  $Recordset1 = mysql_query($query_Recordset1, $conn) or die(mysql_error());</p><p><b>  }</b></p><p><b> 

98、 停止簽到</b></p><p>  if (!strcmp($button,"停止"))</p><p><b>  {//清除標志位</b></p><p>  $query_Recordset1 = "delete from t_control where falg=\"1\"

99、;;";</p><p>  $Recordset1 = mysql_query($query_Recordset1, $conn) or die(mysql_error());</p><p>  使其他學(xué)生下次正常簽到</p><p>  $query_Recordset1 = "update s_login set ip=\"1\

100、";";</p><p>  $Recordset1 = mysql_query($query_Recordset1, $conn) or die(mysql_error());</p><p><b>  }</b></p><p><b>  7學(xué)生出勤統(tǒng)計模塊</b></p><

101、;p><b> ?。ㄒ唬┲饕δ?lt;/b></p><p>  (1)教師期末統(tǒng)計學(xué)生出勤信息</p><p> ?。?)了解學(xué)生本學(xué)期學(xué)習(xí)狀態(tài);</p><p> ?。?)正確錄入期末成績;</p><p><b> ?。ǘ崿F(xiàn)方式</b></p><p>  ◆ 教

102、師登錄(t_last.php)</p><p>  要統(tǒng)計的信息不能為空。</p><p><b>  第二,顯示統(tǒng)計信息</b></p><p>  maxRows_Recordset1 = 20;</p><p>  $pageNum_Recordset1 = 0;</p><p>  $qu

103、ery_Recordset1 = "SELECT * FROM statistic";</p><p>  $query_limit_Recordset1 = sprintf("%s LIMIT %d, %d", $query_Recordset1, $startRow_Recordset1, $maxRows_Recordset1);</p><p&g

104、t;<b>  第四章 測 試</b></p><p>  測試在開發(fā)軟件過程中是一個不可缺少的部分。因為在開發(fā)軟件系統(tǒng)的漫長過程中,面對著極其錯綜復(fù)雜的問題,人的主觀認識不可能完全符合客觀現(xiàn)實,與工程密切相關(guān)的各類人員之間的通信和配合也不可能完美無缺,因此,在軟件生命周期的各個階段都不可避免地產(chǎn)生差錯。我們力求在每個階段結(jié)束之前通過嚴格的技術(shù)審查,盡可能早地發(fā)現(xiàn)并糾正錯誤;但是,經(jīng)驗表明

105、審查并不能發(fā)現(xiàn)所有的差錯,此外在編碼過程中還不可避免地會引入一些新的錯誤。如果在軟件生產(chǎn)性運行之前,沒有發(fā)現(xiàn)并糾正軟件中的大部分差錯,則這些錯誤遲早在生產(chǎn)過程中暴露出來,那時不僅僅改正這些錯誤的代價更高,而且往往會造成很惡劣的后果。測試的目的就是在軟件投入生產(chǎn)運行之前,盡可能多地發(fā)現(xiàn)并糾正軟件中的錯誤。基于上述的原因,我在編碼過程中進行了模塊測試,編碼結(jié)束進行了系統(tǒng)測試和驗收測試。 </p><p><b&

106、gt;  4.1 模塊測試</b></p><p>  4.1.1 測試方案</p><p>  我采用了白盒測試(又稱結(jié)構(gòu)測試),即按照程序內(nèi)部的邏輯結(jié)構(gòu),檢驗程序中的每條通路是否能夠按照預(yù)定要求正常工作。</p><p>  由于設(shè)計過程當中,不免會出現(xiàn)很多意想不到的結(jié)果發(fā)生,為了減少不必的錯誤出現(xiàn),同時,為了能夠使不同的文件之間正確和有效的銜接,

107、我在設(shè)計模塊的過程,對于每一個文件的執(zhí)行和模塊的執(zhí)行都做了認真地測試,以求達到設(shè)計要求。</p><p>  4.1.2 測試過程</p><p>  主要檢查模塊的兩個方面,一個是各個模塊之間的接口,另一個是模塊的運行是否正常。</p><p>  對于檢驗各個模塊之間的接口,所做的測試工作有:</p><p>  每個被調(diào)用模塊之間是否

108、能夠正常接受參數(shù)(包括系統(tǒng)變量);</p><p>  每個被調(diào)用模塊之間能否正常地而且有效地銜接上;</p><p>  對于檢驗?zāi)K的運行是否正常,所做的測試工作有:</p><p>  對每一個模塊中各個執(zhí)行過程嚴格地進行檢查與檢測;</p><p>  對每一個模塊中各個文件內(nèi)所設(shè)計的函數(shù)逐個進行達標測試;</p>&l

109、t;p>  對每一個模塊在調(diào)用的過程中,時刻檢測系統(tǒng)變量的過程性變化;</p><p>  4.1.3 測試結(jié)果</p><p>  測試結(jié)果表明,每一個模塊都能夠正常獨立地運行,各個模塊之間的接口亦能正確地吻合,同時每個模塊基本上達到了設(shè)計的要求。</p><p><b>  4.2 系統(tǒng)測試</b></p><p

110、>  4.2.1 測試方案</p><p>  這個部分由我的導(dǎo)師在設(shè)計過程當中和結(jié)束是不斷地進行黑盒測試(又叫功能測試),即檢查程序功能是否按照規(guī)格說明書的規(guī)定正常使用,程序是否能夠適當?shù)亟邮蛰斎霐?shù)據(jù)產(chǎn)生正確的輸出信息,并且保持外部信息的完整性。</p><p>  在這次的設(shè)計當中,對于每一個模塊的功能實現(xiàn)上和設(shè)計風(fēng)格上,我的導(dǎo)師都做了細致的檢測和提出建設(shè)性的意見,并且盡力去找

111、出系統(tǒng)的紕漏之處。</p><p>  4.2.2 測試過程</p><p>  主要由我的導(dǎo)師在不同的時間、不同機器和不同的系統(tǒng)狀態(tài)下進行測試過程,利用特殊的參數(shù)和普通參數(shù)兩種方式進行測試。</p><p>  4.2.3 測試結(jié)果</p><p>  測試結(jié)果表明,系統(tǒng)能夠按照設(shè)計的要求實現(xiàn)其內(nèi)部的各項功能,同時提前完成了設(shè)計的任務(wù)要

112、求。</p><p><b>  4.3 驗收測試</b></p><p>  4.3.1 測試方案</p><p>  我采用黑盒測試,對系統(tǒng)的各個模塊功能進行了隨機抽樣檢驗,同時作了相應(yīng)的時間比較。</p><p>  4.3.2 測試過程</p><p>  我對所抽樣后選擇出的模塊進行

113、黑盒測試,從以下幾個角度進行:</p><p>  從用戶自身的角度,進行了有個性的測試;</p><p>  從管理員的角度,對系統(tǒng)的維護與管理的效率進行了測試;</p><p>  從一個破壞者的身份,對系統(tǒng)的安全性進行測試;</p><p>  4.3.3 測試結(jié)果</p><p>  測試結(jié)果表明,盡最大地可

114、能滿足了不同用戶的需求,同時保證了系統(tǒng)管理員的高效的管理工作,基本上有效地防止了破壞者的惡意攻擊。</p><p><b>  4.4 小結(jié)</b></p><p>  在測試的過程當中,發(fā)現(xiàn)不少錯誤與不足之處,通過廣泛的查找資料和導(dǎo)師的認真指導(dǎo),基本上修正了存在的這些錯誤,能夠達到設(shè)計的要求,同時,不斷地完善了一些模塊的功能。</p><p>

115、;  通過這些的測試工作,我真正認識到了測試的重要性、必要性。同時提高了我對錯誤的分析能力和警惕性,增強了我的編程能力,增加了我的設(shè)計經(jīng)驗。測試結(jié)果表明,我的系統(tǒng)可以進行應(yīng)用。</p><p><b>  第五章 結(jié)束語</b></p><p>  5.1 系統(tǒng)改進意見</p><p>  由于我個人的技術(shù)水平有限,同時編程經(jīng)驗不足,對系統(tǒng)的設(shè)

116、計帶來了一些不利的因素,在設(shè)計系統(tǒng)的功能模塊時,僅按要求設(shè)計出基本的模塊,這對于一個綜合性的網(wǎng)站不相稱,同時有些個性化的設(shè)計沒有應(yīng)用上,這使我更加認識到系統(tǒng)的不完善,在此我將我的改善意見表述如下,希望后繼的設(shè)計者能夠適當完善。</p><p>  由于我對網(wǎng)頁美化的設(shè)計工作投入有限,使得頁面在整體的美觀上存在許多欠缺之處;</p><p>  由于對用戶的需求了解有限,對用戶所需要的功能設(shè)

117、計上存在著許多不足,尤其是冒名簽到部分。</p><p>  由于此系統(tǒng)的設(shè)計要求有所側(cè)重,所以,其中“后臺管理”這項功能模塊在設(shè)計上簡化了許多,與現(xiàn)在流行的后臺管理相比,還存在一定的距離;</p><p>  由于設(shè)計思路的限制和認識空間的狹隘,設(shè)計出非常有限的系統(tǒng)管理員的管理手段,這對于一個系統(tǒng)管理員高效地進行管理與維護工作是不協(xié)調(diào)的,應(yīng)該從不同的管理角度進行設(shè)計出一些更有效的管理手段

118、;</p><p>  由于我個人的能力有限,這套系統(tǒng)的欠妥之處在所難免,敬請各位老師多給予寶貴意見。</p><p>  5.2 設(shè)計心得 </p><p>  通過本次設(shè)計,學(xué)到了不少東西。不但對PHP+MYSQL這一開發(fā)工具有所掌握,更重要的是對進行軟件設(shè)計的整體設(shè)計流程及思維方法有了深刻的認識。在期間,發(fā)現(xiàn)的許多問題都源于沒有認真地按步驟進行設(shè)計,不重視需

119、求分析,總體設(shè)計部分,對各個方面將會產(chǎn)生的問題考慮不周全。</p><p>  總之,在整個設(shè)計完善的過程中,我學(xué)到了在書本里根本學(xué)不到的許多知識,體會到PHP+MYSQL的強大功能,總體把握系統(tǒng)的流程的為實現(xiàn)某個功能的各個程序的流程是多么的重要,再一次感謝金小峰老師的細心指導(dǎo)。</p><p><b>  參考文獻</b></p><p> 

120、 1. 《PHP語言,進階和高級應(yīng)用》 龍浩等編著 清華大學(xué)出版社</p><p>  2. 《PHP & MYSQL Web數(shù)據(jù)庫應(yīng)用開發(fā)指南》 Hugh E.Williams等著 謝君英 歐陽宇譯2003年5月</p><p>  3. 《php程序設(shè)計》 Programming PHP  中國電力出版社 2003年7月</p><p> 

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論