【计算机毕业设计】003基于weixin小程序教学辅助

news2024/11/15 4:39:34

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。

  1. 代码可以私聊博主获取。🌹
  2. 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
  3. 赠送开题报告模板,帮助书写开题报告。

作者完整代码目录供你选择:

  1. 《Springboot网站项目》400套
  2. 《ssm网站项目》800套
  3. 《小程序项目》300套
  4. 《App项目》500套
  5. 《python网站项目》600套

⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡

项目演示

摘 要

随着移动应用技术的发展,越来越多的学生借助于移动手机、电脑完成生活中的事务,许多的传统行业也更加重视与互联网的结合,由于学生学习的压力越来越大,教学辅助是一个非常不错的教育平台,对于很多冲冲刺时间紧的学生是一个非常头痛的事情,有的人可能就是查找资料也要用去半天时间,教学辅助微信小程序为了缓解学生解决问题的所在,本论文探讨利用不断发展和进步的网络技术,实现线上考试、成绩查询等主要功能模块的具体实现,最后对教学辅助进行了功能测试,并对测试结果进行了分析总结,得出教学辅助存在的不足及需要改进的地方,为以后的教学辅助维护提供了方便,同时也为今后开发类似教学辅助提供了借鉴和帮助。

教学辅助开发使系统能够更加方便快捷,同时也促使教学辅助变的更加系统化、有序化。系统界面较友好,易于操作。具体在系统设计上,客户端使用微信开发者,后台也使用java技术在动态页面上进行了设计,Mysql数据库,是一个非常优秀的教学辅助微信小程序

关键词:教学辅助微信小程序;微信开发者 java语言  Mysql 数据库 SSM框架 

1 系统概述

1.1 概述

随着信息时代的快速发展,互联网的优势和普及,人们生活水平的不断提高,工作时间的繁忙,使得教学辅助的开发成为必需。教学辅助小程序主要是借助计算机,通过对教学辅助管理所需的信息管理,增加学生的选择,同时也方便广大学生信息的及时查询、修改以及对教学辅助信息的及时了解。教学辅助给学生带来了更多的选择, 该系统通过和数据库软件协作来满足学生的需求。

1.2课题意义

如今,随着移动用户端的普及,微信因为其简单,方便,并且用户体验度好,所以被称为现在聊天沟通的新宠,同时也被应用到更多的学校做宣传推广。截至2017年底,微信学生数突破10亿,包括银行、证券、快递服务、电子商务等越来越多的公司在微信平台上推出相应的服务平台,以适应学生新的行为习惯。微信平台的科研社交网络平台已是势在必行。计算机技术在现代管理中的应用,使计算机成为人们应用现代技术的重要工具。能够有效的解决学生管理便捷化的问题,提高效率。给学生提供最全面、最专业的数据管理信息,帮助他们了解最新详细信息,还有就是借助微信端,能够更好的满足学生的需求,为学生节省时间以达到省时又高效的目的。

1.3 主要内容

教学辅助小程序从功能、数据流程、可行性、运行环境进行需求分析。对教学辅助的数据库、功能进行了详细设计,分析了主要界面设计和相关组件设计,教学辅助的具体实现进行了介绍。从数据库中获取数据、向数据库中写入数据,实现系统直接对数据库进行各种数据库查询、插入、删除、更新等操作,在网页中加入动态内容,从而实现教学辅助小程序所需要的各种基本功能。

2 系统开发环境

2.1微信开发者工具

微信开发者工具现在已经被小程序开发团队开发运行,目前微信开发者工具任然在不断的完善中,在开发小程序时经常要不断的更新。可以使用微信扫码登陆开发者工具,开发者工具将使用这个微信帐号的信息进行小程序的开发和调试。

机型选择:小程序以智能手机的屏幕尺寸为设计标准,进行切图。

预览界面:写好视图布局后点击编译,用来刷新视图界面。

控制台:方便调试打印输出信息。

上传代码:上传到腾讯服务器,提交审核必经步骤。上传代码时可以填写版本号和备注信息。

资源文件:一般可以在资源文件进行对应项目的文件目录的断点调试。

显示远程调试:手机端和PC端开发工具联调对学生而言是非常实用的。

本地数据存储:显示的是本地存储的数据。

视图调试:标组件以子父层级结构呈现,方便调试。

微信限制在2M 以内的代码体积;开发中一般不校验合法域名信息;小程序后台要做配置服务器域名。

以上就是在开发过程中微信开发者工具常用到的功能,微信开发者工具也在不断的完善。

2.2小程序框架以及目录结构介绍

整个小程序框架系统分为两部分:逻辑层和视图层。小程序开发框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生小程序体验的服务。小程序在视图层与逻辑层间提供了数据传输和事件系统,提供了自己的视图层以及逻辑层框架,让开发者能够专注于数据与逻辑。框架的核心是一个响应的数据绑定系统,可以让数据与视图非常简单地保持同步。在逻辑层做数据修改,在视图层就会做相应的更新。框架提供了一套基础的组件,这些组件自带微信风格的样式以及特殊的逻辑,开发者可以通过组合基础组件,创建出强大的小程序 。

