学生信息管理系统(完整)
(完整版)学生信息管理系统数据流图

管理学生模块据流图:管理老师模块数据流图:选课管理与成绩管理模块数据流图:数据字典数据流描述:数据流名:查询条件数据来源:学生登录处理数据去向:学生信息表说明:通过合适的查询条件,输出学生的信息数据组成:学号+姓名数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:课程安排信息数据来源:管理员制定的课程管理信息数据去向:学生课程安排信息说明:用于管理学生的课程安排信息数据组成:课程号代+课程名+代课老师+学分+时间数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:录入成绩数据来源:老师对课程的考核方式数据去向:学生成绩管理说明:录入学生的选课的成绩信息数据组成:学号+姓名+课程名+成绩+学分数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:录入课程数据来源:管理员制定的课程信息数据去向:学生选课管理说明:录入学生选择的课程数据组成:课程代号+课程名+出版社数据流量:早晨9点到中午12点,下午14点到17点数据流量小数据流名:学生基本信息数据来源:管理员对学生的信息的管理数据去向:学生与老师及管理员得到学生的基本信息说明:查询学生的基本信息数据组成:学号+姓名+性别+民族+出生日期+系别+专业+年级+籍贯数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:选课信息数据来源:老师输入到选课管理中的课程信息数据去向:学生的选课信息与成绩管理说明:查询学生的选课信息数据组成:课程代号+课程名+学分+类别+任课老师+人数+班级数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:学生的成绩及学分数据来源:选课管理与成绩管理数据去向:学生的成绩与学分信息说明:查询学生的成绩与学分数据组成:序号+课程名+学分+类别+考核方式+成绩+辅修标记数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:老师信息数据来源:管理老师数据去向:老师查询自身的信息说明:查询老师的基本信息数据组成:老师编号+姓名+性别+职称+出生日期+院系+籍贯+电话数据流量:早晨9点到中午12点,下午14点到17点数据流量小数据流名:课程信息数据来源:管理员课程管理数据去向:学生的课程安排说明:管理员对课程信息的管理数据组成:课程代号+课程名+出版社+作者+专业+系别+年级数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:管理员信息数据来源:管理员信息管理数据去向:管理员对自身的信息查询说明:管理员的基本信息数据组成:姓名+性别+民族+出生年月+籍贯+电话+职称数据流量:早晨9点到中午12点,下午14点到17点数据流量小数据流名:学生课程安排信息数据来源:管理课程对课程信息的录入数据去向:学生的选课信息说明:学生的课程安排数据组成:课程号代+课程名+代课老师+学分+时间数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:学生成绩信息数据来源:老师对课程考核方式数据去向:学生对成绩信息的查询说明:学生对选中课程的成绩查询数据组成:序号+课程名+学分+类别+考核方式+成绩+辅修标记数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:学生选课信息数据来源:管理员对课程的制定数据去向:学生选课管理说明:学生查询选中的课程信息数据组成:课程代号+课程名+学分+类别+任课老师+人数+班级数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:选课统计数据来源:选课管理数据去向:成绩管理说明:对选中课程的学生做出统计数据组成:课程代号+课程名+任课老师+人数+班级数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:选课查询数据来源:管理元制定的课程数据去向:学生选课管理说明:学生查询选中的课程信息数据组成:课程代号+课程名+学分+类别+任课老师+人数+班级数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:成绩查询数据来源:老师对选课的考核方式数据去向:学生成绩管理说明:学生查询选中课程成绩信息数据组成:序号+课程名+学分+类别+考核方式+成绩+辅修标记数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:成绩信息数据来源:老师对选课的考核方式数据去向:学生成绩管理说明:学生查询选中课程成绩信息数据组成:序号+课程名+学分+类别+考核方式+成绩+辅修标记数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据元素词条描述:学生信息表:属性名字段名称数据类型长度备注学号Xs_xh Char 6 主键姓名Xs_xm char 8 不空性别Xs_xb bit 2 不空民族Xs_mz char 4 不空出生日期Xs_csrq smalldatetime 20 不空系别Xs_xib char 4 不空专业Xs_zy char 8 不空年级Xs_nj char 8 不空籍贯Xs_jg char 50 不空名称:学生信息表别名:描述:反应学生基本信息情况定义:学生信息表=学号+姓名+性别+民族+出生日期+系别+专业+年级+籍贯位置:学生信息的录入学生信息的查询学生信息的修改课程信息表:属性名字段名称数据类型长度备注课程代号Kc_dh char 6 主键课程编号Kc_bh char 6 不空课程类型Kc_lx char 8 不空学分Kc_xf int 2 不空学时Kc_xs int 2 不空名称:课程信息表别名:描述:反应课程基本信息定义:课程信息表=课程代号+课程编号+课程类型+学分+学时位置:课程信息的录入课程信息的查询课程信息的修改成绩信息表:属性名字段名称数据类型长度备注序号Cj_xh int 2 不空课程号Cj_kch char 6 主键学分Cj_xf int 2 不空类型Cj_lx char 6 不空考核方式Cj_khfs char 8 不空成绩Cj_cj int 2 不空辅修标记Cj_bj char 6 不空名称:成绩信息表别名:描述:反应成绩基本信息定义:成绩信息表=序号+课程名+学分+类别+考核方式+成绩+辅修标记位置:成绩信息录入成信息的查询成绩信息修改选课信息表:属性名字段名称数据类型长度备注课程代号Xk_dh char 6 主键课程名Xk_kcm char 8 不空学分Xk_xf int 2 不空类别Xk_lb char 6 不空任课老师Xk_dkls char 6 不空人数Xk_rs int 2 不空班级Xk_bj char 6 不空名称:选课信息表别名:描述:反应选课基本信息定义:选课信息表=课程代号+课程名+学分+类别+任课老师+人数+班级位置:选课信息录入选课息的查询选课信息修改老师信息表:属性名字段名称数据类型长度备注老师编号Ls_bh char 6 主键姓名Ls_xm char 6 不空性别Ls_xb bit 2 不空出生日期Ls_csrq smalldatetime 20 不空职称Ls_zc char 8 不空院系Ls_yx char 6 不空籍贯Ls_jg char 50 不空电话Ls_dh char 12 不空名称:老师信息表别名:描述:反应老师基本信息定义:老师信息表=老师编号+姓名+性别+职称+出生日期+院系+籍贯+电话位置:老师信息录入老师信息查询老师信息修改课程安排信息表:属性名字段名称数据类型长度备注年级Kcap_zy char 6 不空专业Kcap_nj char 8 不空班级Kcap_bj char 6 不空院系Kcap_yx char 6 不空周数Kcap_zs int 2 不空内容Kcap_nr char 12 不空名称:课程安排信息表别名:描述:反应课程安排基本信息定义:课程安排信息表=年级+专业+班级+院系+周数+内容位置:课程安排信息录入课程安排信息查询课程安排信息修改管理员信息表:属性名字段名称数据类型长度备注姓名Gl_xm char 6 不空性别Gl_xb bit 2 不空职称Gl_zc char 6 不空民族Gl_mz char 4 不空出生日期Gl_csrq smalldatetime 20 不空电话Gl_dh char 12 不空籍贯Gl_jg char 50 不空名称:管理员信息表别名:描述:反应管理员基本信息定义:管理员信息表=姓名+性别+民族+出生年月+籍贯+电话+职称位置:管理员信息录入管理员信息查询管理员信息修改管理学生:属性名字段名称数据类型长度备注学号Xs_xh Char 6 主键姓名Xs_xm char 8 不空性别Xs_xb bit 2 不空民族Xs_mz char 4 不空出生日期Xs_csrq smalldatetime 20 不空系别Xs_xib char 4 不空专业Xs_zy char 8 不空年级Xs_nj char 8 不空籍贯Xs_jg char 50 不空名称:学生信息表别名:描述:反应学生基本信息情况定义:管理学生=学号+姓名+性别+民族+出生日期+系别+专业+年级+籍贯位置:学生信息的录入学生信息的查询学生信息的修改管理老师:属性名字段名称数据类型长度备注老师编号Ls_bh char 6 主键姓名Ls_xm char 6 不空性别Ls_xb bit 2 不空出生日期Ls_csrq smalldatetime 20 不空职称Ls_zc char 8 不空院系Ls_yx char 6 不空籍贯Ls_jg char 50 不空电话Ls_dh char 12 不空名称:管理老师别名:描述:反应老师基本信息定义:管理老师=老师编号+姓名+性别+职称+出生日期+院系+籍贯+电话位置:老师信息录入老师信息查询老师信息修改管理员信息:属性名字段名称数据类型长度备注姓名Gl_xm char 6 不空性别Gl_xb bit 2 不空职称Gl_zc char 6 不空民族Gl_mz char 4 不空出生日期Gl_csrq smalldatetime 20 不空电话Gl_dh char 12 不空籍贯Gl_jg char 50 不空名称:管理员信息别名:描述:反应管理员基本信息定义:管理员信息=姓名+性别+民族+出生年月+籍贯+电话+职称位置:管理员信息录入管理员信息查询管理员信息修改管理课程:属性名字段名称数据类型长度备注课程代号Kc_dh char 6 主键课程编号Kc_bh char 6 不空课程类型Kc_lx char 8 不空学分Kc_xf int 2 不空学时Kc_xs int 2 不空名称:管理课程别名:描述:反应课程基本信息定义:管理课程=课程代号+课程编号+课程类型+学分+学时位置:课程信息的录入课程信息的查询课程信息的修改选课管理:属性名字段名称数据类型长度备注课程代号Xk_dh char 6 主键课程名Xk_kcm char 8 不空学分Xk_xf int 2 不空类别Xk_lb char 6 不空任课老师Xk_dkls char 6 不空人数Xk_rs int 2 不空班级Xk_bj char 6 不空名称:选课管理别名:描述:反应选课基本信息定义:选课管理=课程代号+课程名+学分+类别+任课老师+人数+班级位置:选课信息录入选课息的查询选课信息修改成绩管理:属性名字段名称数据类型长度备注序号Cj_xh int 2 不空课程号Cj_kch char 6 主键学分Cj_xf int 2 不空类型Cj_lx char 6 不空考核方式Cj_khfs char 8 不空成绩Cj_cj int 2 不空辅修标记Cj_bj char 6 不空名称:成绩管理别名:描述:反应成绩基本信息定义:成绩管理=序号+课程名+学分+类别+考核方式+成绩+辅修标记位置:成绩信息录入成信息的查询成绩信息修改课程安排管理:属性名字段名称数据类型长度备注课程代号Kc_dh char 6 主键课程编号Kc_bh char 6 不空课程类型Kc_lx char 8 不空学分Kc_xf int 2 不空学时Kc_xs int 2 不空名称:课程安排管理别名:描述:反应课程基本信息定义:课程安排管理=课程代号+课程编号+课程类型+学分+学时位置:课程安排信息的录入课程安排信息的查询课程安排信息的修改增加学生:属性名字段名称数据类型长度备注学号Xs_xh Char 6 主键姓名Xs_xm char 8 不空性别Xs_xb bit 2 不空民族Xs_mz char 4 不空出生日期Xs_csrq smalldatetime 20 不空系别Xs_xib char 4 不空专业Xs_zy char 8 不空年级Xs_nj char 8 不空籍贯Xs_jg char 50 不空名称:增加学生编号:1.1别名:描述:反应学入生基本信息情况定义:增加学生=学号+姓名+性别+民族+出生日期+系别+专业+年级+籍贯位置:新增学生信息的录入新增学生信息的查询新增学生信息的修改删除学生属性名字段名称数据类型长度备注学号Xs_xh Char 6 主键姓名Xs_xm char 8 不空性别Xs_xb bit 2 不空民族Xs_mz char 4 不空出生日期Xs_csrq smalldatetime 20 不空系别Xs_xib char 4 不空专业Xs_zy char 8 不空年级Xs_nj char 8 不空籍贯Xs_jg char 50 不空名称:删除学生编号:1.2别名:描述:反应毕业学生基本信息情况定义:删除学生=学号+姓名+性别+民族+出生日期+系别+专业+年级+籍贯位置:毕业学生信息的修改毕业学生信息的查询增加老师:属性名字段名称数据类型长度备注老师编号Ls_bh char 6 主键姓名Ls_xm char 6 不空性别Ls_xb bit 2 不空出生日期Ls_csrq smalldatetime 20 不空职称Ls_zc char 8 不空院系Ls_yx char 6 不空籍贯Ls_jg char 50 不空电话Ls_dh char 12 不空名称:增加老师编号:2.1别名:描述:反应新增老师基本信息定义:增加老师=老师编号+姓名+性别+职称+出生日期+院系+籍贯+电话位置:新增老师信息录入新增老师信息查询新增老师信息修改删除老师:属性名字段名称数据类型长度备注老师编号Ls_bh char 6 主键姓名Ls_xm char 6 不空性别Ls_xb bit 2 不空出生日期Ls_csrq smalldatetime 20 不空职称Ls_zc char 8 不空院系Ls_yx char 6 不空籍贯Ls_jg char 50 不空电话Ls_dh char 12 不空名称:删除老师编号:2.2别名:描述:反应离职老师基本信息定义:删除老师=老师编号+姓名+性别+职称+出生日期+院系+籍贯+电话位置:离职老师信息查询离职老师信息修改选中课程:属性名字段名称数据类型长度备注课程代号Kc_dh char 6 主键课程编号Kc_bh char 6 不空课程类型Kc_lx char 8 不空学分Kc_xf int 2 不空学时Kc_xs int 2 不空名称:选中课程编号:3.1别名:描述:反应选中课程基本信息定义:选中课程=课程代号+课程编号+课程类型+学分+学时位置:选中课程信息的录入选中课程信息的查询选中课程信息的修改退选课程:属性名字段名称数据类型长度备注课程代号Kc_dh char 6 主键课程编号Kc_bh char 6 不空课程类型Kc_lx char 8 不空学分Kc_xf int 2 不空学时Kc_xs int 2 不空名称:退选课程编号:3.2别名:描述:反应退选课程基本信息定义:退选课程=课程代号+课程编号+课程类型+学分+学时位置:退选课程信息的修改退选课程信息的查询总成绩:属性名字段名称数据类型长度备注序号Cj_xh int 2 不空课程号Cj_kch char 6 主键学分Cj_xf int 2 不空类型Cj_lx char 6 不空考核方式Cj_khfs char 8 不空成绩Cj_cj int 2 不空辅修标记Cj_bj char 6 不空名称:总成绩编号:4.1别名:描述:反应成绩基本信息定义:总成绩=序号+课程名+学分+类别+考核方式+成绩+辅修标记位置:总成绩信息录入总成信息的查询总成绩信息修改总学分:属性名字段名称数据类型长度备注序号Cj_xh int 2 不空课程号Cj_kch char 6 主键学分Cj_xf int 2 不空类型Cj_lx char 6 不空考核方式Cj_khfs char 8 不空成绩Cj_cj int 2 不空辅修标记Cj_bj char 6 不空名称:总学分编号:4.2别名:描述:反应学分基本信息定义:总学分=序号+课程名+学分+类别+考核方式+成绩+辅修标记位置::总学分信息录入总学分的查询总学分信息修改。
学生信息管理系统完整源代码+mysql文件

