【计算机毕业设计】安卓054基于Android校园助手

news2024/11/16 8:36:24

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

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

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

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

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

项目演示

 

摘  要

如今的信息时代,对信息的共享性,信息的流通性有着较高要求,因此传统管理方式就不适合。为了让管理模式进行升级,也为了更好的维护信息,校园助手的开发运用就显得很有必要。并且通过开发校园助手,不仅可以让所学的微信小程序技术得到实际运用,也可以掌握MySQL的使用方法,对自身编程能力也有一个检验和提升的过程。尤其是通过实践,可以对系统的开发流程加深印象,无论是前期的分析与设计,还是后期的编码测试等环节,都可以有一个深刻的了解。

借助于校园助手这样的工具,让信息系统化,流程化,规范化是最终的发展结果,让其遵循实际操作流程的情况下,对信息实施规范化处理,让信息通过电子的方式进行保存,无论是管理人员检索信息,可以便利化操作,真正缩短信息处理时间,节省人力和信息管理的成本。

关键校园助手,微信小程序技术,MySQL

第一章 绪论

1.1 选题背景

如今的信息时代,对信息的共享性,信息的流通性有着较高要求,尽管身边每时每刻都在产生大量信息,这些信息也都会在短时间内得到处理,并迅速传播。因为很多时候,管理层决策需要大量信息作为参考依据,也有些时候,各大企业或学校也需要使用工具宣传自身的文化理念等等,所以信息能够得到迅速传播并带给人们一定的参考价值,充分发挥信息本身的作用是很有必要的,而这些恰恰是传统模式所不能相比的。因此,借助工具让信息系统化,流程化,规范化是最终的发展结果,而这个工具则是计算机软件。本次设计实现的计算机软件校园助手,让其遵循实际操作流程的情况下,对成绩信息实施规范化处理,让成绩信息通过电子的方式进行保存,无论是管理人员检索成绩信息,维护成绩信息都可以便利化操作,真正缩短信息处理时间,节省人力和信息管理的成本。

1.2 选题意义

为了让成绩信息的管理模式进行升级,也为了更好的维护成绩信息,校园助手的开发运用就显得很有必要,因为它不仅可以让成绩信息的管理人员统一完成信息管理,而且还会在保证成绩信息处于安全状态的情况下,让成绩信息的处理流程缩短,让信息的管理工作量减少,让成绩信息的录入和后期维护缩短时间,以及节省管理成绩信息需要投入的精力与资金。由于校园助手运用的技术比较成熟,所以它本身就具备了稳定的性能,连续24小时运行都毫无压力。而且还可以保证数据处理的质量。另外,校园助手为了满足易用性的用户需求,特意在页面的设计上合理布局各元素,让重要内容和导航功能在关键区域展示,让操作系统的用户可以毫不费力的完成系统的操作。总的说来,校园助手实现了信息资源的共享,让信息可以以更好的方式进行传播,让管理员的管理水平得到提升的同时,也让成绩信息计算机化。

1.3 研究内容

根据校园助手设计与实现的流程来对整个系统进行说明。本文将从下述6个部分介绍系统。

第一部分:介绍选题的动因,包括介绍课题背景和意义等。

第二部分:介绍本系统选用的开发手段,包括编程语言,后台支持的数据库,开发类技术等。

第三部分:介绍系统的分析内容,包括投资决策必须的可行性研究,用户对功能的要求,系统运行的性能要求等知识。

第四部分:介绍系统的设计。包括对系统功能结构的设计,数据表结构设计等。

第五部分:介绍系统的实现。包括各模块实现的具体运行效果。

第六部分:介绍系统测试。包括检查系统功能,测试知识点的介绍等。


第二章 开发环境

对校园助手进行开发,需要了解开发技术的理论与实际运用,对开发工具,尤其是数据库的使用方法需要进行掌握。

2.1 springBoot框架

springBoot框架不是一个框架的名称,而是三个框架的首字母缩写,分别是Spring框架、SpringMVC框架、MyBatis框架。是目前Java开发者中学习的首选框架。

Spring框架继承了JavaEE和EJB框架的优点,在依赖注入方面去掉了臃肿的配置,在面向切面方面也简化了代码数量,提高了代码品质。依赖注解进行配置,让所有的依赖都可以通过程序的自动配置和寻找,减少了代码写作数量,提高了代码阅读性。

SpringMVC框架与Spring只是一个公司的,在底层代码结构上可以复用,但是最主要的功能是对数据提交请求进行过滤,并且对数据的返回进行过滤,不限于页面是微信小程序技术,也可以是其他的技术,更容易大型开发的集合技术。

MyBatis框架摒弃了Hibernate框架的配置臃肿方面,有时候Hibernate框架业务比较复杂的时候,代码量反而增加,性能下降,无法对底层的数据库语句优化,而MyBatis框架则有效的解决了这个方面,可以通过Java语句,对数据库操作语句进行优化,代码更简洁,执行效率更高,并且可以生产一些模块化代码,解决了开发过程中容易出现的实体映射方面的操作。

