(详细文档!)java swing学生信息管理系统 +mysql

news2024/11/28 20:39:13

第一章:系统功能分析

1.1、系统简介与开发背景

学生信息管理系统是在信息化时代,特别是在教育领域中产生的。随着学校规模的不断扩大和信息化技术的不断发展,传统的纸质档案管理方式已经无法满足学校对学生信息管理的需求,因此需要开发一种电子化的管理系统来提高学生信息管理的效率和准确性。

该系统的出现还有以下几个方面的原因:

教育体制改革的推进:随着教育体制改革的不断深入,学校需要更加高效、准确地管理学生信息,以便更好地服务于学生和教师。

信息化技术的发展:信息技术的发展为开发学生信息管理系统提供了技术保障。例如,数据库技术可以用于存储和检索学生信息,网络技术可以用于实现远程访问和管理,人工智能技术可以用于提高学生信息管理的智能化水平。

学校管理的需求:学校管理需要一个能够快速、准确地处理大量学生信息的系统,以便更好地为学生和教师提供服务,同时也可以提高学校的管理效率和办学水平。

总之,学生信息管理系统的出现是教育体制改革和信息化技术发展的必然结果,它的出现为学校管理带来了很大的便利,同时也提高了学校对学生信息管理的效率和准确性。

1.2、功能分析

学生管理模块:

(1)增删改查学生信息,当学生还有学习的学员时,不能删除学生信息;

(2)按学生查询选择课程信息,支持名称模糊查询;

学员管理模块:

(1)增删改查学员信息;

(2)按学员名查询学员信息,支持学员名模糊查询和分页显示;

总体来说,学生管理系统通过对学生和学员信息的管理,实现了对学生的全面监管与管理。同时,该系统还具有高效智能的数据管理和分析功能,可以提高管理效率,同时也为各方提供了更加精准的信息支持。

1.3、功能模块图及简要说明

  管理员新增学生信息时填写对应的信息,如姓名、课程号等。后台代码将在页面创建的信息提交到控制层进行数据验证,如果信息填写符合规则且数据唯一,则该数据将存储到本地数据库中,否则添加失败。管理员进行登录时首先点击跳转到管理员登录界面按钮,输入相应的信息点击登录。登录界面流程图如图4-1所示,添加学生功能流程图如图4-2所示。

 

图4-1 登录界面流程图

                                

4-2 添加学生功能流程图

管理员修改学生职位信息时可以从快速搜索区,输入学生名称进行查询。按要求填写信息后保存,第一条数据为新添加的数据;管理员修改部门信息时,依次填写好对应的信息,后台代码将信息提交到控制层进行数据验证,验证通过则修改成功,数据存储到本地数据库里,否则失败。职位修改功能流程图如图4-3所示,添加部门功能流程图如图4-4所示。

        ​​​​​​​        ​​​​​​​        ​​​​​​​

   4-3 学生信息修改流程图

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

4-4 添加学生功能流程图

学生信息管理系统的主要模块包括增加、删除、修改和查询等操作,以下是这些操作的简单描述:

增加模块:该模块允许管理员将新的学生信息添加到系统中。这通常涉及到填写一个包含各种字段(例如姓名、性别、出生日期、学号、班级等)的表单。系统将检查输入的数据是否有效,例如,学号是否唯一,然后将其添加到数据库中。

删除模块:在此模块中,管理员可以选择并删除系统中的学生信息。例如,当一个学生转学或退学时,管理员可能需要从系统中删除他们的记录。

修改模块:此模块允许管理员更新系统中已有的学生信息。例如,如果学生的家庭地址发生变化,管理员可以通过此模块更新学生的家庭地址信息。在修改数据时,管理员需要确保数据的完整性和准确性。

查询模块:此模块允许管理员和学生查询系统中的学生信息。管理员可以查看学生的全部信息,而学生通常只能查看与他们自己相关的信息,例如他们的成绩、等。

第二章:概要设计

2.1、数据库设计

2.1.1  创建表单

