




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目 錄 第一章 總體設計11.1本系統(tǒng)的主要功能11.2系統(tǒng)包含的類及類之間的關系11.3 java源文件及其功能11.4相關文件及其功能2第二章 詳細設計32.1主類mainwindow32.2類database42.3類stubean52.4類inputstudent62.5類modifystudent72.6類querystudent82.7類deletestudent9第三章 功能測試及運行效果103.1 系統(tǒng)主界面103.2 錄入學生信息界面113.3 查詢學生信息界面113.4 修改學生信息界面123.5 修改學生信息界面12工作總結13參考文獻14咸寧學院 計算機科學與技術學院
2、課 程 設 計 報 告 第一章 總體設計1.1本系統(tǒng)的主要功能 本系統(tǒng)是基于數(shù)據(jù)庫的學生信息管理系統(tǒng),實現(xiàn)了連接數(shù)據(jù)庫,錄入、修改、查詢、刪除學生信息的功能。1.2系統(tǒng)包含的類及類之間的關系本系統(tǒng)共包括7個java源文件和3個輔助文件。類之間的關系如圖1-1所示mainwindowinputstudentmodifystudendeletestudentquerystudentdatabaseimageiconstubeanfilestubeandatabasefilestubeandatabasestubeandatabase圖 1-1 類之間的關系圖1.3 java源文件及其功能1.mai
3、nwindow.java該類負責創(chuàng)建學生信息管理系統(tǒng)的主窗口,該類還有main方法,程序從該類開始執(zhí)行。 2.inputstudent.java該類創(chuàng)建的對象是mainwindow類的重要成員之一,負責提供錄入學生基本信息的界面。 3.modifystudent.java該類創(chuàng)建的對象是mainwindow類的重要成員之一,負責提供修改學生基本信息的界面。4.deletestudent.java該類創(chuàng)建的對象是mainwindow類的重要成員之一,負責提供刪除學生基本信息的界面。5.querystudent.java該類創(chuàng)建的對象是mainwindow類的重要成員之一,負責提供查詢學生基本信息
4、以及打印基本信息的界面。6.database.java該類負責提供打開與關閉數(shù)據(jù)庫連接的功能。7.stubean.java該類負責數(shù)據(jù)庫操作,包括對學生信息數(shù)據(jù)庫的添加、查詢、修改、刪除。1.4相關文件及其功能1.welcome.jpg為主窗口的背景圖片,mainwidow需要調用該文件。 2.icon.jpg該文件是窗口最小化時的窗口圖標,mainwidow需要調用該文件。 3.專業(yè).txt該文件為專業(yè)組合的組合鍵提供下拉菜單的內容,inputstudent與modifystudent需要調用該文件。4 scmanage.mdb該文件為本程序數(shù)據(jù)源,負責保存學生基本信息,database連接
5、到該數(shù)據(jù)庫第二章 詳細設計2.1主類mainwindow(1)成員變量見表2-1表2-1 主要成員變量(屬性)成員變量描述變量類型名稱面板inputstudentins面板modifystudentmos面板deletestudentdes面板querystudentqus菜單欄jbuttonbarbar菜單組jmenumenusystem menustu菜單項jmenuitemitemwel itemexit itemsearch itemadd itemedit itemdelete布局管理器cardlayoutcard(2)方法見表2-2表2-2 主要方法方法名稱返回類型功能備注main
6、window無類型創(chuàng)建窗口構造方法actionperformed無類型處理響應事件繼承自父類抽象方法main無類型執(zhí)行程序程序的主函數(shù)(3)源代碼見文件mainwindow.java2.2類database(1)成員變量見表2-3表2-3 主要成員變量成員變量描述變量類型名稱執(zhí)行sql語句的接口statementstmt返回結果的接口resultsetrs數(shù)據(jù)庫連接接口connectionconn字符串(sql語句、驅動)stringsql strurl(2)方法見表2-4表2-4 主要方法方法名稱返回類型功能備注database無類型創(chuàng)建database對象構造方法openconn無類型打開
7、數(shù)據(jù)庫連接無executequeryresultset執(zhí)行sql查詢語句,返回結果集rs返回resultset類型結果集executeupdate無類型執(zhí)行sql更新語句無closestmt無類型關閉當前的statement對象無closeconn無類型關閉數(shù)據(jù)庫連接無(3)源代碼見文件database.java2.3類stubean(1)成員變量見表2-5表2-5 主要成員變量成員變量描述變量類型名稱返回結果的接口resultsetrs字符串(sql語句 數(shù)據(jù)庫屬性)stringsql snum sname ssex smajor sgrade sbirth創(chuàng)建database對象datab
8、asedb(2)方法見表2-4表2-4 主要方法方法名稱返回類型功能備注stuadd添加學生信息無stumodify修改學生信息無studel刪除學生信息無stusearchstring根據(jù)學號查詢學生信息返回resultset類型結果集(3)源代碼見文件stubean.java2.4類inputstudent(1)成員變量見表2-5表2-5 主要成員變量成員變量描述變量類型名稱stubean對象類型stubeanaddstu querystu文本域jtextfieldsnum sname sgrade sbirth組合框jcomboboxsmajor單選框buttongroupboy,gir
9、l按鈕多斥作用域buttongroupgroup按鈕jbuttonentry reset(2)方法見表2-4表2-4 主要方法方法名稱返回類型功能備注inputstudent無類型創(chuàng)建錄入學生信息界面構造方法actionperformed無類型處理響應事件繼承自父類抽象方法clearmess無類型清除文本框內容無(3)源代碼見文件inputstudent.java2.5類modifystudent(1)成員變量見表2-5表2-5 主要成員變量成員變量描述變量類型名稱stubean對象類型stubeanmodifystu querystu文本域jtextfieldsnum sname sgrad
10、e sbirth組合框jcomboboxsmajor單選框buttongroupboy,girl按鈕多斥作用域buttongroupgroup按鈕jbuttonentry reset start(2)方法見表2-4表2-4 主要方法方法名稱返回類型功能備注modifystudent無類型創(chuàng)建修改學生信息界面構造方法actionperformed無類型處理響應事件繼承自父類抽象方法clearmess無類型清除文本框內容無(3)源代碼見文件modify.java2.6類querystudent(1)成員變量見表2-5表2-5 主要成員變量成員變量描述變量類型名稱stubean對象類型stubean
11、 querystu文本域jtextfieldsnum sname sgrade sbirth smajor啟動并執(zhí)行打印作業(yè)printjobpri單選框buttongroupboy,girl按鈕多斥作用域buttongroupgroup按鈕jbuttonquert print面板(查詢結果之后)jpanelmesspanel(2)方法見表2-4表2-4 主要方法方法名稱返回類型功能備注querystudent無類型創(chuàng)建錄入學生信息界面構造方法actionperformed無類型處理響應事件繼承自父類抽象方法clearmess無類型清除文本框內容無(3)源代碼見文件querystudent.ja
12、va2.7類deletestudent(1)成員變量見表2-5表2-5 主要成員變量成員變量描述變量類型名稱stubean對象類型stubeandelstu querystu文本域jtextfieldsnum sname sgrade sbirth smajor單選框buttongroupboy,girl按鈕多斥作用域buttongroupgroup按鈕jbuttondel(2)方法見表2-4表2-4 主要方法方法名稱返回類型功能備注inputstudent無類型創(chuàng)建錄入學生信息界面構造方法actionperformed無類型處理響應事件繼承自父類抽象方法clearmess無類型清除文本框內容
13、無(3)源代碼見文件deletestudent.java工作總結通過這次課程設計,我鍛煉了自己的動手能力,鞏固了對面向對象程序設計概念的理解和java的運用,初步掌握java開發(fā)應用程序的基本方法,學習了對數(shù)據(jù)庫的基本操作,能夠對microsoft acess的表做基本處理,提高了自己綜合運用所學知識的能力。深刻認識到了基本知識的重要性?,F(xiàn)在我知道了,不知道函數(shù)怎么來的,根本什么也做不了。除非照抄別人的代碼,那樣也根本不可能知道功能是如何實現(xiàn)的?,F(xiàn)在很有必要加強基本語法知識的學習了。java應用性很強,只有老師的講解不行,只看也不中,只有自己動手去做才會發(fā)現(xiàn)自己確實有太多的不足,許多程序看似簡
14、單,真正去做才知道知識并沒有自己想象的那樣扎實。從而懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。其中對java圖像用戶界面、java數(shù)據(jù)庫jdbc的運用、內部匿名類等java知識有了更深的理解與應用。樹立了對自己工作能力的信心,相信會對今后的學習工作生活有非常重要的影響。而且大大提高了動手的能力,使我充分體會到了在創(chuàng)造過程中探索的艱難和成功時的喜悅。提高了學習計算機的興趣,增強了信心。在本次課程設計中,我遇到了很多的困難,這些困難搞得我焦頭爛額,幾度試圖放棄,
15、但最終堅持著一一把困難克服掉了。每當克服一個困難,都非常的興奮,這些都是自己努力的結果。現(xiàn)在,我有信心面對接下來的挑戰(zhàn),在不斷的實踐中鍛煉自己,提高自己!經過幾個星期的設計和開發(fā),系統(tǒng)基本開發(fā)完畢。在本次課程設計中困難遇到不少,比如數(shù)據(jù)庫的連接,sql語言的書寫格式,全局參數(shù)的傳遞等。由于設計時間較短,所以該系統(tǒng)還有許多不盡如人意的地方,比如用戶界面不夠美觀,功能不夠完善等多方面問題。在這次系統(tǒng)開發(fā)的過程中,我深深體會到了做一個系統(tǒng),首先進行需求分析的重要性,了解了一個系統(tǒng)的制作,從功能分析到功能模塊分析、與其他系統(tǒng)的關系,再到數(shù)據(jù)庫設計、數(shù)據(jù)庫結構實現(xiàn)及各功能模塊的創(chuàng)建都需要從整體上考慮設計
16、。這些都有待以后進一步改進?;仡櫰鸫舜蝚ava課程設計,我仍感慨頗多,學到了很多的東西。同時不僅鞏固了以前所學過的知識,而且還學到了很多在書本上所沒有學到過的知識。在實際設計中才發(fā)現(xiàn),書本上理論性的東西與在實際運用中的還是有一定的出入的,所以有些問題不但要深入地理解,而且要不斷地更正以前的錯誤思維。一切問題必須要靠自己一點一滴的解決,而在解決的過程當中你會發(fā)現(xiàn)自己在飛速的提升。參考文獻1 耿祥義,張躍平.java 2實用教程(第三版)m.北京:清華大學出版社,20062 (美)霍斯特曼(horstmannc.s.)&nbs. java2核心技術(卷高級特性原書第7版)/sun公司核心技術叢書
17、m.機械工業(yè)出版社, 20064. 系統(tǒng)的主要源代碼mainwindow.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;public class mainwindow extends jframe implements actionlistener inputstudent ins;modifystudent mos;querystudent qus;deletestudent des;/ 建立菜單欄jmenubar bar;/ 建立“系統(tǒng)管理”菜單組jmenu menus
18、ystem;jmenuitem itemexit;jmenuitem itemwel;/ 建立“學生管理”菜單組jmenu menustu;jmenuitem itemsearch;jmenuitem itemadd;jmenuitem itemedit;jmenuitem itemdelete;file file = null;cardlayout card;jlabel label = null;jpanel pcenter;public mainwindow() / 事件處理public void actionperformed(actionevent e) /返回歡迎界面if(e.ge
19、tsource() = itemwel)int ok = joptionpane.showconfirmdialog(this, 確認返回嗎?, 確認對話框,joptionpane.yes_no_option);if (ok = joptionpane.yes_option)card.show(pcenter,歡迎界面);/退出else if (e.getsource() = itemexit) int n = joptionpane.showconfirmdialog(this, 確認退出嗎?, 確認對話框,joptionpane.yes_no_option);if (n = joption
20、pane.yes_option)system.exit(0); /錄入else if (e.getsource() = itemadd) ins.clearmess();card.show(pcenter, 錄入界面); /修改else if (e.getsource() = itemedit) mos.clearmess();card.show(pcenter, 修改界面);/查詢else if (e.getsource() = itemsearch) qus.clearmess();card.show(pcenter,查詢界面); /刪除else if (e.getsource() = i
21、temdelete) card.show(pcenter, 刪除界面);public static void main(string args) new mainwindow(); database.javaimport java.sql.*;/連接數(shù)據(jù)庫的類public class database private statement stmt=null;resultset rs=null;private connection conn=null;string sql;string strurl=jdbc:odbc:scmanage;public database() /打開數(shù)據(jù)庫連接pub
22、lic void openconn()throws exceptiontryclass.forname(sun.jdbc.odbc.jdbcodbcdriver); conn=drivermanager.getconnection(strurl);catch(exception e) system.err.println(openconn:+e.getmessage();/執(zhí)行sql查詢語句,返回結果集rspublic resultset executequery(string sql)/執(zhí)行sql更新語句 public void executeupdate(string sql)stmt=n
23、ull;rs=null;trystmt=conn.createstatement(resultset.type_scroll_insensitive,resultset.concur_read_only);stmt.executequery(sql);mit();catch(sqlexception e)system.err.println(executeupdate:+e.getmessage(); public void closestmt()trystmt.close();catch(sqlexception e)system.err.println(closestmt:+e.getme
24、ssage(); /關閉數(shù)據(jù)庫連接public void closeconn()tryconn.close();catch(sqlexception ex)system.err.println(aq.closeconn:+ex.getmessage();/轉換編碼public static string togbk(string str)try if(str=null)str = ;elsestr=new string(str.getbytes(iso-8859-1),gbk); catch (exception e) system.out.println(e);return str;stub
25、ean.javaimport java.sql.*; import javax.swing.*; /有關學生信息數(shù)據(jù)庫操作的類public class stubean string sql;resultset rs = null;string snum;string sname;string ssex;string smajor;string sgrade;string sbirth;/添加學生信息 public void stuadd(string num, string name, string sex,string major, string grade, string birth)/
26、修改學生信息 public void stumodify(string num, string name, string sex,string major, string grade, string birth)/刪除學生信息 public void studel(string num)/ 根據(jù)學號查詢學生信息 public string stusearch(string num)querystudent.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;public cl
27、ass querystudent extends jpanel implements actionlistenerprivate static final long serialversionuid = 1l;/ 查詢界面printjob pri;graphics g = null;stubean querystu = new stubean();jtextfield snum,sname,smajor,sgrade,sbirth;jradiobutton boy,girl;jbutton query,print;buttongroup group = null;jpanel messpane
28、l;public querystudent()/事件處理public void actionperformed(actionevent e) public void clearmess()snum.settext(null);sname.settext(null);smajor.settext(null);sgrade.settext(null);sbirth.settext(null);modifystudent.javaimport java.awt.*;import java.io.*;import javax.swing.*;public class modifystudent ext
29、ends jpanel implements actionlistenerprivate static final long serialversionuid = 1l;/修改界面stubean modstu = new stubean();stubean querystu = new stubean();jtextfield snum,sname,sgrade,sbirth;jcombobox smajor;jradiobutton boy,girl;buttongroup group = null;jbutton start,entry,reset;jcombobox oldmess;pu
30、blic modifystudent()public void actionperformed(actionevent e) string number = snum.gettext();string rs = new string4;rs = querystu.stusearch(number);if(e.getsource() = start|e.getsource() = snum)oldmess.removeallitems();if(rs != null)string q = 該生信息已存在,您想修改他(她)的基本信息嗎?joptionpane.showmessagedialog(t
31、his,q,警告 ,joptionpane.question_message);entry.setenabled(true);oldmess.additem(姓名:+rs0);oldmess.additem(專業(yè):+rs2);oldmess.additem(年級:+rs3);oldmess.additem(生日:+rs4); if(rs1.equals(男) boy.setselected(true); else girl.setselected(true);elseentry.setenabled(false);joptionpane.showmessagedialog(this,該學號不存
32、在無法修改!,警告, joptionpane.warning_message);clearmess();else if(e.getsource() = entry)if(rs != null)string m = 基本信息將被修改!;int ok = joptionpane.showconfirmdialog(this,m,確認,joptionpane.yes_no_option,joptionpane.question_message);if(ok = joptionpane.yes_option)string name = sname.gettext();string major = (s
33、tring)smajor.getselecteditem();string grade = sgrade.gettext();string birth = sbirth.gettext();string sex = null;if(boy.isselected()sex = boy.gettext();if(girl.isselected()sex = girl.gettext();modstu.stumodify(number, name, sex, major, grade, birth);else if(ok = joptionpane.no_option)entry.setenable
34、d(true);elsestring w = 該學號沒有基本信息,不能修改!;joptionpane.showmessagedialog(this, w, 警告,joptionpane.warning_message);entry.setenabled(false);clearmess();else if(e.getsource() = reset)clearmess();entry.setenabled(false);public void clearmess()snum.settext(null);sname.settext(null);sgrade.settext(null);sbirt
35、h.settext(null);oldmess.removeallitems();inputstudent.javaimport java.awt.*; import java.awt.event.*;import javax.swing.*; import java.io.*;public class inputstudent extends jpanel implements actionlistenerprivate static final long serialversionuid = 1l; /錄入界面stubean addstu = new stubean();stubean q
36、uerystu = new stubean();/設置“錄入界面”窗口jtextfield snum,sname,sgrade,sbirth;jcombobox smajor;jradiobutton boy,girl;buttongroup group = null;jbutton entry,reset;public inputstudent()/事件處理public void actionperformed(actionevent e) public void clearmess()snum.settext(null);sname.settext(null);sgrade.settext
37、(null);sbirth.settext(null); (#)querystudent.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*; import java.util.*;public class querystudent extends jpanel implements actionlistenerprivate static final long serialversionuid = 1l;/ 查詢界面printjob pri; graphics g = null;stubean querystu
38、 = new stubean();jtextfield snum,sname,smajor,sgrade,sbirth;jradiobutton boy,girl;jbutton query,print;buttongroup group = null;jpanel messpanel;public querystudent()/事件處理public void actionperformed(actionevent e) public void clearmess()snum.settext(null);sname.settext(null);smajor.settext(null);sgra
39、de.settext(null);sbirth.settext(null);deletestudent.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class deletestudent extends jpanel implements actionlistenerprivate static final long serialversionuid = 1l;/刪除界面stubean querystu = new stubean();stubean delstu = new stubean
40、();jtextfield snum,sname,smajor,sgrade,sbirth;jradiobutton boy,girl;jbutton del;buttongroup group = null;public deletestudent()/處理事件public void actionperformed(actionevent e) if(e.getsource() = del|e.getsource() = snum)string number = ;number = snum.gettext();string rs = new string4;rs = querystu.st
41、usearch(number);if(rs != null)string q = 該生信息已存在,您想刪除該生的基本信息嗎?;int yes = joptionpane.showconfirmdialog(this,q,確認,joptionpane.yes_no_option,joptionpane.question_message);if(yes = joptionpane.yes_option)sname.settext(rs0); smajor.settext(rs2);sgrade.settext(rs3); sbirth.settext(rs4);if(rs1.equals(男)boy.setselected(true);else girl.setselected(true);string m = 確定要刪除該學號及全部信息嗎?;int ok = joptionpane.showconfirmdialog(this,m, 確認,joptionpane.yes_no_option,joptionpane.question_message);if(ok = joptionpane.yes_option
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025浙江溫州市瑞安市機關后勤服務中心招聘編外駕駛員1人筆試模擬試題及答案解析
- 銀行消防演練領導講話稿范文(5篇)
- 資助學生的感謝信
- 酒店服裝創(chuàng)業(yè)分享
- 微格教學工作總結
- 述職報告經典案例
- 中國與南亞文明交流互鑒知到課后答案智慧樹章節(jié)測試答案2025年春云南大學
- 小學數(shù)學100以內加減法計算題練習
- 人教寧夏 九年級 下冊 語文 第六單元《 曹劌論戰(zhàn)》習題課 課件
- 艾灸治療慢性胃炎
- 2023年漢字聽寫大會漢字聽寫知識競賽題庫及答案
- 2023年遼寧省生物學競賽初賽試卷及答案
- 安全生產培訓一月課件
- 足球腳內側傳球 課件
- 頸椎病-頸椎的解剖課件
- 甲亢的中醫(yī)辨證施治
- 內蒙古自治區(qū)義務教育課程設置計劃
- 醫(yī)療機構病歷管理規(guī)定()
- 統(tǒng)編教材二年級下冊“寫話”編排特色解析
- 100MW光伏電站概算清單(模板)
- 針灸入門一夜通
評論
0/150
提交評論