第一步:点击左侧菜单栏学生选题-学生列表进入选题页面,再点击选题管理进入选择页面;第二步:点击选题来源选择其他进行搜索即可查看到已有选题,确认选题点击确认选择待指导老师审核通过后即可建立选题关系。
相关拓展:
维普网,原名“维普资讯网”,该公司是中文期刊数据库建设事业的奠基人。从1989年开始,1直致力于对海量的报刊数据进行科学严谨的研究、分析,采集、加工等深层次开发和推广应用。
自1993年成立以来,公司的业务范围已涉及数据库出版发行、知识网络传播、期刊分销、电子期刊制作发行、网络广告、文献资料数字化工程以及基于电子信息资源的多种个性化服务。
毕业论文选题系统是基于微信小程序,后端是基于java编程语言,ssm框架,mysql数据库和IDEA工具开发,本系统分为学生,教师,管理员三个角色;学生可以注册登陆系统,查看系统公告,选课论文课题,提交课题论文,查看论文审核,答辩结果等信息;教师可以发布课题,审核学生论文,课题答辩结果,在线回复学生留言;管理员对学生,教师,公告,论文,选题,答辩等进行管理;本系统功能齐全,文档齐全,适合作为微信小程序毕业设计来参考和学习。
一.技术环境
jdk版本:1.8 及以上
ide工具:IDEA ,微信小程序开发工具
数据库: mysql5.7 (必须5.7)
编程语言: Java
tomcat: 8.0 及以上
java框架:SSM
maven: 3.6.1
前端:layui ,微信
详细技术:HTML+CSS+JS+JSP+JAVA+SSM+MYSQL+JQUERY+MAVEN+微信开发工具
二.项目文件(项目获取请看文末官网)
在这里插入图片描述
三.系统功能
在这里插入图片描述
四.代码示例
package com.lmu.controller;
/**
* 和登陆有关的都在这里
*/
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.lmu.model.Role;
import com.lmu.model.User;
import com.lmu.service.RoleService;
import com.lmu.service.UserService;
import com.lmu.utils.JsonUtils;
import com.lmu.utils.UserUtils;
import org.apache.commons.collections.map.HashedMap;
import org.apache.struts2.ServletActionContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
@Controller("loginController")
@Scope("prototype")
public class LoginController extends ActionSupport {
@Autowired
private UserService userService;
@Autowired
private RoleService roleService;
private User user;
private Map<String, Object> map = new HashMap();
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
/**
* 用户登陆
* @return
*/
public void index() throws IOException {
User user1 = userService.getUser(user);
if (user1 != null){
if (user1.getIsSh() == 1){
if (user1.getRole().getEnName().equals("admin")){
ActionContext.getContext().getSession().put("user", user1);
}
if (user1.getRole().getEnName().equals("js")){
ActionContext.getContext().getSession().put("user1", user1);
}
if (user1.getRole().getEnName().equals("xs")){
ActionContext.getContext().getSession().put("user2", user1);
}
map.put("flag", 1);
map.put("url", "login_indexs.do");
map.put("id", user1.getId());
JsonUtils.toJson(map);
} else {
map.put("flag", 2);
JsonUtils.toJson(map);
}
} else {
map.put("flag", 3);
JsonUtils.toJson(map);
}
}
public String indexs() throws IOException {
User u = UserUtils.getUser();
if (u != null){
ActionContext.getContext().put("user", u);
String ss = u.getRole().getEnName();
ActionContext.getContext().put("role", u.getRole().getEnName());
}
return SUCCESS;
}
//登陆页面
public String login() {
return SUCCESS;
}
//退出
public String tuichu() {
ActionContext ac = ActionContext.getContext();
Map session = ac.getSession();
session.remove("userName");
session.remove("userId");
ServletActionContext.getRequest().getSession().invalidate();
return "login";
}
}
package com.lmu.controller;
/**
* 用户新增
*/
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.lmu.model.Role;
import com.lmu.model.User;
import com.lmu.service.RoleService;
import com.lmu.service.UserService;
import com.lmu.utils.JsonUtils;
import com.lmu.utils.Pager;
import com.lmu.utils.UserUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import java.awt.event.FocusEvent;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Controller("userController")
@Scope("prototype")
public class UserController extends ActionSupport implements ModelDriven<User> {
@Autowired
private UserService userService;
@Autowired
private RoleService roleService;
private User user;
private Integer userId;
private Map<String, Object> map = new HashMap();
/**
* list
*
* @return
*/
public String list() throws IOException {
User user1 = UserUtils.getUser();
if (user1 == null || user1.getId() == null){
ActionContext.getContext().put("login", 1);
return SUCCESS;
}
Pager<User> pagers = null;
Role role = user1.getRole();
if (role.getEnName().equals("admin")) {
pagers = userService.getList(user);
ActionContext.getContext().put("pagers", pagers);
ActionContext.getContext().put("user", user1);
ActionContext.getContext().put("role", role);
ActionContext.getContext().put("bean", user);
return SUCCESS;
} else if (role.getEnName().equals("xs") || role.getEnName().equals("js")) {
pagers = userService.getList(user1);
ActionContext.getContext().put("pagers", pagers);
ActionContext.getContext().put("bean", user);
return SUCCESS;
}
return null;
}
/**
* 跳转add
*
* @return
*/
public String add() {
Pager<Role> pagers = roleService.pagers();
ActionContext.getContext().put("pagers", pagers);
return SUCCESS;
}
/**
* 查询修改
*
* @return
*/
public String edit() {
User bean = userService.findById(userId);
Pager<Role> pagers = roleService.pagers();
ActionContext.getContext().put("bean", bean);
ActionContext.getContext().put("pagers", pagers);
return SUCCESS;
}
/**
* 审核
*
* @return
*/
public void updateSh() throws IOException {
user.setIsSh(1);
userService.updates(user);
map.put("flag", true);
map.put("url", "user_list.do");
JsonUtils.toJson(map);
}
/**
* 更新
*
* @return
*/
public String update() throws IOException {
if (user.getPass().equals("")){
user.setPass(null);
}
userService.updates(user);
map.put("flag", true);
map.put("url", "user_list.do");
JsonUtils.toJson(map);
return SUCCESS;
}
/**
* 保存
*
* @return
*/
public void save() throws IOException {
if (userService.getUser(user) != null){
map.put("flag", false);
map.put("url", "login_login.do");
JsonUtils.toJson(map);
} else {
user.setTime(new Date());
userService.save(user);
map.put("flag", true);
map.put("url", "login_login.do");
JsonUtils.toJson(map);
}
}
public void delete() throws IOException {
User user1 = userService.findById(userId);
user1.setIsDelete(1);
userService.update(user1);
map.put("flag", true);
map.put("url", "user_list.do");
JsonUtils.toJson(map);
}
@Override
public User getModel() {
if (user == null) {
user = new User();
}
return user;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
毕业论文的双向选择是什么意思?
毕业论文指导双向选择系统设计
数据库建立
数据库中表的设计就是为了存储一条用户的基本信息或者用户操作的一条记录,将数据持久化,为之后的操作保存记录。本数据库设计了5个数据表[6-8]。(1)tutor表用于保存每个导师的相关信息。id唯一标识一条导师工号,还包含导师姓名、导师登录密码、导师年龄、导师性别、导师所在系别、导师研究方向、导师对所选学生的要求、导师所授课程、导师入职时间。(2)student表用于保存每个学生的信息。id唯一标识一条学生学号,还包含学生姓名、学生登录密码、学生年龄、学生性别、学生所在系别、学生所学专业的方向模块、学生所在班级、学生的课题方向、学生所选导师的id。(3)accept表用于记录学生和导师之间相互选择的操作信息。id唯一标识一条操作记录。(4)login_time_limit表用于记录学生和导师各自的可以登录的时间。stu_start_time和stu_end_time为学生登录时间段的起止期,tutor_start_time和tutor_end_time为导师登录时间段的起止期。(5)admin表用于记录管理员的基本信息。记录管理员姓名、管理员登录密码,属性的访问权限都是私有的。
系统功能设计
(1)登录模块设计登录模块是为了区分用户角色以及用户数据的安全性,从登录页面输入账号和密码并且选择用户角色之后,如果验证通过可以登录到学生、导师和管理员三个角色的系统界面。(2)信息管理模块信息管理模块按用户不同可分为三方面,学生首先完善自己的信息,其次是查看导师的信息;导师首先完善自己的信息,其次是查看学生的信息;管理员完成增加学生和导师的账号信息、删除学生和导师无效的账号信息。(3)选择模块该模块是学生和导师之间的互相选择。学生根据导师信息选择符合条件的导师,导师查看学生信息,从而确定同不同意。(4)登录时间限制模块该模块是用来限制学生和导师的登录时间的。通过对学生和导师分别加一个时间限制,从而限制学生和导师的登录时间。
毕业论文指导双向选择系统实现
经过需求分析和系统设计阶段,得出系统整体功能的具体实现[9],分为登录模块、信息管理模块、选择模块和登录时间限制模块。系统功能的实现就是根据每个模块功能的业务逻辑,进行相应代码的编写,从而实现具体的系统功能。
4.1用户登录的实现
导师、学生、管理员登录通过点击登录按钮,将静态页面上的用户名和密码通过Ajax技术传到服务器上。表示层的DispatcherServlet将不同的请求匹配不同的控制层,控制层接受相应的参数并且调用业务层的相应方法,业务层调用持久层的方法,并将参数传给持久层,持久层以此为条件进行查询,将查询出来的数据返回给业务层,然后业务层在对得到的数据进行校验,若校验通过,则登录成功,若不通过,则提示相应的信息。