CREATE TABLE `admin` (

  `Aid` int(11) NOT NULL,

  `Aname` varchar(30) NOT NULL,

  `Apwd` varchar(10) NOT NULL,

  PRIMARY KEY (`Aid`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;  PRIMARY KEY (`id`) USING BTREE

) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = CREATE TABLE `course` (

  `Cnum` int(11) NOT NULL AUTO_INCREMENT,

  `Cno` int(11) NOT NULL,

  `Cname` varchar(20) NOT NULL,

  `Ctime` int(11) NOT NULL,

  `Ccredit` int(11) NOT NULL,

  PRIMARY KEY (`Cnum`,`Cno`),

  KEY `Cname` (`Cname`),

  KEY `Cno` (`Cno`)

CREATE TABLE `score` (

  `Sno` int(11) NOT NULL,

  `Sname` varchar(20) NOT NULL,

  `Cno` int(11) NOT NULL,

  `Cname` varchar(20) DEFAULT NULL,

  `Sscore` decimal(10,0) DEFAULT '0',

  `Rescore` decimal(10,0) DEFAULT '0',

  PRIMARY KEY (`Sno`,`Cno`),

  KEY `Cname` (`Cname`),

  KEY `Cno` (`Cno`),

  KEY `Sname` (`Sname`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------

-- Table structure for user_train_re   //学生,用户联系表

-- ----------------------------

CREATE TABLE `student` (

  `Sno` int(11) NOT NULL,

  `Sname` varchar(30) NOT NULL,

  `Sgender` char(2) NOT NULL,

  `Sage` int(11) NOT NULL,

  `Sbirthday` datetime DEFAULT '1999-01-01 00:00:00' ON UPDATE CURRENT_TIMESTAMP,

  `Sclass` varchar(10) NOT NULL,

  `Smajor` varchar(20) NOT NULL,

  `Sdept` varchar(20) NOT NULL,

  `Spwd` varchar(10) NOT NULL DEFAULT '123',

  PRIMARY KEY (`Sno`),

  KEY `Sname` (`Sname`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2.2、后台管理界面设计

2.1  管理员登陆界面图

2.2  管理员功能界面

2.3  学生信息管理界面图

2.4  课程信息管理界面图

2.5  课程添加管理界面图

2.6  学生成绩管理界面图

2.8  添加学生信息管理界面图

2.9  添加学生成绩管理界面图

2.10  删除成绩管理界面图

2.11  课程管理页面图

第三章:详细设计

3.1.2数据库配置文件

package com.system.utils;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class DB {

        // 数据库地址

        private String Driver_name = "jdbc:mysql://localhost:3306/student_a?serverTimezone=Asia/Shanghai&useSSL=false";

        // 数据库用户名

        private String USER = "root"; // 这里需要修改为自己的用户名和密码

        // 数据库密码

        private String PASS = "123456";

        // 数据库连接

        public static Connection con;

        // 构造方法

        public DB() {

                 try {

                         // 加载驱动

                         Class.forName("com.mysql.cj.jdbc.Driver"); // 这个驱动是mysql8版本的

                         // 获取连接

                        con = DriverManager.getConnection(Driver_name, USER, PASS);

                 } catch (Exception e) {

                         e.printStackTrace();

                 }

        }

        // 获取连接

        public static Connection getConnection() {

                 if (con == null) {

                         new DB();

                 }

                 return con;

        }

        // 释放连接

        public static void close(ResultSet resultSet, Statement statement, Connection connection) {

                 if (resultSet != null) {

                         try {

                                  resultSet.close();

                         } catch (SQLException e) {

                                  e.printStackTrace();

                         }

                 }

                 if (statement != null) {

                         try {

                                  statement.close();

                         } catch (SQLException e) {

                                  e.printStackTrace();

                         }

                 }

                 if (connection != null) {

                         try {

                                  connection.close();

                         } catch (SQLException e) {

                                  e.printStackTrace();

                         }

                 }

        }

        // 释放连接

        public static void close(Statement statement, Connection connection) {

                 if (statement != null) {

                         try {

                                  statement.close();

                         } catch (SQLException e) {

                                  e.printStackTrace();

                         }

                 }

                 if (connection != null) {

                         try {

                                  connection.close();

                         } catch (SQLException e) {

                                  e.printStackTrace();

                         }

                 }

        }

        // 释放连接

        public static void close(Connection connection) {

                 if (connection != null) {

                         try {

                                  connection.close();

                         } catch (SQLException e) {

                                  e.printStackTrace();

                         }

                 }

        }

}

StudentDao:

package com.system.dao;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.ArrayList;

import java.util.List;

import com.system.entity.Student;

import com.system.utils.DB;

public class StudentDao {

       Connection conn = null;

       DB dataBase = new DB();

       //学生登录

       public boolean LoginCheck(String Sno, String Spwd) throws SQLException {

              try {

                     conn = dataBase.getConnection();

                     Statement stat = null;

                     ResultSet rs = null;

                     stat = conn.createStatement();

                     String sql = "SELECT * FROM student WHERE Sno ='"+Sno+"' and Spwd = '"+Spwd+"'";

                     rs = stat.executeQuery(sql);

                     if (rs.next()){

                            return true;

                     }else{

                            return false;

                     }

              } catch (Exception e) {

                     e.printStackTrace();

              }

              conn.close();

              return false;

       }

      

       //注册

       public boolean Register(String Sno ,String Spwd) throws SQLException {

              try {

                     conn = dataBase.getConnection();

                     Statement stat = null;

                     ResultSet rs = null;

                     stat = conn.createStatement();

                     String sql = "SELECT * FROM student WHERE Sno ='" + Sno + "' ";

                     rs = stat.executeQuery(sql);

                     if (rs.next()){

                            return false;

                     }else{

                            sql = "INSERT INTO student VALUES ('" + Sno + "', '" + Spwd + "')";

                            stat.executeUpdate(sql);

                     }           

              } catch (Exception e) {

                     e.printStackTrace();

              }

              conn.close();

              return true;

       }

      

       //返回学生信息对象

       public List<Student> res() throws Exception {

              List<Student> students = new ArrayList<>();

              Student student;

              conn = dataBase.getConnection();

              Statement stat = null;

              ResultSet rs = null;

              stat = conn.createStatement();

              String sql = "SELECT * FROM student";

              rs = stat.executeQuery(sql);

              while (true) {

            if ( rs.next() ) {

                            student = new Student();

                student.setSno( rs.getInt("Sno") );

                student.setName( rs.getString("Sname") );

                student.setGender( rs.getString("Sgender") );

                student.setAge( rs.getInt("Sage") );

                student.setClas( rs.getString("Sclass") );

                student.setMajor(rs.getString("Smajor"));

                student.setDept( rs.getString("Sdept") );

                students.add(student);

            }else

                break;

        }

              conn.close();

              return students;

       }

      

}

3.1.3 StudentAdd

public void actionPerformed(ActionEvent e) {

String sno = snoField.getText();

String sname = snameField.getText();

String sage = sageField.getText();

String sclass = sclassField.getText();

String smajor = smajorField.getText();

String sdept = sdeptField.getText();

String sex = (String) comboBox.getSelectedItem();

if (sno.equals("") || sname.equals("") || sage.equals("") || sclass.equals("") || smajor.equals("")

|| sdept.equals("") || sex.equals("")) {

JOptionPane.showMessageDialog(null, "信息不完整,请填写完整!");

} else {

UserDao userDao = new UserDao();

try {

boolean istrue = userDao.insert(sno, sname, sex, sage, sclass, smajor, sdept);

if (istrue) {

JOptionPane.showMessageDialog(null, "学生信息录入成功!");

} else{

JOptionPane.showMessageDialog(null, "学生录入失败,此学号已存在!");

}

} catch (SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

}

}

});

btnNewButton.setFont(new Font("微软雅黑", Font.BOLD, 14));

btnNewButton.setBounds(201, 427, 93, 30);

panel.add(btnNewButton);

JButton btnNewButton_1 = new JButton("重置");

btnNewButton_1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

snoField.setText("");

snameField.setText("");

sageField.setText("");

sclassField.setText("");

smajorField.setText("");

sdeptField.setText("");

}

});

btnNewButton_1.setFont(new Font("微软雅黑", Font.BOLD, 14));

btnNewButton_1.setBounds(390, 427, 93, 30);

panel.add(btnNewButton_1);

String[] a = new String[] { "男", "女" };

comboBox = new JComboBox(a);

comboBox.setBounds(267, 381, 194, 27);

panel.add(comboBox);

}

}

