一个简单的学生成绩管理信息系统Java.docx

上传人:b****6 文档编号:3866943 上传时间:2022-11-26 格式:DOCX 页数:29 大小:210.51KB
下载 相关 举报
一个简单的学生成绩管理信息系统Java.docx_第1页
第1页 / 共29页
一个简单的学生成绩管理信息系统Java.docx_第2页
第2页 / 共29页
一个简单的学生成绩管理信息系统Java.docx_第3页
第3页 / 共29页
一个简单的学生成绩管理信息系统Java.docx_第4页
第4页 / 共29页
一个简单的学生成绩管理信息系统Java.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

一个简单的学生成绩管理信息系统Java.docx

《一个简单的学生成绩管理信息系统Java.docx》由会员分享,可在线阅读,更多相关《一个简单的学生成绩管理信息系统Java.docx(29页珍藏版)》请在冰豆网上搜索。

一个简单的学生成绩管理信息系统Java.docx

一个简单的学生成绩管理信息系统Java

 

Java语言程序设计B报告

 

班级:

192091—27

学号:

***********

*******************

成绩:

 

2012年1月

一个简单的学生成绩管理信息系统

题目:

数据库要求:

1.建立的数据库中包含如下信息:

学生学号、姓名、班级,语文、数学、英语成绩。

2.至少要有5个班级,每个班级要有10名以上学生。

3。

使用。

txt格式文本表示各种表。

功能需求:

1。

能够实现根据以下关键字查询:

学生姓名、学号、班级、课程名称。

2。

能够实现按照单科成绩、总成绩、平均成绩、学号排序。

3.能够实现学生信息的插入、删除和修改。

4.能够查询每个课程的最高分、最低分及相应学生姓名、班级和学号.

5.能够查询每个班级某门课程的优秀率(90分及以上)、不及格率,并进行排序。

界面要求:

使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。

 

一、需求分析

1、界面

符合日常软件使用规范,使用方便,外形简洁美观。

2、功能需求

存储学生学号、姓名、班级,语文、数学、英语成绩等信息,实现数据库的读取与存入,数据项的记录与修改,删除等。

 

二、设计思想

1、类设计

将添加数据、查询数据、删除数据、修改数据四个功能分别为四个类来实现,为了便于测试,每一个类都继承了主窗口类jframe,使得窗口可以独自运行.

●Insert类设计

功能组件6个文本域、6个标签、1个按钮

功能实现添加数据

实现过程对按钮添加监控,实现按钮事件为获取文本域中的信息,并执行SQL的insert语句。

●Query类设计

功能组件5个按钮、三个单行文本组件、1个下拉框、1个多行文本

功能实现按学号查询、按姓名查询、按班级查询、按课程查询、显示全部

实现过程对按钮添加监控,共有五个监控事件,前三个实现按钮事件为先获取文本域中的信息,根据对应查询的要求执行相应的SQL的Sellect语句;按课程查询通过在下来框中选择对应的选项,即查询相应的课程;第五个查询按钮将全部信息在多行文本框中输出。

●Modify类设计

功能组件6个单行文本、6个标签、1个按钮

功能实现修改数据

实现过程与添加数据类似,对按钮添加监控,实现按钮事件为获取文本域中的信息,并执行SQL的Update语句;不同的是以学号为主键进行查找并更新。

●delete类设计

功能组件1个单行文本、1个标签、1个按钮、1个多行文本

功能实现删除数据

实现过程与修改数据类似,对按钮添加监控,实现按钮事件为获取文本域中的学号信息,并执行SQL的delete语句;不同的是以学号为主键进行查找并将删除信息输出到文本框中。

 

2、数据库设计

●系统概念结构设计

 

●系统逻辑结构设计

学生成绩信息表

字段名

属性

类型

空值

约束条件

学号

ID

文本

notnull

主键

姓名

name

文本

从键

班级

class

文本

从简

语文

Chinese

长整数

英语

English

长整数

数学

Maths

长整数

●数据库截图

3、主界面设计

MainFrame类设计

功能组件4个按钮、1个背景、2个标签文本、2个面板

功能实现查询数据、添加数据、删除数据、修改数据

实现过程对按钮添加监控,共有4个监控事件,实现按钮事件为创建对应功能的类对象,出现相应的功能窗口.

 

三、运行截图

Ø主界面

Ø添加数据

Ø查询数据

●按学号查询

 

●按姓名查询

 

●按班级查询

 

●按课程名称查询

●显示所有信息

 

Ø修改数据

 

Ø删除数据

 

四、实验感想

通过此次课程设计我学会了很多知识,将Java课上遗漏的知识又进一步补上.实践过程中遇到了很多困难,比如没学过数据库,SQL语句不熟,对eclipse的使用很生疏等,因此花费了很多时间在前期准备工作上.即使如此,也有一些功能尚未实现,例如查询优秀率、最高分和最低分等,虽然比较简单,但由于时间问题还是没来得及做.由于本次试验的很多知识都是现学现用,以致很多地方的代码显得累赘繁琐。