2.3 JAVA简介

Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,JSP(java server pages),和XML技术。多进步。例如,当我在微软Word中写这篇文章时,我还打开了一个MP3播放器来播放音乐。偶尔,我也会编辑Word,让成绩信息管理机器执行打印作业,我也喜欢通过IE。对我来说,这些操作是同时执行的,我不需要等待一首歌来完成成绩信息管理论文编辑。似乎他们都在成绩信息管理机器上同时为我工作。事实是,对于一个CPU,它只能在某个时间点执行一个程序。CPU在这些程序之间不断地“跳跃”。那么为什么我们看不到任何破坏呢?这是因为,与我们的感情相比,它的速度太快了。因此,尽管我们看到一些同步操作,实际上对于计算机来说,它只能在某个时间点执行一个程序,除非您的计算机是多CPU的。

Java是一种计算机编程语言,具有封装、继承和多态性三个主要特性,广泛应用于学校Web应用程序开发和移动应用程序开发。

Java语言和一般编译器以及直译的区别在于,Java首先将源代码转换为字节码,然后将其转换为JVM的可执行文件,JVM可以在各种不同的JVM上运行。因此,实现了它的跨平台特性。虽然这使得Java在早期非常缓慢,但是随着Java的开发,它已经得到了明显改进。

2.4 MySQL数据库

Mysql的语言是非结构化的,学生可以在数据上进行工作。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。并且因为Mysql的语言和结构比较简单,但是功能和存储信息量很强大,所以得到了普遍的应用。

Mysql数据库在编程过程中的作用是很广泛的,为学生进行数据查询带来了方便。Mysql数据库的应用因其灵活性强,功能强大,所以在实现某功能时只需要一小段代码,而不像其他程序需要编写大段代码。总体来说,Mysql数据库的语言相对要简洁很多。

数据流程分析主要就是数据存储的储藏室,它是在计算机上进行的,而不是现实中的储藏室。数据的存放是按固定格式,而不是无序的,其定义就是:长期有固定格式,可以共享的存储在计算机存储器上。数据库管理主要是数据存储、修改和增加以及数据表的建立。为了保证系统数据的正常运行,一些有能力的处理者可以进行管理而不需要专业的人来处理。数据表的建立,可以对数据表中的数据进行调整,数据的重新组合及重新构造,保证数据的安全性。介于数据库的功能强大等特点,本系统的开发主要应用了Mysql进行对数据的管理。

2.5 SSM三大框架

1.Spring的优势:
通过Spring的IOC特性,将对象之间的依赖关系交给了Spring控制,方便解耦,简化了开发。

2.Spring MVC的优势:
SpringMVC是使用了MVC设计思想的轻量级web框架,对web层进行解耦,使我们的开发更简洁。

3.Mybatis的优势:

数据库的操作(sql)采用xml文件配置,解除了sql和代码的耦合,提供映射标签,支持对象和和数据库orm字段关系的映射,支持对象关系映射标签,支持对象关系的组建提供了xml标签,支持动态的sql。

3 需求分析

3.1 系统设计目标

当今社会的生活节奏越来越快,人们对手机微信的需求也越来越高,不仅对操作简单、功能齐全方面,而且对于学生的体验度也有了更高的要求,最快捷高效的方式莫过于利用互联网,将教学辅助小程序和互联网结合起来,为学生提供方便快捷的服务。

需求分析的任务是通过详细调查现实要处理的对象,充分了解系统的工作概况,明确学生的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变。

3.2需求分析概述

教学辅助小程序主要是为了提高学生的工作效率和更方便快捷的满足学生,更好存储所有数据信息及快速方便的检索功能,对教学辅助的各个模块是通过许多今天的发达做出合理的分析来确定考虑学生的可操作性,遵循开发的系统优化的原则,经过全面的调查和研究。

教学辅助所要实现的功能分析,对于现在网络方便,教学辅助要实现管理员、教师、学生可以直接在平台上进行查看自己所需数据信息,这样既能节省管理的时间,不用再像传统的方式,如果学生想要进行交流信息,必须双方见面进行沟通交流所需的信息,由于很多学生时间的原因,没有办法进行见面沟通交流,真的很难满足学生的各种需求。所以教学辅助小程序的开发不仅仅是能满足学生的需求,还能提高学生的使用率。所以系统管理必须要更快捷、有效、长期地为学生或潜在学生传递信息。建立一个教学辅助微信小程序更好的交流平台,提高系统对学生交流后的信息服务的效率。此系统可以满足大多数学生所提出的问题,学生可以根据自身的需求获取相应的服务,为系统管理提供了快捷的途径。