CourseDao:

package com.system.dao;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.ArrayList;

import java.util.List;

import com.system.entity.Course;

import com.system.utils.DB;

public class CourseDao {

       Connection conn = null;

       DB dataBase = new DB();

      

       // 按照课程号进行查询

       public Course selectByCno(int cno) throws SQLException {

              conn = dataBase.getConnection();

              Statement stat = null;

              ResultSet rs = null;

              String sql = "SELECT * FROM course where Cno = " + cno;

              stat = conn.createStatement();

              rs = stat.executeQuery(sql);

              Course course = new Course();

              while (true) {

                     if (rs.next()) {

                            course.setCnum(rs.getString("Cnum"));

                            course.setCno(rs.getString("Cno"));

                            course.setCname(rs.getString("Cname"));

                            course.setCcredit(rs.getString("Ccredit"));

                            course.setCtime(rs.getString("Ctime"));

                     } else

                            break;

              }

              conn.close();

              return course;

       }

       //课程信息

       public List<Course> courseRes() throws Exception {

              List<Course> courses = new ArrayList<>();

              Course course;

              conn = dataBase.getConnection();

              Statement stat = null;

              ResultSet rs = null;

              stat = conn.createStatement();

              String sql = "SELECT * FROM course";

              rs = stat.executeQuery(sql);

              while (true) {

            if ( rs.next() ) {

                            course = new Course();

                course.setCnum( rs.getString("Cnum") );

                course.setCno( rs.getString("Cno") );

                course.setCname( rs.getString("Cname") );

                course.setCcredit( rs.getString("Ccredit") );

                course.setCtime( rs.getString("Ctime") );

                courses.add(course);

            }else

                break;

        }

              conn.close();

              return courses;

       }

      

       //增加课程

