JAVA 学生成绩管理系统.doc_第1页
JAVA 学生成绩管理系统.doc_第2页
JAVA 学生成绩管理系统.doc_第3页
JAVA 学生成绩管理系统.doc_第4页
JAVA 学生成绩管理系统.doc_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

山西工程学院 网10 山西工程职业技术学院 计算机系实训报告设计名称: 软件课程设计 设计题目: 学生成绩管理系统 学生学号: 10503091014 专业班级: 网 10 学生姓名: 贾慧斌 学生成绩: 指导教师(职称): 牛承珍 实训时间: 2011.6.20至 2011.6.24 1概要结构设计1.1系统功能结构设计具体的流程图如下:开始得到事件处理器组件源是否为插入输入插入信息调用Student中的insert语句插入记录是否为删除输入关键字调用Student中delete语句来删除记录是否为查询输入关键字和改变的值调用Student中select语句来查询退出系统结 束显示操作成功显示操作成功YNYYNN开始得到事件处理器组件源是否为插入输入插入信息调用Student中的insert语句插入记录是否为删除输入关键字调用Student中delete语句来删除记录是否为查询输入关键字和改变的值调用Student中select语句来查询退出系统结 束显示操作成功显示操作成功YNYYNN开始得到事件处理器组件源是否为插入输入插入信息调用Student中的insert语句插入记录是否为删除输入关键字调用Student中delete语句来删除记录是否为查询输入关键字和改变的值调用Student中select语句来查询退出系统结 束显示操作成功显示操作成功YNYYNN2数据库的连接2.1新建数据库根据需要构建一个名为student的学生数据库SQL的代码如下:Create database student2.2新建表格根据需要构建两个表格用来存储学生的信息,和学生的成绩创建学生信息表Create table student (stuNo char(10) primary key ,name char(10),gender name char(10),age int)创建学生成绩表Create table score(stuNo char(10)primary key, score int)2.3新建名为student的数据源打开控制面板,找到数据源新建一个student的数据源,单击添加,选择SQL,并在服务器内添加(local)注意修改默认的数据库,选中自己的数据库student进行数据库的链接测试在数据源管理器中会看到自己添加的数据源student。3详细设计及实现3.1公共类的定义学生类的定义代码如下:醉清疯import java.sql.Connection;import java.sql.ResultSet;import java.sql.Statement;import javax.swing.JOptionPane;public class Student String stuNo;String name;String gender;int age;public Student() public Student(String stuNo, String name, String gender, int age) this.stuNo = stuNo; = name;this.gender = gender;this.age = age;public String getStuNo() return stuNo;public void setStuNo(String stuNo) this.stuNo = stuNo;public String getName() return name;public void setName(String name) = name;public String getGender() return gender;public void setGender(String gender) this.gender = gender;public int getAge() return age;public void setAge(int age) this.age = age;/向数据库中插入学生基本信息,若插入成功返回truepublic boolean insertStudent() boolean b = true;try Connection con = SQLConnection.getCon();Statement statement = con.createStatement();String sql = insert into student values( + stuNo + , + name+ , + gender + , + age + );sql = new String(sql.getBytes(GBK), ISO-8859-1); /处理汉字乱码statement.executeUpdate(sql);statement.close();con.close(); catch (Exception e) b = false;System.out.println(插数据遇到异常!);return b;/根据学号查询学生基本信息,若查询成功返回truepublic boolean selectByStuNo(String stuNo) throws Exception boolean b = false;Connection con = SQLConnection.getCon();Statement statement = con.createStatement();String sql = select * from student where stuNo = + stuNo + ;ResultSet rs = statement.executeQuery(sql);if (rs.next() String no = rs.getString(1);this.setStuNo(no);String n = rs.getString(2);n = new String(n.getBytes(ISO-8859-1), GBK); /处理汉字乱码this.setName(n);String g = rs.getString(3);g = new String(g.getBytes(ISO-8859-1), GBK); /处理汉字乱码this.setGender(g);this.setAge(rs.getInt(4);b = true;rs.close();statement.close();con.close();return b;public boolean deleteStudent() boolean b = true;try Connection con = SQLConnection.getCon();Statement statement = con.createStatement();String sql = delete from student where stuNo = + stuNo + ;statement.executeUpdate(sql);statement.close();con.close(); catch (Exception e) b = false;System.out.println(插数据遇到异常!);return b;成绩类的定义代码如下:import java.sql.Connection;import java.sql.ResultSet;import java.sql.Statement;public class Score String stuNo;int score;public Score() public Score(String stuNo, int score) this.stuNo = stuNo;this.score = score;public String getStuNo() return stuNo;public void setStuNo(String stuNo) this.stuNo = stuNo;public int getScore() return score;public void setscore(int score) this.score = score;/向数据库中插入学生成绩基本信息,若插入成功返回truepublic boolean insertScore() boolean b = true;try Connection con = SQLConnection.getCon();Statement statement = con.createStatement();String sql = insert into score values( + stuNo + , + score + );statement.executeUpdate(sql);statement.close();con.close(); catch (Exception e) b = false;System.out.println(插入数据遇到异常!);return b;/根据学号查询学生成绩基本信息,若查询成功返回truepublic boolean selectByStuNo(String stuNo) throws Exception boolean b = false;Connection con = SQLConnection.getCon();Statement statement = con.createStatement();String sql = select * from score where stuNo = + stuNo + ;ResultSet rs = statement.executeQuery(sql);if (rs.next() String no = rs.getString(1);this.setStuNo(no);this.setscore(rs.getInt(2);b = true;rs.close();statement.close();con.close();return b;链接数据库的代码如下:import java.sql.Connection;import java.sql.DriverManager;public class SQLConnection static Connection getCon() Connection con = null;tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver); /安装驱动器类con = DriverManager.getConnection(jdbc:odbc:student, jhb,jhb);/建立连接catch(Exception e)System.out.println(建立数据库连接遇到异常!);return con;3.2输入模块的定义实现代码如下:import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingConstants;public class InsertPanel extends JPanel implements ActionListenerJButton jb;JTextField jt1, jt2, jt3,jt4;InsertPanel()this.setLayout(new BorderLayout();JLabel j1, j2, j3, j4;j1 = new JLabel(学号:,SwingConstants.CENTER);j2 = new JLabel(姓名:,SwingConstants.CENTER);j3 = new JLabel(性别:,SwingConstants.CENTER);j4 = new JLabel(年龄:,SwingConstants.CENTER);jt1 = new JTextField(6);jt2 = new JTextField(6);jt3 = new JTextField(6);jt4 = new JTextField(6);JPanel jp = new JPanel(new GridLayout(4, 2);jp.add(j1);jp.add(jt1);jp.add(j2);jp.add(jt2);jp.add(j3);jp.add(jt3);jp.add(j4);jp.add(jt4);add(jp);jb = new JButton(确定);add(jb, BorderLayout.SOUTH);jb.addActionListener(this);public void actionPerformed(ActionEvent e)if (e.getSource()=jb)/获取图形界面输入的数据String stuNo = jt1.getText().trim();String name = jt2.getText().trim();String gender = jt3.getText().trim();String sage = jt4.getText().trim();int age = 0;/把年龄从String转化成inttry Integer iage = new Integer(sage); age = iage;catch (Exception ex) System.out.println(年龄数据格式异常!);boolean b = false;if (age 0)Student s = new Student(stuNo,name,gender,age);/以图形界面输入的数据创建对象b = s.insertStudent(); /保存数据if (b) /b为true表示保存成功JOptionPane.showMessageDialog(null, 插入记录成功!);elseJOptionPane.showMessageDialog(null, insert failed!);3.3查询模块的定义实现代码如下:import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingConstants;public class SelectPanel extends JPanel implements ActionListenerJButton jb;JTextField jt;JTextField jt1, jt2, jt3,jt4;SelectPanel()JLabel jl = new JLabel(请输入学号:,SwingConstants.CENTER);jt = new JTextField();jb = new JButton(确定);JPanel jp1 = new JPanel(new GridLayout(1, 3);jp1.add(jl);jp1.add(jt);jp1.add(jb);JLabel j1, j2, j3, j4;j1 = new JLabel(学号:,SwingConstants.CENTER);j2 = new JLabel(姓名:,SwingConstants.CENTER);j3 = new JLabel(性别:,SwingConstants.CENTER);j4 = new JLabel(年龄:,SwingConstants.CENTER);jt1 = new JTextField(6);jt1.setEditable(false);jt2 = new JTextField(6);jt2.setEditable(false);jt3 = new JTextField(6);jt3.setEditable(false);jt4 = new JTextField(6);jt4.setEditable(false);JPanel jp2 = new JPanel(new BorderLayout();JPanel jp3 = new JPanel(new GridLayout(4,2);jp2.add(new JLabel(),BorderLayout.NORTH);jp3.add(j1);jp3.add(jt1);jp3.add(j2);jp3.add(jt2);jp3.add(j3);jp3.add(jt3);jp3.add(j4);jp3.add(jt4);jp2.add(jp3);setLayout(new BorderLayout(20,20);add(jp1, BorderLayout.NORTH);add(jp2);jb.addActionListener(this);public void actionPerformed(ActionEvent e)if(e.getSource()=jb)String stuNo = jt.getText().trim(); /获取学号Student s = new Student();boolean b = true;tryb = s.selectByStuNo(stuNo);/执行查询,查询结果保存在对象s中catch(Exception ex)System.out.println(查询学生信息遇到异常!);if (b) /查询成功将结果显示在图形界面上jt1.setText(s.stuNo);jt2.setText(s.getName();jt3.setText(s.getGender();int a = s.getAge();Integer i = new Integer(a);jt4.setText(i.toString();else /查询不成功使用消息对话框通知用户JOptionPane.showMessageDialog(null, 无此学生!);3.4删除模块的定义实现代码如下:import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingConstants;public class DeletePanel extends JPanel implements ActionListenerJButton jb;JTextField jt;DeletePanel()JLabel jl = new JLabel(请输入学号:,SwingConstants.CENTER);jt = new JTextField();jb = new JButton(确定);JPanel jp1 = new JPanel(new GridLayout(1, 3);jp1.add(jl);jp1.add(jt);jp1.add(jb);JPanel jp2 = new JPanel(new BorderLayout();JPanel jp3 = new JPanel(new GridLayout(4,2);jp2.add(new JLabel(),BorderLayout.NORTH);jp2.add(jp3);setLayout(new BorderLayout(20,20);add(jp1, BorderLayout.NORTH);add(jp2);jb.addActionListener(this);public void actionPerformed(ActionEvent e)if(e.getSource()=jb)String stuNo = jt.getText().trim(); /获取学号Student s = new Student();boolean b = true;tryb = s.selectByStuNo(stuNo);/执行查询,查询结果保存在对象s中catch(Exception ex)System.out.println(查询学生信息遇到异常!);if (b) /查询成功将结果显示在图形界面上b=s.deleteStudent();JOptionPane.showMessageDialog(null, 操作成功!);else /查询不成功使用消息对话框通知用户JOptionPane.showMessageDialog(null, 无此学生!);3.5成绩输入模块的定义实现代码如下:import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingConstants;public class Insert2Panel extends JPanel implements ActionListenerJButton jb;JTextField jt1,jt2;Insert2Panel()this.setLayout(new BorderLayout();JLabel j1, j2;j1 = new JLabel(学号:,SwingConstants.CENTER);j2 = new JLabel(成绩:,SwingConstants.CENTER);jt1 = new JTextField(6);jt2= new JTextField(6);JPanel jp = new JPanel(new GridLayout(2, 2);jp.add(j1);jp.add(jt1);jp.add(j2);jp.add(jt2);add(jp);jb = new JButton(确定);add(jb, BorderLayout.SOUTH);jb.addActionListener(this);public void actionPerformed(ActionEvent e)if (e.getSource()=jb)/获取图形界面输入的数据String stuNo = jt1.getText().trim();String sscore = jt2.getText().trim();int score = 0;/把年龄从String转化成inttry Integer iscore = new Integer(sscore); score = iscore;catch (Exception ex) System.out.println(年龄数据格式异常!);boolean b = false;if (score 0)Score s= new Score(stuNo,score);/以图形界面输入的数据创建对象b = s.insertScore(); /保存数据if (b) /b为true表示保存成功JOptionPane.showMessageDialog(null, 插入记录成功!);elseJOptionPane.showMessageDialog(null, insert failed!);3.6成绩查询模块的定义实现代码如下:import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingConstants;public class SelectscorePanel extends JPanel implements ActionListenerJButton jb;JTextField jt;JTextField jt1,jt2;SelectscorePanel()JLabel jl = new JLabel(请输入学号:,SwingConstants.CENTER);jt = new JTextField();jb = new JButton(确定);JPanel jp1 = new JPanel(new GridLayout(1, 3);jp1.add(jl);jp1.add(jt);jp1.add(jb);JLabel j1,j2;j1 = new JLabel(学号:,SwingConstants.CENTER);j2 = new JLabel(成绩:,SwingConstants.CENTER);jt1 = new JTextField(6);jt1.setEditable(false);jt2 = new JTextField(6);jt2.setEditable(false);JPanel jp2 = new JPanel(new BorderLayout();JPanel jp3 = new JPanel(new GridLayout(2,2);jp2.add(new JLabel(),BorderLayout.NORTH);jp3.add(j1);jp3.add(jt1);jp3.add(j2);jp3.add(jt2);jp2.add(jp3);setLayout(new BorderLayout(20,20);add(jp1, BorderLayout.NORTH);add(jp2);jb.addActionListener(this);public void actionPerformed(ActionEvent e)if(e.getSource()=jb)String stuNo = jt.getText().trim(); /获取学号Score s = new Score();boolean b = true;tryb = s.selectByStuNo(stuNo);/执行查询,查询结果保存在对象s中catch(Exception ex)System.out.println(查询学生成绩遇到异常!);if (b) /查询成功将结果显示在图形界面上jt1.setText(s.stuNo);int a = s.getScore();Integer i = new Integer(a);jt2.setText(i.toString();else /查询不成功使用消息对话框通知用户JOptionPane.showMessageDialog(null, 无此学生!);3.7菜单栏的设计代码如下:import java.awt.BorderLayout;import java.awt.CardLayout;import java.awt.Container;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.Icon;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JPanel;import javax.swing.JToolBar;import javax.swing.SwingConstants;public class MainFrame extends JFrame implements ActionListener InsertPanel ip = null;SelectPanel sp = null;SelectscorePanel sp2 = null;Insert2Panel ip2 = null;DeletePanel dp=null;JPanel pframe;JButton jb1,jb2,jb3;JMenuItem jm11,jm21, jm22, jm23,jm31, jm32,jm41,jm42;CardLayout clayout;MainFrame(String s)super(s);JMenuBar mb = new JMenuBar();this.setJMenuBar(mb);JMenu m1 = new JMenu(系统);JMenu m2 = new JMenu(基本信息);JMenu m3 = new JMenu(成绩);JMenu m4 = new JMenu(奖惩);mb.add(m1);mb.add(m2);mb.add(m3);mb.add(m4);jm11 = new JMenuItem(退出系统);jm21 = new JMenuItem(输入);jm22 = new JMenuItem(查询);jm23 = new JMenuItem(删除);jm31 = new JMenuItem(输入成绩);jm32 = new JMenuItem(查询成绩);jm41 = new JMenuItem(奖励);jm42 = new JMenuItem(处分);m1.add(jm11);m2.add(jm21);m2.add(jm22);m2.add(jm23);m3.add(jm31);m3.add(jm32);m4.add(jm41);m4.add(jm42);Icon i1 = new ImageIcon(images/save.gif);Icon i2 = new ImageIcon(images/select.gif);Icon i3 = new ImageIcon(images/exit.gif);jb1 = new JButton(i1);jb2 = new JButton(i2);jb3 = new JButton(i3);JToolBar tb = new JToolBar(系统工具);tb.add(jb1);tb.add(jb2);tb.add(jb3);add(tb, BorderLayout.NORTH);jm11.addActionListener(this);jm21.addActionListener(this);jm22.addActionListener(this);jm23.addActionListener(this);jm31.addActionListener(this);jm32.addActionListener(this);jb1.addActionListener(this);jb2.addActionListener(this);jb3.addActionListener(this);clayout = new CardLayout();pframe = new JPanel(clayout); /pframe存放各模块界面,CardLayout布局add(pframe); /pframe加载到框架窗口的中区 /定义软件系统的初始图形界面JPanel mainp = new JPanel(new BorderLayout();JLabel mainl = new JLabel(学生信息管理平台,SwingConstants.CENTER);mainl.setFont(new Font(Serif,Font.BOLD,30);mainp.add(mainl);pframe.add(mainp,main);clayout.show(pframe, main);public void actionPerformed(ActionEvent e) if(e.getSource()=jm21|e.getSource()=jb1)if(ip = null) /如果插入界面ip不存在,创建这个对象ip = new InsertPanel();pframe.add(ip,insert);/如果输入界面ip已经存在,就不需要创建了clayout.show(pframe, insert);this.setTitle(输入学生信息);else if(e.getSource()=jm22|e.getSource()=jb2)if(sp = null) /如果查询界面sp不存在,创建这个对象s

温馨提示

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

评论

0/150

提交评论