Java課程設(shè)計(jì)報(bào)告學(xué)生管理系統(tǒng).doc

上傳人:good****022 文檔編號(hào):116536565 上傳時(shí)間:2022-07-05 格式:DOC 頁數(shù):41 大?。?.66MB
收藏 版權(quán)申訴 舉報(bào) 下載
Java課程設(shè)計(jì)報(bào)告學(xué)生管理系統(tǒng).doc_第1頁
第1頁 / 共41頁
Java課程設(shè)計(jì)報(bào)告學(xué)生管理系統(tǒng).doc_第2頁
第2頁 / 共41頁
Java課程設(shè)計(jì)報(bào)告學(xué)生管理系統(tǒng).doc_第3頁
第3頁 / 共41頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《Java課程設(shè)計(jì)報(bào)告學(xué)生管理系統(tǒng).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《Java課程設(shè)計(jì)報(bào)告學(xué)生管理系統(tǒng).doc(41頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 JAVA程序設(shè)計(jì) 課程設(shè)計(jì)報(bào)告課 題: 學(xué)生信息管理系統(tǒng) 姓 名: 學(xué) 號(hào): 201217020113 設(shè)計(jì)時(shí)間:2014.6.232014.6.27評(píng)閱意見:評(píng)定成績:指導(dǎo)老師簽名: 年 月 日 目 錄1.系統(tǒng)描述.3 1.1需要實(shí)現(xiàn)的功能.3 1.2 設(shè)計(jì)的目的.32.分析與設(shè)計(jì).4 2.1功能模塊劃分.4 2.2 數(shù)據(jù)庫結(jié)構(gòu)描述.4 2.3系統(tǒng)詳細(xì)設(shè)計(jì)文檔.5 2.4 各個(gè)模塊實(shí)現(xiàn)方法描述.9 2.5 測試數(shù)據(jù)及期望結(jié)果.93.系統(tǒng)測試.124.總結(jié)或心得體會(huì).185.參考文獻(xiàn).196.附錄.191.系統(tǒng)描述1.1需要實(shí)現(xiàn)的功能(1)錄入學(xué)生基本信息的功能 學(xué)生基本信息主要包括:學(xué)號(hào)、

2、姓名、性別、年齡、出生地、專業(yè)、班級(jí)、總學(xué)分,在插入時(shí),如果數(shù)據(jù)庫則已經(jīng)存在該學(xué)號(hào),則不能再插入該學(xué)號(hào)。(2)修改學(xué)生基本信息的功能在管理員模式下,只要在表格中選中某個(gè)學(xué)生,就可以對(duì)該學(xué)生信息進(jìn)行修改。(3)查詢學(xué)生基本信息的功能可使用 “姓名”對(duì)已存有的學(xué)生資料進(jìn)行查詢。(4)刪除學(xué)生基本信息的功能 在管理員模式下,只要選擇表格中的某個(gè)學(xué)生,就可以刪除該學(xué)生。(5)用戶登陸用不同的登錄權(quán)限可以進(jìn)入不同的后臺(tái)界面,從而實(shí)現(xiàn)權(quán)限操作。(6)用戶登陸信息設(shè)置可以修改用戶登陸密碼1.2 設(shè)計(jì)的目的本程序用于用戶對(duì)少量學(xué)生信息進(jìn)行簡單的管理,本程序針對(duì)于對(duì)安全系數(shù)要求不高,操作不是很復(fù)雜的小型客戶開發(fā)

3、。本程序的管理員可以實(shí)現(xiàn)對(duì)學(xué)生信息的錄入、查詢、修改、刪除等操作,同時(shí)支持查看所有學(xué)生信息,學(xué)生只能查詢自己的信息。程序功能完善,界面簡潔美觀,布局合理,操作簡便,簡單易用,任何人可輕松操作。同時(shí),本程序?qū)ο到y(tǒng)要求配置較低,運(yùn)行速度快,而卻對(duì)數(shù)據(jù)庫管理要求較低。本程序數(shù)據(jù)庫采用office2007版本的access數(shù)據(jù)庫(.accdb)進(jìn)行數(shù)據(jù)存儲(chǔ),該數(shù)據(jù)庫可實(shí)現(xiàn)關(guān)系較為簡單的數(shù)據(jù)管理。2.分析與設(shè)計(jì): 2.1功能模塊劃分學(xué)生信息管理系統(tǒng)瀏覽學(xué)生信息查詢學(xué)生信息添加學(xué)生信息修改學(xué)生信息刪除學(xué)生信息普通學(xué)生(用戶)模塊班委(管理員)模塊瀏覽學(xué)生信息查詢學(xué)生信息學(xué)生管理登陸管理修改登陸密碼顯示登陸