2.2微信小程序技术

微信小程序,小程序的一种,英文名Wechat Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。

全面开放申请后,主体类型为企业、政府、媒体、其他组织或个人的开发者,均可申请注册小程序。微信小程序、微信订阅号、微信服务号、微信企业号是并行的体系。

微信小程序是一种不用下载就能使用的应用,也是一项创新,经过将近两年的发展,已经构造了新的微信小程序开发环境和开发者生态。微信小程序也是这么多年来中国IT行业里一个真正能够影响到普通程序员的创新成果,已经有超过150万的开发者加入到了微信小程序的开发,与我们一起共同发力推动微信小程序的发展,微信小程序应用数量超过了一百万,覆盖200多个细分的行业,日活用户达到两个亿,微信小程序还在许多城市实现了支持地铁、公交服务。微信小程序发展带来更多的就业机会,2017年小程序带动就业104万人,社会效应不断提升。 [1] 

2.3 MYSQL数据库

MYSQL数据库起源于瑞典,但是经营不善被数据库行业老大甲骨文公司给收购了,收购了之后本以为只是为了发展Oracle数据库,然后MySQL数据库就会被雪藏,但是没想到甲骨文公司收购后对MySQL数据库进行了支持,并且让之前Oracle占据不了的中小型市场让MySQL占用,完全实现了甲骨文公司的利润增长,不管是从大型数据库还是中小型数据库,都有了自己的产品,并且可以对两种数据库的优势尽量的发挥,取长补短,MySQL数据库反而发展的越来越好。

最新版本的MYSQL数据库配备上了管理工具,因为甲骨文公司属于老牌的数据库厂商,对数据库的客户端工具自然有其他下线厂商进行研发配套,这些旁枝末节的事情并没有投入很大的精力,造成的结果就是程序开发人员还是习惯使用传统的Navicat for MySQL或者SQLyog这些MySQL数据库管理工具,大部分数据库开发调试人员还是习惯于视窗情况下看到相关数据。不管是越来越强的MySQL数据库还是市面上广泛流传的各种MySQL数据库客户端,MySQL数据库能实现本课题的开发,那么选择MySQL作为数据库是没有问题的。

2.4 HTML简介

HTML是超文本标记语言,都是用各种声明以及对称性的的特殊符号作为标记,用以浏览器解析。HTML还有一些基本标签,比如根元素标签就是<html>,而文档元数据一般都写在了<head>标签里面,标题就是浏览器左上角的显示的网页内容,用的是<title>标签描述,<body>里是很重要的,描述的是浏览器显示的可见内容,如果想要在浏览器上面显示一些数据,那么肯定是要写在<body>标签里面的。关于定义标题或者换行以及段落,都有对应的标签。基本上各个浏览器都支持调试模式,一般都是用到了键盘上面用F12就可以看到标签形式的代码。

HTML作为一种超文本标记语言,是目前学习网站必须学习的第一门语言,要熟悉里面很多种标记,这种标记就是网页专属标记,只有这样浏览器才能解析相关信息。HTML里面包含了整整一套的标签,各种标签都有自己的功能,并且可以循环嵌套这些标签,比如一个表格里套着两个小小的表格。HTML一般文件名称的后缀都是html作为后缀,文档一般叫做安卓页面,里面的描述性标记语法被称为代码。

2.5 MyEclipse开发工具

MyEclipse是功能最全面的Java IDE。Java语言发展至今,已经与好多语言相互配合,并且各种语法都不一样,实现的效果不一样,造成现在的程序开发人员需要学习很多种语言,出现问题就解决问题,这是各种新的工具产生的一些动力。刚开始的Java需要自己安装开发环境和运行环境,然后手动新建文本,一句话一句话的进行编写,这样的功底需要极其的扎实,效率也是相当的低下,所以各种文本编辑工具就开始像雨后春笋一样的冒了出来,经过互联网的传播,大家使用后经过口碑,自然优胜略汰,大浪淘沙,到现在为止MyEclipse开发工具已经牢牢地占据了Java开发的半壁江山。MyEclipse的立足就是为了企业人员用的,企业开发讲究效率,不可能让所有的开发人员来了从电脑安装软件先开始,配置环境又需要花费太久的时间,MyEclipse就解决了这样的烦恼,只要安装了软件,各种Java程序都可以进行开发,可以对各种语法自动的进行检测,有效的提示细节处错误,并且可以在写作上面让对一些整段代码的移动复制都很便利,应用部署也是一键到位。


第三章 系统分析

提前通过各种渠道,比如图书馆,电脑上的网站等渠道获取跟本系统有关联的资料,同时设计调查问卷,让系统的使用者参与调查,了解其对系统的需求,然后进行系统的分析,确定本系统的开发可行性,确定本系统的功能等内容。

