《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)什么樣的界面。當(dāng)明確了這些,項(xiàng)目開(kāi)發(fā)的思路就清晰了,然后再對(duì)網(wǎng)絡(luò)上別的學(xué)生學(xué)籍管理系統(tǒng)進(jìn)行考
2、察、分析,從中吸取經(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ù):SQL 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)基本
3、信息修改基本信息刪除基本信息打印錄入基本信息退出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.getSource()=query) Find find=new Find(); find.setVisible(true); this.setVisible(false); if(e.getSource()=exit)System.exit(0);if(e.getSource()=insert)Insert insert =
4、 new Insert();insert.setVisible(true);this.setVisible(false);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.getS
5、ource()=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=getToolkit().getPrintJob(this, OK, null);g=p.getGraphi
6、cs();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)連接的,如下所示:String sql =select * from Student ;try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection con=DriverManager.get
7、Connection(jdbc:odbc:selection); Statement stmt = con.createStatement(); ResultSet rs=stmt.executeQuery(sql); ResultSetMetaData rsmd = rs.getMetaData(); int numberOfColumns=rsmd.getColumnCount(); while(rs.next() Vector newRow=new Vector(); int n=1; while(n=numberOfColumns) newRow.addElement(rs.getSt
8、ring(n); n+; model.addRow(newRow); rs.close();stmt.close(); catch(Exception e) e.printStackTrace(); 查詢(xún)學(xué)生基本信息功能的代碼如下:public class Find extends JFrame implements ActionListenerprivate JLabel jl;private JTextField jtf;private JButton jb1;private DefaultTableModel model;private JTable jt; private JCombo
9、Box jcb;private String columnNames = 學(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 c = this.getContentPane(); c.setLayout(new FlowLayou
10、t(); 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.addActionListener(this); this.add(jb1); model = new DefaultTableModel(columnNames,row); jt = new JTable(model); this.add(jt); JScrollPane t
11、ablePane = new JScrollPane(jt); c.add(tablePane); jt.setEnabled(false); this.setVisible(true); parents1.setVisible(false);this.setResizable(false); this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent event) shutdown(); );public static void main(String args) new Find();pu
12、blic void shutdown()parents1.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(ClassNotFoundException ce) System.out.println(SOLE
13、xception:+ ce.getMessage(); try Connection con = DriverManager.getConnection(jdbc:odbc:selection); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql); ResultSetMetaData rsmd = rs.getMetaData(); int numberOfColumns=rsmd.getColumnCount(); while (rs.next() Vector newRow=new V
14、ector(); int c=1; while(c=numberOfColumns) newRow.addElement(rs.getString(c); c+; model.addRow(newRow); this.repaint(); jtf.setText(); rs.close(); stmt.close(); catch(SQLException e) System.out.println(SQLException: + e.getMessage(); 其他的各個(gè)不同功能的實(shí)現(xiàn)這就不一一列舉,基本上原理都是差不多的。只是SQL語(yǔ)句不同罷了。六、運(yùn)行調(diào)試與分析討論 首先進(jìn)入登陸窗口,用
15、用戶(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ù)你修改的學(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ù)中去,如下所示: 從
16、菜單欄中選擇打印學(xué)生信息,進(jìn)入打印頁(yè)面,如下所示: 在登陸窗口中單擊注冊(cè),進(jìn)入注冊(cè)頁(yè)面,在這里注冊(cè)你登陸的用戶(hù)名和密碼,但是用戶(hù)名必須是學(xué)號(hào),而且在學(xué)生信息數(shù)據(jù)庫(kù)中才可以注冊(cè),否則返回失敗,如下所示: 在登陸窗口中,用你注冊(cè)的用戶(hù)名和密碼登陸,將會(huì)進(jìn)入學(xué)生頁(yè)面,學(xué)生可以完善自己的基本信息,還可以瀏覽自己的信息,以及在SQL里面輸入語(yǔ)句,可以實(shí)現(xiàn)各種操作,如下所示: 到此學(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)一
17、點(diǎn)的寫(xiě)完了,雖然功能不是很齊全,但是我已經(jīng)盡里去寫(xiě)了,把我這學(xué)期學(xué)到的全部都用了上去!在開(kāi)發(fā)的過(guò)程當(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è)出版社