




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
廈門大學軟件學院畢業設計緒論1.1課題背景近年來,隨著Internet的迅速崛起,互聯網已日益成為收集提供信息的最佳渠道并逐步進入各項管理領域。于是基于b/s的管理模式開始流行起來,越來越多領域的單位在網上建立起了管理平臺,其中就包括足球俱樂部。網站是一種主要的渠道。人們通過互聯網快速、準確的發布信息、獲取信息。而足球俱樂部是足球職業化、專業化的一個標志,是足球運動員以足球謀生時,所被聘用的機構,應運時代發展,規模、數量不斷的擴大,各個俱樂部加大了對資金的投入,用金錢刺激更多的人投身于這個運動當中。足球已成為不可忽視的一項運動。俱樂部將實行市場化運作,符合市場經濟條件下體育產業發展的規律,其發展前景看好。俱樂部實行董事會制度,自主經營、管理、開發,按市場經濟規律規范運作,實行企業、高教學籍、足球運動項目注冊三合一管理。1.2目的和意義21世紀里計算機技術已經在各行各業中發揮著不可替代的作用。當前越來越多的商業、企事業單位已經將計算機技術應用于日常的管理工作。在計算機技術不斷地發展,計算機互聯網通信技術不斷發展的今天。對于一些球員和足球愛好者來說,需要時時刻刻了解,自己及自己所喜歡的足球賽事的相關信息,比賽賽事的相關事宜,比賽比分的相關信息,各個球隊的小組賽。每場賽事球員發揮情況的相關信息等等。并且讓這些信息都要在網站中顯示出來。這樣就需要相關的人員,時時刻刻發布新的相關信息,并且把搜集到的,足球賽事信息都給錄入到網站上,更加方便地為網民們提供信息查看。通過這個平臺,你可以很輕松的找到你所需要球員的各種信息,包括:姓名、年齡、工資、賽季進球數、出場次數等等。比以前通過查閱資料尋找球員信息節省了大量的時間,使聯賽管理者能更好的利用這些資源管理好球員的個人信息。這樣,就使得聯賽綜合信息管理系統的設計與實現的開發就變得更加有意義。1.3開發工具及技術1.3.1開發工具此次設計主要采用MyEclipse加Tomcat后臺服務器進行,設計過程中頁面主要使用JSP技術完成,下面對MyEclipse、Tomcat和SqlServer數據庫進行簡要介紹。(1)MyEclipse簡介MyEclipse,是一個十分優秀的用于開發Java,J2EE的Eclipse插件集合,MyEclipse的功能非常強大,支持也十分廣泛,尤其是對各種開元產品的支持十分不錯。MyEclipse企業級工作平臺(MyEclipseEnterpriseWorkbench,簡稱MyEclipse)是對EclipseIDE的擴展,利用它我們可以在數據庫和JavaEE的開發、發布,以及應用程序服務器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發環境,包括了完備的編碼、調試、測試和發布功能,完整支持HTML,Struts,JSP,CSS,Javascript,SQL,Hibernate。(2)Tomcat簡介Tomcat是一個小型的輕量級應用服務器,在中小型系統和并發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP程序的首選。可以這樣認為,當在一臺機器上配置好Apahce服務器,可利用它響應對HTML頁面的訪問請求。實際上Tomcat部分是Apache服務器的擴展,但它是獨立運行的,所以當運行tomcat時,它實際上作為一個與Apache獨立的進程單獨運行的。(3)MySQL簡介MySQL數據庫是一個開放源代碼的關系數據庫管理系統,原開發者為瑞典的MySQLAB公司,該公司于2008年被升陽微系統(SunMicrosystems)收購。2009年,甲骨文公司(Oracle)收購升陽微系統公司,MySQL成為Oracle旗下產品。MySQL在過去由于性能高、成本低、可靠性好,已經成為最流行的開源數據庫,因此被廣泛地應用在Internet上的中小型網站中。(4)JSP簡介JSP技術使用Java編程語言編寫類XML的tags和scriptlets,來封裝產生動態網頁的處理邏輯。網頁還能通過tags和scriptlets訪問存在于服務端的資源的應用邏輯。JSP將網頁邏輯與網頁設計和顯示分離,支持可重用的基于組件的設計,使基于Web的應用程序的開發變得迅速和容易。Web服務器在遇到訪問JSP網頁的請求時,首先執行其中的程序段,然后將執行結果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數據庫、重新定向網頁等,以實現建立動態網頁所需要的功能。JSP與Servlet一樣,是在服務器端執行的,通常返回給客戶端就是一個HTML文本,因此客戶端只要有瀏覽器能瀏覽。JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務器在頁面被客戶端請求以后對這些Java代碼進行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。Servlet是JSP的技術基礎,而且大型的Web應用程序的開發需要JavaServlet和JSP配合才能完成。JSP具備了Java技術的簡單易用,完全的面向對象,具有平臺無關性且安全可靠,主要面向因特網的所有特點。JSP技術的優點:a.一次編寫,到處運行。除了系統之外,代碼不用做任何更改。b.系統的多平臺支持。基本上可以在所有平臺上的任意環境中開發,在任意環境中進行系統部署,在任意環境中擴展。相比ASP/.net的局限性是顯而易見的。c.強大的可伸縮性。從只有一個小的Jar文件就可以運行Servlet/JSP,到由多臺服務器進行集群和負載均衡,到多臺Application進行事務處理,消息處理,一臺服務器到無數臺服務器,Java顯示了一個巨大的生命力。d.多樣化和功能強大的開發工具支持。Java已經有了許多非常優秀的開發工具,而且許多可以免費得到,并且其中許多已經可以順利的運行于多種平臺之下e.支持服務器端組件。web應用需要強大的服務器端組件來支持,開發人員需要利用其他工具設計實現復雜功能的組件供web頁面調用,以增強系統性能。JSP可以使用成熟的JAVABEANS組件來實現復雜商務功能。內部對象說明:request客戶端請求,此請求會包含來自GET/POST請求的參數;response網頁傳回客戶端的響應;pageContext網頁的屬性是在這里管理;session與請求有關的會話;applicationservlet正在執行的內容;out用來傳送響應的輸出流;config代碼片段配置對象;page,JSP網頁本身;exception針對錯誤網頁,未捕捉的例外。(5)JavaScript簡介JavaScript是一種基于對象和事件驅動并具有相對安全性的客戶端腳本語言。同時也是一種廣泛用于客戶端Web開發的腳本語言,常用來給HTML網頁添加動態功能,比如響應用戶的各種操作。JavaScript的一個重要功能就是面向對象的功能,通過基于對象的程序設計,可以用更直觀、模塊化和可重復使用的方式進行程序開發。在HTML基礎上,使用Javascript可以開發交互式Web網頁。Javascript的出現使得網頁和用戶之間實現了一種實時性的、動態的、交互性的關系,使網頁包含更多活躍的元素和更加精彩的內容。在本系統中很多地方使用了javascript技術,比如說,檢驗用戶輸入數據的有效性,是否重復,是否為空等等。(6)Struts2簡介Struts最早是作為ApacheJakarta項目的組成部分問世運作。項目的創立者希望通過對該項目的研究,改進和提高JavaServerPages、Servlet、標簽庫以及面向對象的技術水準。它的目的是為了減少在運用MVC設計模型來開發Web應用的時間。使用Struts的目的是為了幫助我們減少在運用MVC設計模型來開發Web應用的時間。Struts是Apache軟件基金會(ASF)贊助的一個\o"開源"開源項目。它最初是Jakarta項目中的一個子項目,并在2002年3月成為ASF的頂級項目。它通過采用Java\o"Servlet"Servlet/JSP技術,實現了基于JavaEE\o"Web"Web應用的Model-View-Controller〔MVC〕設計模式的應用框架〔Web\o"Framework"Framework〕,是MVC經典設計模式中的一個經典產品。而Struts2則是Struts的升級版本。它的優點在于:Struts2基于MVC架構,框架結構清晰,開發流程一目了然,開發人員可以很好的掌控開發的過程;b.使用OGNL進行參數傳遞;c.強大的攔截器;d.易于測試;e.易于擴展的插件機制。(7)Hibernate簡介Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。Hibernate的核心接口一共有2個,分別為:Session、SessionFactory、Transaction、Query和Configuration。這2個核心接口在任何開發中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務控制。1.4軟硬件需求硬件需求:CPU:Pentium以上計算機內存:512M以上軟件需求:操作系統版本:WindowsXP/vista/Win7開發工具:MyEclipse6.0.1后臺服務器:ApacheTomcat6.0開發語言:Java
2需求分析2.1需求調研在計算機技術不斷地發展,計算機互聯網通信技術不斷發展的今天。對于一些球員和足球愛好者來說,需要時時刻刻了解,自己及自己所喜歡的足球賽事的相關信息,比賽賽事的相關事宜,比賽比分的相關信息,各個球隊的小組賽。每場賽事球員發揮情況的相關信息等等。并且讓這些信息都要在網站中顯示出來。這樣就需要相關的人員,時時刻刻發布新的相關信息,并且把搜集到的,足球賽事信息都給錄入到網站上,更加方便地為信息查看。2.2可行性分析開發任何一個系統,都會受到時間和資源上的限制。因此,在每一個項目開發之前,都要進行可行性分析,可以減少項目的開發風險,避免人力、物力和財力的浪費。下面就技術、經濟、操作和法律四個方面來介紹。2.2.1技術的可行性本系統開發工具是MyEclipse和MySQL數據庫,開發語言是Java,主要使用了J2EE的技術,java是一種面向對象編程語言,簡單易學而且靈活方便。大三時就學習了java課程,大四期間也系統的了解了J2EE的知識,鐵路售票系統總體上開發難度不高,數據庫的設計和操作是本系統設計的核心。在大學期間學習過軟件工程,軟件測試,UML統一建模語言等課程,每個學期也會完成對應的課程設計,具備一定的系統分析、設計和測試能力。因此,完成系統實現在技術上完全具有可行性。2.2.2經濟的可行性如今是信息化時代,信息化管理可以使聯賽管理工作更加系統化、快速化、全面化。這樣可以為企業帶來較高的工作效益和經濟效益,本系統對計算機配置的要求不高,企業機房更換下來的低配置電腦都可以完全滿足需要,再者,企業在管理工作上的高效率和便捷性遠遠超過了開發本系統的成本,所以在經濟上具有完全的可行性。2.2.3操作可行性本系統操作簡單,輸入信息頁面大多數都是下拉框的選擇形式,在某些頁面,信息可以自動生成,無需輸入,時間的輸入也是用的日歷控件,操作簡便,對操作人員的要求很低,只需對WINDOWS操作熟練,加之對本系統的操作稍加培訓即可工作,而且本系統可視性非常好,所以在技術上不會有很大難度。2.2.4法律的可行性本系統是自行開發的管理系統,是很有實際意義的系統,開發環境軟件和使用的數據庫都是開源代碼,開發這個系統不同于開發普通的系統軟件,不存在侵權等問題,即法律上是可行的。綜上所述,開發一個基于Internate的聯賽綜合信息管理系統,可以成為廣大球員和球迷愛好者了解足球及球隊的一個窗口,能成為球員與球員溝通的一個橋梁,也能成為球迷了解足球的窗口。2.3系統用戶用例圖2.3.1管理員用例圖管理員是系統的核心用戶,涉及到六大功能模塊,管理員對系統的所有用戶有著操作的權限,可以管理俱樂部簡介信息、球員信息、賽事信息、公告信息及回復會員的在線留言。管理員用例圖如圖2-1所示。圖2-1管理員用例圖2.3.2會員用例圖會員是系統的普通用戶,會員可以瀏覽俱樂部主頁,了解球隊歷史、球員信息及最新賽事信息,也可以通過在線留言向管理員提出問題。會員用例圖如圖2-2所示。圖2-2會員用例圖2.4功能模塊需求分析本系統最大的特點是使用操作簡單、友好的提示信息。本系統將實現以下基本功能:(1)系統具有簡潔大方的頁面,使用簡便,友好的錯誤操作提示。(2)管理員用戶具有俱樂部簡介管理、會員管理、球員管理、賽事管理、公告管理及留言回復等功能。(3)會員用戶具有網站信息瀏覽及在線留言等功能。(4)具有較強的安全性,避免用戶的惡意操作。管理員功能模塊圖說明:(1)會員信息管理模塊:在該模塊中定義了對會員信息的管理功能。其功能包括會員信息的查詢、刪除等操作。(2)球隊簡介管理模塊:在該模塊中定義了對球隊簡介信息的管理功能。其功能包括簡介信息的查詢、更新等操作。(3)球員信息管理模塊:在該模塊中定義了對球員信息的管理功能。其功能包括球員信息的添加、查詢、刪除等操作。(4)賽事信息管理模塊:在該模塊中定義了對賽事信息的管理功能。其功能包括賽事信息的添加、查詢、刪除等操作。(5)公告信息管理模塊:在該模塊中定義了對公告信息的管理功能。其功能包括公告信息的添加、查詢、刪除等操作。(6)在線留言回復模塊:在該模塊中定義了對在線留言信息的管理功能。其功能包括在線留言信息的查詢、回復、刪除等操作。管理員用戶功能模塊圖如圖2-3所示。圖2-3管理員用戶功能模塊圖會員功能模塊圖說明:(1)用戶注冊模塊:游客可以通過該模塊注冊成為網站會員,注冊后才可以進行在線留言操作。(2)信息瀏覽模塊:游客或會員可以瀏覽俱樂部網的公開信息,包括球隊簡介、球員介紹、賽事介紹、公告信息等。(3)在線留言模塊:會員可以通過該模塊對系統管理員提出問題,并查看管理員的回復。會員用戶功能模塊圖如圖2-4所示。圖2-4會員用戶功能模塊圖2.5設計的基本思想設計思想遵循以下幾點:(1)采用B/S模式進行開發,其優點是后臺與前臺處理層次分明,而且符合眾多已經習慣網頁方式的用戶。(2)采用面向對象的開發與設計理念。運用面向對象技術的前提是對整體系統的高度和準確抽象,通過它可以保證系統良好的框架,進而帶來產品較強的穩定性和運行效率。(3)采用模塊化設計。模塊化設計要求將整個系統劃分成基于小的模塊,有利于代碼的重載,簡化設計和實現過程。(4)簡單方便的系統界面。設計簡單友好的系統界面,方便用戶較快的適應系統的操作。(5)速度優先原則。由于此工具最重要的評測標準就是速度,因此在設計過程中,具體過程盡量做到資源占用少,速度快。(6)設計既要突出重點,又要細致周到。要符合設計需求,在有可能改進的地方進行擴充,使系統更適應用戶的需要。2.6性能需求2.6.1系統的安全性聯賽綜合信息管理系統在管理權限上要嚴格進行控制,具體要求如下:想登錄聯賽綜合信息管理系統后臺進行操作,必須有操作權限,沒有權限的用戶不能通過任何方式登錄系統查看系統的任何信息和數據,以確保系統的嚴密性和安全性。2.6.2數據的完整性(1)各種記錄信息的完整性,信息記錄內容不能為空。(2)各種數據間相互聯系的正確性。(3)相同數據在不同記錄中的一致性。2.7界面需求界面設計目前已經成為評價軟件質量的一條重要指標,一個好的用戶界面可以增加用戶使用系統的信心和興趣,提高工作效率,JSP技術是用JAVA語言作為腳本語言的,JSP網頁為整個服務器端的JAVA庫單元提供了一個接口來服務于HTTP的應用程序。創建動態頁面非常方便。用戶界面是指軟件系統與用戶交互的接口,通常包括輸出、輸入、人-機對話的界面格式等。(1)輸出設計輸出是由計算機對輸入的原始信息進行加工處理,形成高質量的有效信息,并使之具有一定的格式,提供管理者使用,這是輸出設計的主要職責和目標。系統設計的過程正好和實施過程相反,并不是從輸入設計到輸出設計,而是從輸出設計到輸入設計,這是因為輸出表格直接與使用者相聯系,設計的出發點應當是保證輸出表格方便地為使用者服務,正確及時反映和組成用于各部門的有用信息。輸出設計的原則是考慮既要全面反映不同管理層的各項需要,又要言簡意賅,不要將用戶需要和不需要的都提供給用戶。(2)輸入設計輸入數據的收集和錄入是比較費事的,需要大量的人力和一定設備,并且容易出錯。如果輸入系統的數據有錯誤,則處理后的輸出將擴大這些錯誤,因此輸入數據的正確性對于整個系統質量的好壞是具有決定性意義的。輸入設計的原則有如下幾點:a.輸入量應保持在能滿足處理要求的最低限度。設計中可采用設置字段初值,下拉式數據窗口等方式盡量減少用戶鍵盤輸入量。輸入量越少,錯誤率就越少,數據準備時間也減少。b.輸入的準備及輸入過程應盡量容易進行,從而減少錯誤的發生。c.應盡量早對輸入數據進行檢查(盡量接近原數據發生點),以便使錯誤及時得到更正。d.輸入數據盡早地用其處理所需的形式被記錄,以避免數據由一種介質轉移到另一種介質時需要轉錄而可能發生的錯誤。3系統分析與設計3.1數據庫的分析與設計計算機信息系統以數據庫為核心,在數據庫管理系統的支持下,進行信息的收集、整理、存儲、檢索、更新、加工、統計和傳播等操作。數據庫已經成為現在信息系統等計算機系統的基礎與核心部分。數據庫設計的好壞直接影響到整個系統的質量和效率。數據庫的設計一般經過規劃。需求分析、概念設計、邏輯設計、物理設計5個步驟。3.1.1數據庫的概念結構設計概念設計是指在數據分析的基礎上自底向上的建立整個系統的數據庫概念結構,從用戶的角度進行視圖設計,然后將視圖集成,最后對集成的結構分析優化得到最后結果。數據庫的概念結構設計采用實體—聯系(E-R)模型設計方法。E-R模型法的組成元素有:實體、屬性、聯系,E-R模型用E-R圖表示,是提示用戶工作環境中所涉及的事物,屬性則是對實體特性的描述。概念設計的目標是產生反映企業組織信息要求的數據庫概念結構,即概念模式。概念模式是獨立于數據庫邏輯結構,獨立于支持數據庫的DBMS,不依賴于計算機系統的,根據以上對數據庫的需求分析,并結合系統概念模型的特點及建立方法,建立E-R模型圖。會員信息實體E-R圖,如圖3-1所示。圖3-1會員信息實體E-R圖(2)球隊簡介信息E-R圖如圖3-2所示。圖3-2球隊簡介信息實體E-R圖(3)球員信息E-R圖如圖3-3所示。圖3-3球員信息實體E-R圖賽事信息E-R圖如圖3-4所示。圖3-4賽事信息實體E-R圖(5)公告信息E-R圖如圖3-5所示。圖3-5公告信息實體E-R圖留言信息E-R圖如圖3-6所示。圖3-6留言信息實體E-R圖管理員信息E-R圖如圖3-7所示。圖3-7管理員信息實體E-R圖3.1.2數據庫的邏輯結構設計我們知道,數據庫概念模型獨立于任何特定的數據庫管理系統,因此,需要根據具體使用的數據庫管理系統的特點進行轉換。即轉化為按計算機觀點處理的邏輯關系模型,E-R模型向關系數據庫模型轉換應遵循下列原則:每一個實體要轉換成一個關系所有的主鍵必須定義非空(NOTNULL)對于二元聯系應按照一對多、弱對實、一對一、多對多等聯系來定義外鍵。根據E-R模型,聯賽綜合信息管理系統建立了以下邏輯數據結構,下面是各數據表的詳細說明。(1)會員信息表主要是記錄了會員基本信息。表結構如表3-1所示。表3-1會員信息表(t_user)列名數據類型長度允許空是否主鍵說明user_idint4否是編號user_namevarchar50否否登錄名user_pwvarchar50否否密碼user_realnamevarchar50否否真實姓名user_sexvarchar50否否性別user_agevarchar50否否年齡user_addressvarchar50否否住址user_telvarchar50否否聯系電話(2)球隊簡介信息表主要是記錄了球隊簡介基本信息。表結構如表3-2所示。表3-2球隊簡介信息表(t_jianjie)列名數據類型長度允許空是否主鍵說明idint4否是編號neirongvarchar50否否標題(3)球員信息表主要是記錄了俱樂部球員基本信息。表結構如表3-3所示。表3-3球員信息表(t_qiuyuan)列名數據類型長度允許空是否主鍵說明idint4否是編號xingmingvarchar50否否姓名guojivarchar50否否國籍shengrivarchar50否否出生日期shengaovarchar50否否身高tizhongvarchar50否否體重qiuduivarchar50否否球隊fujianvarchar50否否照片(4)賽事信息表主要是記錄了俱樂部賽事的基本信息。表結構如表3-4所示。表3-4賽事信息表(t_saishi)列名數據類型長度允許空是否主鍵說明idint4否是編號xuanshouvarchar50否否選手名稱zhuchangvarchar50否否是否主場didianvarchar50否否比賽地點shijianvarchar50否否比賽時間(5)公告信息表主要是記錄了網站公告的基本信息。表結構如表3-5所示。表3-5公告信息表(t_gonggao)列名數據類型長度允許空是否主鍵說明gonggao_idint4否是編號gonggao_titlevarchar50否否標題gonggao_contentvarchar50否否內容gonggao_shijianvarchar50否否發布時間(6)留言信息表主要是記錄了會員留言的基本信息。表結構如表3-6所示。表3-6留言信息表(t_liuyan)列名數據類型長度允許空是否主鍵說明idint4否是編號biaotivarchar50否否標題neirongvarchar50否否內容liuyanshivarchar50否否留言時間userIdvarchar50否否留言用戶huifuvarchar50否否回復內容huifushivarchar50否否回復時間(7)管理員信息表主要記錄的管理員的基本信息,表結構如表3-7所示。表3-7管理員信息表(t_admin)列名數據類型長度允許空是否主鍵說明userIdint4否是編號userNamevarchar50否否用戶名userPwvarchar50否否密碼3.1.3數據庫的連接原理本系統采用Hibernate對數據庫進行管理。Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了輕量級的對象封裝,使Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。它不僅提供了從Java類到數據表之間的映射,也提供了數據查詢和恢復機制。相對于使用JDBC和SQL來手工操作數據庫,Hibernate可以大大減少操作數據庫的工作量。另外Hibernate可以利用代理模式來簡化載入類的過程,這將大大減少利用HibernateQL從數據庫提取數據的代碼的編寫量,從而節約開發時間和開發成本Hibernate可以和多種Web服務器或者應用服務器良好集成,如今已經支持幾乎所有的流行的數據庫服務器。Hibernate技術本質上是一個提供數據庫服務的中間件。它的架構如圖3-5所示。圖3-5Hibernatre架構圖圖3-5顯示了Hibernate的工作原理,它是利用數據庫以及其他一些配置文件如Hperties,XMLMapping等來為應用程序提供數據持久化服務的。Hibernate具有很大的靈活性,但同時它的體系結構比較復雜,提供了好幾種不同的運行方式。在輕型體系中,應用程序提供JDBC連接,并且自行管理事務,這種方式使用Hibernate的一個最小子集;在全面解決體系中,對于應用程序來說,所有底層的JDBC/JTAAPI都被抽象了,Hibernate會替你照管所有的細節。3.2中文亂碼問題處理在程序中經常會遇到中文亂碼的情況,如果手動的在servlet和jsp頁面進行設置,相當麻煩。因此,在程序的開始就寫了一個過濾SetCharacterEncodingFilter。在web.xml中配置:<filter><filter-name>SetCharacterEncodingFilter</filter-name><filter-class>myweb.util.filter.SetCharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>gb2312</param-value></init-param></filter><filter-mapping><filter-name>SetCharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern>//*表示工程下所有的頁面都會有此過濾器的處理</filter-mapping>對應的SetCharacterEncodingFilter.java文件中的重要代碼,在初始化init()方法中定義:publicvoidinit(FilterConfigfilterConfig)throwsServletException{ this.filterConfig=filterConfig;this.encoding=filterConfig.getInitParameter("encoding");Stringvalue=filterConfig.getInitParameter("ignore");}在工具包util包中同樣定義了DataFormate類來處理字符轉換:publicstaticStringtoUni(StringgbStr){StringuniStr="";/*把字符串轉換成uincode編碼*/if(gbStr==null){gbStr="";}try{byte[]tempByte=gbStr.getBytes("GB2312");uniStr=newString(tempByte,"ISO8859_1");}catch(Exceptionex){}returnuniStr;}/*把字符串轉換成Utf8編碼*/publicstaticStringtoUtf8String(Strings){StringBuffersb=newStringBuffer();for(inti=0;i<s.length();i++){charc=s.charAt(i);if(c>=0&&c<=255){sb.append(c);}else{byte[]b;try{b=Character.toString(c).getBytes("utf-8");}catch(Exceptionex){System.out.println(ex);b=newbyte[0];}for(intj=0;j<b.length;j++){intk=b[j];if(k<0){k+=256;}sb.append("%"+Integer.toHexString(k).toUpperCase());}} returnsb.toString();}}
4系統功能實現在管理信息系統的生命周期中,經過了需求分析、系統設計等階段之后,便開始了系統實施階段。在系統分析和設計階段,系統開發工作主要是集中在邏輯、功能和技術設計上,系統實施階段要繼承此前面各個階段的工作成果,將技術設計轉化為物理實現,因此系統實施的成果是系統分析和設計階段的結晶。4.1系統登陸頁面實現(1)描述:為了保證系統的安全性,要先使用本系統必須先登陸到系統中,用戶需要正確的賬號和密碼登錄本系統。(2)程序運行效果圖如圖4-1所示。圖4-1系統登陸頁面設計(3)在登陸頁面輸入用戶名和密碼以,點擊提交按鈕,跳轉到登陸的service中,在該service中會對用戶名,密碼,驗證碼進行判斷,驗證通過進入對應的頁面,loginservice關鍵代碼: publicStringlogin(StringuserName,StringuserPw,intuserType) { Stringresult="no"; if(userType==0)//系統管理員登陸 { Stringsql="fromTAdminwhereuserName=?anduserPw=?"; Object[]con={userName,userPw}; ListadminList=adminDAO.getHibernateTemplate().find(sql,con); if(adminList.size()==0) { result="no"; } else { WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); TAdminadmin=(TAdmin)adminList.get(0); session.setAttribute("userType",0); session.setAttribute("admin",admin); result="yes"; } } if(userType==1)// { Stringsql="fromTUserwhereuserName=?anduserPw=?"; Object[]con={userName.trim()+"@",userPw}; ListuserList=userDAO.getHibernateTemplate().find(sql,con); if(userList.size()==0) { result="no"; } else { WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); TUseruser=(TUser)userList.get(0); session.setAttribute("userType",1); session.setAttribute("user",user); result="yes"; } } returnresult; }4.2管理員功能模塊(1)描述:系統主頁面:左方頁面展示了管理員可操作的功能,進入相關的管理頁面可以鏈接到子菜單,并且高亮顯示,每個管理模塊下面都有相應的子菜單。(2)程序運行效果圖如圖4-2所示。圖4-2管理員主頁面在每個jsp頁面將會對相關用戶進行攔截操作,這樣可以提高安全性,防止用戶不經過登陸頁面而進入任何子菜單頁面:if(session.getAttribute("user")==null){out.print("<script>alert('請先登錄!');window.open('../index.jsp','_self')</script>"); }4.2.1會員信息管理a.會員信息管理(1)描述:管理員點擊左側的菜單“會員信息管理”,頁面跳轉到會員信息管理界面,調用后臺的action類查詢出所有的會員信息,并把這些信息封轉到數據集合List中,綁定到request對象,然后頁面跳轉到相應的jsp,顯示出會員信息。(2)程序效果圖如圖4-3所示。圖4-3會員信息管理會員管理關鍵代碼: publicStringuserDel() { TUseruser=userDAO.findById(userId); user.setUserDel("yes"); userDAO.attachDirty(user); this.setMessage("刪除成功"); this.setPath("userMana.action"); return"succeed"; } publicStringuserMana() { Stringsql="fromTUserwhereuserDel='no'"; ListuserList=userDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("userList",userList); returnActionSupport.SUCCESS; }b.會員信息刪除(1)描述:先是點擊會員信息管理,頁面跳轉到會員信息管理界面,瀏覽所有的會員信息,點擊要刪除的會員信息,點擊確定對話框,即可刪除該會員信息。(2)程序效果圖如圖4-4所示。圖4-4會員信息刪除4.2.2球隊簡介管理球隊簡介管理(1)描述:管理員點擊左側的菜單“球隊簡介管理”,頁面跳轉到球隊簡介管理界面,調用后臺的action類查詢出球隊簡介信息,并把這些信息封轉到數據集合List中,綁定到request對象,然后頁面跳轉到相應的jsp,顯示出球隊簡介信息。修改球隊簡介后,點擊“提交”按鈕,更新球隊簡介信息。(2)程序效果圖如圖4-5所示。圖4-5球隊簡介管理球隊簡介管理關鍵代碼: publicStringjianjieUpd() { HttpServletRequestrequest=ServletActionContext.getRequest(); TJianjiejianjie=newTJianjie(); jianjie.setId(id); jianjie.setNeirong(neirong); jianjieDAO.getHibernateTemplate().update(jianjie); request.setAttribute("msg","球隊簡介更新成功"); return"msg"; } publicStringjianjieToUpd() { Stringsql="fromTJianjie"; ListqiuduiList=jianjieDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("jianjie",qiuduiList.get(0)); returnActionSupport.SUCCESS; }4.2.3球員信息管理a.球員管理(1)描述:管理員點擊左側的菜單“球員管理”,頁面跳轉到球員信息管理界面,調用后臺的action類查詢出所有的球員信息,并把這些信息封轉到數據集合List中,綁定到request對象,然后頁面跳轉到相應的jsp,顯示出球員信息。(2)程序效果圖如圖4-6所示:圖4-6球員管理球員管理關鍵代碼: publicStringqiuyuanAdd() { HttpServletRequestrequest=ServletActionContext.getRequest(); TQiuyuanqiuyuan=newTQiuyuan(); qiuyuan.setXingming(xingming); qiuyuan.setGuoji(guoji); qiuyuan.setShengri(shengri); qiuyuan.setShengao(shengao); qiuyuan.setTizhong(tizhong); qiuyuan.setFujian(fujian); qiuyuan.setDel("no"); qiuyuanDAO.save(qiuyuan); request.setAttribute("msg","球員信息添加成功"); return"msg"; } publicStringqiuyuanMana() { Stringsql="fromTQiuyuanwheredel='no'"; ListqiuyuanList=qiuyuanDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("qiuyuanList",qiuyuanList); returnActionSupport.SUCCESS; } publicStringqiuyuanDel() { Stringsql="updateTQiuyuansetdel='yes'whereid="+id; qiuyuanDAO.getHibernateTemplate().bulkUpdate(sql); HttpServletRequestrequest=ServletActionContext.getRequest(); request.setAttribute("msg","刪除成功"); return"msg";}b.添加球員信息(1)描述:管理員輸入球員相關正確信息后點擊錄入按鈕,如果是沒有輸入完整的球員信息,都會給出相應的錯誤提示,不能錄入成功。輸入數據都通過form表單中定義的方法onsubmit="returncheckForm()"來檢查,checkForm()函數中是各種的校驗輸入數據的方式。(2)程序效果圖如圖4-7所示。圖4-7添加球員c.球員信息刪除(1)描述:先是點擊球員信息管理,頁面跳轉到球員信息管理界面,瀏覽所有的球員信息,點擊要刪除的球員信息,刪除該球員信息。(2)程序效果圖如圖4-8所示。圖4-8刪除球員4.2.4賽事信息管理d.賽事管理(1)描述:管理員點擊左側的菜單“賽事管理”,頁面跳轉到賽事信息管理界面,調用后臺的action類查詢出所有的賽事信息,并把這些信息封轉到數據集合List中,綁定到request對象,然后頁面跳轉到相應的jsp,顯示出賽事信息。(2)程序效果圖如圖4-9所示。圖4-9賽事管理賽事管理關鍵代碼: publicStringsaishiAdd() { HttpServletRequestrequest=ServletActionContext.getRequest(); TSaishisaishi=newTSaishi(); saishi.setDuishou(duishou); saishi.setZhuchang(zhuchang); saishi.setDidian(didian); saishi.setShijian(shijian); saishi.setShengfu(shengfu); saishi.setBifen(bifen); saishi.setDel("no"); saishiDAO.save(saishi); request.setAttribute("msg","賽事信息添加成功"); return"msg"; } publicStringsaishiMana() { Stringsql="fromTSaishiwheredel='no'"; ListsaishiList=saishiDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("saishiList",saishiList); returnActionSupport.SUCCESS; } publicStringsaishiDel() { Stringsql="updateTSaishisetdel='yes'whereid="+id; saishiDAO.getHibernateTemplate().bulkUpdate(sql); HttpServletRequestrequest=ServletActionContext.getRequest(); request.setAttribute("msg","刪除成功"); return"msg"; }f.添加賽事信息(1)描述:管理員輸入賽事相關正確信息后點擊錄入按鈕,如果是沒有輸入完整的賽事信息,都會給出相應的錯誤提示,不能錄入成功。輸入數據都通過form表單中定義的方法onsubmit="returncheckForm()"來檢查,checkForm()函數中是各種的校驗輸入數據的方式。(2)程序效果圖如圖4-10所示。圖4-10添加賽事4.2.5公告信息管理a.公告管理(1)描述:管理員點擊左側的菜單“公告管理”,頁面跳轉到公告信息管理界面,調用后臺的action類查詢出所有的公告信息,并把這些信息封轉到數據集合List中,綁定到request對象,然后頁面跳轉到相應的jsp,顯示出公告信息。(2)程序效果圖如圖4-11所示。圖4-11公告管理公告管理關鍵代碼: publicStringgonggaoAdd() { TGonggaogonggao=newTGonggao(); gonggao.setGonggaoTitle(gonggaoTitle); gonggao.setGonggaoContent(gonggaoContent); gonggao.setGonggaoData(newDate().toLocaleString()); gonggaoDAO.save(gonggao); HttpServletRequestrequest=ServletActionContext.getRequest(); request.setAttribute("msg","公告信息添加成功"); return"msg"; } publicStringgonggaoMana() { ListgonggaoList=gonggaoDAO.findAll(); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("gonggaoList",gonggaoList); returnActionSupport.SUCCESS; } publicStringgonggaoDel() { TGonggaogonggao=gonggaoDAO.findById(gonggaoId); gonggaoDAO.delete(gonggao); HttpServletRequestrequest=ServletActionContext.getRequest(); request.setAttribute("msg","公告信息刪除成功"); return"msg"; }b.添加公告信息(1)描述:管理員輸入公告相關正確信息后點擊錄入按鈕,如果是沒有輸入完整的公告信息,都會給出相應的錯誤提示,不能錄入成功。輸入數據都通過form表單中定義的方法onsubmit="returncheckForm()"來檢查,checkForm()函數中是各種的校驗輸入數據的方式。(2)程序效果圖如圖4-12所示。圖4-12添加公告4.2.6留言信息管理a.留言管理(1)描述:管理員點擊左側的菜單“留言管理”,頁面跳轉到留言信息管理界面,調用后臺的action類查詢出所有的留言信息,并把這些信息封轉到數據集合List中,綁定到request對象,然后頁面跳轉到相應的jsp,顯示出留言信息。(2)程序效果圖如圖4-13所示。圖4-13留言管理留言管理關鍵代碼: publicStringliuyanMana() { Stringsql="fromTLiuyanorderbyliuyanshi"; ListliuyanList=liuyanDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("liuyanList",liuyanList); returnActionSupport.SUCCESS; } publicStringliuyanDel() { TLiuyanliuyan=liuyanDAO.findById(id); liuyanDAO.delete(liuyan); HttpServletRequestrequest=ServletActionContext.getRequest(); request.setAttribute("msg","刪除成功"); return"msg"; } publicStringliuyanHuifu() { TLiuyanliuyan=liuyanDAO.findById(id); liuyan.setHuifu(huifu); liuyan.setHuifushi(newSimpleDateFormat("yyyy-MM-ddHH:mm").format(newDate())); liuyanDAO.attachDirty(liuyan); HttpServletRequestrequest=ServletActionContext.getRequest(); request.setAttribute("msg","回復完畢"); return"msg"; }4.2.7退出系統(1)描述:點此按鈕回到系統的主頁面。(2)關鍵代碼:主要是通過javascript語句來實現,item_word[8][4]="退出系統";item_link[8][4]="javascript:window.open('../index.jsp','_self')";4.3網站功能模塊4.3.1網站首頁描述:網站首頁分為兩部分,上半部分為網站導航,通過導航可以快速的瀏覽網站信息,下半部分為內容顯示,首頁主要顯示俱樂部介紹內容。(2)程序效果圖如圖4-14所示圖4-14網站首頁4.3.2用戶注冊(1)描述:游客通過該模塊完成用戶注冊操作,輸入用戶注冊相關正確信息后點擊保存按鈕,如果是沒有輸入完整的注冊信息,都會給出相應的錯誤提示,不能錄入成功。輸入數據都通過form表單中定義的方法onsubmit="returncheckForm()"來檢查,checkForm()函數中是各種的校驗輸入數據的方式。(2)程序效果圖如圖4-15所示。圖4-15用戶注冊用戶注冊關鍵代碼: publicStringuserReg() { TUseruser=newTUser(); user.setUserName(userName); user.setUserPw(userPw); user.setUserRealname(userRealname); user.setUserSex(userSex); user.setUserAge(userAge); user.setUserAddress(userAddress); user.setUserTel(userTel); user.setUserDel("no"); userDAO.save(user); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("msg","注冊成功,請登錄"); return"msg"; }4.3.3球員瀏覽(1)描述:游客或會員點擊導航菜單“球隊介紹”,頁面跳轉到球員介紹界面,調用后臺的action類查詢出所有球員信息,并把這些信息封轉到數據集合List中,綁定到request對象,然后頁面跳轉到相應的jsp,顯示俱樂部當前的球員信息。點擊某位球員,跳轉到球員詳細信息查看界面。(2)程序效果圖如圖4-16、圖4-17所示。圖4-16球員瀏覽圖4-17球員詳情球員瀏覽關鍵代碼 publicStringqiuyuanAll() { Stringsql="fromTQiuyuanwheredel='no'"; ListqiuyuanList=qiuyuanDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("qiuyuanList",qiuyuanList); returnActionSupport.SUCCESS; } publicStringqiuyuanDetail() { Stringsql="fromTQiuyuanwhereid="+id; ListqiuyuanList=qiuyuanDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("qiuyuan",qiuyuanList.get(0)); returnActionSupport.SUCCESS;}4.3.4賽事查看(1)描述:游客或會員點擊導航菜單“賽事查看”,頁面跳轉到賽事查看界面,調用后臺的action類查詢出所有賽事信息,并把這些信息封轉到數據集合List中,綁定到request對象,然后頁面跳轉到相應的jsp,顯示俱樂部最近的比賽信息。(2)程序效果圖如圖4-18所示。圖4-18賽事查看賽事查看關鍵代碼: publicStringsaishiAll() { Stringsql="fromTSaishiwheredel='no'"; ListsaishiList=saishiDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("saishiList",saishiList); returnActionSupport.SUCCESS; }4.3.5在線留言(1)描述:會員點擊導航菜單“系統留言板”,先判斷是否已登錄網站,如果未登錄網站,不允許留言,成功登錄后,進入留言模塊,會員可以查看歷史留言及管理員回復內容,也可以增加新的留言信息。(2)程序效果圖如圖4-19所示。圖4-19在線留言在線留言關鍵代碼: publicStringliuyanAdd() { HttpServletRequestrequest=ServletActionContext.getRequest(); HttpSessionsession=request.getSession(); TUseruser=(TUser)session.getAttribute("user"); TLiuyanliuyan=newTLiuyan(); liuyan.setNeirong(neirong); liuyan.setLiuyanshi(newSimpleDateFormat("yyyy-MM-ddHH:mm").format(newDate())); liuyan.setUserId(user.getUserId()); liuyan.setHuifu(""); liuyan.setHuifushi(""); liuyanDAO.save(liuyan); request.setAttribute("msg","留言完畢"); return"msg"; } publicStringliuyanDetail() { TLiuyanliuyan=liuyanDAO.findById(id); HttpServletRequestrequest=ServletActionContext.getRequest(); request.setAttribute("liuyan",liuyan); returnActionSupport.SUCCESS; }
5系統測試5.1系統測試目的與意義系統測試是管理信息系統開發周期中一個十分重要而漫長的的階段。其重要性體現在他是保證系統質量與可靠性的最后關口,是對整個系統開發過程包括系統分析、系統設計和系統實現的最終審查。系統測試的任務是盡可能徹底的檢查出程序中的錯誤,提高軟件系統的可靠性,其目的是檢驗系統“做得怎樣”。這這階段又可以分為三個步驟:模塊測試,測試每個模塊的程序是否正確;組裝測試,測試模塊之間的接口是否正確;確認測試,測試整個軟件系統是否滿足用戶功能和性能的要求。測試發現問題之后要經過調試找出錯誤原因和位置,然后進行改正。是基于系統整體需求說明書的黑盒測試,應覆蓋系統隨偶聯合的部件,系統測試是正對整個產品系統進行的測試,目的是驗證系統是否滿足了需求規格的定義,找出需求規格不符合或與之矛盾的地方。5.2測試過程在測試之初,由于將數據庫中的數據是隨便輸入,沒有實用性,為了使系統更加完善,在系統測試的過程中,本系統將一開始編程隨便輸入的數據全部清理后,輸入了一些有效的測試數據,這樣可以更真實的反映系統的功能實現情況。這樣不斷發現問題,經過反復的測試、調試,把問題一個個的解決,最終系統可以正常運行。測試流程:a.打開系統首頁,輸入錯誤的登錄信息b.登錄c.輸入正確的登錄信息d.登錄e.測試結果登錄模塊測試表如表5-1所示。表5-1登錄模塊測試表模塊名稱測試用例預期結果實際結果是否通過登錄模塊用戶名:null密碼:null彈出錯誤提示,請輸入用戶名登陸失敗,提示請輸入用戶名通過登錄模塊用戶名:34534密碼:null彈出錯誤提示,請輸入密碼失敗,提示輸入密碼通過登錄模塊用戶名234324密碼:1彈出錯誤提示,用戶名或者密碼錯誤登陸失敗,提示用戶名或者密碼錯誤通過5.3其他錯誤在程序設計實現的過程中不可避免的會產生各種難以預料的錯誤,如書寫錯誤、傳值類型不一致、參數傳遞問題等等。這些都需要通過細心的檢測與不斷的調試才能夠排除。比如在servlet路徑配置時因粗心錯誤導致運行導致所報錯誤。如圖5-1所示。圖5-1由于servlet路徑配置錯誤,運行時的提示
結論本次畢業設計將我大學四年所學的軟件工程理論知識用到了具體的實踐中去,深化了理論知識,同時也鍛煉了動手實踐能力。在這段日子里,我查閱了許多有關管理系統建設的資料,翻閱了許多JSP的書籍,結合自己的經驗,詳細調查了聯賽管理工作內容與細節,開發設計了這個聯賽綜合信息管理系統,雖然每個學期都會有相應課程的課程設計和實訓來作為動手練習訓練,不過在本次畢業設計具體的實踐的時候還是遇到了很多小問題,比如說在jsp頁面將輸入框設為不可用是添加屬性readonly=“true”,而我在實際編程中卻錯寫成disable=“true”,這樣直接導致了request對象取不到數據,調試了程序很久才發現request對象獲得的返回值一直是空,之前一直以為是代碼哪里出了問題,總是在查源程序的邏輯。這些雖然都是小問題,但是由于不細心在具體實踐中卻浪費了不少時間,看來平時還是要多多實踐才是。在系統的開發過程中,我運用到了B/S三層結構技術和自己在平時學習中掌握的一些技術,通過這些技術的實現,整個系統的性能得到了大大的提高。這些技術都在論文中做了比較詳細的介紹。本系統還存在許多的缺陷和不足之處,比如很多細節上做的還不行,有些功能模塊還應再加強。希望在以后的時間里,我可以把這些缺陷都彌補過來,進一步完善系統。通過本次畢業設計我鍛煉了自己的自學、研究能力,也從中學到不少在企業在課堂上學不到的東西.通過實踐我也深刻的體會到軟件開發的艱辛及問題解決后的喜悅心情,培養我的獨立思考問題的能力,同時也增強了我的理論聯系實際的能力,這為自己以后的工作奠定了良好的基礎。本系統可以在很大程度上增加人們售票的途徑,減少購票的排隊時間,但由于時間按和技術條件的限制,還存在一些不足之處,有些功能還需要改進,還應該做進一步的系統調查需求分析工作,更深入的完善系統。總之,一個緊跟時代步伐的真正使用的軟件必需有一個不斷完善改進的過程。
參考文獻[1]王虎,張駿.管理信息系統.武漢:武漢理工大學出版社,2007.[2]孫衛琴,李洪成.《Tomcat與JavaWeb開發技術詳解》.電子工業出版社,2003[3]BruceEckel.《Java編程思想》.機械工業出版社,2003[4]FLANAGAN.《Java技術手冊》.中國電力出版社,2002[5]孫一林,彭波.《Java數據庫編程實例》.清華大學出版社,2002[6]張新曼.精通JSP-WEB開發技術與典型應用[M].北京:人民郵電出版社,2007[7]陳文蘭.基于SSH集成架構的進銷存管理系統的設計[J].農業網絡信息.[8]鄧子云.JSP網絡編程從基礎到實踐[M].北京:電子工業出版社.[9]朱濤江.SqlServer權威指南[M].中國電力出版社.2003.[10]郝玉龍.JavaEE編程技術[M].北京:北京交通大學出版社.[11]賽奎春.《JSP工程應用與項目實踐》機械工業出版社,2002[12](美)BruceEckel著,陳昊鵬譯,Java編程思想(第三版)機械工業出版社,2007[13]李建中,王珊.《數據庫系統原理(第2版)》電子工業出版社.2004.9[14]艾靈仙.高校系級網站構建平臺的設計與實現.[J].科技信息-2008年16期 致謝 本次設計歷時三個月。在本次畢業設計中,能夠基本順利的完成任務,是與李紅老師的耐心指導分不開的。李老師無論是在畢業設計過程中,還是在論文完成中都給予了我極大的幫助。同時,李老師認真負責的工作態度,嚴謹的治學精神和深厚的理論水平都使我受益匪淺。他勤奮嚴謹的教學態度也給我留下了極為深刻的印象。我從老師身上學到了很多東西。在理論上還是在實踐中,我能力都得到不少的提高,這對于我以后的工作和學習都有一種巨大的幫助,在此,特向付老師表示由衷的感謝。通過這次畢業設計的整個開發過程,我系統開發過程從需求分析到具體功能實現,再到最終測試和維護的理解有了很大的進步,讓我對系統開發有了更深層次的認識。現在我的動手能力和獨立解決問題的能力也得到了很大的鍛煉和提高,這是這次畢業設計最好的收獲。最后,在整個系統開發過程中,我身邊的同學和朋友給了我很多的建議,讓我很快的確定了系統的業務邏輯。在次我衷心的向他們表示感謝。英文原文1IntroductionThecomputerrevolutionofthe1970sincreasedthedemandforsophisticatedcomputersoftwaretotakeadvantageoftheever-increasingcapacityofcomputerstoprocessdata.TheCprogramming
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025二月桉樹花粉過敏源控制與社區補償協議
- 車位出租協議(轉租版)
- 2025年玻璃鋼設備項目可行性研究報告
- 吉林省松原市小學2024-2025學年三年級數學第二學期期末統考模擬試題含解析
- 玉林市2024-2025學年六年級下學期小升初真題數學試卷含解析
- 湖北省潛江市積玉口鎮中學2024-2025學年初三第三次中考模擬考試化學試題含解析
- 徐州醫科大學《文學批評》2023-2024學年第二學期期末試卷
- 深圳大學《藥理學》2023-2024學年第一學期期末試卷
- 山西省呂梁市2024-2025學年高三全真語文試題模擬試卷(11)含解析
- 山西衛生健康職業學院《數據挖掘案例分析》2023-2024學年第二學期期末試卷
- (一模)桂林市、來賓市2025屆高考第一次跨市聯合模擬考試生物試卷(含答案詳解)
- 四川省宜賓市第三中學2024-2025學年高二下學期3月月考語文試題(含答案)
- 北京市消防條例解讀
- 農業合作社管理與運營模式試題及答案
- 2025年版中等職業教育專業教學標準 710205 大數據技術應用
- 項目燃油供給系統檢修廣東交通汽車技術系課件
- 2025榆林定邊縣國有企業財務會計人員招聘(10人)筆試參考題庫附帶答案詳解
- 2024年公務員考試中財務知識的考察試題及答案
- 治理鹽堿可行性報告
- 任務三家庭清掃有工序(教學課件)二年級下冊勞動技術(人美版)
- 部編版2024~2025學年度第二學期六年級語文期中考試卷(有答案)
評論
0/150
提交評論