教学辅助小程序学生端要求在系统的安卓手机上可以运行,主要实现了线上考试和成绩查询等相关信息的查看,并且根据需求进行对管理端;首页、个人中心、学生管理员、教师管理、课程类型管理、课程信息管理、课程表管理、成绩信息管理、预警信息管理、请假信息管理、考勤信息管理、系统管理,教师微信端;首页、课程信息、我的(课程信息、课程表、成绩信息、预警信息、请假信息、考勤信息)等学生微信端:首页、课程信息、我的(课程表、成绩信息、预警信息、请假信息、考勤信息、我的收藏管理)等主要功能模块的操作和管理。

总体分布如图3.1所示:  

3.1  总体功能需求图

系统实现给学生展示的界面与该对象是面对面的,包括是否允许学生简单,方便使用,该请求的响应时间,对整体质量的主图像,整体的布局的质量。

3.3 系统可行性分析 

技术可行性:

(1)硬件可行性分析

系统的硬件要求方面不存在特殊的要求,只需要在普通的硬件配置就能够轻松的实现,只是需要确保系统的正常工作即可,以及拥有较高的效率。如果有特别低的硬件,它可以导致系统的低性能以及效率低,从而导致整个网站的运行不顺畅。以目前普遍的个人计算机的配置而言,这是十分容易实现的 。因此,本系统的开发在硬件方面是可行的。

提供完整的技术支持和保护,确保网站的稳定,安全运行,提供24×7和24小时技术支持项目完成提供主要的服务器系统安全及时的通知和更新服务。

(2)软件可行性分析

提供一个共同的机制类似的借口动态模型,设计更集中。此外,代码复用,也可以很好的体现。因此,考虑到系统的实际情况,选择小程序作为本系统开发技术。通过上述分析,该系统的设计实现在软件方面是可行的。

因此,我们进行了两个方面的可行性研究,可以看出,该系统的开发是没有问题的。

3.4经济可行性

系统是基于小程序语言开发的软件,所以系统在开发人力、财力要求不高,具有经济可行性。

3.5操作可行性: 

本教学辅助采用java语言,利用网络就能够进行访问和操作,且界面简单易操作,学生只要平时有在用智能手机并连接到网络,都能进行访问和操作。

本教学辅助具有易操作、易管理、交互性好的特点,在操作上是非常简单的。因此本系统可以进行开发。

3.6系统流程和逻辑

系统业务流程图如图所示:

图3-1登录流程图

图3-2添加信息流程图

图3-3注册信息流程图

4系统概要设计

4.1 概述

本系统基于Web服务模式,是一个适用于Internet环境下的模型结构。只要学生能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示:

图4-1  系统工作原理图

4.2 系统结构

本系统架构网站,本系统的具体功能如下:

图4-2系统功能结构图

管理员结构图,如图4-4所示:

图4-4:管理员结构图

4.3. 数据库设计

4.3.1 数据库实体

管理员信息属性图如图4-5所示。

 图4-5 管理员信息实体属性图

学生信息: 学号、学生姓名、性别、头像、手机、学院、专业等实体属性图如图4-6所示。

图4-6学生信息实体属性图

教师信息:工号、教师姓名、性别、头像、学院、职称、电话 实体属性图如图4-7所示。

图4-7教师信息实体属性图

课程信息:课程名称、课程类型、图片、班级、课程视频、发布日期、工号、教师姓名实体属性图如图4-8所示。

图4-8课程信息实体属性图

4.3.2 数据库设计表

此系统需要后台数据库,下面介绍数据库中的各个表的详细信息。

allusers表:

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1

id

Int

4

10

2

username

150

255

3

pwd

150

255

4

cx

150

255

5

addtime

DateTime

8

19

chengjixinxi表:

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1

id

Int

4

10

2

addtime

150

255

3

bianhao

150

255

4

mingcheng

DateTime

8

255

5

xuehao

150

255

6

xueshengxingming

DateTime

8

255

7

kemu

150

255

8

chengji

DateTime

8

255

9

dianping

150

255

10

gonghao

DateTime

8

255

11

jiaoshixingming

150

255

jiaoshi表:

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1

id

Int

4

10

2

addtime

150

255

3

gonghao

150

255

4

mima

DateTime

8

255

5

jiaoshixingming

150

255

6

xingbie

DateTime

8

255

7

touxiang

150

255

8

xueyuan

DateTime

8

255

9

zhicheng

150

255

10

dianhua

DateTime

8

255

kaoqinxinxi表:

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1

id

Int

4

10

2

addtime

150

255

4

mingcheng

DateTime

8

255

5

bianhao

150

255

6

xuehao

DateTime

8

255

7

xueshengxingming

150

255

8

kaoqinneirong

DateTime

8

255

9

kaoqinzhuangkuang

150

255

10

kaoqinriqi

DateTime

8

255

11

gonghao

150

255

12

jiaoshixingming

DateTime

8

255

13

jiatingzhuzhi

150

255

xuesheng表:

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1

id

Int

4

10

2

addtime

150

255

4

xuehao

DateTime

8

255

5

mima

150

255

6

xueshengxingming

DateTime

8

255

7

xingbie

150

255

8

touxiang

DateTime

8

255

9

shouji

150

255

10

xueyuan

DateTime

8

255

11