4、用戶 圖1 功能模塊圖2.2數(shù)據(jù)庫結(jié)構(gòu)描述 (1)數(shù)據(jù)庫E-R模型 圖2 學(xué)生局部E-R圖 圖3 登陸用戶局部E-R圖(2)數(shù)據(jù)庫關(guān)系模型二維 表1 學(xué)生表(student)字段數(shù)據(jù)類型說明stuIdnvarchar(30)學(xué)號(hào)stuNamenvarchar(30)姓名stuSexnvarchar(30)性別stuAgeint年齡stuJgnvarchar(30)籍貫stuZynvarchar(30)專業(yè)classIdnvarchar(30)班號(hào)stuSoursenumeric(5,2)總學(xué)分 表2 登陸權(quán)限表(login)字段數(shù)據(jù)類型說明userIdnvarchar(30)用戶名(賬號(hào)),即

5、登陸Idpasswordnvarchar(30)登陸密碼positionnvarchar(30)職位,如班委,普通學(xué)生 (3)數(shù)據(jù)流圖進(jìn)度條(閃屏)用戶登陸登陸驗(yàn)證falsetrue班委(管理員)界面普通學(xué)生界面查詢添加修改刪除查詢顯示班委(管理員員 )普通學(xué)生(用戶)退出退出系統(tǒng)結(jié)束結(jié)束退出系統(tǒng)truefalsefalsetrue修改用戶登陸密碼顯示登陸用戶信息 圖4 數(shù)據(jù)流圖2.3系統(tǒng)詳細(xì)設(shè)計(jì)文檔 表3 包以及包所包含的類包名(package)所包含的類說明com.sqlConnectionSqlConn.java用于連接數(shù)據(jù)庫com.ToolsMyFont.java用于設(shè)置窗體各組件的字

6、體com.ViewIndex.java使用進(jìn)度條與線程結(jié)合實(shí)現(xiàn)閃屏,初始化進(jìn)入登陸界面Login.java登陸界面,管理員與用戶登陸ManageView.java管理員界面,可進(jìn)行所有操作StuMainView.java普通學(xué)生(用戶)界面,只能進(jìn)行部分操作StuQuery.java學(xué)生信息查詢模塊AddStu.java添加學(xué)生信息模塊UpdateStu.java更新學(xué)生信息模塊TableModel.java表數(shù)據(jù)更新模型,學(xué)于更新并通過表來顯示信息LoginModel.java用戶登陸驗(yàn)證模型PurViewModel.java用戶權(quán)限設(shè)置界面UpdateLogin.java用戶賬戶修改界面

7、表4 SqlConn類類名類的成員屬性與方法說明SqlConn.javaConnection ct得到與數(shù)據(jù)庫的連接PreparedStatement ps實(shí)現(xiàn)發(fā)送SQL語句給數(shù)據(jù)庫ResultSet rs獲得數(shù)據(jù)庫返回的記錄集public ResultSet sqlQuery(String sql)實(shí)現(xiàn)查詢功能的方法public void sqlUpdate(String sql)實(shí)現(xiàn)添加,修改功能 的方法public void sqlDelete(String sql)實(shí)現(xiàn)刪除學(xué)生記錄的方法public void closeSqlConn()實(shí)現(xiàn)關(guān)閉數(shù)據(jù)庫連接的功能 表5 Index類類名