3.1可行性分析

这部分内容主要从开发的角度和运行使用的角度等层面研究系统,确定是否投资系统,为进一步开展工作提供理论依据。

3.1.1技术可行性

本系统采用的技术和开发类语言都具备丰厚的理论基础,同时这些开发技术和开发语言在市面上都得到了广泛运用,很多功能实现的源码都以模块化的方式通过网络进行了公开,所以本系统可以参考这些代码实现功能。因此,系统开发技术可行。

3.1.2操作可行性

校园助手根据用户阅读习惯对系统内容进行排版布局,把系统页面中的关键位置用来设置导航条,可以方便用户第一时间找到需要的内容,同时,页面中也会设置一些提示,用于帮助用户操作系统,因此,系统操作可行。

3.1.3经济可行性

本系统需要在硬件设备上配置开发环境,就可以开展系统的开发工作。由于本系统并不是商业化程序,所以本人学习用的笔记本,或机房电脑都符合要求。对于开发环境的配置问题,可以通过网络直接下载安装,期间并不收取费用。因此,系统经济可行。

以上就是从技术,操作,经济的层面研究系统,最终确定系统可以开展。

3.2系统流程分析

要访问校园助手,需要符合要求的身份,证明访问者身份的信息就是在登录界面需要填写的信息,其中有用户名,有密码。在登录界面,系统后台也有专门编写的安全验证机制,只有信息匹配的访问者才有资格进入系统。具体流程见下图。如果访问者提供的信息在数据库中没有记录,就表明该访问者没有权限,也就无法享受系统提供的服务。

图3-1 操作流程图

在校园助手里面,任何填充的数据都要经过合法性验证,具体流程见下图。只有符合条件的数据才可以保存。

图3-2 添加信息流程图

经过时间的改变,系统里面的很多数据也需要更新,更新时,同样需要检查更新的数据是否合法,具体流程见下图。只有判断符合要求的数据最终才可以保存。

图3-3 修改信息流程图

为了避免操作者大意误删数据,任何需要删除的数据,都需要反复确认,具体流程见下图。删除的数据将不会在页面中显示。

图3-4 删除信息流程图

3.3系统性能分析

用户使用系统,一是为了阅读需要的信息;二是为了享受系统提供的服务。因此一个质量较好的系统就更容易让用户频繁使用。而能够反馈系统的质量的信息就是系统的性能。常见的能够表示系统性能的指标有安全性,系统可扩展性,数据完整性等。接下来就对这些指标进行介绍。

3.3.1数据完整性

只要是系统中的数据,其长期保存在数据库里面,就要求其具备可靠性。这样才能发挥出数据具备的参考价值。一般来说,为了保证数据信息是准确的,并且可靠的,在数据处理上,包括录入数据,编辑数据等,都要求数据信息是完整登记的。同时,系统中的数据其自身需要具备完整性外,也要求数据之间产生的关系也要具备完整性。另外,在数据库中填充信息时,同样的信息应该以同样的方式出现在不同的表中。对于数据进行完整性定义,也是方便后期对数据的使用和查看。

3.3.2系统可扩展性

站在当前用户需求的角度考虑问题具有一定的局限性,由此设计的系统也一样。为了保护开发系统的财产,同时也为了让系统长远立足市场,系统开发人员就需要充分预留系统的空间,让系统在未来的日子里可以扩充功能,并进行更新和升级。这就是系统具备可扩展性的表现。

3.3.3系统安全性

系统在投入使用中,用户与系统的交互会产生数据,比如插入数据,编辑数据等操作都会产生数据。而作为系统的后台支持的数据库,主要任务就是保存这些数据。为了不让数据信息被窃取或者泄露,也是为了对系统的安全性进行保证,所以市面上也出现了很多的加密技术,其中MD5单向加密技术在系统中运用得最多。其原因有三点:

第一点,面对任意两段明文,在经过MD5加密处理后,它们的密文不一样;

第二点,面对任意一段明文,进行MD5加密处理后,其密文不变;

第三点,破解MD5加密的数据非常困难;

目前,关于MD5加密技术的代码已经可以从网站上下载,可以直接将模块化的代码在系统中直接引用。一般来说,用户注册的数据还有管理员登录系统使用的数据都是很重要的资源,所以这部分数据常常会经过加密处理,这样也就消除了系统安全上的隐患。

第四章 系统设计

设计一个系统不单单是设计系统的页面,可以说系统设计其本质是一个结合了众多设计过程的比较复杂的系统工程。一般来说,在完成系统设计时,需要了解和掌握很多设计的知识,有界面布局技术的知识,页面采用的字体和颜色的运用,还有页面空白的规范使用等,如何将这些元素进行组合,让页面可以直观表达信息内容的同时,也能维持页面整体的美观。

4.1 系统设计思想