zhuanye

150

255

5系统详细设计

本系统使用了微信开发者结合java和mysql结合的结构开发了教学辅助微信小程序应用,系统中所有和数据库有关系的操作都通过一个通用类来实现,大大提高了代码的耦合性,当数据库类型等信息变化后直接修改类文件就可以了,不再需要每个页面都修改。另外本系统解决了中文的问题,也是在配置文件中添加了编码方式的形式解决的,本系统另外一个大的特点是系统对数据库的操作都单独的写在了一个类里,这样对系统的所有数据库操作都只访问这个类就可以了,不要每个页面都去写数据库的操作,提高了系统的集成性。

5.1教师微信端功能模块

教师注册,在教师注册页面可以填写工号、教师姓名、性别、学院、职称、电话等信息,进行注册如图5-1所示。

图5-1教师注册界面图

教师登录,在教师登录页面填写账号、密码进行登录,,如图5-2所示。

图5-2教师登录界面图

首页、教师登录到教学辅助小程序可以查看首页、课程信息、我的等内容,如图5-3所示。

图5-3教师首页功能界面图

我的,教师在我的页面可以查看用户信息、课程信息、课程表、成绩信息、预警信息、请假信息、考勤信息等信息进行查看,如图5-4所示。

图5-4我的界面图

教师信息,在教师信息页面可以编辑工号、教师姓名、性别、头像、学院、职称、电话 等信息,并可根据需要进行添加、删除、修改进行保存,如图5-5所示。

图5-5教师信息界面图

课程信息,教师在课程信息页面可以查看各课程信息,并可根据需要对课程信息进行搜索、新增,如图5-6所示。

图5-6课程信息界面图

课程表,教师在课程表页面可以进行新增编号、班级、学号、学生姓名、课程一等等进行添加、修改、删除操作,如图5-7所示。

图5-7课程表界面图

5.2学生微信端功能模块

学生登陆,在学生登陆页面填写学号、密码进行登陆,如图5-8所示。

图5-8学生登陆界面图

首页,学生通过登陆进入教学辅助界面查看首页、课程信息、我的等信息,如图5-9所示。

图5-9首页界面图

我的,学生在我的页面可以查看课程表、成绩信息、预警信息、请假信息、考勤信息、我的收藏管理等信息,如图5-10所示。

图5-10我的界面图

学生信息,学生在个人信息页面可以查看学号、学生姓名、性别、头像、手机、学院、专业等信息进行添加、修改、删除保存操作,如图5-11所示。

图5-11我的界面图

课程表,学生通过页面查看课程表信息如图5-12所示。

图5-12学生信息界面图

请假信息,学生通过请假信息页面进行添加请假内容,需要教师进行审核,如图5-13所示。

图5-13请假信息界面图

课程信息,学生通过课程信息页面可进行搜索、收藏操作,如图5-14所示。

图5-14课程信息界面图

5.2管理员服务端功能界面

管理员通过填写账号、密码、角色进行登录如图5-15所示。

图5.15管理员登录界面图

管理员进入到首页界面进行查看首页、个人中心、学生管理、教师管理、课程类型管理、课程信息管理、课程表管理、成绩信息管理、预警信息管理、请假信息管理、考勤信息管理、系统管理等功能模块,如图5-16所示。管理员对个人中心进行操作填写原密码、新密码、确认密码并进行添加、删除、修改以及查看,程序成效图如下图5-17所示

图5.16首页界面图

图5-17密码修改界面图

    

学生管理,管理员在学生管理查看编辑学号、学生姓名、性别、头像、手机、学院、专业等进行详情、修改、删除操作如图5-18所示。

图5-18学生管理界面图

教师管理,管理员在教师管理查看编辑工号、教师姓名、性别、头像、学院、职称、电话 等进行详情、修改、删除操作如图5-19所示。

图5-19教师管理界面图

课程信息管理,管理员在课程信息查看课程名称、课程类型、图片、班级、课程视频、发布日期、工号、教师姓名等进行详情、修改、删除操作如图5-20所示。

图5-20课程信息界面图

预警信息管理,管理员在预警信息页面查看学生成绩信息等,可进行详情、修改、删除操作如图5-21所示。

图521预警信息界面图

请假信息管理,管理员在请假信息页面进行查看请假信息等,可进行审核、详情、修改、删除操作如图5-22所示。

图5-22请假信息管理界面图

系统管理,管理员通过系统管理页面查看公告信息等进行公告发布进行添加、删除、修改以及查看并对整个系统进行维护等操作,如图5-23所示。

图5-23系统管理如图所示。

6 系统测试

6.1 测试理论

软件系统测试的目的是通过测试找出在程序中的存在的错误信息和阻碍程序正常运转的安全隐患。这同时也是每一个系统软件测试的主要的规定,软件系统的应用过程中,发现一个重要的错误也是极具有很大的影响力的,一个好的测试的方案就为发展程序中存在的重大问题的;同样,一个成功的测试方案也就发现了迄今为止尚未发现的一个重要错误的测试。