8、類的成員屬性與方法說明Index.javaJProgressBar jpb定義進(jìn)度條JLabel jl1用于在窗體的北部放一張圖片,南部是進(jìn)度條int width,height用于獲取顯示屏分辨率大小,以便設(shè)置窗口的默認(rèn)位置public Index()初始化窗口的相關(guān)組件public void run()進(jìn)度條線程的run方法,用于設(shè)置線程的屬性int progressValue定義一個(gè)數(shù)組,存放進(jìn)度條顯示時(shí)需要的數(shù)據(jù) 表6 Login類 類名類的成員屬性與方法說明Login.javaJLabel jl1,jl2,jl3定義三個(gè)標(biāo)簽組件JTextField jtf1定義一個(gè)用戶輸入賬號(hào)的文本框

9、JPasswordField jpf1密碼輸入框JButton jb1,jb2提交和清除按鈕int width,height用于設(shè)置窗口初始位置的變量,即獲取顯示器的大小ResultSet rs用于接收從數(shù)據(jù)庫返回來的記錄集LoginModel loginModel自定義一個(gè)模型,把值到登陸驗(yàn)證模型public Login()構(gòu)造方法,用于初始化登陸窗口的相關(guān)組件class BackImage extends JPanel創(chuàng)建一個(gè)內(nèi)部類,并繼承JPanle,用于畫背景圖片 2.4各個(gè)模塊實(shí)現(xiàn)方法描述 sqlConnection是連接數(shù)據(jù)庫。可實(shí)現(xiàn)發(fā)送SQL語句給數(shù)據(jù)庫,獲得數(shù)據(jù)庫返回的記錄集,

10、實(shí)現(xiàn)查詢、添加、修改、刪除學(xué)生記錄,關(guān)閉數(shù)據(jù)庫連接等功能。Myfont是設(shè)置窗體各組件的字體。Index是使用進(jìn)度條與線程結(jié)合實(shí)現(xiàn)閃屏,初始化進(jìn)入登陸界面。Login是登陸界面,管理員與用戶登陸,可以分別登入管理員和用戶,管理員與用戶的登錄進(jìn)去后可分別按自己的權(quán)限操作。2.5 測試數(shù)據(jù)及期望結(jié)果在登入窗口可以分別登入管理員和用戶的賬號(hào)及密碼,會(huì)進(jìn)入權(quán)限不同的頁面,管理員可以實(shí)現(xiàn)查詢、添加、修改、刪除學(xué)生記錄,還可以查詢,修改、刪除管理員表格。而學(xué)生只能查詢學(xué)生記錄。例如: 圖1登入管理員 圖2查詢?nèi)啃畔?圖3查詢個(gè)人信息 圖4添加學(xué)生信息 圖5修改學(xué)生信息 圖6修改學(xué)生信息 圖7查詢肖林衛(wèi)婕

11、的成績3. 系統(tǒng)測試 圖8系統(tǒng)啟動(dòng)界面圖9 用戶登陸界面 圖10 班委(管理員)界面,即具有完全權(quán)限的用戶后臺(tái)界面 圖11 班委(管理員)界面子菜單項(xiàng)顯示 圖12 普通用戶(學(xué)生)界面子菜單項(xiàng)顯示圖13學(xué)生信息查詢結(jié)果顯示圖14 添加學(xué)生信息界面圖15 修改學(xué)生信息界面 圖16 顯示所有學(xué)生信息 圖17當(dāng)沒有選中一行的時(shí)候,不能修改和刪除,并彈出提示警告框 圖18 刪除文件時(shí)的確認(rèn)對(duì)話框(當(dāng)點(diǎn)擊確認(rèn)時(shí)才會(huì)刪除,點(diǎn)擊取消,則返回主界面) 圖19 顯示所有登陸用戶信息 圖20 修改用戶登陸密碼,選中某個(gè)用戶進(jìn)行修改 圖21 關(guān)閉用戶記錄,即不顯示所有用戶信息 圖22 關(guān)閉學(xué)生記錄 圖23 退出系統(tǒng)