系统开发必然需要统一设计思想。根据这个设计思想指导系统的开发,可以加快系统开发进程。根据目前用户对校园助手的需求,确定下述原则即为本系统的设计思想。

(1)实用性:本系统依照用户需求设计功能,遵循用户使用方便的原则,把用户在实际工作中的各个操作细节也充分考虑进来,让使用者在没有系统操作说明书的情况下,也能很容易的完成系统的操作。

(2)先进性:为了让本系统具备高性能,设计时,需要把目前的各种成熟技术加以考虑,比如软件开发技术也要考虑进去,比如计算机技术也需要进行考虑。对于系统结构的选择,本系统将毫不犹豫的选择成熟先进的B/S结构,方便开发的同时,对于后期的维护也提供了便利。

(3)高安全性:设计本系统时,对于一些系统的关键数据要严加看管,比如管理员本人的账号和密码,一定要加密保存在数据库里面。除此以外,也需要充分使用安全措施对用户的共享资源进行保护。

(4)可维护性:设计时,要提前考虑本系统的可维护性,因为一个便于维护的系统在后期产生的维护成本将会大大降低。维护一般包括软硬件的维护还有对于网络的维护等。

(5)可扩展性:重新开发一个新系统相比在原有系统上升级,会花费大量的资金和精力,由此,一个好的系统必定具备良好的可扩展性。在用户需求变动的情况下,可以通过系统的更新和升级来持续满足用户需求,这样的系统就具备了可扩展性。

4.2功能结构设计

这部分内容使用结构图这样的工具,显示设计结果,设计的管理员功能见下图。管理员为用户忘记密码时可以重置用户密码,管理成绩信息、商品收藏、商品订单、公告信息、及论坛信息,

图4-1 管理员功能结构图

4.3数据库设计

现如今,关系数据库已经广泛占据了市场。其具有坚实的理论基础,并且它可以很好的支持SQL这样的查询语言。所以,大部分程序的后台数据库几乎都是关系数据库。它们被用于长期对程序数据进行保存,采用的方式就是正确使用SQL语句在数据库中完成数据的插入,修改,删除等操作。

(1)下图是教师信息实体和其具备的属性。

教师信息实体属性图

(2)下图是用户实体和其具备的属性。

用户实体属性图

(3)下图是公告信息实体和其具备的属性。

公告信息实体属性图

(4)下图是服务留言实体和其具备的属性。

服务留言实体属性图

(5)下图是失物招领实体和其具备的属性。

(6)下图是教师通讯录实体和其具备的属性。

教师通讯录实体属性图

(7)下图是课程信息实体和其具备的属性。

课程信息实体属性图

(8)下图是失物招领留言实体和其具备的属性。

失物招领留言实体属性图

(9)下图是寻物启事实体和其具备的属性。

寻物启事实体属性图

(10)下图是课程留言实体和其具备的属性。

论坛实体属性图

(12)下图是一卡通服务实体和其具备的属性。

一卡通服务实体属性图

(13)下图是成绩实体和其具备的属性。

成绩实体属性图

(14)下图是寻物启事留言实体和其具备的属性。

寻物启事留言实体属性图

4.3.1 数据库表结构

很多时候,在进行数据表的存储结构的设计时,都会遇到一些困扰,比如每张数据表如何命名,如何设计每张数据表里面的字段,如何为各个字段进行命名,以及如何设置字段的取值范围等信息。很多初学者,在进行表结构设计时,无论是对表进行命名,还是对字段进行命名,都是采用中文的方式,导致在编码阶段,在对数据进行操作时,总是报错,影响编码人员的开发速度,而且一旦数据表结构建立之后,后期进行修改也比较麻烦。因为设计数据表的结构,就意味着程序中需要长期保存的数据都是根据这样的结构进行保存的,在后面的使用中,无论是程序数据往数据表中写入,还是需要编辑或删除数据,都是按照这个规则进行。如此说来,设计数据库也是非常重要的任务,它关系到后面程序的开发,也关系到程序的运行使用。

通常在设计数据表结构时,会把前面设计的E-R图进行表结构的转化。把实体用来代表数据表,把其属性,也就是椭圆形代表的内容用来表示数据表中的字段,然后根据程序对于数据的存储要求,设计字段的类型和长度。比如用户的年龄可以用int(整数型),设置其长度为4或者6等。总之,数据表结构一旦建立,就可以往里面填充数据了。

表4.1成绩表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

yonghu_id

Integer

用户

3

jiaoshi_id

Integer

教师

4

chengji_uuid_number

String

成绩编号

5

chengji_name

String

成绩标题

6

chengji_types

Integer

成绩类型

7

chengji_num

BigDecimal

成绩

8

chengji_text

String

成绩备注

9

chengji_delete

Integer

逻辑删除

10

insert_time

Date

录入时间

11

create_time

Date

创建时间

表4.2字典表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

dic_code

String

字段

3

dic_name

String

字段名

4

code_index

Integer

