博主主页猫头鹰源码

博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

文末联系获取

功能分析: 

调查研究人员通过本项目系统注册账号,然后登录账号,在修改个人信息等操作之后,便可以开始进行调查问卷的设计和制作。研究人员确认调查问卷设计和制作完毕之后,就可以选择发布或保存该调查问卷。在问卷调查发布之后,就可以开始进行调查问卷数据的收集和统计。

1、注册系统账号需要填写使用者的用户名、密码、手机号,以及性别和出生日期等信息,然后提交个人信息,在系统检测使用者填写的信息没有问题之后,账号就注册成功了。使用者可以用该账号登录系统,然后进行后续的操作。

2、使用者在登录页面填写好系统账号的用户名和密码,在系统检测确认账号用户名和密码匹配无误后就可以成功进入系统的个人后台,然后就可以建立、设计和编辑调查问卷了。使用者也可以查看自己注册的时候提交的个人信息,同时使用者也可以对已经变更的个人信息进行修改。

3、使用者在建立调查问卷的时候,先是填写好问卷调查的标题,确认之后就可以进入调查问卷的设计。一般情况下,问卷调查的问题类型分为单选题、多选题和文字简答题。使用者在向调查问卷添加问题的时候,先要确定所添加问题的问题类型,然后再填写问题内容和问题选项。

4、在使用者设计好问卷的内容之后,便可以选择发布问卷调查还是保存问卷调查。若选择发布问卷调查,则调查问卷的状态将设为公开,调查对象可以开始填写问卷信息,以供研究人员调查。若选择保存问卷调查,则调查问卷的状态将设为私密,问卷内容仅限使用者个人进行查看,同时使用者可以继续对调查问卷的内容进行修改。

在调查问卷发布之后,使用者就可以查看调查问卷收集到的数据了。使用者进入调查问卷数据的分析页面,系统把对应的调查问卷数据经过整理、统计和分析之后,会在页面中用柱状图、饼状图等数据可视化的形式进行调查问卷数据的展示,研究人员通过页面的显示的数据图形了解该调查问卷收集到的数据后,便可以更清晰地、更有条理地利用问卷调查数据来进行问题的研究。

数据库表结构和ER图:

 

系统包含技术:

后端:springboot,mybatis
前端:element-ui、js、css等
开发工具:idea/vscode
数据库:mysql 5.7
JDK版本:jdk1.8

部分截图说明:

进入首页,未登录也可以填写问卷

下面是登录页面

注册页面

问卷列表

 

填写问卷调查

 

进行问卷分析

 问卷管理

分享问卷

修改密码

部分代码:

 @PostMapping(value = "/allUser")
    @ResponseBody //获取所有用户
    public JSONObject selectAllUsers(){
        JSONObject json = new JSONObject();
        //获取所有用户信息
        List<User> users = userService.selectAllUsers();
        //把结果json化
        JSONObject userList = (JSONObject) JSON.toJSON(users);
        json.put("userlist",userList);
        return json;
    }

    @CrossOrigin
    @PostMapping(value = "api/login")
    @ResponseBody //用户登录
    public JSONObject login(@RequestBody User loginUser){
        JSONObject res = new JSONObject();
        //获取输入的用户名
        String username = loginUser.getUsername();
        username = HtmlUtils.htmlEscape(username);
        //获取输入的密码
        String password = loginUser.getPassword();
        password = HtmlUtils.htmlEscape(password);
        //在数据库查找
        User curUser = userService.findUser(username,password);
        if (curUser==null){
            //用户名或密码输入错误
            res.put("msg","fail");
        }else{
            //登录成功
            res.put("msg","success");
            // 把登录用户的id和name传过去
            int id = curUser.getId();
            String name = curUser.getUsername();
            res.put("id",id);
            res.put("name",name);
        }
        return res;
    }

    @CrossOrigin
    @PostMapping(value = "api/register")
    @ResponseBody //用户注册
    public JSONObject register(@RequestBody User registerUser){
        JSONObject data = new JSONObject();
        // 获取注册用户的用户名
        String username = registerUser.getUsername();
        username = HtmlUtils.htmlEscape(username);
        if (!"".equals(username)){
            User temp = userService.findUserByName(username);//查找用户名是否被占用
            if (temp == null){
                //可以进行注册
                int res = userService.addUser(registerUser);
                if (res > 0) // 注册成功
                    data.put("msg", "success");
                else // 注册失败
                    data.put("msg","fail");
            }else {
                //用户名不可用
                data.put("msg","unusable");
            }
        }
        return data;
    }

 

//加载个人问卷信息
    @CrossOrigin
    @PostMapping(value = "api/mySurveys")
    @ResponseBody
    public JSONObject getSurveyByUid(@RequestBody User curUser){
        JSONObject json = new JSONObject();
        //获取输入的用户名
        int uid = curUser.getId();
        List<Survey> res = surveyService.getSurveysByUid(uid);
        JSONArray surveyList = JSONArray.parseArray(JSON.toJSONString(res));
        json.put("mysurveylist",surveyList);
        return json;
    }

    //获取问卷内容
    @CrossOrigin
    @PostMapping(value = "api/surveyPage")
    @ResponseBody
    public JSONObject getSurveyPage(@RequestBody Survey survey){
        JSONObject json = new JSONObject();
        //获取问卷编号
        int sid = survey.getSid();
        if (sid>0){
            //获取问卷标题
            String stitle = surveyService.getStitleBySid(sid);
            //获取问卷状态
            int publish = surveyService.getPublishBySid(sid);
            //标题信息json化
            json.put("stitle",stitle);
            json.put("publish",publish);
            List<Question> questionList = questionService.getQuestionListBySid(sid);
            //转化成JSON数组
            JSONArray ques = JSONArray.parseArray(JSON.toJSONString(questionList));
            JSONArray questions = new JSONArray();
            for (Object q:ques) {
                //强制转换
                JSONObject que = (JSONObject) q;
                //获取当前问题的问题编号、题目类型
                int qid = que.getInteger("qid");
                int qtype = que.getInteger("qtype");
                //选择题
                if(qtype==1 || qtype==2){
                    //获取问题对应的选项内容
                    List<Option> optionList = optionService.getOptionListByQid(qid);
                    JSONArray options = JSONArray.parseArray(JSON.toJSONString(optionList));
                    que.put("options",options);//把选项列表数组放进问题内容中
                }
                questions.add(que);//直接添加进问题列表json数组
            }
            json.put("msg","success");
            json.put("questions",questions);
        }else {
            // 问卷编号有错,返回报错信息
            json.put("msg","error");
        }
        return json;
    }

以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