Java程序课程设计-一个简单的学生成绩管理信息系统_第1页
Java程序课程设计-一个简单的学生成绩管理信息系统_第2页
Java程序课程设计-一个简单的学生成绩管理信息系统_第3页
Java程序课程设计-一个简单的学生成绩管理信息系统_第4页
Java程序课程设计-一个简单的学生成绩管理信息系统_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 扬州大学数学科学学院课 题:一个简单的学生成绩管理信息系统团队完成:考核结果 1. 绪论(内容:要求小四号字体)此次课题是一个简单的学生管理系统,该课题涉及数据库、Java 等领域。要求达到以下功能:1. 能够根据学生姓名 、学号、班级、课程名称查询具体内容。2. 能够实现按照单科成绩、总成绩、平均成绩、学号排序。3. 能够实现学生信息的插入、删除和修改。4. 能够查询每个课程的最高分、最低分及相应学生姓名、班级和学号。5. 能够查询每个班级某门课程的优秀率(90 分及以上)、不及格率,并进行排序。6.能够使用图形界面进行操作。要实现这些功能需要熟练使用数据库和 Java 编 程语言,并且能

2、够实现数据库和 Java 的连接。2. 设计思路(内容:要求小四号字体)1)建立数据库表格:将班级、姓名、学号、成绩等具体信息录入数据库。数据库系统设计学号姓名班级成绩查询系统-语文数学英语系统逻辑结构设计学生成绩信息表空值学号姓名班级语文英语数学Chinese 长整数English 长整数Maths 长整数 数据库截图实现过程 对按钮添加监控,实现按钮事件为获取文本域中的信息,并执行 SQL的 INSERT 语句。 (内容:要求小四号字体) (内容:要求小四号字体)1.运行与调试过程中遇到的如下的问题 (7)没有退出的按钮,尚未实现退出语句。5. 设计体会与小结(内容:要求小四号字体)选择“

3、一个简单的学生成绩管理系统”作为这一次的课题,是因为这个课题主要运用的是 Java 与数据库的相关知识,而这个学期,我们正好学习了这两门课程,在这个课题中 Java 与数据库知识的结合,是对这两个课程理解学习成果的一个双重考察。第一步,我们确定了课程的整体思路。首先在数据库中建好相关表格,然后将数据库连接到 Java,最后运用 Java 编程实现相关界面与系统功能。思路确定后,在具体实现过程中,我们遇到了一些问题。首先我们对 Java连接数据库的相关知识不是特别清楚,其次应用 Java 编程实现相关界面不是很熟练。为了解决这些问题,顺利完成课题,我们查阅了相关的资料并且请教了上一届的学长,了解

4、了什么叫做架包,知道了怎么实现数据库与myeclipse 的连接,如何在 myeclipse 的环境中使用建表语句以及实现相关界面。有了这些知识作为基础,我们的课程设计便走上了正轨。首先,我们在数据库中建立了包含学生学号、姓名、班级,语文、数学、英语成绩的数据的表格,然后 Java 中建立了架包,建立 ConnectionUtil 类,获得与数据库的连接,最后就是在 myeclipse 环境下,运用 Java 语句,将添加数据、查询数据、删除数据、修改数据四个功能分为四个类来实现,另外用一个主类实现面板,可在其上进行插入、删除、修改、查询等功能,并且对界面进行了设计和规划。在这个过程中,我们遇

5、到了许多问题,如数据库连接不上,程序编译没有错误,但功能无法实现等,学长都给了我们很大帮助,一次次修改尝试,最终得到 了现在的版本,虽然有许多不足与缺点,但是课题顺利完成仍是给了我们很大的满足感,也让我们体会到了程序员的辛苦。通过这次课题的研究,让我充分认识到了自己距离一个合格的程序员还很远,认识到自己相关知识的的储备量还很少,对现在所学的 Java 及数据库课程的掌握程度还不够,但是在这个过程中我也学习到了很多相关知识,充分的认识到要想学好编程语言,就必须勤动手,要经常练习,才能熟练掌握每一种方法,光靠大脑的记忆是远远不够的,只能是纸上谈兵。在以后的课程学习中,我一定会更加重视实践练习,养成

