




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 本科生課程設計課程名稱Java程序設計課程設計課程編號學號學生姓名所在專業所在班級指導教師成績教師簽字 評語:課程設計時間:2010年12月20日-2010年12月24日目 錄設計總說明 -II1. 課程設計目的與需求分析 -3 1.1 課程設計目的 -3 1.2 需求分析 -32. 設計思路與主功能設計 -4 2.1 設計思路 -4 2.1.1 開發環境和軟件 -42.1.2 數據庫表結構 -42.1.3 程序設計圖 -4 2.2 功能設計與介紹 -53. 具體功能的介紹和數據測試 -53.1 登錄界面 -53.2 主功能界面 -7 3.2.1 查詢 -7 3.2.2 添加 -9 3.2.
2、3 修改 -10 3.2.4 刪除 -12 3.2.5 關于 -13 3.2.6 退出 -134. 課程設計總結 -145. 附錄(程度代碼) -15 設計總說明1. 設計概況 名稱:學生學籍管理系統 用途:學校等機構 功能:實現對學生學籍信息的管理與維護等功能2. 設計說明學生學籍管理系統,可用于學校等機構的學生信息管理,查詢,更新與維護,使用方便,易用性強,圖形界面清晰明了。該軟件用java語言編寫,用SQLServer2005數據庫作為后臺的數據庫進行信息的存儲,用SQL語句完成添加,查詢,修改,刪除的操作。用ODBC驅動實現前臺Java與后臺SQL數據庫的連接。Java語言跨平臺性強,
3、可以在windows,linux,ubuntu等系統下使用,方便簡單,安全性好。SQLServer2005數據庫高效安全,兩者結合可相互利用各自的優勢。系統可供輸入的屬性有“學號”,“姓名”,“性別”,“班級”,“學院”,“籍貫”。該系統實現的大致功能:1 管理員登陸界面。該界面可以輸入管理員號,登陸密碼。用戶通過驗證通過后方可進入管理系統。一定程度上保證了信息安全性,防止他人未經允許篡改學生信息。2 查詢學生信息??梢赃x擇由用戶選擇“顯示系統中當前的所有學生信息”。也可以選擇按照“某一個學號查詢該學號的學生信息”。查詢到的信息會在窗口中依次顯示出來。3 添加學生信息??梢园凑請D形的界面的顯示
4、依次輸入新學生的“學號”,“姓名”,“性別”,“班級”,“學院”,“籍貫”。完成新紀錄的添加。4 修改學生信息。可以選擇按照“學號”或者“姓名”找到該學生的學生信息并輸入要修改的屬性,并輸入新的數據。完成對學生記錄的修改。5 刪除學生記錄。可以根據輸入的“學號”或者”姓名”進行刪除的操作。3本系統只實現了基本操作功能,對于添加管理員,修改登錄密碼和數據庫信息備份等功能并未提供,便利性和安全性仍有不足,使用過程中造成的不便還請諒解! 學生學籍管理系統信管1081班,200811622124,吳曉陽 信管1081班,200811622104,陳秀麗指導教師:陳亮1 課程設計目的與需求分析1.1 課
5、程設計目的本課程設計作為Java語言高級程序設計課程的延伸,在學生完成了Java語言高級程序設計課程的理論知識學習后,希望通過本次課程設計的實踐操作,能夠讓學生懂得Java的各種相關知識的使用,真正的提高學生獨立開發設計Java程序,把課堂上的知識運用在實踐上,一門編程語言只有在不斷實踐操作和練習上才會有進步。1.2需求分析在一些學校等機構,隨著學生數量的不斷增加,學生的信息不斷增多,人工管理信息的難度也越來越大。而且效率也是很低的。所以如何自動高效地管理信息是這些年來許多人所研究的。隨著這些年電腦計算機的速度質的提高,成本的下降,IT互聯網大眾趨勢的發展。我們使用電腦的高效率才處理數據信息成
6、為可能。 學生學籍管理系統的出現,正是管理人員與信息數據,計算機的進入互動時代的體現。友好的人機交互模式,清晰簡明的圖形界面,高效安全的操作使得我們對成千上萬的信息的管理得心應手。學生學籍管理系統,以SQL數據庫作為后臺信息存儲,Java作為前臺系統的語言。提供了對學生信息添加,查詢,修改,刪除的功能。實現了最基本的信息管理。2 設計思路與主功能設計 2.1 設計思路 開發環境和軟件 本學籍采用Java語言編寫前臺程序,后臺采用SQL Server2005軟件管理數據庫,調試和運行皆由Eclipse SDK 完成。 SQL數據庫表結構 2.1.3 程序設計圖刪除修改添加查詢登錄退出失敗成功登錄
7、驗證學生學籍管理系統 2.2 功能設計與介紹 1) 顯示已有學生信息2) 添加新的學生信息3) 修改已有學生信息4) 刪除已有學生信息5) 關于學籍管理系統6) 退出學籍管理系統3 具體功能的介紹和數據測試3.1 登錄界面登錄界面輸入“管理員號”和“登錄密碼”,點擊“確定”,通過驗證則進入主功能菜單。如果輸入錯誤則會有相應的警告! 1.當輸入了一個未存在的管理員號時,會出現下圖! 2當輸入一個錯誤的密碼時,會出現下圖! 當前系統有兩個管理員賬號: 管理員號:200811622124 密碼:123456 管理員號:200811622104 密碼:123456 3.2 主功能界面3.2.1 查詢
8、點擊 , 則彈出下面的選擇菜單。 1) 選擇“顯示所有學生記錄”時,在控制臺會顯示當前系統中所有的學生記錄 2) 選擇“查詢某個學生記錄”時,會彈出一下窗口要求用戶輸入“學號”。 當系統中有要查詢的學號記錄時,系統會顯示查詢到的詳細信息。 如果沒有查詢到,則顯示: 3.2.2 添加點擊 ,會彈出輸入框,如下圖:在各個數據框中輸入對應的信息(學號不能為空,且學號不能與已存在的記錄重復),如果輸入的新紀錄的學號已經存在則: 如果添加的新紀錄學號為空,則 如果輸入的各項數據正常時,則點擊“添加”按鈕后,學生記錄添加成功!3.2.3 修改點擊 ,進行“修改”的操作,彈出下面的選擇菜單。 1)選擇按“學
9、號”修改:將相應的數據填入輸入框中,如果修改的記錄不存在,則提示:如果數據正確且記錄存在,則顯示記錄修改成功: 2) 按“姓名”修改,同上.3.2.4 刪除點擊 ,會顯示下面的菜單。1) 選擇按“學號”刪除,出現以下窗口。 在彈出的窗口輸入你要刪除的記錄的學號。如果要刪除的記錄不存在,則顯示 如果輸入的的學號存在,則刪除成功。3.2.5 關于 點擊 ,顯示本學生管理系統的作者相關信息。 3.2.6 退出點擊 ,退出本學籍管理系統。4 課程設計總結課程設計是培養學生綜合運用所學知識,發現,提出,分析和解決實際問題,鍛煉實踐能力的重要環節,是對學生實際工作能力的具體訓練和考察過程. 本次課程設計雖
10、然很辛苦,實在是受益匪淺。本來這門課的知識學的就不夠扎實,本次課程設計,在設計過程中碰到了很多問題,剛開始要設計的時候,還真不知道從哪里下手但最終在圖書、同學和老師的幫助下都得到了解決,讓我學會了好多書本上沒有的東西,通過本次課程設計我也能將課本上的知識融會貫通,起到了很好的輔助學習的效果,但是我發現我學到的知識比整整一個學期學到的都多。理論和實踐的相結合是學習最有效的方法。在設計的過程中發現了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,通過這次課程設計之后,一定把以前所學過的知識重新溫故。 通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,
11、只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。附 錄(程序代碼)import javax.swing.*;import java.awt.BorderLayout;import java.awt.Container;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.*;class DataBase / DataBase類public void A
12、dd(String xh,String xm,String xb,String xy,String bj,String jg) throws SQLException try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection c=DriverManager.getConnection("jdbc:odbc:studentdatabase"); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.C
13、ONCUR_UPDATABLE); ResultSet r=s.executeQuery("select * from 學籍管理系統where 學號='"+xh+"'"); r.last(); if(r.getRow()=1) JOptionPane.showMessageDialog( null ,"該學號的學生信息已存在"); else if(xh.equals("") JOptionPane.showMessageDialog( null ,"學號不能為空"); else
14、s.executeUpdate(" insert into 學籍管理系統 values ('"+xh+"','"+xm+"','"+xb+"','"+ xy+"','"+bj+"','"+jg+"')"); s.close(); c.close();JOptionPane.showMessageDialog( null ,"<html>&q
15、uot;+"學號:"+xh+"<br>" +"姓名:"+xm+"<br>" +"性別:"+xb+"<br>"+"學院:"+xy+"<br>"+"班級:"+bj+"<br>"+"籍貫:"+jg+"<br> 學生記錄添加成功!" ) ; catch(Exception e) JOptionP
16、ane.showMessageDialog( null , "數據添加異常!" ) ; Public void DisplayAll(ResultSet r) try r.last(); System.out.println("數據庫表共有"+r.getRow()+"行記錄"); r.beforeFirst(); while(r.next() System.out.print("第"+r.getRow()+"行記錄:"); System.out.print(" 學號為:"+r
17、.getString("學號"); System.out.print(" 姓名為:"+r.getString("姓名"); System.out.print(" 性別為:"+r.getString("性別"); System.out.print(" 學院為:"+r.getString("學院"); System.out.print(" 班級為:"+r.getString("班級"); System.out.print
18、ln(" 籍貫為:"+r.getString("籍貫"); catch(Exception e) public void DisplayOne(String str22) throws Exception try Connection c=DriverManager.getConnection("jdbc:odbc:studentdatabase"); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
19、ResultSet r=s.executeQuery("select * from 學籍管理系統 where 學號='"+str22+"'"); r.last(); int cc=r.getRow(); if(cc=0) JOptionPane.showMessageDialog( null ,"未查詢到相關信息!" ) ; elser.beforeFirst(); while(r.nexJOptionPane.showMessageDialog( null ,"<html>"+&quo
20、t;學號:"+r.getString("學號")+"<br>" +"姓名:"+r.getString("姓名")+"<br>" +"性別:"+r.getString("性別")+"<br>" +"學院:"+r.getString("學院")+"<br>" +"班級:"+r.getString(&quo
21、t;班級")+"<br>" +"籍貫:"+r.getString("籍貫")+"<br> 已查詢到相關記錄!" ) ; catch(Exception e) public void DeleteXh(String str11) try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection c=DriverManager.getConnection("jdbc:odbc:studentdata
22、base"); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet r=s.executeQuery("select * from 學籍管理系統 where 學號='"+str11+"'"); r.last(); if(r.getRow()=1) s.executeUpdate("delete from 學籍管理系統 where 學號='"+str1
23、1+"'"); JOptionPane.showMessageDialog( null , "學生記錄刪除成功!" ) ; else JOptionPane.showMessageDialog( null ,"學籍系統中并無相關記錄!" ); catch(Exception e) public void DeleteXm(String str13) try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection c=DriverManager.get
24、Connection("jdbc:odbc:studentdatabase"); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);ResultSet r=s.executeQuery("select * from 學籍管理系統 where 姓名='"+str13+"'"); r.last(); if(r.getRow()=1) s.executeUpdate("delete
25、from 學籍管理系統 where 姓名='"+str13+"'"); JOptionPane.showMessageDialog( null , "學生記錄刪除成功!" ) ; else JOptionPane.showMessageDialog( null ,"學籍系統中并無相關記錄!" ) ; catch(Exception e) public void UpdateXh(String xg,String str15,String str16) try Class.forName("sun.j
26、dbc.odbc.JdbcOdbcDriver");Connection c=DriverManager.getConnection("jdbc:odbc:studentdatabase"); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet r=s.executeQuery("select * from 學籍管理系統 where 學號='"+xg+"'"
27、); r.last(); if(r.getRow()=1) s.executeUpdate("update 學籍管理系統 set "+str15+"='"+str16+"' where 學號='"+xg+"'"); JOptionPane.showMessageDialog( null , "學生記錄修改成功!" ) ; elseJOptionPane.showMessageDialog( null ,"學籍系統中并無相關記錄!" ) ; ;
28、catch(Exception e) JOptionPane.showMessageDialog( null ,"學籍系統中并無相關記錄!" ) ; public void UpdateXm(String str18,String str19,String str20) try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection c=DriverManager.getConnection("jdbc:odbc:studentdatabase");Statement s=c.
29、createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet r=s.executeQuery("select * from 學籍管理系統 where 姓名='"+str18+"'"); r.last(); if(r.getRow()=1) s.executeUpdate("update 學籍管理系統 set "+str19+"='"+str20+"' whe
30、re 姓名='"+str18+"'"); /直接執行SQL語句修改 JOptionPane.showMessageDialog( null , "學生記錄修改成功!" ) ; elseJOptionPane.showMessageDialog( null ,"學籍系統中并無相關記錄!" ) ; ; catch(Exception e) JOptionPane.showMessageDialog( null ,"學籍系統中并無相關記錄!" ) ; class J_ActionListener
31、1 extends JFrame implements ActionListener /創建J_ActionListener1類監聽功能選項面板"顯示已有學生信息"的按鈕 public void actionPerformed(ActionEvent e) JButton b1=(JButton)e.getSource();Object aa= JOptionPane.showInputDialog(null, "請選擇按何種方式查詢","選擇", JOptionPane.QUESTION_MESSAGE,null, new Stri
32、ng "顯示所有學生記錄","查詢某個學生記錄","顯示所有學生記錄");if(aa="顯示所有學生記錄") try Connection c = DriverManager.getConnection("jdbc:odbc:studentdatabase"); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet r=s.executeQuer
33、y("select * from 學籍管理系統"); DataBase a =new DataBase(); a. DisplayAll(r); catch (SQLException e1) elsetryConnection c= DriverManager.getConnection("jdbc:odbc:studentdatabase"); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); DataBase a=
34、new DataBase(); String str11=JOptionPane.showInputDialog("請輸入要查詢的記錄的學號"); a.DisplayOne(str11); catch (Exception e1) class J_ActionListener2 extends JFrame implements ActionListener Public void actionPerformed(ActionEvent e) JButton b2=(JButton)e.getSource(); try new J_ActionListener6(); ca
35、tch (Exception e2) Class J_ActionListener6 extends J_ActionListener2 implements ActionListener DataBase a = new DataBase(); JTextField jtf1 = new JTextField(); JTextField jtf2 = new JTextField() ; JTextField jtf3 = new JTextField() ; JTextField jtf4 = new JTextField() ; JTextField jtf5 = new JTextFi
36、eld() ; JTextField jtf6 = new JTextField() ; JButton btn = null ; J_ActionListener6() this.setTitle("請輸入數據:") ; /創建框架的標題 this.setBounds(250, 100, 220,320) ; /框架的大小和坐標 this.setResizable(false); this.setVisible(true); this.setLayout(null) ; JLabel jlb1 = new JLabel("學號:") ; /創建&quo
37、t;學號"的標簽 jlb1.setBounds(43,23,100,25) ; this.add(jlb1) ; JLabel jlb2 = new JLabel("姓名:") ; jlb2.setBounds(43,58,100,25) ; this.add(jlb2) ; JLabel jlb3 = new JLabel("性別:") ; jlb3.setBounds(43,93,100,25) ; this.add(jlb3) ; JLabel jlb4 = new JLabel("學院:") ; jlb4.setBo
38、unds(43,128,100,25) ; this.add(jlb4) ; JLabel jlb5 = new JLabel("班級:") ; jlb5.setBounds(43,163,100,25) ; this.add(jlb5) ; JLabel jlb6 = new JLabel("籍貫:") ; jlb6.setBounds(43,198,100,25) ; this.add(jlb6) ; jtf1.setBounds(80,25,100,25) ; this.add(jtf1) ; jtf2.setBounds(80,60,100,25
39、) ; this.add(jtf2) ; jtf3.setBounds(80,95,100,25) ; this.add(jtf3) ; jtf4.setBounds(80,130,100,25) ; this.add(jtf4) ; jtf5.setBounds(80,165,100,25) ; this.add(jtf5) ; jtf6.setBounds(80,200,100,25) ; this.add(jtf6) ; btn = new JButton("添加") ; btn.setBounds(68,245,80,30) ; /設置按鈕的大小和位置 this.a
40、dd(btn) ; /將按鈕添加進面板里 btn.addActionListener(this) ; (JComponent) this.getContentPane().setOpaque(false); .URL url = JavaSql.class.getResource("背景1.jpg");ImageIcon img = new ImageIcon(url); JLabel background = new JLabel(img); this.getLayeredPane().add(background, new Integer(Integer.MIN_VAL
41、UE);background.setBounds(0,0,img.getIconWidth(),img.getIconHeight();public void actionPerformed(ActionEvent e) JButton btn=(JButton)e.getSource(); String xh = jtf1.getText() ; String xm = jtf2.getText() ; String xb = jtf3.getText() ; String xy = jtf4.getText() ; String bj = jtf5.getText() ; String j
42、g = jtf6.getText() ; try a.Add(xh,xm,xb,xy,bj,jg); this.setVisible(false); catch (SQLException e1) class J_ActionListener3 extends JFrame implements ActionListener /創建J_ActionListener3監聽功能面板”修改已有學生信息“的按鈕 final DataBase a=new DataBase(); JFrame xiugai=new JFrame(); String b=null; public void jiemian(
43、) /在J_ActionListener3類里添加jiemian()方法,創建按學號修改數據的界面 this.setTitle("請輸入數據:") ; this.setSize(230,320) ; this.setLocation(200,130); this.setResizable(false); this.setVisible(true); JLabel jlb1 = new JLabel("請輸入要修改的學生的"+b) ; /設置3個標簽 JLabel jlb2 = new JLabel("請輸入要修改的屬性") ; JLa
44、bel jlb3 = new JLabel("請輸入新的數據") ; final JTextField jtf1 = new JTextField() ; /設置三個文本框 final JTextField jtf2 = new JTextField() ; final JTextField jtf3 = new JTextField() ; JButton xg=new JButton("修改"); /創建”修改“按鈕 Container c=getContentPane();c.setLayout(null);jlb1.setBounds(20,15
45、,170,30);c.add(jlb1);jlb2.setBounds(20,80,170,30);c.add(jlb2);jlb3.setBounds(20,145,170,30);c.add(jlb3);jtf1.setBounds(20,45,170,30);c.add(jtf1);jtf2.setBounds(20,110,170,30);c.add(jtf2);jtf3.setBounds(20,180,170,30);c.add(jtf3);xg.setBounds(80,230,60,35); c.add(xg);xg.addActionListener(new ActionListener() /為”修改“按鈕添加事件觸發 public void actionPerformed( ActionEvent e) / 當修改的按鈕被點擊時執行 JButton xg=(JButton)e.getSource(); String xuehao=jtf1.getText(); /獲取文本框的數據 String shuxin=jtf2.getText(); String xinshuju=jtf3.getText(); a.UpdateXh(xuehao,shuxin,xinshuju); setVisible(f
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 影視產業現狀及未來投資趨勢分析
- 2024年中國鎳鈷冶煉行業市場調查報告
- 建筑史視角下的城市歷史研究
- 投資風險管理標準化操作流程
- 心理咨詢在心理障礙治療中的應用
- 拼多多店鋪的移動端優化策略
- 教育與體育結合促進青年全面發展
- 推動教育均衡發展國際合作與資源共享
- 影視劇中的服裝造型藝術探討
- 2025-2030年中國阻燃性再生木組合裝飾項目投資可行性研究分析報告
- 安全生產標準化推進計劃 模板
- 2023年黑龍江省文化和旅游系統事業單位人員招聘筆試模擬試題及答案解析
- 2023年江西新余市數字產業投資發展有限公司招聘筆試題庫含答案解析
- LY/T 3323-2022草原生態修復技術規程
- 部編版六年級語文下冊課件第1課《北京的春節》《臘八粥》
- 涂裝工模擬練習題含答案
- 2023-2024學年河南省永城市小學數學二年級下冊期末評估測試題
- 乳腺疾病的超聲診斷 (超聲科)
- 服務精神:馬里奧特之路
- 《建筑施工安全檢查標準》JGJ59-2011圖解
- 華為大學人才培養與發展實踐
評論
0/150
提交評論