软件测试的主要的好处就是为了让软件的运行情况更好,让学生的使用的过程中更加的满意。在软件工程中,软件测试是一个十分重要环节,在交付学生使用最终的软件之前,软件测试就是一个检验的过程,主要针对的是软件的软件设计开发、需求分析、系统编码各阶段结果的一个检验过程。

软件测试应遵循的原则如下:

(1) 软件测试要尽快的进行并且整个测试部分要是在整个软件开发的各个过程和细节。在发现了错误的情况下,立刻处理,这样会大大的减少软件的开发成,提高软件的质量。

(2) 在关于软件的各种测试中,例如测试的过程中使用的计划、报告等等要做到妥善的处理和保管,主要目的就是为了方便将来的对系统的维护。

(3) 群集现象是应该得到高度重视的,在软件的整个测试的过程中。就是在整个测试的过程中发现了错误的主要地方很有可能是就很多的错误的聚集的地方,所以要对这样的部分给予特殊的照顾。

(4) 对于软件的测试要尽量不要软件的设计开发人员或是机构,而是要另一方来进行测试程序,这样也是为了保证软件的测试结果的客观性以及公平公正性。

(5) 对于整个测试计划要严格的按照一定的规则来进行软件测试。

(6) 关于软件测试的过程中的用例应该是预期结果以及之前输入的数据信息构成,输入条件中的要考虑的有合理和不合理的因素都要考虑到,这样也是为了更好的帮助开发的人员更多的发现软件中存在的错误。

(7) 对于整个的测试结果进行全面的检查,尽量避免出现重复的错误。

6.2 测试方法及用例

1、功能测试

从学生的角度来看,测试时不了解新开发软件的内部结构,因此可以将系统与黑匣子进行比较,盲目输入后可以查看系统给出的反馈。这种测试属于黑盒测试,在测试中如果输入错误信息系统会报错。

2、性能测试

测试软件程序的整体状态(称为性能测试)通常使用自动化测试工具来检测系统的整体功能,在负载和压力测试之间进行划分,在某些情况下,将两者结合起来。虽然压力测试可以检测到系统可以提供的最高级别的服务,但是负载测试可以测试系统如何响应增加的负载。

在对系统进行测试的时候在找到问题的情况下必须在第一时间找到解决问题的办法,不要存在侥幸的心理,这样才能让系统开发的质量可以过关,并且开发的周期会大大缩短,还有就是在测试时,不要出现重复性的错误,遇到一个错误问题,要将整个系统开发所牵扯的该问题都必须一一解决,提高系统的安全性、稳定性。

白盒测试与黑盒测试是测试中比较常用的两种方法。

①结构测试俗称白盒测试:这种测试是在对程序的处理过程与结构都有详尽了解的前提下,顺从程序内部的逻辑而完成的系统测试,以确定系统中所有的通路都能够遵照设计要求正常工作,不出现任何偏差。

②功能测试又成黑盒测试:主要是针对程序功能能够按照设计正常实现的一种检测,在程序接口处进行,检测程序手法数据是否正常,与外部信息的交换是否完整。

测试用例:

表6.1 学生注册测试用例

用例编号

UC-TEST-001

测试名称

学生注册

前提条件

学生注册

步骤

操作描述

数据

期望结果

1

点击学生注册查看详情按钮

跳转到学生注册详情

2

点击添加按钮

跳转到添加页面

3

选中添加后按钮

跳转到学生注册页面

测试说明

学生未登录时到步骤3跳转到登录页面

测试结果

成功

测试人

表6.2 登录测试用例

情况

学生名输入

密码输入

期望结果

(1)

15546219225

1244566

提示“学生名或者密码错误,或账号未经审核”

(2)

aaaaa

123456

提示“学生名或密码错误,或者账号未经审核”

(3)

15546219225

hangguowei

登陆成功

6.3测试结果

测试后得到的性能和用例,系统具有足够的正确性、可靠性、稳定性,并且可以对输入数据进行准确的点击操作处理和响应测试学生的体验也得到了很好的反馈和响应时间。合理的范围,可以兼容所有主流浏览器,设计所需的效果。


结论

教学辅助小程序的设计,通过互联网来解决实现信息化的网站系统,通过我四年所学的所有专业知识整合一起,进行对教学辅助小程序进行开发设计,当然在真正着手来做的时候遇到了很多问题,一个是网站的技术问题,一个是自己之前没有单独开发过程序,动手实践比较少,面对问题的同时,自己的自信心也受到了一些打击,不过我也是快速的调整自己的状态,老师与同学讨论的方法解决了所有的困难。

毕业设计是我们所学知识应用的最佳体现,也是在考核我们四年中所学的所有的专业知识及技术应用情况,通过这样毕业设计可以更好的得到锻炼及对所学知识的复习及运用,也是一种训练和实践。教学辅助的实现,不仅巩固了我以前的知识,还对学到的知识通过结合技术进行详细了解,还结合了对跨学科效果的深入理解。