6、良好的编程习惯,这样才能做一个合格的程序员。刚看到这个课题的时候,就先大体确定了整体思路,这个课题要求熟悉数据库,Java 编程。实现过程中我们需要先在数据库中建立好表,再进行好与Java 的连接,再运用 myeclipse 编程。思路有了,但真正实施的时候出现了很多问题。通过相关资料的查询和请教上一届的学长,在 Java 中建立了架包,建立 ConnectionUtil 类,获得与数据库JSD1407 的连接,在编程语言环境下写好建表语言,添加包含学生学号、姓名、班级,语文、数学、英语成绩的数据。与数据库的连接出现了表丢失的现象、要实现这个学生成绩管理系统,需要一个主类,以及涉及插入,删除,

7、查询,修改的子类,在主类中调用,达到效果。由于对 Java 语句没有很熟悉的掌握,导致很多代码显得累赘繁琐。在界面上,建立了 4 个按钮、1 个背景、1 个标签文本、1 个面板, 参 考 文 献(内容:要求五号字体)1.数据库系统基础教程(第三版) 机械工业出版社2.Java 程序设计(第三版) 清华大学出版社附录(源代码)(内容:要求小五号字体)一、架包package com.tarena.util;import java.sql.Connection;import java.sql.DriverManager;public class ConnectionUtil public stati

8、c Connection getConnection()throws ExceptionClass.forName(com.mysql.jdbc.Driver);String url=jdbc:mysql:/localhost:3306/JSD1407;String user=root;String password=1234;Connection conn=DriverManager.getConnection(url,user,password);return conn; public static void main(String args) throws ExceptionSystem

9、.out.println(getConnection();/s通过打印看一下是否连接上了/将获得连接的方法封装二、建表语言create table student(no varchar(10) not null,name varchar(50) not null,class_no varchar(2) not null,chinese double(3,1) not null,math double(3,1) not null,english double(3,1) not null,primary key(no);desc student;insert into student(no,nam

10、e,class_no,chinese,math,english) values(120702101,陈丽芳,1,66,77,88);select * from student;三、Java 编程MainFrame 类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-

11、generated method stubImageIcon 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 qu

12、eryActionPerformed();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)

13、;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 班 罗斌制作);text2.setF

14、ont(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.NORT

15、H);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();i

16、nt 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

17、 insertActionPerformed implements ActionListenerpublic void actionPerformed(ActionEvent e)new Insert().setVisible(true);public class modifyActionPerformed implements ActionListenerpublic void actionPerformed(ActionEvent e)new Modify().setVisible(true);public class queryActionPerformed implements Act

18、ionListenerpublic 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

19、java.awt.event.*;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(com.mysql.jdbc.Driver);Connection con=DriverManager.getCo

20、nnection(jdbc:mysql:/localhost:3306/jsd1407,root, 123456);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);JPanel panel=ne

21、w 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(input

22、4);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(添加数据窗口);setDefaultClos

23、eOperation(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();setLocation(screenWidth-widt

24、h/2, screenHeight-height/2);setVisible(true);class mysql implements ActionListenerpublic void actionPerformed(ActionEvent e)tryString number=input1.getText().trim();String name=input2.getText().trim();String clas=input3.getText().trim();String temp=input4.getText();double chinese=Integer.parseInt(te

25、mp);temp=input4.getText();double english=Integer.parseInt(temp);temp=input4.getText();double maths=Integer.parseInt(temp);if(number.equals()|name.equals()| clas.equals()|temp.equals()JOptionPane.showMessageDialog(Insert.this, 请 重新 输 入 , 提示 对 话框,1);elseString sql=insert into Student(no,name,class_no,

26、chinese,english,math)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(Exception ee)Modify 类import ja

27、va.awt.*;import java.awt.event.*;import javax.swing.*;import java.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(com.mysql.jdbc.Driver);Connection con=Dri

28、verManager.getConnection(jdbc:mysql:/localhost:3306/jsd1407,root, 123456);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

29、);JPanel 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);panel.add(new JLabel(

30、数学);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_ON_CLOSE);setSize(300,150);Toolkit kit = T

31、oolkit.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, screenHeight-height/2);setVisible(true);class mysql implements

32、ActionListenerpublic void actionPerformed(ActionEvent e)tryString number=input1.getText().trim();String name=input2.getText().trim();String clas=input3.getText().trim(); String temp=input4.getText();double chinese=Integer.parseInt(temp);temp=input4.getText();double english=Integer.parseInt(temp);tem