       public boolean insert(String cno, String cname, String ccredit, String ctime) throws SQLException {

              try {

                     conn = dataBase.getConnection();

                     Statement stat = null;

                     stat = conn.createStatement();

                     String sql = "SELECT * FROM course WHERE cno = '"+cno+"'";

                     if ( stat.executeQuery(sql).next() ) {

                            return false;

                     }

                     sql = "INSERT INTO course (cno,cname,ccredit,ctime)"

                             + " VALUES ( '"+cno+"','"+cname+"', '"+ccredit+"' ,'"+ctime+"')";

                     if ( stat.executeUpdate(sql)==1 ){

                            return true;

                     }

              } catch (Exception e) {

                     e.printStackTrace();

              }

              conn.close();

              return false;

       }

      

       //ɾ删除课程

       public boolean delete(String cno) throws SQLException  {

              try {

                     conn = dataBase.getConnection();

                     Statement stat = null;

                     stat = conn.createStatement();

                     String sql = "DELETE FROM course WHERE cno = '"+cno+"' ";        

                     if ( stat.executeUpdate(sql)==1 ){

                            return true;

                     }

              } catch (Exception e) {

                     e.printStackTrace();

              }

              conn.close();

              return false;

       }

      

       //查询课程

       public Course select(String cno) throws SQLException  {

              try {

                     conn = dataBase.getConnection();

                     Statement stat = null;

                     stat = conn.createStatement();

                     ResultSet rs = null;

                     Course course = null;

                     String sql = "SELECT * FROM course WHERE cno = '"+cno+"' ";        

                     rs = stat.executeQuery(sql);

                     if ( rs.next() ){                  

                            course = new Course();

                            course.setCno( rs.getString("Cno") );

                            course.setCname( rs.getString("Cname") );

                            course.setCcredit( rs.getString("Ccredit") );

                            course.setCtime( rs.getString("Ctime") );

                            return course;

                     }

              } catch (Exception e) {

                     e.printStackTrace();

              }

              conn.close();

              return null;

       }

      

       //更新课程

       public boolean update(String cno, String cname, String ccredit, String ctime) throws SQLException  {

              try {

                     conn = dataBase.getConnection();

                     Statement stat = null;

                     stat = conn.createStatement();

                     String sql = "UPDATE course SET Cno = '"+cno+"', Cname = '"+cname+"', Ccredit = '"+ccredit+"', Ctime = '"+ctime+"' "

                                   + "WHERE Cno = '"+cno+"' ";            

                     if ( stat.executeUpdate(sql)==1 ){

                            return true;

                     }

              } catch (Exception e) {

                     e.printStackTrace();

              }

              conn.close();

              return false;

       }

      

      

}

UserDAO

package com.system.dao;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.ArrayList;

import java.util.List;

import com.system.entity.Student;

import com.system.utils.DB;

public class UserDao {

       Connection conn = null;

       DB dataBase = new DB();

       //管理员登录

       public boolean LoginCheck(String id, String pwd) throws SQLException {

              try {

                     conn = dataBase.getConnection();

                     Statement stat = null;

                     ResultSet rs = null;

                     stat = conn.createStatement();

                     String sql = "SELECT * FROM admin WHERE Aid ='" + id + "' and Apwd = '" + pwd + "'";

                     rs = stat.executeQuery(sql);

                     if (rs.next()){

                            return true;

                     }else{

                            return false;

                     }

              } catch (Exception e) {

                     e.printStackTrace();

              }

              conn.close();

              return false;

       }

      

       //管理员注册

       public boolean Register(String id, String name ,String pwd) throws SQLException {

              try {

                     conn = dataBase.getConnection();

                     Statement stat = null;

                     ResultSet rs = null;

                     stat = conn.createStatement();

                     String sql = "SELECT * FROM admin WHERE Aid ='" + id + "' and Apwd = '" + pwd + "'";

                     rs = stat.executeQuery(sql);

                     if (rs.next()){

                            return false;

                     }else{

                            sql = "INSERT INTO admin VALUES ('" + id + "','" + name + "','" + pwd + "')";

                            stat.executeUpdate(sql);

                     }           

              } catch (Exception e) {

                     e.printStackTrace();

              }

              conn.close();

              return true;

       }

      

       //返回学生信息对象列表

       public List<Student> res() throws Exception {

              List<Student> students = new ArrayList<>();

              Student student;

              conn = dataBase.getConnection();

              Statement stat = null;

              ResultSet rs = null;

              stat = conn.createStatement();

              String sql = "SELECT * FROM student";

              rs = stat.executeQuery(sql);

              while (true) {

            if ( rs.next() ) {

                            student = new Student();

                student.setSno( rs.getInt("Sno") );

                student.setName( rs.getString("Sname") );

                student.setGender( rs.getString("Sgender") );

                student.setAge( rs.getInt("Sage") );

                student.setClas( rs.getString("Sclass") );

                student.setMajor(rs.getString("Smajor"));

                student.setDept( rs.getString("Sdept") );

                students.add(student);

            }else

                break;

        }

              conn.close();

              return students;

       }

      

