java程序設(shè)計-學(xué)生成績信息管理系統(tǒng)_第1頁
java程序設(shè)計-學(xué)生成績信息管理系統(tǒng)_第2頁
java程序設(shè)計-學(xué)生成績信息管理系統(tǒng)_第3頁
java程序設(shè)計-學(xué)生成績信息管理系統(tǒng)_第4頁
java程序設(shè)計-學(xué)生成績信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論