编码

5

index_name

String

编码名字

6

super_id

Integer

父字段id

7

beizhu

String

备注

8

create_time

Date

创建时间

表4.3论坛表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

forum_name

String

帖子标题

3

yonghu_id

Integer

用户

4

jiaoshi_id

Integer

教师

5

users_id

Integer

管理员

6

forum_content

String

发布内容

7

super_ids

Integer

父id

8

forum_state_types

Integer

帖子状态

9

insert_time

Date

发帖时间

10

update_time

Date

修改时间

11

create_time

Date

创建时间

表4.4一卡通服务表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

fuwu_name

String

服务名称

3

fuwu_types

Integer

服务类型

4

fuwu_photo

String

服务封面

5

fuwu_content

String

服务简介

6

fuwu_delete

Integer

逻辑删除

7

insert_time

Date

录入时间

8

create_time

Date

创建时间

表4.5服务留言表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

fuwu_id

Integer

服务

3

yonghu_id

Integer

用户

4

fuwu_liuyan_text

String

留言内容

5

insert_time

Date

留言时间

6

reply_text

String

回复内容

7

update_time

Date

回复时间

8

create_time

Date

创建时间

表4.6教师信息表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

jiaoshi_name

String

教师名称

3

jiaoshi_types

Integer

教师类型

4

jiaoshi_photo

String

教师头像

5

jiaoshi_phone

String

联系方式

6

jiaoshi_shichang

String

工作时长

7

jiaoshi_content

String

教师简介

8

jiaoshi_delete

Integer

逻辑删除

9

insert_time

Date

录入时间

10

create_time

Date

创建时间

表4.7课程信息表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

kecheng_name

String

课程名称

3

kecheng_types

Integer

课程类型

4

kecheng_photo

String

课程封面

5

kecheng_file

String

课件

6

jiaoshi_id

Integer

教师

7

kecheng_content

String

课程简介

8

kecheng_delete

Integer

逻辑删除

9

insert_time

Date

录入时间

10

create_time

Date

创建时间

表4.8课程留言表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

kecheng_id

Integer

课程

3

yonghu_id

Integer

用户

4

kecheng_liuyan_text

String

留言内容

5

insert_time

Date

留言时间

6

reply_text

String

回复内容

7

update_time

Date

回复时间

8

create_time

Date

创建时间

表4.9公告信息表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

news_name

String

公告标题

3

news_types

Integer

公告类型

4

news_photo

String

公告图片

5

insert_time

Date

添加时间

6

news_content

String

公告详情

7

create_time

Date

创建时间

表4.10失物招领表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

shiwuzhaoling_uuid_number

String

失物编号

3

shiwuzhaoling_name

String

物品名称

4

shiwuzhaoling_types

Integer

物品类型

5

xunwuqishi_types

Integer

物品状态

6

yonghu_id

Integer

用户

7

shiwuzhaoling_photo

String

物品图片

8

shiwuzhaoling_time

Date

拾遗时间

9

shiwuzhaoling_dizhi

String

拾遗地址

10

shiwuzhaoling_content

String

详情

11

create_time

Date

创建时间

表4.11失物招领留言表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

shiwuzhaoling_id

Integer

失物招领

3

yonghu_id

Integer

用户

4

shiwuzhaoling_liuyan_text

String

留言内容

5

insert_time

Date

留言时间

6

reply_text

String

回复内容

7

update_time

Date

回复时间

8

create_time

Date

创建时间

表4.12教师通讯录表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

tongxunlu_name

String

联系人

3

tongxunlu_phone

String

联系方式

4

tongxunlu_types

Integer

类型

5

tongxunlu_text

String

备注

6

tongxunlu_delete

Integer

逻辑删除

7

insert_time

Date

录入时间

8

create_time

Date

创建时间

表4.13寻物启事表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

xunwuqishi_name

String

物品名称

3

shiwuzhaoling_types

Integer

物品类型

4

xunwuqishi_types

Integer

物品状态

5

xunwuqishi_photo

String

物品图片

6

xunwuqishi_time

Date

丢失时间

7

yonghu_id

Integer

用户

8

xunwuqishi_dizhi

String

丢失地址

9

xunwuqishi_content

String

详情

10

create_time

Date

创建时间

表4.14寻物启事留言表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

xunwuqishi_id

Integer

寻物启事

3

yonghu_id

Integer

用户

4

xunwuqishi_liuyan_text

String

留言内容

5

insert_time

Date

留言时间

6

reply_text

String

回复内容

7

update_time

Date

回复时间

8

create_time

Date

创建时间

表4.15用户表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

yonghu_uuid_number

String

一卡通

3

yonghu_name

String

用户姓名

4

yonghu_photo

String

头像

5

yonghu_id_number

String

身份证号

6

yonghu_phone

String

联系方式

7

yonghu_email

String

电子邮箱

8

banji_types

Integer

班级

9

