JAVA課程設(shè)計(jì)學(xué)籍管理系統(tǒng)1



《JAVA課程設(shè)計(jì)學(xué)籍管理系統(tǒng)1》由會(huì)員分享,可在線閱讀,更多相關(guān)《JAVA課程設(shè)計(jì)學(xué)籍管理系統(tǒng)1(28頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、課程設(shè)計(jì)報(bào)告 課程設(shè)計(jì)(論文)任務(wù)書 軟件 學(xué) 院 軟件+信息 ?! I(yè) 1班 班 一、課程設(shè)計(jì)(論文)題目 學(xué)籍管理系統(tǒng) 二、課程設(shè)計(jì)(論文)工作自 10 年 12 月 20 日起至 10 年 12 月 24 日止。 三、課程設(shè)計(jì)(論文) 地點(diǎn): 軟件學(xué)院實(shí)訓(xùn)中心 四、課程設(shè)計(jì)(論文)內(nèi)容要求: 1.本課程設(shè)計(jì)的目的 (1)使學(xué)生鞏固和提高Java編程技術(shù)
2、 (2)培養(yǎng)學(xué)生掌握程序設(shè)計(jì)的基本思路和方法; (3)加強(qiáng)學(xué)生研發(fā)、調(diào)試程序的能力; (4)培養(yǎng)學(xué)生分析、解決問題的能力; (5)提高學(xué)生的科技論文寫作能力。 2.課程設(shè)計(jì)的任務(wù)及要求 1)任務(wù):?? (1)錄入學(xué)生基本信息的功能; (2)修改學(xué)生基本信息的功能 (3)查詢學(xué)生基本信息的功能 (4)刪除學(xué)生基本信息的功能 2)創(chuàng)新要求: (5)顯示所有學(xué)生基本信息的功能 (6)在用戶進(jìn)行相應(yīng)操作時(shí)應(yīng)彈出提示對(duì)話框 (7)采用數(shù)據(jù)庫存儲(chǔ)學(xué)生基本信息 3)課程設(shè)計(jì)論文編寫要求 (1)課程設(shè)計(jì)任務(wù)及要求 (2)設(shè)計(jì)思路--工作原理、功能規(guī)劃 (3)
3、詳細(xì)設(shè)計(jì)---數(shù)據(jù)分析、算法思路、類設(shè)計(jì)、功能實(shí)現(xiàn)(含程序流程圖、主要代碼及注釋)、界面等。 (4)運(yùn)行調(diào)試與分析討論---給出運(yùn)行屏幕截圖,分析運(yùn)行結(jié)果,有何改進(jìn)想法等。 (5)設(shè)計(jì)體會(huì)與小結(jié)---設(shè)計(jì)遇到的問題及解決辦法,通過設(shè)計(jì)學(xué)到了哪些新知識(shí),鞏固了哪些知識(shí),有哪些提高。 (6)參考文獻(xiàn)(必須按標(biāo)準(zhǔn)格式列出,可參考教材后面的參考文獻(xiàn)格式) (7) 報(bào)告按規(guī)定排版打印,要求裝訂平整,否則要求返工; (8) 課設(shè)報(bào)告的裝訂順序如下:封面---任務(wù)書---中文摘要---目錄----正文---附錄(代碼及相關(guān)圖片) (9)嚴(yán)禁抄襲,如有發(fā)現(xiàn),按不及格處理。 4)答辯與評(píng)分標(biāo)準(zhǔn):
4、 (1)考勤:10分; (2)程序檢查:30分; (3)課設(shè)答辯:20分 (3)課程設(shè)計(jì)報(bào)告:40分; 5)參考文獻(xiàn): (1)丁振凡《Java語言使用教程》 北京郵電大學(xué)出版社 (2)張 .《 》 某出版社 (3) 6)課程設(shè)計(jì)進(jìn)度安排 內(nèi)容 天數(shù) 地點(diǎn) 構(gòu)思及收集資料 7 圖書館 編碼與調(diào)試 5 實(shí)驗(yàn)室 撰寫論文 3 圖書館、實(shí)驗(yàn)室 學(xué)生簽名: 10年 12月
5、 20 日 課程設(shè)計(jì)(論文)評(píng)審意見 (1)考勤(10分):優(yōu)(?。⒘迹ā。?、中(?。?、一般( )、差( ); (2)程序檢查(30分):優(yōu)(?。?、良(?。⒅校ā。⒁话悖ā。?、差(?。? (3)課設(shè)答辯(20分):優(yōu)(?。⒘迹ā。⒅校ā。⒁话悖ā。⒉睿ā。?; (4)課設(shè)報(bào)告(40分):優(yōu)(?。⒘迹ā。?、中(?。?、一般(?。?、差(?。?; 評(píng)閱人: 職稱: 講師 10 年 01 月 25 日 中文摘要 本程序用于用戶對(duì)少量學(xué)生信息進(jìn)行簡單的管理,本程序針對(duì)于對(duì)安全系數(shù)要求不高,炒作不是很復(fù)雜的小型客戶開發(fā),
6、如本程序不符合您的要求,請(qǐng)選擇其他大型程序。 本程序可以實(shí)現(xiàn)對(duì)學(xué)生信息的錄入、查詢、修改、刪除等操作,同時(shí)支持查看所有學(xué)生信息,功能完善,界面簡潔美觀,布局合理,操作簡便,簡單易用,任何人可輕松操作。 同時(shí),本程序?qū)ο到y(tǒng)要求配置較低,運(yùn)行速度快,而卻對(duì)數(shù)據(jù)庫管理要求較低。本程序數(shù)據(jù)庫采用office2007版本的access數(shù)據(jù)庫(.accdb)進(jìn)行數(shù)據(jù)存儲(chǔ),該數(shù)據(jù)庫可實(shí)現(xiàn)關(guān)系較為簡單的數(shù)據(jù)管理。如有需要,請(qǐng)與XXX公司聯(lián)系。 本程序版本為0.9公測版,使用完全免費(fèi),未經(jīng)允許,禁止用于商業(yè)用途,歡迎用戶使用,如在使用中出現(xiàn)問題,請(qǐng)及時(shí)將問題反饋給我們,一邊為您提供質(zhì)量更優(yōu)秀的軟件,我們?cè)?/p>
7、次深表感謝! 目 錄 一、課設(shè)任務(wù)及要求 1 二、需求分析 2 三、設(shè)計(jì)思路 3 四、詳細(xì)設(shè)計(jì) 4 五、運(yùn)行調(diào)試與分析討論 19 六、設(shè)計(jì)體會(huì)與小結(jié) 22 七、參考文獻(xiàn) 23 一、課設(shè)任務(wù)及要求 題目 學(xué)籍管理系統(tǒng) 設(shè)計(jì)內(nèi)容 設(shè)計(jì)基于access數(shù)據(jù)庫的學(xué)籍管理系統(tǒng)。 學(xué)生基本信息應(yīng)包括對(duì)學(xué)生的相關(guān)屬性進(jìn)行操作,如學(xué)號(hào)、姓名、性別、專業(yè)、年級(jí)、生日等信息,另外添加備注一欄存儲(chǔ)學(xué)生的附加信息。用戶可對(duì)學(xué)生基本信息進(jìn)行錄入、查詢、修改、刪除、顯示所有學(xué)生信息等基本操作。 學(xué)生基本信息包括多項(xiàng)屬性,關(guān)系較為復(fù)雜,應(yīng)
8、采用數(shù)據(jù)庫存儲(chǔ)學(xué)生基本信息,這樣各種信息之間的關(guān)系、區(qū)別以及聯(lián)系可以更好的存儲(chǔ)起來。 設(shè)計(jì)要求 1錄入學(xué)生基本信息的功能 1.1 用戶按照要求輸入信息進(jìn)行注冊(cè),成功之后要提示用戶注冊(cè)成功。 1.2 當(dāng)用戶注冊(cè)是輸入不當(dāng),如學(xué)號(hào)已存在,應(yīng)提示用戶學(xué)號(hào)已存在,并重新輸入。 2查詢學(xué)生基本信息的功能 2.1 用戶可通過學(xué)號(hào)查詢數(shù)據(jù)庫中學(xué)生的基本信息,并將該學(xué) 號(hào)的學(xué)生基本信息顯示在查詢窗口里。 2.2 當(dāng)用戶輸入有不當(dāng),如輸入學(xué)號(hào)不存在,應(yīng)提示用戶輸入的學(xué)號(hào)有誤,并重新輸入。 2.3 用戶不能對(duì)查詢窗口中顯示的學(xué)生基本信息進(jìn)行編輯。 3修改學(xué)生基本信息的功能 3.1 用戶可通過
9、學(xué)號(hào)在數(shù)據(jù)庫中搜索需要修改的學(xué)生的基本信息,并將該學(xué)號(hào)的學(xué)生基本信息顯示在修改窗口里。 3.2 用戶可通過各行的修改按鈕來改變學(xué)生信息的狀態(tài),并對(duì)學(xué)生基本信息進(jìn)行修改。 3.3 用戶輸入新的學(xué)生信息后可將修改后的學(xué)生信息上傳至數(shù)據(jù)庫中。 4刪除學(xué)生基本信息的功能 4.1 用戶可通過學(xué)號(hào)在數(shù)據(jù)庫中搜索需要?jiǎng)h除的學(xué)生的基本信息,并將該學(xué)號(hào)的學(xué)生基本信息顯示在刪除窗口里。 4.2 用戶可將需要?jiǎng)h除的學(xué)生信息從數(shù)據(jù)庫中刪除。 4.3 當(dāng)用戶刪除成功之后應(yīng)提示用處該學(xué)號(hào)的同學(xué)已從數(shù)據(jù)庫中刪除。 5顯示所有學(xué)生基本信息的功能 5.1 可在窗口中顯示所有數(shù)據(jù)庫中的學(xué)生信息。 5.2 學(xué)生信
10、息要按一定規(guī)則有序的顯示。 二、需求分析 系統(tǒng)目標(biāo): 軟件開發(fā)的意圖便于用戶對(duì)學(xué)生的管理,方便查看學(xué)生的情況。如用戶對(duì)學(xué)生基本信息進(jìn)行錄入、查詢、修改、刪除等。 使用范圍: 本系統(tǒng)僅針對(duì)用戶對(duì)少量學(xué)生進(jìn)行學(xué)籍管理。 功能要求: 1錄入學(xué)生基本信息的功能 2 查詢學(xué)生基本信息的功能 3修改學(xué)生基本信息的功能 4刪除學(xué)生基本信息的功能 5顯示所有學(xué)生信息的功能 信息采集與使用權(quán)限: 使用時(shí)由用戶錄入學(xué)生信息,安裝本系統(tǒng)的用戶皆可使用此軟件。 性能需求: 1、 程序運(yùn)行流暢 程序占用內(nèi)存小,可在大多數(shù)電腦上流暢運(yùn)行。 2、 數(shù)據(jù)的完整性,準(zhǔn)確性 錄入按
11、格式錄入,同時(shí)只能錄入一名學(xué)生的基本信息。 輸出按格式輸出,輸出所有學(xué)生信息是要采用表格形式。 3、 界面適當(dāng)美觀,優(yōu)雅,通用性較強(qiáng) 三、設(shè)計(jì)思路 界面構(gòu)建: 1、為了便于各種操作,軟件采用多窗口的模式。用戶可在不同窗口進(jìn)行相應(yīng)操作(錄入、查詢、修改、刪除、顯示所有學(xué)生省信息)。 2、主窗口是用戶進(jìn)行各種操作的平臺(tái),具體操作在各個(gè)獨(dú)立功能窗口中完成。 3、主窗口的主要功能位于菜單中,菜單為進(jìn)入各個(gè)功能窗口的唯一通道。 4、各功能窗口(除顯示所有學(xué)生信息窗口)均由兩到三個(gè)模塊構(gòu)成。第一個(gè)模塊中主要包含學(xué)號(hào)以及相關(guān)操作的組件。第二個(gè)模塊由姓名、性別、專業(yè)、年級(jí)、生日等相關(guān)
12、組件構(gòu)成。第三個(gè)模塊(錄入、修改、刪除窗口中包含)由相關(guān)操作的功能按鈕組件構(gòu)成。 5、當(dāng)用戶在進(jìn)行個(gè)別錄入、刪除或錯(cuò)誤輸入操作時(shí),會(huì)彈出相應(yīng)對(duì)話框提示用戶。如當(dāng)錄入成功或刪除成功,彈出成功以及相應(yīng)的簡明信息提示當(dāng),當(dāng)錄入、刪除失敗以及輸入不當(dāng)是,彈出錯(cuò)誤以及簡單的錯(cuò)誤原因提示用戶重新操作。 6、界面布局盡量合理,各組件位置分布均勻美觀。 數(shù)據(jù)存儲(chǔ) 1、由于學(xué)生包含多項(xiàng)屬性,需對(duì)學(xué)生屬性進(jìn)行錄入、修改、刪除等多項(xiàng)操作,操作過程較為復(fù)雜,故采用數(shù)據(jù)庫。本軟件針對(duì)小型用戶使用,故使用入門級(jí)的access數(shù)據(jù)庫。 2、由于存儲(chǔ)少量信息,數(shù)據(jù)庫中只包含一個(gè)表,表中有學(xué)號(hào)、姓名、性別
13、、專業(yè)、年級(jí)、生日等關(guān)鍵字。 3、數(shù)據(jù)庫在用完之后即使關(guān)閉。 四、詳細(xì)設(shè)計(jì) 1、程序主體概述: import java.awt.*; import java.awt.event.*; import java.sql.*; 程序采用AWT包的相關(guān)組件設(shè)計(jì),故包含awt包; 通過各種動(dòng)作完成相關(guān)操作,故包含awt.event包; 學(xué)生信息用數(shù)據(jù)庫存儲(chǔ),故包含sql包; public class StudentManageSystem extends Frame implements WindowListener,ActionListener{。 。 。} StudentMa
14、nageSystem為主類,通過繼承類Frame以及借口,分別實(shí)現(xiàn)主窗口創(chuàng)建功能,動(dòng)作、窗口都做監(jiān)聽的功能。 2、窗口監(jiān)聽: windowClosingwei()為實(shí)現(xiàn)各窗口關(guān)閉的方法。 public void windowClosing(WindowEvent e){ try{ Frame frm=(Frame)(e.getSource()); if(e.getSource()==this){ try{ stmt.close(); con.close(); } catc
15、h(Exception ex){ System.out.println(ex.getMessage()); } System.exit(0); } else{ frm.dispose(); } }catch(Exception ex){ Dialog dig=(Dialog)(e.getSource()); dig.dispose(); } } 文件中出現(xiàn)的窗體有兩種—Frame和Dialog。關(guān)閉方法采用異常處理機(jī)制,非異常情況需要關(guān)閉
16、的窗口是Frame,如果需要關(guān)閉的窗體是Dialog,則進(jìn)入異常處理機(jī)制。當(dāng)關(guān)閉Frame時(shí)先判斷是否為主窗體,主窗體則關(guān)閉所有窗體并退出窗體,同時(shí)與數(shù)據(jù)庫斷開,當(dāng)需要關(guān)閉的窗體為功能窗體時(shí),只關(guān)閉該功能窗體。 3、公共組件: Panel zt;//歡迎窗體中的重要容器 MenuBar mt;//主菜單 Frame zf;//功能窗體加載的平臺(tái) Panel stuinf;//功能窗體中學(xué)生信息家在的容器 Font font1; Label number,name,sex,profession,grade,birthday;//屬性標(biāo)簽 TextField numb
17、ers,names,professions,grades,birthdays;//屬性文本域 CheckboxGroup style=new CheckboxGroup();//性別 Checkbox f,m; String url="jdbc:odbc:學(xué)生管理系統(tǒng)";//數(shù)據(jù)庫連接 String sql="SELECT *FROM 學(xué)生信息"; Connection con; Statement stmt; ResultSet rs; Dialog wrongd;//錯(cuò)誤對(duì)話框 Dialog confirmd;//成功對(duì)話框 String num0=
18、""; 4、構(gòu)造函數(shù)—主窗體: public StudentManageSystem1(){ super("學(xué)籍管理系統(tǒng)"); this.setVisible(true); 。。。 mt=new MenuBar(); Menu menu=new Menu("菜單"); MenuItem ininformation=new MenuItem("錄入學(xué)生信息"); menu.add(ininformation); ininformation.addActionListener(this);
19、 。。。 mt.add(menu); setMenuBar(mt); zt=new Panel(); zt.add(new Label("\n"+"歡迎登陸學(xué)生管理系統(tǒng)")); this.add(zt); numbers=new TextField(20); 。。。 number=new Label("學(xué)好"); 。。。 m=new Checkbox("男",true,style); f=new Checkbox("女",false,style); try{ Class.f
20、orName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(java.lang.ClassNotFoundException e){ System.err.println(e.getMessage()); } try{ con=DriverManager.getConnection(url, "", null); stmt=con.createStatement(); rs=stmt.executeQuery(sql); System.out.println("連接
21、成功"); } catch(SQLException ex){ System.out.println("Message"+ex.getMessage()); } } 通過構(gòu)造函數(shù),加載主窗體(包括家在菜單以及歡迎界面),對(duì)主窗體設(shè)置大小,添加動(dòng)作監(jiān)聽器以及窗口監(jiān)聽器,初始化部分程序用到的公共組件(學(xué)生學(xué)號(hào)、姓名、性別、專業(yè)、年級(jí)、生日等相關(guān)組件),以及連接數(shù)據(jù)庫。 5、學(xué)生信息加載方法: public Panel lodeinf(Panel stuinf){ 。。。 } 該方法用于加載功能窗體中學(xué)生信息
22、顯示組件的加載,包括學(xué)號(hào)、姓名、性別、專業(yè)、年級(jí)、生日的標(biāo)簽以及文本域組件。 6、錄入學(xué)生信息窗體 public void registzf(String s){ stuinf=new Panel(); zf=new Frame(s); zf.doLayout(); zf.setLayout(new BorderLayout()); Panel ps=new Panel(); Label l=new Label("學(xué)號(hào)"); ps.setLayout(null); 。。。 l.setBounds(50, 5, 30
23、, 20); numbers.setBounds(100, 5, 220, 20); Panel px=new Panel(); px.setLayout(null); px.setBounds(0, 0, 0, 40); Button sureb,cancelb; sureb=new Button("錄入"); cancelb=new Button("取消"); sureb.setBounds(150, 5, 40, 30); cancelb.setBounds(200, 5, 40, 30); px.setBackgro
24、und(Color.LIGHT_GRAY); px.add(sureb); px.add(cancelb); sureb.addActionListener(this); cancelb.addActionListener(this); zf.setVisible(true); 。。。 zf.addWindowListener(this); } 錄入窗體包含三個(gè)模塊。 通過容器ps加載學(xué)號(hào)的相關(guān)組件,成為第一模塊。 注冊(cè)窗體調(diào)用lodeinf(Panel stuinf)加載學(xué)生信息主體組件進(jìn)行加載,成為第二模塊。 通過容器px加載錄入
25、,取消按鈕,來實(shí)現(xiàn)成績錄入以及推出該窗體,成為第三模塊。 7、查詢學(xué)生信息窗體 public void inquirezf(String s){ stuinf=new Panel(); zf=new Frame(s); 。。。 Panel ps=new Panel(); Label l=new Label("請(qǐng)輸入要查詢的學(xué)號(hào):"); Button b=new Button("查詢"); b.addActionListener(this); ps.setLayout(null); ps.setBounds(0, 0, 10
26、0, 30); ps.setBackground(Color.LIGHT_GRAY); ps.add(l); 。。。 l.setBounds(50, 5, 120, 20); 。。。 zf.add("North",ps); zf.add("Center",lodeinf(stuinf)); zf.addWindowListener(this); names.setEnabled(false); 。。。 } 查詢窗體包含兩個(gè)模塊。 通過容器ps加載學(xué)號(hào)的相關(guān)組件,以及查詢按鈕,成為第一模塊。 注冊(cè)窗體調(diào)用lodeinf(
27、Panel stuinf)加載學(xué)生信息主體組件進(jìn)行加載,成為第二模塊。 注意:該窗體中,用戶不能對(duì)除學(xué)號(hào)以外的信息進(jìn)行操作。 8、修改學(xué)生信息窗體 public void modifyzf(String s){ stuinf=new Panel(); zf=new Frame(s); 。。。 Panel p=new Panel(); Panel ps=new Panel(); Label l=new Label("請(qǐng)輸入要修改的學(xué)號(hào):"); Button b=new Button("搜索"); ps.setLayout(null);
28、 ps.setBounds(0, 0, 400, 60); ps.setBackground(Color.LIGHT_GRAY); ps.add(l); 。。。 l.setBounds(25, 35, 120, 20); 。。。 b.addActionListener(this); Panel px=new Panel(); px.setLayout(null); px.setBounds(0, 250, 400, 50); Button inquire,reinquire; inquire=new Button("錄入修改
29、"); reinquire=new Button("重置"); inquire.setBounds(130, 5, 60, 25); reinquire.setBounds(210, 5, 40, 25); px.add(inquire); px.add(reinquire); px.setBackground(Color.LIGHT_GRAY); inquire.addActionListener(this); reinquire.addActionListener(this); Label wl1,wl2,wl3,wl4,wl5;
30、 wl1=new Label("(新)"); 。。。 wb1=new Button("修改"); 。。。 wl1.setBackground(Color.LIGHT_GRAY); 。。。 zf.add(wl1); 。。。 zf.add(wb1); 。。。 wl1.setBounds(25, 76, 25, 20); 。。。 wb1.setBounds(330, 75, 40, 20); 。。。 wb1.addActionListener(this); 。。。 wb1.setEnabled(fals
31、e); 。。。 p=lodeinf(stuinf); p.setBounds(0,60,400,190); zf.addWindowListener(this); zf.add(ps); 。。。 names.setEnabled(false); 。。。 } 修改窗體包含三個(gè)模塊+部分輔助組件。 通過容器ps加載學(xué)號(hào)的相關(guān)組件,以及搜索按鈕,成為第一模塊。 注冊(cè)窗體調(diào)用lodeinf(Panel stuinf)加載學(xué)生信息主體組件進(jìn)行加載,成為第二模塊。 通過容器px加載錄入修改,重置按鈕,來實(shí)現(xiàn)成績錄入以及推出該窗體,成為第三模
32、塊。 還有部分顯示“新”的標(biāo)簽,以及修改的按鈕。 注意:沒有顯示學(xué)號(hào)之前其他組件均不能操作。 9、刪除學(xué)生信息窗體 public void deletezf(String s){ stuinf=new Panel(); zf=new Frame(s); 。。。 Panel ps=new Panel(); Label l=new Label("請(qǐng)輸入要?jiǎng)h除的學(xué)號(hào):"); Button b=new Button("搜索"); ps.setLayout(null); ps.setBounds(0, 0, 100, 30);
33、ps.setBackground(Color.LIGHT_GRAY); ps.add(l); 。。。 l.setBounds(50, 5, 120, 20); 。。。 b.addActionListener(this); Panel px=new Panel(); px.setLayout(null); px.setBounds(0, 0, 0, 40); Button sureb,cancelb; sureb=new Button("刪除"); cancelb=new Button("取消"); sureb.setBo
34、unds(150, 5, 40, 30); cancelb.setBounds(200, 5, 40, 30); px.setBackground(Color.LIGHT_GRAY); 。。。 sureb.addActionListener(this); cancelb.addActionListener(this); zf.add("North",ps); 。。。 zf.addWindowListener(this); names.setEnabled(false); 。。。 } 刪除窗體包含三個(gè)模塊。 通過容器ps加
35、載學(xué)號(hào)的相關(guān)組件,以及搜索按鈕,成為第一模塊。 注冊(cè)窗體調(diào)用lodeinf(Panel stuinf)加載學(xué)生信息主體組件進(jìn)行加載,成為第二模塊。 通過容器px加載刪除,取消按鈕,來實(shí)現(xiàn)成績錄入以及推出該窗體,成為第三模塊。 注意:沒有顯示學(xué)號(hào)之前其他組件均不能操作。 10、顯示所有學(xué)生信息窗體 public void allzf(String s){ String informations="學(xué)號(hào) \t姓名 \t性別 \t專業(yè) \t年級(jí) \t生日 \r\n"; TextArea text; zf=new Frame(s); 。。。
36、Font font=new Font("宋體",12,14); try{ sql="SELECT *FROM 學(xué)生信息"; rs=stmt.executeQuery(sql); while(rs.next()){ String s0=rs.getString("學(xué)號(hào)"); 。。。 informations+=s0+"\t"+s1+"\t"+s2+"\t"+s3+"\t"+s4+"\t"+s5+"\r\n"; } }catch(Exception ex){} t
37、ext=new TextArea(informations); text.setBounds(10,30,380,260); text.setFont(font); text.setBackground(Color.LIGHT_GRAY); zf.add(text); zf.addWindowListener(this); } 該窗體由一個(gè)TextArea構(gòu)成,用于顯示全部學(xué)生的年基本信息。 注意:顯示要按一定規(guī)則輸出(表格形式)。 11、動(dòng)作監(jiān)聽 public void actionPerformed(ActionEvent e){
38、 if(e.getActionCommand()=="錄入學(xué)生信息"){ { if(zf!=null){ zf.dispose(); } registzf("學(xué)生信息錄入"); } } if(e.getActionCommand()=="查詢學(xué)生信息"){。。。} if(e.getActionCommand()=="修改學(xué)生信息"){。。。} if(e.getActionCommand()=="刪除學(xué)生信息"){。。。} if(e.g
39、etActionCommand()=="所有學(xué)生信息"){。。。} if(e.getActionCommand()=="錄入"){...} if(e.getActionCommand()=="查詢"){...} if(e.getActionCommand()=="搜索"){...} if(e.getActionCommand()=="修改"){ numbers.setText(num0); if(e.getSource()==wb1) names.setEnabled(true); 。。。
40、 } if(e.getActionCommand()=="錄入修改"){。。。} if(e.getActionCommand()=="重置"){ 。。 try{ sql="SELECT *FROM 學(xué)生信息"; rs=stmt.executeQuery(sql); while(rs.next()){ String s0=rs.getString("學(xué)號(hào)"); 。。。 if(num0.equals(s0)){ n
41、ames.setText(s1); if(s2.equals("男")) m.setState(true); 。。。 } } }catch(Exception ex){ System.out.println(ex.getMessage()); } } if(e.getActionCommand()=="刪除"){ ... } if(e.getActionCommand()=="取消"){
42、 zf.dispose(); } if(e.getActionCommand()=="退出"){ System.exit(0); } if(e.getActionCommand()=="確定"){ try{ confirmd.dispose(); }catch(Exception ex){} try{ wrongd.dispose(); }catch(Exception ex){} } } 11、1 進(jìn)入錄入、查詢
43、、修改、刪除、顯示所有信息窗口 if(e.getActionCommand()=="錄入學(xué)生信息"){。。。} if(e.getActionCommand()=="查詢學(xué)生信息"){。。。} if(e.getActionCommand()=="修改學(xué)生信息"){。。。} if(e.getActionCommand()=="刪除學(xué)生信息"){。。。} if(e.getActionCommand()=="所有學(xué)生信息"){。。。} 11、2 錄入 if(e.getActionCommand()=="錄入"){ String nu
44、m0=""; String s0=numbers.getText(); 。。。 if(m.getState()) s2="男"; if(f.getState()) s2="女"; int count=0; try{ sql="SELECT *FROM 學(xué)生信息"; rs=stmt.executeQuery(sql); while(rs.next()){ num0=rs.getString("學(xué)號(hào)"); if(num0.equals(s0)
45、){ count++; } } if(count==0){ sql="insert into 學(xué)生信息(學(xué)號(hào),姓名,性別,專業(yè),年級(jí),生日,備注) values('"+s0+"','"+s1+"','"+s2+"','"+s3+"','"+s4+"','"+s5+"','"+""+"')"; stmt.executeUpdate(sql); confirmd=new Dialog(zf,"恭喜你!"); confirmd.setVisible(true);
46、 confirmd.setModal(true); confirmd.setSize(300, 100); confirmd.setBounds(20, 100, 220, 100); confirmd.addWindowListener(this); Label confirml=new Label("注冊(cè)成功!\n學(xué)號(hào):"+s0+"\n姓名:"+s1+"\n性別:"+s2+"\n專業(yè):"+s3+"\n年級(jí):"+s4+"\n生日:"+s5+""); Button confirmb=new But
47、ton("確定"); confirmb.addActionListener(this); confirmd.setLayout(new FlowLayout()); confirmd.add("North",confirml); confirmd.add("Center",confirmb); confirmd.pack(); } else{ wrongd=new Dialog(zf,"錯(cuò)誤"); 。。。 }
48、 }catch(Exception ex){ System.out.println(ex.getMessage()); } } 錄入之前先檢查該學(xué)號(hào)是否存在,如果存在,彈出錯(cuò)誤對(duì)話框,提示重新輸入,如果錄入成功,彈出成功窗口。 11、3 查詢/搜索 if(e.getActionCommand()=="查詢"){ num0=numbers.getText(); int count=0; try{ sql="SELECT *FROM 學(xué)生信息"; rs=stmt.e
49、xecuteQuery(sql); while(rs.next()){ String s0=rs.getString("學(xué)號(hào)"); 。。。 if(num0.equals(s0)){ names.setText(s1); if(s2.equals("男")) m.setState(true); 。。。 count++; } } if(count==0){ wr
50、ongd=new Dialog(zf,"錯(cuò)誤"); 。。。 Label wrongl=new Label("您輸入的學(xué)號(hào)"+num0+"不存在,請(qǐng)重新輸入!"); 。。。 numbers.setText(""); } }catch(Exception ex){ System.out.println(ex.getMessage()); } } 查詢?cè)搶W(xué)號(hào)是否存在,如果不存在,彈出錯(cuò)誤對(duì)話框,提示重新輸入,如果存在,在查詢窗體中顯示該學(xué)生信息。 11
51、、4 修改 if(e.getActionCommand()=="錄入修改"){ numbers.setText(num0); String s0=num0; String s1=names.getText(); 。。。 if(m.getState()) s2="男"; 。。。 System.out.println(s0+s1+s2+s3+s4+s5); try{ sql="update 學(xué)生信息 set 姓名 = '"+s1+"' where 學(xué)號(hào) ="+"'"+s0+"'";
52、 stmt.executeUpdate(sql); sql="update 學(xué)生信息 set 性別 = '"+s2+"' where 學(xué)號(hào) ="+"'"+s0+"'"; 。。。 confirmd=new Dialog(zf,"恭喜你!"); 。。。 names.setText(""); 。。。 } catch(Exception ex){ System.out.println(ex.getMessage()); } } 錄入修改后該學(xué)生的信息,如果
53、錄入成功,彈出成功窗口。 11、5刪除 if(e.getActionCommand()=="刪除"){ numbers.setText(num0); 。。。 try{ sql="SELECT *FROM 學(xué)生信息"; rs=stmt.executeQuery(sql); while(rs.next()){ String s0=rs.getString("學(xué)號(hào)"); if(num0.equals(s0)){ sql="delete * fro
54、m 學(xué)生信息 where 學(xué)號(hào) = '"+num0+"'"; stmt.executeUpdate(sql); confirmd=new Dialog(zf,"成功了!"); 。。。 } } }catch(Exception ex){ System.out.println(ex.getMessage()); } } if(e.getActionCommand()=="取消"){ zf.dispose(); }
55、 if(e.getActionCommand()=="退出"){ System.exit(0); } if(e.getActionCommand()=="確定"){ try{ confirmd.dispose(); }catch(Exception ex){} try{ wrongd.dispose(); }catch(Exception ex){} } } 刪除選定學(xué)生的信息,如果刪除成功,彈出成功刪除窗口。 五、運(yùn)行調(diào)試與分析討論
56、 第 21 頁 六、設(shè)計(jì)體會(huì)與小結(jié) 做課設(shè)讓我對(duì)java有了新的認(rèn)識(shí),首先我接觸了很多上課見過見過但沒有實(shí)際用過的類和方法,讓我對(duì)編程有了許多新的思想。 大一學(xué)了C與C++,雖然當(dāng)時(shí)學(xué)的還不錯(cuò),由于學(xué)的都是入門知識(shí),所以自己做的都是DOS下執(zhí)行的程序,雖然可以實(shí)現(xiàn)一定的功能,但和自己平時(shí)用的軟件相差很大。這學(xué)期剛開課學(xué)java感覺沒什么新鮮感,它的跨平臺(tái)特性也只是聽聽,根本沒有認(rèn)識(shí),知道學(xué)到第七章圖形界面用戶編程的時(shí)候,我發(fā)現(xiàn)學(xué)會(huì)之后自己可以做出來的軟件就更接近平時(shí)使用的軟件了,不過由于平時(shí)學(xué)士不刻苦,到時(shí)沒有時(shí)間靜下心來寫java
57、代碼,知道結(jié)課做課設(shè),才靜下心來開始研究java,結(jié)合以前的編程知識(shí),做起了自己的程序。 之所以會(huì)選學(xué)籍管理系統(tǒng),是因?yàn)樯蠈W(xué)期C++做的也是這個(gè),做起來會(huì)比較熟練,同時(shí)想通過做課設(shè)學(xué)習(xí)一點(diǎn)數(shù)據(jù)庫的知識(shí),感覺這些知識(shí)更貼近實(shí)際應(yīng)用,選好之后開始準(zhǔn)備課設(shè),先從最簡單的主窗體,到主窗體的菜單,組件添加,再到各個(gè)功能的獨(dú)立窗體的建立,再到最后的數(shù)據(jù)庫連接,功能的實(shí)現(xiàn),一步步走來,收獲頗多。其中獨(dú)立窗體中的組件排版是碰到的第一個(gè)問題,最簡單的方法是在建每個(gè)窗體時(shí)把所有需要的組件全部重新添加進(jìn)去,但是這樣代碼會(huì)很長,而卻會(huì)多占很多內(nèi)存空間,于是我決定把個(gè)功能窗體中共同的組件在一個(gè)新方法中統(tǒng)一加載,為了
58、減小占內(nèi)存空間,組建的在主類的構(gòu)造方法中生成,所有獨(dú)立功能窗口公用組件,這樣既減少了代碼額長度,又提高了程序的內(nèi)存利用率。還有很多問題,都在權(quán)衡之后得到了較優(yōu)的解決方法。它能夠使這次課設(shè)還讓我對(duì)java的跨平臺(tái)性有了進(jìn)一步認(rèn)識(shí),當(dāng)我學(xué)好代碼興致勃勃的想把它做成exe可執(zhí)行文件時(shí),在網(wǎng)上搜索之后發(fā)現(xiàn)它似乎很難實(shí)現(xiàn),就是應(yīng)為它的java語言的實(shí)現(xiàn)機(jī)制,通過jre來執(zhí)行執(zhí)行java代碼,而不是調(diào)用系統(tǒng)本地代碼。除此之外我還學(xué)到了新的編程技巧,比如對(duì)try,catch的運(yùn)用。剛學(xué)的時(shí)候就是照書本上的打,很不情愿但是必須打的代碼,在做課設(shè)時(shí),我發(fā)現(xiàn)他又很神奇的功能可以幫助我解決用其他辦法不好解決的問題,比如關(guān)閉窗口。剛開始程序只有主窗口時(shí),關(guān)閉很好實(shí)現(xiàn),但隨著程序功能的完善,需要關(guān)閉的窗口越來越多,需要關(guān)閉的類型也便多了,到了關(guān)閉Dialog的時(shí)候,發(fā)現(xiàn)Dialog不能強(qiáng)制轉(zhuǎn)化為Frame,如果想用前面的方法管還得把多處代碼進(jìn)行修改,不過我想到了用try來解決這個(gè)問題。 再次感謝老師一學(xué)期對(duì)我們的教學(xué)! 七、參考文獻(xiàn) [1] 丁振凡 《Java語言使用教程》 北京郵電大學(xué)出版社 [2] 百度 [3] JavaEye 第 23 頁
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專題黨課講稿:以高質(zhì)量黨建保障國有企業(yè)高質(zhì)量發(fā)展
- 廉政黨課講稿材料:堅(jiān)決打好反腐敗斗爭攻堅(jiān)戰(zhàn)持久戰(zhàn)總體戰(zhàn)涵養(yǎng)風(fēng)清氣正的政治生態(tài)
- 在新錄用選調(diào)生公務(wù)員座談會(huì)上和基層單位調(diào)研座談會(huì)上的發(fā)言材料
- 總工會(huì)關(guān)于2025年維護(hù)勞動(dòng)領(lǐng)域政治安全的工作匯報(bào)材料
- 基層黨建工作交流研討會(huì)上的講話發(fā)言材料
- 糧食和物資儲(chǔ)備學(xué)習(xí)教育工作部署會(huì)上的講話發(fā)言材料
- 市工業(yè)園區(qū)、市直機(jī)關(guān)單位、市紀(jì)委監(jiān)委2025年工作計(jì)劃
- 檢察院政治部關(guān)于2025年工作計(jì)劃
- 辦公室主任2025年現(xiàn)實(shí)表現(xiàn)材料
- 2025年~村農(nóng)村保潔員規(guī)范管理工作方案
- 在深入貫徹中央8項(xiàng)規(guī)定精神學(xué)習(xí)教育工作部署會(huì)議上的講話發(fā)言材料4篇
- 開展深入貫徹規(guī)定精神學(xué)習(xí)教育動(dòng)員部署會(huì)上的講話發(fā)言材料3篇
- 在司法黨組中心學(xué)習(xí)組學(xué)習(xí)會(huì)上的發(fā)言材料
- 國企黨委關(guān)于推動(dòng)基層黨建與生產(chǎn)經(jīng)營深度融合工作情況的報(bào)告材料
- 副書記在2025年工作務(wù)虛會(huì)上的發(fā)言材料2篇
相關(guān)資源
更多