12、確認(rèn)對(duì)話框,只有確認(rèn)時(shí)才會(huì)退出系統(tǒng),否則返加主界面 圖24 普通學(xué)生登陸后的界面(即不能對(duì)學(xué)生信息進(jìn)行添加,修改和刪除以及用戶密碼修改,對(duì)應(yīng)的這幾項(xiàng)灰色顯示,不可點(diǎn)擊)四、總結(jié)或心得體會(huì)1)在寫代碼之前,在大腦里一定要把思路理清楚,不能模模糊糊,一定要把功能圖和流程圖畫出來,然后根據(jù)它去實(shí)現(xiàn)每一個(gè)功能塊,要多分析,培養(yǎng)一種良好的邏輯思維能力。2)在寫代碼的過程中,一定要采取就近原則,同一個(gè)功能,或者對(duì)同一個(gè)組件的設(shè)置一般要寫在一塊,這樣寫的程序比較清晰,不容易出錯(cuò),也便于查找。3)要養(yǎng)成良好的注釋習(xí)慣,一是有利于別人閱讀你的程序,同時(shí)也有利于自己以后再看,就能很快的讀懂程序,提高效率。4)把功

13、能模塊化,即把實(shí)現(xiàn)相同功能的代碼段封裝成一到一個(gè)類或者一個(gè)方法中,實(shí)現(xiàn)的時(shí)候調(diào)用即可,這樣能提高代碼的可讀性5)養(yǎng)成創(chuàng)建包來存放不同功能的類,使系統(tǒng)的結(jié)構(gòu)更加模塊化和規(guī)范化。6)在編寫代碼的時(shí)候,一定要邊寫邊調(diào)試,要適時(shí)的設(shè)置斷點(diǎn),或者把某些變量的值輸出到控制臺(tái),通過觀察和分析變量的值,便于判斷問題所在,同時(shí),需要捕獲異常的一定要把異常信息打印出來,便于分析問題。在老師悉心的指導(dǎo)下,我順利地完成了本次課程設(shè)計(jì),并取得了很大的收獲,對(duì)以后的軟件開發(fā)奠定了一定的基礎(chǔ)!5、 參考文獻(xiàn)(1)趙海廷.Java語言程序設(shè)計(jì)教程.北京:清華大學(xué)出版社.2012(2)孫印杰,劉斌,孫玉強(qiáng).Java編程案例精解

14、.北京:電子工業(yè)出版 社.2005(3)何梅.java編程實(shí)例系列叢書.北京:清華大學(xué)出版社,2002(4)楊昭.編著二級(jí)Java語言程序設(shè)計(jì)教程.北京:中國水利水電出版社,2006(5)趙文靖編著.Java程序設(shè)計(jì)基礎(chǔ)與上機(jī)指導(dǎo).北京:清華大學(xué)出版社,2006六、附錄(1)功能:連接數(shù)據(jù)庫package com.SqlConnection;import java.sql.*;import com.View.AddStu;public class SqlConn Connection ct=null;PreparedStatement ps=null;ResultSet rs=null;Str

15、ing driver=sun.jdbc.odbc.JdbcOdbcDriver;String dburl=jdbc:odbc:stuSystem;String userName=;String password=;/實(shí)現(xiàn)查詢功能的方法public ResultSet sqlQuery(String sql)try /加載驅(qū)動(dòng)Class.forName(driver);ct=DriverManager.getConnection(dburl,userName,password);ps=ct.prepareStatement(sql);rs=ps.executeQuery(); catch (Ex

16、ception e) e.printStackTrace();/ TODO: handle exceptionreturn rs;/實(shí)現(xiàn)添加,修改功能 的方法public void sqlUpdate(String sql)try /加載驅(qū)動(dòng)Class.forName(driver);ct=DriverManager.getConnection(dburl,userName,password);ps=ct.prepareStatement(sql);/執(zhí)行添加,更新操作int i=ps.executeUpdate();/返回一個(gè)值,如果為1則表示添加成功。if(i=1)System.out.p

