学生成绩管理程序.doc_第1页
学生成绩管理程序.doc_第2页
学生成绩管理程序.doc_第3页
学生成绩管理程序.doc_第4页
学生成绩管理程序.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

合肥学院计算机科学与技术系课程设计报告20122013学年第二学期课程JAVA语言课程设计课程设计名称学生成绩管理程序学生姓名 高昌发 学号 1104013036专业班级11级计本3班指导教师谭明、张艳明2 0 1 3 年 1 月一、设计目的通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程JAVA语言教程的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。 (2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。 (3)利用所学知识,开发小型应用系统,掌握运用JAVA语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。 (5)熟练掌握JAVA语言的事件处理、图形界面、数据库操作等方面的知识。一、 课程设计名称及内容课程设计名称:学生成绩管理程序设计内容:设计一个程序来使用数据库存储学生成绩,进行学生成绩管理程序。二、 任务和要求这是一个简单的使用数据库存储学生成绩的学生成绩管理程序。数据库中的每条记录包括学号、姓名、生日、分数等信息。要求能够: (1)有较好的图形界面(2)按照学号查找学生及成绩、能显示全部记录。 (3)能增加、删除、修改记录。 三、 详细设计过程该程序使用JDBC-ODBC桥与数据库连接,主要定义:主类和操作类。主类的主要功能是提供等待用户的操作的主界面(菜单)。操作类中定义与数据库的连接、提供各种操作界面(增、删、改及统计等操作)。1、 设计的是学生成绩管理程序的界面,如下所示: 这个登陆界面的登陆号和密码都已经设计好了,只需要点击登陆则可以进入具体的管理程序。如果登陆号和密码发生改变则会显示错误提示,具体的子程序代码如下:public class chengjiguanli public static void main(String args) new denglu();/* * *登录界面 */SuppressWarnings(serial)class denglu extends JFrame implements ActionListener JFrame frame = new JFrame(登陆界面);JPanel imagePanel;ImageIcon bg;JButton button1, button2;Label l1, l2, l3;TextField a1, a2;Box b1, b2, b3, b4, b5;denglu() Toolkit kit = Toolkit.getDefaultToolkit();Image img = kit.getImage(tubiao.jpg);frame.setIconImage(img);button1 = new JButton(登陆);button2 = new JButton(退出);Panel p1 = new Panel();l1 = new Label(学生成绩管理系统, Label.CENTER);l1.setFont(new Font(隶书, Font.BOLD, 40);l1.setBackground(Color.pink);p1.add(l1);l2 = new Label(登录名);l3 = new Label(密码);a1 = new TextField(10);a2 = new TextField(10);a2.setEchoChar(*);b1 = Box.createVerticalBox();b1.add(l2);b1.add(Box.createVerticalStrut(8);b1.add(l3);b2 = Box.createVerticalBox();b2.add(a1);b2.add(Box.createVerticalStrut(8);b2.add(a2);b3 = Box.createHorizontalBox();b3.add(b1);b3.add(Box.createHorizontalStrut(10);b3.add(b2);b4 = Box.createHorizontalBox();b4.add(button1);b4.add(Box.createHorizontalStrut(10);b4.add(button2);b5 = Box.createVerticalBox();b5.add(b3);b5.add(Box.createVerticalStrut(8);b5.add(b4);button1.addActionListener(this);button2.addActionListener(this);a1.setText(shanshan);a2.setText(shanshan);addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) dispose(););bg = new ImageIcon(dlu.jpg);JLabel label = new JLabel(bg);label.setBounds(0, 0, bg.getIconWidth(), bg.getIconHeight();imagePanel = (JPanel) frame.getContentPane();imagePanel.setOpaque(false);imagePanel.setLayout(new FlowLayout();imagePanel.add(p1, BorderLayout.NORTH);imagePanel.add(b5, BorderLayout.CENTER);frame.getLayeredPane().setLayout(null);frame.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(bg.getIconWidth(), bg.getIconHeight();frame.setBounds(200, 150, 510, 340);frame.setResizable(false);/设置窗口大小不可改变frame.setVisible(true);validate();public void actionPerformed(ActionEvent e) if (e.getSource() = button2) System.exit(0);if (e.getSource() = button1) if (a1.getText().equals(shanshan) & a2.getText().equals(shanshan) new chuangkou();frame.dispose(); else JOptionPane.showMessageDialog(this, 账户密码错误,请重新输入!); 2、 点击界面的登陆按钮后会出现选择窗口,分别有六个功能:添加、删除、修改、查询、返回、退出。刚开始时的学生成绩信息是空的,所以首先就是要添加学生信息,并且这个程序整个过程是连接数据库的,所以将添加的学生成绩信息等存储到数据库中,这样在下面的数据信息修改的过程就是在原来存在的数据中进行的,首先选择窗口界面如下: 选择窗口界面的创建子代码如下:class chuangkou extends JFrame implements ActionListener JFrame frame = new JFrame(选择窗口);JPanel imagePanel;ImageIcon bg;JButton button1, button2, button3, button4, button5, button6;Box box;Label label;Panel p1;chuangkou() Toolkit kit = Toolkit.getDefaultToolkit();Image img = kit.getImage(tubiao.jpg);frame.setIconImage(img);p1 = new Panel();label = new Label(欢迎进入学生成绩管理系统, Label.CENTER);label.setFont(new Font(隶书, Font.BOLD, 30);label.setBackground(Color.pink);p1.add(label);button1 = new JButton(添加);button2 = new JButton(删除);button3 = new JButton(修改);button4 = new JButton(查询);button5 = new JButton(返回);button6 = new JButton(退出); box = Box.createHorizontalBox();box.add(button1);box.add(Box.createHorizontalStrut(8);box.add(button2);box.add(Box.createHorizontalStrut(8);box.add(button3);box.add(Box.createHorizontalStrut(8);box.add(button4);box.add(Box.createHorizontalStrut(8);box.add(button5);box.add(Box.createHorizontalStrut(8);box.add(button6); button1.addActionListener(this);button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);button5.addActionListener(this);button6.addActionListener(this);addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) dispose(););bg = new ImageIcon(ckou.jpg);JLabel label = new JLabel(bg);label.setBounds(0, 0, bg.getIconWidth(), bg.getIconHeight();imagePanel = (JPanel) frame.getContentPane();imagePanel.setOpaque(false);imagePanel.setLayout(new FlowLayout();imagePanel.add(p1, BorderLayout.NORTH);imagePanel.add(box, BorderLayout.CENTER);frame.getLayeredPane().setLayout(null);frame.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE);/frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/设置关闭后状态frame.setSize(bg.getIconWidth(), bg.getIconHeight();frame.setBounds(200, 200, 500, 300);frame.setResizable(false);/设置窗口大小不可改变frame.setVisible(true);validate();public void actionPerformed(ActionEvent e) if (e.getSource() = button6) System.exit(0);if (e.getSource() = button1) new charu();if (e.getSource() = button2) new shanchu();if (e.getSource() = button3) new xiugai();if (e.getSource() = button4) new chaxun();if (e.getSource() = button5) new denglu();frame.dispose(); else 3、 添加界面如下: 其中要输入的信息有五个,分别是学号、姓名、生日、数学成绩、英语成绩,添加后点击确定则在下面的框里会显示添加的信息,这样一个学生的信息就存储好了,并且连接数据库,将存储的学生信息存储到数据库中,这个添加过程的源代码如下:class charu extends JFrame implements ActionListener JFrame frame = new JFrame(添加数据);JPanel imagePanel;ImageIcon bg;JButton sure;TextField input1, input2, input3, input4, input5;TextArea show;Box box1, box2, box3, box4;int k, s1, j;Connection con;Statement sql;ResultSet rs;charu() Toolkit kit = Toolkit.getDefaultToolkit();Image img = kit.getImage(tubiao.jpg);frame.setIconImage(img);input1 = new TextField(10);input2 = new TextField(10);input3 = new TextField(10);input4 = new TextField(10);input5 = new TextField(10);box2 = Box.createVerticalBox();box2.add(input1);box2.add(Box.createVerticalStrut(8);box2.add(input2);box2.add(Box.createVerticalStrut(8);box2.add(input3);box2.add(Box.createVerticalStrut(8);box2.add(input4);box2.add(Box.createVerticalStrut(8);box2.add(input5);box1 = Box.createVerticalBox();box1.add(new Label(学号:);box1.add(Box.createVerticalStrut(8);box1.add(new Label(姓名:);box1.add(Box.createVerticalStrut(8);box1.add(new Label(生日:);box1.add(Box.createVerticalStrut(8);box1.add(new Label(数学:);box1.add(Box.createVerticalStrut(8);box1.add(new Label(英语:);box3 = Box.createHorizontalBox();box3.add(box1);box3.add(Box.createHorizontalStrut(1);box3.add(box2);show = new TextArea(6, 43);sure = new JButton(确定);box4 = Box.createHorizontalBox();Label label1 = new Label(请输入数据);label1.setFont(new Font(宋体, Font.BOLD, 20);label1.setForeground(Color.blue);box4.add(label1);box4.add(Box.createHorizontalStrut(1);box4.add(sure);sure.addActionListener(this);bg = new ImageIcon(cru.jpg);JLabel label = new JLabel(bg);label.setBounds(0, 0, bg.getIconWidth(), bg.getIconHeight();imagePanel = (JPanel) frame.getContentPane();imagePanel.setOpaque(false);imagePanel.setLayout(new FlowLayout();show.setEditable(false);imagePanel.add(box4, BorderLayout.NORTH);imagePanel.add(box3, BorderLayout.CENTER);imagePanel.add(show, BorderLayout.SOUTH);frame.getLayeredPane().setLayout(null);frame.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE);/frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(bg.getIconWidth(), bg.getIconHeight();frame.setBounds(700, 200, 540, 440);frame.setResizable(false);frame.setVisible(true);validate();addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) dispose(););public void actionPerformed(ActionEvent ee) String s1, s2, s3, s4, s5, insert1, recode, name, date, number;int m1, m2, math, english;s1 = input1.getText();s2 = input2.getText();s3 = input3.getText();s4 = input4.getText();s5 = input5.getText();number = s1;name = s2;date = s3;m1 = Integer.parseInt(s4);math = m1;m2 = Integer.parseInt(s5);english = m2;try Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver); catch (ClassNotFoundException eee) System.out.println( + eee);try con = DriverManager.getConnection(jdbc:sqlserver:/localhost:1433; databasename=student;, sa, 123456);sql = con.createStatement();recode = ( + + number + + , + + name + + ,+ + date + + , + math + , + english + );insert1 = INSERT INTO student VALUES + recode;sql.executeUpdate(insert1);show.setText(你插入了:);show.append(学号: + number + 姓名: + name + 出生: + date+ 数学 + math + 英语 + english);show.append(n); catch (SQLException e) System.out.println(e);JOptionPane.showMessageDialog(this, 你输入的学号已存在,请核对重新输入!);其中连接到数据库的的过程代码如下:try Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver); catch (ClassNotFoundException eee) System.out.println( + eee);try con = DriverManager.getConnection(jdbc:sqlserver:/localhost:1433; databasename=student;, sa, 123456);sql = con.createStatement();recode = ( + + number + + , + + name + + ,+ + date + + , + math + , + english + );insert1 = INSERT INTO student VALUES + recode;sql.executeUpdate(insert1);show.setText(你插入了:);show.append(学号: + number + 姓名: + name + 出生: + date+ 数学 + math + 英语 + english);show.append(n); catch (SQLException e) System.out.println(e);JOptionPane.showMessageDialog(this, 你输入的学号已存在,请核对重新输入!);4、 删除界面如下: 在删除的窗口中是通过对学号的输入而对这个学生的所有信息进行删除。具体的删除过程的代码如下:class shanchu extends JFrame implements ActionListener JFrame frame = new JFrame(删除记录);JPanel imagePanel;ImageIcon bg;JButton xunzhao;TextField input;TextArea show;String s;int k, s1, j;Connection con;Statement sql;int sum = 0;ResultSet rs;shanchu() Toolkit kit = Toolkit.getDefaultToolkit();Image img = kit.getImage(tubiao.jpg);frame.setIconImage(img);Panel p = new Panel();xunzhao = new JButton(删除);input = new TextField(15);show = new TextArea(6, 43);Label l1=new Label(输入要删除学生的学号);l1.setFont(new Font(宋体,Font.BOLD,15);l1.setForeground(Color.BLUE);p.add(l1);p.add(input);p.add(xunzhao);xunzhao.addActionListener(this);show.setEditable(false);bg = new ImageIcon(sc.jpg);JLabel label = new JLabel(bg);label.setBounds(0, 0, bg.getIconWidth(), bg.getIconHeight();imagePanel = (JPanel) frame.getContentPane();imagePanel.setOpaque(false);imagePanel.setLayout(new FlowLayout();imagePanel.add(p, BorderLayout.NORTH);imagePanel.add(show, BorderLayout.CENTER);frame.getLayeredPane().setLayout(null);frame.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(bg.getIconWidth(), bg.getIconHeight();frame.setBounds(710, 210, 480, 310);frame.setVisible(true);frame.setResizable(false);/设置窗口大小不可改变validate();addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) dispose(););public void actionPerformed(ActionEvent ee) boolean boo = true;s = input.getText();String m;try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); catch (ClassNotFoundException eee) System.out.println( + eee);try con = DriverManager.getConnection(jdbc:sqlserver:/localhost:1433; databasename=student;, sa, 123456);sql = con.createStatement();rs = sql.executeQuery(SELECT * FROM student);while (rs.next() String number = rs.getString(number);String name = rs.getString(name);String date = rs.getString(date);int math = rs.getInt(math);int english = rs.getInt(english);if (number.equals(s) show.setText(你删除了:);show.append(学号: + number + 姓名: + name + 出生:+ date + 数学 + math + 英语 + english);show.append(n);m = DELETE FROM student WHERE number = + input.getText() + ;sql.executeUpdate(m);con.close();if (boo) JOptionPane.showMessageDialog(this, 你输入的学号不存在); catch (SQLException e) System.out.println(e);5、 学生成绩信息等的查询功能窗口如下: 查询的过程也是通过学生的学号进行的,通过学号而将所有的信息显示出来,具体的代码如下:class chaxun extends JFrame implements ActionListener JFrame frame = new JFrame(查询记录);JPanel imagePanel;ImageIcon bg;JButton xunzhao;TextField input;TextArea show;Box box;String s;Connection con;Statement sql;ResultSet rs;chaxun() Toolkit kit = Toolkit.getDefaultToolkit();Image img = kit.getImage(tubiao.jpg);frame.setIconImage(img);xunzhao = new JButton(查找);input = new TextField(10);show = new TextArea(6, 43);xunzhao.addActionListener(this);show.setEditable(false);box = Box.createHorizontalBox();Label l1=new Label(输入学号);l1.setFont(new Font(宋体,Font.BOLD,15);l1.setForeground(Color.blue);box.add(l1);box.add(Box.createHorizontalStrut(8);box.add(input);box.add(Box.createHorizontalStrut(8);box.add(xunzhao);bg = new ImageIcon(chaxun.jpg);JLabel label = new JLabel(bg);label.setBounds(0, 0, bg.getIconWidth(), bg.getIconHeight();imagePanel = (JPanel) frame.getContentPane();imagePanel.setOpaque(false);imagePanel.setLayout(new FlowLayout();imagePanel.add(box, BorderLayout.NORTH);imagePanel.add(show, BorderLayout.CENTER);frame.getLayeredPane().setLayout(null);frame.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE); /frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(bg.getIconWidth(), bg.getIconHeight();frame.setBounds(730, 230, 520, 350);frame.setResizable(false);/设置窗口大小不可改变frame.setVisible(true);validate();addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) dispose(););public void actionPerformed(ActionEvent ee) boolean boo = true;s = input.getText();try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); catch (ClassNotFoundException eee) System.out.println( + eee);try con = DriverManager.getConnection(jdbc:sqlserver:/localhost:1433;databasename=student, sa, 123456);sql = con.createStatement();rs = sql.executeQuery(SELECT * FROM student );while (rs.next() String number = rs.getString(number);String name = rs.getString(name);String date = rs.getString(date);int math = rs.getInt(math);int english = rs.getInt(english);if (number.equals(s) boo = false;show.setText(null);show.append(学号: + number + 姓名: + name + 出生:+ date + 数学 + math + 英语 + english);show.append(n);con.close();if (boo) JOptionPane.showMessageDialog(this, 你输入的学号不存在); catch (SQLException eee) System.out.println(eee);6、 学生成绩的修改窗口界面如下: 学生成绩的修改也是通过学号这个关键字而进行的,输入要修改的学生的学号,然后对二门成绩进行修改,将要修改的成绩结果填写在相应的窗口中,这样就修改了该同学的这二门成绩。具体代码如下:class xiugai extends JFrame implements ActionListener JFrame frame = new JFrame(修改成绩);JPanel imagePanel;ImageIcon bg;JButton xiug;TextField input1, input2, input3;TextArea show;Box box1, box2, box3;Panel p1, p2;int k, s1, j;Connection con;Statement sql;int sum = 0;ResultSet rs;xiugai() Toolkit kit = Toolkit.getDefaultToolkit();Image img = kit.getImage(tubiao.jpg);frame.setIconImage(img);p1 = new Panel();p2 = new Panel();xiug = new JButton(修改);input1 = new TextField(10);input2 = new TextField(10);input3 = new TextField(10);show = new TextArea(6, 43); Font f=new Font(宋体,Font.BOLD,15);Label l1=new Label(输入学号);l1.setFont(f);l1.setForeground(Color.blue);p1.add(l1);p1.add(new Label(学号:);p1.add(input1);box1 = Box.createVerticalBox();box1.add(Box.createVerticalStrut(8);box1.add(new Label(数学:);box1.add(

温馨提示

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

评论

0/150

提交评论