基于Java SSM框架實(shí)現(xiàn)簡易的評教系統(tǒng)
介紹
項(xiàng)目編號:BS-GX-014
數(shù)據(jù)庫:mysql
開發(fā)工具:IDEA / ECLIPSE
開發(fā)技術(shù):SSM 框架
本系統(tǒng)基于SSM框架實(shí)現(xiàn)。主要包含三個角色,管理員,老師,學(xué)生。管理員主要管理學(xué)生,老師,課程。學(xué)生可以進(jìn)行選課,選完課后可以對任課老師評價。老師可以查看自己的評價信息。
效果圖
部分展示功能如下:
管理員角色:









學(xué)生角色:




老師角色:



部分核心代碼
package one.controller;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import one.domain.Admin;
import one.domain.Curriculum;
import one.domain.Evaluate;
import one.domain.PageBean;
import one.domain.Student;
import one.domain.Teacher;
import one.service.AdminService;
import one.service.CurriculumService;
import one.service.ManyTableService;
import one.service.StudentService;
import one.service.TeacherService;
import one.vo.Details;
import one.vo.ManyTable;
import one.vo.Tea_Curri;
@Controller
public class AdminController {
@Resource(name="manyTableServiceImpl")
private ManyTableService mts;
@Resource(name="studentServiceImpl")
private StudentService stus;
@Resource(name="teacherServiceImpl")
private TeacherService teas;
@Resource(name="adminServiceImpl")
private AdminService adms;
@Resource(name="curriculumServiceImpl")
private CurriculumService curs;
@RequestMapping("/seetea")
public String seetea(Model model) throws Exception{
List<Tea_Curri> listtea_curri = mts.gettea_curri();
model.addAttribute("listtea_curri", listtea_curri);
return "admin/seetea.jsp";
}
@RequestMapping("/seedetails")
public String seedetails(int cid,Model model) throws Exception{
List<Details> listdetails = mts.getdetails(cid);
int sum=0;
int flag=0;
for(Details det:listdetails){
if(det.getEscore()==null){
continue;
}
sum+=det.getEscore();
flag++;
}
if(flag==0){
return "pjnotfinish.jsp";
}
double avg=sum/flag;
int b=(int) (avg/10);
String grade;
switch(b){
case 10:grade="非常優(yōu)秀";break;
case 9:grade="優(yōu)秀";break;
case 8:grade="良好";break;
case 7:grade="中等";break;
case 6:grade="及格";break;
default:grade="不合格";
}
model.addAttribute("grade", grade);
model.addAttribute("avg", avg);
model.addAttribute("listdetails", listdetails);
return "admin/details.jsp";
}
@RequestMapping("/viewstu")
public String viewstu(Model model,int currPage) throws Exception{
int pageSize=5;
int count = stus.getcount();
int totalPage=(int) Math.ceil((count*1.0/pageSize));
if(currPage<=0){
currPage=1;
}
if(currPage>=totalPage){
currPage=totalPage;
}
PageBean<Student> pb = stus.getfenyestu(currPage, pageSize);
// List<Student> listallstu = stus.getallstu();
List<Student> liststu = pb.getList();
model.addAttribute("pb", pb);
model.addAttribute("liststu", liststu);
return "admin/viewstu.jsp";
}
@RequestMapping("/viewtea")
public String viewtea(Model model,int currPage) throws Exception{
int pageSize=5;
int count = teas.getcount();
int totalPage=(int) Math.ceil((count*1.0/pageSize));
if(currPage<=0){
currPage=1;
}
if(currPage>=totalPage){
currPage=totalPage;
}
PageBean<Teacher> pb = teas.getfenyetea(currPage, pageSize);
// List<Teacher> listalltea = teas.getalltea();
List<Teacher> listtea = pb.getList();
model.addAttribute("pb", pb);
model.addAttribute("listtea",listtea);
return "admin/viewtea.jsp";
}
@RequestMapping("/addstu")
public String viewtea(Student stu,Model model) throws Exception{
Student getstu = stus.getstu(stu.getSid());
if(getstu==null){
stus.insertstu(stu);
model.addAttribute("succ", "添加成功");
}else{
model.addAttribute("err", "已存在該編號的學(xué)生");
}
return "admin/addstu.jsp";
}
@RequestMapping("/addtea")
public String viewtea(Teacher tea,Model model) throws Exception{
Teacher gettea = teas.gettea(tea.getTid());
if(gettea==null){
teas.inserttea(tea);
model.addAttribute("succ", "添加成功");
}else{
model.addAttribute("err", "已存在該編號的教師");
}
return "admin/addtea.jsp";
}
//點(diǎn)擊查看課程
@RequestMapping("viewcurri")
public String viewcurri(Model model,int currPage) throws Exception{
int pageSize=10;
int count = curs.getcount();
int totalPage=(int) Math.ceil((count*1.0/pageSize));
if(currPage<=0){
currPage=1;
}
if(currPage>=totalPage){
currPage=totalPage;
}
PageBean<Curriculum> pb = curs.getfenyecur(currPage, pageSize);
List<Curriculum> listcur = pb.getList();
model.addAttribute("pb", pb);
model.addAttribute("listcur",listcur);
return "admin/viewcurri.jsp";
}
//修改密碼,點(diǎn)擊提交
@RequestMapping("/admuppwd")
public String uppwd(String oldpwd,String newpwd,HttpServletRequest request,Model model)throws Exception{
HttpSession session = request.getSession();
Admin adm=(Admin) session.getAttribute("adm");
if(adm.getApassword().equals(oldpwd)){
adm.setApassword(newpwd);
adms.uppwd(adm);
}else{
model.addAttribute("pwderr","你的原始密碼有誤");
return "admin/updatepwd.jsp";
}
return "admin/uppwdsuccess.jsp";
}
//點(diǎn)擊添加課程功能
@RequestMapping("addcurri")
public String addcurri(Model model) throws Exception{
List<Teacher> listalltea = teas.getalltea();
model.addAttribute("listtea",listalltea);
return "admin/addcurri.jsp";
}
//填寫課程信息后,點(diǎn)擊提交
@RequestMapping("submitcurri")
public String submitcurri(Curriculum cur,Model model) throws Exception{
Curriculum curri = curs.getbyid(cur.getCid());
if(curri==null){
curs.addcur(cur);
model.addAttribute("succ", "添加成功");
}else{
model.addAttribute("err", "該編號的課程已存在");
}
List<Teacher> listalltea = teas.getalltea();
model.addAttribute("listtea",listalltea);
return "admin/addcurri.jsp";
}
//點(diǎn)擊學(xué)生選課
@RequestMapping("stuselectcur")
public String stuselectcur(Model model,int currPage)throws Exception{
int pageSize=10;
int count = stus.getcount();
int totalPage=(int) Math.ceil((count*1.0/pageSize));
if(currPage<=0){
currPage=1;
}
if(currPage>=totalPage){
currPage=totalPage;
}
PageBean<Student> pb = stus.getfenyestu(currPage, pageSize);
// List<Student> listallstu = stus.getallstu();
List<Student> liststu = pb.getList();
model.addAttribute("pb", pb);
model.addAttribute("liststu", liststu);
return "admin/stuselectcur.jsp";
}
//點(diǎn)擊教師任課
@RequestMapping("teaselectcur")
public String teaselectcur(Model model,int currPage)throws Exception{
int pageSize=10;
int count = teas.getcount();
int totalPage=(int) Math.ceil((count*1.0/pageSize));
if(currPage<=0){
currPage=1;
}
if(currPage>=totalPage){
currPage=totalPage;
}
PageBean<Teacher> pb = teas.getfenyetea(currPage, pageSize);
List<Teacher> listalltea = pb.getList();
model.addAttribute("pb", pb);
model.addAttribute("listtea",listalltea);
return "admin/teaselectcur.jsp";
}
//點(diǎn)擊選課詳情
@RequestMapping("selectcurdetails")
public String selectcurdetails(Model model,String ssid,String sname)throws Exception{
List<ManyTable> liststu_curbystuid = mts.getstu_curbystuid(ssid);
if(liststu_curbystuid.size()==0){
model.addAttribute("sname", sname);
return "admin/noselectcur.jsp";
}
model.addAttribute("liststu_curbystuid", liststu_curbystuid);
model.addAttribute("sname", sname);
return "admin/stucurdetails.jsp";
}
//點(diǎn)擊教師任課詳情
@RequestMapping("teacurdetails")
public String teacurdetails(Model model,String tid,String tname)throws Exception{
List<Curriculum> listcurbytid = curs.getcurbytid(tid);
if(listcurbytid.size()==0){
model.addAttribute("tname", tname);
return "admin/teanocur.jsp";
}
model.addAttribute("listcurbytid", listcurbytid);
model.addAttribute("tname", tname);
model.addAttribute("tid", tid);
return "admin/teacurdetails.jsp";
}
//修改學(xué)生信息
@RequestMapping("updatestu")
public String updatestu(Student stu,Model model)throws Exception{
stus.updatestu(stu);
List<Student> listallstu = stus.getallstu();
model.addAttribute("liststu", listallstu);
return "/viewstu?currPage=1";
}
//修改教師信息
@RequestMapping("updatetea")
public String updatetea(Teacher tea,Model model)throws Exception{
teas.updatetea(tea);
List<Teacher> listalltea = teas.getalltea();
model.addAttribute("listtea",listalltea);
return "/viewtea?currPage=1";
}
//刪除學(xué)生
@RequestMapping("/delstu")
public String delstu(HttpServletRequest request)throws Exception{
String sid = request.getParameter("sid");
stus.delstu(sid);
return "/viewstu?currPage=1";
}
//刪除老師
@RequestMapping("/deltea")
public String deltea(String tid)throws Exception{
teas.deltea(tid);
return "/viewtea?currPage=1";
}
//刪除課程
@RequestMapping("/deletecurriculumbyid")
public String deletecurriculumbyid(int cid)throws Exception{
curs.deletecur(cid);
return "/viewcurri?currPage=1";
}
//點(diǎn)擊修改課程
@RequestMapping("/updatecurr")
public String updatecurr(Model model)throws Exception{
List<Teacher> listalltea = teas.getalltea();
model.addAttribute("listtea",listalltea);
return "admin/updatecurr.jsp";
}
//課程里點(diǎn)擊確認(rèn)修改
@RequestMapping("/querenxiugai")
public String querenxiugai(Model model,Curriculum curr){
curs.querenxiugai(curr);
return "viewcurri?currPage=1";
}
//按姓名查詢學(xué)生
@RequestMapping("/nameselect")
public String nameselect(String name,Model model)throws Exception{
List<Student> liststu = stus.findbyname(name);
if(liststu.size()==0){
return "admin/NewFile1.jsp";
}
model.addAttribute("liststu", liststu);
return "admin/NewFile2.jsp";
}
//按姓名查詢老師
@RequestMapping("/tnameselect")
public String tnameselect(String name,Model model)throws Exception{
List<Teacher> listtea = teas.findteabyname(name);
if(listtea.size()==0){
return "admin/NewFile3.jsp";
}
model.addAttribute("listtea", listtea);
return "admin/NewFile4.jsp";
}
}package one.controller;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import one.domain.Curriculum;
import one.domain.Evaluate;
import one.domain.Student;
import one.domain.Studentandcurriculum;
import one.service.CurriculumService;
import one.service.EvaluateService;
import one.service.ManyTableService;
import one.service.StudentService;
import one.vo.ManyTable;
@Controller
public class StudentController {
@Resource(name="studentServiceImpl")
private StudentService stus;
@Resource(name="curriculumServiceImpl")
private CurriculumService curs;
@Resource(name="evaluateServiceImpl")
private EvaluateService evaService;
//修改密碼,點(diǎn)擊提交
@RequestMapping("/stuuppwd")
public String uppwd(String oldpwd,String newpwd,HttpServletRequest request,Model model)throws Exception{
HttpSession session = request.getSession();
Student stu=(Student) session.getAttribute("stu");
if(stu.getSpassword().equals(oldpwd)){
stu.setSpassword(newpwd);
stus.uppwd(stu);
}else{
model.addAttribute("pwderr","你的原始密碼有誤");
return "student/updatepwd.jsp";
}
return "student/uppwdsuccess.jsp";
}
//學(xué)生點(diǎn)擊進(jìn)行評教
@RequestMapping("/aa")
public String allpj(HttpServletRequest request,Model model) throws Exception{
HttpSession session = request.getSession();
Student stu = (Student) session.getAttribute("stu");
List<ManyTable> listpj = mts.getall(stu.getSid());
if(listpj.size()==0){
return "student/nocurr.jsp";
}else{
model.addAttribute("listpj", listpj);
return "student/allpingjiao.jsp";
}
}
@Resource(name="manyTableServiceImpl")
private ManyTableService mts;
@Resource(name="evaluateServiceImpl")
private EvaluateService evas;
//學(xué)生提交評教
@RequestMapping("/subpj")
public String subpj(HttpServletRequest request,int eid,String advise,Model model)throws Exception{
int a = Integer.parseInt(request.getParameter("1"));
int b = Integer.parseInt(request.getParameter("2"));
int c = Integer.parseInt(request.getParameter("3"));
int d = Integer.parseInt(request.getParameter("4"));
int e = Integer.parseInt(request.getParameter("5"));
int f = Integer.parseInt(request.getParameter("6"));
int g = Integer.parseInt(request.getParameter("7"));
int h = Integer.parseInt(request.getParameter("8"));
int i = Integer.parseInt(request.getParameter("9"));
int j = Integer.parseInt(request.getParameter("10"));
int sum=a+b+c+d+e+f+g+h+i+j;
if(advise==""){
advise=null;
}
Date date=new Date();
Evaluate eva=new Evaluate();
eva.setEid(eid);
eva.setEscore(sum);
eva.setEcomment(advise);
eva.setEdate(date);
evas.uppj(eva);
HttpSession session = request.getSession();
Student stu = (Student) session.getAttribute("stu");
List<ManyTable> listpj = mts.getall(stu.getSid());
model.addAttribute("listpj", listpj);
return "student/allpingjiao.jsp";
}
//點(diǎn)擊添加選課
@RequestMapping("addmycur")
public String addmycur(Model model)throws Exception{
List<Curriculum> listallcur = curs.getallcur();
model.addAttribute("listallcur", listallcur);
return "student/addmycur.jsp";
}
@RequestMapping("stuaddcur")
public String stuaddcur(HttpSession session,Model model,int scid ) throws Exception{
Student stu = (Student) session.getAttribute("stu");
Studentandcurriculum stucur=new Studentandcurriculum();
stucur.setScid(scid);
System.out.println(stu.getSid());
stucur.setSsid(stu.getSid());
Studentandcurriculum myselect = stus.findmyselect(stucur);
if(myselect==null){
stus.stuaddcur(stucur);
Evaluate eva=new Evaluate();
eva.setEsid(stucur.getSsid());
eva.setEcid(stucur.getScid());
evaService.addstuselect(eva);
model.addAttribute("succ", "添加選課成功!");
}else{
model.addAttribute("err", "你已經(jīng)選了該課程!");
}
List<Curriculum> listallcur = curs.getallcur();
model.addAttribute("listallcur", listallcur);
return "student/addmycur.jsp";
}
}到此這篇關(guān)于基于Java SSM框架實(shí)現(xiàn)簡易的評教系統(tǒng)的文章就介紹到這了,更多相關(guān)Java SSM評教系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
maven插件spring-boot-starter-tomcat的使用方式
這篇文章主要介紹了maven插件spring-boot-starter-tomcat的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
Java自定義類數(shù)組報null的相關(guān)問題及解決
這篇文章主要介紹了Java自定義類數(shù)組報null的相關(guān)問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
Java 判斷線程池所有任務(wù)是否執(zhí)行完畢的操作
這篇文章主要介紹了Java 判斷線程池所有任務(wù)是否執(zhí)行完畢的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Java8中CompletableFuture使用場景與實(shí)現(xiàn)原理
CompletableFuture是java8引入的新類,該類實(shí)現(xiàn)了Future接口和 CompletionStage接口,封裝了future、forkjoin相關(guān)類來執(zhí)行異步,這篇文章主要給大家介紹了關(guān)于Java8中CompletableFuture使用場景與實(shí)現(xiàn)原理的相關(guān)資料,需要的朋友可以參考下2022-02-02
MybatisPlus多表連接查詢的具體實(shí)現(xiàn)
MyBatis Plus是一款針對MyBatis框架的增強(qiáng)工具, 它提供了很多方便的方法來實(shí)現(xiàn)多表聯(lián)查,本文主要介紹了MybatisPlus多表連接查詢的具體實(shí)現(xiàn),具有一定的參考價值,感興趣的可以了解一下2023-10-10
詳解Java 包掃描實(shí)現(xiàn)和應(yīng)用(Jar篇)
這篇文章主要介紹了詳解Java 包掃描實(shí)現(xiàn)和應(yīng)用(Jar篇),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07

