




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
JAVA程序設(shè)計——學(xué)生信息管理系統(tǒng)
題
目
學(xué)生信息管理系統(tǒng)學(xué)
院
軟件學(xué)院
專
業(yè)
班
別
學(xué)
號
姓
名
XXX
2015年6月10日
2
一、課程題目設(shè)計一個簡易的學(xué)生成績管理系統(tǒng)。用于記錄學(xué)生的各科成績,以及實現(xiàn)常用的統(tǒng)計功能。(1)記錄學(xué)生的基本信息,如姓名、學(xué)號、專業(yè)、班級等(2)記錄各科成績(3)實現(xiàn)常用的統(tǒng)計功能,如:單科成績排名、總分排名、統(tǒng)計成績高于/低于某一臨界值的學(xué)生、統(tǒng)計單科/總分平均值……(4)使用圖形方式顯示某些數(shù)據(jù),如直方圖顯示各分?jǐn)?shù)段的人數(shù)、繪制各科分?jǐn)?shù)分布曲線……(可選)(5)必須使用數(shù)據(jù)庫。其它功能可自行擴展。
二、題目分析與設(shè)計1.
注明所使用的開發(fā)環(huán)境(Eclipse、NetBeans,JBuilder)。開發(fā)環(huán)境:Eclipse2.
論述題目的需求。給出軟件功能架構(gòu)圖。題目需求:通過數(shù)據(jù)庫記錄學(xué)生成績和信息,并通過數(shù)據(jù)庫讀取這些信息,實現(xiàn)單個學(xué)生查找、全體學(xué)生查找等功能和單科排名、平均分、總分排名、平均分等功能。其他擴展功能:登錄界面,保存到txt文件。
軟件功能架構(gòu)圖:其中,刪除、修改、單個查找功能均通過學(xué)號定位學(xué)生3.
論述界面設(shè)計過程,指出其設(shè)計上的創(chuàng)意及組件的布局策略。界面設(shè)計過程:主要界面包括登錄界面,主功能界面,各個子功能界面。登錄界面包括3個面板,每個面板放入相應(yīng)的標(biāo)簽、文本框、按鈕等組件,登錄界面采用3行1列的網(wǎng)格布局;主功能界面包括菜單欄和若干面板,面板中放入標(biāo)簽或若干按鈕,菜單欄的菜單項與按鈕相對應(yīng),主功能界面采用7行1列的網(wǎng)格布局;學(xué)生管理類子功能(增加學(xué)生、刪除學(xué)生、修改學(xué)生、單個查找)界面采用6行2列的網(wǎng)格布局,每個網(wǎng)格均放入一個面板,每個面板放入標(biāo)簽、文本框、組合框、按鈕等組件,以達(dá)到較友好的界面效果;學(xué)生查找類子功能界面(查看全體、按年級查詢、按班別查詢、按專業(yè)查詢)和成績管理類子功能(單科排名、總分排名、合格學(xué)生、掛科學(xué)生)界面采用邊界布局,界面的上部放入一個面板,面板放入相應(yīng)的按鈕或組合框,中部放入一個文本域。所有錯誤信息等信息均通過對話框的形式顯示相應(yīng)信息。4.
論述程序邏輯的實現(xiàn),包括類的設(shè)計、對象的協(xié)作過程等,必要時加以各種圖形和表格輔助論述。不得以粘貼代碼的方式代替設(shè)計部分。類的設(shè)計過程:本程序包括19個類文件,每個類文件只含有一個類,分別是包含main方法的主類
Main,實現(xiàn)登錄功能的類
Login,
實現(xiàn)各種功能選擇功能的類
Function,
實現(xiàn)數(shù)據(jù)庫連接的類DataBaseCreate,實現(xiàn)學(xué)生信息編輯功能類StudentEdit,
執(zhí)行增加學(xué)生功能的類AddStudent,執(zhí)行刪除學(xué)生功能的類DeleteStudent,執(zhí)行修改學(xué)生功能的類
UpdateStudent,執(zhí)行單個查詢功能的類IndexOfSingle,
(由于AddStudent,DeleteStudent,UpdateStudent,IndexOfSingle界面和操作基本相同,所以上4類均繼承StudentEdit)
實現(xiàn)條件查找和成績管理功能的類IndexOrManage,
執(zhí)行查詢?nèi)w功能的類LookAllStudents,執(zhí)行按年級查詢功能的類IndexOfGrade,執(zhí)行按班別查詢功能的類IndexOfClass,執(zhí)行按專業(yè)查詢的類IndexOfMajor,執(zhí)行單科排名功能的類
SubjectScoreRanking,執(zhí)行總分排名功能的類TotalScoreRanking,執(zhí)行查找單科及格學(xué)生功能的類PassStudents,執(zhí)行查找單科不及格學(xué)生功能的類NotPassStudents,(由于LookAllStudents,IndexOfGrade,IndexOfClass,IndexOfMajor,SubjectScoreRanking,TotalScoreRanking,PassStudents,NotPassStudents,界面和操作基本相同,所以上8類均繼承IndexOrManage)執(zhí)行將文本域內(nèi)容保存到TXT文件的類TxtSave。以上19個類,除了Main類以外,均包含一個構(gòu)造方法,有些還包含actionPerformed(e)方法。對象的協(xié)作過程:三、測試分析小四字體,1.5倍行距。對程序的測試情況作出分析。至少包括但不限于需要具備以下內(nèi)容:1.
闡述擴展包(僅限于SUN官方發(fā)布)的部署過程,并將擴展包附于光盤源程序中;給出數(shù)據(jù)庫的詳細(xì)配置說明。導(dǎo)入擴展包數(shù)據(jù)庫配置說明:數(shù)據(jù)庫mySQL數(shù)據(jù)庫服務(wù)器localhost端口3306用戶名root密碼空數(shù)據(jù)庫名studentmanagementStudent表2.
典型測試數(shù)據(jù)的構(gòu)建,并且給出測試數(shù)據(jù)的預(yù)計結(jié)果原數(shù)據(jù):測試數(shù)據(jù):添加學(xué)生10005張?zhí)m女2012
2
信息工程19930506
82
74
58
刪除學(xué)生
10000修改學(xué)生
10001李嘉女2011
4
網(wǎng)絡(luò)工程
19920304
54
85
單個查找
10003查詢?nèi)w按年級查找?2011級按班別查找?1班按專業(yè)查找?軟件工程單科排名并顯示平均分?語文總分排名并顯示平均分?單科及格學(xué)生?英語單科不及格學(xué)生?語文保存Txt?總分預(yù)測結(jié)果:均成功完成操作3.
本程序的測試情況,與預(yù)計結(jié)果作對比測試情況:成功完成相關(guān)操作添加學(xué)生10005張?zhí)m女2012
2
信息工程19930506
82
74
58
刪除學(xué)生
10000修改學(xué)生
10001李嘉女2011
4
網(wǎng)絡(luò)工程
19920304
54
85
單個查找
10003?
20001查詢?nèi)w按年級查找?2011級按班別查找?1班按專業(yè)查找?軟件工程單科排名并顯示平均分?語文總分排名并顯示平均分
?單科及格學(xué)生?英語單科不及格學(xué)生?語文
保存Txt?總分排名
附錄:源代碼小四字體,1.5倍行距。只需列出程序中所有的包及相關(guān)的文件。不需要打印源代碼。程序中所有的包及相關(guān)的文件:代碼:import
javax.swing.JFrame;
public
class
Main{
?/**?
*
@param
args?
*/?public
static
void
main(String[]args){
?Loginlogin=new
Login();?login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);?}
}
import
java.awt.*;import
java.awt.event.*;
import
javax.swing.*;//登錄界面public
class
Login
extends
JFrame
implements
ActionListener{?JButton
b1=new
JButton("登錄");?JButton
b2=new
JButton("退出");?JLabel
la1=new
JLabel("用戶名");?JLabel
la2=new
JLabel("密
碼");?JPanel
p1=new
JPanel();?JPanel
p2=new
JPanel();?JPanel
p3=new
JPanel();?JTextField
name=new
JTextField(15);?JPasswordField
pw=new
JPasswordField(15);?public
Login(){?setTitle("學(xué)生成績管理系統(tǒng)");?getContentPane().setLayout(new
GridLayout(3,1));?getContentPane().add(p1);?getContentPane().add(p2);?getContentPane().add(p3);?p1.add(la1);?p1.add(name);?p2.add(la2);?p2.add(pw);?p3.add(b1);?p3.add(b2);?setBounds(500,250,100,100);?pack();?setVisible(true);?pw.setEchoChar('*');?b1.addActionListener(this);?b2.addActionListener(this);?}
??public
void
actionPerformed(ActionEvente){??if(e.getActionCommand()=="登錄"){?Stringpassword=pw.getText();?Stringuser=name.getText();?if(user.equals("admin")&&password.equals("admin")){?Functionfunction=new
Function();?function.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);?setVisible(false);?}??else{?JOptionPane.showMessageDialog(null,
"用戶名或密碼錯誤",
"Error",JOptionPane.INFORMATION_MESSAGE);?}?}?else
if(e.getActionCommand()=="退出"){?System.exit(0);?}?}?}
import
java.sql.*;//連接數(shù)據(jù)庫類public
class
DataBaseCreate{?//連接數(shù)據(jù)庫靜態(tài)方法,若產(chǎn)生錯誤,則拋出相應(yīng)錯誤信息?public
static
ConnectiongetConnection()throwsSQLException,java.lang.ClassNotFoundException{?//建立本地數(shù)據(jù)庫連接,編碼規(guī)則轉(zhuǎn)換為utf-8(正常錄入中文)?Stringurl="jdbc:mysql://localhost:3306/studentmanagement?useUnicode=true&characterEncoding=utf8";?Class.forName("com.mysql.jdbc.Driver");?StringuserName="root";?Connectioncon=DriverManager.getConnection(url,userName,
"");?return
con;?}}
import
javax.swing.JFrame;
public
class
Main{
?/**?
*
@param
args?
*/?public
static
void
main(String[]args){
?Loginlogin=new
Login();?login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);?}
}
import
java.awt.*;import
java.awt.event.*;
import
javax.swing.*;//主要功能界面public
class
Function
extends
JFrame
implements
ActionListener{?JPanel
p1=new
JPanel();?JPanel
p2=new
JPanel();?JPanel
p6=new
JPanel();?JPanel
p3=new
JPanel();?JPanel
p4=new
JPanel();?JPanel
p5=new
JPanel();?JButton
add=new
JButton("增加學(xué)生");?JButton
del=new
JButton("刪除學(xué)生");?JButton
update=new
JButton("修改學(xué)生");?JButton
single=new
JButton("單個查詢");?JButton
look=new
JButton("查看全體");?JButton
b11=new
JButton("按年級查找");?JButton
b12=new
JButton("按班別查找");?JButton
b13=new
JButton("按專業(yè)查找");?JLabel
la1=new
JLabel("學(xué)生管理");?JLabel
la2=new
JLabel("成績管理");?JLabel
la3=new
JLabel("學(xué)生查找");?JButton
b1=new
JButton("單科排名");?JButton
b2=new
JButton("總分排名");?JButton
b3=new
JButton("合格學(xué)生");?JButton
b4=new
JButton("掛科學(xué)生");??JMenuItem
items[][]=new
JMenuItem[4][];?JMenuBar
bar=new
JMenuBar();?JMenu
m1=new
JMenu("開始");?JMenu
m2=new
JMenu("學(xué)生管理");?JMenu
m3=new
JMenu("學(xué)生查找");?JMenu
m4=new
JMenu("成績管理");
??//構(gòu)造方法?public
Function(){?setTitle("學(xué)生成績管理系統(tǒng)");?//設(shè)計菜單欄?items[0]=new
JMenuItem[2];?items[1]=new
JMenuItem[4];?items[2]=new
JMenuItem[4];?items[3]=new
JMenuItem[4];?m1.add(items[0][0]=new
JMenuItem("返回"));?m1.add(items[0][1]=new
JMenuItem("退出"));?m2.add(items[1][0]=new
JMenuItem("增加學(xué)生"));?m2.add(items[1][1]=new
JMenuItem("刪除學(xué)生"));?m2.add(items[1][2]=new
JMenuItem("修改學(xué)生"));?m2.add(items[1][3]=new
JMenuItem("單個查詢"));?m3.add(items[2][0]=new
JMenuItem("查看全體"));?m3.add(items[2][1]=new
JMenuItem("按年級查找"));?m3.add(items[2][2]=new
JMenuItem("按班別查找"));?m3.add(items[2][3]=new
JMenuItem("按專業(yè)查找"));?m4.add(items[3][0]=new
JMenuItem("單科排名"));?m4.add(items[3][1]=new
JMenuItem("總分排名"));?m4.add(items[3][2]=new
JMenuItem("合格學(xué)生"));?m4.add(items[3][3]=new
JMenuItem("掛科學(xué)生"));?bar.add(m1);?bar.add(m2);?bar.add(m3);?bar.add(m4);
???//設(shè)計布局?getContentPane().setLayout(new
GridLayout(7,1));?getContentPane().add(bar);?getContentPane().add(p1);?getContentPane().add(p2);?getContentPane().add(p6);?getContentPane().add(p3);?getContentPane().add(p4);?getContentPane().add(p5);?p1.add(la1);?p2.add(add);?p2.add(del);?p2.add(update);?p2.add(single);?p6.add(la3);?p3.add(look);?p3.add(b11);?p3.add(b12);?p3.add(b13);?p4.add(la2);?p5.add(b1);?p5.add(b2);?p5.add(b3);?p5.add(b4);??setBounds(500,250,100,100);?pack();?setVisible(true);??//注冊監(jiān)聽器?add.addActionListener(this);?del.addActionListener(this);?update.addActionListener(this);?look.addActionListener(this);?single.addActionListener(this);?b11.addActionListener(this);?b12.addActionListener(this);?b13.addActionListener(this);?b1.addActionListener(this);?b2.addActionListener(this);?b3.addActionListener(this);?b4.addActionListener(this);??items[0][0].addActionListener(this);?items[0][1].addActionListener(this);?items[1][0].addActionListener(this);?items[1][1].addActionListener(this);?items[1][2].addActionListener(this);?items[1][3].addActionListener(this);?items[2][0].addActionListener(this);?items[2][1].addActionListener(this);?items[2][2].addActionListener(this);?items[2][3].addActionListener(this);?items[3][0].addActionListener(this);?items[3][1].addActionListener(this);?items[3][2].addActionListener(this);?items[3][3].addActionListener(this);?}
?//按鈕事件響應(yīng),對用對應(yīng)的類對象?public
void
actionPerformed(ActionEvente){??if(e.getActionCommand()=="增加學(xué)生"){?AddStudent
addStudent
=new
AddStudent();??}?else
if(e.getActionCommand()=="刪除學(xué)生"){?DeleteStudent
delStudent=new
DeleteStudent();?}?else
if(e.getActionCommand()=="修改學(xué)生"){?UpdateStudent
delStudent=new
UpdateStudent();?}?else
if(e.getActionCommand()=="單個查詢"){?IndexSingle
is=new
IndexSingle();?}?else
if(e.getActionCommand()=="查看全體"){?LookAllStudents
look=new
LookAllStudents();?}?else
if(e.getActionCommand()=="按年級查找"){?IndexOfGrade
ig=new
IndexOfGrade();?}?else
if(e.getActionCommand()=="按班別查找"){?IndexOfClass
ic=new
IndexOfClass();?}?else
if(e.getActionCommand()=="按專業(yè)查找"){?IndexOfMajor
im=new
IndexOfMajor();?}?else
if(e.getActionCommand()=="單科排名"){?SubjectScoreRanking
subject=
new
SubjectScoreRanking();?}?else
if(e.getActionCommand()=="總分排名"){?TotalScoreRanking
subject=
new
TotalScoreRanking();?}?else
if(e.getActionCommand()=="合格學(xué)生"){?PassStudents
pass=new
PassStudents();?}?else
if(e.getActionCommand()=="掛科學(xué)生"){?NotPassStudents
notPass=new
NotPassStudents();?}?else
if(e.getActionCommand()=="返回"){?setVisible(false);?Loginlogin=new
Login();?login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);?}?else
if(e.getActionCommand()=="退出"){?System.exit(0);?}?}
}
import
java.awt.GridLayout;import
.*;
import
javax.swing.*;
public
class
StudentEdit
extends
JFrame{
?JPanel
p1=new
JPanel();?JPanel
p2=new
JPanel();?JPanel
p3=new
JPanel();?JPanel
p4=new
JPanel();?JPanel
p5=new
JPanel();?JPanel
p6=new
JPanel();?JPanel
p7=new
JPanel();?JPanel
p8=new
JPanel();?JPanel
p9=new
JPanel();?JPanel
p10=new
JPanel();?JPanel
p11=new
JPanel();?JPanel
p12=new
JPanel();??JLabel
la1=new
JLabel("學(xué)號");?JLabel
la2=new
JLabel("姓名");?JLabel
la3=new
JLabel("性別");?JLabel
la4=new
JLabel("生日");?JLabel
la5=new
JLabel("年級");?JLabel
la6=new
JLabel("班別");?JLabel
la7=new
JLabel("語文");?JLabel
la8=new
JLabel("英語");?JLabel
la9=new
JLabel("數(shù)學(xué)");?JLabel
la10=new
JLabel("專業(yè)");??JButton
b1=new
JButton("確定");?JButton
b2=new
JButton("取消");??JTextField
num=new
JTextField(10);?JTextField
name=new
JTextField(10);?JTextField
chinese=new
JTextField(10);?JTextField
english=new
JTextField(10);?JTextField
maths=new
JTextField(10);?JTextField
birth=new
JTextField(10);??String[]
sex={"","男","女"};?JComboBox
s=new
JComboBox(sex);?String[]
grades={"","2010","2011","2012","2013"};?JComboBox
grade=new
JComboBox(grades);?String[]
classes={"","1","2","3","4","5","6"};?JComboBox
clas=new
JComboBox(classes);?String[]
majors={"","網(wǎng)絡(luò)工程","軟件工程","信息工程","計算機科學(xué)"};?JComboBox
major=new
JComboBox(majors);??public
StudentEdit(){?p1.add(la1);?p1.add(num);??p2.add(la2);?p2.add(name);??p3.add(la3);?p3.add(s);??p4.add(la4);?p4.add(birth);??p5.add(la5);?p5.add(grade);??p6.add(la6);?p6.add(clas);??p7.add(la7);?p7.add(chinese);??p8.add(la8);?p8.add(english);??p9.add(la9);?p9.add(maths);??p10.add(la10);?p10.add(major);??p11.add(b1);?p11.add(b2);?//設(shè)計布局?getContentPane().setLayout(new
GridLayout(6,2));?getContentPane().add(p1);?getContentPane().add(p2);?getContentPane().add(p3);?getContentPane().add(p4);?getContentPane().add(p5);?getContentPane().add(p6);?getContentPane().add(p7);?getContentPane().add(p8);?getContentPane().add(p9);?getContentPane().add(p10);?getContentPane().add(p11);?getContentPane().add(p12);??setBounds(500,250,100,100);?pack();?setVisible(true);??}}
importjava.awt.event.*;importjava.sql.*;
importjavax.swing.JOptionPane;
publicclassAddStudentextendsStudentEditimplementsActionListener{
?publicAddStudent(){?super();?b1.addActionListener(this);?b2.addActionListener(this);?}??publicvoidactionPerformed(ActionEvente){??if(e.getActionCommand()=="確定"){?//計算總分?//調(diào)用字符串轉(zhuǎn)換浮點數(shù)方法?floattotal=Float.parseFloat(chinese.getText())+Float.parseFloat(english.getText())+Float.parseFloat(maths.getText());??try{?//建立數(shù)據(jù)庫連接?Connectioncon=DataBaseCreate.getConnection();?Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);?//添加數(shù)據(jù)到數(shù)據(jù)庫?sql.executeUpdate("insertintostudent(Num,Name,Sex,Grade,Class,Major,Birth,Chinese,English,Maths,Total)"+?"values('"+num.getText()+"','"+name.getText()+"','"+s.getSelectedItem()+?"','"+grade.getSelectedItem()+"','"+clas.getSelectedItem()+"','"+major.getSelectedItem()+?"','"+birth.getText()+"',"+chinese.getText()+","+english.getText()+","+maths.getText()+","+total+")");?//關(guān)閉數(shù)據(jù)庫連接?sql.close();?con.close();?JOptionPane.showMessageDialog(null,"成功錄入學(xué)生信息與成績","Message",?JOptionPane.INFORMATION_MESSAGE);?setVisible(false);??}catch(java.lang.ClassNotFoundExceptionerr){?//捕捉錯誤,以對話框形式顯示錯誤信息??JOptionPane.showMessageDialog(null,err.getMessage(),"ClassNotFoundException:",?JOptionPane.INFORMATION_MESSAGE);?}catch(SQLExceptionex){?JOptionPane.showMessageDialog(null,ex.getMessage(),"SQLException:",JOptionPane.INFORMATION_MESSAGE);?}?}?elseif(e.getActionCommand()=="取消"){?setVisible(false);?}?}
}
import
java.awt.event.*;import
java.sql.Connection;import
java.sql.ResultSet;import
java.sql.SQLException;import
java.sql.Statement;
import
javax.swing.JButton;import
javax.swing.JOptionPane;
public
class
DeleteStudent
extends
StudentEdit
implements
ActionListener{?JButton
b3=new
JButton("刪除");??public
DeleteStudent(){?super();??p12.add(b3);?//對非必要文本框設(shè)置不可編輯?s.setEnabled(false);?name.setEditable(false);?birth.setEditable(false);?grade.setEnabled(false);?clas.setEnabled(false);?chinese.setEditable(false);?english.setEditable(false);?maths.setEditable(false);?major.setEnabled(false);?b1.addActionListener(this);?b2.addActionListener(this);?b3.addActionListener(this);?}?@Override?public
void
actionPerformed(ActionEvente){?//
TODO
自動生成的方法存根?if(e.getActionCommand()=="確定"){?Stringnumber=num.getText();?if(number.equals("")){?JOptionPane.showMessageDialog(null,
"不存在此學(xué)生",
"Messages",?JOptionPane.INFORMATION_MESSAGE);??}?else?try{?Connectioncon=DataBaseCreate.getConnection();?Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);?//查找Num字段中與number相等的數(shù)據(jù)?ResultSetrs=sql.executeQuery("select*fromstudentwhereNumlike'%"+number+"%'");??if(rs.next()){?//顯示到文本框??s.setSelectedItem(rs.getString("Sex"));?name.setText(rs.getString("Name"));?birth.setText(rs.getString("Birth"));?chinese.setText(rs.getString("Chinese"));?english.setText(rs.getString("English"));?maths.setText(rs.getString("Maths"));?s.setSelectedItem(rs.getString("Sex"));?clas.setSelectedItem(rs.getString("Class"));?grade.setSelectedItem(rs.getString("Grade"));?major.setSelectedItem(rs.getString("Major"));?}?else{?JOptionPane.showMessageDialog(null,
"不存在此學(xué)生",
"Messages",?JOptionPane.INFORMATION_MESSAGE);?}??sql.close();?con.close();??}catch(java.lang.ClassNotFoundExceptionerr){?JOptionPane.showMessageDialog(null,err.getMessage(),
"ClassNotFoundException:",?JOptionPane.INFORMATION_MESSAGE);?}catch
(SQLExceptionex){?JOptionPane.showMessageDialog(null,ex.getMessage(),
"SQLException:",JOptionPane.INFORMATION_MESSAGE);?}?}?else
if(e.getActionCommand()=="取消"){?setVisible(false);?}?else
if(e.getActionCommand()=="刪除"){?Stringnumber=num.getText();?if(number.equals("")){?JOptionPane.showMessageDialog(null,
"不存在此學(xué)生",
"Messages",?JOptionPane.INFORMATION_MESSAGE);??}?else?try{?Connectioncon=DataBaseCreate.getConnection();?Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);?ResultSetrs=sql.executeQuery("select*fromstudentwhereNumlike'%"+number+"%'");??if(rs.next()){?//刪除number所在行數(shù)據(jù)?rs.deleteRow();?//清空文本框?s.setSelectedItem("");?num.setText("");?name.setText("");?birth.setText("");?chinese.setText("");?english.setText("");?maths.setText("");?s.setSelectedItem("");?clas.setSelectedItem("");?grade.setSelectedItem("");?major.setSelectedItem("");??JOptionPane.showMessageDialog(null,
"刪除成功",
"Messages",?JOptionPane.INFORMATION_MESSAGE);?}?else{?JOptionPane.showMessageDialog(null,
"不存在此學(xué)生",
"Messages",?JOptionPane.INFORMATION_MESSAGE);?}??sql.close();?con.close();?setVisible(false);??}catch(java.lang.ClassNotFoundExceptionerr){?JOptionPane.showMessageDialog(null,err.getMessage(),
"ClassNotFoundException:",?JOptionPane.INFORMATION_MESSAGE);?}catch
(SQLExceptionex){?JOptionPane.showMessageDialog(null,ex.getMessage(),
"SQLException:",JOptionPane.INFORMATION_MESSAGE);?}??}?}}
import
java.awt.event.ActionEvent;import
java.awt.event.ActionListener;import
java.sql.Connection;import
java.sql.ResultSet;import
java.sql.SQLException;import
java.sql.Statement;
import
javax.swing.JButton;import
javax.swing.JOptionPane;
public
class
UpdateStudent
extends
StudentEdit
implements
ActionListener{??JButton
b3=new
JButton("修改");??public
UpdateStudent(){?super();?p12.add(b3);?//對非必要文本框設(shè)置不可編輯?s.setEnabled(false);?name.setEditable(false);?birth.setEditable(false);?grade.setEnabled(false);?clas.setEnabled(false);?chinese.setEditable(false);?english.setEditable(false);?maths.setEditable(false);?major.setEnabled(false);?//注冊監(jiān)聽器?b1.addActionListener(this);?b2.addActionListener(this);?b3.addActionListener(this);?}?@Override?public
void
actionPerformed(ActionEvente){?//
TODO
自動生成的方法存根?if(e.getActionCommand()=="確定"){?Stringnumber=num.getText();?if(number.equals("")){?JOptionPane.showMessageDialog(null,
"不存在此學(xué)生",
"Messages",?JOptionPane.INFORMATION_MESSAGE);??}?else?try{?Connectioncon=DataBaseCreate.getConnection();?Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);?ResultSetrs=sql.executeQuery("select*fromstudentwhereNumlike'%"+number+"%'");?//通過學(xué)號查找并顯示數(shù)據(jù)到文本框?if(rs.next()){?s.setSelectedItem(rs.getString("Sex"));?name.setText(rs.getString("Name"));?birth.setText(rs.getString("Birth"));?chinese.setText(rs.getString("Chinese"));?english.setText(rs.getString("English"));?maths.setText(rs.getString("Maths"));?s.setSelectedItem(rs.getString("Sex"));?clas.setSelectedItem(rs.getString("Class"));?grade.setSelectedItem(rs.getString("Grade"));?major.setSelectedItem(rs.getString("Major"));?//必要文本框設(shè)為可編輯?num.setEditable(false);?s.setEnabled(true);?name.setEditable(true);?birth.setEditable(true);?grade.setEnabled(true);?clas.setEnabled(true);?chinese.setEditable(true);?english.setEditable(true);?maths.setEditable(true);?major.setEnabled(true);?b1.setEnabled(false);?}?else{?JOptionPane.showMessageDialog(null,
"不存在此學(xué)生",
"Messages",?JOptionPane.INFORMATION_MESSAGE);?}??sql.close();?con.close();??}catch(java.lang.ClassNotFoundExceptionerr){?JOptionPane.showMessageDialog(null,err.getMessage(),
"ClassNotFoundException:",?JOptionPane.INFORMATION_MESSAGE);?}catch
(SQLExceptionex){?JOptionPane.showMessageDialog(null,ex.getMessage(),
"SQLException:",JOptionPane.INFORMATION_MESSAGE);?}?}?else
if(e.getActionCommand()=="取消"){?setVisible(false);?}?else
if(e.getActionCommand()=="修改"){?Stringnumber=num.getText();?float
total=Float.parseFloat(?chinese.getText())+Float.parseFloat(english.getText())+Float.parseFloat(maths.getText());???try{?Connectioncon=DataBaseCreate.getConnection();?Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);?//通過學(xué)號查找數(shù)據(jù)?ResultSetrs1=sql.executeQuery("select*fromstudentwhereNumlike'%"+number+"%'");?if(rs1.next()){?//修改各字段數(shù)值?rs1.updateString("Name",
name.getText());?rs1.updateString("Birth",
birth.getText());?rs1.updateString("Sex",(String)
s.getSelectedItem());?rs1.updateString("Class",(String)
clas.getSelectedItem());?rs1.updateString("Grade",(String)
grade.getSelectedItem());?rs1.updateString("Major",(String)
major.getSelectedItem());?rs1.updateString("Chinese",
chinese.getText());?rs1.updateString("English",
english.getText());?rs1.updateString("Maths",
maths.getText());?rs1.updateFloat("Total",total);?rs1.updateRow();?}?else{?JOptionPane.showMessageDialog(null,
"不存在此學(xué)生",
"Messages",?JOptionPane.INFORMATION_MESSAGE);?}??sql.close();?con.close();?JOptionPane.showMessageDialog(null,
"成功修改學(xué)生信息與成績",
"Message",?JOptionPane.INFORMATION_MESSAGE);?setVisible(false);??}catch(java.lang.ClassNotFoundExceptionerr){?JOptionPane.showMessageDialog(null,err.getMessage(),
"ClassNotFoundException:",?JOptionPane.INFORMATION_MESSAGE);?}catch
(SQLExceptionex){?JOptionPane.showMessageDialog(null,ex.getMessage(),
"SQLException:",JOptionPane.INFORMATION_MESSAGE);?}??}?}}
import
java.awt.event.ActionEvent;import
java.awt.event.ActionListener;import
java.sql.Connection;import
java.sql.ResultSet;import
java.sql.SQLException;import
java.sql.Statement;
import
javax.swing.JOptionPane;
public
class
IndexSingle
extends
StudentEdit
implements
ActionListener{??public
IndexSingle(){?super();???//對非必要文本框設(shè)置不可編輯?s.setEnabled(false);?name.setEditable(false);?birth.setEditable(false);?grade.setEnabled(false);?clas.setEnabled(false);?chinese.setEditable(false);?english.setEditable(false);?maths.setEditable(false);?major.setEnabled(false);?b1.addActionListener(this);?b2.addActionListener(this);??}?@Override?public
void
actionPerformed(ActionEvente){?//
TODO
自動生成的方法存根?if(e.getActionCommand()=="確定"){?Stringnumber=num.getText();?if(number.equals("")){?JOptionPane.showMessageDialog(null,
"不存在此學(xué)生",
"Messages",?JOptionPane.INFORMATION_MESSAGE);??}?else?try{?Connectioncon=DataBaseCreate.getConnection();?Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);?//查找Num字段中與number相等的數(shù)據(jù)?ResultSetrs=sql.executeQuery("select*fromstudentwhereNumlike'%"+number+"%'");??if(rs.next()){?//顯示到文本框??s.setSelectedItem(rs.getString("Sex"));?name.setText(rs.getString("Name"));?birth.setText(rs.getString("Birth"));?chinese.setText(rs.getString("Chinese"));?english.setText(rs.getString("English"));?maths.setText(rs.getString("Maths"));?s.setSelectedItem(rs.getString("Sex"));?clas.setSelectedItem(rs.getString("Class"));?grade.setSelectedItem(rs.getString("Grade"));?major.setSelectedItem(rs.getString("Major"));?}?else{?JOptionPane.showMessageDialog(null,
"不存在此學(xué)生",
"Messages",?JOptionPane.INFORMATION_MESSAGE);?}??sql.close();?con.close();??}catch(java.lang.ClassNotFoundExceptionerr){?JOptionPane.showMessageDialog(null,err.getMessage(),
"ClassNotFoundException:",?JOptionPane.INFORMATION_MESSAGE);?}catch
(SQLExceptionex){?JOptionPane.showMessageDialog(null,ex.getMessage(),
"SQLException:",JOptionPane.INFORMATION_MESSAGE);?}?}?else
if(e.getActionCommand()=="取消"){?setVisible(false);?}???}}
import
java.awt.BorderLayout;
import
javax.swing.JButton;import
javax.swing.JFrame;import
javax.swing.JPanel;import
javax.swing.JScrollPane;import
javax.swing.JTextArea;
public
class
IndexOrManage
extends
JFrame{
?JButton
b1=new
JButton("顯示");?JButton
b2=new
JButton("取消");?JButton
b3=new
JButton("保存");?JTextArea
text=new
JTextArea(15,40);?JPanel
p1=new
JPanel();?JPanel
p2=new
JPanel();?JScrollPane
scroll=new
JScrollPane(text);?public
IndexOrManage(){??p2.add(b1);?p2.add(b2);?p2.add(b3);?//設(shè)置布局?getContentPane().setLayout(new
BorderLayout());?getContentPane().add(p1,BorderLayout.NORTH);?getContentPane().add(scroll,BorderLayout.CENTER);?getContentPane().add(p2,BorderLayout.SOUTH);??setBounds(500,250,100,100);?pack();?setVisible(true);?}}
import
;import
;import
java.awt.event.ActionEvent;import
java.awt.event.ActionListener;import
java.sql.Connection;import
java.sql.ResultSet;import
java.sql.SQLException;import
java.sql.Statement;import
java.util.Arrays;
import
;import
javax.swing.JComboBox;import
;import
javax.swing.JLabel;import
javax.swing.JOptionPane;import
;import
;import
;
public
class
SubjectScoreRanking
extends
IndexOrManage
implementsActionListener{
?String[]
subjects={"","語文","英語","數(shù)學(xué)"};?JComboBox
subject=new
JComboBox(subjects);?JLabel
la=new
JLabel("選擇查詢科目");??public
SubjectScoreRanking(){?super();?p1.add(la);?p1.add(subject);?//注冊監(jiān)聽?b1.addActionListener(this);?b2.addActionListener(this);?b3.addActionListener(this);??pack();?setVisible(true);?}?@Override?public
void
actionPerformed(ActionEvente){?//
TODO
自動生成的方法存根?if(e.getActionCommand()=="顯示"){?text.setText("");?Strings="";?if(subject.getSelectedItem().equals("語文"))?s="Chinese";?else
if(subject.getSelectedItem().equals("英語"))?s="English";?else
if(subject.getSelectedItem().equals("數(shù)學(xué)"))?s="Maths";?else?JOptionPane.showMessageDialog(null,
"找不到該科目",
"Message",?JOptionPane.INFORMATION_MESSAGE);?if(s.equals("")){??}?else?try{?Connectioncon=DataBaseCreate.getConnection();?Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);?ResultSetrs=sql.executeQuery("select"+s+"fromstudent");?rs.last();?//獲取數(shù)據(jù)總行數(shù)?int
row=rs.getRow();?float
score[]=new
float[row];?rs.first();?int
i=0;?//將指定科目成績放入數(shù)組?while(i<row){?score[i]=rs.getFloat(s);?rs.next();?i+=1;?}?//快速排序?Arrays.sort(score);?text.setLineWrap(true);
//激活自動換行功能?text.setWrapStyleWord(true);
//激活斷行不斷字功能??text.append(subject.getSelectedItem()+"成績排名:\r\n");?text.append("排名
姓名
成績
\r\n");?ResultSetrs1;?int
rank=1;?float
ave=0;
?//計算平均分?for(int
j=row-1;j>=0;--j){?rs1=sql.executeQuery("select*fromstudentwhere"+s+"like'%"+score[j]+"%'");??rs1.next();?text.append(rank+"
"+rs1.getString("Name")+"
"?+rs1.getFloat(s)+"\r\n");?rank+=1;?ave+=rs1.getFloat(s);?}?ave=ave/(rank-1);?text.append(subject.getSelectedItem()+"平均成績:"+ave+"\r\n");??}catch(java.lang.ClassNotFoundExceptionerr){?JOptionPane.showMessageDialog(null,err.getMessage(),
"ClassNotFoundException:",?JOptionPane.INFORMATION_MESSAGE);?}catch
(SQLExceptionex){?JOptionPane.showMessageDialog(null,ex.getMessage(),
"SQLException:",JOptionPane.INFORMATION_MESSAGE);?}?}?else
if(e.getActionCommand()=="取消"){?setVisible(false);?}?else
if(e.getActionCommand()=="保存"){?TxtSave
save=newTxtSave(text.getText(),"按"+subject.getSelectedItem()+"成績排名");?}?}
}
import
;import
java.awt.event.ActionEvent;import
java.awt.event.ActionListener;import
java.sql.Connection;import
java.sql.ResultSet;import
java.sql.SQLException;import
java.sql.Statement;import
java.util.Arrays;
import
;import
;import
javax.swing.JOptionPane;import
;import
;import
;
public
class
TotalScoreRanking
extends
IndexOrManage
implementsActionListener{????public
TotalScoreRanking(){??super();?//注冊監(jiān)聽?b1.addActionListener(this);?b2.addActionListener(this);?b3.addActionListener(this);??pack();?setVisible(true);?}
?@Override?public
void
actionPerformed(ActionEvente){?//
TODO
自動生成的方法存根?if(e.getActionCommand()=="顯示"){?b1.setEnabled(false);?try{?Connectioncon=DataBaseCreate.getConnection();?Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);?ResultSetrs=sql.executeQuery("selectTotalfromstudent");?rs.last();?//獲取數(shù)據(jù)總行數(shù)?int
row=rs.getRow();?float
score[]=new
float[row];?rs.first();?int
i=0;?//將總分成績放入數(shù)組?while(i<row){?score[i]=rs.getFloat("Total");?rs.next();?i+=1;?}?//快速排序?Arrays.sort(score);??text.setLineWrap(true);
//激活自動換行功能?text.setWrapStyleWord(true);
//激活斷行不斷字功能??text.append("總分成績排名:\r\n");?text.append("排名
姓名
總分
\r\n");?ResultSetrs1;?int
rank=1;?float
ave=0;?for(int
j=row-1;j>=0;--j){?//通過總分查找數(shù)據(jù)?rs1=sql.executeQuery("select*fromstudentwhereTotallike'%"+score[j]+"%'");?rs1.next();?text.append(rank+"
"+rs1.getString("Name")+"
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 供熱特許經(jīng)營合同范例
- 喬木購銷合同范例
- 2025年耐高溫可加工陶瓷項目建議書
- 個體合伙轉(zhuǎn)讓合同范本
- 住戶物業(yè)服務(wù)合同范例
- 農(nóng)業(yè)經(jīng)營合同范例
- led貿(mào)易合同范例
- 書出版合同補充合同范本
- 做窗戶合同范例
- 涼拌麻醬采購合同范例
- 中國新能源汽車“車電分離”行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報告2024-2029版
- 雙t板屋面施工方案
- 【消毒供應(yīng)中心護(hù)理人員職業(yè)暴露與安全防護(hù)探究5200字(論文)】
- 2025年湖南省邵陽市新寧縣初三第一次聯(lián)考綜合試題含答案
- 2024-2025學(xué)年新教材高中地理 第三章 產(chǎn)業(yè)區(qū)位因素 第二節(jié) 工業(yè)區(qū)位因素及其變化(2)教案 新人教版必修2
- 財務(wù)管理委托代理會計服務(wù) 投標(biāo)文件(技術(shù)方案)
- 常用焊管規(guī)格表
- 認(rèn)知心理學(xué):認(rèn)知科學(xué)與你的生活
- 中國文學(xué)經(jīng)典導(dǎo)讀智慧樹知到答案2024年華東政法大學(xué)
- DL∕T 1860-2018 自動電壓控制試驗技術(shù)導(dǎo)則
- 中國與澳大利亞雙邊貿(mào)易全景圖(附中澳主要進(jìn)出口產(chǎn)業(yè)數(shù)據(jù))
評論
0/150
提交評論