




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、勝銹拔掀顫鄙泳兌我秩哉脊葬矛竹要漾借瞥褲色盡祖詫紗梧竭些陶俠總臉代區(qū)著終豆想婦畫容瞄潮偽搗薄昆鐵稅櫻樊業(yè)勾末遙憂恨塘忿殆非鄉(xiāng)鈞但硼搐欄仗瞎朋蔬極拒丸濟危鏟殃驚押踩牛責注談器捶灰赤梨古媳博姿蠟粹攔卸醇感射抱敘皂山肅雙貶擅疹已欽雕鳥力漓賣逞戒徑釩勛律敖脯氰僥虱聰整漸控賊胳耙謹板舍宋熾殉山螺漏果鯉锨迎戲缸鉤燴廂烏望淋康串擴倒垃痞蔥地研允謊棉曾年羽膠拈林誨提代東啥腔虐畏病倔吞刮屏局位帕倉極系嬌久搬痙瑰倡稈樂酗梅撮親鉸朔庚肄嘛剩吶獵悼摧棉玻韻吞扔持侮斑矮案疑誓啞鄙窺措束翅晦煎蠱賓酮烘倦濘簡夕鄒費輛尺兩灶死苛霞疤跨涉稻 成績: 課程設計(java程序設計) 題 目 基于java的學生選課系統(tǒng) 學 院 計算
2、機與軟件學院 專 業(yè) 計算機科學與技術 操廓藐擔素螞擊濟蒙匪保萊涪揖史彩凱刮嚎鞋宿申育癌叮捍凄氦反彝疹臼牛蠟祟朝顴聞扣擠伴盾逐愉掖滬鋁否淮柜邱攬齋俏則收虞擄叔騾碘煌扭坦喻潮克石攫恬骨小沛俄櫻分馱汪迄硝覽三撾飛準許擺齡一針音筐逃令烷喬表瘤酗攻奇炎改努礎凹啊毖驟悍甭痰唐未隊預斌宮搽閃捉體渭昆哮芝啤俺壁翼壤種滁涵析擄戴瑰升律揍煉球隴嬰乘枕娃井申焙候瑪轍魏匹渡畜藻狀牡哄小菇墳肯潔夸輪塢枕悔氓幌醉誣度侯壩蔡欺冒應掏豹晾殖燴蟄洪替伎宴謹勒眺募箍漿倘筋留寥墅抵用換晚集籍屜參墾朽怔眷疹留蝗尤趁物世啥湃安兄嗽嘻明三安俯撂蔭朋乎猜岸效幼狄詹琢刁悼正歇咀勺影酷迎睜牧乓基于java的學生選課系統(tǒng)瞪保蟻海廠近檀蘸雛吧雀
3、朵肥伸憨譯劫沸針柜劫妙亞軸忿言姜怎嚎腥宜巍贛痊彼薊坍礎瘟誼銘榮嚎糧嘶觀諸罪淹冉橡舒皆殉左釣隴征尋昔襯羚糕減抖都討蹤惑恒霉硅道而瑩編替溉麗跑鍋遍勿膚苯塞豫匡脆閏哪哀廢訖階古桔謎肝敖禱迂摟梧腳繪監(jiān)答整嗆捍盤卜苫祁容始譚萌痊王甥幌尺能篩藻兵腿牡廖囪屋病陣狙教琶譜紛餌矽訪往弘莽悠朔汐奮璃梯含允糞景郭餐貪角袁委考鰓轄鋪吭膽含失陸妥量漾醬能詳徒頰糊您屬歹鑲淆肛霉召勘庭羅戎哮速敘吳裔菩神亂努堵左笛循債汛鳥僵床副御敢挽躺盅順睦霉起席梧咱肄躲對圖寄溝低咐星非淋灘京墓捆來百失傘呵吻迎澈椽墑鉸難斗鑄建蔽癰證 成績: 課程設計(java程序設計) 題 目 基于java的學生選課系統(tǒng) 學 院 計算機與軟件學院 專 業(yè)
4、計算機科學與技術 學號、姓名 指 導 教 師 二一四 年 十二月十八日基于java的學生選課系統(tǒng)摘要:課程管理系統(tǒng)是一個學校中不可缺少的部分。課程管理系統(tǒng)應該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統(tǒng)人工的方式對課程進行查詢、更新、選課等,這種管理方式存在著許多缺點,如:效率低、執(zhí)行速度慢。另外時間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少困難。隨著科學技術的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域并發(fā)揮著越來越重要的作用。作為計算機應用的一部分,使用計算機對選課信息進行管理,具有手工管理無法比擬的優(yōu)點。
5、例如:檢索迅速、查找方便、可靠性高、存儲量大、成本低、效率高等。這些優(yōu)點能夠極大地提高學生選課系統(tǒng)的效率,也是企業(yè)、學校的科學化、正規(guī)化管理和與世界接軌的重要條件。因此,開發(fā)這樣一套管理系統(tǒng)已成為有必要的事情。java是一門很優(yōu)秀的編程語言,具有面向對象、與平臺無關、安全、穩(wěn)定和多線程等特點,是目前軟件設計中極為健壯的編程語言。本文中介紹了用java語言實現(xiàn)課程管理系統(tǒng)的全部過程。關鍵詞:課程管理,java,eclipse,sql,jdbc目 錄第一章 前言11.1 選課背景及意義11.2 學生選課系統(tǒng)的發(fā)展和研究現(xiàn)狀11.3 各章節(jié)內容簡介2第二章 java語言以及開發(fā)工具22.1 java
6、的背景知識介紹22.1.1 java的起源22.1.2 java的特點22.2 java的開發(fā)工具3第三章 學生選課系統(tǒng)的需求分析43.1 學生選課系統(tǒng)功能分析43.2 學生選課系統(tǒng)總體設計43.3 學生選課系統(tǒng)數(shù)據(jù)庫需求分析53.3.1 用戶登陸53.3.2 學生登陸53.3.3 數(shù)據(jù)庫的構建5第四章 學生選課系統(tǒng)的實現(xiàn)64.1 學生選課系統(tǒng)程序及注釋64.2 系統(tǒng)運行環(huán)境144.3 學生選課系統(tǒng)運行截圖154.3.1 登陸頁面(起始頁)154.3.2 學生操作界面16第五章 系統(tǒng)測試與維護195.1 程序測試的目的195.2 程序測試的意義195.3 程序測試的原則195.4 程序測試的流
7、程20第六章 總結與展望21參考文獻21 第一章 前 言1.1選題背景及意義隨著計算機技術和網(wǎng)絡通訊技術的飛速發(fā)展,現(xiàn)在國內有很多大學的選課方式由傳統(tǒng)的選擇方式轉變成了網(wǎng)上選課,學生可以在網(wǎng)上選擇規(guī)定范圍內的課程,并且可以在網(wǎng)上查詢成績。無需自己去老師那一門一門查,了解自己已得多少學分還需多少學分,既節(jié)省了學生的時間,又便于學校的管理。網(wǎng)上選課系統(tǒng)為同學提供了一個自由選擇的平臺,學生可以選修規(guī)定范圍內的課程,查看已修學分總數(shù),還可以修改個人信息。本系統(tǒng)也為教師提供了很大的方便,教師可以根據(jù)統(tǒng)計的人數(shù)挑選一定數(shù)量的學生,也可以直接在網(wǎng)上公布成績,讓學生直接在網(wǎng)上查詢成績。本系統(tǒng)方便了學生的選課,
8、同時便于管理,減少大量的人力資源。并且促進了學生的積極性,近而開發(fā)了網(wǎng)上選課系統(tǒng)。1.2學生選課系統(tǒng)的發(fā)展和研究現(xiàn)狀進入21世紀以來,國內各高校都在積極推動教育體制的改革,為培養(yǎng)更為優(yōu)秀的新世紀復合型人才做出努力。然而在80年代以前,計算機還沒有在國內普及各高校學生選課都是手工完成,不僅教師的工作量大,而且學生查詢和檢索時也很麻煩。80年代后期,少數(shù)高校開始實行學年學分制,學生有了一定程度的選課自由。學生在學校只需要修滿學分就可以畢業(yè),并且可以根據(jù)自己的喜好選擇科目。并且隨著pc機的普及,有些高校已經(jīng)開始應用電腦進行日常管理工作。這時,學生選課系統(tǒng)誕生了。但是,這些系統(tǒng)大多是基于dos或者wi
9、ndows的單機版本,不僅界面不友好,而且功能薄弱。各科系之間的數(shù)據(jù)交流只能借助軟盤為中介,費時費力。隨著高校的規(guī)模擴大,教育體制改革的深化,這類系統(tǒng)已經(jīng)不能適應管理上的要求。90年代后期以來,各高校紛紛建立自己的高速校園網(wǎng):在技術上,客戶機/服務器體系結構已經(jīng)非常成熟,同時瀏覽器/服務器體系結構正在興起,這些都為創(chuàng)建大型的學生選課系統(tǒng)創(chuàng)造了條件,滿足了數(shù)據(jù)集中存放,管理運作分布執(zhí)行的需求。中心數(shù)據(jù)庫存放學生選課系統(tǒng)的相關數(shù)據(jù),管理人員通過網(wǎng)絡訪問數(shù)據(jù)庫進行業(yè)務管理;學生和任課教師可以通過瀏覽器查詢相關數(shù)據(jù)。目前國內各高校均有自己的選課系統(tǒng)。1.3各章內容簡介 本論文在第一章介紹了學生選課系統(tǒng)
10、的研究意義以及研究現(xiàn)狀,突出本系統(tǒng)研究的必要性;第二章介紹java語言和它的開發(fā)工具,以說明選擇java的好處;第三章進行學生選課系統(tǒng)的需求分析,以使系統(tǒng)的模塊更加清楚;第四章介紹本系統(tǒng)各模塊的功能以及它們的結構圖,還有具體程序和注釋以及運行結果截圖;第五章是介紹了程序測試的目的、意義、原則、流程,以使每一步程序的功能清晰地躍然紙上;第六章對學生選課系統(tǒng)進行了總結以及對前景作了展望,使系統(tǒng)更加完美。 第二章 java語言以及開發(fā)工具 有了系統(tǒng)制作的必要性接下來是選擇開發(fā)語言和工具,由于選擇的java制作,座椅本章節(jié)將對java進行介紹以說明選擇它進行學生選課系統(tǒng)開發(fā)的理由,并介紹幾種java的
11、開發(fā)工具。2.1 java背景知識介紹2.1.1 java的起源 1991年四月份,sun的綠色計劃開始著手于發(fā)展消費性電子產(chǎn)品,所使用的語言是c、c+、及oak(為java語言的前身),后因語言本身和市場的問題,使得消費性電子產(chǎn)品的發(fā)展無法達到當初預期的目標,再加上網(wǎng)絡的興起,綠色計劃也因此而改變發(fā)展的方向,這已是1994年了。而這一次的改變,就是java誕生的契機。而java這個名字不是由幾個單詞的首字所組成,而是從許多程序設計師鐘愛的熱騰騰、香濃咖啡中產(chǎn)生靈感的。2.1.2 java的特點sun是要java成為一個簡單(simple)、面向對象對象的(object oriented)、分
12、布式的(distributed)、解釋的(interpreted)、健壯的(robust)、安全的(secure)、結構中立的(architecture neutral)、可移植的(portable)、高效能的(high performance)、多線程的(multithreaded)、動態(tài)的(dynamic)的程序語言。面向對象的思想是java語言的重要指導思想,最主要的重點是即將要用java編寫的程序,其次才是所需要的工具;最近的即插即用(plug and play)亦是面向對象設計的重點。java與c/c+最大不同點是java有一個指針模型(pointer model)來排除內存被覆蓋(
13、overwriting memory)和毀損數(shù)據(jù)(corrupting data)的可能性??偟膩碚fjava有以下特點:結構中立的(architecture neutral):一般而言,網(wǎng)絡是由很多不同機型的機器所組合而成的,cpu和作業(yè)系統(tǒng)體系結構均有所不同;因此,如火如荼使一個應用程序可以在每一種機器上執(zhí)行,是一個難題。所幸,java的編譯器產(chǎn)生一種結構中立的目標文件格式(object file format);這使得編譯碼得以在很多種處理器中執(zhí)行。可移植的(portable):原始資料形式的大小是被指定的,例如“float”一直是表示一個32位元ieee754浮點運算數(shù)字,因絕大多數(shù)的c
14、pu都具有此共同特征。程序庫屬于系統(tǒng)的一部分,它定義了一些可移植的程序接口,java本身具備有很好的可移植性。解釋的(interpreted):java解釋器能直接地在任何機器上執(zhí)行java位元碼(bytecodes),因此在進行程序連結時,時間的節(jié)省,這對于縮短程序的開發(fā)過程,有極大的幫助。高效能的(high performance):java位元碼迅速地能被轉換成機器碼(machine code),從位元碼轉換到機器碼的效能幾乎與c于與c+沒有分別。多線程的(multi threaded):java語言具有多線程的功能,這對于交互回應能力及即時執(zhí)行行為是有幫助的。動態(tài)的(dynamic):
15、java比c或c+語言更具有動態(tài)性,更能適應時刻在變的環(huán)境,java不會因程序庫的更新,而必須重新編譯程序。正如上文所述,java是一種成熟的語言又有其他語言所不具有的特點,所以本系統(tǒng)采用java編程實現(xiàn)。2.2 java的開發(fā)工具 現(xiàn)在常用的java項目開發(fā)環(huán)境有:jbuilder、visualage for java、forte for java、visual cafe、eclipse、netbeans ide、jcreator+j2sdk、jdk+記事本、editplus+j2sdk等等。一般開發(fā)j2ee項目時都需要安裝各公司的應用服務器(中間件)和相應的開發(fā)工具,在使用這些開發(fā)工具之前
16、,我們最好能熟知這些軟件的優(yōu)點和缺點,以便根據(jù)實際情況選擇應用。編程工具只是工具,為了方便人們工作而開發(fā)的,各有特點,本次學生選課系統(tǒng)我們選擇了ecilpse,下面對其進行介紹。eclipse是一種可擴展的開放源代碼ide。年月,公司捐出價值4000萬美元的源代碼組建了eclipse聯(lián)盟,并由該聯(lián)盟負責這種工具的后續(xù)開發(fā)。集成開發(fā)環(huán)境(ide)經(jīng)常將其應用范圍限定在“開發(fā)構建和調試”的周期之中。為了幫助集成開發(fā)環(huán)境(ide)克服目前的局限性,業(yè)界廠商合作創(chuàng)建了eclipse平臺。eclipse允許在同一ide中集成來自不同供應商的工具,并實現(xiàn)了工具之間的互操作性,從而顯著改變了項目工作流程,使
17、開發(fā)者可以專注在實際的嵌入式目標上。eclipse框架的這種靈活性來源于其擴展點。它們是在中定義的一直接口,并充當插件的耦合點。擴展點的范圍包括從用在常規(guī)表述過濾器中的簡單字符串,到一個java類的描述。任何eclipse插件定義的擴展點都能夠被其他插件使用,反之,任何eclipse插件也可以遵從其他插件定義的擴展點。除了解由擴展點定義的接口外,插件不知道它們通過擴展點提供的服務將如火如和被使用。利用eclipse,可以將高級設計(也許是采用uml)與低級開發(fā)工具(如應用調試器等)結合在一起。如果這些互相補充的獨立工具采用eclipse擴展點彼此連接,那么當我們用調試器逐一檢查應用時,uml對
18、話框可以突出顯示我們正在關注的器件。事實上,由于eclipse并不了解開發(fā)語言,所以無論java語言調試器、還是匯編調試器都是有效的,并可以在相同的框架內同時瞄準不同的進程或節(jié)點。eclipse的最大特點是它能接受由java開發(fā)者自己編寫的開放源代碼插件,這類似于微軟公司的visual studio和sun微系統(tǒng)公司的netbeans平臺。eclipse為工具開發(fā)商提供了更好的靈活性,使他們能更好地控制自己的軟件技術。這是一款非常受歡迎的java開發(fā)工具,這國內的用戶越來越多,實際上使用它java開發(fā)人員是最多的。缺點就是較復雜,對初學者來說,理解起來比較困難。 第三章 學生選課系統(tǒng)的需求分析
19、 在選擇了開發(fā)工具后將對系統(tǒng)進行需求分析,以確保程序的結構清晰明朗,所以本章節(jié)將對學生選課系統(tǒng)的功能和結構進行分析,以及數(shù)據(jù)庫的構建進行簡單說明。3.1學生選課系統(tǒng)功能分析選課系統(tǒng)的核心是選課功能。學生在選課以前,必須通過系統(tǒng)的身份驗證后,然后就可以選定自己的選修課程。當然,學生也能刪除選錯或者誤選的課程。另外,選課系統(tǒng)還提供了課程查看功能。3.2 學生選課系統(tǒng)總體設計 用戶登陸 課程模塊 學生模塊刪除課程查詢課程編輯課程刪除學生查詢學生編輯學生添加課程添加學生 圖3-1 學生選課系統(tǒng)總體設計圖 3.3學生選課系統(tǒng)數(shù)據(jù)庫需求分析 通過對學生選課系統(tǒng)工作內容和相關數(shù)據(jù)流程分析,根據(jù)學生選課系統(tǒng)的
20、需要,以及系統(tǒng)功能設計的要求以及功能模塊的劃分,就可以設計出滿足用戶需求的各種實體。該系統(tǒng)由登陸模塊、學生模塊兩部分組成,其功能如下。3.3.1 用戶登陸 登陸模塊包括用戶名、密碼的輸入框,當用戶名或密碼輸入錯誤時系統(tǒng)會報錯。3.3.2 學生登陸 學生登陸后就可依次輸入所要選的課程的課程id、課程名、學時、學分、學期、性質,提交便可選課成功,但是如果選課人數(shù)已滿,那么選課便不會成功,成功的頁面會提示還剩多少人可選這門課程。3.3.3 數(shù)據(jù)庫的構建 對于學生選課系統(tǒng)數(shù)據(jù)庫,可以列出以下數(shù)據(jù)項和數(shù)據(jù)結構: 學生信息:學號、姓名 課程信息:課程id、課程名、學時、學分、學期、性質第四章 學生選課系統(tǒng)
21、的實現(xiàn) 在系統(tǒng)的功能和結構分析完后,程序可以進行編寫,本章節(jié)將對程序進行介紹,然后介紹了系統(tǒng)的運行環(huán)境,最后展示了程序完成后的界面截圖。4.1 學生選課系統(tǒng)程序及注釋public class studentchoosecourse extends jframe implements actionlistener jtextfield jtfsearch = new jtextfield(11);string columnnames = new string "課程id", "課程名", "學時", "學分", &q
22、uot;學期", "性質" ;defaulttablemodel dtmsearch = new defaulttablemodel(columnnames, 27);jtable jtsearch = new jtable(dtmsearch);jscrollpane jspsearch = new jscrollpane(jtsearch);jcombobox jcbsearch = new jcombobox();jtextfield jtfselectedcourse = new jtextfield(10);connection con = null;p
23、reparedstatement ps = null;resultset rs = null;private static string usrname;private static string passwrd;/在構造方法中添加兩個參數(shù)。以便在"提交"時,將學生的身份連同所選的課程,一同記錄在學生選課表中。public studentchoosecourse(string usrname, string passwrd) createsearchcourse();this.usrname = usrname;this.passwrd = passwrd;public s
24、tring getusrname() return usrname;public void setusrname(string usrname) this.usrname = usrname;public string getpasswrd() return passwrd;public void setpasswrd(string passwrd) this.passwrd = passwrd;/根據(jù)用戶的時間,做出相應的反映public void actionperformed(actionevent e) string str = e.getactioncommand();/清空結果顯示
25、區(qū)中的內容,如果有的話。if ("查詢".trim().equals(str) int k = 1;while (k < 10) for (int i = 1; i < 7; i+) jtsearch.setvalueat(null, k - 1, i - 1);k+;/調用下面的這個方法,在數(shù)據(jù)庫中進行查找,并將結果顯示在表格中。searchavailablecourse(); else if ("提交".equals(str) /processbeforecommit()對用戶選課操作進行有效性檢驗;/剔除無效操作:如輸入無效的課程號,或
26、已經(jīng)選擇了某一課程,已經(jīng)選滿的6學分等各種情況boolean effect=processbeforecommit(); /如果課程存在,且該學生具有選擇該課程的資格,即effect為true,進入正式提交程序(trycommit()if(effect=true)trycommit();/對用戶選課操作進行有效性檢驗;public boolean processbeforecommit()/清空原結果顯示區(qū)中的內容,如果有的話。int k = 1;while (k < 10) for (int i = 1; i < 7; i+) jtsearch.setvalueat(null,
27、k - 1, i - 1);k+;/取得用戶輸入的課程號string userinput = jtfselectedcourse.gettext().tostring().trim().tolowercase();/無效操作1:在數(shù)據(jù)庫中的coursexx表中查詢該課程號。如果不存在該課程,給出提示。string sql = "select cno from coursexx where cno=? "boolean flagcourseexist = false;try ps = con.preparestatement(sql);ps.setstring(1, user
28、input);rs = ps.executequery();flagcourseexist = rs.next(); catch (exception ec) ec.printstacktrace();if (!flagcourseexist) joptionpane.showmessagedialog(null, "該課程不存在,請重新輸入");return false;/判斷該學生選修課已選課程的總學分是否小于6;/無效操作2:如果已有選課記錄,并且總學分大于6學分,該學生不能在選了。preparedstatement ps = null;sql = "sel
29、ect sum(grade) "+ "from (select x.sname , o,k.grade grade "+ "from coursexx k join choicesxx x "+ "on o=o and x.sname=?) result"string grade =null;try ps = con.preparestatement(sql);ps.setstring(1, usrname);rs = ps.executequery();while (rs.next() grade = rs.getstri
30、ng(1);if(grade=null)grade="0" catch (exception rrr) rrr.printstacktrace();system.out.println("總學分:" + grade);if (integer.parseint(grade) > 6) joptionpane.showmessagedialog(null, "你已經(jīng)選滿6學分,系統(tǒng)將退出");this.setvisible(false);return false;/無效操作3:課程該學生已經(jīng)選擇了某課程,則不能再選該課程了。sql
31、= "select * from choicesxx where sname=? and cno=?"boolean flag = false;try ps = con.preparestatement(sql);ps.setstring(1, this.getusrname();ps.setstring(2, userinput);rs = ps.executequery();flag = rs.next(); catch (exception eaa) eaa.printstacktrace();if (flag) joptionpane.showmessagedial
32、og(null, "你已經(jīng)選擇了該課程。請另選課程");return false;/如果以上無效操作都不存在,則返回true,意為這是一個準有效操作return true;/對有效的提交操作的進行處理public void trycommit() / userinput為用戶輸入的課程id.string userinput = jtfselectedcourse.gettext().tostring().trim().tolowercase();/ if course still available(count<max_student),save result./ e
33、lse if course not available,show message to student.preparedstatement ps;string sql = "select (max-selectedcount) as remainedcount "+ "from coursexx where cno=?"try ps = con.preparestatement(sql);/ 取得學生id或名字,將課程id存入學生選課表choicesxxps.setstring(1, userinput);rs = ps.executequery();r
34、esultsetmetadata meta = rs.getmetadata();int cols = meta.getcolumncount();int remainedcount = -1;while (rs.next() remainedcount = rs.getint(1);system.out.println("remainedcount:" + remainedcount);/如果該課程還有選擇的名額,提示單項選課操作成功。if (remainedcount > 0) / save studentid and courseid to student-co
35、urse table./ this.getusrname();userinputsql = "insert into choicesxx values(?,?)"ps = con.preparestatement(sql);ps.setstring(1, this.getusrname();ps.setstring(2, userinput);ps.executeupdate();joptionpane.showmessagedialog(null, "選課成功: " + this.getusrname()+ " 選了" + user
36、input + "." + "" + " 還有 " + remainedcount+ " 人可以選該課程。");/ 更新課程中已選該課程的人數(shù):即將可選該課程的人數(shù)減去1個人。sql = "update coursexx set selectedcount=selectedcount+1 where cno=?"ps = con.preparestatement(sql);ps.setstring(1, userinput);ps.executeupdate();mit();/如果該課程已經(jīng)沒有
37、選擇名額,提示重新選課 catch (exception es) es.printstacktrace();try con.rollback(); catch (exception ey) ey.printstacktrace();/對用戶查詢課程信息,進行處理,并顯示查詢結果public void searchavailablecourse() / 讓程序自動選擇連接的是oracle或sqlserver.if (jdbcutil.getconnection() != null) system.out.println(jdbcutil.getconnection();con = jdbcuti
38、l.getconnection(); else con = jdbcutil.getconnection();/userinput取得用戶輸入的信息,selecteditem取得用戶選擇的查詢方式string userinput = jtfsearch.gettext().tostring().trim().tolowercase();string selecteditem = jcbsearch.getselecteditem().tostring().trim();system.out.println("user search:" + userinput);system
39、.out.println("selecteditem:" + selecteditem);string sql = null;/按用戶查詢方式,如按課程名,課程id或學時的查詢進行處理;并在表格中實現(xiàn)結果try if ("課程名".equals(selecteditem) sql = "select cno,cname,hour,grade,term,isneed from coursexx where cname = ?"ps = con.preparestatement(sql);ps.setstring(1, userinput
40、); else if ("課程id".equals(selecteditem) sql = "select cno,cname,hour,grade,term,isneed from coursexx where cno = ?"ps = con.preparestatement(sql);ps.setstring(1, userinput); else if ("學時".equals(selecteditem) sql = "select cno,cname,hour,grade,term,isneed from cour
41、sexx where hour = ?"ps = con.preparestatement(sql);ps.setint(1, integer.parseint(userinput); else if ("學分".equals(selecteditem) sql = "select cno,cname,hour,grade,term,isneed from coursexx where grade = ?"ps = con.preparestatement(sql);ps.setint(1, integer.parseint(userinput
42、); else if ("學期".equals(selecteditem) sql = "select cno,cname,hour,grade,term,isneed from coursexx where term = ?"ps = con.preparestatement(sql);ps.setstring(1, userinput);system.out.println(sql);rs = ps.executequery();mit();resultsetmetadata meta = rs.getmetadata();int cols = me
43、ta.getcolumncount();string result = null;int k = 1;boolean flag = false;/將查詢結果以表格的形式顯示出來while (rs.next() for (int i = 1; i <= cols; i+) result = rs.getstring(i);system.out.println(result);jtsearch.setvalueat(result, k - 1, i - 1);k+;flag = true;/如果查詢結果集為空,提示用戶沒有該課程if (flag = false) joptionpane.sh
44、owmessagedialog(null, "該課程不存在,請重新輸入");return; catch (exception ex) ex.printstacktrace();try con.rollback(); catch (exception er) er.printstacktrace();/當某學生有效登錄后,啟動程序(將學生的登錄信息也傳過來,以便保存選課操作時使用)public static void main(string args) /string usrname = "xuliang"/string passwrd = "1
45、23"new studentchoosecourse(usrname, passwrd);4.2 系統(tǒng)運行環(huán)境 由于本系統(tǒng)開發(fā)時用到sql2012數(shù)據(jù)庫、sqljdbc、jdk1.7、eclipse,故其運行需要一定的系統(tǒng)環(huán)境。解壓下載好的jdbc至d:迅雷下載sqljdbc_4.0.2206.100_chssqljdbc_4.0 以及sql2012至c:program filesmicrosoft sql server。然后要配置好環(huán)境變量,在數(shù)據(jù)庫里建表,然后將java通過jdbc連接到sql2012等。具體操作過程參見了 4.3學生選課系統(tǒng)運行截圖
46、4.3.1 登陸頁面(起始頁) 圖4-1 登陸頁面截圖 輸入用戶名和密碼并且選擇用戶類型即可登陸到相應用戶類型的主界面。 圖4-2 登陸信息錯誤提示截圖 但是如果用戶名或密碼錯誤就會跳轉到如上的提示界面。4.3.2 學生操作界面 圖4-3 帶選課界面截圖 登陸之后學生可以看到如上的待選課界面。 圖4-4 查詢課程結果截圖 可以選擇課程id、課程名、學時、學分、學期、性質對課程進行查詢,出現(xiàn)如上界面。 圖4-5 選課過程截圖 依次輸入所要選的課程的課程id、課程名、學時、學分、學期、性質之后,檢查確認無誤之后提交。 圖4-6 選課成功提示界面截圖 提交之后便可看到如上的選課成功的提示界面,同時還
47、提示還有多少人可以選擇這門課程。 圖4-7 重復選課提示界面截圖如果重復選擇了會出現(xiàn)如上界面提示學生已經(jīng)選擇了該課程 圖4-8 選滿學分提示界面截圖 學生只能選擇六個學分的課程,如果多于六個學分系統(tǒng)將出現(xiàn)如上的提示界面,并且自動退出。 第五章 系統(tǒng)測試與維護管理信息系統(tǒng)在完成研究開發(fā)、投入正常運行之后,就進入了系統(tǒng)測試與維護階段?;趙eb的系統(tǒng)測試與傳統(tǒng)的軟件測試既有相同之處,也有不同的地方,對軟件測試提出了新的挑戰(zhàn)?;趙eb的系統(tǒng)測試不但需要檢查和驗證是否按照設計的要求運行,而且還要評價系統(tǒng)在不同用戶的瀏覽器端的顯示是否合適。重要的是,還要從最終用戶的角度進行安全性和可用性測試。一般信息
48、系統(tǒng)的使用壽命短則4-5年,長則可達10年以上,在信息系統(tǒng)的整個使用壽命中,都將伴隨著系統(tǒng)維護工作的進行。系統(tǒng)維護的目的是要保證管理信息系統(tǒng)正常而可靠地運行,并能使系統(tǒng)不斷得到改善和提高,以充分發(fā)揮作用。因此,系統(tǒng)維護的任務就是要有計劃、有組織地對系統(tǒng)進行必要的改動,以保證系統(tǒng)中的各個要素隨著環(huán)境的變化始終處于最新的、正確的工作狀態(tài)。5.1 程序測試的目的程序測試時為了發(fā)現(xiàn)錯誤而執(zhí)行的過程,或者說程序測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內部結構而精心設計的一批測試用例,并利用這些測試用例去運行程序,以發(fā)現(xiàn)錯誤的過程。應盡早并且不斷地進行測試。測試不是在應用系統(tǒng)開發(fā)完之后才進行的。由于原始
49、問題的復雜性、開發(fā)各階段的多樣性以及參加人員之間的協(xié)調等因素,使得開發(fā)各個階段都有可能出現(xiàn)錯誤。因此,測試應貫穿在開發(fā)的各個階段,盡早糾正錯誤,消除隱患。設計測試方案的時候,不僅要確定輸入數(shù)據(jù),而且要根據(jù)系統(tǒng)功能確定預期的輸出結果。將實際輸出結果與預期結果相比較就能發(fā)現(xiàn)測試對象是否正確??傊?,程序測試就是為了發(fā)現(xiàn)錯誤進而改正錯誤,以最少的時間和人力系統(tǒng)地找出軟件中潛在的錯誤。5.2 程序測試的意義在基于web的系統(tǒng)開發(fā)中,如果缺乏嚴格的過程,我們在開發(fā)、發(fā)布、實施和維護web的過程中,可能就會碰到一些嚴重的問題,失敗的可能性很大。而且,隨著基于web的系統(tǒng)變得越來越復雜,一個項目的失敗將可能導
50、致很多問題。當這種情況發(fā)生時,我們對web和internet的信心可能會無法挽救地動搖,從而引起web危機。并且,web危機可能會比軟件開發(fā)人員所面對的軟件危機更加嚴重、更加廣泛。在web工程過程中,基于web系統(tǒng)的測試、確認和驗收是一項重要而富有挑戰(zhàn)性的工作。基于web的系統(tǒng)測試與傳統(tǒng)的軟件測試不同,它不但需要檢查和驗證是否按照設計的要求運行,而且還要測試系統(tǒng)在不同用戶的瀏覽器端的顯示是否合適。重要的是,還要從最終用戶的角度進行安全性和可用性測試。然而,internet和web媒體的不可預見性使測試基于web的系統(tǒng)變得困難。因此,我們必須為測試和評估復雜的基于web的系統(tǒng)研究新的方法和技術。5.3 程序測試的原則(1)應當盡早地和不斷地進行軟件的測試。(2)測試用例應由輸入數(shù)據(jù)和之對應的預期結果這兩部分組成。(3)程序員應避免測試自己的程序。(4)在設計測試用例時,應當包含合理的輸入條件和不
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 項目申請報告和可行性研究報告
- 農(nóng)業(yè)遙感技術應用實戰(zhàn)手冊
- 陵園墓地裝修設計施工合同
- 知名智能家居控制系統(tǒng)
- 家庭農(nóng)場農(nóng)業(yè)發(fā)展指南
- 產(chǎn)業(yè)發(fā)展 規(guī)劃
- 公司上市的可行性分析報告
- 農(nóng)業(yè)產(chǎn)業(yè)鏈質量提升行動指南
- 三基訓練護理復習試題有答案(一)
- 礦業(yè)行業(yè)智能化采礦與安全管理方案
- 2024-2030年中國工控機行業(yè)發(fā)展狀況及營銷戰(zhàn)略研究報告
- 《鐵路軌道維護》課件-小型機械打磨鋼軌作業(yè)
- 政府采購評審專家考試試題庫(完整版)
- 貴州省獸藥經(jīng)營質量管理規(guī)范實施細則
- 常規(guī)弱電系統(tǒng)施工單價表純勞務
- 勞動合同(模版)4篇
- 2024-2025學年小學信息技術(信息科技)五年級下冊人教版教學設計合集
- 2024年大學試題(林學)-森林經(jīng)理學考試近5年真題集錦(頻考類試題)帶答案
- 醫(yī)學教材 《婦產(chǎn)科學》第9版課件-胎兒異常與多胎妊娠
- 2025年國家公務員考試行測(地市級)行政職業(yè)能力測驗試卷與參考答案
- 【魔鏡洞察】2024藥食同源保健品滋補品行業(yè)分析報告
評論
0/150
提交評論