在以后我的工作中,我仍然会继续努力我的计算机方面的技术,让我在后期的平台开发中可以更好更快的实现需求功能。我相信自己可以胜任更多的好工作并在工作领域做出更大的贡献。

回顾毕业设计的整个过程,既付出了努力与汗水也收获了很多难以忘怀的美好经历。虽然在系统开发过程中经历了各种各样的困难,自己也在不断研究与探索,可是系统的实现仍有许多不足之处。但是经过系统编程工作让我有了更多的信心,我相信在未来的路上,我会走的更好。

致 谢

毕业设计结束的同时也意味着四年的大学生活就要结束了。教学辅助小程序的完成以及如何在系统运行过程中实现的更好,这其中付出了很大的努力,这段时光将会终身难忘。

在毕业设计的这一段时间里,离不开导师的细心指导,还有同学们的热情帮助,有时候几个同学在一起讨论系统中的某个功能模块如何实现,如何实现的更好,或是问题没得到有效的解决,就会没有心思做其他的事情,让我们对理想充满了动力。

在毕业设计即将结束之时,首先要感谢我的指导老师,谢谢您在毕业设计和毕业论文中对我的指导。在您的细心指导下我才能快速的掌握系统的相关功能,在您的大力帮助下我才能将课本上的知识与自己的项目结合,真正的做到学以致用。感谢您经常牺牲自己的休息时间,利用其丰富的教学和项目经验对我进行指导。 课堂上,您教会我们如何做人、教会我们新的知识,在课下,您又像朋友一样亲切,教会了我很多道理,让我意识到先做人、后做事。感谢所有教过我的老师,为我倾注了大量的心血,正是你们的谆谆教诲、严谨教学才使我能顺利的完成学业,再此向你们表示深深的感谢。感谢大学里教过我的每一位老师,真心祝福您们。

在这里还得感谢我的战友们,也就是同学们对我的大力支持及帮助。正是因为有你们的不断帮助、鼓励,熬夜通宵,不停的调试、测试程序,给我带来了极大的动力,才能最终完成网站的运行。我们在一起交流、谈论的时光,都将是我们在通往未来道路上的宝贵财富。我要深深地感谢你们!

毕业在即,在今后的工作和生活中,我会铭记师长们的教诲、同学们的帮助,继续不懈努力和追求,来报答所有支持和帮助过我的人!

最后,耽误了老师的休息时间来对本文进行审阅,评议和参与论文答辩的各位老师表示深深的感谢。在此,衷心的谢谢您们!


参考文献

[1] 杨文志. Google 小程序程序设计指南[M]. 北京:电子工业出版社,2018:10-100.

[2] 韩超,梁泉著. 小程序系统原理及开发要点详解 [M]. 北京:电子工业出版社,2019:50-150.

[3] 周元兴. Google入门与实例教程 [M]. 北京:电子工业出版社,2017:30-80.

[4]熊伟,叶淋玮. 我国虚拟旅游网站的功能评价研究[J]. 人文地理,2018,02:154-160.

[5]赵宣容. 计算机软件数据库设计的重要性以及原则探讨[J]. 电子技术与软件工程,2019,17:209.

[6]李凯,鹿艳晶.网站的设计与开发[J]. 软件导刊,2019,03:79-81.

[7]白凯,吕洋洋,李薇薇.网站信息类型、品牌与服务保证对网站信任的影响[J]. 旅游学刊,2019,03:91-99.

[8]郝进义. 数据库设计规范及设计技巧研究[J]. 计算机光盘软件与应用,2017,12:176-177.

[9]赵春燕. 网站优化深度研究[J]. 信息安全与技术,2019,01:61-63.

[10] 靳岩. 小程序 开发入门与实战 [M]. 北京:人民邮电出版社,2019:10-50.

[11] 余志龙 陈昱勋. Google 小程序 SDK开发范例大全 [M]. 北京:人民邮电出版社,2019:30-70.

[12] 杨丰盛. 小程序应用开发揭秘 L004 [M]. 北京:机械工业出版社,2018:43-65.

[13] 吴亚峰,苏亚光. 小程序 2.0系统开发实战宝典 [M]. 北京:人民邮电出版社,2019:15-30.

[14] 郭宏志.小程序应用开发详解 [M]. 北京:电子工业出版社,2017:22-300.

[15] 陈昱,江兰帆.基于Google 小程序平台的应用程序开发和研究[J].福建电脑,2018(11):156-157.

[16] 杨丰盛.小程序应用开发揭秘[M] 第一版.北京:机械工业出版社,2019年.7页

[17] 姚昱旻,刘卫国.教学辅助 的架构与应用开发研究[J].计算机系统应用,2018(11):110-1

[18] 姚昱旻,刘卫国.小程序 与J2ME 平台间即时通信的研究与实现[J].计算机系统应用,2018(12):118-120

[19] 公磊,周聪.基于小程序 的移动终端应用程序开发与研究[J].计算机与现代化,2018(8):86-89.

[20]范佳佳,叶继元. 21世纪以来网站评价研究进展与趋势[J]. 中国图书馆学报,2019,02:92-106.

