java基于微信小程序的英语在线学习考试系统 uniapp 小程序

网络技术的快速发展给各行各业带来了很大的突破,也给各行各业提供了一种新的管理技术,对于微信小程序的英语学习激励系统将又是一个传统管理到智能化信息管理的典型案例,对于传统的英语学习激励管理,所包括的信息内容比较多,用户想要对这些数据进行管理维护需要花费很大的时间,而且数据的存储比较麻烦,想要查找某一相关的数据信息比较繁琐,随着互联网大潮的到来,决定开发一套智能化、信息化的微信小程序的英语学习激励系统,主要对首页,个人中心,用户管理,单词分类管理,单词本管理,学习清单管理,试卷管理,试题管理,系统管理,考试管理等功能模块的研发。

请添加图片描述
环境需要
1.运行环境:微信开发者工具,最好是java jdk 1.8,这是目前最稳定的JDK也是被使用最多的JDK版本。
2.IDE环境:IDEA,Eclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat7/Tomcat8/Tomcat9版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.数据库:MySql 5.7版本或以上版本;
6.是否Maven项目:是;
技术栈
后端:Spring+SpringMVC+Mybatis+Springboot
小程序端:uni-app+微信开发者工具混合开发模式

请添加图片描述

微信开发者工具现在已经被小程序开发团队开发运行,目前微信开发者工具任然在不断的完善中,在开发小程序时经常要不断的更新。可以使用微信扫码登陆开发者工具,开发者工具将使用这个微信帐号的信息进行小程序的开发和调试。
机型选择:小程序以智能手机的屏幕尺寸为设计标准,进行切图。
预览界面:写好视图布局后点击编译,用来刷新视图界面。
控制台:方便调试打印输出信息。
上传代码:上传到腾讯服务器,提交审核必经步骤。上传代码时可以填写版本号和备注信息。
资源文件:一般可以在资源文件进行对应项目的文件目录的断点调试。
显示远程调试:手机端和PC端开发工具联调对用户而言是非常实用的。
本地数据存储:显示的是本地存储的数据。
视图调试:标组件以子父层级结构呈现,方便调试。
微信限制在2M 以内的代码体积;开发中一般不校验合法域名信息;小程序后台要做配置服务器域名。
以上就是在开发过程中微信开发者工具常用到的功能,微信开发者工具也在不断的完善。请添加图片描述
本课题要求实现一套微信小程序的英语学习激励系统,系统主要包括管理员和用户两大模块
(a) 管理员:管理员进入系统主要功能包括首页,个人中心,用户管理,单词分类管理,单词本管理,学习清单管理,试卷管理,试题管理,系统管理,考试管理等功能并进行操作。
(b) 用户:用户进入系统主要功能包括单词本,学习清单,错题本,试卷列表,考试记录,反馈中心等功能并进行操作。