       //返回指定学生的信息

       public List<Student> Select(String sno, String name) throws Exception {

              List<Student> students = new ArrayList<>();

              Student student;

              conn = dataBase.getConnection();

              Statement stat = null;

              ResultSet rs = null;

              stat = conn.createStatement();

              String sql = "SELECT * FROM student WHERE Sno ='"+sno+"' OR Sname = '"+name+"'";

              rs = stat.executeQuery(sql);

              while (true) {

            if ( rs.next() ) {

                            student = new Student();

                student.setSno( rs.getInt("Sno") );

                student.setName( rs.getString("Sname") );

                student.setGender( rs.getString("Sgender") );

                student.setAge( rs.getInt("Sage") );

                student.setClas( rs.getString("Sclass") );

                student.setMajor(rs.getString("Smajor"));

                student.setDept( rs.getString("Sdept") );

                students.add(student);

            }else

                break;

        }

              conn.close();

              return students;

       }

      

       //录入学生信息

       public boolean insert(String sno, String name, String gender, String age, String clas , String major, String dept) throws SQLException {

              try {

                     conn = dataBase.getConnection();

                     Statement stat = null;

                     stat = conn.createStatement();

                     String sql = "INSERT INTO student (sno,sname,sgender,sage,sclass,smajor,sdept)"

                                   + " VALUES ( '"+sno+"','"+name+"', '"+gender+"' ,'"+age+"' ,'"+clas+"' ,'"+major+"' ,'"+dept+"')";

                     if (stat.executeUpdate(sql) == 1) {

                            return true;

                     }

              } catch (Exception e) {

              }

              conn.close();

              return false;

       }

      

       //删除学生信息

       public boolean delete(String sno) throws SQLException  {

              int key = Integer.parseInt(sno);

              try {

                     conn = dataBase.getConnection();

                     Statement stat = null;

                     stat = conn.createStatement();

                     String sql = "DELETE FROM student WHERE sno = " + key;

                     System.out.println(sql);

                     if ( stat.executeUpdate(sql)==1 ){

                            return true;

                     }

              } catch (Exception e) {

                     e.printStackTrace();

              }

              conn.close();

              return false;

       }

      

       //根据学号查询单个学生

       public Student select(String sno) throws SQLException {

              try {

                     conn = dataBase.getConnection();

                     Statement stat = null;

                     stat = conn.createStatement();

                     ResultSet rs = null;

                     Student stu = null;

                     String sql = "SELECT * FROM student WHERE sno = '"+sno+"' ";         

                     rs = stat.executeQuery(sql);

                     if ( rs.next() ){                  

                            stu = new Student();

                            stu.setSno( rs.getInt("Sno") );

                            stu.setName( rs.getString("Sname") );

                            stu.setGender( rs.getString("Sgender") );

                            stu.setAge( rs.getInt("Sage") );

                            stu.setClas( rs.getString("Sclass") );

                            stu.setMajor(rs.getString("Smajor"));

                            stu.setDept( rs.getString("Sdept") );

                            return stu;

                     }

              } catch (Exception e) {

                     e.printStackTrace();

              }

              conn.close();

              return null;

       }

      

       //更新学生信息

       public boolean update(String sno, String name, String gender, String age, String clas , String major, String dept) throws SQLException  {

              try {

                     conn = dataBase.getConnection();

                     Statement stat = null;

                     stat = conn.createStatement();

                     String sql = "UPDATE student SET sno = '"+sno+"', sname = '"+name+"', sgender = '"+gender+"', sage = '"+age+"',"

                                   + "sclass = '"+clas+"', smajor = '"+major+"', sdept = '"+dept+"' WHERE sno = '"+sno+"' ";          

                     if ( stat.executeUpdate(sql)==1 ){

                            return true;

                     }

              } catch (Exception e) {

                     e.printStackTrace();

              }

              conn.close();

              return false;

       }

      

}

3.1.4  SCOREdao

package com.system.dao;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.ArrayList;

import java.util.List;

import com.system.entity.Score;

import com.system.utils.DB;

public class ScoreDao {

       Connection conn = null;

       DB dataBase = new DB();

      

       //成绩信息

