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

上传人:白大夫 文档编号:5469459 上传时间:2020-05-17 格式:PDF 页数:23 大小:552.34KB
返回 下载 相关 举报
一个简单的学生成绩管理信息系统(Java).pdf_第1页
第1页 / 共23页
一个简单的学生成绩管理信息系统(Java).pdf_第2页
第2页 / 共23页
一个简单的学生成绩管理信息系统(Java).pdf_第3页
第3页 / 共23页
一个简单的学生成绩管理信息系统(Java).pdf_第4页
第4页 / 共23页
一个简单的学生成绩管理信息系统(Java).pdf_第5页
第5页 / 共23页
点击查看更多>>
资源描述

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

1、Java语言程序设计 B报 告 班级: 192091-27 学号: 20091003757 姓名:罗斌 成绩: 2012年 1 月 一个简单的学生成绩管理信息系统 题目: 数据库要求: 1. 建立的数据库中包含如下信息:学生学号、姓名、班级,语文、数学、英语 成绩。 2. 至少要有 5个班级,每个班级要有10 名以上学生。 3. 使用.txt 格式文本表示各种表。 功能需求: 1. 能够实现根据以下关键字查询:学生姓名、学号、班级、课程名称。 2. 能够实现按照单科成绩、总成绩、平均成绩、学号排序。 3. 能够实现学生信息的插入、删除和修改。 4. 能够查询每个课程的最高分、最低分及相应学生姓

2、名、班级和学号。 5. 能够查询每个班级某门课程的优秀率(90分及以上)、 不及格率,并进行排序。 界面要求: 使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。 一、需求分析 1 、界面 符合日常软件使用规范,使用方便,外形简洁美观。 2 、功能需求 存储学生学号、姓名、班级,语文、数学、英语成绩等信息,实现数据库 的读取与存入,数据项的记录与修改,删除等。 二、设计思想 1、类设计 将添加数据、 查询数据、 删除数据、 修改数据四个功能分别为四个类来实现, 为了便于测试,每一个类都继承了主窗口类JFRAME,使得窗口可以独自运行。 INSERT类设计 功能组件 6个文本域、 6 个

3、标签、 1 个按钮 功能实现添加数据 实现过程对按钮添加监控,实现按钮事件为获取文本域中的信息,并执行 SQL的 INSERT 语句。 QUERY 类设计 功能组件 5个按钮、三个单行文本组件、1 个下拉框、 1 个多行文本 功能实现按学号查询、按姓名查询、按班级查询、按课程查询、显示全部 实现过程对按钮添加监控,共有五个监控事件,前三个实现按钮事件为先 获取文本域中的信息, 根据对应查询的要求执行相应的SQL的 SELLECT 语句;按 课程查询通过在下来框中选择对应的选项,即查询相应的课程; 第五个查询按钮 将全部信息在多行文本框中输出。 MODIFY 类设计 功能组件 6个单行文本、 6

4、 个标签、 1 个按钮 功能实现修改数据 实现过程与添加数据类似,对按钮添加监控,实现按钮事件为获取文本域 中的信息,并执行 SQL的 UPDATE 语句;不同的是以学号为主键进行查找并更新。 DELETE 类设计 功能组件 1个单行文本、 1 个标签、 1 个按钮、 1 个多行文本 功能实现删除数据 实现过程与修改数据类似,对按钮添加监控,实现按钮事件为获取文本域 中的学号信息,并执行SQL的 DELETE 语句;不同的是以学号为主键进行查找并 将删除信息输出到文本框中。 2、数据库设计 系统概念结构设计 系统逻辑结构设计 学生成绩信息表 字段名属性类型空值约束条件 学号ID 文本not n

5、ull 主键 姓名name 文本从键 班级class 文本从简 语文Chinese 长整数 英语English 长整数 数学Maths 长整数 数据库截图 3、主界面设计 成绩查询系统 学号 姓名 班级 语文 数学 英语 MAINFRAME类设计 功能组件 4个按钮、 1 个背景、 2 个标签文本、 2 个面板 功能实现查询数据、添加数据、删除数据、修改数据 实现过程对按钮添加监控,共有4 个监控事件,实现按钮事件为创建对应 功能的类对象,出现相应的功能窗口。 三、运行截图 主界面 添加数据 查询数据 按学号查询 按姓名查询 按班级查询 按课程名称查询 显示所有信息 修改数据 删除数据 四、实