请添加图片描述`
/**

  • 登录相关
    */
    @RequestMapping(“users”)
    @RestController
    public class UserController{

    @Autowired
    private UserService userService;

    @Autowired
    private TokenService tokenService;

    /**

    • 登录
      */
      @IgnoreAuth
      @PostMapping(value = “/login”)
      public R login(String username, String password, String captcha, HttpServletRequest request) {
      UserEntity user = userService.selectOne(new EntityWrapper().eq(“username”, username));
      if(user==null || !user.getPassword().equals(password)) {
      return R.error(“账号或密码不正确”);
      }
      String token = tokenService.generateToken(user.getId(),username, “users”, user.getRole());
      return R.ok().put(“token”, token);
      }

    /**

    • 注册
      */
      @IgnoreAuth
      @PostMapping(value = “/register”)
      public R register(@RequestBody UserEntity user){
      // ValidatorUtils.validateEntity(user);
      if(userService.selectOne(new EntityWrapper().eq(“username”, user.getUsername())) !=null) {
      return R.error(“用户已存在”);
      }
      userService.insert(user);
      return R.ok();
      }

    /**

    • 退出
      */
      @GetMapping(value = “logout”)
      public R logout(HttpServletRequest request) {
      request.getSession().invalidate();
      return R.ok(“退出成功”);
      }

    /**

    • 密码重置
      */
      @IgnoreAuth
      @RequestMapping(value = “/resetPass”)
      public R resetPass(String username, HttpServletRequest request){
      UserEntity user = userService.selectOne(new EntityWrapper().eq(“username”, username));
      if(user==null) {
      return R.error(“账号不存在”);
      }
      user.setPassword(“123456”);
      userService.update(user,null);
      return R.ok(“密码已重置为:123456”);
      }

    /**

    • 列表
      */
      @RequestMapping(“/page”)
      public R page(@RequestParam Map<String, Object> params,UserEntity user){
      EntityWrapper ew = new EntityWrapper();
      PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
      return R.ok().put(“data”, page);
      }

    /**

    • 列表
      */
      @RequestMapping(“/list”)
      public R list( UserEntity user){
      EntityWrapper ew = new EntityWrapper();
      ew.allEq(MPUtil.allEQMapPre( user, “user”));
      return R.ok().put(“data”, userService.selectListView(ew));
      }

    /**

    • 信息
      */
      @RequestMapping(“/info/{id}”)
      public R info(@PathVariable(“id”) String id){
      UserEntity user = userService.selectById(id);
      return R.ok().put(“data”, user);
      }

    /**

    • 获取用户的session用户信息
      */
      @RequestMapping(“/session”)
      public R getCurrUser(HttpServletRequest request){
      Long id = (Long)request.getSession().getAttribute(“userId”);
      UserEntity user = userService.selectById(id);
      return R.ok().put(“data”, user);
      }

    /**

    • 保存
      */
      @PostMapping(“/save”)
      public R save(@RequestBody UserEntity user){
      // ValidatorUtils.validateEntity(user);
      if(userService.selectOne(new EntityWrapper().eq(“username”, user.getUsername())) !=null) {
      return R.error(“用户已存在”);
      }
      userService.insert(user);
      return R.ok();
      }

    /**

    • 修改
      */
      @RequestMapping(“/update”)
      public R update(@RequestBody UserEntity user){
      // ValidatorUtils.validateEntity(user);
      userService.updateById(user);//全部更新
      return R.ok();
      }

    /**

    • 删除
      */
      @RequestMapping(“/delete”)
      public R delete(@RequestBody Long[] ids){
      userService.deleteBatchIds(Arrays.asList(ids));
      return R.ok();
      }
      }
      `
      目录
      1 绪论 1
      1.1课题背景 1
      1.2课题研究现状 1
      1.3初步设计方法与实施方案 2
      1.4本文研究内容 2
      2 系统开发环境 4
      2.1 使用工具简介 4
      2.2 环境配置 4
      2.3 B/S结构简介 4
      2.4 MySQL数据库 5
      2.5 框架介绍 5
      3 系统分析 6
      3.1系统可行性分析 6
      3.1.1经济可行性 6
      3.1.2技术可行性 6
      3.1.3运行可行性 6
      3.2系统现状分析 6
      3.3功能需求分析 7
      3.4系统设计规则与运行环境 8
      3.5系统流程分析 8
      3.5.1操作流程 8
      3.5.2添加信息流程 9
      3.5.3删除信息流程 10
      4 系统设计 11
      4.1系统设计主要功能 11
      4.2数据库设计 11
      4.2.1数据库设计规范 11
      4.2.2 E/R图 11
      4.2.3数据表 12
      5 系统实现 25
      5.1系统功能模块 25
      5.2后台模块 27
      5.2.1管理员功能模块 27
      5.2.2用户功能模块 30
      6 系统测试 33
      6.1功能测试 33
      6.2可用性测试 33
      6.3性能测试 34
      6.4测试结果分析 34
      7结 论 35
      参考文献 36
      致 谢 37
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编写一个出题考试系统需要经过以下步骤: 1. 设计数据库结构:考虑到需要存储考试信息、题目信息、考生信息等,需要设计好数据库表结构,可以使用关系型数据库如MySQL、SQLite等。 2. 编写数据录入程序:编写一个程序将题目信息录入数据库中,包括题目类型、难度、选项、答案等。 3. 编写考试生成程序:根据不同的考试需求,编写一个程序随机生成一定数量的题目,并将题目信息存储在考试信息中。 4. 编写考试答题程序:编写一个程序,让考生进行答题,并将答题结果存储在考生信息中。 5. 编写成绩统计程序:编写一个程序,根据考试结果和答题情况,计算出考生的成绩和排名。 下面是一个简单的Python代码示例,实现了数据库的创建和数据录入功能: ```python import sqlite3 import random # 创建数据库连接 conn = sqlite3.connect('exam.db') cursor = conn.cursor() # 创建题目表 cursor.execute('''CREATE TABLE IF NOT EXISTS questions (id INTEGER PRIMARY KEY AUTOINCREMENT, type TEXT, difficulty TEXT, content TEXT, options TEXT, answer TEXT)''') # 题目录入 types = ['choice', 'fill'] difficulties = ['easy', 'medium', 'hard'] for i in range(1, 21): type = random.choice(types) difficulty = random.choice(difficulties) content = f'Question {i}' if type == 'choice': options = 'A. Option A\nB. Option B\nC. Option C\nD. Option D' answer = random.choice(['A', 'B', 'C', 'D']) else: options = '' answer = 'Answer' cursor.execute("INSERT INTO questions (type, difficulty, content, options, answer) VALUES (?, ?, ?, ?, ?)", (type, difficulty, content, options, answer)) # 提交更改并关闭数据库连接 conn.commit() conn.close() ``` 注意,这只是一个简单的示例,实际开发中需要更加完善的功能和异常处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值