学生选课系统java实现

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011987219/article/details/49183645

需求描述

学生选课系统是集管理员管理系别、班级、课程、教师、学生,学生登录、修改密码、查看选课信息、选课、查看所选课程成绩,教师登录、修改密码、查看认可信息、录入修改成绩这些功能于一体的系统。

1. 列表内容
管理员维护基本资料
1)管理员
2)系别
3)班级
4)科目
5)教师
6)学生
2. 学生登录
1)修改密码
2)查看可选课程信息
3)选课
4)查看所选课程成绩
3. 教师登录
1)修改密码
2)查看任课信息
3)查看选课信息
4)录入修改成绩

语言和环境

实现语言:java
实现技术:JavaSE、JDBC、Swing
环境要求:NetBeans 8.0.2、SQL Server 2014、JDK 1.8.0

主要结构

包名 说明
com.gs.stu.source 图片资源包
com.gs.stu.util 工具类包
com.gs.stu.bean 实体类包
com.gs.stu.dao 数据访问接口包
com.gs.stu.service 业务逻辑接口包
com.gs.stu.service.impl 业务逻辑实现类包
com.gs.stu.view 视图包

详细设计

util包

包名 说明
com.gs.stu.util DBConnection 数据库连接关闭类
LocationUtil 窗体显示位置工具类
FrameUtil 内部窗体创建工具类

bean包

包名 说明
com.gs.stu.bean Manager 管理员类
Department 系部类
ClassBean 班级类
Teacher 教师类
TeacherView 教师视图类
Course 课程类
CourseView 课程视图类
Student 学生类
StudentView 学生视图类
SelectCourse 选课类
SelectCourseView 选课视图类
Log 日志类

dao包

包名 接口 说明
com.gs.stu.dao SysManagerDao 管理员管理接口
SysDepartmentDao 系部管理接口
SysClassDao 班级管理接口
SysTeacherDao 教师管理接口(管理员部分)
SysCourseDao 课程管理接口
SysStudentDao 学生管理接口(管理员部分)
SysLogDao 日志管理接口
StudentDao 学生管理接口
TeacherDao 教师管理接口

service包

包名 接口 说明
com.gs.stu.service SysManagerService 管理员业务管理接口
SysDepartmentService 系部业务管理接口
SysClassService 班级业务管理接口
SysTeacherService 教师业务管理接口(管理员部分)
SysCourseService 课程业务管理接口
SysStudentService 学生业务管理接口(管理员部分)
SysLogService 日志业务管理接口
StudentService 学生业务管理接口
TeacherService 教师业务管理接口

功能模块设计(后台)

管理员管理部分

管理员业务管理模块

1. Dao接口类:
类名:SysManagerDao
成员变量:
private int id;--编号
private String sysaccount;--用户名
private String syspassword;--密码
2. 接口内方法:
Manager managerLogin(String sysaccount,String syspassword);--根据帐号和密码查询管理员
int addManager(Manager m);-- 添加管理员
int deleteManager(int id);-- 删除管理员
int updateManager(Manager m);-- 修改管理员密码
Manager findManagerById(int id);-- 根据id查询管理员
Manager findManagerByAccount(String sysaccount);-- 根据帐号查询管理员
List<Manager> findAllManager();--查询所有管理员信息
3. Service接口类
类名:SysManagerService
Manager managerLogin(String sysaccount,String syspassword);-- 根据帐号和密码查询管理员
boolean addManager(Manager m);-- 添加管理员
boolean deleteManager(int id);-- 删除管理员
boolean updateManager(Manager m);-- 修改管理员密码
Manager findManagerById(int id);-- 根据id查询管理员
Manager findManagerByAccount(String sysaccount);-- 根据帐号查询管理员
List<Manager> findAllManager();--查询所有管理员信息
4. 具体实现类个别详解

1) Dao接口实现类名称:SysManagerDaoImpl

//例:查询所有管理员信息
public List<Manager> findAllManager() {
        List<Manager> list = new ArrayList<Manager>();
        Connection conn =DBConnection.getConnection(); //创建连接
        Manager mng =null;//创建一个管理员空对象
        String sql = "use selectivedb select * from t_manager ";//数据库要执行的操作
//调用Execute类中的executeQuery(String sql,Connection con)来执行
        ResultSet rs =ExecuteSql.executeQuery(sql, conn);
        try{
            while(rs.next()){
            mng = new Manager();
            mng.setId(rs.getInt("id"));
            mng.setSysaccount(rs.getString("sysaccount"));
            mng.setSyspassword(rs.getString("Syspassword"));
            list.add(mng);//将获取到的Manager放到list中
            }
        }catch(Exception e){
            e.printStackTrace();
        }
        return list;
    }

2) Service实现类名:SysManagerServiceImpl

//例:提供查找所有的管理员的服务
public List<Manager> findAllManager() {
        return s.findAllManager();
}

系部业务管理模块

