




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、。学生信息管理系统设计1、系统简介本系统提供了学生信息管理中常见的基本功能,主要包括管理员和学生两大模块。管理员的主要功能有对学生信息和课程信息进行增加、删除、修改、查找等操作,对选课信息进行管理,对成绩信息和用户信息进行修改、查找等操作。学生的主要功能有对学生信息和成绩信息进行查看,对个人的密码信息进行修改等。2、功能设计2.1需求分析本系统需要实现的功能:( 1)、管理员对学生信息和课程信息进行增加、删除、修改、查找等操作,对选课信息进行管理,对成绩信息和用户信息进行修改、查找等操作。( 2)、学生对学生信息和成绩信息进行查看,对个人的密码信息进行修改等。2.2总体设计学生信息管理系统主要
2、包括管理员和学生两大模块。管理员模块包括:学生信息管理、课程信息管理、选课信息管理、成绩信息管理、用户信息管理等。用户模块包括:学生信息查看、成绩信息查看、个人信息管理等。系统总体结构如图所示。总体结构图2.3模块详细设计1、学生信息管理模块学生信息管理模块包括增加、删除、修改、查询、显示全部等。具体的结构图如图所示。精选资料,欢迎下载。学生信息管理模块结构图2、课程信息管理模块课程信息管理模块包括增加、删除、修改、查询、显示全部等。具体的结构图如图所示。课程信息管理模块结构图3、选课信息管理模块选课信息管理模块包括查询、显示全部等。具体的结构图如图所示。选课信息管理模块结构图4、成绩信息管理
3、模块成绩信息管理模块包括修改成绩、查询、显示全部等。具体的结构图如图所示。精选资料,欢迎下载。成绩信息管理模块结构图5、用户信息管理模块用户信息管理模块包括修改、查询、显示全部等。具体的结构图如图所示。用户信息管理模块结构图3、数据库设计在数据库student中共有4 张数据表: s(学生信息表) 、 c(课程信息表) 、 sc(选课信息表)、 unpw(用户信息表) ,下面定义每张表的字段名称和数据类型。s(学生信息表)字段名称数据类型描述snochar (10)学号,关键字snchar (20)姓名saint年龄sschar (10)性别sdchar (10)院系c(课程信息表)字段名称数
4、据类型描述cnochar (10)课程号,关键字cnchar (30)课程名pcnochar (10)先行课程号sc (选课信息表)字段名称数据类型描述snochar (10)学号,关键字cnochar (10)课程号,关键字gint成绩精选资料,欢迎下载。unpw(用户信息表)字段名称数据类型描述unchar (10)用户名,关键字pwchar (10)密码qxint角色4、界面库设计1、学生信息管理系统的登录学生信息管理系统可由管理员和学生两种身份的人使用。管理员和学生身份登录所能操作的功能有很大的区别。系统初始化一个系统管理员,登录名:admin密码: admin学生登录系统的登录名为学
5、号,密码也为学号(如:10001),登录后可以修改密码。登录界面管理员登录系统后的界面精选资料,欢迎下载。学生登录系统后的界面2、实现管理员和学生操作功能的界面管理员的登录系统后可以进行学生信息管理、课程信息管理、 选课信息管理、 成绩信息管理、用户信息管理等功能操作,其具体界面设计如下图所示。学生信息管理功能的界面课程信息管理功能的界面精选资料,欢迎下载。选课信息管理功能的界面成绩信息管理功能的界面用户信息管理功能的界面学生的登录系统后可以进行学生信息查看、成绩信息查看、个人信息管理等功能操作,精选资料,欢迎下载。其具体界面设计如下图所示。学生信息查看功能的界面成绩信息查看功能的界面个人信息
6、管理功能的界面5、程序类的设计精选资料,欢迎下载。SimpleStudentManager主函数类DLFrame登陆界面类ManagerFrane管理员界面类StudentFrame学生界面类SM学生信息管理的类SAdd用于学生信息管理中增加或修改某条记录的界面的类SSelect用于学生基本信息管理中查询时输入学号的界面的类CM课程信息管理的类CAdd用于课程信息管理中增加或修改某条记录的界面的类CSelect用于课程信息管理中查询时输入课程号的界面的类SCM选课信息管理的类SCSelect用于选课信息管理中查询时输入学号的界面的类GM成绩信息管理的类GAdd用于成绩信息管理中修改成绩的界面的
7、类GSelect用于成绩信息管理中查询时输入学号的界面的类PM用户信息管理的类UAdd用于用户信息管理中修改密码的界面的类PSelect用于用户信息管理中查询时输入用户名的界面的类StudentS用于学生信息查看时输入学号的界面的类StudentSelect用于成绩信息查看时输入学号的界面的类PPM个人信息管理的类PPSelect用于个人信息管理查询时输入用户名的界面的类程序类的具体代码实现见工程文件夹中的代码及注释6、系统的使用说明及环境配置学生信息管理系统提供了管理员和学生这两个角色登录系统,管理员通过用户名: admin 密码: admin 登录系统后可以进行相应的操作。学生通过以自己的
8、学号(如10001)作为用户名和密码登录系统后进行相应的学生权限范围内的操作。数据库: SQL Server 2005连接数据库的登录名:sa密码: 123精选资料,欢迎下载。代码:import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;class CAdd extends JFrame implements ActionListener/用于课程信息管理中增加或修改某条记录的界面JLabel lcno = new JLabel(课程号: );JLabel lcname = new JLa
9、bel(课程名: );JLabel lpcno = new JLabel(先行课程号: );JTextField tcno = new JTextField(10);JTextField tcname = new JTextField(10);JTextField tpcno = new JTextField(10);JButton btnOK = new JButton(确定 );JButton btnCancel = new JButton(取消 );JPanel p = new JPanel();Connection con = null;Statement stmt = null;Re
10、sultSet rs = null;boolean isNewsm = true;/用于判断是否显示课程信息管理的界面public CAdd() /构造方法this.setTitle(增加 );this.setBounds(200, 200, 146, 235);p.setLayout(new FlowLayout(FlowLayout.LEFT);p.add(lcno);p.add(tcno);p.add(lcname);p.add(tcname);p.add(lpcno);p.add(tpcno);p.add(btnOK);p.add(btnCancel);this.add(p);this
11、.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);btnOK.addActionListener(this);btnCancel.addActionListener(this);this.show();public void connDB() /连接数据库精选资料,欢迎下载。try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); catch (ClassNotFoundException e) e.printStackTrac
12、e();try con = DriverManager.getConnection( jdbc:sqlserver:/localhost:1433; DatabaseName=student, sa, 123);stmt = con.createStatement(); catch (SQLException e) e.printStackTrace();public void closeDB() /关闭连接try stmt.close();con.close(); catch (SQLException e) e.printStackTrace();public void insertst(
13、) /插入记录String kch = null;String kcm = null;String xxkch=null;kch = tcno.getText();kcm = tcname.getText();xxkch=tpcno.getText();if (this.getTitle() = 修改 ) /如果是修改记录,先删除再增加try this.connDB();int rs1 = stmt.executeUpdate(delete from c where cno=+ kch + ); catch (SQLException e) e.printStackTrace();精选资料,欢
14、迎下载。String str = insert into c values( + kch + , + kcm + ,+ xxkch + );this.connDB();/连接数据库try stmt.executeUpdate(str);JOptionPane.showMessageDialog(null, this.getTitle() + 成功! , 提示 , JOptionPane.INFORMATION_MESSAGE, new ImageIcon( menu4.gif);this.setVisible(false);catch (SQLException e) JOptionPane.
15、showMessageDialog(null, 课程号已存在! ); tcno.setText();public void actionPerformed(ActionEvent e) if (e.getActionCommand() = 确定 ) this.insertst();if (isNewsm) new CM( 课程信息管理 ).display();isNewsm = true;if (e.getActionCommand() = 取消 ) this.setVisible(false);new CM( 课程信息管理).display();import java.awt.Compone
16、nt;精选资料,欢迎下载。import java.awt.FlowLayout;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.TableCellRenderer;class CM extends JFrame implements ActionListener /课程信息管理JPanel p = new JPanel();JButton btnAdd = new JButton(增加 );JButton btnDelete =
17、new JButton(删除 );JButton btnAlter = new JButton(修改 );JButton btnSearch = new JButton(查询 );JButton btnDisplay = new JButton(显示 );JMenuBar mb = new JMenuBar();JPanel p1 = new JPanel();JTable sTable;JScrollPane scroll;Connection con = null;Statement stmt = null;ResultSet rs = null;Object playerInfo;CSe
18、lect cst;String mkch = null;boolean bstd = false;CM(String title) /构造方法super(title);add(South, p);this.add(Center, p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);this.connDB();/连接数据库this.setBounds(200, 200, 400, 260);btnAdd.addActionListener(this);btnDelet
19、e.addActionListener(this);btnAlter.addActionListener(this);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);/ this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);精选资料,欢迎下载。this.setResizable(false);show();CM(CSelect cst, String title) /构造方法super(title);this.cs
20、t = cst;bstd = true;add(South, p);this.add(Center, p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);this.connDB();this.setBounds(200, 200, 400, 260);btnAdd.addActionListener(this);btnDelete.addActionListener(this);btnAlter.addActionListener(this);btnSearch.a
21、ddActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);/ this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setResizable(false);show();public void display() /显示所有的课程信息int i = 0;int j = 0;int k = 0;List al = new ArrayList();try rs = stmt.executeQuery(select * from c);wh
22、ile (rs.next() /找出表中的记录数赋给ial.add(rs.getString(cno);al.add(rs.getString(cn);al.add(rs.getString(pcno);i+; catch (SQLException e) 精选资料,欢迎下载。e.printStackTrace();playerInfo = new Objecti3;String columnNames = 课程号 , 课程名 , 先行课程号 ;try rs = stmt.executeQuery(select * from c order by cno);while (rs.next() p
23、layerInfoj0 = rs.getString(cno);playerInfoj1 = rs.getString(cn);playerInfoj2 = rs.getString(pcno);j+; catch (SQLException e) e.printStackTrace();sTable = new JTable(playerInfo, columnNames);/ 创建网格 p1.add(sTable);scroll = new JScrollPane(sTable);this.add(scroll);public void connDB() /连接数据库try Class.f
24、orName(com.microsoft.sqlserver.jdbc.SQLServerDriver); catch (ClassNotFoundException e) e.printStackTrace();try con = DriverManager.getConnection( jdbc:sqlserver:/localhost:1433; DatabaseName=student, sa, 123);stmt = con.createStatement(); catch (SQLException e) e.printStackTrace();public void closeD
25、B() /关闭连接try stmt.close();con.close();精选资料,欢迎下载。 catch (SQLException e) e.printStackTrace();public void delete() /删除某个课程信息String kch = null;String kcm = null;String xxkch = null;int row = -1;row = sTable.getSelectedRow();if (row = -1) /判断要删除的信息是否被选中JOptionPane.showMessageDialog(null, 请选择要删除的记录! ); e
26、lse if (!bstd) /判断选择的是不是查询后的结果int j1 = 0;try rs = stmt.executeQuery(select * from c);while (rs.next() & j1 = row) /找出当前被选中的记录在数据库中的对应kch = rs.getString(cno);kcm = rs.getString(cn);xxkch = rs.getString(pcno);j1+; catch (SQLException e) e.printStackTrace();int i1 = 0;try int rs1 = stmt.executeUpdate(d
27、elete from c where cno=+ kch + );/删除数据库中当前被选中的记录JOptionPane.showMessageDialog(null, 记录删除成功! ); this.dispose();new CM( 课程信息管理).display(); catch (SQLException e) e.printStackTrace(); else try int rs1 = stmt.executeUpdate(delete from c where cno=+ mkch + );/删除数据库中当前被选中的记录精选资料,欢迎下载。JOptionPane.showMessa
28、geDialog(null, 记录删除成功!);this.dispose();new CM( 课程信息管理).display(); catch (SQLException e) e.printStackTrace();public void update() /修改某个课程记录String kch = null;String kcm = null;String xxkch = null;int row = -1;row = sTable.getSelectedRow();if (row = -1) JOptionPane.showMessageDialog(null, 请选择要修改的记录! )
29、; else int j1 = 0;try if (!bstd) /判断选择的是不是查询后的结果rs = stmt.executeQuery(select * from c); else rs = stmt.executeQuery(select * from c where cno= + mkch+ );while (rs.next() & j1 = row) /找出当前被选中的记录在数据库中的对应kch = rs.getString(cno);kcm = rs.getString(cn);xxkch = rs.getString(pcno);j1+; catch (SQLException
30、 e) e.printStackTrace();CAdd cadd = new CAdd();cadd.setTitle(修改 );cadd.tcno.setText(kch);cadd.tcname.setText(kcm);cadd.tpcno.setText(xxkch);精选资料,欢迎下载。cadd.tcno.setEnabled(false);this.dispose();public void select() /显示某个查询的结果mkch = cst.kch;playerInfo = new Object13;String columnNames = 课程号 , 课程名 , 先行
31、课程号 ; try rs = stmt.executeQuery(select * from c where cno= + mkch + ); while (rs.next() playerInfo00 = rs.getString(cno);playerInfo01 = rs.getString(cn);playerInfo02 = rs.getString(pcno); catch (SQLException e) e.printStackTrace();if (playerInfo01 = null) this.dispose();JOptionPane.showMessageDialo
32、g(null, 课程号不存在! ); new CM( 课程信息管理 ).display(); else sTable = new JTable(playerInfo, columnNames);/ 创建网格 p1.add(sTable);scroll = new JScrollPane(sTable);this.add(scroll);public void actionPerformed(ActionEvent e) if (e.getActionCommand() = 增加 ) new CAdd();this.dispose();if (e.getActionCommand() = 删除
33、) this.delete();if (e.getActionCommand() = 修改 ) this.update();精选资料,欢迎下载。if (e.getActionCommand() = 查询 ) cst = new CSelect();this.dispose();if (e.getActionCommand() = 显示 ) this.dispose();new CM( 课程信息管理).display();import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import
34、java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.*;public class CSelect extends JFrame implements ActionListener /用于课程信息管理中查询时输入课程号的界面JLabel ltitle = new JLabel(课程号: );JTextField tcno = new JTextField(8);JButton btnOK = new JButton(确定 );JPanel p = new JPan
35、el();String kch = null;public CSelect() /构造方法p.add(ltitle);p.add(tcno);p.add(btnOK);add(p);this.setBounds(300, 280, 200, 160);btnOK.addActionListener(this);this.setResizable(false);this.show();精选资料,欢迎下载。public void actionPerformed(ActionEvent e) kch = tcno.getText();/取得当前输入课程号的值if (kch.equals() /判断是
36、否输入了课程号JOptionPane.showMessageDialog(null, 课程号不能为空,请重新输入!); else this.dispose();new CM(this, 课程信息管理).select();import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;class DLFrame extends JFrame implements ActionListener, ItemListener /登录界面JPanel p1 = null;JPanel p2 = null;J
37、Panel p3 = null;JLabel userName = new JLabel(用户: );JTextField txtUser = new JTextField();JLabel password = new JLabel(密码: );JPasswordField txtPwd = new JPasswordField(6);JLabel role = new JLabel(角色: );JComboBox cbrole = new JComboBox();JButton btnLogin = new JButton(登录 );JButton btncz = new JButton(
38、重置 );JButton btnCancel = new JButton(取消 );JLabel imageLabel;Icon image;static int OK = 1;static int CANCEL = 0;精选资料,欢迎下载。int actionCode = 0;Connection con = null;Statement stmt = null;ResultSet rs = null;int qxian = 0;public DLFrame() /构造方法super( 登录界面 );p1 = new JPanel();p2 = new JPanel();p3 = new J
39、Panel();cbrole.addItem(管理员 );cbrole.addItem(学生 );image = new ImageIcon(picturest.jpg);imageLabel = new JLabel(image);p1.add(imageLabel);this.setLayout(new FlowLayout();this.setBounds(100, 100, 246, 345);p2.setLayout(new GridLayout(4, 2);p2.add(userName);p2.add(txtUser);p2.add(password);p2.add(txtPwd
40、);p2.add(role);p2.add(cbrole);p3.add(btnLogin);p3.add(btncz);p3.add(btnCancel);this.add(p1);this.add(p2);this.add(p3);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.show();btnLogin.addActionListener(this);cbrole.addItemListener(this);btncz.addActionListener(this);b
41、tnCancel.addActionListener(this);public void connDB() /连接数据库try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); catch (ClassNotFoundException e) 精选资料,欢迎下载。e.printStackTrace();try con = DriverManager.getConnection( jdbc:sqlserver:/localhost:1433; DatabaseName=student, sa, 123);stmt = con
42、.createStatement(); catch (SQLException e) e.printStackTrace();public void closeDB() /关闭连接try stmt.close();con.close(); catch (SQLException e) e.printStackTrace();public void itemStateChanged(ItemEvent e) if (e.getStateChange() = ItemEvent.SELECTED) JComboBox jcb = (JComboBox) e.getSource();qxian =
43、jcb.getSelectedIndex();public void actionPerformed(ActionEvent e) Object source = e.getSource();String un = null;String pw = null;boolean success = false;/用于判断是否登录成功if (source = btnLogin) if (txtUser.getText().equals()| txtPwd.getText().equals()/判断是否输入了用户名和密码JOptionPane.showMessageDialog(null, 登录名和密码不能为空!); else this.connDB();try rs = stmt.executeQuery(select * from unpw where qx=+ qxian);while (rs.next() 精选资料,欢迎下载。un = rs.getString(un).trim();pw = rs.getString(pw).trim();if (txtUser.getText().equals(un) if (txtPwd.getText().equals(pw) actionCode = OK;this.set
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土方施工合同协议书
- 合作建房付款协议书
- 分家分割财产协议书
- 员工持股合伙协议书
- 厄瓜多尔贷款协议书
- 双方互相了解协议书
- 公司物资出售协议书
- 合伙投资分房协议书
- 咖啡合伙企业协议书
- 土地置换抵押协议书
- 2023年04月江苏南京师范大学附属中学公开招聘教科室文员1人笔试参考题库附答案详解
- 监事会成员任职决定
- 线段的垂直平分线 课件
- 桌面运维工程师能力试卷试卷题库面试版本
- 工业园区物业保洁工作作业指导手册
- 消防安全工作例会制度
- GB/T 9634.4-2007铁氧体磁心表面缺陷极限导则第4部分:环形磁心
- 2022年阜宁县(中小学、幼儿园)教师招聘考试《教育综合知识》试题及答案解析
- GB/T 15608-2006中国颜色体系
- 95598工单大数据分析及压降策略
- 《游园不值》-完整版课件
评论
0/150
提交评论