       public List<Score> scoreRes(String key) throws Exception {

              List<Score> scores = new ArrayList<>();

              int k = 0;

              if (!key.equals("")) {

                     k = Integer.parseInt(key);

              }

              Score score;

              conn = dataBase.getConnection();

              Statement stat = null;

              ResultSet rs = null;

              stat = conn.createStatement();

              String sql = "SELECT * FROM score";

              if (!key.equals("")) {

                     sql = sql + " where Sno = " + k;

              }

              rs = stat.executeQuery(sql);

              while (true) {

            if ( rs.next() ) {

                            score = new Score();

                score.setSno( rs.getString("Sno") );

                score.setSname( rs.getString("Sname") );

                score.setCno( rs.getString("Cno") );

                score.setCname( rs.getString("Cname") );

                score.setSscore( rs.getString("Sscore") );

                score.setRescore( rs.getString("Rescore") );

                scores.add(score);

            }else

                break;

        }

              conn.close();

              return scores;

       }

      

       //某个学生的所有成绩

       public List<Score> scoreOwnRes(String id) throws Exception {

              List<Score> scores = new ArrayList<>();

              Score score;

              conn = dataBase.getConnection();

              Statement stat = null;

              ResultSet rs = null;

              stat = conn.createStatement();

             String sql = "SELECT * FROM score WHERE sno = '"+id+"'";

              rs = stat.executeQuery(sql);

              while (true) {

            if ( rs.next() ) {

                            score = new Score();

                score.setSno( rs.getString("Sno") );

                score.setSname( rs.getString("Sname") );

                score.setCno( rs.getString("Cno") );

                score.setCname( rs.getString("Cname") );

                score.setSscore( rs.getString("Sscore") );

                score.setRescore( rs.getString("Rescore") );

                scores.add(score);

            }else

                break;

        }

              conn.close();

              return scores;

       }

      

       //录入成绩

       public boolean insert(String sno, String cno, String sscore) throws SQLException {

              try {

                     conn = dataBase.getConnection();

                     Statement stat = null;

                     stat = conn.createStatement();

                     String sql = "SELECT Sname FROM student WHERE sno = '"+sno+"' ";

                     String sql_2 = "SELECT cname FROM course WHERE cno = '"+cno+"' ";            

                     ResultSet rs = null;

                     ResultSet rs_2 = null;

                     String sname =null;

                     String cname = null;

                     rs = stat.executeQuery(sql);

                     if(rs.next())

                            sname = rs.getString("Sname");

                     rs_2 = stat.executeQuery(sql_2);

                     if ( rs_2.next() )

                            cname = rs_2.getString("Cname");

                     else {

                            return false;

                     }

                     String sql_3 = "INSERT INTO score (sno,sname,cno,cname,sscore) VALUES ( '"+sno+"', '"+sname+"','"+cno+"', '"+cname+"','"+sscore+"' )";

                     if ( stat.executeUpdate(sql_3)==1 ){

                            return true;

                     }

              } catch (Exception e) {

              }

              conn.close();

              return false;

       }

      

       //删除成绩

       public boolean delete(String sno, String cno) throws SQLException  {

              try {

                     conn = dataBase.getConnection();

                     Statement stat = null;

                     stat = conn.createStatement();

                     String sql = "DELETE FROM score WHERE sno = '"+sno+"' AND cno = '"+cno+"' ";        

                     if ( stat.executeUpdate(sql)==1 ){

                            return true;

                     }

              } catch (Exception e) {

                     e.printStackTrace();

              }

              conn.close();

              return false;

       }

      

       //查询成绩

       public Score select(String sno, String cno) throws SQLException {

              try {

                     conn = dataBase.getConnection();

                     Statement stat = null;

                     stat = conn.createStatement();

                     ResultSet rs = null;

                     Score sc = null;

                     String sql = "SELECT * FROM score WHERE sno = '"+sno+"' AND cno = '"+cno+"'";         

                     rs = stat.executeQuery(sql);

                     if ( rs.next() ){                  

                            sc = new Score();

                            sc.setSno( rs.getString("Sno") );

                            sc.setSname( rs.getString("Sname") );

                            sc.setCno( rs.getString("Cno") );

                            sc.setCname( rs.getString("Cname") );

                            sc.setSscore( rs.getString("Sscore") );

                            sc.setRescore(rs.getString("Rescore"));

                            return sc;

                     }

              } catch (Exception e) {

                     e.printStackTrace();

              }

              conn.close();

              return null;

       }

      

       //删除某门课程的成绩

       public boolean update(String sno, String cno, String sscore, String rescore) throws SQLException  {

              try {

                     conn = dataBase.getConnection();

                     Statement stat = null;

                     stat = conn.createStatement();

                     String sql = "UPDATE score SET Sscore = '"+sscore+"', Rescore = '"+rescore+"'  WHERE sno = '"+sno+"' AND cno ='"+cno+"' ";      

                     if ( stat.executeUpdate(sql)==1 ){

                            return true;

                     }

              } catch (Exception e) {

                     e.printStackTrace();

              }

              conn.close();

              return false;

       }

      

      

}

第四章:个人总结

