版权声明:本文为博主原创文章,未经博主允许不得转载。 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);