java 学籍管理系统课程设计_Java课程设计-学籍信息管理系统
一、系統分析
學生的學籍信息是記錄學生的重要信息檔案,如何以電子文檔形式記錄下學生的學籍信息是每個學校必須做的事情,該學生學籍信息管理系統就是為了方便學校記錄下每一個學生的基本信息,生成電子數據庫,并且能夠做到查詢、更改、刪除、瀏覽等功能操作,讓學籍信息的管理更加方便快捷。
二、設計方案
1、系統框架
學籍信息管理系統是集學籍信息錄入,學籍信息查詢,學籍信息更改,學籍信息刪除,學籍信息瀏覽這些功能模塊于一體的信息管理系統。首先,需要管理員登陸到該系統,當用戶名和密碼均正確時方可進入系統。圖2-1給出了學籍信息管理系統的系統結構圖。
圖2-1 系統結構圖
學籍信息錄入
該模塊可以添加學生的基本信息(學號,姓名,性別,專業,班級,入學時間)。
學籍信息查詢
該模塊可以使用學號查詢到以保存數據中某一個學生的信息。
學籍信息更改
該模塊可以更改某一位學生的學號、姓名、性別、專業和入學時間。
學籍信息刪除
該模塊可以刪除某一位學生的全部信息。
學籍信息瀏覽
該模塊可以瀏覽全部學生的信息。
其中,學籍更改和瀏覽模塊將另外生成兩個新窗口,其他模塊均在原有窗口上操作進行。
角色分析
學生類(Student)記錄了學生的基本信息,該類的設計由圖2-2所示,類的介紹如表2-1所示。
圖2-2 學生的基本信息
表2-1?學生(Student.java)類的介紹
變量名稱
類型
描述
number
String
學號
name
String
姓名
sex
String
性別
discipling
String
專業
grade
String
年級
borth
String
入學時間
三、算法分析
1、使用try和catch捕捉異常處理
Java通過5個關鍵字來控制異常處理,通常在出現錯誤時用try來執行代碼,系統引發(throws)一個異常后,可以根據異常的類型由catch來捕獲,或者用finally調用缺省異常處理。
在執行過程中,由try所指定的代碼中的語句會生成異常對象并拋出。catch語句的參數類似于方法的聲明,包括一個異常類型和異常對象。
try {
inOne = new FileInputStream(file);
inTwo = new ObjectInputStream(inOne);
StudentDB = (Hashtable) inTwo.readObject();
inOne.close();
inTwo.close();
} catch (Exception ee) {
}
2、對象序列化
在Java.io包中,提供了ObjectInputStream和ObjectOutputStream,將數據流功能擴展至可讀寫對象。在ObjectInputStream中用readObject()方法可以直接讀取一個對象,在ObjectOutputStream中用writeObject()方法可以直接將對象保存到輸出流中。
inOne = new FileInputStream(file);
inTwo = new ObjectInputStream(inOne);
outOne = new FileOutputStream(file);
outTwo = new ObjectOutputStream(outOne);
3、數據存儲使用散列表
散列表根據關鍵碼直接訪問表,把關鍵碼映射到表中的記錄來訪問記錄,這個過程成為散列,散列方法不同于順序查找、二分查找。它不以關鍵字的比較為基本操作,采用直接尋址技術。在理想情況下,無須任何比較就可以找到待查關鍵字,查找的期望時間為O(1)。
散列表上的運算有查找、插入和刪除。其中主要是查找,這是因為散列表的目的主要是用于快速查找,且插入和刪除均要用到查找操作。
Hashtable StudentDB = null;
StudentDB = (Hashtable) inTwo.readObject();
Student stu = (Student) StudentDB.get(number);
四、軟件實現
1、代碼組織
本系統由8個Java類、2張圖片文件組成,其中,src存放了8個Java類,res存放的是管理員登陸時的圖片(login.jpg)和主框架的圖片(home.jpg)。類之間的關系如圖4-1所示。
圖4-1 該系統類關系圖
各類的主要功能如表4-1所示。
表4-1 類功能介紹表
序號
類名
功能描述
1
Student.java
創建并存放學生類的對象
2
StudentInput.java
新學籍信息的錄入
3
StudentInquire.java
學籍信息的查詢界面
4
StudentChange.java
學籍信息的更改
5
StudentDelete.java
學籍信息的刪除
6
StudentLogin.java
管理員登陸窗口,包含main函數
7
StudentTable.java
瀏覽全部的學籍信息
8
StudentFrame.java
學籍信息管理系統的主框架
2、詳細設計
成員變量
1.??????管理員登陸窗口(StudentLogin.java)如表4-2所示。
表4-2 管理員登陸窗口類成員變量表
變量名稱
變量類型
描述
login,reset
JButton
登錄、重置按鈕
Username,password
JTextField
用戶名、密碼輸入框
a,b
JLabel
提示語
word
JLabel
圖片顯示
2.??????學籍管理系統主框架(StudentFrame.java) 如表4-3所示。
表4-3 學籍管理系統主框架類成員變量表
變量名稱
變量類型
描述
input
StudentInput
構建學籍錄入界面
change
StudenChange
構建學籍信息更改界面
inquire
StudentInquire
構建學籍信息查詢界面
delete
StudentDelete
構建學籍信息刪除界面
table
StudentTable
構建學籍信息瀏覽界面
bar
JMenuBar
創建一個菜單欄
fileMenu,editMenu,helpMenu
JMenu
創建一級菜單
input_1,change_1,inquire_1,
delete_1,about_1,exit_1,
table_1
JMenuItem
創建錄入,更改,查詢,刪除,瀏覽,關于,退出子菜單
StudentDB
Hashtable
存放學生信息的散列表
file
File
存放學生信息的散列表文件
3.??????學籍信息錄入(StudentInput.java) 如表4-4所示。
表4-4 學籍信息錄入類成員變量表
變量名稱
變量類型
描述
StudentDB
Hashtable
存放學生信息的散列表
Snumber,Sname,Sspec,
Sclass,Sborth
JTxetField
學號,姓名,專業,班級,入學時間輸入框
Sinput,Sreset
JButton
錄入,重置按鈕
Sman,Swomen
JRadioButton
男、女選項
file
File
存放學生信息的散列表文件
inOne
FileInputStream
從文件讀取數據
inTwo
ObjectInputStream
將數據流功能擴展到可讀寫數據
outOne
FileOutputStream
向文件寫入數據
outTwo
ObjectOutputStream
將數據流功能擴展到可讀寫數據
4.??????學籍信息查詢(StudentIquire.java)如表4-5所示。
表4-5 學籍信息查詢類成員變量表
變量名稱
變量類型
描述
StudentDB
Hashtable
存放學生信息的散列表
Snumber,Sname,Sspec,
Sclass,Sborth
JTxetField
學號,姓名,專業,班級,入學時間輸入框
Sinquiry
JButton
查詢按鈕
Sman,Swomen
JRadioButton
男、女選項
file
File
存放學生信息的散列表文件
inOne
FileInputStream
從文件讀取數據
inTwo
ObjectInputStream
將數據流功能擴展到可讀寫數據
5.學籍信息更改(StudentChange.java)如表4-6所示。
表4-6 學籍信息更改類成員變量表
變量名稱
變量類型
描述
StudentDB
Hashtable
存放學生信息的散列表
Snumber,Sname,Sspec,
Sclass,Sborth
JTxetField
學號,姓名,專業,班級,入學時間輸入框
Schange,Sreset,Sinquire
JButton
更改,查找,重置按鈕
Sman,Swomen
JRadioButton
男、女選項
file
File
存放學生信息的散列表文件
inOne
FileInputStream
從文件讀取數據
inTwo
ObjectInputStream
將數據流功能擴展到可讀寫數據
outOne
FileOutputStream
向文件寫入數據
outTwo
ObjectOutputStream
將數據流功能擴展到可讀寫數據
6.學籍信息刪除(StudentDelete.java)如表4-7所示。
表4-7 學籍信息刪除類成員變量表
變量名稱
變量類型
描述
StudentDB
Hashtable
存放學生信息的散列表
Snumber,Sname,Sspec,
Sclass,Sborth
JTxetField
學號,姓名,專業,班級,入學時間輸入框
Sdelete,Sinquire
JButton
查找,刪除按鈕
Sman,Swomen
JRadioButton
男、女選項
file
File
存放學生信息的散列表文件
inOne
FileInputStream
從文件讀取數據
inTwo
ObjectInputStream
將數據流功能擴展到可讀寫數據
outOne
FileOutputStream
向文件寫入數據
outTwo
ObjectOutputStream
將數據流功能擴展到可讀寫數據
7.學籍信息瀏覽(StudentTable.java)如表4-8所示。
表4-8 學籍信息瀏覽類成員變量表
變量名稱
變量類型
描述
stutable
JTable
創建一個學生表格
Snumber,Sname,Sspec,
Sclass,Sborth,Ssex
String
學號,姓名,專業,班級,入學時間字符串
Schange,Sreset,Sinquire
JButton
更改,查找,重置按鈕
Sman,Swomen
JRadioButton
男、女選項
file
File
存放學生信息的散列表文件
inOne
FileInputStream
從文件讀取數據
inTwo
ObjectInputStream
將數據流功能擴展到可讀寫數據
allinf,tablehead,line1
Vector
創建向量,將信息存入向量
jsp
JScrollPane
添加一個滾動條
主要方法
學生類(Student.java)如表4-9所示。
表4-9 學生類介紹表
名稱
功能
setNumber
設置學號
setName
設置姓名
setSex
設置性別
setDisciping
設置專業
setGrade
設置班級
setBorth
設置入學時間
getNumber
獲得學號
getName
獲得姓名
getSex
獲得性別
getDisciping
獲得專業
getGrade
獲得班級
getBorth
獲得入學時間
其他類如表4-10所示。
表4-10 其他類介紹表
名稱
功能
備注
actionPerformed
處理ActionEvent監聽事件
接口方式,內部函數
input
創建錄入界面
構造函數
change
創建更改界面
構造函數
inquire
創建查詢界面
構造函數
delete
創建刪除界面
構造函數
table
創建表格界面
構造函數
五、軟件測試與使用
1-1管理員登陸界面(圖5-1、5-2)
?
圖5-1管理員登陸界面? ?????????????????????????圖5-2管理員登陸界面
1-2系統主框架(圖5-3)
圖5-3系統主框架
1-3菜單欄(圖5-4)
圖5-4菜單欄
1-4錄入界面(圖5-5、5-6)
圖5-5錄入界面
圖5-6 提示頁面
1-5更改界面(圖5-7、5-8)
圖5-7更改界面
圖5-8 提示界面
1-6查詢界面(圖5-9)
圖5-9查詢界面
1-7刪除界面(圖5-10、5-11)
圖5-10刪除界面
圖5-11 提示界面
1-8瀏覽界面(圖5-12)
圖5-12瀏覽界面
六、參考文獻及資料
《Introduction to java programming》 作者:Y.Daniel Liang 機械工業出版社
《java程序設計經典課堂》 作者:金松河、王捷、黃永麗 清華大學出版社
七、總結與體會
這是一個花了將近一周的時間才完成的項目,很慚愧的是平時不像大一那樣每天都會寫些代碼所以導致對于Java顯得那么的陌生。開始看了老師發給我們的視頻,看完之后只有一個感覺,難!平時三星題做了三道了,按照老師的說法是在做兩道就可以將三星題當成課程設計了,后來還是想自我挑戰一下沒有繼續驗收三星題,當我真的開始做項目的時候,才發現自己還是想的太簡單了。平時練得少,程序算法先不說,光是一堆堆的類及其功能就不得而知,看了老師的視頻,從網上找了一些源代碼,他們都是使用了數據庫和網絡知識。然而我對數據庫只是略懂一二,根本看不懂他們在寫的是什么,隨后,我還是下定決心自己寫一份簡單的吧。
從圖書館接了一本書(參考文獻的第二本),基本的控制臺還能夠運行,但是GUI的就不順暢了,從布局開始開始根據想要的功能進行慢慢的累加,就這樣,懂得了幾種布局方式,BorderLayout,GridLayout,CardLayout,Box等等,并一一進行了使用,后來知道了一種Eclipse的插件—Windows Builder,這種插件可以讓java的GUI設計和VB相似,方便了很多。
過程中最大的困難是數據的存儲和讀取,大部分的程序都是使用的數據庫,然而我的電腦都沒有配置數據庫環境,所以放棄了數據庫的是使用。后來從網上找個了一種方式,利用散列表來進行存儲,利用類的子對象containsKey(number)進行直接查找。經測試這種方式還不錯,所以就采用了這種方式。每一個類中進行讀取,查找。
后來就是功能的設計了,本程序一共5個子模塊,盡管很簡單,但還是費了一番周折,可見對于java我還是不熟練。經過這次課程設計,使我受益匪淺,感覺這一周的練習比一個學期掌握的知識還要多。并且及時的復習和穩固的這一學期所學的知識,也讓課本的只是做到了融會貫通,看來理論和實踐結合的方式才是學習最有效的方法,只有這樣才能提高自己的編程技巧。
附錄
部分源代碼
StudentFrame.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.net.URL;
import java.util.Hashtable;
public class StudentFrame extends JFrame implements ActionListener {
StudentInput input = null;
StudentChange change = null;
StudentInquire inquire = null;
StudentDelete delete = null;
StudentTable table = null;
JMenuBar bar;
JMenu fileMenu;
JMenu editMenu;
JMenu helpMenu;
JMenuItem exit_1;// 退出菜單
JMenuItem input_1, change_1, inquire_1, delete_1, table_1;
JMenuItem about_1;// 關于菜單
Container con = null;
Hashtable StudentDB = null;
File file = null;
CardLayout card = null;
JLabel label = null;
JPanel pCenter;
public StudentFrame() {
exit_1 = new JMenuItem("退出");
input_1 = new JMenuItem("學籍信息錄入");
change_1 = new JMenuItem("學籍信息更改");
inquire_1 = new JMenuItem("學籍信息查詢");
delete_1 = new JMenuItem("學籍信息刪除");
table_1 = new JMenuItem("學籍信息瀏覽");
about_1 = new JMenuItem("關于");
bar = new JMenuBar();
fileMenu = new JMenu("文件(F)");
fileMenu.setMnemonic(KeyEvent.VK_F);// 添加助記鍵
fileMenu.add(exit_1);
editMenu = new JMenu("編輯(E)");
editMenu.setMnemonic(KeyEvent.VK_E);
editMenu.add(input_1);
editMenu.add(change_1);
editMenu.add(inquire_1);
editMenu.add(delete_1);
editMenu.add(table_1);
helpMenu = new JMenu("幫助(H)");
helpMenu.setMnemonic(KeyEvent.VK_H);
helpMenu.add(about_1);
bar.add(fileMenu);
bar.add(editMenu);
bar.add(helpMenu);
this.setJMenuBar(bar);
label = new JLabel("", JLabel.CENTER);// 顯示圖片的label
label.setForeground(Color.black);
StudentDB = new Hashtable();
input_1.addActionListener(this);
change_1.addActionListener(this);
inquire_1.addActionListener(this);
delete_1.addActionListener(this);
table_1.addActionListener(this);
exit_1.addActionListener(this);
about_1.addActionListener(this);
card = new CardLayout();
con = getContentPane();
pCenter = new JPanel();
pCenter.setLayout(card);
file = new File("StudentDB.dat");
this.setTitle("學籍信息管理系統");
if (!file.exists()) {
try {
FileOutputStream out = new FileOutputStream(file);
ObjectOutputStream objectOut = new ObjectOutputStream(out);
objectOut.writeObject(StudentDB);
objectOut.close();
out.close();
} catch (IOException e) {
}
}
input = new StudentInput(file);
change = new StudentChange(file);
inquire = new StudentInquire(this, file);
delete = new StudentDelete(file);
table =new StudentTable(file);
label.setIcon(new javax.swing.ImageIcon(getClass().getResource("/home.jpg")));// 顯示圖片
pCenter.add("主框架", label);
pCenter.add("學籍錄入", input);
pCenter.add("學籍更改", change);
pCenter.add("學籍刪除", delete);
con.add(pCenter, BorderLayout.CENTER);
con.validate();
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
setVisible(true);
setBounds(100, 50, 450, 400);
setLocationRelativeTo(null);// 居中顯示
validate();
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == input_1) {
card.show(pCenter, "學籍錄入");
} else if (e.getSource() == change_1) {
card.show(pCenter, "學籍更改");
} else if (e.getSource() == inquire_1) {
inquire.setVisible(true);
} else if (e.getSource() == table_1) {
table.setVisible(true);
} else if (e.getSource() == delete_1) {
card.show(pCenter, "學籍刪除");
} else if (e.getSource() == exit_1) {
int ok = JOptionPane.showConfirmDialog(this, "確認退出該系統?", "退出系統", JOptionPane.YES_NO_OPTION,
JOptionPane.INFORMATION_MESSAGE);
if (ok == JOptionPane.YES_OPTION) {
System.exit(0);
}
} else if (e.getSource() == about_1) {
JOptionPane.showMessageDialog(null, "學籍信息管理系統V1.0", "關于", JOptionPane.INFORMATION_MESSAGE);
}
}
}
StudentInput.java
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class StudentLogin extends JFrame implements ActionListener {
private JPasswordField password;
private JTextField username;
private JButton login;
private JButton reset;
String name_1 = null, pass_1 = null;
public StudentLogin() {
this.setTitle("登錄系統");
Container container = this.getContentPane();
container.setLayout(new FlowLayout());
username = new JTextField(10);
password = new JPasswordField(10);
login = new JButton("登錄");
reset = new JButton("重置");
login.addActionListener(this);
reset.addActionListener(new ButtonEventHandle_1());
JLabel a = new JLabel("用戶名:");
JLabel b = new JLabel("密碼:");
JLabel word = new JLabel("");
JPanel admin = new JPanel();
JPanel pass = new JPanel();
JPanel butt = new JPanel();
word.setIcon(new javax.swing.ImageIcon(getClass().getResource("/login.jpg")));// 顯示圖片
admin.add(a);
admin.add(username);
pass.add(b);
pass.add(password);
butt.add(login);
butt.add(reset);
container.add(word, BorderLayout.NORTH);
container.add(admin);
container.add(pass);
container.add(butt, BorderLayout.SOUTH);
this.setVisible(true);
this.setSize(300, 260);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
char[] pswd = password.getPassword();
String s_0 = new String(pswd);
String user = username.getText();
if (user.equals("admin") && s_0.equals("123456")) {
JOptionPane.showMessageDialog(null, "登陸成功!");
this.setVisible(false);
new StudentFrame();
} else if (user.equals("") || s_0.equals("")) {
JOptionPane.showMessageDialog(null, "請輸入用戶名或密碼!");
} else {
JOptionPane.showMessageDialog(null, "用戶名或密碼錯誤!");
}
}
class ButtonEventHandle_1 implements ActionListener {
public void actionPerformed(ActionEvent e) {
username.setText(null);
password.setText(null);
}
}
public static void main(String[] args) {
new StudentLogin();
}
}
StudentTable.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
public class StudentTable extends JFrame {
Hashtable StudentDB = null;
String Snumber="1001", Sname, Sspec, Sclass, Sborth;
String Ssex;
JButton Sinquiry;
ButtonGroup group = null;
FileInputStream inOne = null;
ObjectInputStream inTwo = null;
File file = null;
int i=1001;
JTable stutable;
public StudentTable(File file) {
this.file = file;
Vector allinf = new Vector();
Vector tablehead = new Vector();// 表頭信息
tablehead.add("學號");
tablehead.add("姓名");
tablehead.add("性別");
tablehead.add("專業");
tablehead.add("班級");
tablehead.add("入學時間");
stutable = new JTable(allinf, tablehead);
stutable.setEnabled(false);
stutable.setPreferredScrollableViewportSize(new Dimension(0, 120));
JScrollPane jsp = new JScrollPane();
jsp.setViewportView(stutable);
add(BorderLayout.CENTER, jsp);
// 查找數據
try {
inOne = new FileInputStream(file);
inTwo = new ObjectInputStream(inOne);
StudentDB = (Hashtable) inTwo.readObject();
inOne.close();
inTwo.close();
} catch (Exception ee) {
}
while((i-1001)<1000){
Snumber = Integer.toString(i);
if (StudentDB.containsKey(Snumber)) {
Student stu = (Student) StudentDB.get(Snumber);
Vector line1 = new Vector();// 存放信息的向量
line1.add(stu.getNumber());
line1.add(stu.getName());
line1.add(stu.getSex());
line1.add(stu.getDisciping());
line1.add(stu.getGrade());
line1.add(stu.getBorth());
allinf.add(line1);
} else {
break;
}
i++;
}
validate();// 刷新窗口
this.setVisible(false);
this.setSize(600, 300);
this.setTitle("學籍信息瀏覽");
this.setLocationRelativeTo(null);// 居中顯示
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
setVisible(false);
}
});
}
}
StudentInquiry.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
public class StudentInquire extends JDialog implements ActionListener {
Hashtable StudentDB = null;
JTextField Snumber, Sname, Sspec, Sclass, Sborth;
JRadioButton Sman, Swomen;
JButton Sinquiry;
ButtonGroup group = null;
FileInputStream inOne = null;
ObjectInputStream inTwo = null;
File file = null;
public StudentInquire(JFrame f, File file) {
super(f, "學籍信息查詢", false);
this.file = file;
Snumber = new JTextField(10);
Sinquiry = new JButton("查詢");
Snumber.addActionListener(this);
Sinquiry.addActionListener(this);
Sname = new JTextField(10);
Sname.setEditable(false);
Sspec = new JTextField(10);
Sspec.setEditable(false);
Sclass = new JTextField(10);
Sclass.setEditable(false);
Sborth = new JTextField(10);
Sborth.setEditable(false);
Sman = new JRadioButton("男", false);
Swomen = new JRadioButton("女", false);
group = new ButtonGroup();
group.add(Sman);
group.add(Swomen);
Box box1 = Box.createHorizontalBox();
box1.add(new JLabel("請輸入要查詢學生的學號:", JLabel.CENTER));
box1.add(Snumber);
box1.add(Sinquiry);
Box box2 = Box.createHorizontalBox();
box2.add(new JLabel("姓名:", JLabel.CENTER));
box2.add(Sname);
Box box3 = Box.createHorizontalBox();
box3.add(new JLabel("性別:", JLabel.CENTER));
box3.add(Sman);
box3.add(Swomen);
Box box4 = Box.createHorizontalBox();
box4.add(new JLabel("專業:", JLabel.CENTER));
box4.add(Sspec);
Box box5 = Box.createHorizontalBox();
box5.add(new JLabel("班級:", JLabel.CENTER));
box5.add(Sclass);
Box box6 = Box.createHorizontalBox();
box6.add(new JLabel("入學時間:", JLabel.CENTER));
box6.add(Sborth);
Box boxH = Box.createVerticalBox();
boxH.add(box1);
boxH.add(box2);
boxH.add(box3);
boxH.add(box4);
boxH.add(box5);
boxH.add(box6);
boxH.add(Box.createVerticalGlue());
JPanel pCenter = new JPanel();
pCenter.add(boxH);
Container con = getContentPane();
con.add(pCenter, BorderLayout.CENTER);
con.validate();
setVisible(false);
setBounds(100, 200, 360, 270);
setLocationRelativeTo(null);// 居中顯示
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
setVisible(false);
}
});
}
public void actionPerformed(ActionEvent e) {
Sname.setText(null);
Sspec.setText(null);
Sclass.setText(null);
Sborth.setText(null);
if (e.getSource() == Sinquiry || e.getSource() == Snumber) {
String number = "";
number = Snumber.getText();
if (number.length() > 0) {
try {
inOne = new FileInputStream(file);
inTwo = new ObjectInputStream(inOne);
StudentDB = (Hashtable) inTwo.readObject();
inOne.close();
inTwo.close();
} catch (Exception ee) {
}
if (StudentDB.containsKey(number)) {
Student stu = (Student) StudentDB.get(number);
Sname.setText(stu.getName());
Sspec.setText(stu.getDisciping());
Sclass.setText(stu.getGrade());
Sborth.setText(stu.getBorth());
if (stu.getSex().equals("男")) {
Sman.setSelected(true);
} else {
Swomen.setSelected(true);
}
} else {
String warning = "沒有該學號" + Snumber.getText() + "的學籍信息!";
JOptionPane.showMessageDialog(this, warning, "警告", JOptionPane.WARNING_MESSAGE);
}
} else {
String warning = "請輸入學號!";
JOptionPane.showMessageDialog(this, warning, "警告", JOptionPane.WARNING_MESSAGE);
}
}
}
}
總結
以上是生活随笔為你收集整理的java 学籍管理系统课程设计_Java课程设计-学籍信息管理系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [css] 为什么要使用sass/le
- 下一篇: matlab多目标遗传算法工具箱,运用M