,#,Java,语言程序设计,B,报告,班级:,学号:,姓名:,成绩:,Java 语言程序设计 B报告班级:,1,年月,一个简单的学生成绩管理信息系统,题目:,数据库要求:,建立的数据库中包含如下信息:学生学号、姓名、班级,语文、数学、英语 成绩。,至少要有,5,个班级,每个班级要有,10,名以上学生。,使用,.txt,格式文本表示各种表。功能需求:,能够实现根据以下关键字查询:学生姓名,、学号、班级、课程名称。,能够实现按照单科成绩、总成绩、平均成绩、学号排序。,能够实现学生信息的插入、删除和修改。,能够查询每个课程的最高分、最低分及相应学生姓名、班级和学号。,能够查询每个班级某门课程的优秀率(,90,分及以上,),、不及格率,并进行排 序。,界面要求:,使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。,年月一个简单的学生成绩管理信息系统题目:,2,一、需求分析,1,、界面,符合日常软件使用规范,使用方便,外形简洁美观。,2,、功能需求,存储学生学号、姓名、班级,语文、数学、英语成绩等信息,实现数据库 的读取与存入,数据项的记录与修改,删除等。,二、设计思想,1,、类设计,将添加数据、查询数据、删除数据、修改数据四个功能分别为四个类来实现,为了便于测试,每一个类都继承了主窗口类,JFRAME,使得窗口可以独自运行。,INSERT,类设计,功能组件 功能实现 实现过程,6,个文本域、6,个标签、1,个按钮 添加数据,对按钮添加监控,实现按钮事件为获取文本域中的信息,并执行,SQL,的,INSERT,语句。,QUERY,类设计,功能组件 功能实现 实现过程,5,个按钮、三个单行文本组件、1,个下拉框、1,个多行文本,按学号查询、按姓名查询、按班级查询、按课程查询、显示全部 对按钮添加监控,共有五个监控事件,前三个实现按钮事件为先,获取文本域中的信息,根据对应查询的要求执行相应的,SQL,的,SELLECT,语句;按课程查询通过在下来框中选择对应的选项,即查询相应的课程;第五个查询 按钮将全部信息在多行文本框中输出。,MODIFY,类设计,功能组件 功能实现,6,个单行文本、6,个标签、1,个按钮 修改数据,一、需求分析1、界面二、设计思想1、类设计功能组件 功能实现,3,实现过程与添加数据类似,对按钮添加监控,实现按钮事件为获取文本域 中的信息,并执行,SQL,的,UPDATE,语句;不同的是以学号为主键进行查找并更新。,DELETE,类设计,功能组件 功能实现 实现过程,1,个单行文本、1,个标签、1,个按钮、1,个多行文本 删除数据,与修改数据类似,对按钮添加监控,实现按钮事件为获取文本域,中的学号信息,并执行,SQL,的,DELETE,语句;不同的是以学号为主键进行查找并 将删除信息输出到文本框中。,2,、数据库设计,系统概念结构设计,系统逻辑结构设计,学生成绩信息表,字段名,属性,类型,空值,约束条件,学号,ID,文本,not,null,主键,姓名,name,文本,从键,班级,class,文本,从简,语文,Chinese,长整数,英语,English,长整数,成绩查询系统,学号,姓名,班级,语文,数学,英语,实现过程与添加数据类似,对按钮添加监控,实现按钮事件为获取,4,数学,Maths,长整数,数据库截图,3,、主界面设计,MAINFRAME,类设计,功能组件 功能实现 实现过程,4,个按钮、1,个背景、2,个标签文本、2,个面板 查询数据、添加数据、删除数据、修改数据,对按钮添加监控,共有,4,个监控事件,实现按钮事件为创建对应,功能的类对象,出现相应的功能窗口。,三,、,运行截图,主界面,数学Maths长整数数据库截图3、主界面设计功能组件 功能实,5,添加数据,查询数据,按学号查询,按姓名查询,按班级查询,添加数据查询数据按姓名查询按班级查询,6,按课程名称查询,显示所有信息,按课程名称查询显示所有信息,7,修改数据,删除数据,四、实验感想,通过此次课程设计我学会了很多知识,将,Java,课上遗漏的知识又进一步补 上。实践过程中遇到了很多困难,比如没学过数据库,,,SQL,语句不熟,对,eclipse,的使用很生疏等,因此花费了很多时间在前期准备工作上。即使如此,也有一些功能尚未实现,例如查询优秀率、最高分和最低分等,虽然比较简单,但由于时间问题还是没来得及做。由于本次试验的很多知识都是现学现用,以 致很多地方的代码显得累赘繁琐。但总体上主要功能是实现了的,并且美化了 一下主界面。,总之,此次课程设计让我获益匪浅,我将会继续把它完善做好。,修改数据删除数据四、实验感想,8,五、源代码清单,MainFrame,类,import,javax.swing.*;,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=,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,.setBackground(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 contentPane=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,班,罗,斌制作,);,五、源代码清单,9,text2.setFont(,new,Font(,TimesRoman,Font.,ROMAN_BASELINE,14);,panel1,=,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.,SOUTH,);,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,=,screenSize.,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,insertActionPerformed,implements,ActionListener,public,void,actionPerformed(ActionEvent,e),new,Insert().setVisible(,true,);,public class,modifyActionPerformed,implements,ActionListener,public,void,actionPerformed(ActionEvent,e),text2.setFont(new Font(TimesR,10,new,Modify().setVisible(,true,);,public class,queryActionPerformed,implements,ActionListener,public,void,actionPerformed(ActionEvent,e),new,Query().setVisible(,true,);,public class,deleteActionPerformed,implements,ActionListener,public,void,actionPerformed(ActionEvent,e),new,Delete().setVisible(,true,);,public static,void,main(String,args),new,MainFrame();,Insert,类,import,java.awt.*;,import,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,but