版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> JAVA程序設(shè)計(jì) 課程設(shè)計(jì)報(bào)告</p><p> 課 題: 學(xué)生信息管理系統(tǒng) </p>&
2、lt;p> 姓 名:
3、 </p><p> 學(xué) 號(hào): </p&g
4、t;<p> 設(shè)計(jì)時(shí)間: 2014.6.23—2014.6.27 </p><p><b> 目 錄</b></p><p> 1.系統(tǒng)描述.................
5、....................3</p><p> 1.1需要實(shí)現(xiàn)的功能............................3</p><p> 1.2 設(shè)計(jì)的目的...............................3</p><p> 2.分析與設(shè)計(jì)...................................4</p&
6、gt;<p> 2.1 功能模塊劃分............................4</p><p> 2.2 數(shù)據(jù)庫(kù)結(jié)構(gòu)描述..........................4</p><p> 2.3 系統(tǒng)詳細(xì)設(shè)計(jì)文檔........................5</p><
7、;p> 2.4 各個(gè)模塊實(shí)現(xiàn)方法描述....................9</p><p> 2.5 測(cè)試數(shù)據(jù)及期望結(jié)果......................9</p><p> 3.系統(tǒng)測(cè)試.....................................12</p><p> 4.總結(jié)或心得體會(huì)................
8、...............18</p><p> 5.參考文獻(xiàn).....................................19</p><p> 6.附錄.........................................19</p><p><b> 1.系統(tǒng)描述</b></p><p
9、> 1.1需要實(shí)現(xiàn)的功能</p><p> (1)錄入學(xué)生基本信息的功能</p><p> 學(xué)生基本信息主要包括:學(xué)號(hào)、姓名、性別、年齡、出生地、專業(yè)、班級(jí)、總學(xué)分,在插入時(shí),如果數(shù)據(jù)庫(kù)則已經(jīng)存在該學(xué)號(hào),則不能再插入該學(xué)號(hào)。</p><p> (2)修改學(xué)生基本信息的功能</p><p> 在管理員模式下,只要在表格中選中某個(gè)
10、學(xué)生,就可以對(duì)該學(xué)生信息進(jìn)行修改。</p><p> (3)查詢學(xué)生基本信息的功能</p><p> 可使用 “姓名”對(duì)已存有的學(xué)生資料進(jìn)行查詢。</p><p> (4)刪除學(xué)生基本信息的功能 </p><p> 在管理員模式下,只要選擇表格中的某個(gè)學(xué)生,就可以刪除該學(xué)生。</p><p><b>
11、 (5)用戶登陸</b></p><p> 用不同的登錄權(quán)限可以進(jìn)入不同的后臺(tái)界面,從而實(shí)現(xiàn)權(quán)限操作。</p><p> (6)用戶登陸信息設(shè)置</p><p> 可以修改用戶登陸密碼</p><p><b> 1.2 設(shè)計(jì)的目的</b></p><p> 本程序用于用戶對(duì)
12、少量學(xué)生信息進(jìn)行簡(jiǎn)單的管理,本程序針對(duì)于對(duì)安全系數(shù)要求不高,操作不是很復(fù)雜的小型客戶開(kāi)發(fā)。本程序的管理員可以實(shí)現(xiàn)對(duì)學(xué)生信息的錄入、查詢、修改、刪除等操作,同時(shí)支持查看所有學(xué)生信息,學(xué)生只能查詢自己的信息。程序功能完善,界面簡(jiǎn)潔美觀,布局合理,操作簡(jiǎn)便,簡(jiǎn)單易用,任何人可輕松操作。</p><p> 同時(shí),本程序?qū)ο到y(tǒng)要求配置較低,運(yùn)行速度快,而卻對(duì)數(shù)據(jù)庫(kù)管理要求較低。本程序數(shù)據(jù)庫(kù)采用office2007版本的a
13、ccess數(shù)據(jù)庫(kù)(.accdb)進(jìn)行數(shù)據(jù)存儲(chǔ),該數(shù)據(jù)庫(kù)可實(shí)現(xiàn)關(guān)系較為簡(jiǎn)單的數(shù)據(jù)管理。</p><p><b> 2.分析與設(shè)計(jì): </b></p><p><b> 2.1功能模塊劃分</b></p><p><b> 圖1 功能模塊圖</b></p><p> 2.2
14、數(shù)據(jù)庫(kù)結(jié)構(gòu)描述</p><p> ?。?)數(shù)據(jù)庫(kù)E-R模型</p><p> 圖2 學(xué)生局部E-R圖</p><p> 圖3 登陸用戶局部E-R圖</p><p> (2)數(shù)據(jù)庫(kù)關(guān)系模型——二維</p><p> 表1 學(xué)生表(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)詳細(xì)設(shè)計(jì)文檔</p><p> 表3 包以及包所包含的類</p><p> 表4 SqlConn類</p>
16、<p><b> 表5 Index類</b></p><p> 表6 Login類 </p><p> 2.4各個(gè)模塊實(shí)現(xiàn)方法描述</p><p> sqlConnection是連接數(shù)據(jù)庫(kù)??蓪?shí)現(xiàn)發(fā)送SQL語(yǔ)句給數(shù)據(jù)庫(kù),獲得數(shù)據(jù)庫(kù)返回的記錄集,實(shí)現(xiàn)查詢、添加、修改、刪除學(xué)生記錄,關(guān)閉數(shù)據(jù)庫(kù)連接等功能。Myfont是設(shè)置窗體各
17、組件的字體。Index是使用進(jìn)度條與線程結(jié)合實(shí)現(xiàn)閃屏,初始化進(jìn)入登陸界面。Login是登陸界面,管理員與用戶登陸,可以分別登入管理員和用戶,管理員與用戶的登錄進(jìn)去后可分別按自己的權(quán)限操作。</p><p> 2.5 測(cè)試數(shù)據(jù)及期望結(jié)果</p><p> 在登入窗口可以分別登入管理員和用戶的賬號(hào)及密碼,會(huì)進(jìn)入權(quán)限不同的頁(yè)面,管理員可以實(shí)現(xiàn)查詢、添加、修改、刪除學(xué)生記錄,還可以查詢,修改
18、、刪除管理員表格。而學(xué)生只能查詢學(xué)生記錄。例如: </p><p><b> 圖1登入管理員</b></p><p><b> 圖2查詢?nèi)啃畔?</b></p><p><b> 圖3查詢個(gè)人信息</b><
19、;/p><p><b> 圖4添加學(xué)生信息</b></p><p><b> 圖5修改學(xué)生信息</b></p><p><b> 圖6修改學(xué)生信息</b></p><p> 圖7查詢肖林衛(wèi)婕的成績(jī)</p><p><b> 系統(tǒng)測(cè)試<
20、;/b></p><p><b> 圖8系統(tǒng)啟動(dòng)界面</b></p><p> 圖9 用戶登陸界面</p><p> 圖10 班委(管理員)界面,即具有完全權(quán)限的用戶后臺(tái)界面</p><p> 圖11 班委(管理員)界面子菜單項(xiàng)顯示</p><p> 圖12 普通用戶(學(xué)生)界面
21、子菜單項(xiàng)顯示</p><p> 圖13學(xué)生信息查詢結(jié)果顯示</p><p> 圖14 添加學(xué)生信息界面</p><p> 圖15 修改學(xué)生信息界面</p><p> 圖16 顯示所有學(xué)生信息</p><p> 圖17當(dāng)沒(méi)有選中一行的時(shí)候,不能修改和刪除,并彈出提示警告框</p><p&g
22、t; 圖18 刪除文件時(shí)的確認(rèn)對(duì)話框(當(dāng)點(diǎn)擊確認(rèn)時(shí)才會(huì)刪除,點(diǎn)擊取消,則返回主界面)</p><p> 圖19 顯示所有登陸用戶信息</p><p> 圖20 修改用戶登陸密碼,選中某個(gè)用戶進(jìn)行修改</p><p> 圖21 關(guān)閉用戶記錄,即不顯示所有用戶信息</p><p> 圖22 關(guān)閉學(xué)生記錄</p><p
23、> 圖23 退出系統(tǒng)確認(rèn)對(duì)話框,只有確認(rèn)時(shí)才會(huì)退出系統(tǒng),否則返加主界面</p><p> 圖24 普通學(xué)生登陸后的界面(即不能對(duì)學(xué)生信息進(jìn)行添加,修改和刪除以及用戶密碼修改,對(duì)應(yīng)的這幾項(xiàng)灰色顯示,不可點(diǎn)擊)</p><p><b> 四、總結(jié)或心得體會(huì)</b></p><p> 1)在寫代碼之前,在大腦里一定要把思路理清楚,不能
24、模模糊糊,一定要把功能圖和流程圖畫出來(lái),然后根據(jù)它去實(shí)現(xiàn)每一個(gè)功能塊,要多分析,培養(yǎng)一種良好的邏輯思維能力。</p><p> 2)在寫代碼的過(guò)程中,一定要采取就近原則,同一個(gè)功能,或者對(duì)同一個(gè)組件的設(shè)置一般要寫在一塊,這樣寫的程序比較清晰,不容易出錯(cuò),也便于查找。</p><p> 3)要養(yǎng)成良好的注釋習(xí)慣,一是有利于別人閱讀你的程序,同時(shí)也有利于自己以后再看,就能很快的讀懂程序,提
25、高效率。</p><p> 4)把功能模塊化,即把實(shí)現(xiàn)相同功能的代碼段封裝成一到一個(gè)類或者一個(gè)方法中,實(shí)現(xiàn)的時(shí)候調(diào)用即可,這樣能提高代碼的可讀性</p><p> 5)養(yǎng)成創(chuàng)建包來(lái)存放不同功能的類,使系統(tǒng)的結(jié)構(gòu)更加模塊化和規(guī)范化。</p><p> 6)在編寫代碼的時(shí)候,一定要邊寫邊調(diào)試,要適時(shí)的設(shè)置斷點(diǎn),或者把某些變量的值輸出到控制臺(tái),通過(guò)觀察和分析變量的值
26、,便于判斷問(wèn)題所在,同時(shí),需要捕獲異常的一定要把異常信息打印出來(lái),便于分析問(wèn)題。</p><p> 在老師悉心的指導(dǎo)下,我順利地完成了本次課程設(shè)計(jì),并取得了很大的收獲,對(duì)以后的軟件開(kāi)發(fā)奠定了一定的基礎(chǔ)!</p><p><b> 參考文獻(xiàn)</b></p><p> ?。?)趙海廷.Java語(yǔ)言程序設(shè)計(jì)教程.北京:清華大學(xué)出版社.2012&l
27、t;/p><p> ?。?)孫印杰,劉斌,孫玉強(qiáng).Java編程案例精解.北京:電子工業(yè)出版 社.2005</p><p> ?。?)何梅.java編程實(shí)例系列叢書.北京:清華大學(xué)出版社,2002</p><p> ?。?)楊昭.編著二級(jí)Java語(yǔ)言程序設(shè)計(jì)教程.北京:中國(guó)水利水電出版社,2006</p><p> ?。?)趙文靖編著.Java
28、程序設(shè)計(jì)基礎(chǔ)與上機(jī)指導(dǎo).北京:清華大學(xué)出版社,2006</p><p><b> 六、附錄</b></p><p> (1)功能:連接數(shù)據(jù)庫(kù)</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> //實(shí)現(xiàn)查詢功能的方法</p><p> public ResultSet sqlQuery(String sql)</p><p><b> {</b></p><p><b> try {</b></p><p><b
32、> //加載驅(qū)動(dòng)</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> //實(shí)現(xiàn)添加,修改功能 的方法</p><p> public void sqlUpdate(String sql)</p><p><b> {</b></p><p><b
35、> try {</b></p><p><b> //加載驅(qū)動(dòng)</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();//返回一個(gè)值,如果為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> //實(shí)現(xiàn)刪除學(xué)生記錄的方法</p><p> public void sqlDelete(String sql)</p><p><b> {</b
40、></p><p><b> try {</b></p><p><b> //加載驅(qū)動(dòng)</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();//返回一個(gè)值,如果為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ù)刪除失??!");</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> //實(shí)現(xiàn)關(guān)閉數(shù)據(jù)庫(kù)連接的功能</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> ?。?)功能:這是一個(gè)字體包,用于美化窗口的字體</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> ?。?) 功能:這是添加學(xué)生的界面,通過(guò)模式對(duì)話(即繼承JDialog對(duì)話框)來(lái)實(shí)現(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; //定義添加學(xué)生信息的相關(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;//用于判斷到底點(diǎn)擊了添加還是取消,來(lái)決定是否
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> //這是添加學(xué)生界面的函
55、數(shù)封裝</p><p> public void addView()</p><p><b> {</b></p><p> jl1=new JLabel("學(xué) 號(hào):");</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("班 級(jí):");</p><p>
60、; jl7.setFont(MyFont.f1);</p><p> jl7.setBounds(20, 180, 60, 25);</p><p> jl8=new JLabel("總學(xué)分:");</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、方法,實(shí)現(xiàn)模式對(duì)話</p><p> super(Main,title,model);</p><p> //調(diào)用添加學(xué)生信息界面的的方法</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è)置背景必須是在顯示窗口前面,否則不能顯示出來(lái)</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; //用于判斷輸入的學(xué)號(hào)是否存在時(shí),如果存在則返回該學(xué)號(hào),否則返回null,因此在這里,定義一個(gè)用于接收該返回的學(xué)號(hào)</p><p> //并設(shè)置該No的初始值為空,否則報(bào)錯(cuò)。</p><p> String No = null ;</p><p> //當(dāng)點(diǎn)擊了添加按鈕</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, "請(qǐng)輸入學(xué)號(hào)!");</p><p> r
81、eturn;//返回到輸入界面,如果沒(méi)有return語(yǔ)句,則會(huì)回到主界面</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, "請(qǐng)輸入姓名!");</p><p> return;//返回到輸入界面,如果沒(méi)有return語(yǔ)句,則會(huì)回到主界面</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, "請(qǐng)輸入性別!");</p
84、><p> return;//返回到輸入界面,如果沒(méi)有return語(yǔ)句,則會(huì)回到主界面</p><p><b> }</b></p><p> ////對(duì)于年齡,則需要進(jìn)行兩個(gè)判斷,一個(gè)是不能為空,另一個(gè)必須是int型,下面用異常來(lái)判斷輸入的學(xué)生年齡是否是整型數(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, "請(qǐng)輸入一個(gè)整數(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, "請(qǐng)輸入出生地!");</p><p> return;//返回到輸入界面,如果沒(méi)有return語(yǔ)句,則會(huì)回到主界面</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, "請(qǐng)輸入專業(yè)!");</p><p> return;//返回到輸入界面,如果沒(méi)有return語(yǔ)句,則會(huì)回到
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, "請(qǐng)輸入班號(hào)!");</p><p> return;//返回到輸入界面,如果沒(méi)有return語(yǔ)句,則會(huì)回到主界面</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, "請(qǐng)輸入總學(xué)分!");</p><p> return;//返回到輸入界面,如果沒(méi)有return語(yǔ)句,則會(huì)回到主界面</p><p><b> }</b></p><p> } catch (Exc
96、eption e2) {</p><p> JOptionPane.showMessageDialog(this, "請(qǐng)輸入一個(gè)整數(shù)或小數(shù)的總學(xué)分!");</p><p><b> return;</b></p><p> // TODO: handle exception</p><p>&l
97、t;b> }</b></p><p> //**********************************************//</p><p> //首先先判斷該主鍵是否在數(shù)據(jù)庫(kù)中是否存在,其次分別判斷性別是否為“男”或者“女”,年齡是否為數(shù)字,總學(xué)分是否為浮點(diǎn)型或雙精度型</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);//看到底是否存在該學(xué)生的學(xué)號(hào),如果存在,則返回該學(xué)號(hào),不存在,則為空。</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ù)庫(kù)連接</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ù)庫(kù)連接</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, "性別應(yīng)該是男或女!");</p><p><b> }</b></p><p><b> }</b><
106、;/p><p><b> else </b></p><p><b> {</b></p><p> JOptionPane.showMessageDialog(this, "該學(xué)號(hào)已經(jīng)存在,請(qǐng)輸入新的學(xué)號(hào)!");</p><p><b> }</b>&
107、lt;/p><p><b> }</b></p><p> //如果點(diǎn)擊了取消按鈕,則關(guān)閉模式對(duì)話框</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> ?。?)功能:實(shí)現(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> //定義與進(jìn)度條相關(guān)的組件</p><p> JProgressBar jpb;//定義進(jìn)度條</p><p> JLabel jl1;//用于在窗體的北部放一張圖片,南部是進(jìn)度條</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、動(dòng)線程</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)建標(biāo)簽,并在標(biāo)簽上放置一張圖片</p><p> jl1=new JLabel(new ImageIcon("image/index1.gif"));</p><p><b> //創(chuàng)建進(jìn)度條</b></p><p> jpb=new JProgressBar();<
116、;/p><p><b> //設(shè)置進(jìn)度條屬性</b></p><p> jpb.setStringPainted(true);//顯示當(dāng)前進(jìn)度值信息</p><p> jpb.setIndeterminate(false);//確定進(jìn)度條執(zhí)行完成后不來(lái)回滾動(dòng)</p><p> jpb.setBorderPainted
117、(false);//設(shè)置進(jìn)度條邊框不顯示</p><p> jpb.setBackground(Color.darkGray);//設(shè)置進(jìn)度條的背景色</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> //進(jìn)度條線程的run方法,用于設(shè)置線程的屬性</p><p> public void run() {</p><p> //定義一個(gè)數(shù)組,存放進(jìn)度條顯示時(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ù)組中的進(jìn)度值</p><p><b> }</b></p><p> //當(dāng)進(jìn)度完成后,執(zhí)行相應(yīng)的操作,如切換到其他的窗口,同時(shí)關(guān)閉進(jìn)度條
124、窗口等</p><p> new Login();</p><p><b> //關(guān)閉進(jìn)度條窗口</b></p><p> this.dispose();</p><p><b> }</b></p><p><b> }</b></p&
125、gt;<p> ?。?) 功能:這是學(xué)生/管理員登陸的窗口,根據(jù)權(quán)限不同進(jìn)入不同的后臺(tái)界面</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ù)庫(kù)的組件,也就是com.SqlConnection類下的SqlConn方法</p><p> SqlConn sqlconn;</p><p>
130、 //定義用于傳送SQL語(yǔ)句的變量</p><p> String sql;</p><p> //定義一個(gè)用于接收登陸驗(yàn)證返回來(lái)的記錄集</p><p> ResultSet rs;</p><p> //聲明用于驗(yàn)證登陸用戶的模型</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("賬 號(hào):");</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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java學(xué)生管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- java學(xué)生管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生管理系統(tǒng)課程設(shè)計(jì)(java)
- 學(xué)生管理系統(tǒng)-java課程設(shè)計(jì)
- 學(xué)生管理系統(tǒng)課程設(shè)計(jì)(java)
- java課程設(shè)計(jì)報(bào)告---學(xué)生成績(jī)管理系統(tǒng)
- java學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- java學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)報(bào)告--學(xué)生信息管理系統(tǒng)
- java課程設(shè)計(jì)報(bào)告---學(xué)生信息管理系統(tǒng)
- java學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)報(bào)告---學(xué)生考試系統(tǒng)
- unix課程設(shè)計(jì)--java學(xué)生管理系統(tǒng)
- java課程設(shè)計(jì)---學(xué)生學(xué)籍管理系統(tǒng)
- java課程設(shè)計(jì)報(bào)告----教室管理系統(tǒng)
- java課程設(shè)計(jì)報(bào)告--雇員管理系統(tǒng)
- java課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- java課程設(shè)計(jì)--學(xué)生黨員管理系統(tǒng)
- java課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)java課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論