

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> JAVA程序設(shè)計 課程設(shè)計報告</p><p> 課 題: 學生信息管理系統(tǒng) </p>&
2、lt;p> 姓 名:
3、 </p><p> 學 號: </p&g
4、t;<p> 設(shè)計時間: 2014.6.23—2014.6.27 </p><p><b> 目 錄</b></p><p> 1.系統(tǒng)描述.................
5、....................3</p><p> 1.1需要實現(xiàn)的功能............................3</p><p> 1.2 設(shè)計的目的...............................3</p><p> 2.分析與設(shè)計...................................4</p&
6、gt;<p> 2.1 功能模塊劃分............................4</p><p> 2.2 數(shù)據(jù)庫結(jié)構(gòu)描述..........................4</p><p> 2.3 系統(tǒng)詳細設(shè)計文檔........................5</p><
7、;p> 2.4 各個模塊實現(xiàn)方法描述....................9</p><p> 2.5 測試數(shù)據(jù)及期望結(jié)果......................9</p><p> 3.系統(tǒng)測試.....................................12</p><p> 4.總結(jié)或心得體會................
8、...............18</p><p> 5.參考文獻.....................................19</p><p> 6.附錄.........................................19</p><p><b> 1.系統(tǒng)描述</b></p><p
9、> 1.1需要實現(xiàn)的功能</p><p> (1)錄入學生基本信息的功能</p><p> 學生基本信息主要包括:學號、姓名、性別、年齡、出生地、專業(yè)、班級、總學分,在插入時,如果數(shù)據(jù)庫則已經(jīng)存在該學號,則不能再插入該學號。</p><p> (2)修改學生基本信息的功能</p><p> 在管理員模式下,只要在表格中選中某個
10、學生,就可以對該學生信息進行修改。</p><p> (3)查詢學生基本信息的功能</p><p> 可使用 “姓名”對已存有的學生資料進行查詢。</p><p> (4)刪除學生基本信息的功能 </p><p> 在管理員模式下,只要選擇表格中的某個學生,就可以刪除該學生。</p><p><b>
11、 (5)用戶登陸</b></p><p> 用不同的登錄權(quán)限可以進入不同的后臺界面,從而實現(xiàn)權(quán)限操作。</p><p> (6)用戶登陸信息設(shè)置</p><p> 可以修改用戶登陸密碼</p><p><b> 1.2 設(shè)計的目的</b></p><p> 本程序用于用戶對
12、少量學生信息進行簡單的管理,本程序針對于對安全系數(shù)要求不高,操作不是很復雜的小型客戶開發(fā)。本程序的管理員可以實現(xiàn)對學生信息的錄入、查詢、修改、刪除等操作,同時支持查看所有學生信息,學生只能查詢自己的信息。程序功能完善,界面簡潔美觀,布局合理,操作簡便,簡單易用,任何人可輕松操作。</p><p> 同時,本程序?qū)ο到y(tǒng)要求配置較低,運行速度快,而卻對數(shù)據(jù)庫管理要求較低。本程序數(shù)據(jù)庫采用office2007版本的a
13、ccess數(shù)據(jù)庫(.accdb)進行數(shù)據(jù)存儲,該數(shù)據(jù)庫可實現(xiàn)關(guān)系較為簡單的數(shù)據(jù)管理。</p><p><b> 2.分析與設(shè)計: </b></p><p><b> 2.1功能模塊劃分</b></p><p><b> 圖1 功能模塊圖</b></p><p> 2.2
14、數(shù)據(jù)庫結(jié)構(gòu)描述</p><p> ?。?)數(shù)據(jù)庫E-R模型</p><p> 圖2 學生局部E-R圖</p><p> 圖3 登陸用戶局部E-R圖</p><p> ?。?)數(shù)據(jù)庫關(guān)系模型——二維</p><p> 表1 學生表(student)</p><p> 表2 登陸權(quán)限表
15、(login)</p><p><b> (3)數(shù)據(jù)流圖</b></p><p><b> 圖4 數(shù)據(jù)流圖</b></p><p> 2.3系統(tǒng)詳細設(shè)計文檔</p><p> 表3 包以及包所包含的類</p><p> 表4 SqlConn類</p>
16、<p><b> 表5 Index類</b></p><p> 表6 Login類 </p><p> 2.4各個模塊實現(xiàn)方法描述</p><p> sqlConnection是連接數(shù)據(jù)庫。可實現(xiàn)發(fā)送SQL語句給數(shù)據(jù)庫,獲得數(shù)據(jù)庫返回的記錄集,實現(xiàn)查詢、添加、修改、刪除學生記錄,關(guān)閉數(shù)據(jù)庫連接等功能。Myfont是設(shè)置窗體各
17、組件的字體。Index是使用進度條與線程結(jié)合實現(xiàn)閃屏,初始化進入登陸界面。Login是登陸界面,管理員與用戶登陸,可以分別登入管理員和用戶,管理員與用戶的登錄進去后可分別按自己的權(quán)限操作。</p><p> 2.5 測試數(shù)據(jù)及期望結(jié)果</p><p> 在登入窗口可以分別登入管理員和用戶的賬號及密碼,會進入權(quán)限不同的頁面,管理員可以實現(xiàn)查詢、添加、修改、刪除學生記錄,還可以查詢,修改
18、、刪除管理員表格。而學生只能查詢學生記錄。例如: </p><p><b> 圖1登入管理員</b></p><p><b> 圖2查詢?nèi)啃畔?</b></p><p><b> 圖3查詢個人信息</b><
19、;/p><p><b> 圖4添加學生信息</b></p><p><b> 圖5修改學生信息</b></p><p><b> 圖6修改學生信息</b></p><p> 圖7查詢肖林衛(wèi)婕的成績</p><p><b> 系統(tǒng)測試<
20、;/b></p><p><b> 圖8系統(tǒng)啟動界面</b></p><p> 圖9 用戶登陸界面</p><p> 圖10 班委(管理員)界面,即具有完全權(quán)限的用戶后臺界面</p><p> 圖11 班委(管理員)界面子菜單項顯示</p><p> 圖12 普通用戶(學生)界面
21、子菜單項顯示</p><p> 圖13學生信息查詢結(jié)果顯示</p><p> 圖14 添加學生信息界面</p><p> 圖15 修改學生信息界面</p><p> 圖16 顯示所有學生信息</p><p> 圖17當沒有選中一行的時候,不能修改和刪除,并彈出提示警告框</p><p&g
22、t; 圖18 刪除文件時的確認對話框(當點擊確認時才會刪除,點擊取消,則返回主界面)</p><p> 圖19 顯示所有登陸用戶信息</p><p> 圖20 修改用戶登陸密碼,選中某個用戶進行修改</p><p> 圖21 關(guān)閉用戶記錄,即不顯示所有用戶信息</p><p> 圖22 關(guān)閉學生記錄</p><p
23、> 圖23 退出系統(tǒng)確認對話框,只有確認時才會退出系統(tǒng),否則返加主界面</p><p> 圖24 普通學生登陸后的界面(即不能對學生信息進行添加,修改和刪除以及用戶密碼修改,對應的這幾項灰色顯示,不可點擊)</p><p><b> 四、總結(jié)或心得體會</b></p><p> 1)在寫代碼之前,在大腦里一定要把思路理清楚,不能
24、模模糊糊,一定要把功能圖和流程圖畫出來,然后根據(jù)它去實現(xiàn)每一個功能塊,要多分析,培養(yǎng)一種良好的邏輯思維能力。</p><p> 2)在寫代碼的過程中,一定要采取就近原則,同一個功能,或者對同一個組件的設(shè)置一般要寫在一塊,這樣寫的程序比較清晰,不容易出錯,也便于查找。</p><p> 3)要養(yǎng)成良好的注釋習慣,一是有利于別人閱讀你的程序,同時也有利于自己以后再看,就能很快的讀懂程序,提
25、高效率。</p><p> 4)把功能模塊化,即把實現(xiàn)相同功能的代碼段封裝成一到一個類或者一個方法中,實現(xiàn)的時候調(diào)用即可,這樣能提高代碼的可讀性</p><p> 5)養(yǎng)成創(chuàng)建包來存放不同功能的類,使系統(tǒng)的結(jié)構(gòu)更加模塊化和規(guī)范化。</p><p> 6)在編寫代碼的時候,一定要邊寫邊調(diào)試,要適時的設(shè)置斷點,或者把某些變量的值輸出到控制臺,通過觀察和分析變量的值
26、,便于判斷問題所在,同時,需要捕獲異常的一定要把異常信息打印出來,便于分析問題。</p><p> 在老師悉心的指導下,我順利地完成了本次課程設(shè)計,并取得了很大的收獲,對以后的軟件開發(fā)奠定了一定的基礎(chǔ)!</p><p><b> 參考文獻</b></p><p> ?。?)趙海廷.Java語言程序設(shè)計教程.北京:清華大學出版社.2012&l
27、t;/p><p> (2)孫印杰,劉斌,孫玉強.Java編程案例精解.北京:電子工業(yè)出版 社.2005</p><p> ?。?)何梅.java編程實例系列叢書.北京:清華大學出版社,2002</p><p> (4)楊昭.編著二級Java語言程序設(shè)計教程.北京:中國水利水電出版社,2006</p><p> (5)趙文靖編著.Java
28、程序設(shè)計基礎(chǔ)與上機指導.北京:清華大學出版社,2006</p><p><b> 六、附錄</b></p><p> (1)功能:連接數(shù)據(jù)庫</p><p> package com.SqlConnection;</p><p> import java.sql.*;</p><p>
29、import com.View.AddStu;</p><p> public class SqlConn {</p><p> Connection ct=null;</p><p> PreparedStatement ps=null;</p><p> ResultSet rs=null;</p><p>
30、; String driver="sun.jdbc.odbc.JdbcOdbcDriver";</p><p> String dburl="jdbc:odbc:stuSystem";</p><p> String userName="";</p><p> String password=&qu
31、ot;";</p><p> //實現(xiàn)查詢功能的方法</p><p> public ResultSet sqlQuery(String sql)</p><p><b> {</b></p><p><b> try {</b></p><p><b
32、> //加載驅(qū)動</b></p><p> Class.forName(driver);</p><p> ct=DriverManager.getConnection(dburl,userName,password);</p><p> ps=ct.prepareStatement(sql);</p><p>
33、rs=ps.executeQuery();</p><p> } catch (Exception e) {</p><p> e.printStackTrace();</p><p> // TODO: handle exception</p><p><b> }</b></p><p&g
34、t; return rs;</p><p><b> }</b></p><p> //實現(xiàn)添加,修改功能 的方法</p><p> public void sqlUpdate(String sql)</p><p><b> {</b></p><p><b
35、> try {</b></p><p><b> //加載驅(qū)動</b></p><p> Class.forName(driver);</p><p> ct=DriverManager.getConnection(dburl,userName,password);</p><p> ps=c
36、t.prepareStatement(sql);</p><p> //執(zhí)行添加,更新操作</p><p> int i=ps.executeUpdate();//返回一個值,如果為1則表示添加成功。</p><p><b> if(i==1)</b></p><p><b> {</b>&
37、lt;/p><p> System.out.println("數(shù)據(jù)添加/修改成功!");</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p>
38、System.out.println("數(shù)據(jù)添加/修改失??!");</p><p><b> }</b></p><p> } catch (Exception e) {</p><p> e.printStackTrace();</p><p> // TODO: handle except
39、ion</p><p><b> }</b></p><p><b> }</b></p><p> //實現(xiàn)刪除學生記錄的方法</p><p> public void sqlDelete(String sql)</p><p><b> {</b
40、></p><p><b> try {</b></p><p><b> //加載驅(qū)動</b></p><p> System.out.println("ok");</p><p> Class.forName(driver);</p><p&
41、gt; ct=DriverManager.getConnection(dburl,userName,password);</p><p> ps=ct.prepareStatement(sql);</p><p> System.out.println("ok1");</p><p> //執(zhí)行添加,更新操作</p><
42、;p> int i=ps.executeUpdate();//返回一個值,如果為1則表示刪除成功。</p><p><b> if(i==1)</b></p><p><b> {</b></p><p> System.out.println("數(shù)據(jù)刪除成功!");</p>
43、<p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> System.out.println("數(shù)據(jù)刪除失?。?quot;);</p><p><b> }<
44、;/b></p><p> } catch (Exception e) {</p><p> e.printStackTrace();</p><p> // TODO: handle exception</p><p><b> }</b></p><p><b> }
45、</b></p><p> //實現(xiàn)關(guān)閉數(shù)據(jù)庫連接的功能</p><p> public void closeSqlConn()</p><p><b> {</b></p><p><b> try {</b></p><p> if(rs!=null
46、)rs.close();</p><p> if(ps!=null)ps.close();</p><p> if(ct!=null)ct.close();</p><p> } catch (Exception e) {</p><p> e.printStackTrace();</p><p> // T
47、ODO: handle exception</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> ?。?)功能:這是一個字體包,用于美化窗口的字體</p><p> p
48、ackage com.Tools;</p><p> import java.awt.Font;</p><p> public class MyFont {</p><p> public static Font f1=new Font("宋體",Font.PLAIN,15);</p><p> public s
49、tatic Font f2=new Font("宋體",Font.PLAIN,13);</p><p><b> }</b></p><p> ?。?) 功能:這是添加學生的界面,通過模式對話(即繼承JDialog對話框)來實現(xiàn) </p><p> package com.View;</p><p&g
50、t; import java.awt.*;</p><p> import java.awt.event.ActionEvent;</p><p> import java.awt.event.ActionListener;</p><p> import java.sql.ResultSet;</p><p> import ja
51、vax.swing.*;</p><p> import com.SqlConnection.SqlConn;</p><p> import com.Tools.MyFont;</p><p> public class AddStu extends JDialog implements ActionListener {</p><p&g
52、t; //定義添加學生信息的相關(guān)組件</p><p> JLabel jl1,jl2,jl3,jl4,jl5,jl6,jl7,jl8;</p><p> JTextField jtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7,jtf8;</p><p> JButton jb1,jb2,jb3;</p><p>
53、 ResultSet rs;</p><p> SqlConn sqlconn;</p><p> String No;</p><p> int stuAge=0;</p><p> Double stuSourse=0.0;</p><p> int i=0;//用于判斷到底點擊了添加還是取消,來決定是否
54、執(zhí)行數(shù)據(jù)更新操作</p><p> public int falg()</p><p><b> {</b></p><p><b> return i;</b></p><p><b> }</b></p><p> //這是添加學生界面的函
55、數(shù)封裝</p><p> public void addView()</p><p><b> {</b></p><p> jl1=new JLabel("學 號:");</p><p> jl1.setBounds(20, 20, 60, 25);</p><p>
56、 jl1.setFont(MyFont.f1);</p><p> jl2=new JLabel("姓 名:");</p><p> jl2.setFont(MyFont.f1);</p><p> jl2.setBounds(250, 20, 60, 25);</p><p> jl3=new JLabel(&
57、quot;性 別:");</p><p> jl3.setFont(MyFont.f1);</p><p> jl3.setBounds(20, 60, 60, 25);</p><p> jl4=new JLabel("年 齡:");</p><p> jl4.setFont(MyFont.f1);&l
58、t;/p><p> jl4.setBounds(250, 60, 60, 25);</p><p> jl5=new JLabel("出生地:");</p><p> jl5.setFont(MyFont.f1);</p><p> jl5.setBounds(14, 100, 60, 25);</p>
59、<p> jl6=new JLabel("專 業(yè):");</p><p> jl6.setFont(MyFont.f1);</p><p> jl6.setBounds(20, 140, 60, 25);</p><p> jl7=new JLabel("班 級:");</p><p>
60、; jl7.setFont(MyFont.f1);</p><p> jl7.setBounds(20, 180, 60, 25);</p><p> jl8=new JLabel("總學分:");</p><p> jl8.setFont(MyFont.f1);</p><p> jl8.setBounds(2
61、40, 180, 60, 25);</p><p> jtf1=new JTextField(20);</p><p> jtf1.setBounds(70, 20, 130, 25);</p><p> jtf1.setBorder(BorderFactory.createLoweredBevelBorder());</p><p>
62、 jtf2=new JTextField(20);</p><p> jtf2.setBounds(300, 20, 130, 25);</p><p> jtf2.setBorder(BorderFactory.createLoweredBevelBorder());</p><p> jtf3=new JTextField(10);</p>
63、<p> jtf3.setBounds(70, 60, 60, 25);</p><p> jtf3.setBorder(BorderFactory.createLoweredBevelBorder());</p><p> jtf4=new JTextField(10);</p><p> jtf4.setBounds(300, 60, 60,
64、 25);</p><p> jtf4.setBorder(BorderFactory.createLoweredBevelBorder());</p><p> jtf5=new JTextField(30);</p><p> jtf5.setBounds(70, 100, 360, 25);</p><p> jtf5.setB
65、order(BorderFactory.createLoweredBevelBorder());</p><p> jtf6=new JTextField(20);</p><p> jtf6.setBounds(70, 140, 290, 25);</p><p> jtf6.setBorder(BorderFactory.createLoweredBeve
66、lBorder());</p><p> jtf7=new JTextField(20);</p><p> jtf7.setBounds(70, 180, 130, 25);</p><p> jtf7.setBorder(BorderFactory.createLoweredBevelBorder());</p><p> jtf
67、8=new JTextField(20);</p><p> jtf8.setBounds(300, 180, 130, 25);</p><p> jtf8.setBorder(BorderFactory.createLoweredBevelBorder());</p><p> jb1=new JButton("添 加");</p
68、><p> jb1.setFont(MyFont.f1);</p><p> jb1.setBounds(100, 220, 80, 25);</p><p> jb1.addActionListener(this);</p><p> jb2=new JButton("取 消");</p><p&
69、gt; jb2.setFont(MyFont.f1);</p><p> jb2.setBounds(280, 220, 80, 25);</p><p> jb2.addActionListener(this);</p><p> jb3=new JButton("清 除");</p><p> jb3.set
70、Font(MyFont.f1);</p><p> jb3.setBounds(190,220,80,25);</p><p> jb3.addActionListener(this);</p><p> this.setLayout(null);</p><p> //把組件添加到窗體</p><p> t
71、his.add(jl1);</p><p> this.add(jtf1);</p><p> this.add(jl2);</p><p> this.add(jtf2);</p><p> this.add(jl3);</p><p> this.add(jtf3);</p><p&g
72、t; this.add(jl4);</p><p> this.add(jtf4);</p><p> this.add(jl5);</p><p> this.add(jtf5);</p><p> this.add(jl6);</p><p> this.add(jtf6);</p>&l
73、t;p> this.add(jl7);</p><p> this.add(jtf7);</p><p> this.add(jl8);</p><p> this.add(jtf8);</p><p> this.add(jb1);</p><p> this.add(jb2);</p>
74、<p> this.add(jb3);</p><p><b> }</b></p><p> public AddStu(Frame Main,String title,boolean model)</p><p><b> {</b></p><p> //調(diào)用父類的構(gòu)造
75、方法,實現(xiàn)模式對話</p><p> super(Main,title,model);</p><p> //調(diào)用添加學生信息界面的的方法</p><p> this.addView();</p><p><b> //設(shè)置窗體的屬性</b></p><p> this.setSize(
76、465,300);</p><p> this.getContentPane().setBackground(Color.LIGHT_GRAY);//設(shè)置背景必須是在顯示窗口前面,否則不能顯示出來</p><p> this.setVisible(true);</p><p> this.setResizable(false);</p><
77、p><b> }</b></p><p><b> @Override</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> // TODO Auto-generated method stub</p><p&
78、gt; //用于判斷輸入的學號是否存在時,如果存在則返回該學號,否則返回null,因此在這里,定義一個用于接收該返回的學號</p><p> //并設(shè)置該No的初始值為空,否則報錯。</p><p> String No = null ;</p><p> //當點擊了添加按鈕</p><p> if(e.getSource()==
79、jb1)</p><p><b> {</b></p><p> //***********************************//</p><p> //獲取文本框的信息</p><p> String stuId=jtf1.getText().trim();</p><p&g
80、t; //判斷,不能讓文本輸入框的值為空</p><p> if(stuId.equals(""))</p><p><b> {</b></p><p> JOptionPane.showMessageDialog(this, "請輸入學號!");</p><p> r
81、eturn;//返回到輸入界面,如果沒有return語句,則會回到主界面</p><p><b> }</b></p><p> String stuName=jtf2.getText().trim();</p><p> if(stuName.equals(""))</p><p><b
82、> {</b></p><p> JOptionPane.showMessageDialog(this, "請輸入姓名!");</p><p> return;//返回到輸入界面,如果沒有return語句,則會回到主界面</p><p><b> }</b></p><p>
83、 String stuSex=jtf3.getText().trim();</p><p> if(stuSex.equals(""))</p><p><b> {</b></p><p> JOptionPane.showMessageDialog(this, "請輸入性別!");</p
84、><p> return;//返回到輸入界面,如果沒有return語句,則會回到主界面</p><p><b> }</b></p><p> ////對于年齡,則需要進行兩個判斷,一個是不能為空,另一個必須是int型,下面用異常來判斷輸入的學生年齡是否是整型數(shù)</p><p> //****************
85、**************************//</p><p><b> try {</b></p><p> stuAge=Integer.parseInt(jtf4.getText().trim());//把從文本框取得的字符串轉(zhuǎn)換成整型,如果拋異常,則輸入的不是整形數(shù)</p><p> if(stuAge<1)<
86、;/p><p><b> {</b></p><p> JOptionPane.showMessageDialog(this, "年齡必須大于或等于1!");</p><p><b> return;</b></p><p><b> }</b><
87、/p><p> } catch (Exception e2) {</p><p> //提示輸入的不是整數(shù)</p><p> JOptionPane.showMessageDialog(this, "請輸入一個整數(shù)的年齡!");</p><p> //如果拋異常,則返回到添加窗口,后面終止執(zhí)行*************
88、*****************//</p><p><b> return;</b></p><p> // TODO: handle exception</p><p><b> }</b></p><p> //************************************
89、*******************************//</p><p> String stuJg=jtf5.getText().trim();</p><p> if(stuJg.equals(""))</p><p><b> {</b></p><p> JOptionPan
90、e.showMessageDialog(this, "請輸入出生地!");</p><p> return;//返回到輸入界面,如果沒有return語句,則會回到主界面</p><p><b> }</b></p><p> String stuZy=jtf6.getText().trim();</p>
91、<p> if(stuZy.equals(""))</p><p><b> {</b></p><p> JOptionPane.showMessageDialog(this, "請輸入專業(yè)!");</p><p> return;//返回到輸入界面,如果沒有return語句,則會回到
92、主界面</p><p><b> }</b></p><p> String classId=jtf7.getText().trim();</p><p> if(classId.equals(""))</p><p><b> {</b></p><
93、p> JOptionPane.showMessageDialog(this, "請輸入班號!");</p><p> return;//返回到輸入界面,如果沒有return語句,則會回到主界面</p><p><b> }</b></p><p> //*****************************
94、**************//</p><p><b> try {</b></p><p> stuSourse=Double.parseDouble(jtf8.getText().trim());</p><p> if(stuSourse==0.0)</p><p><b> {</b&g
95、t;</p><p> JOptionPane.showMessageDialog(this, "請輸入總學分!");</p><p> return;//返回到輸入界面,如果沒有return語句,則會回到主界面</p><p><b> }</b></p><p> } catch (Exc
96、eption e2) {</p><p> JOptionPane.showMessageDialog(this, "請輸入一個整數(shù)或小數(shù)的總學分!");</p><p><b> return;</b></p><p> // TODO: handle exception</p><p>&l
97、t;b> }</b></p><p> //**********************************************//</p><p> //首先先判斷該主鍵是否在數(shù)據(jù)庫中是否存在,其次分別判斷性別是否為“男”或者“女”,年齡是否為數(shù)字,總學分是否為浮點型或雙精度型</p><p> String sql="
98、select * from student where stuId='"+stuId+"'";</p><p> SqlConn sqlconn=new SqlConn();</p><p> rs=sqlconn.sqlQuery(sql);</p><p><b> try {</b>&l
99、t;/p><p> while(rs.next())</p><p><b> {</b></p><p> No=rs.getString(1);//看到底是否存在該學生的學號,如果存在,則返回該學號,不存在,則為空。</p><p><b> }</b></p><p&g
100、t; } catch (Exception e2) {</p><p> e2.printStackTrace();</p><p> // TODO: handle exception</p><p><b> }</b></p><p> if(No==null)</p><p>&
101、lt;b> {</b></p><p> if((stuSex.equals("男")||stuSex.equals("女")))</p><p><b> {</b></p><p><b> //調(diào)用數(shù)據(jù)庫連接</b></p><p&
102、gt; sql="insert into student values('"+stuId+"','"+stuName+"','"+stuSex+"','"+stuAge+"','"+stuJg+"','"+stuZy+"
103、','"+classId+"','"+stuSourse+"')";</p><p> sqlconn=new SqlConn();</p><p> sqlconn.sqlUpdate(sql);</p><p><b> this.i=1;</b>
104、;</p><p><b> //關(guān)閉數(shù)據(jù)庫連接</b></p><p> sqlconn.closeSqlConn();</p><p> this.dispose();</p><p><b> }</b></p><p><b> else <
105、/b></p><p><b> {</b></p><p> JOptionPane.showMessageDialog(this, "性別應該是男或女!");</p><p><b> }</b></p><p><b> }</b><
106、;/p><p><b> else </b></p><p><b> {</b></p><p> JOptionPane.showMessageDialog(this, "該學號已經(jīng)存在,請輸入新的學號!");</p><p><b> }</b>&
107、lt;/p><p><b> }</b></p><p> //如果點擊了取消按鈕,則關(guān)閉模式對話框</p><p> else if(e.getSource()==jb2)</p><p><b> {</b></p><p> this.dispose();<
108、/p><p><b> }</b></p><p> else if(e.getSource()==jb3)</p><p><b> {</b></p><p> jtf1.setText("");</p><p> jtf2.setText(&q
109、uot;");</p><p> jtf3.setText("");</p><p> jtf4.setText("");</p><p> jtf5.setText("");</p><p> jtf6.setText("");</p&g
110、t;<p> jtf7.setText("");</p><p> jtf8.setText("");</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b>
111、;</p><p> (4)功能:實現(xiàn)閃屏界面</p><p> package com.View;</p><p> import java.awt.*;</p><p> import javax.swing.*;</p><p> public class Index extends JWindow i
112、mplements Runnable{</p><p> //定義與進度條相關(guān)的組件</p><p> JProgressBar jpb;//定義進度條</p><p> JLabel jl1;//用于在窗體的北部放一張圖片,南部是進度條</p><p> int width,height;//用于獲取顯示屏分辨率大小</p&g
113、t;<p> public static void main(String []args){</p><p> Index index=new Index();</p><p> //創(chuàng)建index線程</p><p> Thread t=new Thread(index);</p><p><b> //啟
114、動線程</b></p><p> t.start();</p><p><b> }</b></p><p><b> //構(gòu)造函數(shù)</b></p><p> public Index()</p><p><b> {</b>&l
115、t;/p><p> //創(chuàng)建標簽,并在標簽上放置一張圖片</p><p> jl1=new JLabel(new ImageIcon("image/index1.gif"));</p><p><b> //創(chuàng)建進度條</b></p><p> jpb=new JProgressBar();<
116、;/p><p><b> //設(shè)置進度條屬性</b></p><p> jpb.setStringPainted(true);//顯示當前進度值信息</p><p> jpb.setIndeterminate(false);//確定進度條執(zhí)行完成后不來回滾動</p><p> jpb.setBorderPainted
117、(false);//設(shè)置進度條邊框不顯示</p><p> jpb.setBackground(Color.darkGray);//設(shè)置進度條的背景色</p><p><b> //添加組件</b></p><p> this.add(jl1,BorderLayout.NORTH);</p><p> this.
118、add(jpb,BorderLayout.SOUTH);</p><p><b> //設(shè)置窗體屬性</b></p><p> this.setSize(625,359);</p><p> //設(shè)置窗體顯示的位置</p><p> width=Toolkit.getDefaultToolkit().getScr
119、eenSize().width;</p><p> height=Toolkit.getDefaultToolkit().getScreenSize().height;</p><p> this.setLocation(width/2-200,height/2-150);</p><p><b> //設(shè)置窗口顯示</b></p&
120、gt;<p> this.setVisible(true);</p><p><b> }</b></p><p> //進度條線程的run方法,用于設(shè)置線程的屬性</p><p> public void run() {</p><p> //定義一個數(shù)組,存放進度條顯示時需要的數(shù)據(jù)</p
121、><p> int []progressValue={0,8,35,43,49,56,70,99,100};</p><p> for(int i=0;i<progressValue.length;i++)</p><p><b> {</b></p><p><b> try {</b>
122、</p><p> //休眠1秒,再執(zhí)行</p><p> Thread.sleep(1000);</p><p> } catch (InterruptedException e) {</p><p> // TODO Auto-generated catch block</p><p> e.printS
123、tackTrace();</p><p><b> }</b></p><p> jpb.setValue(progressValue[i]);//取得數(shù)組中的進度值</p><p><b> }</b></p><p> //當進度完成后,執(zhí)行相應的操作,如切換到其他的窗口,同時關(guān)閉進度條
124、窗口等</p><p> new Login();</p><p><b> //關(guān)閉進度條窗口</b></p><p> this.dispose();</p><p><b> }</b></p><p><b> }</b></p&
125、gt;<p> (5) 功能:這是學生/管理員登陸的窗口,根據(jù)權(quán)限不同進入不同的后臺界面</p><p> package com.View;</p><p> import com.SqlConnection.SqlConn;</p><p> import com.Tools.*;</p><p> import
126、java.awt.*;</p><p> import java.awt.event.ActionEvent;</p><p> import java.awt.event.ActionListener;</p><p> import java.io.File;</p><p> import java.sql.ResultSet;
127、</p><p> import javax.imageio.ImageIO;</p><p> import javax.swing.*;</p><p> import javax.swing.border.Border;</p><p> import javax.swing.text.Position;</p>
128、<p> public class Login extends JFrame implements ActionListener{</p><p> //定義登陸窗口需要的組件</p><p> JLabel jl1,jl2,jl3;</p><p> JTextField jtf1;</p><p> JPassword
129、Field jpf1;</p><p> JButton jb1,jb2;</p><p> int width,height;</p><p> //定義用于連接數(shù)據(jù)庫的組件,也就是com.SqlConnection類下的SqlConn方法</p><p> SqlConn sqlconn;</p><p>
130、 //定義用于傳送SQL語句的變量</p><p> String sql;</p><p> //定義一個用于接收登陸驗證返回來的記錄集</p><p> ResultSet rs;</p><p> //聲明用于驗證登陸用戶的模型</p><p> LoginModel loginModel;</
131、p><p><b> int flag;</b></p><p> public static void main(String []args)</p><p><b> {</b></p><p> Login login=new Login();</p><p>&l
132、t;b> }</b></p><p> public Login()</p><p><b> {</b></p><p> //創(chuàng)建登陸所需的組件</p><p> jl1=new JLabel("賬 號:");</p><p> jl1.set
133、Font(MyFont.f1);</p><p> jl1.setBounds(50,50,60,25);</p><p> jl2=new JLabel("密 碼:");</p><p> jl2.setFont(MyFont.f1);</p><p> jl2.setBounds(50,90,60,25);&l
134、t;/p><p> jtf1=new JTextField(20);</p><p> jtf1.setBounds(110,50,150,25);</p><p> //設(shè)置文本框下凹,三維效果</p><p> jtf1.setBorder(BorderFactory.createLoweredBevelBorder());</
135、p><p> jpf1=new JPasswordField(20);</p><p> jpf1.setBorder(BorderFactory.createLoweredBevelBorder());</p><p> jpf1.setBounds(110,90,150,25);</p><p> jb1=new JButton(&q
136、uot;登 陸");</p><p> jb1.setFont(MyFont.f1);</p><p> jb1.addActionListener(this);</p><p> jb1.setBounds(95,130,75,25);</p><p> jb2=new JButton("取消");&l
137、t;/p><p> jb2.setFont(MyFont.f1);</p><p> jb2.addActionListener(this);</p><p> jb2.setBounds(185,130,75,25);</p><p><b> //添加到窗體</b></p><p> /
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java學生管理系統(tǒng)課程設(shè)計報告
- java學生管理系統(tǒng)課程設(shè)計
- 學生管理系統(tǒng)課程設(shè)計(java)
- 學生管理系統(tǒng)-java課程設(shè)計
- 學生管理系統(tǒng)課程設(shè)計(java)
- java課程設(shè)計報告---學生成績管理系統(tǒng)
- java學生成績管理系統(tǒng)課程設(shè)計報告
- java學生成績管理系統(tǒng)課程設(shè)計報告
- java課程設(shè)計報告--學生信息管理系統(tǒng)
- java課程設(shè)計報告---學生信息管理系統(tǒng)
- java學生成績管理系統(tǒng)課程設(shè)計報告
- java課程設(shè)計報告---學生考試系統(tǒng)
- unix課程設(shè)計--java學生管理系統(tǒng)
- java課程設(shè)計---學生學籍管理系統(tǒng)
- java課程設(shè)計報告----教室管理系統(tǒng)
- java課程設(shè)計報告--雇員管理系統(tǒng)
- java課程設(shè)計--學生成績管理系統(tǒng)
- java課程設(shè)計--學生黨員管理系統(tǒng)
- java課程設(shè)計--學生信息管理系統(tǒng)
- 學生信息管理系統(tǒng)java課程設(shè)計
評論
0/150
提交評論