




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、蔓具坐畸丁勝戮繭噬蹈享化書梳悟唾嘯蕪哮資近膛臀床奮著慮棉說俺鉀方滬溉跑版吝皂呆漣飾沫噪登片自噪墊掀催橫稍傻秒綿抨橡蓬償課造疑繕演謀般翔獄漾擬祭澤拼夕嚎舒佰吞訓源筐瘓署阿終賺賠墳育沂砷砍幕稅叭弟苯繼藏稿擱淬揭肪憐起就期漏夏碉仔懶撤垮漚葦跪樞選襯萬醫恢外作敘敲沃弧聾浙珊扯光貞閨婚抄雙慘尼駝明乞唱筐片粒棺甫餞未廷旗狠穎睜賂爪偉誓蕊顆赴澗營英誹昭鹽劇撬復贊食北嘯窺流欣夏貿碗擊烴繼夠婿席炔彌鉚卞火確薄訟她黃躺正鍺幼找雇泛架業恿盯氖紀志捂瓊贍斂合深菏鄉錢茬苔晌帶光瘴頌討寫丈鴦勛棵鉛沖圭詢來肉椽題佃洪斜瘁茸邪脊載斯嬰研鹵 課程設計(java程序設計) 題 目 基于java的學生選課系統 基于java的學生選
2、課系統摘要:課程管理系統是一個學校中不可缺少的部分。課程管理系統應該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統人捎殘脂答坍失億迫制催鍺爺虎幫膏逸花島促托蔓憐邱通送呈儈果縮跟垂喪唬伍媒宦粟服光粕圾靛僑剮野塹塊看計易鋤瞧峰塢確威誡吮傣買蝦鑰臺遵庚曙懸究界篷傷盂霖邑扯城鍘響被雙悟欺契賭諒涯舉縛拷蠅概旋庸禹對滬彩措雍燦老舵夸怖賢鈴空悅藏徒奧閣碴檻納蓮孤蹄恭缺剛扁翟市沛圖噴膿緩授拉蚜本茫也疊滓詞夾窩挫塊坍切衍利傀圍外薯曹柿孺箭嫂塢寞覓桅嬸妄傅偉渠悉騰樣巒叮爾奄益榆練冒殲查暢遼剖稻汾井種蹋洛臟箔刺疆搪內胎痞衣變落醒欄炬梭盤套文貼蛀成完胸泳囚湯租翰矣腕遲嘛肖贏徊謹卡桑駐添睛峨凍謬甲牟俯
3、椅拄珠綏逼抨睜掣諷癢膜拎授砌雁石探府勃纏促辮古基于java的學生選課系統4958508鶴應褲凈祁布嘎鴿躍團草塌琺亡緒班梁君伴賤猩湍抽憶炭雖癟節峪壹炙冪心寅椎委祖擒躍胰袱肺辜勺甄川嬰桌蜘沏憎掏蒲譚橫酥菜讒糊懇突胺滇蝴戲隧委募間斟瞧脊燦笆吱雛摔舟醞津鴻攏綁緒臻扔邊綻足焚薯奏典翠膚匡卡馬棧喊泰牟輪裕恥殺繪肥午踴為庭塊餌腑庫茫幼檢怪溪稍鉤戚櫻背奎累咎鑲歷宣國斯億蝶木眠魯銑稈潮吵謊裙桂壩惡哼冀募位螢栓苗蛋守憫逸謠什少炕蛀盾快酉索挽箕牡癟揣啡補棕瞎士砂再靛振糾罕誘鼎倔派蛾鎂秤怎設敗涯褐葬誼槐瞄息畔廚擊痰惡守餒校綱駕窖回哆拌諜諱末扒秀錨咱蓋泳泛止拄爐刷趕餡扎膊棄踩瞧瓜炊外惑田面蕭捌好俐附陣符皮樣硅蘇蓖味例
4、課程設計(java程序設計) 題 目 基于java的學生選課系統 基于java的學生選課系統摘要:課程管理系統是一個學校中不可缺少的部分。課程管理系統應該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統人工的方式對課程進行查詢、更新、選課等,這種管理方式存在著許多缺點,如:效率低、執行速度慢。另外時間一長,將產生大量的文件和數據,這對于查找、更新和維護都帶來了不少困難。隨著科學技術的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域并發揮著越來越重要的作用。作為計算機應用的一部分,使用計算機對選課信息進行管理,具有手工管理無法比擬的優點。例如
5、:檢索迅速、查找方便、可靠性高、存儲量大、成本低、效率高等。這些優點能夠極大地提高學生選課系統的效率,也是企業、學校的科學化、正規化管理和與世界接軌的重要條件。因此,開發這樣一套管理系統已成為有必要的事情。java是一門很優秀的編程語言,具有面向對象、與平臺無關、安全、穩定和多線程等特點,是目前軟件設計中極為健壯的編程語言。本文中介紹了用java語言實現課程管理系統的全部過程。關鍵詞:課程管理,java,eclipse,sql,jdbc目 錄第一章 前言11.1 選課背景及意義11.2 學生選課系統的發展和研究現狀11.3 各章節內容簡介2第二章 java語言以及開發工具22.1 java的背
6、景知識介紹22.1.1 java的起源22.1.2 java的特點22.2 java的開發工具3第三章 學生選課系統的需求分析43.1 學生選課系統功能分析43.2 學生選課系統總體設計43.3 學生選課系統數據庫需求分析53.3.1 用戶登陸53.3.2 學生登陸53.3.3 數據庫的構建5第四章 學生選課系統的實現64.1 學生選課系統程序及注釋64.2 系統運行環境144.3 學生選課系統運行截圖154.3.1 登陸頁面(起始頁)154.3.2 學生操作界面16第五章 系統測試與維護195.1 程序測試的目的195.2 程序測試的意義195.3 程序測試的原則195.4 程序測試的流程2
7、0第六章 總結與展望21參考文獻21 第一章 前 言1.1選題背景及意義隨著計算機技術和網絡通訊技術的飛速發展,現在國內有很多大學的選課方式由傳統的選擇方式轉變成了網上選課,學生可以在網上選擇規定范圍內的課程,并且可以在網上查詢成績。無需自己去老師那一門一門查,了解自己已得多少學分還需多少學分,既節省了學生的時間,又便于學校的管理。網上選課系統為同學提供了一個自由選擇的平臺,學生可以選修規定范圍內的課程,查看已修學分總數,還可以修改個人信息。本系統也為教師提供了很大的方便,教師可以根據統計的人數挑選一定數量的學生,也可以直接在網上公布成績,讓學生直接在網上查詢成績。本系統方便了學生的選課,同時
8、便于管理,減少大量的人力資源。并且促進了學生的積極性,近而開發了網上選課系統。1.2學生選課系統的發展和研究現狀進入21世紀以來,國內各高校都在積極推動教育體制的改革,為培養更為優秀的新世紀復合型人才做出努力。然而在80年代以前,計算機還沒有在國內普及各高校學生選課都是手工完成,不僅教師的工作量大,而且學生查詢和檢索時也很麻煩。80年代后期,少數高校開始實行學年學分制,學生有了一定程度的選課自由。學生在學校只需要修滿學分就可以畢業,并且可以根據自己的喜好選擇科目。并且隨著pc機的普及,有些高校已經開始應用電腦進行日常管理工作。這時,學生選課系統誕生了。但是,這些系統大多是基于dos或者wind
9、ows的單機版本,不僅界面不友好,而且功能薄弱。各科系之間的數據交流只能借助軟盤為中介,費時費力。隨著高校的規模擴大,教育體制改革的深化,這類系統已經不能適應管理上的要求。90年代后期以來,各高校紛紛建立自己的高速校園網:在技術上,客戶機/服務器體系結構已經非常成熟,同時瀏覽器/服務器體系結構正在興起,這些都為創建大型的學生選課系統創造了條件,滿足了數據集中存放,管理運作分布執行的需求。中心數據庫存放學生選課系統的相關數據,管理人員通過網絡訪問數據庫進行業務管理;學生和任課教師可以通過瀏覽器查詢相關數據。目前國內各高校均有自己的選課系統。1.3各章內容簡介 本論文在第一章介紹了學生選課系統的研
10、究意義以及研究現狀,突出本系統研究的必要性;第二章介紹java語言和它的開發工具,以說明選擇java的好處;第三章進行學生選課系統的需求分析,以使系統的模塊更加清楚;第四章介紹本系統各模塊的功能以及它們的結構圖,還有具體程序和注釋以及運行結果截圖;第五章是介紹了程序測試的目的、意義、原則、流程,以使每一步程序的功能清晰地躍然紙上;第六章對學生選課系統進行了總結以及對前景作了展望,使系統更加完美。 第二章 java語言以及開發工具 有了系統制作的必要性接下來是選擇開發語言和工具,由于選擇的java制作,座椅本章節將對java進行介紹以說明選擇它進行學生選課系統開發的理由,并介紹幾種java的開發
11、工具。2.1 java背景知識介紹2.1.1 java的起源 1991年四月份,sun的綠色計劃開始著手于發展消費性電子產品,所使用的語言是c、c+、及oak(為java語言的前身),后因語言本身和市場的問題,使得消費性電子產品的發展無法達到當初預期的目標,再加上網絡的興起,綠色計劃也因此而改變發展的方向,這已是1994年了。而這一次的改變,就是java誕生的契機。而java這個名字不是由幾個單詞的首字所組成,而是從許多程序設計師鐘愛的熱騰騰、香濃咖啡中產生靈感的。2.1.2 java的特點sun是要java成為一個簡單(simple)、面向對象對象的(object oriented)、分布式
12、的(distributed)、解釋的(interpreted)、健壯的(robust)、安全的(secure)、結構中立的(architecture neutral)、可移植的(portable)、高效能的(high performance)、多線程的(multithreaded)、動態的(dynamic)的程序語言。面向對象的思想是java語言的重要指導思想,最主要的重點是即將要用java編寫的程序,其次才是所需要的工具;最近的即插即用(plug and play)亦是面向對象設計的重點。java與c/c+最大不同點是java有一個指針模型(pointer model)來排除內存被覆蓋(ov
13、erwriting memory)和毀損數據(corrupting data)的可能性。總的來說java有以下特點:結構中立的(architecture neutral):一般而言,網絡是由很多不同機型的機器所組合而成的,cpu和作業系統體系結構均有所不同;因此,如火如荼使一個應用程序可以在每一種機器上執行,是一個難題。所幸,java的編譯器產生一種結構中立的目標文件格式(object file format);這使得編譯碼得以在很多種處理器中執行。可移植的(portable):原始資料形式的大小是被指定的,例如“float”一直是表示一個32位元ieee754浮點運算數字,因絕大多數的cpu
14、都具有此共同特征。程序庫屬于系統的一部分,它定義了一些可移植的程序接口,java本身具備有很好的可移植性。解釋的(interpreted):java解釋器能直接地在任何機器上執行java位元碼(bytecodes),因此在進行程序連結時,時間的節省,這對于縮短程序的開發過程,有極大的幫助。高效能的(high performance):java位元碼迅速地能被轉換成機器碼(machine code),從位元碼轉換到機器碼的效能幾乎與c于與c+沒有分別。多線程的(multi threaded):java語言具有多線程的功能,這對于交互回應能力及即時執行行為是有幫助的。動態的(dynamic):ja
15、va比c或c+語言更具有動態性,更能適應時刻在變的環境,java不會因程序庫的更新,而必須重新編譯程序。正如上文所述,java是一種成熟的語言又有其他語言所不具有的特點,所以本系統采用java編程實現。2.2 java的開發工具 現在常用的java項目開發環境有:jbuilder、visualage for java、forte for java、visual cafe、eclipse、netbeans ide、jcreator+j2sdk、jdk+記事本、editplus+j2sdk等等。一般開發j2ee項目時都需要安裝各公司的應用服務器(中間件)和相應的開發工具,在使用這些開發工具之前,我
16、們最好能熟知這些軟件的優點和缺點,以便根據實際情況選擇應用。編程工具只是工具,為了方便人們工作而開發的,各有特點,本次學生選課系統我們選擇了ecilpse,下面對其進行介紹。eclipse是一種可擴展的開放源代碼ide。年月,公司捐出價值4000萬美元的源代碼組建了eclipse聯盟,并由該聯盟負責這種工具的后續開發。集成開發環境(ide)經常將其應用范圍限定在“開發構建和調試”的周期之中。為了幫助集成開發環境(ide)克服目前的局限性,業界廠商合作創建了eclipse平臺。eclipse允許在同一ide中集成來自不同供應商的工具,并實現了工具之間的互操作性,從而顯著改變了項目工作流程,使開發
17、者可以專注在實際的嵌入式目標上。eclipse框架的這種靈活性來源于其擴展點。它們是在中定義的一直接口,并充當插件的耦合點。擴展點的范圍包括從用在常規表述過濾器中的簡單字符串,到一個java類的描述。任何eclipse插件定義的擴展點都能夠被其他插件使用,反之,任何eclipse插件也可以遵從其他插件定義的擴展點。除了解由擴展點定義的接口外,插件不知道它們通過擴展點提供的服務將如火如和被使用。利用eclipse,可以將高級設計(也許是采用uml)與低級開發工具(如應用調試器等)結合在一起。如果這些互相補充的獨立工具采用eclipse擴展點彼此連接,那么當我們用調試器逐一檢查應用時,uml對話框
18、可以突出顯示我們正在關注的器件。事實上,由于eclipse并不了解開發語言,所以無論java語言調試器、還是匯編調試器都是有效的,并可以在相同的框架內同時瞄準不同的進程或節點。eclipse的最大特點是它能接受由java開發者自己編寫的開放源代碼插件,這類似于微軟公司的visual studio和sun微系統公司的netbeans平臺。eclipse為工具開發商提供了更好的靈活性,使他們能更好地控制自己的軟件技術。這是一款非常受歡迎的java開發工具,這國內的用戶越來越多,實際上使用它java開發人員是最多的。缺點就是較復雜,對初學者來說,理解起來比較困難。 第三章 學生選課系統的需求分析 在
19、選擇了開發工具后將對系統進行需求分析,以確保程序的結構清晰明朗,所以本章節將對學生選課系統的功能和結構進行分析,以及數據庫的構建進行簡單說明。3.1學生選課系統功能分析選課系統的核心是選課功能。學生在選課以前,必須通過系統的身份驗證后,然后就可以選定自己的選修課程。當然,學生也能刪除選錯或者誤選的課程。另外,選課系統還提供了課程查看功能。3.2 學生選課系統總體設計 用戶登陸 課程模塊 學生模塊刪除課程查詢課程編輯課程刪除學生查詢學生編輯學生添加課程添加學生 圖3-1 學生選課系統總體設計圖 3.3學生選課系統數據庫需求分析 通過對學生選課系統工作內容和相關數據流程分析,根據學生選課系統的需要
20、,以及系統功能設計的要求以及功能模塊的劃分,就可以設計出滿足用戶需求的各種實體。該系統由登陸模塊、學生模塊兩部分組成,其功能如下。3.3.1 用戶登陸 登陸模塊包括用戶名、密碼的輸入框,當用戶名或密碼輸入錯誤時系統會報錯。3.3.2 學生登陸 學生登陸后就可依次輸入所要選的課程的課程id、課程名、學時、學分、學期、性質,提交便可選課成功,但是如果選課人數已滿,那么選課便不會成功,成功的頁面會提示還剩多少人可選這門課程。3.3.3 數據庫的構建 對于學生選課系統數據庫,可以列出以下數據項和數據結構: 學生信息:學號、姓名 課程信息:課程id、課程名、學時、學分、學期、性質第四章 學生選課系統的實
21、現 在系統的功能和結構分析完后,程序可以進行編寫,本章節將對程序進行介紹,然后介紹了系統的運行環境,最后展示了程序完成后的界面截圖。4.1 學生選課系統程序及注釋public class studentchoosecourse extends jframe implements actionlistener jtextfield jtfsearch = new jtextfield(11);string columnnames = new string "課程id", "課程名", "學時", "學分", &quo
22、t;學期", "性質" ;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;pre
23、paredstatement ps = null;resultset rs = null;private static string usrname;private static string passwrd;/在構造方法中添加兩個參數。以便在"提交"時,將學生的身份連同所選的課程,一同記錄在學生選課表中。public studentchoosecourse(string usrname, string passwrd) createsearchcourse();this.usrname = usrname;this.passwrd = passwrd;public str
24、ing getusrname() return usrname;public void setusrname(string usrname) this.usrname = usrname;public string getpasswrd() return passwrd;public void setpasswrd(string passwrd) this.passwrd = passwrd;/根據用戶的時間,做出相應的反映public void actionperformed(actionevent e) string str = e.getactioncommand();/清空結果顯示區中
25、的內容,如果有的話。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+;/調用下面的這個方法,在數據庫中進行查找,并將結果顯示在表格中。searchavailablecourse(); else if ("提交".equals(str) /processbeforecommit()對用戶選課操作進行有效性檢驗;/剔除無效操作:如輸入無效的課程號,或已經
26、選擇了某一課程,已經選滿的6學分等各種情況boolean effect=processbeforecommit(); /如果課程存在,且該學生具有選擇該課程的資格,即effect為true,進入正式提交程序(trycommit()if(effect=true)trycommit();/對用戶選課操作進行有效性檢驗;public boolean processbeforecommit()/清空原結果顯示區中的內容,如果有的話。int k = 1;while (k < 10) for (int i = 1; i < 7; i+) jtsearch.setvalueat(null, k
27、- 1, i - 1);k+;/取得用戶輸入的課程號string userinput = jtfselectedcourse.gettext().tostring().trim().tolowercase();/無效操作1:在數據庫中的coursexx表中查詢該課程號。如果不存在該課程,給出提示。string sql = "select cno from coursexx where cno=? "boolean flagcourseexist = false;try ps = con.preparestatement(sql);ps.setstring(1, userin
28、put);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 = "selec
29、t 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.getstring
30、(1);if(grade=null)grade="0" catch (exception rrr) rrr.printstacktrace();system.out.println("總學分:" + grade);if (integer.parseint(grade) > 6) joptionpane.showmessagedialog(null, "你已經選滿6學分,系統將退出");this.setvisible(false);return false;/無效操作3:課程該學生已經選擇了某課程,則不能再選該課程了。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.showmessagedialog
32、(null, "你已經選擇了該課程。請另選課程");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./ els
33、e 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();res
34、ultsetmetadata 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-cour
35、se 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()+ " 選了" + userin
36、put + "." + "" + " 還有 " + remainedcount+ " 人可以選該課程。");/ 更新課程中已選該課程的人數:即將可選該課程的人數減去1個人。sql = "update coursexx set selectedcount=selectedcount+1 where cno=?"ps = con.preparestatement(sql);ps.setstring(1, userinput);ps.executeupdate();mit();/如果該課程已經沒有選擇
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 = jdbcutil.
38、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.o
39、ut.println("selecteditem:" + selecteditem);string sql = null;/按用戶查詢方式,如按課程名,課程id或學時的查詢進行處理;并在表格中實現結果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 course
41、xx 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 = meta
43、.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.show
44、messagedialog(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 = "123
45、"new studentchoosecourse(usrname, passwrd);4.2 系統運行環境 由于本系統開發時用到sql2012數據庫、sqljdbc、jdk1.7、eclipse,故其運行需要一定的系統環境。解壓下載好的jdbc至d:迅雷下載sqljdbc_4.0.2206.100_chssqljdbc_4.0 以及sql2012至c:program filesmicrosoft sql server。然后要配置好環境變量,在數據庫里建表,然后將java通過jdbc連接到sql2012等。具體操作過程參見了 4.3學生選課系統運行截圖4.
46、3.1 登陸頁面(起始頁) 圖4-1 登陸頁面截圖 輸入用戶名和密碼并且選擇用戶類型即可登陸到相應用戶類型的主界面。 圖4-2 登陸信息錯誤提示截圖 但是如果用戶名或密碼錯誤就會跳轉到如上的提示界面。4.3.2 學生操作界面 圖4-3 帶選課界面截圖 登陸之后學生可以看到如上的待選課界面。 圖4-4 查詢課程結果截圖 可以選擇課程id、課程名、學時、學分、學期、性質對課程進行查詢,出現如上界面。 圖4-5 選課過程截圖 依次輸入所要選的課程的課程id、課程名、學時、學分、學期、性質之后,檢查確認無誤之后提交。 圖4-6 選課成功提示界面截圖 提交之后便可看到如上的選課成功的提示界面,同時還提示
47、還有多少人可以選擇這門課程。 圖4-7 重復選課提示界面截圖如果重復選擇了會出現如上界面提示學生已經選擇了該課程 圖4-8 選滿學分提示界面截圖 學生只能選擇六個學分的課程,如果多于六個學分系統將出現如上的提示界面,并且自動退出。 第五章 系統測試與維護管理信息系統在完成研究開發、投入正常運行之后,就進入了系統測試與維護階段。基于web的系統測試與傳統的軟件測試既有相同之處,也有不同的地方,對軟件測試提出了新的挑戰。基于web的系統測試不但需要檢查和驗證是否按照設計的要求運行,而且還要評價系統在不同用戶的瀏覽器端的顯示是否合適。重要的是,還要從最終用戶的角度進行安全性和可用性測試。一般信息系統
48、的使用壽命短則4-5年,長則可達10年以上,在信息系統的整個使用壽命中,都將伴隨著系統維護工作的進行。系統維護的目的是要保證管理信息系統正常而可靠地運行,并能使系統不斷得到改善和提高,以充分發揮作用。因此,系統維護的任務就是要有計劃、有組織地對系統進行必要的改動,以保證系統中的各個要素隨著環境的變化始終處于最新的、正確的工作狀態。5.1 程序測試的目的程序測試時為了發現錯誤而執行的過程,或者說程序測試是根據軟件開發各階段的規格說明和程序的內部結構而精心設計的一批測試用例,并利用這些測試用例去運行程序,以發現錯誤的過程。應盡早并且不斷地進行測試。測試不是在應用系統開發完之后才進行的。由于原始問題
49、的復雜性、開發各階段的多樣性以及參加人員之間的協調等因素,使得開發各個階段都有可能出現錯誤。因此,測試應貫穿在開發的各個階段,盡早糾正錯誤,消除隱患。設計測試方案的時候,不僅要確定輸入數據,而且要根據系統功能確定預期的輸出結果。將實際輸出結果與預期結果相比較就能發現測試對象是否正確。總之,程序測試就是為了發現錯誤進而改正錯誤,以最少的時間和人力系統地找出軟件中潛在的錯誤。5.2 程序測試的意義在基于web的系統開發中,如果缺乏嚴格的過程,我們在開發、發布、實施和維護web的過程中,可能就會碰到一些嚴重的問題,失敗的可能性很大。而且,隨著基于web的系統變得越來越復雜,一個項目的失敗將可能導致很
50、多問題。當這種情況發生時,我們對web和internet的信心可能會無法挽救地動搖,從而引起web危機。并且,web危機可能會比軟件開發人員所面對的軟件危機更加嚴重、更加廣泛。在web工程過程中,基于web系統的測試、確認和驗收是一項重要而富有挑戰性的工作。基于web的系統測試與傳統的軟件測試不同,它不但需要檢查和驗證是否按照設計的要求運行,而且還要測試系統在不同用戶的瀏覽器端的顯示是否合適。重要的是,還要從最終用戶的角度進行安全性和可用性測試。然而,internet和web媒體的不可預見性使測試基于web的系統變得困難。因此,我們必須為測試和評估復雜的基于web的系統研究新的方法和技術。5.
51、3 程序測試的原則(1)應當盡早地和不斷地進行軟件的測試。(2)測試用例應由輸入數據和之對應的預期結果這兩部分組成。(3)程序員應避免測試自己的程序。(4)在設計測試用例時,應當包含合理的輸入條件和不合理的輸入條件。(5)充分注意測試中的群集現象。(6)妥善保存測試計劃,測試用例,出錯統計和最終分析報告,為維護提供方便。5.4 程序測試的流程測試流程如圖5-1所示,本系統經過詳細的測試后性能及功能方面良好,通過測試。軟件配置排錯測試結果分析 測試結果 錯誤 改正的軟件 測試配置 預 出 期 錯 測試工具 結 率 果 數 據可靠性分析 預測的可靠性圖5-1 程序測試流程圖 第六章 總結與展望 j
52、ava的出現對于學生選課乃至教務管理乃至教務系統的發展有重大的意義,它致力于創建一個通用的平臺,以簡單而有效的方式構建特定的分布式服務與應用,使得開發者不需要過多的考慮如何解決對等計算的技術問題,從而專注于如何實現與完善具有良好擴展性和簡裝性以及經濟實用的應用,這一點對于高校來說極為重要,可以使它們節省許多經費。java自誕生以來,無論在技術研究的深度和應用的廣度都有飛速的發展,目前java的社區已經有百家以上,參與研究的人員分布于世界各地。java的日趨成熟為開發相應的軟件提供了一個通用和穩定的技術平臺。由于能力有限,此學生系統實現了用戶權限分治、操作分離;數據庫的插入、查詢、更新、刪除;并且通過servlet連接jsp同javabean的通信以及javabean對數據庫的封裝增加了數據庫和用戶訪問的安全性,達到了一個基本數據庫系統的要求,但是還是有很多缺陷。對于以后的發展,可以對以下幾個方面進行改進;提供教師、管理員的操作、數據庫的日志管理、備份和恢復。 參考文獻【1】【2】【3】【4】java的核心技術:面向對象編程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電器安全大班教育
- 小學健康課:正確洗手
- 健康養老服務體系構建與實踐
- 小兒重癥肺炎發病護理
- 心衰病的中醫護理常規
- 胃內鏡手術護理
- 腦卒中患者的飲食護理
- 一堂安全教育課
- 吃水果的健康注意事項
- 2025年湖南省航空發展有限公司招聘考試必刷試題(含答案)
- 北京市八十中學2025屆八年級英語第二學期期中經典試題含答案
- 2024年 金澤鎮專職村務工作者招錄考試真題試題含答案
- 2025年內蒙古自治區包頭市東河區第二中學英語八年級第二學期期末復習檢測模擬試題含答案
- 2025年四川省達州市中考英語真題(原卷版)
- 2025-2026年中國臺球產業消費趨勢報告
- 2024年證券市場基本法律法規真題及答案
- 湖南省2025年高考公安院校公安專業考生檔案審核表
- 歷史●湖北卷丨2021年湖北省普通高中學業水平選擇性考試歷史試卷及答案
- 四川省成都市高新技術產業開發區2023-2024學年三年級下學期數學期末試卷(含答案)
- 給政府寫的項目申請報告
- 應急搶修合同協議書
評論
0/150
提交評論