但总体上主要功能是实现了的,并且美化了一下主界面.

总之,此次课程设计让我获益匪浅,我将会继续把它完善做好。

 

五、源代码清单

ØMainFrame类

importjavax。

swing.*;

importjava.awt。

*;

importjava.awt.event。

*;

publicclassMainFrameextendsJFrame{

JButtoninsert,query,delete,modify;

JPanelpanel,panel1,panel2;

publicMainFrame()

//TODOAuto—generatedmethodstub

ImageIconimg=newImageIcon(”1。

gif”);

JLabeltext1,text2,picture=newJLabel(img);

JFrameframe=newJFrame(”学生成绩管理系统”);

insert=newJButton("添加数据”);

insert.setBackground(Color.green);

insert。

addActionListener(newinsertActionPerformed());

query=newJButton("查询数据”);

query.addActionListener(newqueryActionPerformed());

query。

setBackground(Color。

green);

modify=newJButton(”修改数据");

modify.setBackground(Color。

green);

modify。

addActionListener(newmodifyActionPerformed());

delete=newJButton(”删除数据");

delete.setBackground(Color.green);

delete.addActionListener(newdeleteActionPerformed());

frame.setSize(360,200);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

ContainercontentPane=frame.getContentPane();

contentPane。

setLayout(newBorderLayout());

text1=newJLabel(”欢迎使用学生成绩管理系统",JLabel.CENTER);

text1。

setFont(newFont(”宋体”,Font。

BOLD,24));

text1.setForeground(Color.blue);

text2=newJLabel(”—————-192091班罗斌制作");

text2。

setFont(newFont(”TimesRoman”,Font。

ROMAN_BASELINE,14));

panel1=newJPanel();

panel1。

add(insert);

panel1.add(query);

panel2=newJPanel();

panel2。

add(modify);

panel2。

add(delete);

panel1.setOpaque(false);

panel2.setOpaque(false);

panel=newJPanel();

panel。

add(text2,BorderLayout.NORTH);

panel.add(panel1,BorderLayout。

NORTH);

panel。

add(panel2,BorderLayout.SOUTH);

panel。

setOpaque(false);

contentPane。

add(text1,BorderLayout。

NORTH);

contentPane。

add(panel,BorderLayout。

CENTER);

frame.getLayeredPane()。

add(picture,newInteger(Integer。

MIN_VALUE));

Toolkitkit=Toolkit。

getDefaultToolkit();

DimensionscreenSize=kit。

getScreenSize();

intscreenWidth=screenSize.width/2;

intscreenHeight=screenSize。

height/2;

intheight=this。

getHeight();

intwidth=this。

getWidth();

picture。

setBounds(0,0,360,360);

((JPanel)contentPane)。

setOpaque(false);

frame。

setLocation(screenWidth—width/2,screenHeight—height/2);

frame。

setVisible(true);

publicclassinsertActionPerformedimplementsActionListener

{

publicvoidactionPerformed(ActionEvente)

{

newInsert().setVisible(true);

publicclassmodifyActionPerformedimplementsActionListener

{

publicvoidactionPerformed(ActionEvente)

{

newModify()。

setVisible(true);

}

}

publicclassqueryActionPerformedimplementsActionListener

publicvoidactionPerformed(ActionEvente)

newQuery()。

setVisible(true);

publicclassdeleteActionPerformedimplementsActionListener

publicvoidactionPerformed(ActionEvente)

newDelete().setVisible(true);

}

publicstaticvoidmain(String[]args)

newMainFrame();

ØInsert类

importjava。

awt。

*;

importjava.awt。

event.*;

importjavax。

swing。

*;

importjava。

sql.*;

publicclassInsertextendsJFrame

JTextFieldinput1,input2,input3,input4,input5,input6;

JLabellabel1,label2,label3,label4,label5;

JButtonbutton;

staticStatementst;

static{

try{

Class。

forName(”sun。

jdbc。

odbc。

JdbcOdbcDriver”);

Connectioncon=DriverManager.getConnection(”jdbc:

odbc:

student”);

st=con。

createStatement();

catch(Exceptione){}

ResultSetrs;

publicInsert()

input1=newJTextField(15);

input2=newJTextField(15);

input3=newJTextField(15);

input4=newJTextField(15);

input5=newJTextField(15);

input6=newJTextField(15);

JPanelpanel=newJPanel();

panel。

setLayout(newGridLayout(6,2));

panel.add(newJLabel("学号"),BorderLayout.CENTER);

panel.add(input1);

panel。

add(newJLabel("姓名”),BorderLayout。

CENTER);

panel。

add(input2);

panel.add(newJLabel(”班级"),BorderLayout。

CENTER);

panel.add(input3);

panel。

add(newJLabel(”语文”),BorderLayout。

CENTER);

panel。

add(input4);

panel.add(newJLabel("英语"));

panel。

add(input5);

panel.add(newJLabel(”数学”));

panel。

add(input6);

button=newJButton(”添加");

button。

addActionListener(newmysql());

Containercontainer=getContentPane();

container。

add(panel,BorderLayout.CENTER);

container。

add(button,BorderLayout.SOUTH);

setTitle(”添加数据窗口");

setDefaultCloseOperation(JFrame。

DISPOSE_ON_CLOSE);

setSize(250,250);

Toolkitkit=Toolkit。

getDefaultToolkit();

DimensionscreenSize=kit.getScreenSize();

intscreenWidth=screenSize。

width/2;

intscreenHeight=screenSize.height/2;

intheight=this。

getHeight();

intwidth=this。

getWidth();

setLocation(screenWidth—width/2,screenHeight-height/2);

setVisible(true);

classmysqlimplementsActionListener

{

publicvoidactionPerformed(ActionEvente)

{

try

Stringnumber=input1。

getText()。

trim();

Stringname=input2.getText()。

trim();

Stringclas=input3。

getText()。

trim();

Stringtemp=input4.getText();

intchinese=Integer.parseInt(temp);

temp=input4。

getText();

intenglish=Integer。

parseInt(temp);

temp=input4。

getText();

intmaths=Integer.parseInt(temp);

if(number.equals(”")|name。

equals(”")|clas。

equals(”")|temp。

equals(””))

JOptionPane.showMessageDialog(Insert.this,"请重新输入",”提示对话框”,1);

else

Stringsql=”insertintoScoreInfo(ID,name,class,Chinese,English,Maths)values(’"+number+”’,'”+name+"’,’”+clas+”',"+chinese+","+english+”,"+maths+”);”;

st。

executeUpdate(sql);

JOptionPane.showMessageDialog(Insert。

this,”数据添加成功","提示对话框”,1);

input1.setText(””);

input2。

setText(”");

input3。

setText("”);

input4.setText("”);

input5.setText(””);

input6.setText("");

catch(Exceptionee){}

}

 

ØQuery类

importjava。

awt。

*;

importjavax。

swing.event.*;

importjava。

awt.event.*;

importjavax。

swing。

*;

importjava.sql.*;

publicclassQueryextendsJFrame{

JTextAreashow;

JButtonbutton1,button2,button3,button4,button5;

JTextFieldfield1,field2,field3;

JComboBoxcomoBox;

staticStatementst;

static{

try{

Class。

forName(”sun.jdbc。

odbc.JdbcOdbcDriver");

Connectioncon=DriverManager.getConnection("jdbc:

odbc:

student");

st=con。

createStatement();

catch(Exceptione){}

publicQuery()

{

show=newJTextArea(5,10);

button1=newJButton("显示所有信息”);

button1.addActionListener(newMysql1());

Containercontainer=getContentPane();

container.setLayout(newBorderLayout());

JPanelpanel=newJPanel();

JPanelmainpanel=newJPanel();

button2=newJButton("按学号查询");

button2。

addActionListener(newMysql2());

panel。

add(button2);

field1=newJTextField(7);

panel。

add(field1);

panel。

setVisible(true);

mainpanel。

add(panel);

button3=newJButton(”按姓名查询");

button3。

addActionListener(newMysql3());

panel。

add(button3);

field2=newJTextField(6);

panel.add(field2);

panel.setVisible(true);

mainpanel.add(panel);

button4=newJButton(”按班级查询”);

button4。

addActionListener(newMysql4());

panel.add(button4);

field3=newJTextField(6);

panel.add(field3);

panel。

setVisible(true);

mainpanel.add(panel);

Stringitems[]={"请选择",”语文”,"英语",”数学"};

comoBox=newJComboBox(items);

button5=newJButton("按课程名称查询”);

button5。

addActionListener(newMysql5());

panel。

add(button5);

panel.add(comoBox);

panel。

setVisible(true);

mainpanel。

add(panel);

panel=newJPanel();

panel。

add(button1);

container.add(mainpanel,BorderLayout。

NORTH);

container.add(panel,BorderLayout。

SOUTH);

container。

add(newJScrollPane(show),BorderLayout。

CENTER);

setTitle("查询数据”);

setDefaultCloseOperation(JFrame。

DISPOSE_ON_CLOSE);

setSize(750,400);

Toolkitkit=Toolkit。

getDefaultToolkit();

DimensionscreenSize=kit.getScreenSize();

intscreenWidth=screenSize.width/2;

intscreenHeight=screenSize。

height/2;

intheight=this。

getHeigh

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1