6、验感想 通过此次课程设计我学会了很多知识,将Java课上遗漏的知识又进一步补 上。实践过程中遇到了很多困难, 比如没学过数据库, SQL 语句不熟, 对 eclipse 的使用很生疏等, 因此花费了很多时间在前期准备工作上。即使如此, 也有一些 功能尚未实现,例如查询优秀率、最高分和最低分等,虽然比较简单,但由于时 间问题还是没来得及做。 由于本次试验的很多知识都是现学现用,以致很多地方 的代码显得累赘繁琐。但总体上主要功能是实现了的,并且美化了一下主界面。 总之,此次课程设计让我获益匪浅,我将会继续把它完善做好。 五、源代码清单 MainFrame 类 import javax.swing.

7、*; import java.awt.*; import java.awt.event.*; public class MainFrame extends JFrame JButton insert,query,delete,modify ; JPanel panel,panel1,panel2; public MainFrame() / TODO Auto-generated method stub ImageIcon img= new ImageIcon(“1.gif“ ); JLabel text1,text2,picture= new JLabel(img); JFrame frame

8、=new JFrame(“学生成绩管理系统“); insert=new JButton(“添加数据 “); insert.setBackground(Color.green); insert.addActionListener( new insertActionPerformed(); query=new JButton(“查询数据 “); query.addActionListener( new queryActionPerformed(); query.setBackground(Color. green); modify =new JButton( “修改数据 “); modify .s

9、etBackground(Color. green); modify .addActionListener( new modifyActionPerformed(); delete=new JButton(“删除数据 “); delete.setBackground(Color. green); delete.addActionListener( new deleteActionPerformed(); frame.setSize(360,200); frame.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE ); Container conten

10、tPane=frame.getContentPane(); contentPane.setLayout(new BorderLayout(); text1=new JLabel(“欢迎使用学生成绩管理系统“,JLabel.CENTER); text1.setFont(new Font(“宋体 “,Font.BOLD ,24); text1.setForeground(Color. blue); text2=new JLabel(“-192091 班罗斌制作 “); text2.setFont(new Font(“TimesRoman“ ,Font.ROMAN_BASELINE ,14); pa

11、nel1=new JPanel(); panel1.add(insert); panel1.add(query); panel2=new JPanel(); panel2.add(modify ); panel2.add(delete); panel1.setOpaque(false); panel2.setOpaque(false); panel=new JPanel(); panel.add(text2,BorderLayout. NORTH); panel.add(panel1,BorderLayout. NORTH); panel.add(panel2,BorderLayout. SO

12、UTH); panel.setOpaque(false); contentPane.add(text1,BorderLayout. NORTH); contentPane.add(panel,BorderLayout. CENTER); frame.getLayeredPane().add(picture, new Integer(Integer.MIN_VALUE ); Toolkit kit = Toolkit.getDefaultToolkit (); Dimension screenSize = kit.getScreenSize(); int screenWidth = screen

13、Size.width /2; int screenHeight = screenSize.height/2; int height = this.getHeight(); int width = this.getWidth(); picture.setBounds(0,0,360,360); (JPanel)contentPane).setOpaque(false); frame.setLocation(screenWidth-width/2, screenHeight-height/2); frame.setVisible( true); public class insertActionP

14、erformed implements ActionListener public void actionPerformed(ActionEvent e) new Insert().setVisible( true); public class modifyActionPerformed implements ActionListener public void actionPerformed(ActionEvent e) new Modify().setVisible( true); public class queryActionPerformed implements ActionLis

15、tener public void actionPerformed(ActionEvent e) new Query().setVisible( true); public class deleteActionPerformed implements ActionListener public void actionPerformed(ActionEvent e) new Delete().setVisible( true); public staticvoid main(String args) new MainFrame(); Insert 类 import java.awt.*; imp

16、ort java.awt.event.*; import javax.swing.*; import java.sql.*; public class Insert extends JFrame JTextField input1,input2 ,input3,input4,input5 ,input6 ; JLabel label1,label2,label3,label4,label5; JButton button; static Statement st; static try Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“ ); Connec

17、tion con=DriverManager. getConnection(“jdbc:odbc:student“ ); st=con.createStatement(); catch(Exception e) ResultSet rs; public Insert() input1=new JTextField(15); input2=new JTextField(15); input3=new JTextField(15); input4=new JTextField(15); input5=new JTextField(15); input6=new JTextField(15); JP

18、anel panel=new JPanel(); panel.setLayout(new GridLayout(6,2); panel.add(new JLabel(“学号 “),BorderLayout. CENTER); panel.add(input1); panel.add(new JLabel(“姓名 “),BorderLayout. CENTER); panel.add(input2); panel.add(new JLabel(“班级 “),BorderLayout. CENTER); panel.add(input3); panel.add(new JLabel(“语文 “),

19、BorderLayout. CENTER); panel.add(input4); panel.add(new JLabel(“英语 “); panel.add(input5); panel.add(new JLabel(“数学 “); panel.add(input6); button=new JButton(“添加 “); button.addActionListener( new mysql(); Container container=getContentPane(); container.add(panel,BorderLayout. CENTER); container.add(b

20、utton,BorderLayout. SOUTH); setTitle(“添加数据窗口“); setDefaultCloseOperation(JFrame. DISPOSE_ON_CLOSE ); setSize(250,250); Toolkit kit = Toolkit.getDefaultToolkit (); Dimension screenSize = kit.getScreenSize(); int screenWidth = screenSize.width /2; int screenHeight = screenSize.height/2; int height = t

21、his.getHeight(); int width = this.getWidth(); setLocation(screenWidth-width/2, screenHeight-height/2); setVisible(true); class mysql implements ActionListener public void actionPerformed(ActionEvent e) try String number= input1.getText().trim(); String name=input2.getText().trim(); String clas=input

22、3.getText().trim(); String temp=input4.getText(); int chinese=Integer.parseInt(temp); temp=input4.getText(); int english=Integer.parseInt(temp); temp=input4.getText(); int maths=Integer.parseInt(temp); if(number.equals(“ )|name.equals(“ )| clas.equals(“ )|temp.equals(“ ) JOptionPane.showMessageDialo

23、g(Insert.this,“请重新输入“,“ 提示对话 框“,1); else String sql=“insert into ScoreInfo(ID,name,class,Chinese,English,Maths) values(“+number+“,“ +name+“,“+clas+“,“ +chinese+“,“ +english+“,“ +maths+“);“ ; st.executeUpdate(sql); JOptionPane.showMessageDialog(Insert.this, “数据添加成功“,“提示对 话框 “,1); input1 .setText(“ );

24、 input2 .setText(“ ); input3 .setText(“ ); input4 .setText(“ ); input5 .setText(“ ); input6 .setText(“ ); catch(Exception ee) Query 类 import java.awt.*; import javax.swing.event.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class Query extends JFrame JTextArea show; JBu

25、tton button1,button2,button3,button4,button5; JTextField field1 ,field2 ,field3; JComboBox comoBox; static Statement st; static try Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“ ); Connection con=DriverManager. getConnection(“jdbc:odbc:student“ ); st=con.createStatement(); catch(Exception e) public Q

26、uery() show=new JTextArea(5,10); button1=new JButton(“显示所有信息“); button1.addActionListener( new Mysql1(); Container container=getContentPane(); container.setLayout( new BorderLayout(); JPanel panel=new JPanel(); JPanel mainpanel=new JPanel(); button2=new JButton(“按学号查询 “); button2.addActionListener(

27、new Mysql2(); panel.add(button2); field1 =new JTextField(7); panel.add(field1 ); panel.setVisible(true); mainpanel.add(panel); button3=new JButton(“按姓名查询 “); button3.addActionListener( new Mysql3(); panel.add(button3); field2 =new JTextField(6); panel.add(field2 ); panel.setVisible(true); mainpanel.

28、add(panel); button4=new JButton(“按班级查询 “); button4.addActionListener( new Mysql4(); panel.add(button4); field3 =new JTextField(6); panel.add(field3 ); panel.setVisible(true); mainpanel.add(panel); String items= “请选择 “,“语文 “,“英语 “,“数学 “; comoBox=new JComboBox(items); button5=new JButton(“按课程名称查询“); b

29、utton5.addActionListener( new Mysql5(); panel.add(button5); panel.add(comoBox); panel.setVisible(true); mainpanel.add(panel); panel=new JPanel(); panel.add(button1); container.add(mainpanel,BorderLayout. NORTH); container.add(panel,BorderLayout. SOUTH); container.add(new JScrollPane(show),BorderLayo

30、ut. CENTER); setTitle(“查询数据 “); setDefaultCloseOperation(JFrame. DISPOSE_ON_CLOSE ); setSize(750,400); Toolkit kit = Toolkit.getDefaultToolkit (); Dimension screenSize = kit.getScreenSize(); int screenWidth = screenSize.width /2; int screenHeight = screenSize.height/2; int height = this.getHeight();

31、 int width = this.getWidth(); setLocation(screenWidth-width/2, screenHeight-height/2); setVisible(true); class Mysql1 implements ActionListener public void actionPerformed(ActionEvent e) try String sql=“select * from ScoreInfo“ ; ResultSet rs=st.executeQuery(sql); show.setText(“ ); show.append(“序号学号

32、 姓名班级语文英语 数学 “+“n“); while(rs.next() show.append(rs.getInt(1)+ “ “); show.append(rs.getString(2)+ “ “); show.append(rs.getString(3)+ “ “); show.append(rs.getString(4)+ “ “); show.append(rs.getInt(5)+ “ “); show.append(rs.getInt(6)+ “ “); show.append(rs.getInt(7)+ “n“ ); catch(Exception ee) class Mys

33、ql2 implements ActionListener public void actionPerformed(ActionEvent e) try String ss=field1 .getText().trim(); String sql=“select * from ScoreInfo where ID=“+ss+“ ; ResultSet rs=st.executeQuery(sql); show.setText(“ ); show.append(“序号学号 姓名班级语文英语 数学 “+“n“); while(rs.next() show.append(rs.getInt(1)+

34、“ “); show.append(rs.getString(2)+ “ “); show.append(rs.getString(3)+ “ “); show.append(rs.getString(4)+ “ “); show.append(rs.getInt(5)+ “ “); show.append(rs.getInt(6)+ “ “); show.append(rs.getInt(7)+ “n“ ); catch(Exception ee) class Mysql3 implements ActionListener public void actionPerformed(Actio

35、nEvent e) try String ss=field2 .getText().trim(); String sql=“select * from ScoreInfo where name=“ +ss+“ ; ResultSet rs=st.executeQuery(sql); show.setText(“ ); show.append(“序号学号 姓名班级语文英语 数学 “+“n“); while(rs.next() show.append(rs.getInt(1)+ “ “); show.append(rs.getString(2)+ “ “); show.append(rs.getS

36、tring(3)+ “ “); show.append(rs.getString(4)+ “ “); show.append(rs.getInt(5)+ “ “); show.append(rs.getInt(6)+ “ “); show.append(rs.getInt(7)+ “n“ ); catch(Exception ee) class Mysql4 implements ActionListener public void actionPerformed(ActionEvent e) try String ss=field3 .getText().trim(); String sql

37、=“select * from ScoreInfo where class=“ +ss+“; ResultSet rs=st.executeQuery(sql); show.setText(“ ); show.append(“序号学号 姓名班级语文英语 数学 “+“n“); while(rs.next() show.append(rs.getInt(1)+ “ “); show.append(rs.getString(2)+ “ “); show.append(rs.getString(3)+ “ “); show.append(rs.getString(4)+ “ “); show.appe

38、nd(rs.getInt(5)+ “ “); show.append(rs.getInt(6)+ “ “); show.append(rs.getInt(7)+ “n“ ); catch(Exception ee) class Mysql5 implements ActionListener public void actionPerformed(ActionEvent e) try String sql=“; String ss=comoBox .getSelectedItem().toString(); if(ss.equals(“语文 “) sql=“select ID,name,cla

39、ss,Chinese from ScoreInfo “ ; show.setText(“ ); show.append(“序号学号 姓名班级语文 “+“n“ ); elseif(ss.equals(“英语 “) sql=“select ID,name,class,English from ScoreInfo “ ; show.setText(“ ); show.append(“序号学号 姓名班级英语“+“n“ ); elseif(ss.equals(“数学 “) sql=“select ID,name,class,Maths from ScoreInfo “ ; show.setText(“

40、); show.append(“序号学号 姓名班级数学 “+“n“ ); ResultSet rs=st.executeQuery(sql); int i=0; while(rs.next() i+; show.append(“ +i+ “ “+rs.getString(1)+ “ “); show.append(rs.getString(2)+ “ “); show.append(rs.getString(3)+ “ “); show.append(rs.getInt(4)+ “n“ ); catch(Exception ee) Modify 类 import java.awt.*; imp

41、ort java.awt.event.*; import javax.swing.*; import java.sql.*; public class Modify extends JFrame JTextField input1,input2 ,input3,input4,input5 ,input6 ; JLabel label1,label2,label3,label4,label5; JButton button; static Statement st; static try Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“ ); Connec

42、tion con=DriverManager. getConnection(“jdbc:odbc:student“ ); st=con.createStatement(); catch(Exception e) ResultSet rs; public Modify() input1=new JTextField(15); input2=new JTextField(15); input3=new JTextField(15); input4=new JTextField(15); input5=new JTextField(15); input6=new JTextField(15); JP

43、anel panel=new JPanel(); panel.setLayout(new GridLayout(6,2); panel.add(new JLabel(“学号 “); panel.add(input1); panel.add(new JLabel(“姓名 “); panel.add(input2); panel.add(new JLabel(“班级 “); panel.add(input3); panel.add(new JLabel(“语文 “); panel.add(input4); panel.add(new JLabel(“英语 “); panel.add(input5)

44、; panel.add(new JLabel(“数学 “); panel.add(input6); button=new JButton(“修改 “); button.addActionListener( new mysql(); Container container=getContentPane(); container.add(panel,BorderLayout. CENTER); container.add(button,BorderLayout. SOUTH); setTitle(“修改数据窗口“); setDefaultCloseOperation(JFrame. DISPOSE

45、_ON_CLOSE ); setSize(300,150); Toolkit kit = Toolkit. getDefaultToolkit (); Dimension screenSize = kit.getScreenSize(); int screenWidth = screenSize.width/2; int screenHeight = screenSize.height/2; int height = this.getHeight(); int width = this.getWidth(); setLocation(screenWidth-width/2, screenHei

46、ght-height/2); setVisible(true); class mysql implements ActionListener public void actionPerformed(ActionEvent e) try String number= input1.getText().trim(); String name=input2.getText().trim(); String clas=input3.getText().trim(); String temp=input4.getText(); int chinese=Integer.parseInt(temp); te

47、mp=input4.getText(); int english=Integer.parseInt(temp); temp=input4.getText(); int maths=Integer.parseInt(temp); if(number.equals(“ ) JOptionPane.showMessageDialog(Modify. this,“学号不能为空!“,“提示 对话框 “,1); else try String sql=“update ScoreInfo set name=“+name+“,class=“+clas+“,Chinese=“ +chinese+“,Englis

48、h=“ +english+ “,Maths=“ +maths+“ where ID=“ +number+“; st.executeUpdate(sql); JOptionPane.showMessageDialog(Modify. this, “ 数据修改成功“,“提示 对话框 “,1); input1 .setText(“ ); input2 .setText(“ ); input3 .setText(“ ); input4 .setText(“ ); input5 .setText(“ ); input6 .setText(“ ); catch(Exception ee) JOptionPane.showMessageDialog(Modify. this,“请确认需要修改的 学号是否存在 “,“提示对话框 “,1); System.out.println(ee); catch(Exception eee) System.out.println(eee); Delete类 import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; publ

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1