17、rintln(數(shù)據(jù)添加/修改成功!);elseSystem.out.println(數(shù)據(jù)添加/修改失??!); catch (Exception e) e.printStackTrace();/ TODO: handle exception/實(shí)現(xiàn)刪除學(xué)生記錄的方法public void sqlDelete(String sql)try /加載驅(qū)動(dòng)System.out.println(ok);Class.forName(driver);ct=DriverManager.getConnection(dburl,userName,password);ps=ct.prepareStatement(sql

18、);System.out.println(ok1);/執(zhí)行添加,更新操作int i=ps.executeUpdate();/返回一個(gè)值,如果為1則表示刪除成功。if(i=1)System.out.println(數(shù)據(jù)刪除成功!);elseSystem.out.println(數(shù)據(jù)刪除失?。?; catch (Exception e) e.printStackTrace();/ TODO: handle exception/實(shí)現(xiàn)關(guān)閉數(shù)據(jù)庫連接的功能public void closeSqlConn()try if(rs!=null)rs.close();if(ps!=null)ps.close()

19、;if(ct!=null)ct.close(); catch (Exception e) e.printStackTrace();/ TODO: handle exception(2)功能:這是一個(gè)字體包,用于美化窗口的字體package com.Tools;import java.awt.Font;public class MyFont public static Font f1=new Font(宋體,Font.PLAIN,15);public static Font f2=new Font(宋體,Font.PLAIN,13);(3) 功能:這是添加學(xué)生的界面,通過模式對(duì)話(即繼承JDia

20、log對(duì)話框)來實(shí)現(xiàn) package com.View;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.ResultSet;import javax.swing.*;import com.SqlConnection.SqlConn;import com.Tools.MyFont;public class AddStu extends JDialog implements ActionListener /定義添加學(xué)生信息的相關(guān)組件JLa

21、bel jl1,jl2,jl3,jl4,jl5,jl6,jl7,jl8;JTextField jtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7,jtf8;JButton jb1,jb2,jb3;ResultSet rs;SqlConn sqlconn;String No;int stuAge=0;Double stuSourse=0.0;int i=0;/用于判斷到底點(diǎn)擊了添加還是取消,來決定是否執(zhí)行數(shù)據(jù)更新操作public int falg()return i;/這是添加學(xué)生界面的函數(shù)封裝public void addView()jl1=new JLabel(學(xué) 號(hào):);

22、jl1.setBounds(20, 20, 60, 25);jl1.setFont(MyFont.f1);jl2=new JLabel(姓 名:);jl2.setFont(MyFont.f1);jl2.setBounds(250, 20, 60, 25);jl3=new JLabel(性 別:);jl3.setFont(MyFont.f1);jl3.setBounds(20, 60, 60, 25);jl4=new JLabel(年 齡:);jl4.setFont(MyFont.f1);jl4.setBounds(250, 60, 60, 25);jl5=new JLabel(出生地:);jl

23、5.setFont(MyFont.f1);jl5.setBounds(14, 100, 60, 25);jl6=new JLabel(專 業(yè):);jl6.setFont(MyFont.f1);jl6.setBounds(20, 140, 60, 25);jl7=new JLabel(班 級(jí):);jl7.setFont(MyFont.f1);jl7.setBounds(20, 180, 60, 25);jl8=new JLabel(總學(xué)分:);jl8.setFont(MyFont.f1);jl8.setBounds(240, 180, 60, 25);jtf1=new JTextField(20

24、);jtf1.setBounds(70, 20, 130, 25);jtf1.setBorder(BorderFactory.createLoweredBevelBorder();jtf2=new JTextField(20);jtf2.setBounds(300, 20, 130, 25);jtf2.setBorder(BorderFactory.createLoweredBevelBorder();jtf3=new JTextField(10);jtf3.setBounds(70, 60, 60, 25);jtf3.setBorder(BorderFactory.createLowered

25、BevelBorder();jtf4=new JTextField(10);jtf4.setBounds(300, 60, 60, 25);jtf4.setBorder(BorderFactory.createLoweredBevelBorder();jtf5=new JTextField(30);jtf5.setBounds(70, 100, 360, 25);jtf5.setBorder(BorderFactory.createLoweredBevelBorder();jtf6=new JTextField(20);jtf6.setBounds(70, 140, 290, 25);jtf6

26、.setBorder(BorderFactory.createLoweredBevelBorder();jtf7=new JTextField(20);jtf7.setBounds(70, 180, 130, 25);jtf7.setBorder(BorderFactory.createLoweredBevelBorder();jtf8=new JTextField(20);jtf8.setBounds(300, 180, 130, 25);jtf8.setBorder(BorderFactory.createLoweredBevelBorder();jb1=new JButton(添 加);

27、jb1.setFont(MyFont.f1);jb1.setBounds(100, 220, 80, 25);jb1.addActionListener(this);jb2=new JButton(取 消);jb2.setFont(MyFont.f1);jb2.setBounds(280, 220, 80, 25);jb2.addActionListener(this);jb3=new JButton(清 除);jb3.setFont(MyFont.f1);jb3.setBounds(190,220,80,25);jb3.addActionListener(this);this.setLayo

28、ut(null);/把組件添加到窗體this.add(jl1);this.add(jtf1);this.add(jl2);this.add(jtf2);this.add(jl3);this.add(jtf3);this.add(jl4);this.add(jtf4);this.add(jl5);this.add(jtf5);this.add(jl6);this.add(jtf6);this.add(jl7);this.add(jtf7);this.add(jl8);this.add(jtf8);this.add(jb1);this.add(jb2);this.add(jb3);public A

29、ddStu(Frame Main,String title,boolean model)/調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)模式對(duì)話super(Main,title,model);/調(diào)用添加學(xué)生信息界面的的方法this.addView();/設(shè)置窗體的屬性this.setSize(465,300);this.getContentPane().setBackground(Color.LIGHT_GRAY);/設(shè)置背景必須是在顯示窗口前面,否則不能顯示出來this.setVisible(true);this.setResizable(false);Overridepublic void actionPerf

30、ormed(ActionEvent e) / TODO Auto-generated method stub/用于判斷輸入的學(xué)號(hào)是否存在時(shí),如果存在則返回該學(xué)號(hào),否則返回null,因此在這里,定義一個(gè)用于接收該返回的學(xué)號(hào)/并設(shè)置該No的初始值為空,否則報(bào)錯(cuò)。String No = null ;/當(dāng)點(diǎn)擊了添加按鈕if(e.getSource()=jb1)/*/獲取文本框的信息 String stuId=jtf1.getText().trim();/判斷,不能讓文本輸入框的值為空if(stuId.equals()JOptionPane.showMessageDialog(this, 請(qǐng)輸入學(xué)號(hào)!)

31、;return;/返回到輸入界面,如果沒有return語句,則會(huì)回到主界面String stuName=jtf2.getText().trim();if(stuName.equals()JOptionPane.showMessageDialog(this, 請(qǐng)輸入姓名!);return;/返回到輸入界面,如果沒有return語句,則會(huì)回到主界面String stuSex=jtf3.getText().trim();if(stuSex.equals()JOptionPane.showMessageDialog(this, 請(qǐng)輸入性別!);return;/返回到輸入界面,如果沒有return語句,

32、則會(huì)回到主界面/對(duì)于年齡,則需要進(jìn)行兩個(gè)判斷,一個(gè)是不能為空,另一個(gè)必須是int型,下面用異常來判斷輸入的學(xué)生年齡是否是整型數(shù)/*/try stuAge=Integer.parseInt(jtf4.getText().trim();/把從文本框取得的字符串轉(zhuǎn)換成整型,如果拋異常,則輸入的不是整形數(shù) if(stuAge1) JOptionPane.showMessageDialog(this, 年齡必須大于或等于1!); return; catch (Exception e2) /提示輸入的不是整數(shù)JOptionPane.showMessageDialog(this, 請(qǐng)輸入一個(gè)整數(shù)的年齡!);

33、/如果拋異常,則返回到添加窗口,后面終止執(zhí)行*/return;/ TODO: handle exception/*/String stuJg=jtf5.getText().trim();if(stuJg.equals()JOptionPane.showMessageDialog(this, 請(qǐng)輸入出生地!);return;/返回到輸入界面,如果沒有return語句,則會(huì)回到主界面String stuZy=jtf6.getText().trim();if(stuZy.equals()JOptionPane.showMessageDialog(this, 請(qǐng)輸入專業(yè)!);return;/返回到輸入

34、界面,如果沒有return語句,則會(huì)回到主界面String classId=jtf7.getText().trim();if(classId.equals()JOptionPane.showMessageDialog(this, 請(qǐng)輸入班號(hào)!);return;/返回到輸入界面,如果沒有return語句,則會(huì)回到主界面/*/try stuSourse=Double.parseDouble(jtf8.getText().trim();if(stuSourse=0.0)JOptionPane.showMessageDialog(this, 請(qǐng)輸入總學(xué)分!);return;/返回到輸入界面,如果沒有r

35、eturn語句,則會(huì)回到主界面 catch (Exception e2) JOptionPane.showMessageDialog(this, 請(qǐng)輸入一個(gè)整數(shù)或小數(shù)的總學(xué)分!);return;/ TODO: handle exception/*/首先先判斷該主鍵是否在數(shù)據(jù)庫中是否存在,其次分別判斷性別是否為“男”或者“女”,年齡是否為數(shù)字,總學(xué)分是否為浮點(diǎn)型或雙精度型String sql=select * from student where stuId=+stuId+;SqlConn sqlconn=new SqlConn();rs=sqlconn.sqlQuery(sql);try wh

36、ile(rs.next()No=rs.getString(1);/看到底是否存在該學(xué)生的學(xué)號(hào),如果存在,則返回該學(xué)號(hào),不存在,則為空。 catch (Exception e2) e2.printStackTrace();/ TODO: handle exceptionif(No=null)if(stuSex.equals(男)|stuSex.equals(女)/調(diào)用數(shù)據(jù)庫連接 sql=insert into student values(+stuId+,+stuName+,+stuSex+,+stuAge+,+stuJg+,+stuZy+,+classId+,+stuSourse+);sqlc

37、onn=new SqlConn();sqlconn.sqlUpdate(sql);this.i=1;/關(guān)閉數(shù)據(jù)庫連接sqlconn.closeSqlConn();this.dispose();else JOptionPane.showMessageDialog(this, 性別應(yīng)該是男或女!);else JOptionPane.showMessageDialog(this, 該學(xué)號(hào)已經(jīng)存在,請(qǐng)輸入新的學(xué)號(hào)!);/如果點(diǎn)擊了取消按鈕,則關(guān)閉模式對(duì)話框else if(e.getSource()=jb2)this.dispose();else if(e.getSource()=jb3)jtf1.se

38、tText();jtf2.setText();jtf3.setText();jtf4.setText();jtf5.setText();jtf6.setText();jtf7.setText();jtf8.setText();(4)功能:實(shí)現(xiàn)閃屏界面package com.View;import java.awt.*;import javax.swing.*;public class Index extends JWindow implements Runnable/定義與進(jìn)度條相關(guān)的組件JProgressBar jpb;/定義進(jìn)度條JLabel jl1;/用于在窗體的北部放一張圖片,南部是進(jìn)

39、度條int width,height;/用于獲取顯示屏分辨率大小public static void main(String args)Index index=new Index();/創(chuàng)建index線程Thread t=new Thread(index);/啟動(dòng)線程t.start();/構(gòu)造函數(shù)public Index()/創(chuàng)建標(biāo)簽,并在標(biāo)簽上放置一張圖片jl1=new JLabel(new ImageIcon(image/index1.gif);/創(chuàng)建進(jìn)度條jpb=new JProgressBar();/設(shè)置進(jìn)度條屬性jpb.setStringPainted(true);/顯示當(dāng)前進(jìn)度值信

40、息jpb.setIndeterminate(false);/確定進(jìn)度條執(zhí)行完成后不來回滾動(dòng)jpb.setBorderPainted(false);/設(shè)置進(jìn)度條邊框不顯示jpb.setBackground(Color.darkGray);/設(shè)置進(jìn)度條的背景色/添加組件this.add(jl1,BorderLayout.NORTH);this.add(jpb,BorderLayout.SOUTH);/設(shè)置窗體屬性this.setSize(625,359);/設(shè)置窗體顯示的位置width=Toolkit.getDefaultToolkit().getScreenSize().width;height

41、=Toolkit.getDefaultToolkit().getScreenSize().height;this.setLocation(width/2-200,height/2-150);/設(shè)置窗口顯示this.setVisible(true);/進(jìn)度條線程的run方法,用于設(shè)置線程的屬性public void run() /定義一個(gè)數(shù)組,存放進(jìn)度條顯示時(shí)需要的數(shù)據(jù)int progressValue=0,8,35,43,49,56,70,99,100;for(int i=0;iprogressValue.length;i+)try /休眠1秒,再執(zhí)行Thread.sleep(1000); c

42、atch (InterruptedException e) / TODO Auto-generated catch blocke.printStackTrace();jpb.setValue(progressValuei);/取得數(shù)組中的進(jìn)度值/當(dāng)進(jìn)度完成后,執(zhí)行相應(yīng)的操作,如切換到其他的窗口,同時(shí)關(guān)閉進(jìn)度條窗口等new Login();/關(guān)閉進(jìn)度條窗口this.dispose();(5) 功能:這是學(xué)生/管理員登陸的窗口,根據(jù)權(quán)限不同進(jìn)入不同的后臺(tái)界面package com.View;import com.SqlConnection.SqlConn;import com.Tools.*;im

43、port java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import java.sql.ResultSet;import javax.imageio.ImageIO;import javax.swing.*;import javax.swing.border.Border;import javax.swing.text.Position;public class Login extends JFrame implements Action

44、Listener/定義登陸窗口需要的組件JLabel jl1,jl2,jl3;JTextField jtf1;JPasswordField jpf1;JButton jb1,jb2;int width,height;/定義用于連接數(shù)據(jù)庫的組件,也就是com.SqlConnection類下的SqlConn方法SqlConn sqlconn;/定義用于傳送SQL語句的變量String sql;/定義一個(gè)用于接收登陸驗(yàn)證返回來的記錄集ResultSet rs;/聲明用于驗(yàn)證登陸用戶的模型LoginModel loginModel;int flag;public static void main(St

45、ring args)Login login=new Login();public Login()/創(chuàng)建登陸所需的組件jl1=new JLabel(賬 號(hào):);jl1.setFont(MyFont.f1);jl1.setBounds(50,50,60,25);jl2=new JLabel(密 碼:);jl2.setFont(MyFont.f1);jl2.setBounds(50,90,60,25);jtf1=new JTextField(20);jtf1.setBounds(110,50,150,25);/設(shè)置文本框下凹,三維效果jtf1.setBorder(BorderFactory.crea

46、teLoweredBevelBorder();jpf1=new JPasswordField(20);jpf1.setBorder(BorderFactory.createLoweredBevelBorder();jpf1.setBounds(110,90,150,25);jb1=new JButton(登 陸);jb1.setFont(MyFont.f1);jb1.addActionListener(this);jb1.setBounds(95,130,75,25);jb2=new JButton(取消);jb2.setFont(MyFont.f1);jb2.addActionListene

47、r(this);jb2.setBounds(185,130,75,25);/添加到窗體/先設(shè)置窗體的空布局this.setLayout(null);this.add(jl1);this.add(jtf1);this.add(jl2);this.add(jpf1);this.add(jb1);this.add(jb2);/創(chuàng)建一個(gè)BackImage對(duì)象BackImage bi=new BackImage();/設(shè)定圖片的位置bi.setBounds(0,0,350,250);this.add(bi);this.setSize(350,250);this.setTitle();/設(shè)置窗口在屏幕的初

48、始位置width=Toolkit.getDefaultToolkit().getScreenSize().width;height=Toolkit.getDefaultToolkit().getScreenSize().height;this.setLocation(width/2-180, height/2-180);/設(shè)置窗口不可改變大小this.setResizable(false);/注意:*設(shè)置窗口的背景顏色,由于是繼承Swing包,所以必須先得到窗口的一個(gè)面板,然后再通過這個(gè)面板去設(shè)置背景色,否則設(shè)置不顯示出來/this.getContentPane().setBackground

49、(Color.gray);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);/創(chuàng)建一個(gè)內(nèi)部類,并繼承JPanle,用于畫背景圖片class BackImage extends JPanelImage im;public BackImage()tryim=ImageIO.read(new File(Image/login.gif);catch(Exception e)e.printStackTrace();/要把圖片畫到JPanle,需要重寫一個(gè)Paint方法public void paint(Graphics g) /此處的paint中的p是小寫,/如果是大寫,則就是重寫paint方法了,而是一個(gè)新的方法了,那么后面的圖片是不會(huì)輸出的g.drawImage(im,0,0,350,250,this);

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!