下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 JAVA程序設(shè)計(jì) 課程設(shè)計(jì)報(bào)告課 題: 學(xué)生信息管理系統(tǒng) 姓 名: 學(xué) 號(hào): 2 設(shè)計(jì)時(shí)間:2014.6.232014.6.27評(píng)閱意見:評(píng)定成績(jī):指導(dǎo)老師簽名: 年 月 日 - 41 - / 41文檔可自由編輯打印 目 錄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ù)庫(kù)結(jié)構(gòu)描述.4 2.3系統(tǒng)詳細(xì)設(shè)計(jì)文檔.5 2.4 各個(gè)模塊實(shí)現(xiàn)方法描述.9 2.5 測(cè)試數(shù)據(jù)及期望結(jié)果.93.系統(tǒng)測(cè)試.124.總結(jié)或心得體會(huì).185.參考文獻(xiàn).196.附錄.191.系統(tǒng)描述1.1需要實(shí)現(xiàn)的功能(1)錄入學(xué)生基本信息的功能 學(xué)生基本
2、信息主要包括:學(xué)號(hào)、姓名、性別、年齡、出生地、專業(yè)、班級(jí)、總學(xué)分,在插入時(shí),如果數(shù)據(jù)庫(kù)則已經(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)行簡(jiǎn)單的管理,本程序針對(duì)于對(duì)安全系數(shù)要求不高,操作不是
3、很復(fù)雜的小型客戶開發(fā)。本程序的管理員可以實(shí)現(xiàn)對(duì)學(xué)生信息的錄入、查詢、修改、刪除等操作,同時(shí)支持查看所有學(xué)生信息,學(xué)生只能查詢自己的信息。程序功能完善,界面簡(jiǎn)潔美觀,布局合理,操作簡(jiǎn)便,簡(jiǎn)單易用,任何人可輕松操作。同時(shí),本程序?qū)ο到y(tǒng)要求配置較低,運(yùn)行速度快,而卻對(duì)數(shù)據(jù)庫(kù)管理要求較低。本程序數(shù)據(jù)庫(kù)采用office2007版本的access數(shù)據(jù)庫(kù)(.accdb)進(jìn)行數(shù)據(jù)存儲(chǔ),該數(shù)據(jù)庫(kù)可實(shí)現(xiàn)關(guān)系較為簡(jiǎ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ù)庫(kù)結(jié)構(gòu)描述 (1)數(shù)據(jù)庫(kù)E-R模型 圖2 學(xué)生局部E-R圖 圖3 登陸用戶局部E-R圖(2)數(shù)據(jù)庫(kù)關(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
5、)用戶名(賬號(hào)),即登陸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ù)庫(kù)com.ToolsMyFont.java用
6、于設(shè)置窗體各組件的字體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.jav
7、a用戶賬戶修改界面 表4 SqlConn類類名類的成員屬性與方法說明SqlConn.javaConnection ct得到與數(shù)據(jù)庫(kù)的連接PreparedStatement ps實(shí)現(xiàn)發(fā)送SQL語句給數(shù)據(jù)庫(kù)ResultSet rs獲得數(shù)據(jù)庫(kù)返回的記錄集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ù)庫(kù)連接的功能 表
8、5 Index類類名類的成員屬性與方法說明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è)
9、用戶輸入賬號(hào)的文本框JPasswordField jpf1密碼輸入框JButton jb1,jb2提交和清除按鈕int width,height用于設(shè)置窗口初始位置的變量,即獲取顯示器的大小ResultSet rs用于接收從數(shù)據(jù)庫(kù)返回來的記錄集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ù)庫(kù)??蓪?shí)現(xiàn)發(fā)送SQL語句給數(shù)據(jù)庫(kù),獲得
10、數(shù)據(jù)庫(kù)返回的記錄集,實(shí)現(xiàn)查詢、添加、修改、刪除學(xué)生記錄,關(guān)閉數(shù)據(jù)庫(kù)連接等功能。Myfont是設(shè)置窗體各組件的字體。Index是使用進(jìn)度條與線程結(jié)合實(shí)現(xiàn)閃屏,初始化進(jìn)入登陸界面。Login是登陸界面,管理員與用戶登陸,可以分別登入管理員和用戶,管理員與用戶的登錄進(jìn)去后可分別按自己的權(quán)限操作。2.5 測(cè)試數(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é)生信
11、息 圖7查詢肖林衛(wèi)婕的成績(jī)3. 系統(tǒng)測(cè)試 圖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é)生記
12、錄 圖23 退出系統(tǒng)確認(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í)也有利于自己以后再看,就能很快的讀懂程序
13、,提高效率。4)把功能模塊化,即把實(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).
14、Java編程案例精解.北京:電子工業(yè)出版 社.2005(3)何梅.java編程實(shí)例系列叢書.北京:清華大學(xué)出版社,2002(4)楊昭.編著二級(jí)Java語言程序設(shè)計(jì)教程.北京:中國(guó)水利水電出版社,2006(5)趙文靖編著.Java程序設(shè)計(jì)基礎(chǔ)與上機(jī)指導(dǎo).北京:清華大學(xué)出版社,2006六、附錄(1)功能:連接數(shù)據(jù)庫(kù)package com.SqlConnection;import java.sql.*;import com.View.AddStu;public class SqlConn Connection ct=null;PreparedStatement ps=null;ResultSet r
15、s=null;String 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();
16、 catch (Exception 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)Sy
17、stem.out.println(數(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.prepareSta
18、tement(sql);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ù)庫(kù)連接的功能public void closeSqlConn()try if(rs!=null)rs.close();if(ps!=null)
19、ps.close();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é)生的界面,通過模式
20、對(duì)話(即繼承JDialog對(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é)生
21、信息的相關(guān)組件JLabel 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 JLa
22、bel(學(xué) 號(hào):);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 JLabe
23、l(出生地:);jl5.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 JTe
24、xtField(20);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.cre
25、ateLoweredBevelBorder();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
26、, 25);jtf6.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 JBu
27、tton(添 加);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);th
28、is.setLayout(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
29、);public AddStu(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
30、actionPerformed(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(thi
31、s, 請(qǐng)輸入學(xué)號(hào)!);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;/返回到輸入界面,如果沒
32、有return語句,則會(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)輸入
33、一個(gè)整數(shù)的年齡!);/如果拋異常,則返回到添加窗口,后面終止執(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è)!);ret
34、urn;/返回到輸入界面,如果沒有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;/返回到
35、輸入界面,如果沒有return語句,則會(huì)回到主界面 catch (Exception e2) JOptionPane.showMessageDialog(this, 請(qǐng)輸入一個(gè)整數(shù)或小數(shù)的總學(xué)分!);return;/ TODO: handle exception/*/首先先判斷該主鍵是否在數(shù)據(jù)庫(kù)中是否存在,其次分別判斷性別是否為“男”或者“女”,年齡是否為數(shù)字,總學(xué)分是否為浮點(diǎn)型或雙精度型String sql=select * from student where stuId=+stuId+;SqlConn sqlconn=new SqlConn();rs=sqlconn.sqlQuery(s
36、ql);try while(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ù)庫(kù)連接 sql=insert into student values(+stuId+,+stuName+,+stuSex+,+stuAge+,+stuJg+,+stuZy+,+classId+,+stuSou
37、rse+);sqlconn=new SqlConn();sqlconn.sqlUpdate(sql);this.i=1;/關(guān)閉數(shù)據(jù)庫(kù)連接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()=j
38、b3)jtf1.setText();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;/用于在窗體的北部
39、放一張圖片,南部是進(jìn)度條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)
40、;/顯示當(dāng)前進(jìn)度值信息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().wi
41、dth;height=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.slee
42、p(1000); catch (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.
43、Tools.*;import 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 impleme
44、nts ActionListener/定義登陸窗口需要的組件JLabel jl1,jl2,jl3;JTextField jtf1;JPasswordField jpf1;JButton jb1,jb2;int width,height;/定義用于連接數(shù)據(jù)庫(kù)的組件,也就是com.SqlConnection類下的SqlConn方法SqlConn sqlconn;/定義用于傳送SQL語句的變量String sql;/定義一個(gè)用于接收登陸驗(yàn)證返回來的記錄集ResultSet rs;/聲明用于驗(yàn)證登陸用戶的模型LoginModel loginModel;int flag;public static void main(String args)Login login=new Login();public Login()/創(chuàng)建登陸所需的組件jl1=new JLabel(賬 號(hào):);jl1.setFont(MyFont.f1);jl1.setBounds(50,50,
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度安全評(píng)估咨詢服務(wù)合同2篇
- 2024年挖機(jī)安全運(yùn)輸與環(huán)保標(biāo)準(zhǔn)執(zhí)行合同3篇
- 2024年度三人股東共同投資建設(shè)智能化倉(cāng)儲(chǔ)物流系統(tǒng)合作協(xié)議書3篇
- 幼兒園安全課:摔倒了怎么辦
- 2024年度房地產(chǎn)股權(quán)收購(gòu)與協(xié)同開發(fā)協(xié)議3篇
- 2024版夫妻家庭糾紛解決及財(cái)產(chǎn)分割合同3篇
- 2024年度生物科技研究委托合同3篇
- 2024年度專利轉(zhuǎn)讓合同標(biāo)的及轉(zhuǎn)讓條件和轉(zhuǎn)讓價(jià)格3篇
- 2024年度房地產(chǎn)土地使用權(quán)分期付款轉(zhuǎn)讓合同3篇
- 2024年度城市供水管道工程建設(shè)的特許經(jīng)營(yíng)權(quán)合同3篇
- 冬季季節(jié)性安全事故預(yù)防
- 2024版《供電營(yíng)業(yè)規(guī)則》學(xué)習(xí)考試題庫(kù)500題(含答案)
- 環(huán)境工程原理智慧樹知到期末考試答案章節(jié)答案2024年西華大學(xué)
- 小學(xué)教師期末學(xué)生評(píng)語
- 商業(yè)街規(guī)劃設(shè)計(jì)方案總結(jié)報(bào)告(2篇)
- 中國(guó)同性戀人群心理健康研究綜述
- 共青團(tuán)團(tuán)課課件
- 教科版小學(xué)科學(xué)四上《3.6運(yùn)動(dòng)的小車》課件
- 呼吸性堿中毒并發(fā)電解質(zhì)紊亂的防治措施
- MOOC 現(xiàn)代郵政英語(English for Modern Postal Service)-南京郵電大學(xué) 中國(guó)大學(xué)慕課答案
- MOOC 大學(xué)生心理健康-廈門大學(xué) 中國(guó)大學(xué)慕課答案
評(píng)論
0/150
提交評(píng)論