nianji_types

Integer

年级

10

yonghu_delete

Integer

逻辑删除

11

create_time

Date

创建时间

表4.16管理员表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

username

String

学生名

3

password

String

密码

4

role

String

角色

5

addtime

Date

新增时间

第五章 系统实现

前面做的所有工作,都是为了给系统实现做准备。在系统实现期间,需要根据设计方案执行,通过运用编码技术实现一个可以处理事务的系统。

5.1用户信息管理

如图5.1显示的就是用户信息管理页面,此页面提供给管理员的功能有:用户信息的查询管理,可以删除用户信息、修改用户信息、新增用户信息,

还进行了对用户名称的模糊查询的条件

图5.1 用户信息管理页面

5.2 成绩信息管理

如图5.2显示的就是成绩信息管理页面,此页面提供给管理员的功能有:查看已发布的成绩信息数据,修改成绩信息,成绩信息作废,即可删除,还进行了对成绩信息名称的模糊查询 成绩信息信息的类型查询等等一些条件。

图5.2 成绩信息管理页面

5.3论坛信息管理

如图5.3显示的就是论坛信息管理页面,此页面提供给管理员的功能有:根据论坛信息进行条件查询,还可以对论坛信息进行新增、修改、查询操作等等

图5.3 论坛信息管理页面

5.1公告信息管理

如图5.4显示的就是公告信息管理页面,此页面提供给管理员的功能有:根据公告信息进行新增、修改、查询操作等等。

图5.4 公告信息管理页面

结  论

从设计到制作完成,本系统已经花了三四个月时间,这期间也得到了导师的帮助。不然我不可能在这么短时间完成。校园助手的开发,是一个运用理论知识来指导实际工作的任务。尽管已经充分把大学期间,从书本上学习的知识运用了进来,但还是发现自身知识的匮乏。不过比较有收获的事情就是,通过本系统的开发,我对计算机软件的开发有了重新的见解,也知道它实现的具体流程,并且自己通过实际操作,不仅重新回顾和补充了以往学习的书本知识,也知道理论和实际操作之间的相互关系,并能够在一定环境下,让理论指导实践。项目能够完成,也代表着我自身开发能力的进步。

项目制作期间,我觉得最关键的环节就是系统的分析和设计,分析系统具备的功能需要多查找同类型系统的资料,并把用户需求进行参考,才可以得出本系统的需求。设计时也是在需求分析的基础上开展,也是对功能的具体细分,同时还有设计保存数据的数据库,不但要创建合适的数据表,也需要认真对表结构进行构思,尤其是表的字段设计,还有表关系的设计也是很关键的设计环节。因为后期的编码都是根据设计文档开展下去的。编码虽然对编程技术的要求较高,但是一些良好的编程习惯也不能忽视,比如注释代码,这样便于后期的程序维护。还有学会如何对变量取名,因为程序里面涉及到的变量有很多,一个方便记忆,又容易与其它变量区分的变量名称是非常有益的,可以节省编码和测试过程的时间。

校园助手完全根据需求文档设计制作,可以在数据处理上发挥它的优势,而且使用者也能轻松完成对系统的操作。从界面设计的角度来看,校园助手始终遵循简单大方的原则,让使用者一进入系统界面,不会产生压抑等负面情绪,而是比较愉悦的心情去操作系统。从程序编码的角度来看,本系统设计的结构比较清晰,而且编码的方式也比较规范化,在关键处也都进行了代码注释。从数据存储的角度来看,本系统选用的MySQL数据库,本身比较轻盈,但能短时间完成大量数据的处理,其提供的功能不可小觑。

作为毕设进行制作的校园助手,其缺陷也是显而易见的,只能说需求文档要求的大致功能都得到实现,但是程序的有些操作逻辑还是比较复杂,并没有进行优化,在今后的时间里,将会继续学习新技术,利用重构的方式设计本系统,使之具备更强的可扩展性,让系统日趋完善。

致  谢

大学生活真的很美好,不仅可以学到很多本专业的知识,还能在本校交到兴趣相投的朋友,还有身边授课的老师也都很好,他们虽然扮演着老师的角色,但课堂下却像朋友一样交流相处。所以,在即将毕业的时刻,我又突然很庆幸来到了这里上大学。

在大学里,我觉得自己的知识增加了很多,遇到问题可以想办法去解决,锻炼了我的知识运用能力。看到自己的成长,内心非常激动,同时也想对本校的老师表示感谢。还有对我的大学校园表示感谢,以及对我的舍友和同学表示感谢。

感谢校园的授课老师和指导我毕业的老师,他们把自身所学知识都教给了我们,我们才会获取知识并取得进步,指导我毕业的老师,在我的项目制作,和后期的文档编写阶段,都尽最大努力帮助我,对我遇到的问题,他都耐心告诉我怎么去解决,让我自己在本项目制作中,得到锻炼。我也从指导老师那里学到了很多知识,在此,感谢他的帮助和引导,我才可以在短短几个月时间设计实现我的项目。

