java課程設(shè)計(jì) 學(xué)生學(xué)籍管理系統(tǒng)
《java課程設(shè)計(jì) 學(xué)生學(xué)籍管理系統(tǒng)》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《java課程設(shè)計(jì) 學(xué)生學(xué)籍管理系統(tǒng)(19頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 一、課設(shè)任務(wù)及要求 課設(shè)任務(wù): 設(shè)計(jì)基于數(shù)據(jù)庫(kù)的學(xué)籍管理系統(tǒng) 設(shè)計(jì)要求: 1管理員錄入學(xué)生基本信息的功能 2管理員修改學(xué)生基本信息的功能 3按不同類(lèi)別查詢(xún)學(xué)生基本信息的功能 4管理員刪除學(xué)生基本信息的功能 5利用不同的用戶(hù)名登陸實(shí)現(xiàn)權(quán)限操作的功能 6 實(shí)現(xiàn)登陸用戶(hù)的注冊(cè) 7 學(xué)生個(gè)人修改自己的基本信息的功能 8 學(xué)生通過(guò)SQL語(yǔ)句查詢(xún)基本信息的功能 9 打印 10退出 二、需求分析 在開(kāi)發(fā)學(xué)生學(xué)籍管理系統(tǒng)之前,首先要知道所要開(kāi)發(fā)的系統(tǒng)要實(shí)現(xiàn)那些功能,是針對(duì)學(xué)生的系統(tǒng)還是針對(duì)管理員的系統(tǒng),并且要清楚不同級(jí)別的用戶(hù)具有什么樣的功能,實(shí)現(xiàn)
2、什么樣的界面。當(dāng)明確了這些,項(xiàng)目開(kāi)發(fā)的思路就清晰了,然后再對(duì)網(wǎng)絡(luò)上別的學(xué)生學(xué)籍管理系統(tǒng)進(jìn)行考察、分析,從中吸取經(jīng)驗(yàn),并結(jié)合本系統(tǒng)的要求以及實(shí)際的管理情況,設(shè)計(jì)出一個(gè)合理的學(xué)生學(xué)籍管理系統(tǒng)。本系統(tǒng)需要如下: ? 系統(tǒng)設(shè)計(jì)界面要求整潔,美觀大方,能夠展現(xiàn)各個(gè)功能。 ? 系統(tǒng)首頁(yè)具有banner界面,起到耳目一新的印象。 ? 設(shè)計(jì)主要是面向管理員和學(xué)生,為他們解決查詢(xún),修改,刪除等操作問(wèn)題。 ? 系統(tǒng)運(yùn)行穩(wěn)定,安全可靠。 ? 要求對(duì)學(xué)生基本信息進(jìn)行嚴(yán)格管理。 2.1開(kāi)發(fā)環(huán)境 在開(kāi)發(fā)學(xué)生學(xué)籍管理系統(tǒng)時(shí),該項(xiàng)目使用的軟件開(kāi)發(fā)環(huán)境如下: ? 操作系統(tǒng):Windown XP ? 數(shù)據(jù)庫(kù):S
3、QL Server2005 ? 開(kāi)發(fā)工具:Myeclipse 三、系統(tǒng)功能結(jié)構(gòu) 學(xué)生學(xué)籍管理系統(tǒng)功能結(jié)構(gòu): 學(xué)生學(xué)籍管理系統(tǒng) 管理員 學(xué)生 查詢(xún)基本信息 詢(xún) 基 本 信 息 修改基本信息 刪除基本信息 打印 錄入基本信息 退出 SQL語(yǔ)句查詢(xún) 查詢(xún)個(gè)人信息 注冊(cè) 四、設(shè)計(jì)思路 為了能夠清晰的學(xué)習(xí),下面給出學(xué)生學(xué)籍管理系統(tǒng)的系統(tǒng)流程圖: 五、詳細(xì)設(shè)計(jì) 本系統(tǒng)主要是按不同的功能而設(shè)計(jì)的類(lèi),每個(gè)類(lèi)都實(shí)現(xiàn)不同的功能,也存在著不同類(lèi)之間的調(diào)用,不要調(diào)用如下: if(e.getSou
4、rce()==query){ Find find=new Find(); find.setVisible(true); this.setVisible(false); } if(e.getSource()==exit){ System.exit(0); } if(e.getSource()==insert){ Insert insert = new Insert(); insert.setVisible(true); this.setVisible(false); }
5、 if(e.getSource()==insertcource){ Insertcource insertcource = new Insertcource(); insertcource.setVisible(true); this.setVisible(false); } if(e.getSource()==delete){ Delete delete = new Delete(); delete.setVisible(true); this.setVisible(false); } if(e.getSource(
6、)==deletecource){ Deletecource deletecource = new Deletecource(); deletecource.setVisible(true); this.setVisible(false); } if(e.getSource()==update){ Update update = new Update(); update.setVisible(true); this.setVisible(false); } if(e.getSource()==print){ p=g
7、etToolkit().getPrintJob(this, "OK", null); g=p.getGraphics(); g.translate(120, 200); jt.paintAll(g); g.dispose(); p.end(); } if(e.getSource()==hp){ JOptionPane.showMessageDialog(this,"月上飛鳶制作,謝謝!","幫助",JOptionPane.PLAIN_MESSAGE); } } 數(shù)據(jù)庫(kù)的連接主要是通過(guò)JDBC來(lái)連接的,如下所示:
8、 String sql ="select * from Student "; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con=DriverManager.getConnection("jdbc:odbc:selection"); Statement stmt = con.createStatement(); ResultSet rs=stmt.executeQuery(sql); ResultSetMetaData rsmd = rs.getMeta
9、Data(); int numberOfColumns=rsmd.getColumnCount(); while(rs.next()) { Vector newRow=new Vector(); int n=1; while(n<=numberOfColumns) { newRow.addElement(rs.getString(n)); n++; } model.addRow(newRow); } rs.close(); stmt.close(); } catch(Exception e) {
10、 e.printStackTrace(); } 查詢(xún)學(xué)生基本信息功能的代碼如下: public class Find extends JFrame implements ActionListener{ private JLabel jl; private JTextField jtf; private JButton jb1; private DefaultTableModel model; private JTable jt; private JComboBox jcb; private String[] columnName
11、s = {"學(xué)號(hào)","姓名","性別","專(zhuān)業(yè)","年級(jí)","年齡","宿舍","電話(huà)"}; private int row ; private String[] boxstr = {"學(xué)號(hào)","姓名","性別","專(zhuān)業(yè)","年級(jí)","年齡","宿舍"}; Adminmain parents1 = new Adminmain(); public Find(){ super("查詢(xún)學(xué)生信息"); this.setSize(460,400); this.setLocation(350,250); Container
12、c = this.getContentPane(); c.setLayout(new FlowLayout()); jl = new JLabel("請(qǐng)輸入關(guān)鍵詞及選擇類(lèi)型"); this.add(jl); jtf = new JTextField(15); this.add(jtf); jcb = new JComboBox(boxstr); this.add(jcb); jb1 = new JButton("查詢(xún)"); jb1.addActionLi
13、stener(this); this.add(jb1); model = new DefaultTableModel(columnNames,row); jt = new JTable(model); this.add(jt); JScrollPane tablePane = new JScrollPane(jt); c.add(tablePane); jt.setEnabled(false); this.setVisible(true); parents1.setVi
14、sible(false); this.setResizable(false); this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent event) { shutdown(); } }); public static void main(String[] args) { new Find(); } public void shutdown(){ pa
15、rents1.setVisible(true); this.dispose(); } public void actionPerformed(ActionEvent arg0) { String sql =" select * from Student where "+ jcb.getSelectedItem()+ "= '"+ jtf.getText() +"' "; try { Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFou
16、ndException ce) { System.out.println("SOLException:"+ ce.getMessage()); } try { Connection con = DriverManager.getConnection("jdbc:odbc:selection"); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sq
17、l); ResultSetMetaData rsmd = rs.getMetaData(); int numberOfColumns=rsmd.getColumnCount(); while (rs.next()) { Vector newRow=new Vector(); int c=1; while(c<=numberOfColumns) {
18、 newRow.addElement(rs.getString(c)); c++; } model.addRow(newRow); } this.repaint(); jtf.setText(""); rs.close(); stmt.close(); } catch(SQLException e)
19、 { System.out.println("SQLException:" + e.getMessage()); } } } 其他的各個(gè)不同功能的實(shí)現(xiàn)這就不一一列舉,基本上原理都是差不多的。只是SQL語(yǔ)句不同罷了。六、運(yùn)行調(diào)試與分析討論 ? 首先進(jìn)入登陸窗口,用用戶(hù)名為admin,密碼為admin登陸進(jìn)入管理員頁(yè)面如下: ? 從菜單欄中選擇查詢(xún)學(xué)生信息,進(jìn)入查詢(xún)頁(yè)面,你可以從下拉選項(xiàng)中選擇查詢(xún)類(lèi)別,然后點(diǎn)擊查詢(xún),如下所示: ? 從菜單欄中選擇修改學(xué)生信息,進(jìn)入修改頁(yè)面,首先根據(jù)
20、你修改的學(xué)號(hào)而進(jìn)入此學(xué)生的詳細(xì)信息頁(yè)面中,你可以直接修改此人的信息,然后點(diǎn)擊確定,修改后的信息制動(dòng)保存在數(shù)據(jù)庫(kù)中,如下所示: ? 從菜單欄中選擇刪除學(xué)生信息,進(jìn)入刪除頁(yè)面,從下拉選項(xiàng)中你按什么類(lèi)型刪除學(xué)生,輸入正確則返回刪除成功!如下所示: ? 從菜單欄中選擇添加學(xué)生信息,進(jìn)入添加頁(yè)面,按著要求認(rèn)真填寫(xiě)學(xué)生信息,如果填寫(xiě)錯(cuò)誤將會(huì)返回錯(cuò)誤提示,之后按下添加,則自動(dòng)添加到數(shù)據(jù)庫(kù)中去,如下所示: ? 從菜單欄中選擇打印學(xué)生信息,進(jìn)入打印頁(yè)面,如下所示: 2 在登陸窗口中單擊注冊(cè),進(jìn)入注冊(cè)頁(yè)面,在這里注冊(cè)你登陸的用戶(hù)名和密碼,但是用戶(hù)名必須是學(xué)號(hào),而且在學(xué)生信息數(shù)據(jù)庫(kù)中才可
21、以注冊(cè),否則返回失敗,如下所示: 2 在登陸窗口中,用你注冊(cè)的用戶(hù)名和密碼登陸,將會(huì)進(jìn)入學(xué)生頁(yè)面,學(xué)生可以完善自己的基本信息,還可以瀏覽自己的信息,以及在SQL里面輸入語(yǔ)句,可以實(shí)現(xiàn)各種操作,如下所示: 2 到此學(xué)生學(xué)籍管理系統(tǒng)的基本功能都是說(shuō)明,具體的功能有你自己來(lái)操作! 七、設(shè)計(jì)體會(huì)與小結(jié) 這次JAVA課程設(shè)計(jì)是我親自獨(dú)立做出來(lái)的,中間遇到很多的問(wèn)題,我就通過(guò)書(shū)籍和從網(wǎng)上收集資料,一開(kāi)始是看別人做的程序,然后自己試著寫(xiě)寫(xiě),結(jié)果就是一點(diǎn)一點(diǎn)的寫(xiě)完了,雖然功能不是很齊全,但是我已經(jīng)盡里去寫(xiě)了,把我這學(xué)期學(xué)到的全部都用了上去! 在開(kāi)發(fā)的過(guò)
22、程當(dāng)中遇到函數(shù)的調(diào)用,感覺(jué)自己對(duì)這方面很陌生,不知道調(diào)用的過(guò)程和原理,所以就大量的看別人的程序,為此,我買(mǎi)了JAVA項(xiàng)目開(kāi)發(fā)全稱(chēng)實(shí)錄來(lái)學(xué)習(xí)別人的思想和具體的過(guò)程! 通過(guò)此次課程設(shè)計(jì),將我本學(xué)期所學(xué)的JAVA知識(shí)得到鞏固和應(yīng)用,在設(shè)計(jì)的過(guò)程中我遇到了很到問(wèn)題,不過(guò)在老師和同學(xué)們的幫助和自己的思考下還是很好的完成了。這此課程設(shè)計(jì)還讓我懂得了寫(xiě)程序不能閉門(mén)造車(chē),要努力拓寬知識(shí)面,開(kāi)闊視野,拓展思維。它還讓我學(xué)會(huì)了在網(wǎng)上查閱那些無(wú)限的資料。 八、參考文獻(xiàn) (1)耿祥文 .張躍平 《JAVA2教程》 清華大學(xué)出版社 (2)張仿彥 .《JAVA項(xiàng)目開(kāi)發(fā)全程實(shí)錄》清華大學(xué)出版社 (4)Harvey M.Deitel 和 Paul J.Deitel 《java 2程序設(shè)計(jì)教程》機(jī)械工業(yè)出版社
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案