学生信息管理系统数据库设计和编码
- 格式:doc
- 大小:169.50 KB
- 文档页数:14
Model: 学生管理系统需求模型Report: Student ManageAuthor: NI_YinZVersion: 1.0Date: 2011年11月20日一、数据库数据字典通过对学生管理系统工作的内容以及相关数据流程分析,根据学生管理系统的需要,可以设计出能满足用户需求的各种实体,以及它们之间的关系,由此得到数据库所支持的数据模型,即数据库的逻辑结构,具体情况如下:在mysql中建立了student_manage数据库,共包含八张表:学生表,成绩表,课程表,考试表,学生操行表,教师表,班级表,班级评估表。
每张表的字段、数据类型具体以及备注的详细情况如下:1、学生表(student)1NI_YinZ学生主键(student_id) Integer (数据库里长度设置为8)学生姓名(student_name) varchar(20)学生密码(student_password) varchar (32)学生所属专业(student_major) varchar (20)学生性别(student_sex) varchar (2)学生年龄(student_age) Integer (数据库里长度设置为3)学生生日(student_birthday) varchar (10)学生地址(student_address) varchar (40)学生兴趣(student_interests) text (学生兴趣以数组形式存入)学生星座(student_constellation) varchar (6)学生QQ(student_qq) Integer (数据库里长度设置为11)学生头像(student_photo) text学生日志(student_log) text学生日志标题(student_log_title) text学生所属班级(studet_class_name)varchar (20)学生所属年级(student_this_semester)varchar (20)2、成绩表(grade)一个学生一条数据每个学生对应的每门课程的成绩成绩主键(grade_id) Integer (数据库里长度设置为8)成绩学生名字(grade_student_name) varchar(20)成绩科目名(grade_curriculum_name) text (以数组形式存入,与成绩对应)2NI_YinZ成绩分数(curriculum_grade_num) text (以数组形式存入,与科目对应)成绩学期名(grade_semester)varchar(20)成绩专业名(grade_major)varchar(20)成绩班级名(grade_class)varchar(20)成绩考试时间/类型(grade_remark)varchar(20)成绩登记时间(grade_time)date成绩学生学号(grade_student_num)varchar(50)3、课程表(curriculum)一天一课一条数据课程主键(curriculum_id) Integer (数据库里长度设置为8)星期数目(week_num) varchar(8) (以如“星期一”形式存入)课程科目名(curriculum_name) varchar(20)课程课次(curriculum_this_week_num_time) varchar(30) (以如“第一节”形式存入)课程所属班级名(curriculum_this_class_name) varchar(20)当前班级的学期(curriculum_this_semester) varchar(20)4、考试表(remark)考试主键(remark_id)Integer (数据库里长度设置为8)考试类型或者时间(remark_grade_time)text (以如“期末”“一月”形式存入)当前考试分数(this_time_all_grade)Integer (数据库里长度设置为8)3NI_YinZ5、学生操行表(student_behavior)操行主键(student_behavior_id)Integer (数据库里长度设置为8)操行学生名(behavior_student_name) varchar(20)操行学期名(behavior_semester) varchar(20)操行班级名(behavior_class) varchar(20)操行学期周数(behavior_week_num) varchar(10)操行星期数(behavior_weekday) varchar(10)操行课次(behavior_class_time) text操行出勤情况(behavior_status) text操行总分(behavior_all_grade_num) varchar(10)6、教师表(teacher)教师主键(teacher_id) Integer (数据库里长度设置为8)教师姓名(teacher_name) varchar(20)教师密码(teacher_password) varchar(32)教师性别(teacher_sex) varchar(2)教师所教班级名(teacher_class_name) text (以数组形式存入)教师所教课程(teacher_teach_curriculum) text (以数组形式存入)教师QQ(teacher_qq) Integer (数据库里长度设置为11)4NI_YinZ教师头像(teacher_photo) text教师日志(teacher_log) text教师日志标题(teacher_log_title) text7、班级表(class)班级主键(class_id) Integer (数据库里长度设置为8)班级名(class_name) varchar(20)班级专业名(class_major_name) varchar(20)班级课程名(class_curriculum_name) text (以数组方式存入与教师名对应)班级教师名(class_teacher_name) text (以数组方式存入与课程名对应)班级学生名(class_student_name) text (以数组方式存入班级数据单位为班级(个))当前学期名(class_this_semester) varchar(20)当前教师所教课程(class_use_curriculum_name) text (以数组方式存入)8、班级评估表(class_evaluating)班级评估主键(class_evaluating_id)Integer (数据库里长度设置为8)班级评估年级名(class_evaluating_semester)varchar(20)班级评估专业名(class_evaluating_major)varchar(20)班级评估班级名(class_evaluating_class)varchar(20)5NI_YinZ班级评估量化理由(class_evaluating_reason)text班级评估当前分值(class_evaluating_this_score)Integer (数据库里长度设置为8)班级评估时间(class_evaluating_time)date班级评估总分值(class_evaluating_all_score)Integer (数据库里长度设置为8)二、代码数据字典通过对学生管理系统工作内容及相关情况的分析,根据学生和老师对管理系统的需要,开发者设计出能满足用户需求的各种模块以及功能,具体情况如下:根据命名规范:首字母小写,后面单词首字母大写。
目录1.Client.java (2)2.LoginGUI.java (2)3.AdminGUI.java (6)4.StudentGUI.java (14)5.Select.java (17)6.UpdateAndInsert.java (24)7.Delete.java (27)8.Student.java (29)9.Administrator.java (31)1.Client.java/*程序入口*/package ms;public class Client{public static void main(String[] args){LoginGUI lg=new LoginGUI();lg.login();}}2.LoginGUI.java/*登陆主窗口*/package ms;import java.awt.BorderLayout;import java.awt.Choice;import java.awt.GridLayout;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;public class LoginGUI{JFrame log=null; //登陆主窗口JPanel jPanel1=null; //用于存放用户名、密码、登录方式标签JPanel jPanel2=null; //用于存放用户名、密码输入框和登录方式选择框JPanel jPanel3=null; //用于存放登陆、退出按钮JLabel jLabel1=null; //用于存放用户名标签JLabel jLabel2=null; //用于存放密码标签JLabel jLabel3=null; //用于存放登录方式标签JLabel jLabel4=null; //学生管理系统登陆标签TextField t1=null; //用于存放用户名输入TextField t2=null; //用于存放密码输入Choice c=null; //用于存放登录方式选择JButton jB1=null; //登陆按钮JButton jB2=null; //退出按钮String UserName=null; //存放用户输入的用户名String UserPassword=null; //存放用户输入的密码int UserLimit=-1; //存放用户选择登陆权限public LoginGUI(){super();this.log = new JFrame("学生学籍管理系统");this.jPanel1=new JPanel();this.jPanel2=new JPanel();this.jPanel3=new JPanel();jLabel1=new JLabel("用户名");jLabel2=new JLabel("密码");jLabel3=new JLabel("登录方式");jLabel4=new JLabel(new ImageIcon("image/login.jpg"));t1=new TextField();t2=new TextField();c=new Choice(); //创建一个登录方式下拉选择框c.add("学生登陆");c.add("管理员登陆");jB1=new JButton("登陆"); //创建登陆按钮jB2=new JButton("退出"); //创建退出按钮}public void login(){BorderLayout border=new BorderLayout();border.setVgap(15);border.setHgap(10);log.setLayout(border); //设置登陆主窗口布局管理器为BorderLayoutlog.add(jPanel1, BorderLayout.WEST);log.add(jPanel2, BorderLayout.CENTER);log.add(jPanel3, BorderLayout.SOUTH);log.add(jLabel4,BorderLayout.NORTH);jPanel1.setLayout(new GridLayout(3,1,30,20)); //3行1列jPanel2.setLayout(new GridLayout(3,1,30,20));jPanel3.setLayout(new GridLayout(1,2,10,30));jPanel1.add(jLabel1); //添加三个标签用户名、密码、登陆方式jPanel1.add(jLabel2);jPanel1.add(jLabel3);jPanel2.add(t1); //添加用户名、密码输入文本框登陆方式选择框jPanel2.add(t2);jPanel2.add(c);jPanel3.add(jB1); //添加两个按钮jPanel3.add(jB2);jB1.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){erName=LoginGUI.this.t1.getText();erPassword=LoginGUI.this.t2.getText();erLimit=LoginGUI.this.c.getSelectedIndex();if(erLimit==0){StudentGUI ll=new StudentGUI(LoginGUI.this.log,erName);Select sel=new Select();sel.setStudentList();for(int i=0;i<sel.getStudentAllId().size();i++){if(sel.getStudentAllId().get(i).toString().equals(erNa me)&&sel.getStudentAllPassword().get(i).equals(erPass word)){log.setVisible(false);ll.studentGo();}else if(i==sel.getStudentAllId().size()-1){JOptionPane.showMessageDialog(LoginGUI.this.log,"用户名密码错误");}}}else if(erLimit==1){AdminGUI admin=new AdminGUI(LoginGUI.this.log);Select sel=new Select();sel.setAdminList();for(int i=0;i<sel.getAdminAllId().size();i++){if(sel.getAdminAllId().get(i).toString().equals(erNam e)&&sel.getAdminAllPassword().get(i).equals(erPasswor d)){log.setVisible(false);admin.adminGo();}else if(i==sel.getAdminAllId().size()-1){JOptionPane.showMessageDialog(LoginGUI.this.log,"用户名密码错误");}}}}});jB2.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){System.exit(0);}});log.setSize(240,260);log.setLocationRelativeTo(null);log.setResizable(false);log.addWindowListener(new WindowAdapter(){@Overridepublic void windowClosing(WindowEvent e){System.exit(0);}});log.setVisible(true);}}3.AdminGUI.java/*管理员登陆图形界面*/package ms;import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.TextArea;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;public class AdminGUI{JDialog log=null;//管理员登陆主窗口JPanel jp1=null;//用于存放管理员登陆标签和jp5JPanel jp2=null;//用于存放查询修改增加删除按钮JPanel jp3=null;//用于存放信息块和jp5JPanel jp4=null;//用于存放修改插入删除按钮JPanel jp5=null;//用于存放请输入学号文本框JLabel jadminLog=null; //管理员登陆标签JLabel jLabel=null; //请输入学号标签TextField tf=null; //请输入学号文本框JButton jb1=null;//查询按钮JButton jb2=null;//修改按钮JButton jb3=null;//增加按钮JButton jb4=null;//删除按钮JButton jb5=null; //列出全部学生信息TextArea ta=null;//信息文本框JLabel jl=null; //用于站位String id=null; //用于保存用户输入查询学号TextField[] jtf = new T extField[9] ;JDialog jdialog=null;public AdminGUI(JFrame log){super();this.log = new JDialog(log,"管理员登陆",true);jp1=new JPanel();jp2=new JPanel();jp3=new JPanel();jp4=new JPanel();jp5=new JPanel();jadminLog=new JLabel(new ImageIcon("image/admin.jpg"));jLabel=new JLabel("请输入学号");tf=new TextField();jb1=new JButton("查询");jb2=new JButton("修改");jb3=new JButton("增加");jb4=new JButton("删除");jb5=new JButton("列出全部学生信息");ta=new TextArea("点击查询按钮将在此显示查询信息");jl=new JLabel();}public void adminGo(){BorderLayout bl=new BorderLayout();bl.setVgap(30);bl.setHgap(30);log.setLayout(bl);log.add(jp1,BorderLayout.NORTH);BorderLayout bl1=new BorderLayout();bl1.setVgap(20);jp1.setLayout(bl1);jp1.add(jadminLog,BorderLayout.CENTER);jp5.setLayout(new GridLayout(1,2,200,200));jp5.add(jLabel);jp5.add(tf);log.add(jp2,BorderLayout.WEST);jp2.setLayout(new GridLayout(2,1,200,300));jp2.add(jb1);jp2.add(jb5);log.add(jp3,BorderLayout.CENTER);jp3.setLayout(new BorderLayout(10, 10));jp3.add(jp5,BorderLayout.NORTH);jp3.add(ta);jp5.setLayout(new GridLayout(1,5,10,10));jp5.add(jLabel);jp5.add(tf);log.add(jp4,BorderLayout.SOUTH);jp4.setLayout(new GridLayout(1,3,200,30));jp4.add(jb2);jp4.add(jb3);jp4.add(jb4);log.addWindowListener(new WindowAdapter(){@Overridepublic void windowClosing(WindowEvent e){System.exit(0);}});jb1.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){AdminGUI.this.id=AdminGUI.this.tf.getText();Select sel=new Select();sel.selectStudent(AdminGUI.this.id);if(sel.getStudent()!=null){Student student=sel.getStudent();AdminGUI.this.ta.setText("学号\t\t"+"姓名\t\t"+"性别\t\t"+"出生日期\t\t"+"民族\t\t"+"籍贯\t\t"+"专业\t\t"+"班级\t\t"+"联系电话\t\t"+"密码\t\t");AdminGUI.this.ta.append("\n"+student.getId()+"\t\t"+student.getNa me()+"\t\t"+student.getSex()+"\t\t"+student.getBornDate()+"\t\t"+student.getNationality()+"\t\t"+student.getNationality()+"\t\t"+stu dent.getMaj()+"\t"+student.getCla()+"\t\t"+student.getTelNum()+"\t\t"+student.getPassword()+"\n");}else{AdminGUI.this.ta.setText("查无此人");}}});jb5.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){Select sel=new Select();sel.selectAllStudent();AdminGUI.this.ta.setText("学号\t\t"+"姓名\t\t"+"性别\t\t"+"出生日期\t\t"+"民族\t\t"+"籍贯\t\t"+"专业\t\t"+"班级\t\t"+"联系电话\t\t"+"密码\t\t\n");for(int i=0;i<sel.getAllStudent().size();i++){Student student=sel.getAllStudent().get(i);AdminGUI.this.ta.append(student.getId()+"\t\t"+student.getName() +"\t\t"+student.getSex()+"\t\t"+student.getBornDate()+"\t\t"+student.getNationality()+"\t\t"+student.getHometown()+"\t\t"+st udent.getMaj()+"\t"+student.getCla()+"\t\t"+student.getTelNum()+"\t\t"+student.getPa ssword()+"\n");}}});log.setSize(850,580);log.setLocationRelativeTo(null);log.setResizable(false);jb3.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){jdialog=new JDialog(AdminGUI.this.log);String[] str=new String[]{"姓名","性别","出生日期","民族","籍贯","专业","班级","联系电话","密码"};JLabel[] jlabel=new JLabel[9];for(int i=0;i<9;i++){jlabel[i]=new JLabel(str[i]);jtf[i]=new TextField();}JPanel jpanel1=new JPanel();JPanel jpanel2=new JPanel();JButton jbutton1=new JButton("确定");JButton jbutton2=new JButton("取消");jdialog.setLayout(new BorderLayout());jdialog.add(jpanel1,BorderLayout.CENTER);jdialog.add(jpanel2,BorderLayout.SOUTH);jpanel1.setLayout(new GridLayout(9,2,10,10));for(int i=0;i<9;i++){jpanel1.add(jlabel[i]);jpanel1.add(jtf[i]);}jpanel2.add(jbutton1);jpanel2.add(jbutton2);jbutton1.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){Student student=new Student();student.setName(AdminGUI.this.jtf[0].getText());student.setSex(AdminGUI.this.jtf[1].getText()); student.setBornDate(AdminGUI.this.jtf[2].getText());student.setNationality(AdminGUI.this.jtf[3].getText());student.setHometown(AdminGUI.this.jtf[4].getText());student.setMaj(AdminGUI.this.jtf[5].getText());student.setCla(AdminGUI.this.jtf[6].getText());student.setTelNum(AdminGUI.this.jtf[7].getText()); student.setPassword(AdminGUI.this.jtf[8].getText());UpdateAndInsert up=new UpdateAndInsert();if(up.insertStudent(student)==true){JOptionPane.showMessageDialog(AdminGUI.this.log,"添加成功");}jdialog.dispose();}});jbutton2.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){jdialog.dispose();}});jdialog.setSize(500,400);jdialog.setLocationRelativeTo(null);jdialog.setResizable(false);jdialog.setVisible(true);}});jb4.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){if(new Delete().delete(AdminGUI.this.tf.getText())==true){JOptionPane.showMessageDialog(AdminGUI.this.log,"刪除成功");}elseJOptionPane.showMessageDialog(AdminGUI.this.log,"刪除失敗");}});jb2.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){Select sel=new Select();AdminGUI.this.id=AdminGUI.this.tf.getText();sel.selectStudent(AdminGUI.this.tf.getText());Student student=sel.getStudent();if(student==null){JOptionPane.showMessageDialog(AdminGUI.this.log,"请检查输入的学号");}else{jdialog=new JDialog(AdminGUI.this.log);String[] str=new String[]{"姓名","性别","出生日期","民族","籍贯","专业","班级","联系电话","密码"};JLabel[] jlabel=new JLabel[9];for(int i=0;i<9;i++){jlabel[i]=new JLabel(str[i]);}jtf[0]=new TextField(student.getName());jtf[1]=new TextField(student.getSex());jtf[2]=new TextField(student.getBornDate());jtf[3]=new TextField(student.getNationality());jtf[4]=new TextField(student.getHometown());jtf[5]=new TextField(student.getMaj());jtf[6]=new TextField(student.getCla());jtf[7]=new TextField(student.getTelNum());jtf[8]=new TextField(student.getPassword());JPanel jpanel1=new JPanel();JPanel jpanel2=new JPanel();JButton jbutton1=new JButton("确定");JButton jbutton2=new JButton("取消");jdialog.setLayout(new BorderLayout());jdialog.add(jpanel1,BorderLayout.CENTER);jdialog.add(jpanel2,BorderLayout.SOUTH);jpanel1.setLayout(new GridLayout(9,2,10,10));for(int i=0;i<9;i++){jpanel1.add(jlabel[i]);jpanel1.add(jtf[i]);}jpanel2.add(jbutton1);jpanel2.add(jbutton2);jbutton1.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){Student student=new Student(Integer.parseInt(AdminGUI.this.id), jtf[0].getText(), jtf[1].getText(), jtf[2].getText(), jtf[3].getText(), jtf[4].getText(), jtf[5].getText(), jtf[6].getText(), jtf[7].getText(), jtf[8].getText());UpdateAndInsert up=new UpdateAndInsert();if(up.updateStudent(student)==true){JOptionPane.showMessageDialog(AdminGUI.this.log,"更改成功");;}jdialog.dispose();}});jbutton2.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){jdialog.dispose();}});jdialog.setSize(500,400);jdialog.setLocationRelativeTo(null);jdialog.setResizable(false);jdialog.setVisible(true);}}});log.setVisible(true);}}4.StudentGUI.java/*学生操作图形界面*/package ms;import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.TextField;import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;public class StudentGUI{JDialog log=null;//学生登入类主窗口JPanel jp1=null;//用于存放登入块JPanel jp2=null;//用于存放信息块JPanel jp3=null;//用于密码存放修改块JPanel jp4=null;//用于存放我的信息按钮JLabel jl1=null;//学生登入标签JLabel jl2=null;//学号标签JLabel jl3=null;//学生姓名标签JLabel jl4=null;//性别标签JLabel jl5=null;//出生日期标签JLabel jl6=null;//民族标签JLabel jl7=null;//籍贯标签JLabel jl8=null;//专业标签JLabel jl9=null;//班级标签JLabel jl10=null;//联系电话标签JLabel jl11=null;//请输入密码标签JButton jb1=null;//我的信息按钮JButton jb2=null;//密码修改按钮TextField t1=null;//学号文本框TextField t2=null;//学生姓名文本框TextField t3=null;//性别文本框TextField t4=null;//出生日期文本框TextField t5=null;//民族文本框TextField t6=null;//籍贯文本框TextField t7=null;//专业文本框TextField t8=null;//班级文本框TextField t9=null;//联系电话文本框TextField t10=null;//密码文本框JPanel jp5=new JPanel();//存放密码输入框String id=null;public StudentGUI(JFrame log,String str){super();this.log = new JDialog(log,"学生登入",true);jp1=new JPanel();jp2=new JPanel();jp3=new JPanel();jp4=new JPanel();jl1=new JLabel(new ImageIcon("image/student.jpg"));jl2=new JLabel("学号:");jl3=new JLabel("学生姓名:");jl4=new JLabel("性别:");jl5=new JLabel("出生日期:");jl6=new JLabel("民族:");jl7=new JLabel("籍贯:");jl8=new JLabel("专业:");jl9=new JLabel("班级:");jl10=new JLabel("联系电话:");jl11=new JLabel("请输入新密码:");jb1=new JButton("我的信息");jb2=new JButton("密码修改");t1=new TextField();t2=new TextField();t3=new TextField();t4=new TextField();t5=new TextField();t6=new TextField();t7=new TextField();t8=new TextField();t9=new TextField();t10=new TextField();this.id=str;}public void studentGo(){BorderLayout bl=new BorderLayout();bl.setHgap(30);bl.setVgap(30);log.setLayout(bl);log.add(jp1,BorderLayout.NORTH);//将登入块信息块密码修改块放入主窗口log.add(jp2,BorderLayout.CENTER);log.add(jp3,BorderLayout.SOUTH);log.add(jp4,BorderLayout.WEST);jp1.add(jl1,BorderLayout.CENTER);jp2.setLayout(new GridLayout(5,2,20,10));jp2.add(jl2);jp2.add(t1);jp2.add(jl3);jp2.add(t2);jp2.add(jl4);jp2.add(t3);jp2.add(jl5);jp2.add(t4);jp2.add(jl6);jp2.add(t5);jp2.add(jl7);jp2.add(t6);jp2.add(jl8);jp2.add(t7);jp2.add(jl9);jp2.add(t8);jp2.add(jl10);jp2.add(t9);jp4.add(jb1);BorderLayout bl1=new BorderLayout();bl1.setHgap(38);jp3.setLayout(bl1);jp3.add(jb2,BorderLayout.WEST);jp3.add(jp5,BorderLayout.CENTER);jp5.setLayout(new GridLayout());jp5.add(jl11);jp5.add(t10);jb1.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){Select sel=new Select();sel.selectStudent(id);Student student=sel.getStudent();t1.setText(new Integer(student.getId()).toString());t2.setText(student.getName());t3.setText(student.getSex());t4.setText(student.getBornDate());t5.setText(student.getNationality());t6.setText(student.getHometown());t7.setText(student.getMaj());t8.setText(student.getCla());t9.setText(student.getTelNum());}});jb2.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){String password=StudentGUI.this.t10.getText();UpdateAndInsert up=new UpdateAndInsert();if(up.updatePassword(id, password)==true){JOptionPane.showMessageDialog(StudentGUI.this.log,"修改成功");}}});log.addWindowListener(new WindowAdapter(){@Overridepublic void windowClosing(WindowEvent e){System.exit(0);}});log.setSize(550,420);log.setLocationRelativeTo(null);log.setResizable(false);log.setVisible(true);}}5.Select.java/* 查询类包括查询的各种方法*/package ms;import java.sql.*;import java.util.LinkedList;public class Select{private LinkedList<Integer> studentAllId=null;private LinkedList<String> studentAllPassword=null;private LinkedList<Integer> adminAllId=null;private LinkedList<String> adminAllPassword=null;private Student student=null;private LinkedList<Student> allStudent=null;// 定义MySQL的数据库驱动程序public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;// 定义MySQL数据库的连接地址public static final String DBURL = "jdbc:mysql://localhost:3306/studentMS" ;// MySQL数据库的连接用户名public static final String DBUSER = "root" ;// MySQL数据库的连接密码public static final String DBPASS = "systemout" ;public Select(){super();this.studentAllId = new LinkedList<Integer>();this.studentAllPassword = new LinkedList<String>();this.adminAllId = new LinkedList<Integer>();this.adminAllPassword = new LinkedList<String>();this.allStudent = new LinkedList<Student>();}public LinkedList<Integer> getStudentAllId(){return studentAllId;}public LinkedList<String> getStudentAllPassword(){return studentAllPassword;}public LinkedList<Integer> getAdminAllId(){return adminAllId;}public LinkedList<String> getAdminAllPassword(){return adminAllPassword;}public Student getStudent(){return student;}public LinkedList<Student> getAllStudent(){return allStudent;}public void setStudentList() //设置studentAllId 和studentAllPassword{Connection conn = null ; // 数据库连接Statement stmt = null ; // 数据库的操作对象ResultSet rs = null ; // 保存查询结果String sql = "select id,password from student";try{Class.forName(DBDRIVER) ; // 加载驱动程序}catch(ClassNotFoundException e){e.printStackTrace() ;}try{conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;}catch(SQLException e){e.printStackTrace() ;}try{stmt = conn.createStatement() ; //得到stmt对象用于执行sql语句} catch (SQLException e1){e1.printStackTrace();}try{rs = stmt.executeQuery(sql) ;//保存sql查询结果} catch (SQLException e1){e1.printStackTrace();}try{while(rs.next()){studentAllId.add(rs.getInt(1));studentAllPassword.add(rs.getString(2));}} catch (SQLException e1){e1.printStackTrace();}try{rs.close() ;stmt.close() ;conn.close() ; // 数据库关闭}catch(SQLException e){e.printStackTrace() ;}}public void setAdminList(){Connection conn = null ; // 数据库连接Statement stmt = null ; // 数据库的操作对象ResultSet rs = null ; // 保存查询结果String sql = "select id,password from admin";try{Class.forName(DBDRIVER) ; // 加载驱动程序}catch(ClassNotFoundException e){e.printStackTrace() ;}try{conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;}catch(SQLException e){e.printStackTrace() ;}try{stmt = conn.createStatement() ; //得到stmt对象用于执行sql语句} catch (SQLException e1){e1.printStackTrace();}try{rs = stmt.executeQuery(sql) ;//保存sql查询结果} catch (SQLException e1){e1.printStackTrace();}try{while(rs.next()){adminAllId.add(rs.getInt(1));adminAllPassword.add(rs.getString(2));}} catch (SQLException e1){e1.printStackTrace();}try{rs.close() ;stmt.close() ;conn.close() ; // 数据库关闭}catch(SQLException e){e.printStackTrace() ;}}public boolean selectStudent(String str){Connection conn = null ; // 数据库连接PreparedStatement pstmt = null ; // 数据库的操作对象ResultSet rs = null ; // 保存查询结果String sql = "select name,sex,bornDate,nationality,hometown,maj,cla,telNum,password "+ "from student where id=?";try{Class.forName(DBDRIVER) ; // 加载驱动程序}catch(ClassNotFoundException e){e.printStackTrace() ;}try{conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;}catch(SQLException e){e.printStackTrace() ;}try{pstmt = conn.prepareStatement(sql) ; //得到stmt对象用于执行sql语句} catch (SQLException e1){e1.printStackTrace();}try{pstmt.setString(1, str);} catch (SQLException e2){e2.printStackTrace();}try{rs = pstmt.executeQuery() ;//保存sql查询结果} catch (SQLException e1){e1.printStackTrace();}try{while(rs.next()){student=new Student(Integer.parseInt(str),rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getString(6),rs.getString(7),rs.getString(8),rs.getString(9));}} catch (SQLException e1){e1.printStackTrace();}try{rs.close() ;pstmt.close() ;conn.close() ; // 数据库关闭}catch(SQLException e){e.printStackTrace() ;}if(student !=null){return true;}else{return false;}}public void selectAllStudent(){Connection conn = null ; // 数据库连接PreparedStatement pstmt = null ; // 数据库的操作对象ResultSet rs = null ; // 保存查询结果String sql = "select * "+"from student";try{Class.forName(DBDRIVER) ; // 加载驱动程序}catch(ClassNotFoundException e){e.printStackTrace() ;}try{conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;}catch(SQLException e){e.printStackTrace() ;}try{pstmt = conn.prepareStatement(sql) ; //得到stmt对象用于执行sql语句} catch (SQLException e1){e1.printStackTrace();}try{rs = pstmt.executeQuery() ;//保存sql查询结果} catch (SQLException e1){e1.printStackTrace();}try{while(rs.next()){student=new Student(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getString(6),rs.getString(7),rs.getString(8),rs.getString(9),rs.getString(10));allStudent.add(student);}} catch (SQLException e1){e1.printStackTrace();}try{rs.close() ;pstmt.close() ;conn.close() ; // 数据库关闭}catch(SQLException e){e.printStackTrace() ;}}}6.UpdateAndInsert.java/*修改&&插入类定义了修改和插入的所有方法*/package ms;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class UpdateAndInsert{// 定义MySQL的数据库驱动程序public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;// 定义MySQL数据库的连接地址public static final String DBURL = "jdbc:mysql://localhost:3306/studentMS" ;// MySQL数据库的连接用户名public static final String DBUSER = "root" ;// MySQL数据库的连接密码public static final String DBPASS = "systemout" ;public boolean insertStudent (Student student){String name=student.getName();String sex=student.getSex();String bornDate=student.getBornDate();String nationality=student.getNationality();String hometown=student.getHometown();String maj=student.getMaj();String cla=student.getCla();String telNum=student.getTelNum();String password=student.getPassword();Connection conn = null ; // 数据库连接Statement stmt = null ; // 数据库操作try{Class.forName(DBDRIVER) ;} catch (ClassNotFoundException e){// TODO Auto-generated catch blocke.printStackTrace();} // 加载驱动程序String sql = "INSERT INTO student(name,sex,bornDate,nationality,hometown,maj,cla,telNum,passw ord) "+" VALUES('"+name+"','"+sex+"','"+bornDate+"','"+nationality+"','"+hometown+"' ,'"+maj+"','"+cla+"','"+telNum+"','"+password+"')";try{conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;} catch (SQLException e){// TODO Auto-generated catch blocke.printStackTrace();}try{stmt = conn.createStatement() ;} catch (SQLException e){// TODO Auto-generated catch blocke.printStackTrace();} // 实例化Statement对象try{stmt.executeUpdate(sql) ;} catch (SQLException e){// TODO Auto-generated catch blocke.printStackTrace();} // 执行数据库更新操作try{stmt.close() ; // 关闭操作conn.close() ;} catch (SQLException e){// TODO Auto-generated catch blocke.printStackTrace();} // 数据库关闭return true;}public boolean updateStudent(Student student){Select sel=new Select();if(sel.selectStudent(newInteger(student.getId()).toString())==false){return false;}Connection conn = null ; // 数据库连接Statement stmt = null ; // 数据库操作String name=student.getName();String sex=student.getSex();String bornDate=student.getBornDate();String nationality=student.getNationality();String hometown =student.getHometown();String maj=student.getMaj();String cla=student.getCla();String telNum=student.getTelNum();String password=student.getPassword();String sql="UPDATE student SET name='"+name+"',sex='"+sex+"',bornDate='"+bornDate+"',nationality ='"+nationality+"',hometown='"+hometown+"',maj='"+maj+"',cla='"+c la+"',telNum='"+telNum+"',password='"+password+"' WHERE id="+student.getId() ;try{conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;} catch (SQLException e1){// TODO Auto-generated catch blocke1.printStackTrace();}try{stmt = conn.createStatement() ;} catch (SQLException e){// TODO Auto-generated catch blocke.printStackTrace();} // 实例化Statement对象try{stmt.executeUpdate(sql) ;} catch (SQLException e){// TODO Auto-generated catch blocke.printStackTrace();} // 执行数据库更新操作try{stmt.close() ; // 关闭操作conn.close() ; // 数据库关闭} catch (SQLException e){// TODO Auto-generated catch blocke.printStackTrace();}return true;}。
学生信息管理系统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)用户登录窗体设计当用户输入完用户名和用户密码后,单击“确定”按钮将对用户输入的信息进行判断。
学生管理系统编码测试说明书
2.2测试步骤
1打开webstress并选择测试类型及其他参数
测试类型分为:(1)Clicks测试固定读取网页数量(2)TIME测试固定时间内的LOADING(3)RAMP 在固定时间内逐渐增大LOADING量底下有User 数量(设置测试用户数量)、每一个读取行为间隔的时间Click Delay等等
我选择了Clicks测试类型,测试时间为5分钟,测试用户设置为10(由于软件版本问题,此项可设置的最大值为10),Click Delay点击时延设置为10。
对于测试类型的设置完成。
2设置URL
3浏览器设置
可以选择在何种浏览器下进行测试,但是由于我们使用的webstress 版本较低,相应的提供的浏览器版本也很低,我们选择IE6.0作为测试浏览器。
4开始测试
2.3测试结果
1测试结果概况
每位测试用户的测试结果:
整体测试结果:
2测试结果视图
平均点击响应时间(红色线),错误数量(蓝色线):
点击时间/ms(红色线),平均每秒点击次数(蓝色线):。
学生信息管理系统的设计与实现学生姓名:曹指导老师:王艳华摘要本课程设计主要解决学生信息的管理问题,设计开发一个简单的学生信息管理系统,实现对学生信息的管理,包括添加、修改、删除,查询,打印信息以及用户管理等方面。
系统可以完成对各类信息的浏览、查询、添加、删除、修改等功能。
在课程设计中,系统开发平台为Windows XP,程序设计语言采用Visual Basic 6.0,数据库采用SQL Server 2000,程序运行平台为Windows98/2000/XP。
程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在解决实际问题中。
关键词管理系统;学生信息管理;数据库STUDENTS' INFORMATION MANAGEMENT SYSTEM DESIGN AND IMPLEMENTATIONStudent Name: Cao Xiao-fei Advisor: Wang Yan-huaAbstract: The course is designed mainly to solve the problem of management of students' information, a simple design and development of the students' information management system, the realization of student management information system, including add, modify and delete, inquires the, printing information and user management, etc. The system can complete all kinds of information to browse, search, add, delete, modify, etc. Function. In the curriculum design, system development platform for Windows XP, programming language used Visual Basic 6.0, database using SQL Server 2000, the program operation platform for Windows / 2000 / XP. Program through the test and operation, and then realized the design goal, and after appropriate perfect, will can be used in solving practical problems.Key words: Management system; Students' information management; Database目录1引言11.1课题背景 11.2课程设计目的 11.3课程设计任务 2 2系统结构分析 32.1需求分析 32.2功能模块图 3 3数据库设计 53.1 概念设计 53.2 逻辑设计 53.3 物理设计 6 4详细设计94.1登陆模块设计94.2 主界面设计104.3 学籍管理模块设计114.4成绩管理模块设计114.5 查询管理模块设计12 5测试和运行结果135.1测试环境135.2系统测试13 结束语16 参考文献17 附录181 引言1.1课题背景在学生信息管理中,需要从大量的日常教学活动中提取相关信息,以反映教学情况。
目录前言 (3)第1章概述 (4)1.1课题开发的背景、目的与意义 (4)1.2可行性分析 (4)1.3系统功能描述 (5)1.4系统运行环境 (5)第2章学生信息管理系统数据库设计 (6)2.1数据需求分析 (6)2.2概念结构设计 (6)2.2.1 实体间的联系: (6)2.2.2 E-R图: (7)2.3逻辑结构设计 (7)第3章学生信息管理系统数据库实施步骤 (9)第4章学生信息管理系统数据库管理及界面设计 (11)4.1功能选择 (11)4.2基本信息的显示 (13)4.3高级搜索 (14)第5章总结 (16)致谢 (17)参考文献 (18)前言随着进入二十一世纪,计算机技术迅速向着网络化、集成化方向发展。
传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件,而数据库的应用已经渗透到社会经济领域的各个方面。
数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处理与信息管理系统的核心。
有效地运用和利用数据库所具有的强大事务处理功能和数据分析能力,可以实现数据处理、数据安全保障、高效数据检索和信息共享。
数据库对我们今天的各个领域都是不可缺少的一部分,随着各个领域的需求,对数据库中的管理信息系统也要求特别的高,特别是在一些学校中,一个学校对学生的管理是不可少的,如果没有一个统一的管理系统那是很难管理的,因而设立一个学生信息管理系统是很有必要的。
学生信息管理系统(SMIS)是大学信息管理系统建设的重要组成部分,是教务管理工作的核心,是提高教学管理的质量和效益乃至建设知名高水平大学的关键环节。
学生信息处理的电脑化、网络化,也是实现学校管理现代化和信息化的重要内容。
作为计算机应用的一部分,使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点。
例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生档案管理的效率,也是进行科学化、正规化管理,与世界接轨的重要条件。
成绩:__________《数据库原理及应用》课程设计课题数据库课程设计之学生管理系统班级学号姓名指导教师2012 年 6 月 25 日—2012年 6 月 29 日前言 (3)概述 (3)项目背景 (3)编写目的 (3)定义 (4)开发环境 (4)需求分析 (5)问题陈述 (5)功能需求 (5)运行需求 (5)数据流图 (6)存储说明 (9)数据字典 (10)概念结构设计 (14)逻辑结构设计 (17)软件功能设计 (22)代码设计和界面设计 (25)小结................................................................................................ 错误!未定义书签。
参考文献........................................................................................ 错误!未定义书签。
附录................................................................................................ 错误!未定义书签。
网络的兴起和巨大发展对人们的生活方式产生了深远的改变,通过互联网络,人们获得了一个更加便捷更加广阔的获取有用信息的途径,人们可以足不出户坐在电脑前便可以做很多事情。
而数据库系统的不断发展与完善,则让互联网络在人们生活中的应用如虎添翼,因为随着越来越多的人认识到WEB网络给我们日常生活带来的巨大便利,WEB 应用的用户也在爆炸式增长,在方便我们生活的同时,许多问题也接踵而至,越来越庞大的数据量让工作人员不堪重负,无论在建立数据库和维护数据库方面,近几个月来,CSDN、天涯等知名IT企业相继出现数据库信息泄露事件向我们昭示了数据库安全方面所面临的严峻挑战。
学生学籍管理系统(数据库系统)1 设计内容和要求1.1设计背景随着我国教育体制改革的深入进行,教育系统得到了前所未有的发展。
学生管理正在逐步迈向管理信息现代化.但是我国的学生管理信息化水平还处在初级阶段,主要表现在对学生的交费管理、学生的档案管理还是采用原有的人工管理方式。
学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。
由于大学生类别和专业的设置的多样化,大学生的学籍管理历来是非常繁琐和复杂的的工作。
面对庞大的信息量,这时的人工管理几乎无法实现,在这种情况下用数据库进行管理变的尤为必要,这可以发挥计算机的优势,就需要有学生信息管理系统来提高学生管理工作的效率。
通过这样的系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量和减少人为的错误。
1.2开发环境本学生学籍管理系统(数据库系统)的开发与运行环境如下:开发环境:Windows XP辅助工具:PowerDesigner Trial 11数据库管理系统:SQL Server 2000运行环境:Windows 2000/XP/20031。
3内容和要求1.3.1系统目标设计使得学生的学籍管理工作更加清晰、条理化、自动化.很容易地完成新生信息的输入、老生信息的备份、毕业学生的信息可以很容易地保存。
当学生需要查询成绩时,可以很简单地将其需要的信息从数据库中查找出来并可以打印查询结果。
随着当今网络技术的发展,提供网络在线查询功能,可以为毕业生提供更多的就业机会.1。
3。
2系统功能要求(1)学生基本信息系统能够完成新、老生信息的输人、修改、插人、删除等工作.可以按照特定的信息进行查找,并按照特定的要求进行排序。
可以对老生的信息进行备份,以便日后查询.可以对学生的信息进行打印输出.提供详细的帮助文件和系统维护功能。
(2)学生成绩管理系统此部分的功能如下:学生成绩的输入、修改、删除等基本操作.成绩的综合统计功能,包括学生成绩按照不同条件进行排名。
VC++083-学生信息管理系统(ACCESS数据库)摘要:“信息手段革命”转向“信息内容革命”,引发了全球性数字校园建设浪潮。
为满足为学校服务这一基本功能,数字校园应定位于信息服务,对学生的成绩的高效而准确的管理系统设计的出发点和最终目的,既要能够满足学生和老师的一般需求,又要能够针对用户的类型、需求特征等确定它的的权限以便进行管理。
根据上述要求给出一个合理的解决方按,主要包括以下几个方面:1.将整个系统分为两大模块:前台与后台,其中前台主要是界面的设计以及界面的关联,而后台主要是对数据库的管理以及编码。
数据库的首要要求便是设计的合理性以及安全性,此时便对权限进行管理,从而对安全性进行管理。
2.对后台数据库的维护和管理,由于数据库有很多的表格,而且几乎上都是相互关联的,所以对表的修改涉及到整个后台的数据体,必须做统一的考虑。
3.数据库的合理性要求能够对整个系统起到简化的作用,所以对库的规划必须合理。
4.对于后台的不断修改以及操作,必须要求数据库的稳定性。
如对表格的修改能够准确的进行,且避免死锁的现象。
当对数据进行修改时,如进行删除,但此时数据正再用,必须要还原到正确的状态。
要不会影响以前的操作!对于系统的维护很难得到保证。
为解决这种情况必须要对数据库的操作进行限制以及屏蔽,使用户尽量不要碰到此种情况。
5.验证系统的稳定性,对其进行检测。
6.按照模块化对成绩管理系统给出一个合理的解决方按。
关键词:模块、权限、数据库、后台、表格、学生信息管理、ACCESS目录摘要2abstract 2第一章绪论61.1 学生信息管理系统基本概念61.1.1 学生信息管理系统发展及现状61.1.2 学生信息管理系统的发展目标61.1.3 学生信息管理系统的服务整合71.2 学生信息管理系统在数字校园建设中的重要意义71.2.1 学生信息管理系统是校园信息化服务的表现71.3 学生信息管理系统的教育信息化将对学校产生变革71.4 学生信息管理的信息化将提高学校的信息化尺度81.4.1 学生信息管理系统研究现状81.5 本文主要研究内容8第二章支撑学生信息管理系统实现的基本技术概述10前言102.1 数据库系统的特点102.1.1 数据库(简称DB) 102.1.2 数据库系统(DBS) 102.1.3 数据库系统的特点102.1.4 基本数据模型112.2 关系数据模型与关系数据库112.3 数据按其复杂程度分为以下四个层次:122.3.1 数据库的逻辑设计132.3.2 数据库管理系统的概念132.3.3 数据库应用系统13第3章学生信息管理系统设计14前言143.1 系统数据流程图设计143.1.1 系统数据流程图143.2 模块设计183.3 数据库设计183.3.1 数据库的逻辑设计183 .4 构件(过程)设计203.4.1 构件统一(模块)1设计–登录203.5 构件(模块)2设计- 学生查询203.5.1 功能说明203.5.2 学生查询213.6 构件(模块)3设计–录入成绩213.6.1 功能说明213.7 构件(模块)4设计–密码的修改223.8 构件(模块)5设计–显示界面223.8.1 运行维护23结论23参考文献24致谢25功能模块1 学生查询功能:为了方便学生查找成绩等信息,将所有信息按照需要进行分类。
学生信息管理系统设计说明书一、引言随着教育信息化的不断推进,学生信息管理的重要性日益凸显。
为了提高学校管理的效率和质量,实现学生信息的规范化、科学化管理,我们设计了这套学生信息管理系统。
二、系统目标与功能需求(一)系统目标本系统旨在为学校提供一个高效、便捷、准确的学生信息管理平台,实现学生信息的集中管理、快速查询、统计分析和数据共享,提高学校管理工作的效率和决策的科学性。
(二)功能需求1、学生基本信息管理能够录入、修改、查询和删除学生的基本信息,包括姓名、性别、出生日期、身份证号、家庭住址、联系方式等。
2、学籍管理实现学生学籍的注册、异动(转学、休学、复学、退学等)处理,以及学籍信息的查询和统计。
3、课程管理对学校开设的课程进行管理,包括课程名称、课程代码、学分、授课教师等信息的录入、修改和查询。
4、成绩管理能够录入学生的课程成绩,进行成绩的计算、统计和分析,生成成绩单和成绩报表。
5、奖惩管理记录学生的奖励和处罚信息,包括奖励名称、处罚原因、时间等。
6、系统管理包括用户管理、权限管理、数据备份与恢复等功能,确保系统的安全稳定运行。
三、系统设计(一)总体架构本系统采用B/S(浏览器/服务器)架构,用户通过浏览器访问系统,服务器端负责数据处理和业务逻辑。
系统分为表示层、业务逻辑层和数据访问层三层架构,提高了系统的可维护性和可扩展性。
(二)数据库设计1、数据库选型选用关系型数据库MySQL,以满足系统对数据存储和管理的需求。
2、数据表设计根据系统功能需求,设计了学生信息表(student_info)、学籍信息表(student_status)、课程信息表(course_info)、成绩信息表(grade_info)、奖惩信息表(reward_punish_info)等数据表,并定义了各表的字段、数据类型、约束条件等。
3、数据库关系通过主键和外键建立了数据表之间的关联关系,确保数据的一致性和完整性。
(三)界面设计1、登录界面用户输入用户名和密码进行登录,系统验证用户身份后进入相应的操作界面。
实验六 学生信息管理系统数据库设计和应用程序编码 一、实验目的 掌握程序设计语言的选择、程序的编码风格和程序的效率问题。 应用数据库设计工具和程序设计工具,进行数据库设计和应用程序编码。 3、 二、实验仪器和设备 1、计算机 2、SQL-SERBER软件、高级语言编译调试软件 三、实验内容 在实验五基础上,完成以下内容: 1、根据设计阶段的E-R图转化并优化的关系模式建立数据库表。 2、选定程序设计语言,注重编码风格,将实现模块功能的算法转化为程序代码。 3、源程序文档化。 四.实验记录 1、根据设计阶段的E-R图转化并优化的关系模式建立数据库表。 2、选定程序设计语言,注重编码风格,将实现模块功能的算法转化为程序代码。 程序的主要实现部分代码如下: unit MainUnit;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ImgList, ComCtrls, ToolWin, Menus;
type TmainForm = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem; ToolBar1: TToolBar; tb_depart: TToolButton; tb_class: TToolButton; tb_user: TToolButton; tb_stu: TToolButton; tb_stuquery: TToolButton; tb_change: TToolButton; tb_reward: TToolButton; tb_punish: TToolButton; tb_quit: TToolButton; ImageList1: TImageList; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; N7: TMenuItem; N8: TMenuItem; N9: TMenuItem; N10: TMenuItem; N11: TMenuItem; N12: TMenuItem; N13: TMenuItem; N14: TMenuItem; N15: TMenuItem; StatusBar1: TStatusBar; procedure tb_quitClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure tb_departClick(Sender: TObject); procedure tb_classClick(Sender: TObject); procedure tb_userClick(Sender: TObject); procedure tb_stuClick(Sender: TObject); procedure tb_stuqueryClick(Sender: TObject); procedure tb_changeClick(Sender: TObject); procedure tb_rewardClick(Sender: TObject); procedure N2Click(Sender: TObject); procedure tb_punishClick(Sender: TObject); procedure N3Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure N7Click(Sender: TObject); procedure N11Click(Sender: TObject); procedure N13Click(Sender: TObject); procedure N14Click(Sender: TObject); procedure N15Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var mainForm: TmainForm; depart:boolean=true; Fclass:boolean=true; user:boolean=true; stu:boolean=true; query:boolean=true; change:boolean=true; reward:boolean=true; punish:boolean=true; implementation
uses dm, departUnit, classUnit, userUnit, stuUnit, queryUnit, changeUnit, rewardUnit, punishUnit; {$R *.dfm} procedure TmainForm.tb_quitClick(Sender: TObject); begin close; end;
procedure TmainForm.FormCreate(Sender: TObject); begin tb_depart.Enabled:=dmform.ADOQuery_login.FieldByName('qx1').AsBoolean; tb_class.Enabled:=dmform.ADOQuery_login.FieldByName('qx2').AsBoolean; tb_user.Enabled:=dmform.ADOQuery_login.FieldByName('qx3').AsBoolean; tb_stu.Enabled:=dmform.ADOQuery_login.FieldByName('qx4').AsBoolean; tb_stuquery.Enabled:=dmform.ADOQuery_login.FieldByName('qx5').AsBoolean; tb_change.Enabled:=dmform.ADOQuery_login.FieldByName('qx6').AsBoolean; tb_reward.Enabled:=dmform.ADOQuery_login.FieldByName('qx7').AsBoolean; tb_punish.Enabled:=dmform.ADOQuery_login.FieldByName('qx8').AsBoolean; end;
procedure TmainForm.tb_departClick(Sender: TObject); begin //院系设置 if tb_depart.Down then begin departform:=tdepartform.Create(self); departform.Show; end else begin departForm.Free; end; end;
procedure TmainForm.tb_classClick(Sender: TObject); begin //班级管理 if tb_class.Down then begin classform:=tclassform.Create(self); classform.Show; end else begin classForm.Free; end; end;
procedure TmainForm.tb_userClick(Sender: TObject); begin //用户管理 if tb_user.Down then begin userform:=tuserform.Create(self); userform.Show; end else begin userForm.Free; end; end;
procedure TmainForm.tb_stuClick(Sender: TObject); begin //学生管理 if tb_stu.Down then begin stuform:=tstuform.Create(self); stuform.Show; end else begin stuForm.Free; end; end;
procedure TmainForm.tb_stuqueryClick(Sender: TObject); begin //学生查询 if tb_stuquery.Down then begin queryform:=tqueryform.Create(self); queryform.Show; end else begin queryForm.Free; end; end;
procedure TmainForm.tb_changeClick(Sender: TObject); begin // 学籍变更 if tb_change.Down then begin changeform:=tchangeform.Create(self); changeform.Show; end else begin changeForm.Free; end; end;
procedure TmainForm.tb_rewardClick(Sender: TObject); begin //奖励情况 if tb_reward.Down then begin rewardform:=trewardform.Create(self); rewardform.Show; end else