[21]廉同辉,余菜花,宗乾进. 我国旅游网站的网络结构研究——基于社会网络分析法[J]. 旅游科学,2019,06:80-88.

[22]莫祖英,马费成. 数据库信息资源内容质量学生满意度模型及实证研究[J]. 中国图书馆学报,2019,02:85-97.

[23]李志义,义梅练. 基于学生体验的网站优化研究综述[J]. 情报科学,2018,11:150-154.

[24]Dong Qiu,Bixin Li,Hareton Leung. Understanding the API usage in Java[J]. Information and Software Technology,2018,73:.

[25]Oscar Vega-Gisbert,Jose E. Roman,Jeffrey M. Squyres. Design and implementation of Java bindings in Open MPI[J]. Parallel Computing,2018:.                                                      

核心代码展示

/**
 * 公告通知
 * 后端接口
 * @author 
 * @email 
 * @date 2021-03-09 11:33:59
 */
@RestController
@RequestMapping("/news")
public class NewsController {
    @Autowired
    private NewsService newsService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
        EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
		PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
        EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
		PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( NewsEntity news){
       	EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
      	ew.allEq(MPUtil.allEQMapPre( news, "news")); 
        return R.ok().put("data", newsService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(NewsEntity news){
        EntityWrapper< NewsEntity> ew = new EntityWrapper< NewsEntity>();
 		ew.allEq(MPUtil.allEQMapPre( news, "news")); 
		NewsView newsView =  newsService.selectView(ew);
		return R.ok("查询公告通知成功").put("data", newsView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        NewsEntity news = newsService.selectById(id);
        return R.ok().put("data", news);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        NewsEntity news = newsService.selectById(id);
        return R.ok().put("data", news);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody NewsEntity news, HttpServletRequest request){
    	news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(news);
        newsService.insert(news);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody NewsEntity news, HttpServletRequest request){
    	news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(news);
        newsService.insert(news);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody NewsEntity news, HttpServletRequest request){
        //ValidatorUtils.validateEntity(news);
        newsService.updateById(news);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        newsService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<NewsEntity> wrapper = new EntityWrapper<NewsEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = newsService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	


}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1924821.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【RabbitMQ】一文详解消息可靠性

目录&#xff1a; 1.前言 2.生产者 3.数据持久化 4.消费者 5.死信队列 1.前言 RabbitMQ 是一款高性能、高可靠性的消息中间件&#xff0c;广泛应用于分布式系统中。它允许系统中的各个模块进行异步通信&#xff0c;提供了高度的灵活性和可伸缩性。然而&#xff0c;这种通…

JavaScript进阶(三)---声明函数、调用函数、匿名函数、箭头函数、构造函数,自执行函数

目录 1. 声明函数&#xff1a; 2. 调用函数 3. 匿名函数 4. 箭头函数 箭头函数this使用案例&#xff1a; 5. 构造函数 构造函数的特点&#xff1a; 构造函数与普通函数的区别&#xff1a; 注意事项&#xff1a; 6.自执行函数 JavaScript是一种广泛使用的编程语言&…

15 - matlab m_map地学绘图工具基础函数 - 一些数据转换函数(二)

15 - matlab m_map地学绘图工具基础函数 - 一些数据转换函数&#xff08;二&#xff09; 0. 引言1. 关于m_geodesic2. 关于mygrid_sand23. 结语 0. 引言 通过前面篇节已经将m_map绘图工具中大多绘图有关的函数进行过介绍&#xff0c;已经能够满足基本的绘图需求&#xff0c;本节…

Linux vim文本编辑器

Vim&#xff08;Vi IMproved&#xff09;是一个高度可配置的文本编辑器&#xff0c;它是Vi编辑器的增强版本&#xff0c;广泛用于程序开发和系统管理。Vim不仅保留了Vi的所有功能&#xff0c;还增加了许多新特性&#xff0c;使其更加强大和灵活。 Vim操作模式 普通模式&#xf…

下载安装nodejs npm jarn笔记

下载安装nodejs npm jarn笔记 下载 Node.js安装Node.js修改node全局路径安装yarn 下载 Node.js 下载Node.js 安装Node.js 双击下载的下来的.msi文件运行并安装一直点next。安装路径可以是默认也可自定义。安装完成后Node.js和npm就安装完成了 命令行输入&#xff1a; nod…

企业网络实验(vmware虚拟机充当DHCP服务器)所有IP全部保留,只为已知mac分配固定IP

文章目录 需求实验修改dhcp虚拟机配置文件测试PC获取IP查看user-bind 需求 (vmware虚拟机充当DHCP服务器)所有IP全部保留&#xff0c;只为已知mac分配固定IP 实验 前期配置&#xff1a; https://blog.csdn.net/xzzteach/article/details/140406092 后续配置均在以上配置的前…

【学术会议征稿】第三届智能电网与能源系统国际学术会议

第三届智能电网与能源系统国际学术会议 2024 3rd International Conference on Smart Grid and Energy Systems 第三届智能电网与能源系统国际学术会议&#xff08;SGES 2024&#xff09;将于2024年10月25日-27日在郑州召开。 智能电网可以优化能源布局&#xff0c;让现有能源…

推荐一款uniapp拖动验证码插件

插件地址&#xff1a;易盾验证码 - DCloud 插件市场 具体使用方式访问插件地址自行获取

【教程】Vue2中使用svg矢量图

1.npm导包 npm i svg-sprite-loader --save2.创建目录放入svg文件&#xff0c;创建SvgIcon.js 3.SvgIcon.js const req require.context(./svg, false, /\.svg$/) const requireAll requireContext > requireContext.keys().map(requireContext) requireAll(req)4.vue.c…

【Js】导出 HTML 为 Word 文档

在 Web 开发中&#xff0c;有时我们希望用户能够将网页上的 HTML 内容保存为 Word 文档&#xff0c;以便更方便地分享和打印。 html样式 word文档 工具准备 1、 html-docx-js - npm html-docx-js是一个 JavaScript 库&#xff0c;用于将 HTML 内容转换为 Word 文档的格式。它…

MySQL-基础点

目录 MySQL概念 数据库三大范式是什么&#xff1f; blob 和 text 有什么区别&#xff1f; DATETIME 和 TIMESTAMP 的异同&#xff1f; MySQL 中 in 和 exists 的区别&#xff1f; MySQL 里记录货币用什么字段类型比较好&#xff1f; MySQL 怎么存储 emoji? 用过哪些 M…

.NET MAUI开源架构_2.什么是 .NET MAUI?

1.什么是.NET MAUI&#xff1f; .NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架&#xff0c;用于使用 C# 和 XAML 创建本机移动和桌面应用。使用 .NET MAUI&#xff0c;可从单个共享代码库开发可在 Android、iOS、macOS 和 Windows 上运行的应用。 .NET MAUI 是一款…

Flower花所比特币交易及交易费用科普

在加密货币交易中&#xff0c;选择一个可靠的平台至关重要。Flower花所通过提供比特币交易服务脱颖而出。本文将介绍在Flower花所进行比特币交易的基础知识及其交易费用。 什么是Flower花所&#xff1f; Flower花所是一家加密货币交易平台&#xff0c;为新手和资深交易者提供…

Python + OpenCV 简单车辆统计

目录 1 源码 2 运行结果 Python OpenCV 简单车辆统计 IDE : PyChram 1 源码 函数 car_count() 简单车辆统计 # 这是一个示例 Python 脚本。# 按 ShiftF10 执行或将其替换为您的代码。 # 按 双击 Shift 在所有地方搜索类、文件、工具窗口、操作和设置。 import cv2 impor…

Mojo语言的运用

1.Mojo语言概述 1.1什么是Mojo语言&#xff1f; Mojo语言是一种现代的动态编程语言&#xff0c;主要用于Web开发。它结合了多种语言的优点&#xff0c;如JavaScript、Perl和Lua&#xff0c;旨在为开发者提供&#xff1a; 简洁的语法&#xff1a;易于学习和使用&#xff0c;适…

课程设计——Python+OpenCV数字图像处理[车牌识别]

Python opencv 车牌识别 数字图像处理课程设计作业Python3OpenCV使用tkinter搭建界面tmp/文件夹是数字图像处理过程chepai/文件夹是车牌图片pic/文件夹是程序界面图PPT文件是验收时要讲的程序是从网上学习的并自己弄的&#xff0c;不完善&#xff0c;识别率不高 开发环境配置…

Java核心篇之JVM探秘:垃圾回收算法与垃圾收集器

系列文章目录 第一章 Java核心篇之JVM探秘&#xff1a;内存模型与管理初探 第二章 Java核心篇之JVM探秘&#xff1a;对象创建与内存分配机制 第三章 Java核心篇之JVM探秘&#xff1a;垃圾回收算法与垃圾收集器 第四章 Java核心篇之JVM调优实战&#xff1a;Arthas工具使用及…

QT creator与VS2019 QT加载模块方法

QT creator与VS2019加载模块方法 QT creator&#xff0c;pro文件添加 VS2019 QT

JavaScript中的面向对象编程

OPP在JavaScript的表现方式&#xff1a;原型 传统的OPP&#xff1a;类 ● 对象&#xff08;实例&#xff09;由类实例化&#xff0c;类的功能类似于蓝图&#xff0c;通过蓝图来实现建筑&#xff08;实例&#xff09; ● 行为&#xff08;方法&#xff09;从类复制到所有实例 …

子进程继承父进程文件描述符导致父进程打开设备文件失败

开发过程中有时会遇到需要在程序中执行三方程序或者shell脚本&#xff0c;一般会通过system(), popen(), exec簇来完成该功能。我们知道以上方法会通过fork创建子进程后在子进程中执行相应指令。如图1为某个示例流程&#xff0c;具体的程序执行流程如图2所示&#xff0c;线程my…