学生管理系统是一个以信息技术为基础,对学生数据进行集中收集、处理和存储的综合性系统。它能够有效地提高学校管理学生的效率和精确性,同时能够更好地发掘学生数据中隐藏的信息,为学校的各项决策提供可靠的数据支持。

在设计和实现学生管理系统时,应以数据库为中心,利用各种编程语言和技术对系统进行开发。系统的基本架构应分为前端和后端两个部分,前端负责数据的录入、数据的展示以及简单的数据处理,而后端则负责数据的处理、存储和保护。

在实现系统时,应注重系统的可维护性和可扩展性。对于可维护性,要尽可能地减少代码的复杂性,增加注释,同时要进行有效的异常处理,以帮助维护人员快速定位问题并进行修复。对于可扩展性,要采用模块化的开发方式,将各个功能模块化,这样在需要增加新的功能时,只需要增加新的模块即可,不需要对整个系统进行重构。

同时,系统的安全性也是必须要考虑的一个问题。要采用各种安全措施,如数据加密、身份验证等,以保护学生数据的安全,防止数据泄露。

在实现学生管理系统之后,需要进行充分的测试,包括单元测试、集成测试和系统测试。只有经过严格的测试,才能够保证系统的稳定性和可靠性。

最后,系统的维护和更新也是必须要考虑的一个问题。要定期对系统进行检查和更新,以保证系统的正常运行。同时,也要考虑数据的备份和恢复,以防止数据丢失。

总之,学生管理系统是一个复杂的系统,需要综合考虑多方面的因素,包括功能、架构、数据库设计、界面设计、安全性、测试和维护等。只有对这些方面进行全面的考虑和实现,才能够开发出一套高效、可靠的学生管理系统ZT276899

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2249300.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

租辆酷车小程序开发(二)—— 接入微服务GRPC

vscode中golang的配置 设置依赖管理 go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.cn,direct GO111MODULEauto 在$GOPATH/src 外面且根目录有go.mod 文件时&#xff0c;开启模块支持 GO111MODULEoff 无模块支持&#xff0c;go会从GOPATH 和 vendor 文件夹寻找包…

集合卡尔曼滤波(EnKF)的三维滤波(模拟平面定位)例程,带逐行注释

这段 MATLAB 代码实现了一个三维动态系统的集合卡尔曼滤波&#xff08;Ensemble Kalman Filter, EnKF&#xff09;示例。代码的主要目的是通过模拟真实状态和测量值&#xff0c;使用 EnKF 方法对动态系统状态进行估计。 文章目录 参数设置初始化真实状态定义状态转移和测量矩阵…

鸿蒙千帆启新程,共绘数字生态蓝图

华为的鸿蒙千帆起计划&#xff1a;共筑数字未来&#xff0c;学习华为创新之路 在当今全球科技竞争日益激烈的背景下&#xff0c;华为作为中国科技企业的代表&#xff0c;正通过其自主创新的鸿蒙系统&#xff0c;引领一场移动应用生态的变革。鸿蒙千帆起计划&#xff0c;作为华…

python控制鼠标,键盘,adb

python控制鼠标&#xff0c;键盘&#xff0c;adb 听说某系因为奖学金互相举报&#xff0c;好像拿不到要命一样。不禁想到几天前老墨偷走丁胖子的狗&#xff0c;被丁胖子逮到。他面对警察的问询面不改色坚持自我&#xff0c;反而是怒气冲冲的丁胖子被警察认为是偷狗贼。我觉得这…

yum安装升级指定版本软件

与apt相同&#xff0c;yum也可以指定升级软件版本。 这里以升级gitlab-ce为例。 获得当前可用版本命令如下&#xff1a; yum list gitlab-ce --showduplicates 查看当前gitlab版本。在/var/opt/gitlab/gitlab-rails/查看VERSION文件内容&#xff1a; cat VERSION 当前版本…

el-table根据接口返回某一个字段合并行

根据名称相同合并行 <template><div><el-table :data"responseSearchIntegralAddData" :span-method"objectSpanMethod1" border style"width: 100%"><el-table-column prop"integralTypeName" label"名称…

Jmeter中的前置处理器

5&#xff09;前置处理器 1--JSR223 PreProcessor 功能特点 自定义数据处理&#xff1a;使用脚本语言处理请求数据&#xff0c;实现高度定制化的数据处理和生成。动态数据生成&#xff1a;在请求发送前生成动态数据&#xff0c;如随机数、时间戳等。变量设置&#xff1a;设置…

ABAP OOALV模板

自用模板&#xff0c;可能存在问题 一、主程序 *&---------------------------------------------------------------------* *& Report ZVIA_OO_ALV *&---------------------------------------------------------------------* REPORT ZVIA_OO_ALV.INCLUDE ZVI…

新能源汽车充电基础设施短板问题多,如何实现高效、综合、智能化管理?

