




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 課程設(shè)計(Java程序設(shè)計) 題 目 基于Java的學生選課系統(tǒng) 基于Java的學生選課系統(tǒng)摘要:課程管理系統(tǒng)是一個學校中不可缺少的部分。課程管理系統(tǒng)應該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統(tǒng)人工的方式對課程進行查詢、更新、選課等,這種管理方式存在著許多缺點,如:效率低、執(zhí)行速度慢。另外時間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少困難。隨著科學技術(shù)的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。作為計算機應用的一部分,使用計算機對選課信息進行管理,具有手工管理無法比擬的優(yōu)點。例
2、如:檢索迅速、查找方便、可靠性高、存儲量大、成本低、效率高等。這些優(yōu)點能夠極提高學生選課系統(tǒng)的效率,也是企業(yè)、學校的科學化、正規(guī)化管理和與世界接軌的重要條件。因此,開發(fā)這樣一套管理系統(tǒng)已成為有必要的事情。JAVA是一門很優(yōu)秀的編程語言,具有面向?qū)ο?、與平臺無關(guān)、安全、穩(wěn)定和多線程等特點,是目前軟件設(shè)計中極為健壯的編程語言。本文中介紹了用JAVA語言實現(xiàn)課程管理系統(tǒng)的全部過程。關(guān)鍵詞:課程管理,Java,Eclipse,SQL,JDBC目 錄第一章前言11.1 選課背景與意義11.2 學生選課系統(tǒng)的發(fā)展和研究現(xiàn)狀11.3 各章節(jié)容簡介2第二章Java語言以與開發(fā)工具22.1 Java的背景知識介
3、紹22.1.1 Java的起源22.1.2 Java的特點22.2 Java的開發(fā)工具3第三章學生選課系統(tǒng)的需求分析43.1 學生選課系統(tǒng)功能分析43.2 學生選課系統(tǒng)總體設(shè)計43.3學生選課系統(tǒng)數(shù)據(jù)庫需求分析53.3.1 用戶登陸53.3.2 學生登陸53.3.3數(shù)據(jù)庫的構(gòu)建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 程序測試的流程20第六章總結(jié)與展望
4、21參考文獻2125 / 27 第一章 前 言1.1選題背景與意義隨著計算機技術(shù)和網(wǎng)絡(luò)通訊技術(shù)的飛速發(fā)展,現(xiàn)在國有很多大學的選課方式由傳統(tǒng)的選擇方式轉(zhuǎn)變成了網(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)方便了學生的選課,同時便于管理,減少大
5、量的人力資源。并且促進了學生的積極性,近而開發(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或者WINDOWS的單機版本,不
6、僅界面不友好,而且功能薄弱。各科系之間的數(shù)據(jù)交流只能借助軟盤為中介,費時費力。隨著高校的規(guī)模擴大,教育體制改革的深化,這類系統(tǒng)已經(jīng)不能適應管理上的要求。90年代后期以來,各高校紛紛建立自己的高速校園網(wǎng):在技術(shù)上,客戶機/服務(wù)器體系結(jié)構(gòu)已經(jīng)非常成熟,同時瀏覽器/服務(wù)器體系結(jié)構(gòu)正在興起,這些都為創(chuàng)建大型的學生選課系統(tǒng)創(chuàng)造了條件,滿足了數(shù)據(jù)集中存放,管理運作分布執(zhí)行的需求。中心數(shù)據(jù)庫存放學生選課系統(tǒng)的相關(guān)數(shù)據(jù),管理人員通過網(wǎng)絡(luò)訪問數(shù)據(jù)庫進行業(yè)務(wù)管理;學生和任課教師可以通過瀏覽器查詢相關(guān)數(shù)據(jù)。目前國各高校均有自己的選課系統(tǒng)。1.3各章容簡介 本論文在第一章介紹了學生選課系統(tǒng)的研究意義以與研究現(xiàn)狀,突出
7、本系統(tǒng)研究的必要性;第二章介紹Java語言和它的開發(fā)工具,以說明選擇Java的好處;第三章進行學生選課系統(tǒng)的需求分析,以使系統(tǒng)的模塊更加清楚;第四章介紹本系統(tǒng)各模塊的功能以與它們的結(jié)構(gòu)圖,還有具體程序和注釋以與運行結(jié)果截圖;第五章是介紹了程序測試的目的、意義、原則、流程,以使每一步程序的功能清晰地躍然紙上;第六章對學生選課系統(tǒng)進行了總結(jié)以與對前景作了展望,使系統(tǒng)更加完美。 第二章 Java語言以與開發(fā)工具有了系統(tǒng)制作的必要性接下來是選擇開發(fā)語言和工具,由于選擇的Java制作,座椅本章節(jié)將對Java進行介紹以說明選擇它進行學生選課系統(tǒng)開發(fā)的理由,并介紹幾種Java的開發(fā)工具。2.1 Java背景
8、知識介紹2.1.1 Java的起源1991年四月份,Sun的綠色計劃開始著手于發(fā)展消費性電子產(chǎn)品,所使用的語言是C、C+、與Oak(為Java語言的前身),后因語言本身和市場的問題,使得消費性電子產(chǎn)品的發(fā)展無法達到當初預期的目標,再加上網(wǎng)絡(luò)的興起,綠色計劃也因此而改變發(fā)展的方向,這已是1994年了。而這一次的改變,就是Java誕生的契機。而Java這個名字不是由幾個單詞的首字所組成,而是從許多程序設(shè)計師鐘愛的熱騰騰、香濃咖啡中產(chǎn)生靈感的。2.1.2 Java的特點Sun是要Java成為一個簡單(Simple)、面向?qū)ο髮ο蟮模∣bject Oriented)、分布式的(Distributed)
9、、解釋的(Interpreted)、健壯的(Robust)、安全的(Secure)、結(jié)構(gòu)中立的(Architecture Neutral)、可移植的(Portable)、高效能的(High Performance)、多線程的(Multithreaded)、動態(tài)的(Dynamic)的程序語言。面向?qū)ο蟮乃枷胧荍ava語言的重要指導思想,最主要的重點是即將要用Java編寫的程序,其次才是所需要的工具;最近的即插即用(Plug and Play)亦是面向?qū)ο笤O(shè)計的重點。Java與C/C+最大不同點是Java有一個指針模型(Pointer Model)來排除存被覆蓋(Overwriting Memor
10、y)和毀損數(shù)據(jù)(Corrupting Data)的可能性??偟膩碚fJava有以下特點:結(jié)構(gòu)中立的(Architecture Neutral):一般而言,網(wǎng)絡(luò)是由很多不同機型的機器所組合而成的,CPU和作業(yè)系統(tǒng)體系結(jié)構(gòu)均有所不同;因此,如火如荼使一個應用程序可以在每一種機器上執(zhí)行,是一個難題。所幸,Java的編譯器產(chǎn)生一種結(jié)構(gòu)中立的目標文件格式(Object File Format);這使得編譯碼得以在很多種處理器中執(zhí)行??梢浦驳模≒ortable):原始資料形式的大小是被指定的,例如“float”一直是表示一個32位元IEEE754浮點運算數(shù)字,因絕大多數(shù)的CPU都具有此共同特征。程序庫屬于系
11、統(tǒng)的一部分,它定義了一些可移植的程序接口,Java本身具備有很好的可移植性。解釋的(Interpreted):Java解釋器能直接地在任何機器上執(zhí)行Java位元碼(Bytecodes),因此在進行程序連結(jié)時,時間的節(jié)省,這對于縮短程序的開發(fā)過程,有極大的幫助。高效能的(High Performance):Java位元碼迅速地能被轉(zhuǎn)換成機器碼(Machine Code),從位元碼轉(zhuǎn)換到機器碼的效能幾乎與C于與C+沒有分別。多線程的(Multi threaded):Java語言具有多線程的功能,這對于交互回應能力與即時執(zhí)行行為是有幫助的。動態(tài)的(Dynamic):Java比C或C+語言更具有動態(tài)性
12、,更能適應時刻在變的環(huán)境,Java不會因程序庫的更新,而必須重新編譯程序。正如上文所述,Java是一種成熟的語言又有其他語言所不具有的特點,所以本系統(tǒng)采用Java編程實現(xiàn)。2.2 Java的開發(fā)工具現(xiàn)在常用的Java項目開發(fā)環(huán)境有:uilder、VisualAge for Java、Forte for Java、Visual Cafe、Eclipse、NetBeans IDE、JCreator+J2SDK、jdk+記事本、EditPlus+J2SDK等等。一般開發(fā)J2EE項目時都需要安裝各公司的應用服務(wù)器(中間件)和相應的開發(fā)工具,在使用這些開發(fā)工具之前,我們最好能熟知這些軟件的優(yōu)點和缺點,以
13、便根據(jù)實際情況選擇應用。編程工具只是工具,為了方便人們工作而開發(fā)的,各有特點,本次學生選課系統(tǒng)我們選擇了Ecilpse,下面對其進行介紹。EClipse是一種可擴展的開放源代碼IDE。年月,公司捐出價值4000萬美元的源代碼組建了EClipse聯(lián)盟,并由該聯(lián)盟負責這種工具的后續(xù)開發(fā)。集成開發(fā)環(huán)境(IDE)經(jīng)常將其應用圍限定在“開發(fā)構(gòu)建和調(diào)試”的周期之中。為了幫助集成開發(fā)環(huán)境(IDE)克服目前的局限性,業(yè)界廠商合作創(chuàng)建了EClipse平臺。EClipse允許在同一IDE中集成來自不同供應商的工具,并實現(xiàn)了工具之間的互操作性,從而顯著改變了項目工作流程,使開發(fā)者可以專注在實際的嵌入式目標上。ECl
14、ipse框架的這種靈活性來源于其擴展點。它們是在中定義的一直接口,并充當插件的耦合點。擴展點的圍包括從用在常規(guī)表述過濾器中的簡單字符串,到一個Java類的描述。任何EClipse插件定義的擴展點都能夠被其他插件使用,反之,任何EClipse插件也可以遵從其他插件定義的擴展點。除了解由擴展點定義的接口外,插件不知道它們通過擴展點提供的服務(wù)將如火如和被使用。利用EClipse,可以將高級設(shè)計(也許是采用UML)與低級開發(fā)工具(如應用調(diào)試器等)結(jié)合在一起。如果這些互相補充的獨立工具采用EClipse擴展點彼此連接,那么當我們用調(diào)試器逐一檢查應用時,UML對話框可以突出顯示我們正在關(guān)注的器件。事實上,
15、由于EClipse并不了解開發(fā)語言,所以無論Java語言調(diào)試器、還是匯編調(diào)試器都是有效的,并可以在一樣的框架同時瞄準不同的進程或節(jié)點。EClipse的最大特點是它能接受由Java開發(fā)者自己編寫的開放源代碼插件,這類似于微軟公司的Visual Studio和Sun微系統(tǒng)公司的NetBeans平臺。EClipse為工具開發(fā)商提供了更好的靈活性,使他們能更好地控制自己的軟件技術(shù)。這是一款非常受歡迎的Java開發(fā)工具,這國的用戶越來越多,實際上使用它Java開發(fā)人員是最多的。缺點就是較復雜,對初學者來說,理解起來比較困難。 第三章 學生選課系統(tǒng)的需求分析在選擇了開發(fā)工具后將對系統(tǒng)進行需求分析,以確保程
16、序的結(jié)構(gòu)清晰明朗,所以本章節(jié)將對學生選課系統(tǒng)的功能和結(jié)構(gòu)進行分析,以與數(shù)據(jù)庫的構(gòu)建進行簡單說明。3.1學生選課系統(tǒng)功能分析選課系統(tǒng)的核心是選課功能。學生在選課以前,必須通過系統(tǒng)的身份驗證后,然后就可以選定自己的選修課程。當然,學生也能刪除選錯或者誤選的課程。另外,選課系統(tǒng)還提供了課程查看功能。3.2 學生選課系統(tǒng)總體設(shè)計 用戶登陸 課程模塊 學生模塊刪除課程查詢課程編輯課程刪除學生查詢學生編輯學生添加課程添加學生圖3-1 學生選課系統(tǒng)總體設(shè)計圖3.3學生選課系統(tǒng)數(shù)據(jù)庫需求分析通過對學生選課系統(tǒng)工作容和相關(guān)數(shù)據(jù)流程分析,根據(jù)學生選課系統(tǒng)的需要,以與系統(tǒng)功能設(shè)計的要求以與功能模塊的劃分,就可以設(shè)計
17、出滿足用戶需求的各種實體。該系統(tǒng)由登陸模塊、學生模塊兩部分組成,其功能如下。3.3.1 用戶登陸 登陸模塊包括用戶名、密碼的輸入框,當用戶名或密碼輸入錯誤時系統(tǒng)會報錯。3.3.2 學生登陸學生登陸后就可依次輸入所要選的課程的課程ID、課程名、學時、學分、學期、性質(zhì),提交便可選課成功,但是如果選課人數(shù)已滿,那么選課便不會成功,成功的頁面會提示還剩多少人可選這門課程。3.3.3 數(shù)據(jù)庫的構(gòu)建 對于學生選課系統(tǒng)數(shù)據(jù)庫,可以列出以下數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu): 學生信息:學號、 課程信息:課程ID、課程名、學時、學分、學期、性質(zhì)第四章 學生選課系統(tǒng)的實現(xiàn)在系統(tǒng)的功能和結(jié)構(gòu)分析完后,程序可以進行編寫,本章節(jié)將對程
18、序進行介紹,然后介紹了系統(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", "課程名", "學時", "學分", "學期", "性質(zhì)" ;Def
19、aultTableModel 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;PreparedStatement ps = null;Result
20、Set rs = null;private static String usrName;private static String passwrd;/在構(gòu)造方法中添加兩個參數(shù)。以便在"提交"時,將學生的身份連同所選的課程,一同記錄在學生選課表中。public StudentChooseCourse(String usrName, String passwrd) createSearchCourse();this.usrName = usrName;this.passwrd = passwrd;public String getUsrName() return usrName
21、;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();/清空結(jié)果顯示區(qū)中的容,如果有的話。if ("查詢".tri
22、m().equals(str) int k = 1;while (k < 10) for (int i = 1; i < 7; i+) jtSearch.setValueAt(null, k - 1, i - 1);k+;/調(diào)用下面的這個方法,在數(shù)據(jù)庫中進行查找,并將結(jié)果顯示在表格中。searchAvailableCourse(); else if ("提交".equals(str) /processBeforeCommit()對用戶選課操作進行有效性檢驗;/剔除無效操作:如輸入無效的課程號,或已經(jīng)選擇了某一課程,已經(jīng)選滿的6學分等各種情況boolean eff
23、ect=processBeforeCommit(); /如果課程存在,且該學生具有選擇該課程的資格,即effect為true,進入正式提交程序(tryCommit()if(effect=true)tryCommit();/對用戶選課操作進行有效性檢驗;public boolean processBeforeCommit()/清空原結(jié)果顯示區(qū)中的容,如果有的話。int k = 1;while (k < 10) for (int i = 1; i < 7; i+) jtSearch.setValueAt(null, k - 1, i - 1);k+;/取得用戶輸入的課程號String
24、userInput = jtfSelectedCourse.getText().toString().trim().toLowerCase();/無效操作1:在數(shù)據(jù)庫中的coursexx表中查詢該課程號。如果不存在該課程,給出提示。String sql = "selecto from coursexx whereo=? "boolean flagCourseExist = false;try ps = con.prepareStatement(sql);ps.setString(1, userInput);rs = ps.executeQuery();flagCourseE
25、xist = rs.next(); catch (Exception eC) eC.printStackTrace();if (!flagCourseExist) JOptionPane.showMessageDialog(null, "該課程不存在,請重新輸入");return false;/判斷該學生選修課已選課程的總學分是否小于6;/無效操作2:如果已有選課記錄,并且總學分大于6學分,該學生不能在選了。PreparedStatement ps = null;sql = "select sum(grade) "+ "from (select
26、 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(1);if(grade=null)grade="0" c
27、atch (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 = "select * from choicesxx where sna
28、me=? ando=?"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(null, "你已經(jīng)選擇了該課程。請另選課程");return
29、 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./ else if course not available,show Message to
30、student.PreparedStatement ps;String sql = "select (Max-selectedCount) as RemainedCount "+ "from Coursexx whereo=?"try ps = con.prepareStatement(sql);/ 取得學生ID或名字,將課程ID存入學生選課表choicesxxps.setString(1, userInput);rs = ps.executeQuery();ResultSetMetaData meta = rs.getMetaData();int co
31、ls = 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-course table./ this.getUsrName();userInputsql = &
32、quot;insert into choicesxx values(?,?)"ps = con.prepareStatement(sql);ps.setString(1, this.getUsrName();ps.setString(2, userInput);ps.executeUpdate();JOptionPane.showMessageDialog(null, "選課成功: " + this.getUsrName()+ " 選了" + userInput + "." + "" + " 還
33、有 " + RemainedCount+ " 人可以選該課程。");/ 更新課程中已選該課程的人數(shù):即將可選該課程的人數(shù)減去1個人。sql = "update CourseXX set selectedCount=selectedCount+1 whereo=?"ps = con.prepareStatement(sql);ps.setString(1, userInput);ps.executeUpdate();con mit();/如果該課程已經(jīng)沒有選擇名額,提示重新選課 catch (Exception es) es.printStack
34、Trace();try con.rollback(); catch (Exception ey) ey.printStackTrace();/對用戶查詢課程信息,進行處理,并顯示查詢結(jié)果public void searchAvailableCourse() / 讓程序自動選擇連接的是Oracle或SqlServer.if (JDBCUtil.getConnection() != null) System.out.println(JDBCUtil.getConnection();con = JDBCUtil.getConnection(); else con = JDBCUtil.getConn
35、ection();/userInput取得用戶輸入的信息,selectedItem取得用戶選擇的查詢方式String userInput = jtfSearch.getText().toString().trim().toLowerCase();String selectedItem = jcbSearch.getSelectedItem().toString().trim();System.out.println("User search:" + userInput);System.out.println("selectedItem:" + selec
36、tedItem);String sql = null;/按用戶查詢方式,如按課程名,課程ID或?qū)W時的查詢進行處理;并在表格中實現(xiàn)結(jié)果try if ("課程名".equals(selectedItem) sql = "selecto,cname,hour,grade,term,isNeed from CourseXX whereame = ?"ps = con.prepareStatement(sql);ps.setString(1, userInput); else if ("課程ID".equals(selectedItem) sq
37、l = "selecto,cname,hour,grade,term,isNeed from CourseXX whereo = ?"ps = con.prepareStatement(sql);ps.setString(1, userInput); else if ("學時".equals(selectedItem) sql = "selecto,cname,hour,grade,term,isNeed from CourseXX where hour = ?"ps = con.prepareStatement(sql);ps.se
38、tInt(1, Integer.parseInt(userInput); else if ("學分".equals(selectedItem) sql = "selecto,cname,hour,grade,term,isNeed from CourseXX where grade = ?"ps = con.prepareStatement(sql);ps.setInt(1, Integer.parseInt(userInput); else if ("學期".equals(selectedItem) sql = "sele
39、cto,cname,hour,grade,term,isNeed from CourseXX where term = ?"ps = con.prepareStatement(sql);ps.setString(1, userInput);System.out.println(sql);rs = ps.executeQuery();con mit();ResultSetMetaData meta = rs.getMetaData();int cols = meta.getColumnCount();String result = null;int k = 1;boolean flag
40、 = false;/將查詢結(jié)果以表格的形式顯示出來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;/如果查詢結(jié)果集為空,提示用戶沒有該課程if (flag = false) JOptionPane.showMessageDialog(null, "該課程不存在,請重新輸入");return; catch (
41、Exception ex) ex.printStackTrace();try con.rollback(); catch (Exception er) er.printStackTrace();/當某學生有效登錄后,啟動程序(將學生的登錄信息也傳過來,以便保存選課操作時使用)public static void main(String args) /String usrName = "xuliang"/String passwrd = "123"new StudentChooseCourse(usrName, passwrd);4.2 系統(tǒng)運行環(huán)境由于本
42、系統(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等。具體操作過程參見了 360doc./content/14/0806/02/15319145_399731507.shtml、4.3學生選課系統(tǒng)運行截圖4.3.1 登陸頁面(起
43、始頁) 圖4-1 登陸頁面截圖輸入用戶名和密碼并且選擇用戶類型即可登陸到相應用戶類型的主界面。圖4-2 登陸信息錯誤提示截圖 但是如果用戶名或密碼錯誤就會跳轉(zhuǎn)到如上的提示界面。4.3.2 學生操作界面圖4-3 帶選課界面截圖 登陸之后學生可以看到如上的待選課界面。圖4-4 查詢課程結(jié)果截圖 可以選擇課程ID、課程名、學時、學分、學期、性質(zhì)對課程進行查詢,出現(xiàn)如上界面。圖4-5 選課過程截圖 依次輸入所要選的課程的課程ID、課程名、學時、學分、學期、性質(zhì)之后,檢查確認無誤之后提交。圖4-6 選課成功提示界面截圖 提交之后便可看到如上的選課成功的提示界面,同時還提示還有多少人可以選擇這門課程。圖4
44、-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)測試不但需要檢查和驗證是否按照設(shè)計的要求運行,而且還要評價系統(tǒng)在不同用戶的瀏覽器端的顯示是否合適。重要的是,還要從最終用戶的角度進行安全性和可用性測試。一般信息系統(tǒng)的使用壽命短則4-5年,長則可達10
45、年以上,在信息系統(tǒng)的整個使用壽命中,都將伴隨著系統(tǒng)維護工作的進行。系統(tǒng)維護的目的是要保證管理信息系統(tǒng)正常而可靠地運行,并能使系統(tǒng)不斷得到改善和提高,以充分發(fā)揮作用。因此,系統(tǒng)維護的任務(wù)就是要有計劃、有組織地對系統(tǒng)進行必要的改動,以保證系統(tǒng)中的各個要素隨著環(huán)境的變化始終處于最新的、正確的工作狀態(tài)。5.1 程序測試的目的程序測試時為了發(fā)現(xiàn)錯誤而執(zhí)行的過程,或者說程序測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的部結(jié)構(gòu)而精心設(shè)計的一批測試用例,并利用這些測試用例去運行程序,以發(fā)現(xiàn)錯誤的過程。應盡早并且不斷地進行測試。測試不是在應用系統(tǒng)開發(fā)完之后才進行的。由于原始問題的復雜性、開發(fā)各階段的多樣性以與參加人
46、員之間的協(xié)調(diào)等因素,使得開發(fā)各個階段都有可能出現(xiàn)錯誤。因此,測試應貫穿在開發(fā)的各個階段,盡早糾正錯誤,消除隱患。設(shè)計測試方案的時候,不僅要確定輸入數(shù)據(jù),而且要根據(jù)系統(tǒng)功能確定預期的輸出結(jié)果。將實際輸出結(jié)果與預期結(jié)果相比較就能發(fā)現(xiàn)測試對象是否正確。總之,程序測試就是為了發(fā)現(xiàn)錯誤進而改正錯誤,以最少的時間和人力系統(tǒng)地找出軟件中潛在的錯誤。5.2 程序測試的意義在基于Web的系統(tǒng)開發(fā)中,如果缺乏嚴格的過程,我們在開發(fā)、發(fā)布、實施和維護Web的過程中,可能就會碰到一些嚴重的問題,失敗的可能性很大。而且,隨著基于Web的系統(tǒng)變得越來越復雜,一個項目的失敗將可能導致很多問題。當這種情況發(fā)生時,我們對Web
47、和Internet的信心可能會無法挽救地動搖,從而引起Web危機。并且,Web危機可能會比軟件開發(fā)人員所面對的軟件危機更加嚴重、更加廣泛。在Web工程過程中,基于Web系統(tǒng)的測試、確認和驗收是一項重要而富有挑戰(zhàn)性的工作。基于Web的系統(tǒng)測試與傳統(tǒng)的軟件測試不同,它不但需要檢查和驗證是否按照設(shè)計的要求運行,而且還要測試系統(tǒng)在不同用戶的瀏覽器端的顯示是否合適。重要的是,還要從最終用戶的角度進行安全性和可用性測試。然而,Internet和Web媒體的不可預見性使測試基于Web的系統(tǒng)變得困難。因此,我們必須為測試和評估復雜的基于Web的系統(tǒng)研究新的方法和技術(shù)。5.3 程序測試的原則(1)應當盡早地和不
48、斷地進行軟件的測試。(2)測試用例應由輸入數(shù)據(jù)和之對應的預期結(jié)果這兩部分組成。(3)程序員應避免測試自己的程序。(4)在設(shè)計測試用例時,應當包含合理的輸入條件和不合理的輸入條件。(5)充分注意測試中的群集現(xiàn)象。(6)妥善保存測試計劃,測試用例,出錯統(tǒng)計和最終分析報告,為維護提供方便。5.4 程序測試的流程測試流程如圖5-1所示,本系統(tǒng)經(jīng)過詳細的測試后性能與功能方面良好,通過測試。軟件配置排錯測試結(jié)果分析 測試結(jié)果 錯誤 改正的軟件測試配置 預 出 期 錯 測試工具 結(jié) 率 果 數(shù)據(jù)可靠性分析預測的可靠性圖5-1 程序測試流程圖 第六章 總結(jié)與展望 Java的出現(xiàn)對于學生選課乃至教務(wù)管理乃至教務(wù)系統(tǒng)的發(fā)展有重大的意義,它致力于創(chuàng)建一個通用的平臺,以簡單而有效的方式構(gòu)建特定的分布式服務(wù)與應用,使得開發(fā)者不需要過多的考慮如何解決對等計算的技術(shù)問題,從而專注于如何實現(xiàn)與完善具有良好擴展性和簡裝性以與經(jīng)濟實用的應用,這一點對于高校來說極為重要,可以使它們節(jié)省許多經(jīng)費。Java自誕生以來,無論在技術(shù)研究的深度和應用的廣度都有飛速的發(fā)展,目前Java的社區(qū)已經(jīng)有百家以上,參與研究的人員分布于世界各地。Java的日趨成熟為開發(fā)相應的軟件提供
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第八單元跨學科實踐活動7常見金屬的物理性質(zhì)和化學性質(zhì)教學設(shè)計-2024-2025學年九年級化學人教版(2024)下冊
- Module 12 Unit 2(教學設(shè)計)-2024-2025學年外研版英語八年級上冊
- 2025年微波器件及電路項目合作計劃書
- 互換性第9章 學習教材
- 2025至2030年中國嵌入式空調(diào)器數(shù)據(jù)監(jiān)測研究報告
- 二零二五年度互聯(lián)網(wǎng)金融服務(wù)公司股權(quán)合作合同
- 二零二五年度遠程醫(yī)療文件傳輸解決方案合同
- 醫(yī)院二零二五年度招聘合同與醫(yī)療環(huán)境改善合作協(xié)議
- 二零二五年度子女對父母贍養(yǎng)與老年旅游服務(wù)合同
- 2025年度直播平臺網(wǎng)紅主播經(jīng)紀服務(wù)合同
- 《克雷洛夫寓言》閱讀指導課件
- 《無人機載荷與行業(yè)應用》 課件全套 第1-6章 無人機任務(wù)載荷系統(tǒng)概述- 未來展望與挑戰(zhàn)
- 《室內(nèi)照明設(shè)計》(熊杰)794-5 教案 第7節(jié) 綠色照明、節(jié)能照明與應急照明
- 腦卒中后認知障礙的護理課件
- 《大學生國防教育教程》第四章
- 抑郁病診斷證明書
- mks robin nano主板使用手冊信息科技保留一切權(quán)利
- 幼兒教師口語(高職學前教育)PPT完整全套教學課件
- 婦產(chǎn)科運用PDCA降低產(chǎn)后乳房脹痛發(fā)生率品管圈成果報告書
- 第四章泵的汽蝕
- 數(shù)字孿生水利工程建設(shè)技術(shù)導則(試行)
評論
0/150
提交評論