1. Dao接口类:
类名:SysDepartmentDao
成员变量:   
private int id;
private String depname;
2. 接口内方法:
int addDepartment(Department dep);-- 添加系
int deleteDepartment(int id);-- 删除系
int updateDepartment(Department dep);-- 更新系名称
Department findDepById(int id);-- 根据编号查找系
Department findDepByName(String depname);-- 根据名称查找系
List<Department> findAllDep();--查看所有系
3. Service接口类
类名:SysDepartmentService
boolean addDepartment(Department dep);-- 添加系
boolean deleteDepartment(int id);-- 删除系
boolean updateDepartment(Department dep);-- 更新系名称
Department findDepById(int id);-- 根据编号查找系
Department findDepByName(String depname);-- 根据名称查找系
List<Department> findAllDep();--查看所有系
4. 具体实现类个别详解
1)  Dao接口实现类名称:SysDepartmentDaoImpl
    //添加系
    public int addDepartment(Department dep) {
        int i = 0;
        String depname = dep.getDepname();
        Connection conn =DBConnection.getConnection();
        try{
            String sql ="use selectivedb insert into t_department (depname) values('"+depname+"')";
            i = ExecuteSql.executeUpdate(sql, conn);
        }catch(Exception e){
            e.printStackTrace();
        }
        DBConnection.closeConn(conn);
        return i;
}
2)  Service实现类名:SysDepartmentServiceImpl
    public boolean addDepartment(Department dep) {
        return(s.addDepartment(dep)==1);
    }   

班级业务管理

1. Dao接口类:
类名: SysClassDao
成员变量:
private int id;
private String classname;
接口内方法:
//添加班级
public int addClassBean(ClassBean classbean);
//删除班级
public int deleteClassBean(int id);
//修改班级
public int updateClassBean(ClassBean classbean);
//根据编号查找班级
public ClassBean findClassBeanById(int id);
//根据名称查找班级
public ClassBean findClassBeanByName(String classname);
//查看所有班级
public List<ClassBean> findAllClass();
2. Service接口类
类名: SysClassService
接口内的方法:
//添加班级
public boolean addClassBean(ClassBean classbean);
//删除班级
public boolean deleteClassBean(int id);
//修改班级
public boolean updateClassBean(ClassBean classbean);
//根据编号查找班级
public ClassBean findClassBeanById(int id);
//根据名称查找班级
public ClassBean findClassBeanByName(String classname);
//查看所有班级
public List<ClassBean> findAllClass();
3. 具体实现类个别详解
Dao接口实现类名称:SysClassDaoImpl
//通过班级名称来找到班级
    public ClassBean findClassBeanByName(String classname) {
        Connection conn =DBConnection.getConnection();
        ClassBean clsb = null;
        String sql = "use selectivedb select * from t_class where classname= '"+classname+"'";
        ResultSet rs =null;
        try{
            rs =ExecuteSql.executeQuery(sql, conn);
            while(rs.next()){
                clsb = new ClassBean();
                clsb.setId(rs.getInt("id"));
                clsb.setClassname(rs.getString("classname"));                
            }
        }catch(Exception e){
            e.printStackTrace();
        }
        DBConnection.closeConn(conn);
        return clsb;  
    }
Service实现类名:SysClassServiceImpl
//通过班级名称来找到班级
    public ClassBean findClassBeanByName(String classname) {
        return c.findClassBeanByName(classname);
    }

教师业务管理

1. Dao接口类:
类名: TeacherDao
成员变量:
TeacherView:
   private int tid;
   private String tpassword;
   private String tname;
   private String tsex;
   private int tage;
   private String tjob;
   private String depname;
Teacher:
   private int tid;
   private String tpassword;
   private String tname;
   private short tsex;
   private int tage;
   private String tjob;
   private int tdepartment;
接口内方法:
    //1.登录
    public Teacher teacherLogin(int tid, String tpassword);
    //2.修改密码
    public int updatePassword(int tid, String tpassword);
    //3.查看自己的任课信息
    public List<Course> findCourseByTeacher(int tid);//根据教师编号查询教师任课信息
    //4.查看选课信息(某门课有哪些学生选修)
    public List<StudentView> findSelectCourseByCid(int cid);//根据课程号查询选课信息
    //5.录入成绩
    public int updateScore(SelectCourse sc);//根据学号,课程号,录入或修改成绩
    //6.成绩信息查看(某门课成绩)
    public List<SelectCourseView> findCourseScoreByCid(int cid);
2. Service接口类
类名: SysTeacherService
类中方法:
//添加教师
    public boolean addTeacher(Teacher tea);
    //删除教师
    public boolean deleteTeacher(int tid);
    //修改教师
    public boolean updateTeacher(Teacher tea);
    //根据教师工号查找
    public TeacherView findTeaById(int tid);
    //查看所有教师
    public List<TeacherView> findAllTeacher();
