




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一个简单的学生成绩管理信息系统(Java)一个简单的学生成绩管理信息系统(Java)年月一个简单的学生成绩管理信息系统题目:数据库要求:建立的数据库中包含如下信息:学生学号、姓名、班级,语文、数学、英语 成绩。至少要有 5 个班级,每个班级要有 10 名以上学生。使用.txt 格式文本表示各种表。 功能需求:能够实现根据以下关键字查询:学生姓名 、学号、班级、课程名称。能够实现按照单科成绩、总成绩、平均成绩、学号排序。能够实现学生信息的插入、删除和修改。能够查询每个课程的最高分、最低分及相应学生姓名、班级和学号。能够查询每个班级某门课程的优秀率(90 分及以上)、不及格率,并进行排 序。界面要
2、求:使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。年月一个简单的学生成绩管理信息系统题目:一、需求分析1、界面符合日常软件使用规范,使用方便,外形简洁美观。2、功能需求存储学生学号、姓名、班级,语文、数学、英语成绩等信息,实现数据库 的读取与存入,数据项的记录与修改,删除等。二、设计思想1、类设计将添加数据、查询数据、删除数据、修改数据四个功能分别为四个类来实现, 为了便于测试,每一个类都继承了主窗口类 JFRAME,使得窗口可以独自运行。INSERT 类设计功能组件 功能实现 实现过程6 个文本域、6 个标签、1 个按钮 添加数据对按钮添加监控,实现按钮事件为获取文本域中的信息,
3、并执行SQL 的 INSERT 语句。QUERY 类设计功能组件 功能实现 实现过程5 个按钮、三个单行文本组件、1 个下拉框、1 个多行文本按学号查询、按姓名查询、按班级查询、按课程查询、显示全部 对按钮添加监控,共有五个监控事件,前三个实现按钮事件为先获取文本域中的信息,根据对应查询的要求执行相应的 SQL 的 SELLECT 语句; 按课程查询通过在下来框中选择对应的选项,即查询相应的课程;第五个查询 按钮将全部信息在多行文本框中输出。MODIFY 类设计功能组件 功能实现6 个单行文本、6 个标签、1 个按钮 修改数据一、需求分析1、界面二、设计思想1、类设计功能组件 功能实现实现过程
4、与添加数据类似,对按钮添加监控,实现按钮事件为获取文本域 中的信息,并执行 SQL 的 UPDATE 语句;不同的是以学号为主键进行查找并更新。DELETE 类设计功能组件 功能实现 实现过程1 个单行文本、1 个标签、1 个按钮、1 个多行文本 删除数据与修改数据类似,对按钮添加监控,实现按钮事件为获取文本域中的学号信息,并执行 SQL 的 DELETE 语句;不同的是以学号为主键进行查找并 将删除信息输出到文本框中。2、数据库设计系统概念结构设计系统逻辑结构设计学生成绩信息表字段名属性类型空值约束条件学号ID文本not null主键姓名name文本从键班级class文本从简语文Chines
5、e长整数英语English长整数成绩查询系统学号姓名班级语文数学英语实现过程与添加数据类似,对按钮添加监控,实现按钮事件为获取数学Maths长整数数据库截图3、主界面设计MAINFRAME 类设计功能组件 功能实现 实现过程4 个按钮、1 个背景、2 个标签文本、2 个面板 查询数据、添加数据、删除数据、修改数据对按钮添加监控,共有 4 个监控事件,实现按钮事件为创建对应功能的类对象,出现相应的功能窗口。三、运行截图主界面数学Maths长整数数据库截图3、主界面设计功能组件 功能实添加数据查询数据按学号查询按姓名查询按班级查询添加数据查询数据按姓名查询按班级查询按课程名称查询显示所有信息按课程
6、名称查询显示所有信息修改数据删除数据四、实验感想通过此次课程设计我学会了很多知识,将 Java 课上遗漏的知识又进一步补 上。实践过程中遇到了很多困难,比如没学过数据库,SQL 语句不熟,对 eclipse 的使用很生疏等,因此花费了很多时间在前期准备工作上。即使如此, 也有一些功能尚未实现,例如查询优秀率、最高分和最低分等,虽然比较简单, 但由于时间问题还是没来得及做。由于本次试验的很多知识都是现学现用,以 致很多地方的代码显得累赘繁琐。但总体上主要功能是实现了的,并且美化了 一下主界面。总之,此次课程设计让我获益匪浅,我将会继续把它完善做好。修改数据删除数据四、实验感想五、源代码清单Mai
7、nFrame 类 import javax.swing.*; import java.awt.*; import java.awt.event.*;public class MainFrame extends JFrameJButton 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(
8、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( 修 改 数
9、据 ); 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
10、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班 罗斌制作);五、源代码清单text2.setFont(new Font(TimesRoman,Font.ROMAN_BASELINE,14); panel1=n
11、ew 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.s
12、etOpaque(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 scr
13、eenHeight = 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 ActionL
14、istenerpublic void actionPerformed(ActionEvent e)new Insert().setVisible(true);public class modifyActionPerformed implements ActionListenerpublic void actionPerformed(ActionEvent e)text2.setFont(new Font(TimesRnew Modify().setVisible(true);public class queryActionPerformed implements ActionListenerp
15、ublic void actionPerformed(ActionEvent e)new Query().setVisible(true);public class deleteActionPerformed implements ActionListenerpublic void actionPerformed(ActionEvent e)new Delete().setVisible(true);public static void main(String args)new MainFrame();Insert 类import java.awt.*; import java.awt.eve
16、nt.*; import javax.swing.*; import java.sql.*;public class Insert extends JFrameJTextField input1,input2,input3,input4,input5,input6; JLabel label1,label2,label3,label4,label5;JButton button;static Statement st;statictryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connectioncon=DriverManager.getConne
17、ction(jdbc:odbc:student);st=con.createStatement();catch(Exception e)new Modify().setVisible(true);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); JPanel panel
18、=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(语文),BorderLayout.CENTER);panel.add(
19、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(button,BorderLayout.SOUTH); setTitle(添加数据窗口
20、);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 = this.getHeight(); int width = this.getWidth();setLocat
21、ion(screenWidth-width/2, screenHeight-height/2); setVisible(true);class mysql implements ActionListenerResultSet rs;public void actionPerformed(ActionEvent e)tryString number=input1.getText().trim(); String name=input2.getText().trim(); String clas=input3.getText().trim(); String temp=input4.getText
22、();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.showMessageDialog(Insert.this,请重新输入,提示对话框,1);elseString sql=insert into Sco
23、reInfo(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(Exceptio
24、n ee)Query 类import java.awt.*;import javax.swing.event.*; import java.awt.event.*; import javax.swing.*;public void actionPerformed(Acimport java.sql.*;public class Query extends JFrame JTextArea show;JButton button1,button2,button3,button4,button5; JTextField field1,field2,field3;JComboBox comoBox;
25、static Statement st;statictryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connectioncon=DriverManager.getConnection(jdbc:odbc:student);st=con.createStatement();catch(Exception e)public Query()show=new JTextArea(5,10); button1=new JButton(显示所有信息);button1.addActionListener(new Mysql1(); Container conta
26、iner=getContentPane(); container.setLayout(new BorderLayout(); JPanel panel=new JPanel();JPanel mainpanel=new JPanel();button2=new JButton(按学号查询); button2.addActionListener(new Mysql2(); panel.add(button2);field1=new JTextField(7); panel.add(field1); panel.setVisible(true); mainpanel.add(panel);butt
27、on3=new JButton(按姓名查询); button3.addActionListener(new Mysql3(); panel.add(button3);field2=new JTextField(6); panel.add(field2); panel.setVisible(true); mainpanel.add(panel);import java.sql.*;button4=new JButton(按班级查询); button4.addActionListener(new Mysql4(); panel.add(button4);field3=new JTextField(
28、6); panel.add(field3); panel.setVisible(true); mainpanel.add(panel);String items=请选择,语文,英语,数学; comoBox=new JComboBox(items);button5=new JButton(按课程名称查询);button5.addActionListener(new Mysql5(); panel.add(button5);panel.add(comoBox); panel.setVisible(true); mainpanel.add(panel);panel=new JPanel(); pan
29、el.add(button1);container.add(mainpanel,BorderLayout.NORTH); container.add(panel,BorderLayout.SOUTH);container.add(new JScrollPane(show),BorderLayout.CENTER); setTitle( 查 询 数 据 ); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setSize(750,400);Toolkit kit = Toolkit.getDefaultToolkit(); Dimension
30、 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, screenHeight-height/2); setVisible(true);class Mysql1 implements ActionListenerpublic void action
31、Performed(ActionEvent e)tryString sql=select * from ScoreInfo; ResultSet rs=st.executeQuery(sql); show.setText();button4=new JButton(按班级查询); 姓名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)+
32、 show.append(rs.getInt(5)+);););show.append(rs.getInt(6)+ show.append(rs.getInt(7)+n););catch(Exception ee)class Mysql2 implements ActionListenerpublic void actionPerformed(ActionEvent e)tryString ss=field1.getText().trim();String sql=select * from ScoreInfo where ID=+ss+;ResultSet rs=st.executeQuer
33、y(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.append(rs.getInt(5)+ show.append(rs.getInt(6)+ show.append(rs.getInt(7)+n);););););););catch(Exception ee)show.appe
34、nd(序号学号数学+n);shclass Mysql3 implements ActionListenerpublic void actionPerformed(ActionEvent e)tryString 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
35、)+ 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 Mysql4 implements ActionListenerpublic void actionPerformed(ActionEvent e)tryString ss=field3
36、.getText().trim();String sql=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)+););class Mysql3 implements Actionshow.append(rs.getString(3)+ show.append(rs.getS
37、tring(4)+ show.append(rs.getInt(5)+ show.append(rs.getInt(6)+ show.append(rs.getInt(7)+n);););););catch(Exception ee)class Mysql5 implements ActionListenerpublic void actionPerformed(ActionEvent e)tryString sql=;String ss=comoBox.getSelectedItem().toString();if(ss.equals(语文)sql=select ID,name,class,
38、Chinese from ScoreInfo ;show.setText();姓名show.append(序号班级语文+n);学号else if(ss.equals(英语)sql=select ID,name,class,English from ScoreInfo ;show.setText();姓名show.append(序号班级英语 +n);学号else if(ss.equals(数学)sql=select ID,name,class,Maths from ScoreInfo ;show.setText();姓名show.append(序号班级数学+n);学号ResultSet rs=s
39、t.executeQuery(sql);int i=0;while(rs.next()i+;show.append(rs.getString(3)+ 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.*; import java.awt.event.*; import javax.swing.*; import j
40、ava.sql.*;public class Modify extends JFrameJTextField input1,input2,input3,input4,input5,input6; JLabel label1,label2,label3,label4,label5;JButton button;static Statement st;statictryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connectioncon=DriverManager.getConnection(jdbc:odbc:student);st=con.crea
41、teStatement();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); JPanel panel=new JPanel();panel.setLayout(new GridLayout(6,2);show.append(+i+r
42、s.getStrpanel.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); panel.add(new JLabel(数学); panel.add(input6);button=new JButton( 修 改
43、 ); button.addActionListener(new mysql(); Container container=getContentPane(); container.add(panel,BorderLayout.CENTER); container.add(button,BorderLayout.SOUTH); setTitle(修改数据窗口);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setSize(300,150);Toolkit kit = Toolkit.getDefaultToolkit(); Dimensio
44、n 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, screenHeight-height/2); setVisible(true);class mysql implements ActionListenerpublic void action
45、Performed(ActionEvent e)tryString number=input1.getText().trim(); String name=input2.getText().trim(); String clas=input3.getText().trim(); String temp=input4.getText();int chinese=Integer.parseInt(temp); temp=input4.getText();int english=Integer.parseInt(temp); temp=input4.getText();panel.add(new J
46、Label(学号); int maths=Integer.parseInt(temp);if(number.equals()JOptionPane.showMessageDialog(Modify.this,学号不能为空!,提示对话框,1);elsetryStringsql=updateScoreInfoset name=+name+,class=+clas+,Chinese=+chinese+,English=+english+,Maths=+maths+ where ID=+number+;st.executeUpdate(sql);JOptionPane.showMessageDialo
47、g(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.*;int maths=Integer.parseInt(temimport javax.swing.*;import java.sql.*;public class Delete extends JFrameJButton search; JTextField input; JTextArea show;Connection con; Statement st;public Delete()JPanel p=new JPanel(); s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 废旧橡胶胶管生产企业制定与实施新质生产力战略研究报告
- 高效氨水发生器行业深度调研及发展战略咨询报告
- 环保学习用品材料行业跨境出海战略研究报告
- 2025年脱硝设备项目建议书
- xx省断带保护工程技术研究中心管理制度汇编
- 地理信息系统开发与应用-全面剖析
- 2025年现场总线智能仪表项目合作计划书
- 指标股投资风险-全面剖析
- DB32T4164-2021 老年人住宅设计标准
- 信息技术跟岗研修心得体会
- 中铁工程项目内部控制管理手册(492页)
- 气瓶充装安全及培训课件PPT幻灯片
- 防雷检测专业技术人员能力认定考试题库完整
- 计算机考试Excel操作题原题及操作步骤82435
- (高清版)辐射供暖供冷技术规程JGJ142-2012
- 新教科版六年级下册科学课件3 宇宙 第6课 浩瀚的宇宙
- 智慧城市_城市智慧停车解决方案
- 灭火器操作规程
- 电缆原材料检验规范
- 幕墙淋水试验技术方案(工程科)
- 北工大电子课程设计报告数电自行车里程表.
评论
0/150
提交评论