随着城市经济的发展&#xff0c;人民生活水平的提升&#xff0c;新能源汽车保有量快速增长&#xff0c;而日益增长的新能源汽车需求与充电基础设施建设不平衡的矛盾日益突出。由于停车泊位充电基础设施总量不足、布局待优化、利用效率低、建设运营存在短板问题等原因&#xff0…

LeetCode:19.删除链表倒数第N个节点

跟着carl学算法&#xff0c;本系列博客仅做个人记录&#xff0c;建议大家都去看carl本人的博客&#xff0c;写的真的很好的&#xff01; 代码随想录 LeetCode&#xff1a;19.删除链表倒数第N个节点 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表…

vscode可以编译通过c++项目,但头文件有红色波浪线的问题

1、打开 VSCode 的设置&#xff0c;可以通过快捷键 Ctrl Shift P 打开命令面板&#xff0c;然后搜索并选择 “C/C: Edit Configurations (JSON)” 命令&#xff0c;这将在 .vscode 文件夹中创建或修改 c_cpp_properties.json 文件 {"configurations": [{"name…

Windows远程连接桌面报错“由于没有远程桌面授权服务器可以提供许可证,远程会话连接已断开。请跟服务器管理员联系

摘要 windows server配置了多用户登录&#xff0c;默认自动生成的连接许可证有效日期为120天&#xff0c;超过了这个时间后&#xff0c;用户将不能远程连接服务器。 需要配置多用户服务器&#xff0c;进行获取许可 问题 解决方法 1、win键R打开运行器&#xff0c;使用mstsc …

Qt程序发布及打包成exe安装包

参考:Qt之程序发布以及打包成exe安装包 目录 一、简述 Qt 项目开发完成之后,需要打包发布程序,而因为用户电脑上没有 Qt 配置环境,所以需要将 release 生成的 exe 文件和所依赖的 dll 文件复制到一个文件夹中,然后再用 Inno Setup 打包工具打包成一个 exe 安装包,就可以…

受天鹅绒蠕虫启发:软胶机器人如何实现刚度可调的粘附控制

大家好&#xff01;今天来了解一篇微型机器人研究——《Stiffness-tunable velvet worm–inspired soft adhesive robot》发表于《SCIENCE ADVANCES》。大家想想&#xff0c;在人体内部这样复杂的环境中&#xff0c;微型机器人要稳定操作&#xff0c;粘附控制是多么关键啊&…

Flink--API 之 Source 使用解析

目录 一、Flink Data Sources 分类概览 &#xff08;一&#xff09;预定义 Source &#xff08;二&#xff09;自定义 Source 二、代码实战演示 &#xff08;一&#xff09;预定义 Source 示例 基于本地集合 基于本地文件 基于网络套接字&#xff08;socketTextStream&…

typescript基础入门

在官网的页页https://www.typescriptlang.org/可以调试。 &#xff03;类型推断 let str: string abclet str1: string str1a&#xff03;数组及类型断言let numArr [1, 2, 3]const result numArr.find(item > item >2) as numberresult * 5&#xff03;基础类型和…

SenseVoice 音频转文字情绪识别 - python 实现

具体代码实现如下&#xff1a; from funasr import AutoModel from funasr.utils.postprocess_utils import rich_transcription_postprocesspath_audio "emo/happy.mp3"# 音频文件 # 加载模型 model_dir "iic/SenseVoiceSmall" model AutoModel(model…

Java学习笔记--继承方法的重写介绍,重写方法的注意事项,方法重写的使用场景,super和this

目录 一&#xff0c;方法的重写 二&#xff0c;重写方法的注意事项 三&#xff0c;方法重写的使用场景 四&#xff0c;super和this 1.继承中构造方法的特点 2.super和this的具体使用 super的具体使用 this的具体使用 一&#xff0c;方法的重写 1.概述:子类中有一个和父类…

深入浅出摸透AIGC文生图产品SD(Stable Diffusion)

hihi,朋友们,时隔半年(24年11月),终于能腾出时间唠一唠SD了🤣,真怕再不唠一唠,就轮不到SD了,技术更新换代是在是太快! 朋友们,最近(24年2月)是真的没时间整理笔记,每天都在疯狂的学习Stable Diffusion和WebUI & ComfyUI,工作实在有点忙,实践期间在飞书上…

OSI七层模型和TCP/IP五层模型详细介绍

这里写目录标题 一.OSI含义二.OSI七层模型1.应用层2.表示层3.会话层4.传输层5.网络层6.数据链路层7.物理层 TCP/IP五层协议1.应用层2.运输层运行在TCP上的协议运行在UDP上的协议 3.网络层IP协议配套使用的协议 4.数据链路层 四.网络协议分层的好处 一.OSI含义 OSI即是开放式通…