陪着我一起努力的还有我的舍友和同学,我们多次面对面交流如何寻找资料,以及一些编程的小技巧等知识,正因为我们互相帮助,才可以节省项目制作的时间,也让我有足够的精力去完善自己制作的项目。

最后,感谢学校提供的读书环境,以及给我学习锻炼的机会。


参考文献

[1]贾树刚.校园助手的设计与实现[J].辽宁师专学报(自然科学版),2019,21(04):44-46+100.

[2]胡子豪.校园助手分析与设计[J].信息与电脑(理论版),2018(21):82-83.

[3]周伟.校园助手的设计与实现[J].科技视界,2018(25):91-92.

[4]薛茹.基于springBoot框架的安卓系统研究与应用[J].计算机产品与流通,2018(07):30.

[5]邱丹萍.安卓开发中springBoot框架的分析[J].电脑知识与技术,2020,16(17):81-82.

[6]邹红霆.基于springBoot框架的安卓系统研究与应用[J].湖南理工学院学报(自然科学版),2017,30(01):39-43.

[7]彭影.优化Java数据库访问效率的策略研究[J].计算机产品与流通,2020(02):21.

[8]李亚娟,张宝丽,秦爽,陈岩.基于微信小程序技术的动态网页开发技术研究[J].电脑知识与技术,2019,15(23):262-263.

[9]杨占胜.微信小程序中文乱码问题的探讨与解决方法[J].福建电脑,2020,36(04):36-41.

[10]刘婷.微信小程序技术发展前景研究[J].信息与电脑(理论版),2019(08):70-71.

[11]蒋睿.MySQL数据库安全研究[J].电脑知识与技术,2020,16(09):3-4+21.

[12]段震.浅谈MySQL数据库有关数据备份的几种方法[J].山西电子技术,2020(02):17-18.

[13]李瑞祥,刘伟.MYSQL数据查询技巧[J].网络安全和信息化,2019(05):70-71.

[14]刘建臣.处理MySQL访问异常故障[J].网络安全和信息化,2019(12):160-161.

[15]韩禄.计算机软件开发中影响软件质量的因素[J].信息与电脑(理论版),2020,32(18):114-116.

[16]浦天宏.计算机软件开发设计的难点和对策[J].信息与电脑(理论版),2020,32(18):117-119.

[17]卫红春.信息系统分析与设计[M].北京:清华大学出版社,2016.

[18]黎连业,王华,李淑春.软件测试与测试技术[M].清华大学出版社,2016.

[19]Konstantins Gusarovs. An Analysis on Java Programming Language Decompiler Capabilities[J]. Applied Computer Systems,2018,23(2).

[20]Tan Yiyu. A Hardware-oriented Object Model for Java in an Embedded Processor[J]. Microprocessors and Microsystems,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/1700772.html

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

相关文章

渗透测试的测试流程与注意事项

软件测试流程 渗透测试是一种重要的软件测试技术&#xff0c;通过对系统进行模拟攻击和漏洞评估&#xff0c;帮助组织发现和修复潜在的安全风险&#xff0c;提高系统的安全性和稳定性。在进行渗透测试时&#xff0c;需要注意合法授权、技术能力、安全意识和报告质量等方面的问…

基于springboot实现华府便利店信息管理系统项目【项目源码+论文说明】

基于springboot实现华府便利店信息管理系统演示 摘要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本华府便利店信息管理系统就是在这样的大环境下诞生&#xff…

VMware安装保姆教程、Docker安装/依赖安装缓慢等问题

常见问题前置: 1、docker依赖安装缓慢,没有走设置的资源库:解决安装docker-ce过慢 Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds‘) 在添加阿里云镜像后安装依旧慢: yum-config-manager --add-repo http://mirrors.aliyun.com/docker…

移动云:连接未来的智慧之旅

随着数字化转型的加速&#xff0c;云服务在各行各业中的应用越来越广泛。移动云不仅提供了灵活的计算和存储资源&#xff0c;还通过创新的技术手段&#xff0c;为企业和开发者解决了许多实际问题。在这个变革的大背景下&#xff0c;移动云服务作为中国移动倾力打造的云业务品牌…

计算机网络6——应用层5 DHCP/SNMP

文章目录 一、动态主机配置协议 DHCP二、简单网络管理协议 SNMP1、网络管理的基本概念2、管理信息结构SMI1&#xff09;被管对象的命名2&#xff09;被管对象的数据类型3&#xff09;编码方法 3、管理信息库 MIB4、SNMP的协议数据单元和报文 一、动态主机配置协议 DHCP 为了把…

产品经理-交互说明撰写(八)

