首先系统从登陆界面经输入正确的用户名和密码后即可登录到主界面。
主界面可实现的功能如下:1.资料信息录入:点击主界面的学生信息录入菜单项下的资料录入可实现此项功能。
录入学生资料信息时必须输入所有要求填写的信息才可以将信息录入到数据库,否则会出现错误提醒。
2.成绩信息录入:点击主界面的学生信息录入菜单项下的成绩录入可实现此项功能。
录入学生信息时必须输入所有要求填写的成绩信息才可以将信息录入到数据库,否则会出现错误提醒。
3.学生个人资料信息查询:点击主界面的学生信息查询,然后点资料查询,再点个人资料查询可实现此项功能。
在出现的界面输入需要查询的学生的学号即可出现需要查询的学生资料信息。
4.所有资料信息查询:点击主界面的学生信息查询,然后点资料查询,再点所有资料查询可实现此项功能。
在出现的界面点击确定按钮即可出现所有存在数据库的学生资料信息。
5.学生个人成绩查询:点击主界面的学生信息查询,然后点成绩查询,再点个人成绩查询可实现此项功能。
在出现的界面输入需要查询的学生的学号即可出现需要查询的学生的成绩信息。
6.所有成绩查询:点击主界面的学生信息查询,然后顶尖级成绩查询,再点所有成绩查询即可实现此项功能。
在出现的界面点击确定按钮即可出现所有存在数据库的学生成绩信息。
7.资料删除:点击主界面的学生信息删除菜单项下的资料删除即可实现此项功能。
在出现的界面输入需要删除的学生的学号即可在数据库中实现该学生资料信息的删除。
8.成绩删除:点击主界面的学生信息删除菜单项下的成绩删除即可实现此项功能。
在出现的界面输入要删除成绩的学生的学号即可在数据库中实现该学生成绩信息的删除。
9.资料更改:点击主界面的学生信息更改菜单项下的资料更改即可实现此项功能。
在出现的界面输入要更改的学生的学号及更改后的资料信息(各项信息都必须输入否则会出现错误提醒)即可实现在数据库中更改该学生的资料信息。
前提是该生的资料必须原先就存在于数据库中。
10.成绩更改:点击主界面的学生信息更改菜单项下的成绩更改即可实现此项功能。
在出现的界面输入要更改的学生的学号及更改后的成绩信息(各项成绩都必须输入否则会出现错误提醒)即可实现在数据库中更改该学生的成绩信息。
前提是该生的各科成绩必须原先就存在于数据库中。
11.退出系统:点击主界面的系统管理菜单项下的退出系统即可实现此项功能,点击之后会退出学生信息管理系统。
三.数据库设计学生信息管理系统的数据库Stud.mdb包含了三个数据表,分别是学生信息表student、学生成绩表score和用户表users。
其中学生信息表student包含的字段有:id(学号)、name(姓名)、sex(性别)、age(年龄)、phone(联系方式)和adress(籍贯);学生成绩表score包含的字段有:id(学号)、Java程序设计、Web开发技术、数据结构、C语言、操作系统、计算机组成原理,这两个表的主键都是id(学号),用户表users包含的字段有:user(用户),password(密码),主键是user。
四.详细设计Log1.java登录界面InputInfo.java资料录入InputScore.java成绩录入QueryInfo.java个人资料查询QueryInfoAll.java所有资料查询QueryScore.java个人成绩查询QueryScoreAll.java所有资料查询DeleteInfo.java资料删除DeleteScore.java成绩删除UpdateInfo.java资料更改UpdateScore.java成绩更改Student.java学生类,实现和数据库学生资料表的连接Score.java成绩类,实现和数据库学生成绩表的连接StudentMenu.java主界面,实现对个子功能的调用如上表所示,是程序中所包含的类和这些类所实现的功能,接下来是具体实现。
1.Log1.java登陆界面的主要代码和界面:import .............*;public class Log1 extends JFrame implements ActionListener{ .........................................public static void main(String[] args) {Log1 frame1=new Log1(); frame1.iniView();} public void iniView(){ JFrame frame = new JFrame("学生信息管理系统登录");JLabel title=new JLabel("欢迎使用学生信息管理系统 !");................................................ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);} public void actionPerformed(ActionEvent e){ int flag=0;if(e.getActionCommand()=="登录"){ String nametext = TextField1.getText();if(nametext==null||nametext.equals("")){ JOptionPane.showMessageDialog(this,"用户名不能为空!","错误提示",JOptionPane.WARNING_MESSAGE);flag=1;}String passwordtext = pwdText1.getText();if(passwordtext==null||passwordtext.equals("")){JOptionPane.showMessageDialog(this,"请输入密码!","错误提示",JOptionPane.WARNING_MESSAGE);flag=1;}if (flag==0){try {String strurl="jdbc:odbc:driver={MicrosoftAccess Driver (*.mdb)};DBQ=Stud.mdb";Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection conn=DriverManager.getConnection(strurl);Statement stmt=conn.createStatement();ResultSet rs=stmt.executeQuery("select * fromusers where er='"+nametext+"'");if(!rs.next()){JOptionPane.showMessageDialog(this,"该用户不存在!","错误提示",JOptionPane.WARNING_MESSAGE);}else{String s = rs.getString(3);if(s.equals(passwordtext)){ StudentMenu sm=new StudentMenu();sm.go();frame.dispose();}else JOptionPane.showMessageDialog(this,"密码不正确!","错误提示",JOptionPane.WARNING_MESSAGE); } conn.close();}catch(Exception ex){System.out.println(ex.toString());}}}if (e.getActionCommand()=="取消")System.exit(0);}}必须同时输入正确的用户名和其所对应的密码才能登录到主界面,否则会弹出相应的提示信息。
2.InputInfo.java资料录入的主要代码和界面Import................*;public class InputInfo extends JFrame implementsActionListener {.......................rb1=new JRadioButton("男");rb2=new JRadioButton("女");btOk= new JButton("确定");btOk.addActionListener(this);btClear = new JButton("清除");btClear.addActionListener(this);ButtonGroup group1 = new ButtonGroup();group1.add(rb1);group1.add(rb2);public void actionPerformed(ActionEvent e){ .........................try{.......................(连接数据库的代码)int rs=stmt.executeUpdate(sql); JOptionPane.showMessageDialog(this,"资料录入成功!","提示",RMATION_MESSAGE); }catch(Exception a){System.out.println(a);}setVisible(false);}}else if(e.getActionCommand()=="清除") {txtId.setText("");txtName.setText("");txtAge.setText("");txtPhone.setText("");}}} 必须输入所有信息才能录入,界面如下:资料录入成功会出现提示:3.InputScore.java成绩录入的主要代码和界面:import ...................*;public class InputScore extends JFrame implements ActionListener { ...................................................public void go(){// 创建控件,布局并将所有的组件放到一个面板pa中lbId=new JLabel("学号:");lbJava=new JLabel("Java程序设计:");......................................btOk= new JButton("确定");btOk.addActionListener(this);btClear = new JButton("清除");btClear.addActionListener(this);JPanel pj1 =new JPanel();Border etched = BorderFactory.createEtchedBorder();Border border =BorderFactory.createTitledBorder(etched, "");pj1.setBorder(border);pj1.add(btOk);...................................................}public void actionPerformed(ActionEvent e){// 从控件中获取用户输入int flag=0;if(e.getActionCommand()=="确定") {String id=txtId.getText();if(id==null||id.equals("")){JOptionPane.showMessageDialog(this,"学号不能为空!","错误提示",JOptionPane.WARNING_MESSAGE);flag=1;}..............................try{.........................(连接数据库的代码)int rs=stmt.executeUpdate(sql); JOptionPane.showMessageDialog(this,"成绩录入成功!","提示",RMATION_MESSAGE);}catch(Exception a) {System.out.println(a);}}}else if(e.getActionCommand()=="清除") {txtId.setText("");txtJava.setText("");...................}}}必须输入所有信息后才能实现成绩信息的录入,否则会出现错误提示。