学生信息管理系统(完整)
- 格式:doc
- 大小:284.50 KB
- 文档页数:19
管理学生模块据流图:管理老师模块数据流图:选课管理与成绩管理模块数据流图:数据字典数据流描述:数据流名:查询条件数据来源:学生登录处理数据去向:学生信息表说明:通过合适的查询条件,输出学生的信息数据组成:学号+姓名数据流量:早晨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别名:描述:反应学分基本信息定义:总学分=序号+课程名+学分+类别+考核方式+成绩+辅修标记位置::总学分信息录入总学分的查询总学分信息修改。
数据库所用的数据自己导入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]学⽣信息的传递及接收:将需要查询信息由学⽣信息系统客户端由⽹络传到显⽰的服务器上,并且接受学⽣信息管理系统返回的相关信息,然后存储起来。
学生信息管理系统完整源代码注:本系统采用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("授课信息重复");。
目录概述: --------------------------------------------------------------------------------------------------------------- 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、数据库设计:(4)学生成绩信息:result_Info学生信息管理系统(需求分析)系统模块模块有学生信息管理、课程信息管理、成绩信息管理和班级信息管理等几项,各项管理工作涉及到的内容用下面的关系模式表示。
a)学生(学号,姓名,性别,年龄,班级,电话,备注,出生日期,入学时间,班级编号,家庭地址)b)课程(课程编号,课程名称,课程类别,学分,学时)c)班级(系,班级号,指导老师)系统分析1.抽象出当前系统的逻辑模型画出反映当前系统工作的数据流程图。
数据流程图是逻辑模型的图形表示,即使不是专业的计算机技术人员也能非常容易理解,它是一种很好的系统构造的表示方法。
画数据流程图是应该从已获得的人工处理流程中去掉物理因素,只保留数据、信息处理部分。
2.系统功能分析系统主要用于学校学生信息管理,主要任务是用计算机对学生各种信息进行日常管理,如:查询、修改、增加、删除。
3.系统目标设计根据本校的实际情况,利用校园网而设计一套针对性和功能都比较强的学生信息管理系统,对学生信息管理系统进行科学的分类、录入、查询.4.开发设计思想尽量采用学校现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用资源,提高系统开发的水平和应用效果的目的。
系统应该符合学校学生信息管理的规定,满足学校学生日常管理的需要,达到操作过程中的直观、方便、实用、安全等要求。
电子科技大学成都学院程序综合设计论文论文题目学生信息管理系统学生姓名魏国学号1340840625专业机械设计制造及其自动化系(分院)电子工程系授课教师杜娥2015年12月制摘要随着经济的发展,社会的进步,计算机越来越深入到我们日常的工作学习及生活中,成为我们日常生活不可或缺的辅助工具。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已成为人们深刻认识,它已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
现在由于学校规模进一步扩大,学生人数逐渐上升,在学校的学生信息管理中,虽然已经存在许多学生信息管理系统,但由于学校之间的管理差异很信息的不同,各个学校的学生信息管理的要求不一致,这样我们需要根据具体学习的具体要求来开发学生信息管理系统以方便学生管理。
本系统主要对学生各种信息进行处理。
本系统采用C语言编写,设计从实用性出发,设计开发出一个操作简单且符合实际需要的学生信息管理系统。
本文设计出一个可以添加、修改、查询、删除、统计的学生信息管理系统;最后,通过测试分析,力求将学到的只是在学生信息管理系统的得到全面运用,并使系统在实际的操作中能按照设计的要求安全有效的正确运行。
学生信息管理系统是为了实现学校对学生信息管理的系统化、规范化和自动化,从而提高学校管理效率而设计的。
它完全取代了原来一直用人工管理的工作方式,避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成学生信息管理提供了强有力的工具和管理手段。
学生信息管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了学生信息管理的要求。
学生信息管理系统在运行阶段,效果好,数据准确性高,提高了工作效率,同时也实现了学生信息管理计算机化。
关键字:学生信息,管理系统,数据库,C语言编写第一章系统功能和组成模块1.1系统功能学生信息管理系统存放了每个学生的学号,姓名,性别,年龄,出生年月,家庭住址,政治面貌等信息的数据库。
《Java应用开发》课程设计报告题目:学生信息管理系统指导老师:***姓名:**专业:计算机科学与技术班级: 10级1班日期:2012年6月目录一、系统总体设计 (3)(一)设计目标及完成功能 (3)(二)系统流程图 (4)二、详细设计 (5)(二)系统设计 (9)(三)源代码及技术 (12)三、使用与测试 (42)四、数据库设计 (43)总结(体会) (44)参考文献 (45)一、系统总体设计(一)设计目标及完成功能1、设计目标学生信息管理系统是学校的一项重要数据资源,因而学生信息管理必然成为学校的一项常规性的重要工作.加强学生信息管理在单纯依靠以手工管理的方法,不仅需要耗用大量的人力、物力、财力,而且由于人工管理存在着大量的不可控因素,造成了信息管理的某些不规范,工作效率低,难以达到预期的目的。
为提高工作效率、保证学校能够及时准确了解各学生的各种信息及学生总体信息,开发学生信息管理系统。
2、完成功能完成学生信息的基本管理.本系统分为管理员和学生管理两部分。
管理员管理项目如下:添加学生信息、修改学生信息、查询学生信息、删除学生信息;学生管理项目如下:添加学生信息、查询学生信息.(二)系统流程图二、详细设计图2-1 登陆界面1图2—2 登陆界面2图2—3 系统主界面图2—4 添加学生信息界面图2—5 修改学生信息界面图2—6 查询学生信息界面图2—7 删除学生信息界面图2-8 系统信息界面图2—9 我的信息界面(二)系统设计1、系统结构图学生信息管理系统学生登陆管理员登陆添加学生信息查询学生信息添加学生信息修改学生信息查询学生信息删除学生信息2、类及功能列表(三) 源代码及技术1、所有代码student.mdf -数据库将以下图片以上图名称存入images文件夹目录下。
要自己将各代码新建为.java格式文件,放在与images文件夹同目录下.并将数据库附加到sqlserver2005,再不需要任何改动方可运行.①登陆界面1import java。
--1绪言1.1 系统概述本学生信息管理系统可以说是一个综合性的学校学生管理系统,这它集成了学生学籍管理系统、学生成绩管理系统、学生档案管理系统、学生缴费管理系统等多种功能。
本系统主要用到的技术包括:MVC三层架构开发模式,这种设计模式把应用逻辑、处理过程和显示逻辑分成不同的组件来实现,这些组建可以进行交互和重用。
封装了数据操作类,以便调用数据库的操作函数因而具有较强的实用性和先进性。
本文首先探讨了SQL语言接口和VB软件开发工具的技术特点以及结合SQL和VB的数据库访问方法,在此基础上,利用VB和Microsoft SQL Server 2000实现了一个基于C/S模式的学生信息管理系统。
在本文的后半部分,给出了该系统的整个系统分析、设计以及实现的过程,包括需求分析、功能后矛盾的不完整的数据;⑵完整、及时提供在管理及决策中需要的数据;⑶利用指定的数据关系式分析数据,客观预测未来;⑷向各级管理机构提供不同详细程度的报告,缩短分析和解释时间;⑸用最低的费用最短的时间提供尽可能精确、可靠的信息,以便使决策者选择最佳的实施方案,以提高企业的经济效益。
各方面的竞争中占有一席之地。
学生信息管理系统是一个学校不可缺少的部分,它的内容对于学校的管理者来说至关重要,所以学生信息管理系统应该能够为老师提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理学生档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生信息进行管理,有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生信息管理的效率,也是学校的科学化、正规化管理,与世界接轨的重要条件。
山东省普通高中学生综合素质评价信息管理系统操作手册第一部分:系统概述山东省普通高中学生综合素质评价信息管理系统是一个专门为山东省普通高中学生设计的在线平台,旨在全面记录和评价学生在校期间的综合素质表现。
该系统集成了学生信息管理、综合素质评价、成绩查询、活动记录等功能,为学生、教师和家长提供了一个便捷的互动平台。
系统主要特点包括:1. 用户友好:系统界面简洁明了,操作便捷,适合不同年龄段的用户使用。
2. 数据安全:系统采用先进的数据加密技术,确保学生信息的安全性和隐私性。
3. 实时更新:学生信息、成绩、活动记录等数据可以实时更新,方便用户随时查看。
4. 综合评价:系统根据学生的学业成绩、综合素质表现等多方面数据,全面的学生评价报告。
5. 互动交流:系统支持学生、教师和家长之间的互动交流,方便及时沟通和反馈。
第二部分:用户注册与登录1. 打开浏览器,输入山东省普通高中学生综合素质评价信息管理系统的网址。
2. 在首页找到“用户注册”或“登录”按钮,进入注册或登录页面。
3. 如果是首次使用,请选择“用户注册”,填写相关信息,如姓名、学号、联系方式等,并设置登录密码。
4. 注册成功后,返回登录页面,输入用户名和密码,“登录”按钮。
5. 登录成功后,即可进入系统主页,开始使用各种功能。
第三部分:学生信息管理1. 登录系统后,在主页找到“学生信息管理”模块,进入。
2. 在“基本信息”页面,可以查看和编辑学生的基本信息,如姓名、性别、出生日期、家庭住址等。
3. 在“成绩管理”页面,可以查看和编辑学生的各科成绩,包括平时成绩、期中成绩、期末成绩等。
4. 在“活动记录”页面,可以查看和编辑学生参加的各种活动记录,如社团活动、志愿服务、竞赛获奖等。
5. 在“综合素质评价”页面,可以查看和编辑学生的综合素质评价报告,包括学业成绩、综合素质表现等。
第四部分:成绩查询与导出1. 登录系统后,在主页找到“成绩查询”模块,进入。
四个表的E-R实体模型图分析:在此学生成绩信息中有4个表需要建立学生信息表(student)包括学号(sno)、姓名(sname)、性别(Ssex)、班级(class)、出生日期(sbirth)教师信息表(teacher)包括教师编号(tno)、姓名(tname)、性别(Tsex)、部门(depart)、职称(prof)、出生日期(tbirth)成绩表(score)包括学号(sno)、课程号(cno)、成绩(degree)课程信息表(course)包括课程号(cno)、课程名称(cname)、教师编号(tno)五、表结构在teacher表中,以教师编号tno为主键,对其进行惟一性约束。
在Course表中,以课程号为主键,对其进行惟一性约束。
(1)、创建一个degree_rule规则create rule degree_ruleas@values>0把此规则绑定到score表中degree列exec sp_bindrule 'degree_rule','score.degree'在向成绩表中添加记录时,如果成绩degree〈0,则插入不成功.(2)、创建一个tel_rule规则create rule tel_ruleas@value like '[0—9] [0-9] [0-9] [0-9] [0—9] [0—9] [0—9] [0—9]'把此规则绑定到teacher表中tel列exec sp_bindrule 'tel_rule','teacher.tel’在向教师表中添加记录时,如果电话号码不是0—9的数字,则插入不成功。
10、创建存储过程(1)、创建一个存储过程,来显示成绩表中的课程号在课程表中并且所任教师性别为男、所在部门是计算机系的成绩表中的列create proc student_11asselect * from score where cno in (select cno from course ,teacher where course。
学生信息管理系统学生信息管理系统是针对学校人事处的大量业务处理工作而开发的管理软件,主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、科学化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点。
例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生档案管理的效率,也是进行科学化、正规化管理,与世界接轨的重要条件。
随着我国教育产业化的飞速发展,社会对教育水平和教学管理软硬件的要求日益提高,尤其是对一个学校能够具有一整套完善的教学管理软件提出了更多的要求。
为了适应这种形式,教育系统尤其是大学不仅首先要有坚实的硬件基础,还要有一整套完善的教学管理软件管理系统。
而要实现这一功能,就要求学校管理者配备一套高效的教育管理网络系统,以便在学校内实施良好的一整套完善的管理且以最快地速度响应教师和学生的需求,及时为他们提供服务,为他们提供一个高效、便捷的环境。
学生信息管理系统是校园网络中一个重要的应用系统,它大大改善了学校教学、科研与管理的基础环境,在一定程度上反映出学校管理现代化的水平。
随着国家对于教育的重视逐渐加大,学校正向着大型化、规模化发展,而对于大中型学校,跟学生信息管理有关的信息随之急剧增加。
在这种情况下单靠人工来处理员工的工资不但显得力不从心,而且极容易出错。
该系统就是设计一个学生信息数据库管理系统,由计算机代替人工执行一系列诸如增加新学生,删除旧学生,学生信息修改,查询,维护及打印等操作。
这样就使学生部门管理人员可以轻松快捷地完成学生信息管理的任务。
山东省普通高中学生综合素质评价信息管理系统操作手册学生角色二〇一七年五月目录文档编写目的 (3)功能简介及使用注意事项 (3)第一部分首页 (5)一、通知公告 (5)二、结果公示 (6)三、点滴记录 (7)四、同学圈 (7)第二部分点滴记录 (8)一、任职情况 (9)二、奖惩情况 (12)三、典型事例 (16)四、研究性学习及创新成果 (20)五、日常体育锻炼 (24)六、心理素质展示 (26)七、艺术素养 (27)八、社会实践 (32)九、陈述报告 (36)十、陈述总报告(只有高三才有) (38)十一、材料排序 (38)第三部分档案查看 (39)一、学期档案 (39)二、材料记录 (42)第四部分课程管理 (43)一一 在线选课 (43)第五部分我的课表 (44)第六部分我的同学圈 (45)文档编写目的本文档用来指导学生用户快速学习、使用“山东省普通高中学生综合素质评价信息管理系统”(以下简称“综评系统”)。
功能简介及使用注意事项1. 学生使用主要流程,如下图:其中个人记录包含:任职情况、奖惩情况、典型事例、研究型学习、日常锻炼、心理素质、艺术素养、社会实践、陈述报告九大部分。
筛选排序包含:任职情况、奖惩情况、艺术素养三部分。
材料检查包含:基础信息、奖惩情况、日常操行、课程修习、校本课程、体测数据、学校特色指标、教师评语八部分。
2.学生帐号及使用:建籍完成后生成:1学生1家长账号为省学籍号学校管理员导出初始化账号和密码线下下发学校管理员可重置其密码注意:学籍号不可重复使用家长可绑定手机——》找回密码3.学生记录综评资料随时记录班级提交学校公示(5天)归档(3.1/8.1/5.1)PC+移动端点滴记录可选入档案佐证材料:文件(图片)+链接(视频)注意:实名记录入档材料虚假取消高考资格4.学生筛选综评资料,并排序学期末筛选毕业学期前排序省里统一划线注意:进入档案依据5.学生查看他人评价学籍信息有误——>学籍系统中修改体测数据有误——>体卫艺平台中修改成绩等有错误——>反馈给老师第一部分首页一、通知公告该模块显示上级部门下发的通知公告,点击名称可以查看该条通知公告的详细信息,点击“更多”,进入“通知公告列表”,可以查看更多的通知公告信息。
学生信息管理系统(总体设计)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程序运行界面:学生信息管理系统(详细设计)登录的系统界面:总体程序流程图:。