33、p=input4.getText();double maths=Integer.parseInt(temp);if(number.equals()JOptionPane.showMessageDialog(Modify.this,学号不能为空!,提示对话框,1);elsetryStringsql=updateStudentsetname=+name+,class_no=+clas+,chinese=+chinese+,english=+english+,math=+maths+where no=+number+;st.executeUpdate(sql);JOptionPane.showMes

34、sageDialog(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); Query

35、 类import java.awt.*;import javax.swing.event.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class Query extends JFrameJTextArea show;JButton button1,button2,button3,button4,button5;JTextField field1,field2,field3;JComboBox comoBox;static Statement st;statictryClass.forName(c

36、om.mysql.jdbc.Driver);Connection con=DriverManager.getConnection(jdbc:mysql:/localhost:3306/jsd1407,root, 123456);st=con.createStatement();catch(Exception e)public Query()show=new JTextArea(5,10);button1=new JButton(显示所有信息);button1.addActionListener(new Mysql1();Container container=getContentPane();

37、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);button3=new JButton(按姓名查询); butto

38、n3.addActionListener(new Mysql3();panel.add(button3);field2=new JTextField(6);panel.add(field2);panel.setVisible(true);mainpanel.add(panel);button4=new JButton(按班级查询);button4.addActionListener(new Mysql4();panel.add(button4);field3=new JTextField(6);panel.add(field3);panel.setVisible(true);mainpanel

39、.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();panel.add(button1);container.add(mainpanel,BorderLayout.NORTH);c

40、ontainer.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 screenSize = kit.getScreenSize();int screenWidth = screenSize.width/2;

41、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 actionPerformed(ActionEvent e) tryString sql=select * from Student;ResultSet rs=

42、st.executeQuery(sql);show.setText();show.append(学号姓名班级语文英语while(rs.next()数学+n);show.append(rs.getString(1)+show.append(rs.getString(2)+show.append(rs.getString(3)+show.append(rs.getDouble(4)+show.append(rs.getDouble(5)+show.append(rs.getDouble(6)+n););););););catch(Exception ee)class Mysql2 implemen

43、ts ActionListenerpublic void actionPerformed(ActionEvent e)tryString ss=field1.getText().trim();String sql=select * from Student where no=+ss+;ResultSet rs=st.executeQuery(sql);show.setText();show.append(学号英语 数学+n);姓名班级语文while(rs.next()show.append(rs.getString(1)+);););););show.append(rs.getString(2

44、)+show.append(rs.getString(3)+show.append(rs.getDouble(4)+show.append(rs.getDouble(5)+show.append(rs.getDouble(6)+n);catch(Exception ee) class Mysql3 implements ActionListenerpublic void actionPerformed(ActionEvent e)tryString ss=field2.getText().trim();String sql=select * from Student where name=+s

45、s+;ResultSet rs=st.executeQuery(sql);show.setText();show.append(学号姓名班级语文英语while(rs.next()数学+n);show.append(rs.getString(1)+show.append(rs.getString(2)+show.append(rs.getString(3)+show.append(rs.getDouble(4)+show.append(rs.getDouble(5)+show.append(rs.getDouble(6)+n););););););catch(Exception ee)class

46、 Mysql4 implements ActionListenerpublic void actionPerformed(ActionEvent e)tryString ss=field3.getText().trim();String sql=select * from Student where class_no=+ss+;ResultSet rs=st.executeQuery(sql);show.setText();show.append(学号英语 数学+n);姓名班级语文while(rs.next()show.append(rs.getString(1)+);););show.app

47、end(rs.getString(2)+show.append(rs.getString(3)+ show.append(rs.getDouble(4)+show.append(rs.getDouble(5)+show.append(rs.getDouble(6)+n);););catch(Exception ee)class Mysql5 implements ActionListenerpublic void actionPerformed(ActionEvent e)tryString sql=;String ss=comoBox.getSelectedItem().toString()

48、;if(ss.equals(语文)sql=select no,name,class_no,chinese from Student ;show.setText();show.append(学号姓名班级班级班级语文+n);英语+n);数学+n);else if(ss.equals(英语)sql=select no,name,class_no,english from Student ;show.setText();show.append(学号姓名else if(ss.equals(数学)sql=select no,name,class_no,math from Student ;show.set

49、Text();show.append(学号姓名ResultSet rs=st.executeQuery(sql);while(rs.next()show.append(rs.getString(1)+show.append(rs.getString(2)+);); show.append(rs.getString(3)+);show.append(rs.getDouble(4)+n);catch(Exception ee)Delete 类import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class Delete extends JFrameJButton search;JTextField input;JTextArea show;Connection con;Statement st;public Delete()JPa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论