學(xué)生成績(jī)管理系統(tǒng)畢業(yè)論文
《學(xué)生成績(jī)管理系統(tǒng)畢業(yè)論文》由會(huì)員分享,可在線閱讀,更多相關(guān)《學(xué)生成績(jī)管理系統(tǒng)畢業(yè)論文(24頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、學(xué)生成績(jī)管理系統(tǒng)1.引言隨著計(jì)算機(jī)技術(shù)的發(fā)展,特別是計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)與數(shù)據(jù)庫(kù)技術(shù)的發(fā)展,使用人們的生活與工作方式發(fā)生了很大的改觀。網(wǎng)絡(luò)技術(shù)的應(yīng)用使得計(jì)算機(jī)之間通信、信息共享成為可能,而數(shù)據(jù)庫(kù)技術(shù)的應(yīng)用則為人們提供了數(shù)據(jù)存儲(chǔ)、信息檢索、信息分析等功能,從而使得工作更高效地進(jìn)行。數(shù)據(jù)庫(kù)始于20世紀(jì)60年代,經(jīng)過(guò)40多年的發(fā)展,現(xiàn)在已經(jīng)形成了理論體系,成為計(jì)算機(jī)軟件的一個(gè)重要分支。數(shù)據(jù)庫(kù)技術(shù)體現(xiàn)了當(dāng)代先進(jìn)的數(shù)據(jù)管理方法,使計(jì)算機(jī)的應(yīng)用真正滲透到國(guó)民經(jīng)濟(jì)各個(gè)部門(mén),在數(shù)據(jù)處理領(lǐng)域發(fā)揮著越來(lái)越大的作用。而互聯(lián)網(wǎng)技術(shù)的出現(xiàn),更是進(jìn)一步豐富的人類(lèi)生活,數(shù)字化生存已經(jīng)一步步走進(jìn)我們的生活與工作?;ヂ?lián)網(wǎng)技術(shù)與數(shù)據(jù)庫(kù)
2、技術(shù)的結(jié)合為計(jì)算的在人類(lèi)生活中的應(yīng)用帶來(lái)了巨大的影響。產(chǎn)業(yè)信息化,管理現(xiàn)代化,科學(xué)化已經(jīng)成為行業(yè)發(fā)展的重要課題,這不僅是企業(yè)提高自身競(jìng)爭(zhēng)力,甚至是國(guó)家提高綜合國(guó)力,走向國(guó)民富強(qiáng)的重要手段。在我國(guó),教育是一個(gè)影響著國(guó)富民強(qiáng)的重要行業(yè),隨著改革開(kāi)放和市場(chǎng)經(jīng)濟(jì)的發(fā)展根據(jù)中國(guó)特有的國(guó)情發(fā)展,教育得到了國(guó)家的大力扶持與社會(huì)各界的高度重視,從而使教育業(yè)向規(guī)范性與現(xiàn)代化的方向高速發(fā)展,但是同發(fā)達(dá)國(guó)家相比,我國(guó)的教育行業(yè)的信息技術(shù)的應(yīng)用程度還很低,只有在大城市中發(fā)展較早、規(guī)模較大的院校中才使用計(jì)算機(jī)進(jìn)行大規(guī)模操作,從各方面提高工作效率,取得良好的社會(huì)和經(jīng)濟(jì)效益,而一些新興的、規(guī)模較小的教育機(jī)構(gòu)還沒(méi)有全部具備這
3、種功能。因此可見(jiàn),隨著我國(guó)教育的迅速發(fā)展,信息技術(shù)在其上的應(yīng)用會(huì)更加地廣泛和深入。本系統(tǒng)采用myeclipse8.5的IDE環(huán)境和WTK2.5.2 手機(jī)模擬環(huán)境開(kāi)發(fā),采用tomcat5.5的web容器。1.1開(kāi)發(fā)工具的選用本系統(tǒng)的開(kāi)發(fā)利用mysql為本系統(tǒng)的數(shù)據(jù)庫(kù),它是一個(gè)支持多用戶的數(shù)據(jù)庫(kù),適用于大中小規(guī)模的數(shù)據(jù)量需求。學(xué)校校園網(wǎng)的建設(shè)也為服務(wù)器/客戶端的結(jié)構(gòu)提供了硬件的支持。使用WTK2.5.2+myeclipse8.5+tomcat5.5作為系統(tǒng)開(kāi)發(fā)的開(kāi)發(fā)環(huán)境。WTK 的全稱是Sun J2ME Wireless Toolkit Sun的無(wú)線開(kāi)發(fā)工具包。這一工具包的設(shè)計(jì)目的是為了幫助開(kāi)發(fā)人
4、員簡(jiǎn)化j2me的開(kāi)發(fā)過(guò)程。使用其中的工具可以開(kāi)發(fā)與 Java Technology for the Wireless Industry (JTWI, JSR 185) 規(guī)范兼容的設(shè)備上運(yùn)行的j2me 應(yīng)用程序。該工具箱包含了完整的生成工具、實(shí)用程序以及設(shè)備仿真器。MyEclipse,是一個(gè)十分優(yōu)秀的用于開(kāi)發(fā)Java, J2EE的Eclipse插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對(duì)各種開(kāi)元產(chǎn)品的支持十分不錯(cuò)。MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipse Enterprise Workbench ,簡(jiǎn)稱MyEclipse)是對(duì)Eclipse IDE的擴(kuò)展,利用
5、它我們可以在數(shù)據(jù)庫(kù)和JavaEE的開(kāi)發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。Eclipse 是一個(gè)開(kāi)放源代碼的、基于 Java 的可擴(kuò)展開(kāi)發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開(kāi)發(fā)環(huán)境。它是功能豐富的JavaEE集成開(kāi)發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate,Spring。Tomcat 是一個(gè)輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問(wèn)用戶不是很多的場(chǎng)合下被普遍使用,Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML
6、頁(yè)面的功能,另外它還是一個(gè)Servlet和JSP容器。1.2 技術(shù)支持本項(xiàng)目主要用了如下技術(shù):J2ME、GPRS、Servlet和J2EE技術(shù)。各項(xiàng)技術(shù)的簡(jiǎn)單介紹如下:1.2.1 J2ME技術(shù)J2ME(java 2 Micro Edition)java家族中的重要的一員,它是當(dāng)前使用比較多的基于移動(dòng)設(shè)備開(kāi)發(fā)技術(shù)。J2ME構(gòu)建于MIDP(Mobile Information Device Profile)和CLDC(Connected Limited Device Configuration)或CDC(Connected Device Configuration)基礎(chǔ)之上。目前國(guó)內(nèi)外J2ME比較
7、多的應(yīng)用包括車(chē)載信息和計(jì)算、數(shù)字電視、電視機(jī)頂盒、Internet訪問(wèn)設(shè)備、家庭Audio/Video、無(wú)線手持設(shè)備等。J2ME具有很多Java技術(shù)特性,主要有如下特點(diǎn):可以在各種支持Java的設(shè)備上運(yùn)行。代碼短小。充分利用Java的語(yǔ)言優(yōu)勢(shì)。安全性好。用J2ME實(shí)現(xiàn)的應(yīng)用可以方便地升級(jí)到J2SE、J2EE1.2.2 GPRS技術(shù)通用分組無(wú)線服務(wù)技術(shù)(General Packet Radio Service)的簡(jiǎn)稱,它是GSM移動(dòng)電話用戶可用的一種移動(dòng)數(shù)據(jù)業(yè)務(wù)。GPRS可說(shuō)是GSM的延續(xù)。GPRS和以往連續(xù)在頻道傳輸?shù)姆绞讲煌且苑獍≒acket)式來(lái)傳輸,因此使用者所負(fù)擔(dān)的費(fèi)用是以其傳輸
8、資料單位計(jì)算,并非使用其整個(gè)頻道,理論上較為便宜。GPRS的傳輸速率可提升至56甚至114Kbps。1.2.3 Servlet技術(shù)Servlet是一種服務(wù)器端的Java應(yīng)用程序,具有獨(dú)立于平臺(tái)和協(xié)議的特性,可以生成動(dòng)態(tài)的Web頁(yè)面。 它擔(dān)當(dāng)客戶請(qǐng)求(Web瀏覽器或其他HTTP客戶程序)與服務(wù)器響應(yīng)(HTTP服務(wù)器上的數(shù)據(jù)庫(kù)或應(yīng)用程序)的中間層。 Servlet是位于Web 服務(wù)器內(nèi)部的服務(wù)器端的Java應(yīng)用程序,與傳統(tǒng)的從命令行啟動(dòng)的Java應(yīng)用程序不同,Servlet由Web服務(wù)器進(jìn)行加載,該Web服務(wù)器必須包含支持Servlet的Java虛擬機(jī)。1.2.4 J2EE技術(shù)J2EE平臺(tái)由一整套
9、服務(wù)(Services)、應(yīng)用程序接口(APIs)和協(xié)議構(gòu)成,它對(duì)開(kāi)發(fā)基于Web的多層應(yīng)用提供了功能支持,J2EE有13種技術(shù)規(guī)范:JDBC(Java Database Connectivity),JNDI(Java Name and Directory Interface),EJB(Enterprise JavaBean),RMI(Remote Method Invoke),Java IDL/CORBA,JSP(Java Server Pages),Java Servlet, XML(Extensible Markup Language),JMS(Java Message Service),
10、JTA(Java Transaction Architecture),JTS(Java Transaction Service),JavaMail,JAF(JavaBeans Activation Framework)。2.系統(tǒng)分析2.1 系統(tǒng)調(diào)查在Internet飛速發(fā)展的今天,互聯(lián)網(wǎng)已成為人們快速獲取、發(fā)布和傳遞信息的重要渠道,它在人們的政治、經(jīng)濟(jì)、生活、娛樂(lè)等各個(gè)方面發(fā)揮著重要的作用,因此網(wǎng)站建設(shè)在Internet應(yīng)用上的地位越來(lái)越重要。原本的舊的管理方法越來(lái)越不適應(yīng)現(xiàn)在社會(huì)的發(fā)展。許多人還停留在以前的手工操作。這大大地阻礙了人類(lèi)經(jīng)濟(jì)的發(fā)展。為了適應(yīng)現(xiàn)代社會(huì)人們高度強(qiáng)烈的時(shí)間觀念,學(xué)校信
11、息管理系統(tǒng)軟件為學(xué)校辦公室?guī)?lái)了極大的方便。2.2 系統(tǒng)目標(biāo)本系統(tǒng)是將現(xiàn)代化的計(jì)算機(jī)技術(shù)和傳統(tǒng)的教學(xué)、教務(wù)工作相結(jié)合,按照學(xué)院的工作流程設(shè)計(jì)完成的。為了使系統(tǒng)在學(xué)院的管理中發(fā)揮更大的作用,實(shí)現(xiàn)工作過(guò)程的計(jì)算機(jī)化,提高工作效率和工作質(zhì)量,現(xiàn)提出如下的系統(tǒng)開(kāi)發(fā)目標(biāo):1.系統(tǒng)應(yīng)具有實(shí)用性、可靠性和適用性,同時(shí)注意到先進(jìn)性。2.對(duì)各個(gè)數(shù)據(jù)庫(kù)進(jìn)行動(dòng)態(tài)管理,防止混亂。3.能夠按照用戶選擇的不同的條件進(jìn)行簡(jiǎn)單查詢和復(fù)合查詢。4.能夠?qū)Σ樵兘Y(jié)果進(jìn)行分類(lèi)匯總,實(shí)現(xiàn)報(bào)表打印。5.注意數(shù)據(jù)的安全性,具有數(shù)據(jù)備份和恢復(fù)的功能。6.方便用戶的操作,盡量減少用戶的操作。2.3 系統(tǒng)功能需求分析本系統(tǒng)適用于各高校,其功能主
12、要分為4大類(lèi):各種信息的錄入功能、登錄、學(xué)生成績(jī)的查詢和各種信息的增加、刪除、修改。具體功能分析如下: 錄入功能:在服務(wù)器管理提供相應(yīng)的錄入功能。登錄:用戶分為兩個(gè)角色,學(xué)生用戶和教師用戶。所有的用戶都必須憑唯一標(biāo)識(shí)登錄系統(tǒng),學(xué)生可以憑借學(xué)號(hào)和姓名進(jìn)入手機(jī)終端查詢成績(jī),學(xué)生用戶用手機(jī)端進(jìn)入只能查詢個(gè)人信息、成績(jī)等查詢。教師用web頁(yè)面進(jìn)入服務(wù)器端,可以進(jìn)行對(duì)學(xué)生信息、學(xué)生成績(jī)等進(jìn)行操作。查詢功能:學(xué)生用戶在安裝完成學(xué)生成績(jī)管理系統(tǒng)客戶端后,進(jìn)入手機(jī)軟件頁(yè)面后可以查詢個(gè)人信息、成績(jī)等操作,教師可以登錄服務(wù)器的網(wǎng)頁(yè)查詢學(xué)生全部信息、成績(jī)等等。維護(hù)功能:在管理端進(jìn)行相應(yīng)的增加、修改、刪除等功能。2.
13、4 系統(tǒng)運(yùn)行環(huán)境該運(yùn)行環(huán)境的規(guī)定是保證本需求說(shuō)明的功能得到實(shí)際真正體現(xiàn)的基礎(chǔ)。(1)系統(tǒng)運(yùn)行環(huán)境支持軟件 數(shù)據(jù)庫(kù)系統(tǒng):MYSQL5.5或者更高版本W(wǎng)eb 服務(wù)器:Tomcat5.0或者更高版本開(kāi)發(fā)集成環(huán)境IDE:myeclipse8.5模擬環(huán)境:WTK2.5.2軟件系統(tǒng)框架:Struts2.2.3+Hibernate 3.2(2) 系統(tǒng)要求: 操作系統(tǒng):windows xpCPU: Intel Pentium(R) 4 2.8CHz內(nèi)存: 1GB硬盤(pán):10GB以上瀏覽器:Internet Explorer、360瀏覽器3. 系統(tǒng)設(shè)計(jì)3.1 系統(tǒng)總體設(shè)計(jì)數(shù)據(jù)庫(kù)服務(wù)器應(yīng)用服務(wù)器Web服務(wù)器客戶瀏覽
14、器請(qǐng)求請(qǐng)求請(qǐng)求響應(yīng)請(qǐng)求手機(jī)終端響應(yīng)響應(yīng)響應(yīng)圖3-1系統(tǒng)構(gòu)架本系統(tǒng)的學(xué)生成績(jī)管理系統(tǒng)采用B/S、手機(jī)終端結(jié)構(gòu)模式,該結(jié)構(gòu)由手機(jī)終端、瀏覽器和服務(wù)器組成,該結(jié)構(gòu)主要特點(diǎn)是集中管理,隨時(shí)隨地,方便快捷,軟件的程序、數(shù)據(jù)庫(kù)、發(fā)布的信息等都集中在服務(wù)器,極大地簡(jiǎn)化了用戶端的工作,用戶端除了操作系統(tǒng)及瀏覽器外不需要安裝其它軟件。服務(wù)器則由Web服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器組成,它將擔(dān)負(fù)更多的工作,對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)和應(yīng)用程序的執(zhí)行都將在服務(wù)器上完成。3.2 系統(tǒng)結(jié)構(gòu)本系統(tǒng)從功能上劃分可分為以下幾大模塊:學(xué)生信息管理,課程信息管理,學(xué)生成績(jī)管理,學(xué)生信息查詢等幾大模塊。系統(tǒng)模塊圖: 學(xué)生成績(jī)管理系統(tǒng)課程信息管理學(xué)生成績(jī)
15、查詢成績(jī)信息管理學(xué)生信息管理系統(tǒng)管理手機(jī)終端成績(jī)查詢圖 3-2 系統(tǒng)功能模塊圖以下將對(duì)各子模塊進(jìn)行說(shuō)明。學(xué)生信息管理模塊:包括學(xué)生信息錄入和學(xué)生信息的查詢兩個(gè)子模塊。學(xué)生信息的錄入可以錄入學(xué)生的學(xué)號(hào)、姓名、性別、出生時(shí)間、在校期間所要修的總學(xué)分、一些備注信息、學(xué)生的電子照片、專(zhuān)業(yè)。學(xué)生信息查詢子模塊可以查詢學(xué)生的學(xué)號(hào)姓名等信息,并且分頁(yè)顯示,每頁(yè)8條,也可以查詢某一條的詳細(xì)信息,并且可以對(duì)某一條進(jìn)行刪除修改。課程信息的管理模塊:課程信息的錄入,可以錄入課程號(hào),課程名,開(kāi)課學(xué)期,本科共需要多少學(xué)時(shí),學(xué)分是多少。課程信息的查詢模塊,可以查詢課程號(hào),課程名等信息,也可以查詢?cè)敿?xì)信息,可以修改課程信息
16、,但是不能修改課程號(hào)。成績(jī)信息管理模塊:學(xué)生成績(jī)信息的添加,對(duì)于已經(jīng)添加的不能再添加。學(xué)生成績(jī)查詢分頁(yè)顯示,可以查詢出每個(gè)人的所有成績(jī)并且按學(xué)號(hào)先后排序。 手機(jī)終端學(xué)生成績(jī)查詢:輸入學(xué)號(hào)和姓名并且選擇學(xué)期查詢出各科成績(jī),可以查看學(xué)生個(gè)人信息,和該學(xué)生的所有成績(jī)。3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)根據(jù)系統(tǒng)結(jié)構(gòu)的分析,我們可以總結(jié)出數(shù)據(jù)庫(kù)的基本表。根據(jù)系統(tǒng)管理我們可以得出有登錄表,學(xué)生信息管理得出我們要設(shè)計(jì)學(xué)生表,成績(jī)信息管理得出我們有成績(jī)表。其他的表也是如此推出。3.3.1 數(shù)據(jù)庫(kù)表介紹本系統(tǒng)定義的數(shù)據(jù)庫(kù)中包含以下6個(gè)表:學(xué)生表,成績(jī)表,課程表,專(zhuān)業(yè)表,登錄表,學(xué)生-課程關(guān)系表等。下面介紹這些表的結(jié)構(gòu)。學(xué)生信息
17、表:用于保存學(xué)生的學(xué)號(hào),姓名,性別,年齡,所在院系,班級(jí)名,入學(xué)年份等信息.登錄表:用于保存系統(tǒng)用戶及管理員信息.包括組別,登錄用戶名,密碼等.成績(jī)表:用于保存學(xué)生成績(jī)信息,包括學(xué)號(hào),課程號(hào),成績(jī)等字段.授課表:用于保存教師授課信息.包括教師名,課程號(hào),學(xué)時(shí)數(shù),班級(jí)名等.專(zhuān)業(yè)表:用于保存專(zhuān)業(yè)id,專(zhuān)業(yè)名,人數(shù),專(zhuān)業(yè)負(fù)責(zé)人等。課程表:用戶保存課程信息,包括課程名,課程號(hào),先修課等信息.3.3.2表結(jié)構(gòu)表3-1 學(xué)生表xsb字段名稱說(shuō)明字段類(lèi)型備注xh學(xué)號(hào)bigint主關(guān)鍵字xm姓名varchar(50)不可為空xb性別bit可為空Z(yǔ)y_id專(zhuān)業(yè)idInt可為空Cssj出生時(shí)間datetime可為
18、空zxf總學(xué)分varchar(50可為空Bz備注varchar(250)可為空Z(yǔ)p照片blob可為空xxxf現(xiàn)修學(xué)分Int可為空Rxnf入學(xué)年份Datetime可為空Id身份證號(hào)Char(18)不可為空Syd生源地varchar(20)可為空addr家庭地址Varchar(250)可為空phone個(gè)人電話Char(11)可為空zzmm政治面貌varchar(20)可為空yhkh銀行卡號(hào)char(20)可為空zdy指導(dǎo)員Varchar(14)可為空表3-2 成績(jī)表cjb字段名稱說(shuō)明字段類(lèi)型備注Xh學(xué)號(hào)(外鍵)bigint不可為空kch課程號(hào)(外鍵)int不可為空cj成績(jī)float可為空xf學(xué)分i
19、nt可為空表3-3 課程表kcb字段名稱說(shuō)明字段類(lèi)型備注kch課程號(hào)Char(3)不可為空kcm課程名Varchar(50)可為空kxxq開(kāi)課學(xué)期int可為空xf學(xué)分int可為空表3-4 專(zhuān)業(yè)表zyb字段名稱說(shuō)明字段類(lèi)型備注id專(zhuān)業(yè)IDChar(3)不可為空,自動(dòng)增加zym專(zhuān)業(yè)名Varchar(50)可為空rs人數(shù)int可為空f(shuō)zr專(zhuān)業(yè)負(fù)責(zé)人Varchar(20)可為空表3-5 學(xué)生-課程關(guān)系表xs_kcb字段名稱說(shuō)明字段類(lèi)型備注xh學(xué)號(hào)(外鍵)bigint不可為空kch課程號(hào)(外鍵)char(3)不可為空3.3.3各表間的聯(lián)系圖3-3 表之間聯(lián)系3.3.4數(shù)據(jù)庫(kù)連接代碼的實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)
20、主要離不開(kāi)與數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行即時(shí)傳輸,所以保證與數(shù)據(jù)庫(kù)的連通,是關(guān)鍵所在。實(shí)現(xiàn)連接代碼如下:public class BaseDao private static String driver=null;private static String url=null;private static String user=null;private static String password=null;staticdriver=DBConfiger.getInstance().getProperty(DRIVER);url=DBConfiger.getInstance().getProperty(U
21、RL);user=DBConfiger.getInstance().getProperty(UNAME);password=DBConfiger.getInstance().getProperty(PWD);public static Connection getConnection() throws SQLExceptionConnection con=null;try /加載Class.forName(driver); /連接con = DriverManager.getConnection(url,user,password); catch (ClassNotFoundException
22、 e) JOptionPane.showMessageDialog(null,數(shù)據(jù)庫(kù)連接不正確!);e.printStackTrace();return con;4.系統(tǒng)編碼與實(shí)現(xiàn)4.1手機(jī)端系統(tǒng)編程4.1.1登錄界面在打開(kāi)手機(jī)端學(xué)生成績(jī)管理系統(tǒng)軟件時(shí),系統(tǒng)提示版權(quán)系統(tǒng),輸入學(xué)號(hào)和姓名進(jìn)入下一個(gè)頁(yè)面。登錄界面效果如圖 4-1所示:圖 4-1登錄頁(yè)面主要代碼如下: private Display display; /聲明一個(gè)列表 private List mainList; /聲明TextField TFStuid用于客戶端輸入學(xué)號(hào) private TextField TFStuid,TFStu
23、Name; /聲明用于保存學(xué)號(hào)和學(xué)期的字符串 private String stuID,termName,stuName; /聲明發(fā)送,返回,退出,確定按鈕 private Command cmdSend,cmdBack,cmdExit,cmdOk; /inputForm用于放置TFStuid等組件;returnForm用于放置查詢結(jié)果 private Form inputForm, returnForm; /創(chuàng)建Alert放置聲明版權(quán)的圖版和文字 private Alert anAlert; /聲明一個(gè)Ticker private Ticker aTicker; /聲明一個(gè)圖片 privat
24、e Image anImage; /傳送到 ServletApp的服務(wù)器程序Servlet進(jìn)行處理http:/localhost:8080/xscj_chao/servlet/ServletApp final static String defaultURL=http:/localhost:8080/xscj_/servlet/ServletApp; /線程運(yùn)行條件 private boolean condition=false; public MyScoreQuery() /版權(quán)聲明的圖片 try anImage=Image.createImage(/welcome.jpg); catch(
25、IOException ioe) ioe.printStackTrace(); /創(chuàng)建發(fā)送,返回,退出,確定按鈕對(duì)象 cmdSend=new Command(發(fā)送,Command.EXIT,1); cmdBack=new Command(返回,Command.EXIT,1); cmdExit=new Command(退出,Command.EXIT,1); cmdOk=new Command(確定,Command.EXIT,1); aTicker=new Ticker(歡迎使用移動(dòng)學(xué)生成績(jī)查詢系統(tǒng)); anAlert=new Alert(版權(quán)聲明,Copyright2010廊坊師范學(xué)院,ALL
26、Right Reserved.,anImage,AlertType.CONFIRMATION); anAlert=new Alert(系統(tǒng)說(shuō)明,廊坊師范學(xué)院學(xué)生成績(jī)查詢系統(tǒng),Copyright2011廊坊師范學(xué)院,ALL Right Reserved.,anImage,AlertType.CONFIRMATION); /創(chuàng)建一個(gè)TEXTFIELD獲取學(xué)生學(xué)號(hào) TFStuid=new TextField(學(xué)號(hào),09040261010,30,TextField.ANY); TFStuName=new TextField(姓名,黃昕華,30,TextField.ANY); /輸入學(xué)號(hào)的標(biāo)題 inpu
27、tForm=new Form(輸入查找信息:); /輸出查詢結(jié)果的標(biāo)題 returnForm=new Form(查詢結(jié)果:); inputForm.append(TFStuid); inputForm.append(TFStuName); /創(chuàng)建退出和確定按鈕 inputForm.addCommand(cmdExit); inputForm.addCommand(cmdOk); /監(jiān)聽(tīng) inputForm.setCommandListener(this); public void startApp() throws MIDletStateChangeException / TODO 自動(dòng)生成方
28、法存根anAlert.setTimeout(Alert.FOREVER);display=Display.getDisplay(this);display.setCurrent(anAlert,inputForm);inputForm.setTicker(aTicker);condition=false;CommandThread commandThread=new CommandThread(this);commandThread.start(); public void destroyApp(boolean unconditional) public void pauseApp() 4.1
29、.2 訪問(wèn)網(wǎng)絡(luò)時(shí)多線程的設(shè)計(jì)與實(shí)現(xiàn)在手機(jī)端成績(jī)查詢體統(tǒng),為了避免死鎖現(xiàn)象,將網(wǎng)絡(luò)設(shè)計(jì)成一個(gè)獨(dú)立的線程。當(dāng)應(yīng)用程序想要訪問(wèn)網(wǎng)絡(luò)時(shí),可以用notify()方法將訪問(wèn)網(wǎng)絡(luò)線程喚醒;當(dāng)訪問(wèn)網(wǎng)絡(luò)結(jié)束后,通過(guò)調(diào)用wait()方法使訪問(wèn)網(wǎng)絡(luò)線程釋放標(biāo)記鎖并且處于等待狀態(tài)。連接網(wǎng)絡(luò)狀態(tài)圖如圖4-2所示:圖4-2 連接網(wǎng)絡(luò)狀態(tài)(1)在startApp()中寫(xiě)如下代碼:condition=false; CommandThread commandThread=new CommandThread(this);commandThread.start();(2)建立一個(gè)線程類(lèi),實(shí)現(xiàn)同步操作并且訪問(wèn)連接,需要注意的是訪問(wèn)連
30、接要try,catch語(yǔ)句:class CommandThread extends Thread MIDlet parent; boolean exit=false; public CommandThread(MIDlet parent) this.parent=parent; public void run() while (true) synchronized (parent) while (!condition) try parent.wait(); catch (InterruptedException e) e.printStackTrace();condition = false;
31、try invokeServlet(defaultURL); catch (Exception e) System.out.println(e.getMessage(); (3)訪問(wèn)網(wǎng)絡(luò)方法:public void invokeServlet(String url)throws IOException /創(chuàng)建輸入輸出流連接 HttpConnection conn=null; DataOutputStream dos=null; DataInputStream dis=null; try /用HttpConnection的openOutStream()方法獲取輸出流,它將發(fā)送請(qǐng)求到服務(wù)器端 co
32、nn=(HttpConnection)Connector.open(url, Connector.READ_WRITE); /設(shè)置請(qǐng)求方式為post,默認(rèn)的請(qǐng)求方式GET conn.setRequestMethod(HttpConnection.POST); /設(shè)置請(qǐng)求屬性 conn.setRequestProperty(IF-Modified-Since, 15 Oct 2010 09:20 GMT); conn.setRequestProperty(User-Agent, Profile/MIDP-1.0 Configuration/CLDC-1.0); conn.setRequestPr
33、operty(Content-Language, en-CA); conn.setRequestProperty(Connection, Keep-Alive); /發(fā)送請(qǐng)求參數(shù)到servlet dos=conn.openDataOutputStream(); dos.writeUTF(termName); dos.writeUTF(stuID); dos.writeUTF(stuName); dos.flush(); dos.close(); /接受servlet響應(yīng)數(shù)據(jù) dis=new DataInputStream(conn.openInputStream(); String retur
34、nScore=dis.readUTF(); String returnXinxi=dis.readUTF(); dis.close(); String reslutstring=對(duì)不起,學(xué)號(hào)或者姓名錯(cuò)誤; if(returnScore!=null) System.out.println(所有成績(jī)); if (!returnScore.endsWith(reslutstring) System.out.println(mainpanl);mainPanel=new MainPanel(this,returnScore,returnXinxi);mainPanel.showMe();else re
35、turnForm=new Form(查詢結(jié)果); returnForm.append(returnScore); returnForm.addCommand(cmdErro); returnForm.setCommandListener(this); display.setCurrent(returnForm); catch(Exception e) finally if(dis!=null) dis.close(); if(dos!=null) dos.close(); if(conn!=null) conn.close(); 4.2 服務(wù)器端編碼服務(wù)器端采用struts+hibernate
36、框架整合應(yīng)用,基于j2ee平臺(tái)開(kāi)發(fā)N層架構(gòu)模型,實(shí)現(xiàn)了表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問(wèn)層等多層架構(gòu)。具體的邏輯是:jsp頁(yè)面通過(guò)response、post方法發(fā)送給web.xml,web.xml通過(guò)配置struts2訪問(wèn)struts.xml,struts.xml將消息發(fā)送給action處理并返回結(jié)果,Action繼承了ActionSupport,action調(diào)用service接口并且使用其serviceimp實(shí)現(xiàn)類(lèi),serviceimp調(diào)用dao接口并且使用daoimp實(shí)現(xiàn)類(lèi),daoimp實(shí)現(xiàn)操作數(shù)據(jù)庫(kù)的具體的邏輯,daoimp調(diào)用model層的模型,model層建立數(shù)據(jù)庫(kù)表。具體流程如下圖4-3
37、所示:圖 4-3 ssh框架4.2.1 學(xué)生信息的查詢采用表格形式展示,分別有展示的信息有學(xué)號(hào)、姓名性別、專(zhuān)業(yè)、出生時(shí)間、總學(xué)分等操作。學(xué)生排列順序是按學(xué)號(hào)的從小到大排的。其界面如圖4-4所示:圖 4-4 學(xué)生詳細(xì)信息其主要層daoimp的代碼實(shí)現(xiàn)如下:public void delete(String xh) Session session=null; try session=HibernateSessionFactory.getSession(); Transaction ts = session.beginTransaction(); Query query=session.create
38、Query(from Xsb where xh=+xh+); Xsb xs=(Xsb) query.uniqueResult(); session.delete(xs); mit(); catch (Exception e) / TODO: handle exceptione.printStackTrace();finallyif(session.isOpen() session.close(); public Xsb find(String xh) Xsb xs=null;Session session=null;try session=HibernateSessionFactory.get
39、Session();Query query=session.createQuery(from Xsb where xh=+xh+);xs=(Xsb) query.uniqueResult(); catch (Exception e) / TODO: handle exceptione.printStackTrace();finallyif(session.isOpen() session.close();return xs; public List findAll(int pageNow,int pageSize) List list=null;Session session=null;try
40、 session = HibernateSessionFactory.getSession();Query query = session.createQuery(from Xsb order by xh);int firstResult = (pageNow - 1) * pageSize;query.setFirstResult(firstResult);query.setMaxResults(pageSize);list = query.list(); catch (Exception e) / TODO: handle exceptione.printStackTrace();fina
41、llyif(session.isOpen() session.close();return list; public int findXsSize() int size=0;Session session=null;try session = HibernateSessionFactory.getSession();Query query = session.createQuery(from Xsb);List list= query.list();size=list.size(); catch (Exception e) / TODO: handle exceptione.printStac
42、kTrace();finallyif(session.isOpen() session.close();return size; public void save(Xsb xs) Session session=null; try session=HibernateSessionFactory.getSession(); Transaction ts = session.beginTransaction(); session.save(xs); mit(); catch (Exception e) / TODO: handle exceptione.printStackTrace();fina
43、llyif(session.isOpen() session.close(); public void update(Xsb xs) Session session=null; try session=HibernateSessionFactory.getSession(); Transaction ts = session.beginTransaction(); session.update(xs); mit(); catch (Exception e) / TODO: handle exceptione.printStackTrace();finallyif(session.isOpen(
44、) session.close(); 4.2.2課程信息錄入課程信息是按照課程號(hào)來(lái)作為唯一標(biāo)識(shí)的,可以添加課程號(hào),課程名,開(kāi)課學(xué)期,學(xué)時(shí),學(xué)分等信息。如果課程號(hào)已經(jīng)存在,則會(huì)提示你已經(jīng)輸入某某課程號(hào)信息,如果需要修改請(qǐng)點(diǎn)擊修改課程。圖 4-5 添加課程其action類(lèi)的動(dòng)作如下:public String addKc() throws Exception Kcb kc1=new Kcb();String kch=kc.getKch();if(kcService.find(kch)!=null)return ERROR;kc.setKch(kc.getKch();kc1.setKcm(kc.ge
45、tKcm();kc1.setKxxq(kc.getKxxq();kc1.setXs(kc.getXs();kc1.setXf(kc.getXf();kcService.save(kc);return SUCCESS;在daoimp實(shí)現(xiàn)如下public void save(Kcb kc)Session session=null; try session=HibernateSessionFactory.getSession(); Transaction ts = session.beginTransaction(); session.save(kc); mit(); catch (Exceptio
46、n e) / TODO: handle exceptione.printStackTrace();finallysession.close();4.2.3 學(xué)生成績(jī)的查詢?cè)诜?wù)器端可以查詢學(xué)生的成績(jī),根據(jù)選擇的不同科類(lèi)顯示出當(dāng)前您選擇的學(xué)生成績(jī),顯示課程號(hào)、學(xué)號(hào)、成績(jī)和學(xué)分等信息。圖 4-6 學(xué)生成績(jī)的查詢?cè)赼ction類(lèi)里的主要代碼的實(shí)現(xiàn)如下:public String findXscj() throws Exception List list=cjService.getXsCjList(cj.getId().getXsb().getXh();if(list.size()0)Map requ
47、est=(Map) ActionContext.getContext().get(request);request.put(list, list);return SUCCESS;elsereturn ERROR;public String findCj() throws Exception Cjb stucj=cjService.getXsCj(cj.getId().getXsb().getXh(),cj.getId().getKcb().getKch();Map request=(Map) ActionContext.getContext().get(request);request.put
48、(stucj, stucj);return SUCCESS;在daoimp類(lèi)里的代碼主要實(shí)現(xiàn)如下:public Cjb getXsCj(String xh,String kch) Cjb cj=null; Session session = null; try session=HibernateSessionFactory.getSession(); Query query=session.createQuery(from Cjb where id.xsb.xh=+xh+and id.kcb.kch=+kch+); cj=(Cjb) query.uniqueResult(); catch (E
49、xception e) / TODO: handle exceptione.printStackTrace();finallysession.close();return cj; 5. 結(jié) 束 語(yǔ)經(jīng)過(guò)四個(gè)多月的設(shè)計(jì)和開(kāi)發(fā),系統(tǒng)基本開(kāi)發(fā)完畢。實(shí)現(xiàn)了成績(jī)管理的最基本功能,在可以運(yùn)行的前提下,實(shí)現(xiàn)了增刪改查等功能。通過(guò)本次畢業(yè)設(shè)計(jì),我對(duì)java技術(shù)有了進(jìn)一步的了解,把書(shū)本的知識(shí)真正的轉(zhuǎn)化成為實(shí)際的東西,理解了開(kāi)發(fā)一個(gè)項(xiàng)目的一般過(guò)程。在這次設(shè)計(jì)過(guò)程中學(xué)到了很多有用的思想和技巧,特別是在設(shè)計(jì)過(guò)程中所出現(xiàn)的錯(cuò)誤的解決過(guò)程中受益匪淺。但是由于畢業(yè)設(shè)計(jì)時(shí)間倉(cāng)促,本人能力有限,所以該系統(tǒng)還有許多不盡如人意的地方
50、,不當(dāng)之處在所難免,比如用戶界面不夠美觀,出錯(cuò)處理不夠等多方面問(wèn)題。這些都有待進(jìn)一步改善。 參 考 文 獻(xiàn):【1】林麗娟,J2ME無(wú)線開(kāi)發(fā)實(shí)用教程北京:清華大學(xué)出版社 2002.09【2】韓順平,精通J2ME無(wú)線編程北京:清華大學(xué)出版社 2007.12【3】孫鑫 ,J2ME開(kāi)發(fā)大全北京:清華大學(xué)出版社 2004.07【4】馬士兵,J2ME移動(dòng)設(shè)備程序設(shè)計(jì)北京:清華大學(xué)出版社 2007.09【5】張麗娟,J2ME手機(jī)游戲案例精編清華大學(xué)出版社 2007.07 【6】趙毅主編.跨平臺(tái)程序設(shè)計(jì)語(yǔ)言Java.西安:西安電子科技大學(xué)出版社,2006【7】飛思科技產(chǎn)品研發(fā)中心JSP應(yīng)用開(kāi)發(fā)詳解(第二版)M北京:電子工業(yè)出版社,2004【8】吳以欣,陳小寧JavaScript 腳本程序設(shè)計(jì)M北京:人民郵電出版社,2005【9】孫衛(wèi)琴、李洪成Tomcat與Java Web開(kāi)發(fā)技術(shù)詳解M北京:電子工業(yè)出版社,2004【10】Duc A. Tran,Kien A. Hua,Tai Do.ZIGZAG: An Efficient Peer-to-Peer Scheme for Media Streaming, 200324
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大自然的語(yǔ)言 (2)
- 愛(ài)生活_愛(ài)勞動(dòng)
- 得道多助,失道寡助
- 八年級(jí)語(yǔ)文上冊(cè)30詩(shī)四首課件(新版)新人教版
- 計(jì)算機(jī)輔助普通話水平測(cè)試簡(jiǎn)介
- 全面營(yíng)銷(xiāo)組織的管理
- (廣西專(zhuān)版)七年級(jí)語(yǔ)文上冊(cè) 第2單元 8《世說(shuō)新語(yǔ)》二則課件 新人教版
- 《望終南山余雪》課件
- Who invented ···句型操練
- 個(gè)人禮儀規(guī)范培訓(xùn)教材
- 自我介紹ppt模板
- 高考英語(yǔ)一輪復(fù)習(xí) Unit 5 Travelling abroad課件 新人教版選修7 (23)
- 骨科特殊體格檢查-骨科小講
- 教學(xué)活動(dòng)設(shè)計(jì)的注意事項(xiàng)
- I項(xiàng)目風(fēng)險(xiǎn)管理2