一个简单的学生成绩管理信息系统Java.docx
- 文档编号:23354293
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:33
- 大小:218.67KB
一个简单的学生成绩管理信息系统Java.docx
《一个简单的学生成绩管理信息系统Java.docx》由会员分享,可在线阅读,更多相关《一个简单的学生成绩管理信息系统Java.docx(33页珍藏版)》请在冰豆网上搜索。
一个简单的学生成绩管理信息系统Java
Java语言程序设计B报告
班级:
学号:
姓名:
成绩:
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;
inth
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一个 简单 学生 成绩 管理信息系统 Java