1. 交互说明 交互说明可以看做是交互设计师或者产品经理输出的最核心的”产品“交互说明面向的”用户“是下游的同事 ⇒ UI设计师、开发工程师、测试工程师 2. 基本交互形式 2.1 页面交互 2.2 元素控件交互 3. 交互说明主要包括以下3个维度 3.1 页面流程&#xff08;页面之…

unity制作app(10)--统一字体

1.载入字体&#xff0c;微软雅黑&#xff0c;需要3分钟左右 加载进来3个 2.font文件夹下创建一个txt&#xff0c;内部的内容如下&#xff1a; &#xfeff;啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏…

linux系统更改SSH端口号配置

1.编写sshd.config cd /etc/ssh sudo cp sshd_config sshd_config.bak vim sshd_config2.重启服务 systemctl restart sshd 结束&#xff01;&#xff01;

第22讲:RBD块存储COW克隆解除父子镜像的依赖关系

RBD块存储COW克隆解除父子镜像的依赖关系 1.COW镜像克隆存在的依赖关系 在前面使用copy-on-write机制基于快照做出来的链接克隆&#xff0c;与快照依赖性很强&#xff0c;如果快照损坏或者丢失&#xff0c;那么克隆的镜像将无法使用&#xff0c;使用这个镜像创建的虚拟机也会…

【详细介绍WebKit的结构】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

记住这三个神仙代码,时刻为你的电脑保驾护航

在这个数字化飞速发展的时代&#xff0c;我们的电脑不仅存储着重要的个人信息&#xff0c;还承载着繁重的工作任务。如何确保电脑的安全与稳定运行&#xff0c;成为了一个至关重要的问题。今天小编给大家分享这三个神仙代码&#xff0c;记好了这三个代码&#xff0c;时刻为你的…

如何修改 Miyoo Mini + 中的键位 Onion OS

如何修改 Miyoo Mini 中的键位 Onion OS MiyooMini 键位跟 XBox 键位不同 MiyooMini 买来之后就发现键位跟 XBox 手柄的键位不同。 玩 FC 游戏的时候也非常别扭&#xff0c;跟我以前玩 FC 游戏时的键位非常不同&#xff0c;正好AB XY 调换过来了。 实物如下&#xff1a; …

阿里云产品DTU评测报告(二)

阿里云产品DTU评测报告&#xff08;二&#xff09; 问题回顾问题处理继续执行 问题回顾 基于上一次DTU评测&#xff0c;在评测过程中遇到了windows系统情况下执行amp命令失败的情况&#xff0c;失败情况如图 导致后续命令无法执行&#xff0c;一时之间不知如何处理&#xff0…

人力资源管理信息化系统如何支持企业开展管理诊断?

华恒智信人力资源顾问有限公司致力于帮助企业开展人力资源管理方面的各项提升改进工作&#xff0c;在长期的咨询工作中&#xff0c;最常听到企业提到的问题莫过于管理诊断方面的问题&#xff0c;事实上&#xff0c;很多企业在日常工作中&#xff0c;都意识到企业内部存在管理方…

AC/DC电源模块:提供高质量的电力转换解决方案

BOSHIDA AC/DC电源模块&#xff1a;提供高质量的电力转换解决方案 AC/DC电源模块是一种电力转换器件&#xff0c;可以将交流电转换为直流电。它通常用于各种电子设备和系统中&#xff0c;提供高质量的电力转换解决方案。 AC/DC电源模块具有许多优点。首先&#xff0c;它能够提…

5.4 Go 匿名函数与闭包

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

2024/5/27 英语每日一段

Rejecting diet culture became something of a feminist cause. “A growing number of women are joining in an anti-diet movement,” The New York Times reported in 1992. “They are forming support groups and ceasing to diet with a resolve similar to that of se…

一篇文章带你快速搞定Kafka术语no.2

在Kafka的世界中有很多概念和术语是需要你提前理解并熟练掌握的&#xff0c;这对于后面你深入学习Kafka各种功能和特性将大有裨益。下面我来盘点一下Kafka的各种术语。 在专栏的第一期我说过Kafka属于分布式的消息引擎系统&#xff0c;它的主要功能是提供一套完备的消息发布与…

Spring Boot 系统学习第三天:Spring依赖注入原理分析

1.概述 Spring中关于依赖注入的代码实现非常丰富&#xff0c;涉及大量类和组件之间的协作与交互。从原理上讲&#xff0c;任何一个框架都存在一条核心执行流程&#xff0c;只要抓住这条主流程&#xff0c;就能把握框架的整体代码结构&#xff0c;Spring也不例外。无论采用何种依…

利用阅读APP3.0目录展示要查看的内容01

喜欢读电子书的小伙伴往往会遇到一个问题&#xff0c;就是想要看书中某些内容&#xff0c;但是不知道具体章节&#xff0c;所以就用查找功能来查&#xff0c;但是呢查找功能查出来展示的结果并不直观。 比如想要阅读:青竹蜂云剑&#xff0c;大衍决&#xff0c;南宫婉&#xff0…