数据库所用的数据自己导入MYSQL5.5,Navicat8就可以用了。
下面是具体的数据资料/*MySQL Data TransferSource Host: localhostSource Database: simsTarget Host: localhostTarget Database: simsDate: 2013-6-25 9:24:26*/SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for manager-- ----------------------------DROP TABLE IF EXISTS `manager`;CREATE TABLE `manager` (`id` varchar(10) NOT NULL,`name` varchar(30) NOT NULL,`Mima` varchar(20) NOT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ------------------------------ Table structure for studentinfo-- ----------------------------DROP TABLE IF EXISTS `studentinfo`;CREATE TABLE `studentinfo` (`Sname` varchar(30) NOT NULL,`Ssex` varchar(10) NOTNULL,`Snumber` varchar(10) NOT NULL,`Sprofession` varchar(30) NOT NULL,`Sclass`varchar(20) NOT NULL,`Sdate` varchar(30) character set utf8 collate utf8_unicode_ciNOT NULL,PRIMARY KEY (`Snumber`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='InnoDBfree: 4096 kB';-- ------------------------------ Table structure for userinfo-- ----------------------------DROP TABLE IF EXISTS `userinfo`;CREATE TABLE `userinfo` (`id` varchar(10) NOT NULL,`name` varchar(30) NOT NULL,`Mima` varchar(20) character set utf8 collate utf8_unicode_ci NOT NULL, PRIMARY KEY(`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ------------------------------ Records-- ----------------------------INSERT INTO `manager` VALUES ('1', '1', '2');INSERT INTO `manager` VALUES ('2', '恩恩', '123456');INSERT INTO `manager` VALUES ('3', '大大', '123456');INSERT INTO `manager` VALUES ('4', '啊啊', '123456');INSERT INTO `manager` VALUES ('5', '5', '5');INSERT INTO `manager` VALUES ('6', '孙霞', '123456');INSERT INTO `studentinfo` V ALUES ('张三', '男', '2010303755', '数学', '2', '2010-02- 12');INSERT INTO `studentinfo` V ALUES ('李四', '男', '2010303760', '物理', '1', '1995.9.6'); INSERT INTO `studentinfo` V ALUES ('王二', '女', '2010303761', '应数', '2','1990.9.11');INSERT INTO `studentinfo` V ALUES ('麻子', '女', '2010303762', '信计', '1','1999.9.10');INSERT INTO `userinfo` V ALUES ('1', '1', '1');INSERT INTO `userinfo` V ALUES ('13', '13', '1');INSERT INTO `userinfo` V ALUES ('2', '2', '2');INSERT INTO `userinfo` V ALUES ('3', '3', '3');INSERT INTO `userinfo` V ALUES ('6', '6', '6');INSERT INTO `userinfo` V ALUES ('7', '7', '6');下面是相应的程序:package MS;import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.GridLayout;import java.awt.Toolkit;import java.awt.event.FocusEvent;import java.awt.event.FocusListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingConstants;public class Add implements ActionListener {JFrame f1;Container ct;JPanel jp,jp1,jp2,jp3;JButton btn1,btn2;JLabel label;JTextField tf1,tf2,tf3,tf4,tf5,tf6;Add(){f1=new JFrame();ct=f1.getContentPane();//初始化面板jp=new JPanel();jp1=new JPanel(new GridLayout(6,1));jp2=new JPanel(new GridLayout(6,1));jp3=new JPanel();btn1=new JButton("确定");btn2=new JButton("取消");label=new JLabel("<html><font color=#CC00FF size='4'>添加学生信息</font>",SwingConstants.CENTER);label.setForeground(Color.gray);tf1=new JTextField(20);tf2=new JTextField(20);tf3=new JTextField(20);tf4=new JTextField(20);tf5=new JTextField(20);tf6=new JTextField(20);tf6.setText("例:2000-02-02");//文本框加入提示语tf6.addFocusListener(new FocusListener(){public void focusGained(FocusEvent e) {tf6.setText("");}public void focusLost(FocusEvent e) {}});jp.add(label);ct.add(jp,"North");jp1.add(new JLabel("姓名",SwingConstants.CENTER));jp2.add(tf1);jp1.add(new JLabel("性别",SwingConstants.CENTER));jp2.add(tf2);jp1.add(new JLabel("学号",SwingConstants.CENTER));jp2.add(tf3);jp1.add(new JLabel("专业",SwingConstants.CENTER));jp2.add(tf4);jp1.add(new JLabel("班级",SwingConstants.CENTER));jp2.add(tf5);jp1.add(new JLabel("入学时间",SwingConstants.CENTER));jp2.add(tf6);jp3.add(btn1);jp3.add(btn2);ct.add(jp1,"West");ct.add(jp2,"East");ct.add(jp3,"South");Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width;int y=screen.height;f1.setSize(350,330);int xcenter=(x-350)/2;int ycenter=(y-330)/2;f1.setLocation(xcenter, ycenter);f1.setVisible(true);//f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);btn1.addActionListener(this);btn2.addActionListener(this);}public void insert(){if(tf1.getText().equals("")||tf2.getText().equals("")||tf3.getText().equals("")||tf4.getText().equals("")||tf5.getText().equals("")||tf6.getText().equals("")){JOptionPane.showMessageDialog(f1,"请填写完整信息");return;}try{Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundException e){System.out.print("加载驱动程序失败");}String conURL="jdbc:mysql://localhost:3306/sims";try{Connectioncon=DriverManager.getConnection(conURL,"root","123456");Statement st=con.createStatement();String s="insert into studentinfo values('"+tf1.getText()+"','"+tf2.getText()+"','"+tf3.getText()+"','"+tf4.getText()+"','"+tf5.getText()+"','"+tf6.getText()+"');";String query="select * from studentinfo where Snumber='"+tf3.getText().trim()+"'";ResultSet res=st.executeQuery(query);if(res.next()){JOptionPane.showMessageDialog(f1,"学号信息已经存在!");con.close();tf3.setText("");}else if(tf6.getText().length()!=10){JOptionPane.showMessageDialog(f1,"入学时间格式有误!");con.close();tf6.setText("");}int insert=st.executeUpdate(s);if(insert==1){JOptionPane.showMessageDialog(f1,"录入信息成功!");tf1.setText("");tf2.setText("");tf3.setText("");tf4.setText("");tf5.setText("");tf6.setText("");}}catch(SQLException e){System.out.println("错误代码:"+e.getErrorCode());System.out.println("错误信息:"+e.getMessage());}}@SuppressWarnings("deprecation")public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if(cmd.equals("确定")){insert();}else if(cmd.equals("取消")){f1.hide();}}public Container getCt(){return ct;}public void setCt(Container ct){this.ct = ct;}}package MS;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.SwingConstants;public class Delete implements ActionListener {JFrame f2;Container ct;JPanel jp1,jp2,jp3,jp4;JLabel label;JTextField text;JTable table;//接收数据库中返回的信息JButton btn1,btn2,btn3;Object columnName[]={"姓名","性别","学号","专业","班级","入学时间"};Object ar[][]=new Object[80][6];Delete(){f2=new JFrame();ct=f2.getContentPane();jp1=new JPanel();jp2=new JPanel();jp3=new JPanel();jp4=new JPanel();label=new JLabel();text=new JTextField();btn1=new JButton("查询");btn2=new JButton("删除");btn3=new JButton("取消");label=new JLabel("<html><font color=#CC00FF size='4'>请输入要删除的学生姓名:</font>",SwingConstants.CENTER);label.setBackground(Color.blue);table=new JTable(ar,columnName);JScrollPane scroll=new JScrollPane(table);text=new JTextField(20);jp2.add(btn1);jp2.add(btn2);jp2.add(btn3);jp1.add(label);jp1.add(text);ct.add(jp1,"North");jp3.setLayout(new BorderLayout());jp3.add(new JLabel("学生信息如下"));jp3.add(scroll);ct.add(jp2,"South");ct.add(jp3,"Center");Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width;int y=screen.height;f2.setSize(450, 400);int xcenter=(x-450)/2;int ycenter=(y-400)/2;f2.setLocation(xcenter, ycenter);f2.setVisible(true);//f2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);btn1.addActionListener(this);btn2.addActionListener(this);btn3.addActionListener(this);}int i=0;public void show(String s){while(i>=0){ar[i][0]="";ar[i][1]="";ar[i][2]="";ar[i][3]="";ar[i][4]="";ar[i][5]="";i--;}i=0;try{Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundException e){System.out.print("加载驱动程序失败");}String conURL="jdbc:mysql://localhost:3306/sims";try{Connection con=DriverManager.getConnection(conURL,"root","123456");Statement st=con.createStatement();String sql="select * from studentinfo where Sname='"+s+"'";ResultSet res=st.executeQuery(sql);/*if(!(res.next())){JOptionPane.showMessageDialog(f,"所要查询的信息不存在");} */while(res.next()){String sName=res.getString(1);String sSex=res.getString(2);String sNumber=res.getString(3);String sProfession=res.getString(4);String sClass=res.getString(5);String sDate=res.getString(6);ar[i][0]=sName;ar[i][1]=sSex;ar[i][2]=sNumber;ar[i][3]=sProfession;ar[i][4]=sClass;ar[i][5]=sDate;i++;}f2.repaint();con.close();}catch(SQLException e){System.out.println("错误代码:"+e.getErrorCode());System.out.println("错误信息:"+e.getMessage());}}public void delete(int line){try{Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundException e){System.out.print("加载驱动程序失败");}String conURL="jdbc:mysql://localhost:3306/sims";try{Connection con=DriverManager.getConnection(conURL,"root","123456");Statement st=con.createStatement();String name=(String)(ar[line][2]);String sql="delete from studentinfo where Snumber ='"+name+"'";int del=st.executeUpdate(sql);if(del==1){ar[line][0]="";ar[line][1]="";ar[line][2]="";ar[line][3]="";ar[line][4]="";ar[line][5]="";JOptionPane.showMessageDialog(null,"删除成功!","信息", JOptionPane.YES_NO_OPTION);}con.close();f2.repaint();}catch(SQLException e){System.out.println("错误代码:"+e.getErrorCode());System.out.println("错误信息:"+e.getMessage());}}@SuppressWarnings("deprecation")public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if(cmd.equals("查询")){String qu=text.getText().trim();show(qu);}if(cmd.equals("删除")){int de=table.getSelectedRow();if(de==-1){JOptionPane.showMessageDialog(null,"请选定要删除的行","错误信息", JOptionPane.YES_NO_OPTION);}else{delete(de);}}if(cmd.equals("取消")){f2.hide();}}}package MS;import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.SwingConstants;public class Liulan implements ActionListener {JFrame f4;Container ct;JPanel jp1,jp2,jp3,jp4;JLabel label;JButton btn1,btn2;JTable table;Object[][] ar=new Object[80][6];Object[] columnName={"姓名","性别","学号","专业","班级","入学时间"};Liulan(){f4=new JFrame();ct=f4.getContentPane();jp1=new JPanel();jp2=new JPanel();jp3=new JPanel();jp4=new JPanel();btn1=new JButton("点击浏览");btn2=new JButton(" 取消");label=new JLabel("<html><font color=#00FF22 size='4'>学生信息浏览<font>",SwingConstants.CENTER);label.setBackground(Color.blue);table=new JTable(ar, columnName);JScrollPane scroll=new JScrollPane(table);jp1.add(label);jp2.add(btn1);jp2.add(btn2);jp3.add(scroll);ct.add(jp1,"North");ct.add(jp3,"Center");ct.add(jp2,"South");Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width;int y=screen.height;f4.setSize(500,530);int xcen=(x-500)/2;int ycen=(y-530)/2;f4.setLocation(xcen,ycen);f4.setVisible(true);btn1.addActionListener(this);btn2.addActionListener(this);}int i=0;public void select(){while(i>=0){ar[i][0]="";ar[i][1]="";ar[i][2]="";ar[i][3]="";ar[i][4]="";ar[i][5]="";i--;}i=0;try{Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundException e){System.out.print("加载驱动程序失败");}String conURL="jdbc:mysql://localhost:3306/sims";try{Connection con=DriverManager.getConnection(conURL,"root","123456");Statement st=con.createStatement();String s="select * from studentinfo";ResultSet res=st.executeQuery(s);while(res.next()){String sName=res.getString(1);String sSex=res.getString(2);String sNumber=res.getString(3);String sProfession=res.getString(4);String sClass=res.getString(5);String sDate=res.getString(6);ar[i][0]=sName;ar[i][1]=sSex;ar[i][2]=sNumber;ar[i][3]=sProfession;ar[i][4]=sClass;ar[i][5]=sDate;i++;}f4.repaint();con.close();}catch(SQLException e){System.out.println("错误代码:"+e.getErrorCode());System.out.println("错误信息:"+e.getMessage());}}@SuppressWarnings("deprecation")public void actionPerformed(ActionEvent e){// TODO Auto-generated method stubString cmd=e.getActionCommand();if(cmd.equals("点击浏览")){select();}else if(cmd.equals(" 取消")){f4.hide();}}}package MS;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.Connection;import java.sql.DriverManager;import javax.swing.ButtonGroup;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JRadioButton;import javax.swing.JTextField;import javax.swing.SwingConstants;@SuppressWarnings("serial")public class Login extends JFrame implements ActionListener {Container cp=null;JFrame f=null;JButton button1,button2,button3;JTextField t1;JPasswordField t2;JLabel jlable1,jlable2;JRadioButton rabtn1,rabtn2;Color c;JPanel jp1,jp2,jp3;String table=null;Login(){f=new JFrame("学生信息管理系统");button1=new JButton("确定");button2=new JButton("取消");button3=new JButton("注册");//button3.setOpaque(false);button3.setBorder(null);button3.setBackground(Color.getColor("#292421"));rabtn1=new JRadioButton("普通用户");rabtn1.setBackground(Color.getColor("#292421"));rabtn2=new JRadioButton("管理员");rabtn2.setBackground(Color.getColor("#292421"));ButtonGroup group=new ButtonGroup();group.add(rabtn1);group.add(rabtn2);cp=f.getContentPane();jlable1=new JLabel("输入用户号");jlable2=new JLabel("输入密码");jp1=new JPanel();jp2=new JPanel();jp3=new JPanel();t1=new JTextField(20);t2=new JPasswordField(20);//jp3.add(group);jp1.add(jlable1);jp1.add(t1);jp1.add(jlable2);jp1.add(t2);jp1.add(rabtn1);jp1.add(rabtn2);jp1.add(button3);JLabel JL=new JLabel("<html><font color=#292421 size='7'><i>欢迎登陆" + "</i></font>",SwingConstants.CENTER);cp.add(JL,"North");jp2.add(button1);jp2.add(button2);cp.add(jp1,"Center");cp.add("South",jp2);cp.setBackground(new Color(127, 255, 212 ));jp2.setBackground(new Color(127, 255, 212 ));jp1.setBackground(new Color(127, 255, 212 ));Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width;int y=screen.height;f.setSize(250,300);int xcenter=(x-300)/2;int ycenter=(y-300)/2;f.setLocation(xcenter,ycenter);/*显示在窗口中央*/f.setVisible(true);//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//------------------------------------------------------------///*监听事件*/button1.addActionListener(this);button2.addActionListener(this);button3.addActionListener(this);rabtn1.addItemListener(new ItemListener(){public void itemStateChanged(ItemEvent e){JRadioButton jop=(JRadioButton) e.getSource();if (jop.isSelected())table="userinfo";}});rabtn2.addItemListener(new ItemListener(){public void itemStateChanged(ItemEvent e){JRadioButton jop=(JRadioButton) e.getSource();if (jop.isSelected())table="manager";}});f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});}@SuppressWarnings("deprecation")public void confirm(String tableName){try{Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundException e){System.out.print("加载驱动程序失败");}String conURL="jdbc:mysql://localhost:3306/sims";try{Connection con=DriverManager.getConnection(conURL,"root","123456");Statement st=con.createStatement();String id=t1.getText().trim();String Mima=t2.getText().trim();String queryMima="select * from "+tableName+" where id='"+id+"' and mima='"+Mima+"'";ResultSet res=st.executeQuery(queryMima);if(res.next()){if(tableName.equals("manager"))new Mstudent(id);else if(tableName.equals("userinfo"))new Ustudent(id);f.hide();con.close();}else{JOptionPane.showMessageDialog(null,"密码错误请重输!!!","提示!",JOptionPane.YES_NO_OPTION);}t1.setText("");t2.setText("");}catch(SQLException g){System.out.println("错误代码:"+g.getErrorCode());System.out.println("错误内容:"+g.getMessage());}}ItemListener listen=new ItemListener(){public void itemStateChanged(ItemEvent e) {// TODO Auto-generated method stub}};public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if(cmd.equals("确定")){if(table==null){JOptionPane.showMessageDialog(f,"请选择用户类型");}confirm(table);}else if(cmd.equals("取消")){f.dispose();}else if(cmd.equals("注册")){new Regist();}}public static void main(String []arg){new Login();}}package MS;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenuBar;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.SwingConstants;import javax.swing.border.TitledBorder;@SuppressWarnings("serial")public class Mstudent extends JFrame implements ActionListener {JButton Query = new JButton("查询信息");JButton add = new JButton("添加信息");JButton delete = new JButton("删除信息");JButton xiugai = new JButton("浏览全部信息");JButton liulan = new JButton("修改密码");JMenuBar mb = new JMenuBar();// 菜单栏JPanel jp = new JPanel();Container cp = getContentPane();String userName;Mstudent(){}Mstudent(String userName){erName = userName;mb.add(Query);mb.add(add);mb.add(delete);mb.add(xiugai);mb.add(liulan);JPanel j=new JPanel();j.add(mb,"Center");cp.add(j, "North");// 设置边框jp.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.blue, 2), null, TitledBorder.CENTER,TitledBorder.TOP));jp.setLayout(new BorderLayout());JLabel label1 = new JLabel("欢迎使用学生信息管理系统",SwingConstants.CENTER);jp.add(label1);JScrollPane scrollpane = new JScrollPane(jp);cp.add(scrollpane,"Center");setTitle("欢迎登陆" + "--" + "你好:" + userName);Toolkit kit = Toolkit.getDefaultToolkit();Dimension screen = kit.getScreenSize();int x = screen.width; /* 取得显示器窗口的宽度*/int y = screen.height; /* 取得显示器窗口的高度*/setSize(600, 600);int xcenter = (x - 600) / 2;int ycenter = (y - 600) / 2;setLocation(xcenter, ycenter);/* 显示在窗口中央*/setVisible(true);//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 注册临听器Query.addActionListener(this);add.addActionListener(this);delete.addActionListener(this);xiugai.addActionListener(this);liulan.addActionListener(this);}public void actionPerformed(ActionEvent e){String cmd = e.getActionCommand();if (cmd.equals("查询信息")){new QueryWays();}if (cmd.equals("添加信息")){new Add();}if (cmd.equals("删除信息")){new Delete();}if (cmd.equals("浏览全部信息")){new Liulan();}if (cmd.equals("修改密码")){new UpdateCode();}}public static void main(String[] args){new Mstudent("");}}package MS;import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.GridLayout;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingConstants;public class Query implements ActionListener {String sql =null;int a;String info;JFrame f3;// Container cp;JPanel jp1,jp2,jp3,jp4,jp,jpwest;JButton btn1,btn2;//确定,取消JLabel label,label2;//标签,请输入姓名(label)JTextField tf,tf1,tf2,tf3,tf4,tf5,tf6;//文本框Query(int a){this.a=a;f3=new JFrame();Container cp=f3.getContentPane();//初始化面板,按钮,标签,文本框jp=new JPanel();jp1=new JPanel();jp2=new JPanel(new GridLayout(6,1));jp3=new JPanel();jp4=new JPanel(new GridLayout(6,1));jpwest=new JPanel();btn1=new JButton("确定");btn2=new JButton("取消");label=new JLabel("<html><font color=#CC00FF size='4'>请输入姓名:" + "</font>",SwingConstants.CENTER);label2=new JLabel("<html><font color=#CC00FF size='4'>请输入学号:" + "</font>",SwingConstants.CENTER);label.setForeground(Color.gray);tf=new JTextField(20);//------------------------------------------------tf1=new JTextField(20);tf2=new JTextField(20);tf3=new JTextField(20);tf4=new JTextField(20);tf5=new JTextField(20);tf6=new JTextField(20);//布局,添加控件if(a==0){jp.add(label);jp.add(tf);}else if(a==1){jp.add(label2);jp.add(tf);}cp.add(jp,"North");jp4.add(new JLabel("姓名",SwingConstants.CENTER));jp2.add(tf1);jp4.add(new JLabel("性别",SwingConstants.CENTER));jp2.add(tf2);jp4.add(new JLabel("学号",SwingConstants.CENTER));jp2.add(tf3);jp4.add(new JLabel("专业",SwingConstants.CENTER));jp2.add(tf4);jp4.add(new JLabel("班级",SwingConstants.CENTER));jp2.add(tf5);jp4.add(new JLabel("入学时间",SwingConstants.CENTER));jp2.add(tf6);jp3.add(btn1);jp3.add(btn2);cp.add(jp4,"West");cp.add(jp2,"East");cp.add(jp3,"South");cp.add(jp1);Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width; //显示窗口宽度int y=screen.height;//窗口高度f3.setSize(350,330);int xcenter=(x-350)/2;int ycenter=(y-330)/2;f3.setLocation(xcenter,ycenter);f3.setVisible(true);//f3.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);btn1.addActionListener(this);btn2.addActionListener(this);/*f3.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});*/。
学生信息管理系统操作手册

学生信息管理系统操作手册1. 介绍学生信息管理系统(简称SIMS)是一种用于管理学生信息的软件系统。
该系统旨在帮助学校、教育机构或其他教育管理部门更高效地管理学生档案、课程记录、成绩统计和个人信息等。
2. 登录与注销在打开学生信息管理系统之后,用户需要输入正确的用户名和密码来登录系统。
根据用户权限的不同,系统会提供不同的功能和操作选项。
登出系统时,用户应及时注销以确保信息安全。
3. 学生档案管理SIMS使学校或教育管理部门能够更好地管理学生档案。
管理员可以添加新学生的基本信息,例如姓名、性别、生日、家庭地址和联系方式等。
管理员还可以更新学生的档案信息,如修改联系方式或家庭地址等。
4. 课程记录管理学生信息管理系统还提供了课程记录的管理功能。
老师或教育管理部门可以在系统中添加新的课程,并为每个课程指定所属的学生和教师。
系统还提供了一个课程日程表,以便学生和教师能够清楚地知道每节课的日期、时间和地点。
5. 学生成绩统计SIMS还能够帮助学校和教育管理部门进行学生成绩的统计和分析。
通过系统,教师可以轻松地录入学生的成绩,并将其与特定课程关联起来。
系统能够自动计算每个学生的总成绩和平均成绩,并生成相应的报告。
6. 个人信息管理学生信息管理系统使学生和家长能够更好地管理和查看个人信息。
学生和家长可以登录系统,查看学生的档案信息、课程记录和成绩统计等。
他们还可以更新个人信息,如修改联系方式或家庭地址等。
7. 权限管理SIMS提供了不同用户权限的管理功能。
系统管理员可以设置每个用户的权限级别,以控制他们在系统中的操作范围。
管理员可以为教师、学生和家长等角色分配不同的权限,并随时更改或更新这些权限。
8. 数据备份与恢复为了确保数据的安全和完整性,学生信息管理系统提供了数据备份和恢复功能。
管理员可以定期备份系统数据,保留在安全的位置。
当系统出现故障或需要重置时,可以通过数据恢复功能将系统恢复到之前的状态。
9. 系统设置系统管理员可以在学生信息管理系统中进行系统设置。
学生信息管理系统

学生信息管理系统1.数据库结构的实现1)创建系统用户表格user_infoCREATE TABLE [dbo].[user_info] ([user_ID] [char] (10) COLLATEChinese_PRC_CI_AS NOT NULL,[user_PWD] [char] (10) COLLATEChinese_PRC_CI_AS NULL ,[user_DES] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,) ON [PRIMARY]2)创建学生基本信息表Student_infoCREATE TABLE [dbo].[ Student_info] ([student_ID] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,[student_Name] [varcharchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,[student_Sex] [char] (2) COLLATEChinese_PRC_CI_AS NULL ,[born_Date] [datetime] COLLATEChinese_PRC_CI_AS NULL ,[ClassName] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,[Telephone] [char] (20) COLLATEChinese_PRC_CI_AS NULL ,[Enroll_date] [datetime] COLLATEChinese_PRC_CI_AS NULL ,[Address] [varchar] (50) COLLATEChinese_PRC_CI_AS NULL ,[comment] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,) ON [PRIMARY]3)创建课程基本信息表Course_infoCREATE TABLE [dbo].[course_info] ([course_NO] [varchar](10) COLLATEChinese_PRC_CI_AS NOT NULL,[course_Name] [char] (20) COLLATEChinese_PRC_CI_AS NULL ,[course_Type] [char] (20) COLLATEChinese_PRC_CI_AS NULL ,[course_credit] [int] COLLATEChinese_PRC_CI_AS NULL ,[course_des] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,) ON [PRIMARY]4)创建选课成绩信息表Student_course_infoCREATE TABLE [dbo].[student_course_info] ( [student_ID] [varchar](10) COLLATEChinese_PRC_CI_AS NOT NULL ,[course_NO] [varchar](10) COLLATEChinese_PRC_CI_AS NOT NULL ,[score] [int] COLLATE Chinese_PRC_CI_AS NULL ,) ON [PRIMARY]2.学生信息管理系统主窗体的创建1)创建工程项目Student_MIS2)创建学生信息管理系统主窗体3)创建公用模块在“工程资源管理器”中添加一个Module,保存为Module1.bas,其程序如下:Public username_OK As String '记录登录用户名'定义连接字符串函数Public Function ConnectString() As StringConnectString ="Provider=SQLOLEDB.1;Password=sa;User ID=sa; "+"Initial Catalog=pubs; Data Source =127.0.0.1"'设置SQL Server2000数据库链接字符串,此字符串可保存在目录文件中End Function'ExecuteSQL函数执行SQL语句,返回结果集Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) _As ADODB.RecordsetDim cnn As ADODB.ConnectionDim rst As ADODB.RecordsetDim sTokens() As StringOn Error GoTo ExecuteSQL_ErrorsTokens = Split(SQL)Set cnn = New ADODB.Connectioncnn.Open ConnectStringIf InStr("INSERT,DELETE,UPDATE,EXECUTE", UCase$(sTokens(0))) Thencnn.Execute (SQL)MsgString = sTokens(0) & " query successful"ElseSet rst = New ADODB.Recordsetrst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimisticSet ExecuteSQL = rstMsgString = "查询到" & rst.RecordCount & "条记录 "End IfExecuteSQL_Exit:Set rst = NothingSet cnn = NothingExit FunctionExecuteSQL_Error:MsgString = "查询错误: " & Err.DescriptionResume ExecuteSQL_ExitEnd Function3.系统用户管理模块的创建1)用户登录窗体设计当用户输入完用户名和用户密码后,单击“确定”按钮将对用户输入的信息进行判断。
学生信息管理系统需求分析完整版

学⽣信息管理系统需求分析完整版学⽣信息管理系统需求分析HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】学⽣信息管理系统需求分析学⽣信息管理系统的功能要求本系统需要实现的功能:(1)、管理员对学⽣信息和课程信息进⾏add、delete、update、select等操作,对选课信息进⾏管理,对成绩信息和⽤户信息进⾏update、select等操作。
(2)、学⽣对学⽣信息和成绩信息进⾏查看,对个⼈的密码信息进⾏update等。
系统功能模块设计学⽣信息管理系统主要包括管理员和学⽣两⼤模块。
管理员模块包括:学⽣信息管理、课程信息管理、选课信息管理、成绩信息管理、⽤户信息管理等。
⽤户模块包括:学⽣信息查看、成绩信息查看、个⼈信息管理等。
系统总体结构如图所⽰。
1、学⽣信息管理模块学⽣信息管理模块包括add、delete、update、select、list tables等。
具体的结构图如图所⽰。
2、课程信息管理模块课程信息管理模块包括add、delete、update、select、显⽰全部等。
具体的结构图如图所⽰。
3、选课信息管理模块选课信息管理模块包括查询、显⽰全部等。
具体的结构图如图所⽰。
4、⽤户信息管理模块⽤户信息管理模块包括修改、查询、显⽰全部等。
具体的结构图如图所⽰。
1.客户端⼦系统:在客户端系统的功能实现上,可以分为以下⼏个部分:[1]学⽣的输⼊和统计学⽣信息由专⼈负责输⼊。
这部分功能是客户端⼦系统的基本部分,这个功能是以后各个部分的基础。
系统要求做到即能够从其它⼦系统中共享⼀部分信息,⼜有⽅便的操作界⾯⼯⼿⼯输⼊旅客信息。
这部分要求对输⼊的数据进⾏简单的统计,管理员进⾏查询和宏观调控。
[2]学⽣信息的存储:将学⽣和课表的信息存储到学⽣管理系统的客户端系统中,以备以后的信息确认及查询。
[3]学⽣信息的传递及接收:将需要查询信息由学⽣信息系统客户端由⽹络传到显⽰的服务器上,并且接受学⽣信息管理系统返回的相关信息,然后存储起来。
[工学]学生信息管理系统完整源码
![[工学]学生信息管理系统完整源码](https://img.taocdn.com/s3/m/3483296b26284b73f242336c1eb91a37f1113291.png)
学生信息管理系统完整源代码注:本系统采用C/S结构,运用Java GUI知识编写,数据库为SQL SERVER 2005,没有采用典型的三级框架结构,所以代码有冗余,仅供参考。
一、数据表及数据源首先创建数据库,包含数据表如下:数据库创建完成后,新建一个名为SIMS的数据源,不会建数据源的同学可以在去搜索创建数据源的详细步骤,这里的数据名称一定要为SIMS,否则在以后程序连接数据库的语句中会出现错误。
二、操作演示三、代码部分创建Java工程,创建名称为SIMS的包,一下Java类均包含在一个包内。
1.登录界面package SIMS;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import java.text.SimpleDateFormat;import java.util.*;import java.util.Date;public class login extends JFrame implements ActionListener{String userID; //保留用户输入IDString password; //保留用户输入passwordJLabel jlID=new JLabel("用户ID:"); //使用文本创建标签对象 JLabel jlPwd=new JLabel("密码:");JTextField jtID=new JTextField(); //创建ID输入框JPasswordField jpPwd=new JPasswordField(); //创建密码输入框ButtonGroup bg=new ButtonGroup(); //创建ButtonGroup组件对象JPanel jp=new JPanel(); //创建Panel容器JLabel jl=new JLabel();JRadioButton jrb1=new JRadioButton("管理员");JRadioButton jrb2=new JRadioButton("教师");JRadioButton jrb3=new JRadioButton("学生",true);JButton jb1=new JButton("登录");JButton jb2=new JButton("重置");public login(){this.setLayout(null); //设置窗口布局管理器this.setTitle("学生信息管理系统"); //设置窗口标题this.setBounds(200,150,500,300); //设置主窗体位置大小和可见性this.setVisible(true); //设置窗口的可见性this.setResizable(false);jlID.setBounds(150,60,100,20); //设置ID框属性jtID.setBounds(220,60,100,20); //设置ID输入框属性jlPwd.setBounds(150,90,100,20); //设置密码框属性jpPwd.setBounds(220,90,100,20); //设置密码输入框属性jp.setBounds(35,120,400,250); //设置JPanel容器属性jb1.setBounds(160,170,60,20); //设置登录按钮属性jb2.setBounds(250,170,60,20); //设置取消按钮属性jb1.addActionListener(this); //设置登录按钮监听器jb2.addActionListener(this); //设置取消按钮监听器jl.setBounds(340,75,130,20); //设置提示框属性bg.add(jrb1); //将所有空间加入窗体bg.add(jrb2);bg.add(jrb3);this.add(jlID);this.add(jlPwd);this.add(jtID);this.add(jpPwd);this.add(jb1);this.add(jb2);this.add(jl);jp.add(jrb1);jp.add(jrb2);jp.add(jrb3);this.add(jp);centerShell(this);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}private void centerShell(JFrame shell) //窗口在屏幕中间显示{//得到屏幕的宽度和高度int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height;int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;//得到Shell窗口的宽度和高度int shellHeight = shell.getBounds().height;int shellWidth = shell.getBounds().width;//如果窗口大小超过屏幕大小,让窗口与屏幕等大if(shellHeight > screenHeight)shellHeight = screenHeight;if(shellWidth > screenWidth)shellWidth = screenWidth;//让窗口在屏幕中间显示shell.setLocation(( (screenWidth - shellWidth) / 2),((screenHeight - shellHeight) / 2) );}public boolean equals(Object obj){ //重写equals方法判断字符串相等if(obj==null)return false;if(this == obj){return true;}if(obj instanceof String) {String str = (String)obj;return str.equals(userID);}return false;}public void actionPerformed(ActionEvent e){userID=jtID.getText(); //获取用户输入IDpassword=jpPwd.getText(); //获取用户输入密码if(e.getSource()==jb1){ //处理登录事件if(userID.equals("") || password.equals("")){jl.setFont(new Font("red",Font.BOLD,12)); //设置提示字体jl.setForeground(Color.red);jl.setText("请输入用户ID和密码");}else{Connection con=null;try{String url="jdbc:odbc:SIMS"; //连接数据库con=DriverManager.getConnection(url,"","");//获取连接字符串Statement stat=con.createStatement();if(jrb1.isSelected())//如果登录选中的管理员{ResultSet rs=stat.executeQuery("select * from Admin"); //判断输入用户名是否存在int flag=0;while(rs.next()){if(rs.getString(1).equals(userID)){flag=1;break;}}if(flag==0){jl.setFont(new Font("red",Font.BOLD,12));//设置提示字体jl.setForeground(Color.red);jl.setText("用户ID不存在");}if(flag==1){ResultSet rss=stat.executeQuery("selectAdmin_Pwd,Admin_Name from Admin where Admin_ID='"+userID+"'");//从表Admin获取信息while(rss.next()){String str=rss.getString(1);if(str.equals(password)){new admin(rss.getString(2));//创建admin窗口this.dispose(); //释放窗体}else{jl.setFont(new Font("red",Font.BOLD,12)); //设置提示字体jl.setForeground(Color.red);jl.setText("密码错误");}}}}else if(jrb2.isSelected()){ResultSet rs=stat.executeQuery("select * from Teacher_Info"); //判断输入用户名是否存在int flag=0;while(rs.next()){if(rs.getString(1).equals(userID)){flag=1;break;}}if(flag==0){jl.setFont(new Font("red",Font.BOLD,12));//设置提示字体jl.setForeground(Color.red);jl.setText("用户ID不存在");}if(flag==1){ResultSet rss=stat.executeQuery("selectTea_Pwd,Tea_Names from Teacher_Info where Tea_ID='"+userID+"'");//从表Teacher_Info获取信息while(rss.next()){String str=rss.getString(1);if(str.equals(password)){new teacher(rss.getString(2),userID);//创建admin窗口this.dispose(); //释放窗体}else{jl.setFont(new Font("red",Font.BOLD,12));//设置提示字体jl.setForeground(Color.red);jl.setText("密码错误");}}}}else if(jrb3.isSelected()){ResultSet rs=stat.executeQuery("select * from Student_Info"); //判断输入用户名是否存在int flag=0;while(rs.next()){if(rs.getString(1).equals(userID)){flag=1;break;}}if(flag==0){jl.setFont(new Font("red",Font.BOLD,12));//设置提示字体jl.setForeground(Color.red);jl.setText("用户ID不存在");}if(flag==1){ResultSet rsss=stat.executeQuery("selectStu_Pwd,Stu_Name from Student_Info where Stu_ID='"+userID+"'");//从表Student_Info获取信息while(rsss.next()){String str=rsss.getString(1);if(str.equals(password)){new student(rsss.getString(2),userID);//创建admin窗口this.dispose(); //释放窗体}else{jl.setFont(new Font("red",Font.BOLD,12));//设置提示字体jl.setForeground(Color.red);jl.setText("密码错误");}}}}}catch(Exception ex){ex.getStackTrace();}finally{try{con.close();}catch(Exception exc){exc.printStackTrace();}}}}else if(e.getSource()==jb2){ //处理登录事件jtID.setText("");jpPwd.setText("");jrb3.setSelected(true);jl.setText("");}}public static void main(String[] args){new login();}}2.添加课程package SIMS;import javax.swing.*;import java.sql.*;import java.awt.*;import java.awt.event.*;public class add_course extends JFrame implements ActionListener{ static add_course ss;String courseID=""; //课程名String coursename=""; //课程名String count=""; //课时JLabel warning=new JLabel(); //输入信息提示框JLabel title=new JLabel();JLabel note1=new JLabel("*");JLabel note2=new JLabel("*");JLabel jlcourseID=new JLabel("课程号:"); //使用文本框创建标签对象JLabel jlcoursename=new JLabel("课程名:");JLabel jlcount=new JLabel("课时:");JTextField jtcourseID=new JTextField(); //创建文本框对象JTextField jtcoursename=new JTextField();JTextField jtcount=new JTextField();JButton submit=new JButton("添加"); //创建按钮对象JButton reset=new JButton("重置");public add_course(){ //添加教师账号信息this.setTitle("添加课程信息"); //设置窗口标题this.setLayout(null); //设置窗口布局管理器this.add(jlcourseID); //将控件添加到窗体this.add(title);this.add(jlcoursename);this.add(jlcount);this.add(jtcourseID);this.add(jtcoursename);this.add(jtcount);this.add(note1);this.add(note2);this.add(submit);this.add(reset);this.add(warning);title.setFont(new Font("red",Font.BOLD,15)); //设置提示字体title.setForeground(Color.red);note1.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note1.setForeground(Color.red);note2.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note2.setForeground(Color.red);warning.setFont(new Font("red",Font.BOLD,12)); //设置提示字体warning.setForeground(Color.red);title.setText("添加课程信息"); //设置控件及窗体位置大小title.setBounds(222,20,150,20);jlcourseID.setBounds(180,80,100,20);jlcoursename.setBounds(180,140,100,20);jlcount.setBounds(180,200,100,20);jtcourseID.setBounds(250,80,140,20);jtcoursename.setBounds(250,140,140,20);jtcount.setBounds(250,200,140,20);note1.setBounds(400,80,140,20);note2.setBounds(400,140,140,20);submit.setBounds(200,270,60,20);reset.setBounds(300,270,60,20);warning.setBounds(420,140,150,20); //设置提示框位置大小submit.addActionListener(this); //添加监听器reset.addActionListener(this);this.setSize(600,400); //设置窗体大小centerShell(this); //设置窗口位置在屏幕中央this.setResizable(false); //设置窗体不可变大小this.setVisible(true); //设置窗口可见性this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}public boolean equals(Object obj){ //重写equals方法判断字符串相等if(obj==null)return false;if(this == obj){return true;}if(obj instanceof String) {String str = (String)obj;return str.equals(courseID);}return false;}public void actionPerformed(ActionEvent e){courseID=jtcourseID.getText(); //获取用户输入内容coursename=jtcoursename.getText();count=jtcount.getText();int temp=0,flag=0;Connection con=null;if(e.getSource()==submit){ //判断是否已输入必填信息if(courseID.equals("") || coursename.equals("")){warning.setText("请输入必填信息");}else{try{String url="jdbc:odbc:SIMS"; //连接数据库con=DriverManager.getConnection(url,"",""); //获取连接字符串Statement stat=con.createStatement();ResultSet rs=stat.executeQuery("select Course_ID from Course");while(rs.next()){if(rs.getString(1).equals(courseID)){warning.setText("课程ID已存在");flag=1; //判断用户名唯一break;}}if(flag!=1){if(!count.equals("")){temp=stat.executeUpdate("insert intoCourse(Course_ID,Course_Name,Course_Count)values('"+courseID+"','"+coursename+"','"+count+"')");}else{temp=stat.executeUpdate("insert intoCourse(Course_ID,Course_Name) values('"+courseID+"','"+coursename+"')");}}if(temp==1){JOptionPane.showMessageDialog(ss,"添加成功");warning.setText("");}else{JOptionPane.showMessageDialog(ss,"添加失败");}}catch(Exception ex){ex.getStackTrace();}}}else if(e.getSource()==reset){warning.setText("");jtcourseID.setT ext("");jtcoursename.setText("");jtcount.setText("");}}private void centerShell(JFrame shell) //窗口在屏幕中间显示{//得到屏幕的宽度和高度int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height;int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;//得到Shell窗口的宽度和高度int shellHeight = shell.getBounds().height;int shellWidth = shell.getBounds().width;//如果窗口大小超过屏幕大小,让窗口与屏幕等大if(shellHeight > screenHeight)shellHeight = screenHeight;if(shellWidth > screenWidth)shellWidth = screenWidth;//让窗口在屏幕中间显示shell.setLocation(((screenWidth - shellWidth)/ 2),((screenHeight - shellHeight)/2));}}3.添加学生package SIMS;import javax.swing.*;import java.sql.*;import java.awt.*;import java.awt.event.*;public class add_student extends JFrame implements ActionListener{static add_teacher ss;String userID=""; //用户名String pwd1=""; //密码String pwd2=""; //确认密码String getsdept=""; //院系String name=""; //姓名JLabel warning=new JLabel(); //输入信息提示框JLabel title=new JLabel();JLabel note1=new JLabel("*");JLabel note2=new JLabel("*");JLabel note3=new JLabel("*");JLabel jlID=new JLabel("学号:"); //创建文本框对象 JLabel jlName=new JLabel("姓名:");JLabel jlPwd=new JLabel("密码:");JLabel jlPwd2=new JLabel("确认密码:");JLabel sdept=new JLabel("学院:");JTextField jtID=new JTextField();JTextField jtName=new JTextField();JPasswordField jtPwd=new JPasswordField ();JPasswordField jtPwd2=new JPasswordField ();JTextField jtsdept=new JTextField();JButton submit=new JButton("添加"); //创建按钮对象JButton reset=new JButton("重置");public add_student(){this.setTitle("添加学生账号信息"); //设置窗口标题this.setLayout(null); //设置窗口布局管理器this.add(jlID); //将控件添加到窗体this.add(title);this.add(jlName);this.add(jlPwd);this.add(jlPwd2);this.add(sdept);this.add(jtID);this.add(jtName);this.add(jtPwd);this.add(jtPwd2);this.add(jtsdept);this.add(note1);this.add(note2);this.add(note3);this.add(submit);this.add(reset);this.add(warning);title.setFont(new Font("red",Font.BOLD,15)); //设置提示字体title.setForeground(Color.red);note1.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note1.setForeground(Color.red);note2.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note2.setForeground(Color.red);note3.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note3.setForeground(Color.red);warning.setFont(new Font("red",Font.BOLD,12)); //设置提示字体warning.setForeground(Color.red);title.setText("添加学生账号信息");title.setBounds(222,20,150,20);jlID.setBounds(180,60,100,20);jlName.setBounds(180,100,100,20);jlPwd.setBounds(180,140,100,20);jlPwd2.setBounds(180,180,100,20);sdept.setBounds(180,220,100,20);jtID.setBounds(250,60,140,20);jtName.setBounds(250,100,140,20);jtPwd.setBounds(250,140,140,20);jtPwd2.setBounds(250,180,140,20);jtsdept.setBounds(250,220,140,20);note1.setBounds(400,60,140,20);note2.setBounds(400,140,140,20);note3.setBounds(400,180,140,20);submit.setBounds(200,270,60,20);reset.setBounds(300,270,60,20);warning.setBounds(420,100,150,20);submit.addActionListener(this);reset.addActionListener(this);this.setSize(600,400);centerShell(this);this.setVisible(true);this.setResizable(false); //设置窗体不可变大小this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}public boolean equals(Object obj){ //重写equals方法判断字符串相等if(obj==null)return false;if(this == obj){return true;}if(obj instanceof String) {String str = (String)obj;return str.equals(pwd1);}return false;}public void actionPerformed(ActionEvent e){userID=jtID.getText(); //获取用户输入内容pwd1=jtPwd.getText();pwd2=jtPwd2.getText();getsdept=jtsdept.getText();name=jtName.getText();int temp=0,flag=0;Connection con=null;if(e.getSource()==submit){if(userID.equals("") || pwd1.equals("") || pwd2.equals("")){ //判断是否已输入必填信息warning.setText("请输入必填信息");}else if(!pwd1.equals(pwd2)){ //判断两次输入密码是否相同warning.setText("两次输入密码不相同");}else{try{String url="jdbc:odbc:SIMS"; //连接数据库con=DriverManager.getConnection(url,"",""); //获取连接字符串Statement stat=con.createStatement();ResultSet rs=stat.executeQuery("select Stu_ID from Student_Info");while(rs.next()){if(rs.getString(1).equals(userID)){warning.setText("用户ID已存在");flag=1; //判断用户名唯一break;}}if(flag!=1){if(!name.equals("") && !getsdept.equals("")){temp=stat.executeUpdate("insert intoStudent_Info(Stu_ID,Stu_Name,Stu_Pwd,Depart)values('"+userID+"','"+name+"','"+pwd1+"','"+getsdept+"')");}else if(!name.equals("") && getsdept.equals("")){temp=stat.executeUpdate("insert intoStudent_Info(Stu_ID,Stu_Name,Stu_Pwd) values('"+userID+"','"+name+"','"+pwd1+"')");}else if(name.equals("") && !getsdept.equals("")){temp=stat.executeUpdate("insert intoStudent_Info(Stu_ID,Stu_Pwd,Depart) values('"+userID+"','"+pwd1+"','"+getsdept+"')");}else{temp=stat.executeUpdate("insert intoStudent_Info(Stu_ID,Stu_Pwd) values('"+userID+"','"+pwd1+"')");}}if(temp==1){JOptionPane.showMessageDialog(ss,"添加成功");}else{JOptionPane.showMessageDialog(ss,"添加失败");}}catch(Exception ex){ex.getStackTrace();}}}else if(e.getSource()==reset){ //重置所有控件warning.setText("");jtID.setText("");jtName.setText("");jtPwd.setText("");jtPwd2.setText("");jtsdept.setText("");}}private void centerShell(JFrame shell) //窗口在屏幕中间显示{//得到屏幕的宽度和高度int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height;int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;//得到Shell窗口的宽度和高度int shellHeight = shell.getBounds().height;int shellWidth = shell.getBounds().width;//如果窗口大小超过屏幕大小,让窗口与屏幕等大if(shellHeight > screenHeight)shellHeight = screenHeight;if(shellWidth > screenWidth)shellWidth = screenWidth;//让窗口在屏幕中间显示shell.setLocation(((screenWidth - shellWidth)/ 2),((screenHeight - shellHeight)/2));}//public static void main(String args[]){// new add_student();//}}4.添加教师package SIMS;import javax.swing.*;import java.sql.*;import java.awt.*;import java.awt.event.*;public class add_teacher extends JFrame implements ActionListener{static add_teacher ss;String userID=""; //用户名String pwd1=""; //密码String pwd2=""; //确认密码String getsdept=""; //院系String name=""; //姓名JLabel warning=new JLabel(); //输入信息提示框JLabel title=new JLabel();JLabel note1=new JLabel("*");JLabel note2=new JLabel("*");JLabel note3=new JLabel("*");JLabel jlID=new JLabel("教工号:"); //使用文本框创建标签对象 JLabel jlName=new JLabel("姓名:");JLabel jlPwd=new JLabel("密码:");JLabel jlPwd2=new JLabel("确认密码:");JLabel sdept=new JLabel("学院:");JTextField jtID=new JTextField(); //创建文本框对象JTextField jtName=new JTextField();JPasswordField jtPwd=new JPasswordField ();JPasswordField jtPwd2=new JPasswordField ();JTextField jtsdept=new JTextField();JButton submit=new JButton("添加"); //创建按钮对象JButton reset=new JButton("重置");public add_teacher(){ //添加教师账号信息this.setTitle("添加教师账号信息"); //设置窗口标题this.setLayout(null); //设置窗口布局管理器this.add(jlID); //将控件添加到窗体this.add(title);this.add(jlName);this.add(jlPwd);this.add(jlPwd2);this.add(sdept);this.add(jtID);this.add(jtName);this.add(jtPwd);this.add(jtPwd2);this.add(jtsdept);this.add(note1);this.add(note2);this.add(note3);this.add(submit);this.add(reset);this.add(warning);title.setFont(new Font("red",Font.BOLD,15)); //设置提示字体title.setForeground(Color.red);note1.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note1.setForeground(Color.red);note2.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note2.setForeground(Color.red);note3.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note3.setForeground(Color.red);warning.setFont(new Font("red",Font.BOLD,12)); //设置提示字体warning.setForeground(Color.red);title.setText("添加教师账号信息"); //设置控件及窗体位置大小title.setBounds(222,20,150,20);jlID.setBounds(180,60,100,20);jlName.setBounds(180,100,100,20);jlPwd.setBounds(180,140,100,20);jlPwd2.setBounds(180,180,100,20);sdept.setBounds(180,220,100,20);jtID.setBounds(250,60,140,20);jtName.setBounds(250,100,140,20);jtPwd.setBounds(250,140,140,20);jtPwd2.setBounds(250,180,140,20);jtsdept.setBounds(250,220,140,20);note1.setBounds(400,60,140,20);note2.setBounds(400,140,140,20);note3.setBounds(400,180,140,20);submit.setBounds(200,270,60,20);reset.setBounds(300,270,60,20);warning.setBounds(420,100,150,20); //设置提示框位置大小submit.addActionListener(this); //添加监听器reset.addActionListener(this);this.setSize(600,400); //设置窗体大小centerShell(this); //设置窗口位置在屏幕中央this.setResizable(false); //设置窗体不可变大小this.setVisible(true); //设置窗口可见性this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}public boolean equals(Object obj){ //重写equals方法判断字符串相等if(obj==null)return false;if(this == obj){return true;}if(obj instanceof String) {String str = (String)obj;return str.equals(pwd1);}return false;}public void actionPerformed(ActionEvent e){userID=jtID.getText(); //获取用户输入内容pwd1=jtPwd.getText();pwd2=jtPwd2.getText();getsdept=jtsdept.getText();name=jtName.getText();int temp=0,flag=0;Connection con=null;if(e.getSource()==submit){ //判断是否已输入必填信息if(userID.equals("") || pwd1.equals("") || pwd2.equals("")){warning.setText("请输入必填信息");}else if(!pwd1.equals(pwd2)){ //判断两次输入密码是否一致warning.setText("两次输入密码不相同");}else{try{String url="jdbc:odbc:SIMS"; //连接数据库con=DriverManager.getConnection(url,"",""); //获取连接字符串Statement stat=con.createStatement();ResultSet rs=stat.executeQuery("select Tea_ID from Teacher_Info");while(rs.next()){if(rs.getString(1).equals(userID)){warning.setText("用户ID已存在");flag=1; //判断用户名唯一break;}}if(flag!=1){if(!name.equals("") && !getsdept.equals("")){temp=stat.executeUpdate("insert intoTeacher_Info(Tea_ID,Tea_Names,T ea_Pwd,Depart)values('"+userID+"','"+name+"','"+pwd1+"','"+getsdept+"')");}else if(!name.equals("") && getsdept.equals("")){temp=stat.executeUpdate("insert intoTeacher_Info(Tea_ID,Tea_Names,T ea_Pwd)values('"+userID+"','"+name+"','"+pwd1+"')");}else if(name.equals("") && !getsdept.equals("")){temp=stat.executeUpdate("insert intoTeacher_Info(Tea_ID,Tea_Pwd,Depart) values('"+userID+"','"+pwd1+"','"+getsdept+"')");}else{temp=stat.executeUpdate("insert intoTeacher_Info(Tea_ID,Tea_Pwd) values('"+userID+"','"+pwd1+"')");}}if(temp==1){JOptionPane.showMessageDialog(ss,"添加成功");}else{JOptionPane.showMessageDialog(ss,"添加失败");}}catch(Exception ex){ex.getStackTrace();}}}else if(e.getSource()==reset){warning.setText("");jtID.setText("");jtName.setText("");jtPwd.setText("");jtPwd2.setText("");jtsdept.setText("");}}private void centerShell(JFrame shell) //窗口在屏幕中间显示{//得到屏幕的宽度和高度int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height;int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;//得到Shell窗口的宽度和高度int shellHeight = shell.getBounds().height;int shellWidth = shell.getBounds().width;//如果窗口大小超过屏幕大小,让窗口与屏幕等大if(shellHeight > screenHeight)shellHeight = screenHeight;if(shellWidth > screenWidth)shellWidth = screenWidth;//让窗口在屏幕中间显示shell.setLocation(((screenWidth - shellWidth)/ 2),((screenHeight - shellHeight)/2));}// public static void main(String[] args){// new add_teacher();// }}5.添加授课信息package SIMS;import javax.swing.*;import java.sql.*;import java.awt.*;import java.awt.event.*;public class add_tc extends JFrame implements ActionListener{static add_tc ss;String courseID=""; //课程名String teachername=""; //课程名JLabel warning=new JLabel(); //输入信息提示框JLabel title=new JLabel();JLabel note1=new JLabel("*");JLabel note2=new JLabel("*");JLabel jlcourseID=new JLabel("课程号:"); //使用文本框创建标签对象JLabel jlteachername=new JLabel("教师号:");JTextField jtcourseID=new JTextField(); //创建文本框对象JTextField jtteachername=new JTextField();JButton submit=new JButton("添加"); //创建按钮对象JButton reset=new JButton("重置");public add_tc(){ //添加授课信息this.setTitle("添加授课信息"); //设置窗口标题this.setLayout(null); //设置窗口布局管理器this.add(jlcourseID); //将控件添加到窗体this.add(jlteachername);this.add(title);this.add(jtcourseID);this.add(jtteachername);this.add(note1);this.add(note2);this.add(submit);this.add(reset);this.add(warning);title.setFont(new Font("red",Font.BOLD,15)); //设置提示字体title.setForeground(Color.red);note1.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note1.setForeground(Color.red);note2.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note2.setForeground(Color.red);warning.setFont(new Font("red",Font.BOLD,12)); //设置提示字体warning.setForeground(Color.red);title.setText("添加授课信息"); //设置控件及窗体位置大小title.setBounds(222,20,150,20);jlcourseID.setBounds(180,80,100,20);jlteachername.setBounds(180,140,100,20);jtcourseID.setBounds(250,80,140,20);jtteachername.setBounds(250,140,140,20);note1.setBounds(400,80,140,20);note2.setBounds(400,140,140,20);submit.setBounds(200,250,60,20);reset.setBounds(300,250,60,20);warning.setBounds(420,140,150,20); //设置提示框位置大小submit.addActionListener(this); //添加监听器reset.addActionListener(this);this.setSize(600,400); //设置窗体大小centerShell(this); //设置窗口位置在屏幕中央this.setResizable(false); //设置窗体不可变大小this.setVisible(true); //设置窗口可见性this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}public boolean equals(Object obj){ //重写equals方法判断字符串相等if(obj==null)return false;if(this == obj){return true;}if(obj instanceof String) {String str = (String)obj;return str.equals(courseID);}return false;}public void actionPerformed(ActionEvent e){courseID=jtcourseID.getText(); //获取用户输入内容teachername=jtteachername.getText();int temp=0,flag1=0,flag2=0,flag3=0;Connection con=null;if(e.getSource()==submit){ //判断是否已输入必填信息if(courseID.equals("") || teachername.equals("")){warning.setText("请输入必填信息");}else{try{String url="jdbc:odbc:SIMS"; //连接数据库con=DriverManager.getConnection(url,"",""); //获取连接字符串Statement stat=con.createStatement();ResultSet rs=stat.executeQuery("select Course_ID from Course");while(rs.next()){if(rs.getString(1).equals(courseID)){flag1=1; //判断课程ID存在break;}}ResultSet rss=stat.executeQuery("select Tea_ID fromTeacher_Info");while(rss.next()){if(rss.getString(1).equals(teachername)){flag2=1; //判断教师ID存在break;}}if(flag1!=1){warning.setText("课程ID不存在");}else if(flag2!=1){warning.setText("教师ID不存在");}ResultSet rsss=stat.executeQuery("select Course_ID,T ea_ID from tc");while(rsss.next()){if(rsss.getString(1).equals(courseID) &&rsss.getString(2).equals(teachername)){flag3=1;warning.setText("授课信息重复");。
MIS学生信息管理系统

目录概述: --------------------------------------------------------------------------------------------------------------- 1 1.系统分析 ----------------------------------------------------------------------------------------------------- 11.1用户需求----------------------------------------------------------------------------------------------- 11.2可行性研究 ------------------------------------------------------------------------------------------- 21.3现状调查----------------------------------------------------------------------------------------------- 31.4目标分析----------------------------------------------------------------------------------------------- 82.系统设计 ---------------------------------------------------------------------------------------------------- 172.1总体设计---------------------------------------------------------------------------------------------- 172.11一般关系模型设计: --------------------------------------------------------------------------- 172.12处理功能总体结构设计: --------------------------------------------------------------------- 192.13系统平台的总体结构设计: ------------------------------------------------------------------ 202.2详细设计---------------------------------------------------------------------------------------------- 212.21代码系统设计: --------------------------------------------------------------------------------- 212.22系统平台具体设计: --------------------------------------------------------------------------- 223.系统实现 ---------------------------------------------------------------------------------------------------- 293.1人员培训与平台实现的简要讨论 ---------------------------------------------------------- 293.2数据库表结构的建立与数据输入: --------------------------------------------------------- 303.3应用程序设计与测试: --------------------------------------------------------------------------- 364.系统运行 ---------------------------------------------------------------------------------------------------- 584.1系统操作使用的简要说明--------------------------------------------------------------------- 584.2测试数据和运行结果 ---------------------------------------------------------------------------- 594.3系统评价:--------------------------------------------------------------------------------------------- 63概述:目前社会上信息管理系统发展飞快,各个企事业单位都引入了信息管理软件来管理自己日益增长的各种信息,随着学校向全国及至世界范围的持续扩张,学生人数的增加,对于学生的信息管理也越来越复杂,要求也越来越高,因此需要一个全面、详细的信息管理系统,以便完成对学生信息的管理。
学生信息管理系统

学生信息管理系统(总24页) -本页仅作为预览文档封面,使用时请删除本页-目录第一章:类图................................................................................ 错误!未定义书签。
第二章:用例描述与用例图........................................................ 错误!未定义书签。
用例图................................................................................... 错误!未定义书签。
用例描述............................................................................... 错误!未定义书签。
登陆用例描述............................................................... 错误!未定义书签。
主界面用例描述........................................................... 错误!未定义书签。
修改密码用例描述....................................................... 错误!未定义书签。
选修课信息用例描述................................................... 错误!未定义书签。
个人信息用例描述....................................................... 错误!未定义书签。
修改学生信息用例描述............................................... 错误!未定义书签。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生信息管理系统(总体设计)1、管理系统功能模块设计本系统需要完成的功能主要有:(1)、输入学生基本信息、所在班级、所学课程和成绩等。
(2)、学生信息的查询,包括查询学生基本信息、所在班级、已学课程和成绩等。
(3)、学生信息的修改。
(4)、班级信息的输入,包括输入班级设置、年级信息等。
(5)、班级信息的查询。
(6)、班级信息的修改。
(7)、班级课程信息的输入。
(8)、班级课程信息的修改。
(9)、学生课程添加和修改。
(10)、学生成绩信息的输入。
(11)、学生成绩信息的修改。
(12)、学生成绩信息的查询。
(13)、学生成绩信息的统计。
2、功能模块设计:3、数据库设计:学生信息管理系统(需求分析)1.系统开发背景分析系统的功能取决开用户的需求。
随着科技进步和信息时代的到来,教育的普及程度起来起高,学校的人数也在迅速的增长,怎样的管理好成千上万的学生,已经成为一个学校的管理者必须面对的问题。
编写本报告的目的就是用最少的代价,尽可能短的时间内确定问题是否能够解决,通过对学校的一些管理软件的调研分析,发现了一些不足,所以拟做此系统,使学生信息的管理更加准确,安全和快捷。
在本次试验中包括的模块有学生信息管理、课程信息管理、成绩信息管理和班级信息管理等几项,各项管理工作涉及到的内容用下面的关系模式表示。
a)学生(学号,姓名,性别,年龄,班级,电话,备注,出生日期,入学时间,班级编号,家庭地址)b)课程(课程编号,课程名称,课程类别,学分,学时)c)班级(系,班级号,指导老师)2.系统分析1.抽象出当前系统的逻辑模型画出反映当前系统工作的数据流程图。
数据流程图是逻辑模型的图形表示,即使不是专业的计算机技术人员也能非常容易理解,它是一种很好的系统构造的表示方法。
画数据流程图是应该从已获得的人工处理流程中去掉物理因素,只保留数据、信息处理部分。
2.系统功能分析系统主要用于学校学生信息管理,主要任务是用计算机对学生各种信息进行日常管理,如:查询、修改、增加、删除。
3.系统目标设计根据本校的实际情况,利用校园网而设计一套针对性和功能都比较强的学生信息管理系统,对学生信息管理系统进行科学的分类、录入、查询.4.开发设计思想尽量采用学校现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用资源,提高系统开发的水平和应用效果的目的。
系统应该符合学校学生信息管理的规定,满足学校学生日常管理的需要,达到操作过程中的直观、方便、实用、安全等要求。
强调多部门合作,学生工作设计面广泛,应该考虑各部门各层次的需求,便于维护。
要建立可靠的数据备份。
通过对数据流程图的进一步分析,得出学生信息管理系统应该具备以下功能:1、实现学生基本信息的登记2、实现数据的浏览与修改3、实现查询符合一定条件的资料4、实现学生有关数据的统计分析5.E-R图6.数据流程图7.数据字典学生信息管理系统(实现、调试、运行)编码1、登录模块代码:Option ExplicitPrivate Sub cmd3_Click()Dim cn As ADODB.ConnectionDim rs As ADODB.RecordsetDim str_cn As String '访问sql server的连接字符串Dim str_sql As Stringstr_cn = "driver={sql server};server=.;uid=sa;pwd=;database=student" Set cn = New ADODB.Connectioncn.CursorLocation = adUseClientcn.Open str_cn '连接sql serverstr_sql = "select * from user_info where user_name='" & Text1.Text & "' and user_code='" & Text2.Text & "'"Set rs = New ADODB.Recordsetrs.Open str_sql, cn, adOpenDynamic, adLockOptimisticIf Len(Text1.Text) = 0 ThenMsgBox "请输入用户名!", 64, "提示"Text1.SetFocusElseIf Len(Text2.Text) = 0 ThenMsgBox "请输入密码!", 64, "提示"Text2.SetFocusElseIf rs.RecordCount = 0 Theni = MsgBox("不存在该用户,是否立即注册?", 4 + 32, "提示") If i = 6 ThenUnload MeForm3.ShowElsemdlTextBox.Blank MeText2.SetFocusEnd IfElse' Unload MeForm1.HideForm4.ShowEnd IfEnd IfEnd SubPrivate Sub Form_Load()mdlTextBox.Centen Me '使窗体居中End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Label5.ForeColor = vbBlackLabel5.FontUnderline = FalseLabel6.ForeColor = vbBlackLabel6.FontUnderline = FalseEnd SubPrivate Sub Label5_Click()Unload MeForm3.ShowEnd SubPrivate Sub Label5_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Label5.ForeColor = vbBlueLabel5.FontUnderline = TrueEnd SubPrivate Sub Label6_Click()Unload MeForm2.ShowEnd SubPrivate Sub Label6_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Label6.ForeColor = vbBlueLabel6.FontUnderline = TrueEnd Sub2、添加学生信息代码:Option ExplicitPrivate Sub Command1_Click()If Len(Text1.Text) = 0 Or Len(Text6.Text) = 0 ThenMsgBox "请将信息补充完整!", 48, "警告"Exit SubEnd If'添加新记录sqlstr = "select * from student_Info"Set rs = ExecuteSQL(sqlstr, Msg)rs.AddNewrs.Fields("student_id") = Text6.Textrs.Fields("student_name") = Text1.Textrs.Fields("class_no") = Combo2.Textrs.Fields("born_date") = Text2.Textrs.Fields("student_sex") = Combo1.Textrs.Fields("address") = Text4.Textrs.Fields("tele_number") = Text7.Textrs.Fields("comment") = Text5.Textrs.Fields("ru_date") = Text3.Textrs.Updaters.CloseMsgBox "学生信息添加完成!", 48, "提示信息"mdlTextBox.Blank MeEnd SubPrivate Sub Command2_Click()Unload MeForm4.ShowEnd SubPrivate Sub Form_Load()mdlTextBox.Centen MemdlTextBox.Blank MeCombo1.Text = "男": Combo2.Text = ""Combo1.AddItem "男"Combo1.AddItem "女"sqlstr = "select * from class_Info"Set rs = ExecuteSQL(sqlstr, Msg)For i = 1 To rs.RecordCountCombo2.AddItem rs.Fields(0)rs.MoveNextNext irs.CloseEnd Sub3、删改学生信息代码:Option ExplicitPrivate Sub Command4_Click()'从数据库中读取学生信息并添加到窗体中的输入框sqlstr = "select * from student_Info where student_id='" & Combo2.Text & "' and class_no='" & Combo1.Text & "'"Set rs = ExecuteSQL(sqlstr, Msg)If rs.RecordCount = 0 ThenMsgBox "没有找到符合条件的数据!", 48, "警告"mdlTextBox.Blank Me: Combo3.Text = ""ElseText2.Text = Trim(rs.Fields("student_id"))Text1.Text = Trim(rs.Fields("student_name"))Text3.Text = Trim(rs.Fields("born_date"))Combo3.Text = Trim(rs.Fields("class_no"))Combo4.Text = Trim(rs.Fields("student_sex"))Text4.Text = Trim(rs.Fields("tele_number"))Text5.Text = Trim(rs.Fields("address"))Text6.Text = Trim(rs.Fields("comment"))Text7.Text = Trim(rs.Fields("ru_date"))End Ifrs.CloseEnd SubPrivate Sub Command1_Click()Dim cn As ADODB.Connectionsqlstr = "update student_info set student_name='" & Text1.Text & "',born_date= ' " & Text3.Text & " ' ,student_sex='" & Combo4.Text & "',class_no='" & Combo1.Text & "',tele_number='" & Text4.Text & "',address='" & Text5.Text & "',comment='" & Text6.Text & "',ru_date='" & Text7.Text & "' where student_id='" & Combo2.Text & "'"On Error GoTo exitsubSet cn = New ADODB.Connectioncn.Open connstrcn.Execute sqlstrMsgBox "成功修改数据!!"exitsub:cn.ClosemdlTextBox.Blank Me: Combo3.Text = ""End SubPrivate Sub Command2_Click()Dim cn As ADODB.Connectionsqlstr = "delete from student_info where student_id='" & Combo2.Text & "'"On Error GoTo exitsubSet cn = New ADODB.Connectioncn.Open connstrcn.Execute sqlstrMsgBox "成功删除数据!!"exitsub:cn.ClosemdlTextBox.Blank Me: Combo3.Text = "" End SubPrivate Sub Command3_Click()Unload MeForm4.ShowEnd SubPrivate Sub Form_Load()mdlTextBox.Centen MeCombo1.Text = "": Combo2.Text = "" mdlTextBox.Blank MeCombo3.Text = ""Combo4.Text = "男"Combo4.AddItem "男"Combo4.AddItem "女"Dim sqlstr As StringDim Msg As StringDim i As Integersqlstr = "select * from class_Info" Set rs = ExecuteSQL(sqlstr, Msg)For i = 1 To rs.RecordCountCombo1.AddItem rs.Fields(0)Combo3.AddItem rs.Fields(0)rs.MoveNextNextDim sql As StringDim msgtext As Stringsql = "select * from student_Info"Set rs = ExecuteSQL(sql, msgtext)For i = 1 To rs.RecordCountCombo2.AddItem rs.Fields(0)rs.MoveNextNextrs.CloseEnd Sub4、查询学生信息:Option ExplicitPrivate Sub Command1_Click()Dim rs As New ADODB.RecordsetDim cn As New ADODB.ConnectionDim cnstr As Stringcnstr = "driver={sql server};server=.;uid=sa;pwd=;database=student" cn.Open cnstrIf Option1.Value = True Thensqlstr = "select * from student_info"Combo1.Text = ""Text1.Text = "": Text2.Text = ""End IfIf Option2.Value = True Thensqlstr = "select * from student_info where class_no='" & Combo1.Text & "' "Text2.Text = "": Text1.Text = ""End IfIf Option3.Value = True Thensqlstr = "select * from student_info where student_id='" & Text1.Text & "' "Combo1.Text = "": Text2.Text = ""End IfIf Option4.Value = True Thensqlstr = "select * from student_info where student_name='" & Text2.Text & "'"Combo1.Text = "": Text2.Text = ""End Ifrs.Open sqlstr, cnSet rs = ExecuteSQL(sqlstr, Msg)If rs.RecordCount = 0 ThenMsgBox "没有查找到满足条件的数据!", 48, "提示"fgStudent.Rows = 1ElsefgStudent.Rows = rs.RecordCount + 1fgStudent.Cols = 9'设定行高For i = 0 To fgStudent.Rows - 1fgStudent.RowHeight(i) = 280Next i'设定列的属性fgStudent.Row = 0For i = 0 To fgStudent.Cols - 1fgStudent.Col = i '指定当前列为第I 列fgStudent.FixedAlignment(i) = 4 '使内容居中Select Case iCase 0fgStudent.ColWidth(i) = 1500 '设定列宽fgStudent.Text = "学号"Case 1fgStudent.ColWidth(i) = 2000 '设定列宽fgStudent.Text = "姓名"Case 2fgStudent.ColWidth(i) = 800 '设定列宽fgStudent.Text = "性别"Case 3fgStudent.ColWidth(i) = 800 '设定列宽fgStudent.Text = "班级"Case 4fgStudent.ColWidth(i) = 1300 '设定列宽fgStudent.Text = "出生日期"Case 5fgStudent.ColWidth(i) = 1500 '设定列宽fgStudent.Text = "电话"Case 6fgStudent.ColWidth(i) = 1500fgStudent.Text = "入学时间"Case 7fgStudent.ColWidth(i) = 2500 '设定列宽fgStudent.Text = "地址"Case 8fgStudent.ColWidth(i) = 3000 '设定列宽fgStudent.Text = "备注信息"End SelectNext ii = 1 '从第二行开始显示内容While (Not rs.EOF)fgStudent.Row = iFor j = 0 To fgStudent.Cols - 1fgStudent.Col = jfgStudent.CellAlignment = 4Select Case jCase 0fgStudent.Text = rs.Fields("student_id") Case 1fgStudent.Text = rs.Fields("student_name") Case 2fgStudent.Text = rs.Fields("student_sex") Case 3fgStudent.Text = rs.Fields("class_no")Case 4fgStudent.Text = rs.Fields("born_date")Case 5fgStudent.Text = rs.Fields("tele_number") Case 6fgStudent.Text = rs.Fields("ru_date")Case 7fgStudent.Text = rs.Fields("address")Case 8fgStudent.Text = rs.Fields("comment")End SelectNext jrs.MoveNexti = i + 1WendEnd Ifrs.CloseEnd SubPrivate Sub Command2_Click()Unload MeForm4.ShowEnd SubPrivate Sub Form_Load()mdlTextBox.Centen MeText1.Text = "": Text2.Text = "": Combo1.Text = ""Dim rs As ADODB.Recordsetsqlstr = "select * from class_info"Set rs = ExecuteSQL(sqlstr, Msg)For i = 1 To rs.RecordCountCombo1.AddItem rs.Fields(0)rs.MoveNextNextrs.CloseEnd Sub程序运行界面:学生信息管理系统(详细设计)登录的系统界面:总体程序流程图:学校构成系部开始课程选课成绩构成教师授课构成班级构成学生。