3. 具体实现类个别详解
Dao接口实现类名称:SysTeacherDaoImpl
//更新教师信息
public int updateTeacher(Teacher tea) {
     int tid = tea.getTid();
     String tpassword= tea.getTpassword();
     String tname = tea.getTname();
     short tsex = tea.getTsex();
     int tage = tea.getTage();
     String tjob = tea.getTjob();
     int tdepartment = tea.getTdepartment();
     int i = 0;
     Connection conn =DBConnection.getConnection();
     try{
        String sql ="use selectivedb update t_teacher set tpassword = '"+tpassword+
         "',Tname = '"+tname+"',Tsex = "+tsex+",tage ="+tage+",Tjob = '"+tjob+"',tDepartment="
                + ""+tdepartment+" where tid = "+tid;
         i = ExecuteSql.executeUpdate(sql, conn);
       }catch(Exception e){
        e.printStackTrace();
      }
     DBConnection.closeConn(conn);
     return i;
    }
Service实现类名:SysTeacherServiceImpl
//提供更新教师信息服务
public boolean updateTeacher(Teacher tea) {
        return (s.updateTeacher(tea)==1);   
    }

课程业务管理

1. Dao接口类:
类名: SysCourseDao
成员变量:
CourseView:
   private int id;
   private String coursename;
   private int credit;
   private String ctime;
   private String caddress;
   private String tname;
   private int limitnumber;
   private int truenumber;
Course:
   private int id;
   private String coursename;
   private int credit;
   private String ctime;
   private String caddress;
   private int teacher;
   private int limitnumber;
   private int truenumber;
接口内方法:
    //添加课程
    public int addCourse(Course cou);
    //根据课程编号删除课程
    public int deleteCourse(int id);
    //修改课程
    public int updateCourse(Course cou);
    //根据课程名查找课程
    public CourseView findCouByName(String coursename);
    //查看所有课程
    public List<CourseView> findAllCourse();
    public boolean findCouByAll(Course cou);
2. Service接口类

类名: SysCourseService

3. 具体实现类个别详解
Dao接口实现类名称:
Service实现方法名:
    //添加课程
    public boolean addCourse(Course cou);
    //删除课程
    public boolean deleteCourse(int id);
    //修改课程
    public boolean updateCourse(Course cou);
    //根据课程名查找课程
    public CourseView findCouByName(String coursename);
    //查看所有课程
    public List<CourseView>findAllCourse();
    public boolean findCouByAll(Course cou);

学生业务管理

1. Dao接口类:
类名: SysStudentDao
成员变量:
StudentView:
    private int sid;
    private String sname;
    private String spassword;
    private String ssex;
    private int sage;
    private String classname;
private String depname;
Student:
    private int sid;
    private String sname;
    private String spassword;
    private short ssex;
    private int sage;
    private int sclass;
    private int sdepartment;
接口内方法:
    //添加学生
    public int addStudent(Student stu);
    //删除学生
    public int deleteStudent(int sid);
    //修改学生
    public int updateStudent(Student stu);
    //根据学号查找学生
    public StudentView findStuById(int sid);
    //查找所有学生
    public  List<StudentView> findAllStudent();
2. Service接口类
类名: SysStudentService
接口内方法:
    //添加学生并返回学号
    public boolean addStudent(Student stu);
    //删除学生
    public boolean deleteStudent(int sid);
    //修改学生
    public boolean updateStudent(Student stu);
    //根据学号查找学生
    public StudentView findStuById(int sid);
    //查找所有学生
    public  List<StudentView> findAllStudent();
3. 实现类
Dao接口实现类名称:SysStudentDaoImpl
Service实现类名:SysStudentServiceImpl   

日志管理

1. Dao接口类:
类名: SysLogDao
成员变量:
  private int id ;
  private String Loginaccount ;
  private String Logintime  ;
接口内方法:
  //记录登录信息
  public int setLog(Log log);
  //获得所有登录日志
  public List<Log> getLogs();
2. Service接口类
类名: SysLogService
接口内方法:
    //记录登录信息
    public boolean setLog(Log log);
    //获得所有登录日志
    public List<Log> getLogs();
3. 实现类
Dao接口实现类名称:SysLogDaoImpl
Service实现类名:SysLogServiceImpl

教师管理部分

1. Dao接口类:TeacherDao

    //1.登录
    public Teacher teacherLogin(int tid, String tpassword);
    //2.修改密码
    public int updatePassword(int tid, String tpassword);
    //3.查看自己的任课信息
    public List<Course> findCourseByTeacher(int tid);//根据教师编号查询教师任课信息
    //4.查看选课信息(某门课有哪些学生选修)
    public List<StudentView> findSelectCourseByCid(int cid);//根据课程号查询选课信息
    //5.录入成绩
    public int updateScore(SelectCourse sc);//根据学号,课程号,录入或修改成绩
    //6.成绩信息查看(某门课成绩)
    public List<SelectCourseView> findCourseScoreByCid(int cid);

猜你喜欢

转载自blog.csdn.net/u011987219/article/details/49183645