【242】java web学生学籍信息管理系统ssh学籍管理系统
开发工具:idea 或eclipse
数据库mysql5.7+
数据库链接工具:navcat,小海豚等
****中学生学籍信息管理系统****
学籍信息管理系统的设计与实现是利用开发工具Java+MySQL,该系统主要包括以下3个访问权限:学生,教师,系统管理员。
学生:(前端页面登录)
学生登录模块:学生可通过学号和密码登录系统,若是学号或密
码错误,则给出具体提示“学号错误”。
登录成功后,跳转页面上方显示学生学号、姓名;以及修改密码、注销功能。
除密码以外,学生不能修改其他信息。
登陆成功后,左侧显示具体模块名称,主页面显示教务信息,显示教务公
告、具体公告可点击查看,每一条公告后显示“教务公告”、发布公告时间
- 学生学籍信息模块:
以表格的形式显示学生具体信息,表格上方有学校、年级、班级、姓名信息。
表格中以从左到下从上到下顺序显示学生信息,分别为姓名、性别、民族、照片(4-5行)
出生日期、籍贯、联系方式、家庭住址。
显示家庭成员信息,姓名、性别、与本人关系、年龄、工作单位、联系方式
接下来分别有两张表格,奖励情况(何时受奖、何地受奖、何故受奖、受何等奖)和
处分情况(何时受处、何地受处、何故受处、受何处分)。
2.学生课表信息模块:
表格上方显示学生个人课表和学号、姓名信息。
课表中显示每周的课程安排,包括课程名称、授课教师。
- 学生成绩查询模块:
上方显示学号、姓名
具体信息显示开课学期、课程编号、课程名称、成绩。
4.学生身体素质模块
上方显示学号、姓名
内容包括姓名、性别、年龄、身高、体重、血压、血型、肺活量、家族史、有无疾病、
校医院联系方式。
教师(前端页面登录)
教师登录过程和学生登录基本类似,通过账号、密码登录系统,若账号
或密码错误给出具体提示,有找回密码的功能。
登录成功后显示所教授课程,以及该课程所对应的所有学生的成绩,具有修改学生成绩的
权限。
系统管理员:
- 学生学籍管理模块:点击进入该模块,可以查看所有班级对应的学生;
可以增删改查所有学生的学籍信息模块(即上述学生端的所有模块),并且设置学生的权限。
并包含所有班级管理模块:
班级信息修改、班级信息查询
通过查询班级显示该班级所有学生的信息。
2.教师管理模块:设置教师的基本信息和相应权限(相当于增加功能),并实现修改,查询, 删除功能。
package com.my.pro.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import com.github.abel533.echarts.axis.CategoryAxis;
import com.github.abel533.echarts.axis.ValueAxis;
import com.github.abel533.echarts.code.Trigger;
import com.github.abel533.echarts.data.PieData;
import com.github.abel533.echarts.json.GsonOption;
import com.github.abel533.echarts.series.Bar;
import com.github.abel533.echarts.series.Pie;
import com.my.pro.model.Manage;
import com.my.pro.model.User;
import com.my.pro.service.ManageService;
import com.my.pro.service.UserService;
import com.my.pro.utils.Pager;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@Controller("manageAction")
@Scope("prototype")
public class ManageAction extends BaseAction implements ModelDriven<Manage>{
private Manage manage;
@Autowired
private UserService userService;
@Autowired
private ManageService manageService;
private int userId;
private String userName;
private int sayId;
private String new1;
public String getNew1() {
return new1;
}
public void setNew1(String new1) {
this.new1 = new1;
}
/**
* 登陆以后进入首页
* @return
*/
public String index(){
Manage ma = manageService.login(manage);
if(ma == null){
return "login";
}
HttpSession session = ServletActionContext.getRequest().getSession();
session.setAttribute("userName", ma.getName());
session.setAttribute("userIdLogo", ma.getId());
session.setAttribute("userType", ma.getType());
session.setAttribute("userId", ma.getType());
return "index";
}
/**
* 跳到管理员页面,并且顺带查询管理员列表分页
* @return
*/
public String manage(){
Pager<Manage> pagers = manageService.list(manage);
ActionContext.getContext().put("pagers", pagers);
ActionContext.getContext().put("Obj", manage);
return SUCCESS;
}
/**
* 跳转添加页面
* @return
*/
public String addManage(){
return SUCCESS;
}
/**
* 添加
* @return
* @throws IOException
*/
public void manageAdd() throws IOException{
HttpServletResponse resp = ServletActionContext.getResponse();
resp.setContentType("application/json;charset=UTF-8");
PrintWriter out = null;
manage.setType(2);
manageService.save(manage);
out = resp.getWriter();
out.write(JSONArray.fromObject(1).toString());
}
/**
*
* @return
*/
public String manageEdit(){
Manage ma = manageService.getById(1);
ActionContext.getContext().put("ma", ma);
return SUCCESS;
}
public String manageEdit2(){
Manage ma = manageService.getById(manage.getId());
ActionContext.getContext().put("ma", ma);
return SUCCESS;
}
public void editmanage() throws IOException{
HttpServletResponse resp = ServletActionContext.getResponse();
resp.setContentType("application/json;charset=UTF-8");
PrintWriter out = null;
//Manage ma = manageService.getById(manage.getId());
/*ma.setPassWord(manage.getPassWord());
ma.setRealName(manage.getRealName());
ma.setName(manage.getName());
ma.setId(manage.getId())new1;*/
Manage byId = manageService.getById(1);
JSONObject js = new JSONObject();
if(!byId.getPassWord().equals(manage.getPassWord())){
js.put("result", "输入原始密码不正确");
}else{
byId.setPassWord(new1);
manageService.update(byId);
js.put("result", "修改成功");
}
out = resp.getWriter();
out.write(js.toString());
}
public void editmanage2() throws IOException{
HttpServletResponse resp = ServletActionContext.getResponse();
resp.setContentType("application/json;charset=UTF-8");
PrintWriter out = null;
//Manage ma = manageService.getById(manage.getId());
/*ma.setPassWord(manage.getPassWord());
ma.setRealName(manage.getRealName());
ma.setName(manage.getName());
ma.setId(manage.getId());*/
manageService.updateInfo(manage);
out = resp.getWriter();
out.write(JSONArray.fromObject(1).toString());
}
public String delManage(){
manageService.deleteInfo(manage.getId());
ActionContext.getContext().put("url", "/manage_manage.do");
return "redirect";
}
//=============================================================================================================
public int getSayId() {
return sayId;
}
public void setSayId(int sayId) {
this.sayId = sayId;
}
private File file;
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
public String getFileFileName() {
return fileFileName;
}
public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}
public String getFileContentType() {
return fileContentType;
}
public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}
//提交过来的file的名字
private String fileFileName;
//提交过来的file的MIME类型
private String fileContentType;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public Manage getModel() {
if(manage==null) manage = new Manage();
return manage;
}
/**
* 获取用户列表
* @return
*/
public String userList(){
Pager<User> pagers = userService.listAll(userName);
//这里需要对等级进行遍历
/*List<Grade> list = gradeService.list();
if(pagers != null && pagers.getDatas() != null && pagers.getDatas().size()>0){
for(User u : pagers.getDatas()){
//对这里的人 进行遍历
for(Grade g: list){
if(u.getJifen()>=g.getStartMin() && u.getJifen() <=g.getEndMax()){
u.setDengji(g.getName());
}
}
}
}*/
ActionContext.getContext().put("pagers", pagers);
ActionContext.getContext().put("userName1", userName);
return SUCCESS;
}
/**
* 根据用户id查询所有图片
* @return
*/
/*public String userPhotos(){
Pager<SayMood> pagers = sayMoodService.findAllphotosById(userId);
ActionContext.getContext().put("pagers", pagers);
return SUCCESS;
}
*/
/**
* 删除照片
* @return
*/
/*public String delsay(){
sayMoodService.del(sayId);
ActionContext.getContext().put("url", "/manage_userPhotos.do");
return "redirect";
}*/
//删除用户
public String delUse(){
userService.delUse(userId);
ActionContext.getContext().put("url", "/manage_userList.do");
return "redirect";
}
/**
* 图片上传
* @return
* @throws Exception
*/
/*public String fileUpload() throws Exception{
HttpSession session = ServletActionContext.getRequest().getSession();
if(session.getAttribute("userId") != null){
int userId = Integer.parseInt( session.getAttribute("userId").toString());
String root = ServletActionContext.getServletContext().getRealPath("/")+"upload";
//String root = ServletActionContext.getServletContext().getRealPath("upload");
//String root = ServletActionContext.getRequest().getContextPath()+"/"+"upload";
InputStream is = new FileInputStream(file);
fileFileName = UUIDUtils.create()+fileFileName;
OutputStream os = new FileOutputStream(new File(root, fileFileName));
System.out.println("fileFileName: " + fileFileName);
System.out.println("file: " + file.getName());
System.out.println("file: " + file.getPath());
byte[] buffer = new byte[500];
int length = 0;
while(-1 != (length = is.read(buffer, 0, buffer.length)))
{
os.write(buffer);
}
os.close();
is.close();
//接下来存到说说表中
SayMood sayMood = new SayMood();
sayMood.setContent("\\upload\\"+fileFileName);
sayMood.setCreateTime(new Date());
sayMood.setDzs(0);
sayMood.setIsDelete(2);
sayMood.setType(2);
User u = userService.getUser(userId);
sayMood.setSayUser(u);
sayMoodService.save(sayMood);
*//**
* 积分规则还没有做。上传图片需要加积分
*//*
//上传完毕,跳转列表action
ActionContext.getContext().put("url", "/user_homePage.do");
return "redirect";
}else{
return "login";
}
}*/
public String report(){
return SUCCESS;
}
//下面进行报表
/**
* 查询上个月和这个月 账号注册
* @throws IOException
*/
public void reportUser() throws IOException{
HttpServletResponse resp = ServletActionContext.getResponse();
resp.setContentType("application/json;charset=UTF-8");
PrintWriter out = null;
//首先查询本月和上个月用户总人数
List<User> users = userService.findSYuser();
List<User> users2 = userService.findBYuser();
List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("NAME", getsy());
if(users != null && users.size()>0){
map1.put("TOTAL", users.size());
}else{
map1.put("TOTAL", 0);
}
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("NAME", getBy());
if(users2 != null && users2.size()>0){
map2.put("TOTAL", users2.size());
}else{
map2.put("TOTAL", 0);
}
list.add(map1);
list.add(map2);
//创建Option
GsonOption option = new GsonOption();
option.title("注册人数").tooltip(Trigger.axis).legend("数量(人)");
//横轴为值轴
option.xAxis(new ValueAxis().boundaryGap(0d, 0.01));
//创建类目轴
CategoryAxis category = new CategoryAxis();
//柱状数据
Bar bar = new Bar("月份");
//饼图数据
Pie pie = new Pie("月份");
//循环数据
for (Map<String, Object> objectMap : list) {
//设置类目
category.data(objectMap.get("NAME"));
//类目对应的柱状图
bar.data(objectMap.get("TOTAL"));
//饼图数据
pie.data(new PieData(objectMap.get("NAME").toString(), objectMap.get("TOTAL")));
}
//设置类目轴
option.yAxis(category);
//饼图的圆心和半径
pie.center(900,380).radius(100);
//设置数据
option.series(bar, pie);
//由于药品名字过长,图表距离左侧距离设置180,关于grid可以看ECharts的官方文档
option.grid().x(180);
//返回Option
out = resp.getWriter();
out.write(option.toString());
}
public String getBy(){
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, -0);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
String time = format.format(c.getTime());
System.out.println(time);
return time;
}
public String getsy(){
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, -1);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
String time = format.format(c.getTime());
System.out.println(time);
return time;
}
public void reportSay() throws IOException{/*
HttpServletResponse resp = ServletActionContext.getResponse();
resp.setContentType("application/json;charset=UTF-8");
PrintWriter out = null;
//首先查询本月和上个月用户总人数
List<SayMood> users = sayMoodService.findSYusay();
List<SayMood> users2 = sayMoodService.findBYsay();
List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("NAME", getsy());
if(users != null && users.size()>0){
map1.put("TOTAL", users.size());
}else{
map1.put("TOTAL", 0);
}
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("NAME", getBy());
if(users2 != null && users2.size()>0){
map2.put("TOTAL", users2.size());
}else{
map2.put("TOTAL", 0);
}
list.add(map1);
list.add(map2);
//创建Option
GsonOption option = new GsonOption();
option.title("发表图片数").tooltip(Trigger.axis).legend("数量(人)");
//横轴为值轴
option.xAxis(new ValueAxis().boundaryGap(0d, 0.01));
//创建类目轴
CategoryAxis category = new CategoryAxis();
//柱状数据
Bar bar = new Bar("月份");
//饼图数据
Pie pie = new Pie("月份");
//循环数据
for (Map<String, Object> objectMap : list) {
//设置类目
category.data(objectMap.get("NAME"));
//类目对应的柱状图
bar.data(objectMap.get("TOTAL"));
//饼图数据
pie.data(new PieData(objectMap.get("NAME").toString(), objectMap.get("TOTAL")));
}
//设置类目轴
option.yAxis(category);
//饼图的圆心和半径
pie.center(900,380).radius(100);
//设置数据
option.series(bar, pie);
//由于药品名字过长,图表距离左侧距离设置180,关于grid可以看ECharts的官方文档
option.grid().x(180);
//返回Option
out = resp.getWriter();
out.write(option.toString());
*/}
public String welcome(){
return SUCCESS;
}
}
版权归原作者 java毕业设计程序 所有, 如有侵权,请联系我们删除。