计算机毕业论文基于Android 的签到系统设计与实现
计算机专业本科毕业设计(论文)开题报告
毕业设计(论文)题目:基于Android的签到系统设计与实现
文章目录
- 毕业设计论文开题报告
- 一、课题的目的及意义(含国内外的研究现状分析):
- 二、课题任务、重点研究内容、实现途径、条件:
- 摘 要
- 1. 绪论
- 1.1. 研究背景
- 1.2. 研究现状
- 1.3. 研究意义
- 1.4. 研究目的
- 2. 系统开发环境
- 2.1. Android Studio简介
- 2.2. Visual Studio简介
- 2.3. MySQL数据库简介
- 2.4. Dart开发语言
- 2.5. Flutter 框架简介
- 2.6. C#开发语言
- 2.7. ASP.NET Core框架
- 3. 系统设计
- 3.1. 系统设计架构
- 3.2. 技术可行性分析
- 3.2.1开发前准备
- 3.2.2部署与测试
- 3.3. 非功能需求分析
- 3.3.1界面设计需求:
- 3.3.2可维护性需求:
- 3.3.4Android开发机对操作系统的要求:
- 3.4. 功能设计分析
- 3.5. 数据库表设计
- 4. 系统实现
- 4.1. 后端开发实现
- 4.1.1项目介绍
- 4.1.2 webapi项目结构
- 4.2. 前端框架实现
- 4.2.1项目介绍
- 4.2.2 flutter项目结构
- 4.3. 调用android SDK
- 4.4. android应用开发
- 4.4.1扫描二维码
- 4.4.2生成二维码
- 4.4.3发起签到要求后,获得用户签到时的位置
- 4.4.4调用指纹防作弊的api
- 4.4.5签到用户手机号码录入
- 4.5. 注册登录实现
- 4.6. 会议创建实现
- 4.7. 会议签到实现
- 4.8. 导出签到记录
- 4.9. 系统测试
- 5. 本文总结
- 6. 参考文献
毕业设计论文开题报告
毕业设计论文开题报告
毕业设计(论文)内容要求:
主要内容:
在工作和学习中,召开会议或上课均需要进行签到。传统的纸面签到效率十分低下,耗时且不便于统计。
现代组织中,用户一般具有手机,可以在手机上安装APP,利用Android提供的API,调用本机的识别信息,地理位置,指纹和时间,可以方便地进行签到,也可以十分方便地进行防范代签到。
试利用自己所学的知识,使用自己熟悉的开发语言,开发一种基于Android的签到系统,能有效防止代签到问题,多次签到后导出统计结果。要求实现的系统能正常运行。
要求:
- 设计的程序达到任务书要求,具有完整的分析设计文档,能正常运行。
- 根据系统调研、系统分析(含可行性分析)、系统设计(含数据库设计)、系统实现和测试的过程,完成论文。
- 论文结构合理、层次清楚、中心突出、语句通顺。
- 尽可能使用图、表来说明设计思想。
- 尽可能使用计算机辅助软件工程工具,规范地表达数据关系及处理逻辑。
- 论文中必须提供:①软件开发过程的描述;②重要的或者核心的源代码。
- 论文字数6000字以上。
- 严守学术道德,禁止抄袭。
`
一、课题的目的及意义(含国内外的研究现状分析):
传统的纸面签到费时费力,占用了大量珍贵时间,效率大打折扣,同时签到方式准确度不高,会出现代签,漏签情况。这一环节需要耗费一定的纸张、人工和时间成本,迫切需要一种更为高效安全的电子签名方式来解决这一问题。其次,纸质档案极易丢失,出现问题时难以整理出可用信息,同时新设备及相关信息缺乏更新。
随着时代的发展,智能手机越来越普及,越来越多的安卓手机 APP出现在人们的生活中。 因此,将纸质签到的数据经识别转换成文字信息,利用电子档案等方式进行信息存储是解决上述难点问题的最佳途径。同时,从数据安全的角度考虑,建立相应的存档数据库表(或称为历史数据库)已成为普遍要求。电子签到在日常办公中的应用,高效、便捷、移动办公的目标也逐渐成为现实。
目前的签到软件存在一些问题,指纹打卡签到软件,只需要把录入指纹的手指放在指纹打卡机上,打卡机读取用户指纹信息与数据库关联,调取用户信息,就可以完成自动签到。这种软硬件结合的打卡装置,存在一定缺陷,硬件容易出现故障导致当天的签到不能正常进行,购买指纹打卡机维护成本较高,需要排队轮流打卡签到签离,降低工作效率。这种单机、手工操作的工作方式,已不能适应现代工作的快速、网络化的要求。
同时,随着信息技术在我国的快速发展,作为支撑技术的 RFID技术被认为是最有发展前景的信息技术之一。同样是一款软硬件结合的签到系统,需要配置一个RFID 电子标签和RFID阅读器,当用户走进RFID阅读器的射频范围内的时候,就可以实现用户信息的读取,并通过RFID阅读器将信息传输至服务器中进行下一步的处理。虽然RFID技术的到来,解决了指纹打卡签到效率较低的问题,但是它的构建成本更大,也存在硬件损坏的风险。RFID技术具有诸多优点,但在实际应用中仍然存在着成本高、标准不统一等实施障碍,但它具有其他技术无法比拟的优越性,是智能化发展的必然趋势。
随着智能化技术的不断发展,手机的系统性能越来越先进,功能越来越多,各种安卓应用也应运而生。各种常用功能被整合到手机中,使得人们对手机的依赖性越来越强。目前市面上有不少基于移动终端开发的签到软件,例如钉钉、叮咚签到等,但是这些软件基本都是针对办公通讯的,增加了用户接收软件的难度,如果操作过于繁琐,界面设计不合理,必然会给软件的推广和使用带来极大的障碍。钉钉app目前不支持指纹打卡的,但是可以绑定匹配的考勤机使用指纹考勤机打卡。
对于中小型企业和一般学校来说,更偏向于使用搭建成本较低,操作简单,用户友好的签到系统。本次课题的设计在充分研究上述问题的基础上,主要是针对在工作和学习中,召开会议需要完成签到工作,能够让用户能够直接通过安卓手机访问签到系统。
二、课题任务、重点研究内容、实现途径、条件:
(1)课题任务:
解决在工作和学习中签到需求,召开会议均需要进行签到。传统的纸面签到效率十分低下,耗时且不便于统计。
现代组织中,用户一般具有手机,可以在手机上安装APP,利用Android提供的API,调用本机的识别信息,地理位置,指纹和时间,可以方便地进行签到,也可以十分方便地进行防范代签到,签到后显示并导出统计结果。
(2)重点研究内容:
- 会议签到流程
- 用户注册完善个人基础信息(手机号,姓名,密码)。
- 注册成功登录签到系统主页面(会议签到)。
- 进入会议签到页面,有两种模式:加入会议,创建会议。
- 创建会议,设置会议名称,会议说明,会议开始时间、结束时间以及入会密码等相关信息之后,点击“完成”按钮。可以看到新的会议已经创建,同时生成入会码,等待时间到达即可进入会议。
- 加入会议前,会议发起人把入会码发送到参会人员群,需要参会人手动输入入会码或扫描入会码。
- 加入会议时,早入会只能手动签到,定时入会和晚入会可以通过自动或手动签到两种方式。 中途退出会议,需要用户手动选择签退。如果到了截止会议结束时间,会议号自动签退。
- 会议结束后,自动统计签到并展示本场会议到场人数,到场人员明细。
- 展示并导出本次到场人员明细,(姓名,手机号,签到类型(自动/手动),地理位置,签到时间,签退类型(自动/手动),签退时间。
- 实现签到功能
为了防止代签到,参会人员无论采取自动或手动签到,加入会议签到时,系统自动定位,再验证指纹,接着识别人脸才可以进行签到。
系统自动签退后无需任何验证。如果手动签退时,系统默认自动定位,再验证指纹和人脸,为了防止代签退。
摘 要
本文阐述签到系统的发展现状,分析开发系统目的。设计出一个简单快速发布签到的Android平台系统。系统支持利用Android提供的API,调用本机的识别信息,地理位置,指纹和时间,可以方便地进行签到,也可以十分方便地进行防范代签到,签到后显示并导出统计结果。
本系统采用前后端分离技术,采用C#,Dart开发语言,搭建 ASP.NET Core 和Flutter框架,后端采取MySQL数据库,并且通过使用Web API技术进行访问。本文整体对签到系统进行分析,明确系统设计需求的可行性。采用模块化设计,针对数据库设计与表结构,满足数据的完整性,安全性。系统实现利用Flutter框架原生的UI组件搭建前端布局,实现注册用户个人信息,验证用户登录,创建会议生成会议号或二维码,利用手势检测器实现指纹识别通过身份验证,完成会议签到功能。最后,对于系统做出全面客观的评价,并进一步提出改进建议。
关键词:Android Dart C# Asp.Net Core Flutter MySQL
1. 绪论
1.1. 研究背景
传统纸面签到费时费力,占用大量珍贵时间,效率大打折扣,同时签到方式准确度不高,会出现代签,漏签情况。存在耗费纸张,人工和时间成本,纸质档案极易丢失这一类缺点,迫切需要一种更为高效安全的电子签到方式来解决。
将纸质签到的数据经识别转换成文字信息,利用电子档案等方式进行信息存储是解决上述难点问题的最佳途径。从数据安全的角度考虑,建立相应的数据库存档已成为普遍要求。电子签到在日常办公中的应用,高效、便捷、移动办公的目标也逐渐成为现实。
1.2. 研究现状
随着智能化技术的不断发展,手机的系统性能越来越先进,功能越来越多,各种安卓应用也应运而生。各种常用功能被整合到手机中,使得人们对手机的依赖性越来越强。传统纸面签到方式,早已不能满足网络化、便捷性的需求。
会议电子签到系统不受时间和地点的限制,对人们在工作和学习中带来极大的方便。目前市面上会议电子签到种类有条形码,二维码,IC卡,RFID,这类签到系统缺乏系统的管理方式记录会议签到信息,为了提高会议电子签到效率,所以开发了一款基于Android平台的会议签到系统。会议签到系统将通过Android手机进行整体智能化操作,可以随时创建会议,邀请加入会议,完成会议签到签退。
目前流行的手机操作系统很多,为了适应不同用户的需要,需要开发不同版本的客户端,这大大增加了软件的开发和维护成本[10]。因此,如何提高开发效率实现一套代码多端运行,降低开发成本是 Android应用开发的首要问题。
相关文章:
计算机毕业论文基于Android 的签到系统设计与实现
计算机专业本科毕业设计(论文)开题报告 毕业设计(论文)题目:基于Android的签到系统设计与实现 文章目录 毕业设计论文开题报告一、课题的目的及意义(含国内外的研究现状分析):二、课题任务、重点研究内容、实现途径、条件:摘 要1. 绪论1.1. 研究背景1.2. 研究现状1.3.…...
量化学习-02
1、宏观经济学基础概念 宏观经济简单背景 宏观经济,就是在宏观范畴以全局视角观察经济现象,分析其中的经济总量。该宏观范畴所包含的范围可以指一个国家或地区,是由众多微观个体组成的一个经济体,而这里面的微观个体可以指一个家…...
SAP_MM模块-设置业务合作伙伴类型字段必输(多种方案)
一、业务背景 公司需要把供应商增加一个细分的维度,并且要求该字段设置为必输,防止用户新增供应商时忘记维护。这里给用户找了一个分类的字段:业务合作伙伴类型,本文主要讲解如何设置该字段设置为必填; 注意ÿ…...
STM32平台上实现串口接收不定长数据-实际项目中应用
文章目录 一、中断串口监听方式初始化中断处理串口监听 二、空闲中断方式三、空闲中断DMA方式四、总结 本文将详细介绍在STM32平台上实现串口接收不定长数据的几种方法 一、中断串口监听方式 这种方式也是我早期使用的方式,直接使用寄存器来操作,这种方…...
AWD入门
一、简介 AWD(Attack With Defense,攻防兼备)模式。你需要在一场比赛里要扮演攻击方和防守方,攻者得分,失守者会被扣分。也就是说攻击别人的靶机可以获取 Flag 分数时,别人会被扣分,同时你也要保护自己的主机不被别人…...
T3矩阵看功率
每个像素的T3矩阵,功率等于特征值的和。 不同的像素的T3矩阵相加,可不能用特征分解的相加,因为两个T矩阵的特征向量不同...
VLMEvalKit多模态大模型评测工具源码解析
vlmeval/api和vlmeval/vlm文件夹下分别是api接口和本地运行的大模型的代码 基类都是base vlmeval/dataset是数据集处理代码 vlmeval/inference.py是推理代码 run.py的整个流程 1 vlmeval/api/base.py 主要为需要与外部API交互的系统提供了一个通用的框架 类属性 allowed_type…...
将 Docker 安装到指定目录
将 Docker 安装到指定目录 将 Docker 安装到指定目录 Docker 默认安装在 C:\Program Files\Docker\Docker,这可能会占用大量 C 盘空间。你可以按以下步骤将 Docker 安装到其他盘(例如 E 盘): 创建安装目录:在 E 盘创…...
哪些企业需要部署SD-WAN?
首先,让我们先明确SD-WAN的定义。SD-WAN,中文全称为软件定义广域网(Software-Defined Wide Area Network),通过集中化管理与流量控制,帮助企业优化网络性能,提升用户体验。与传统广域网…...
通信基站类型、频段与网络标准
【1】通信基站类型 移动通信基站根据覆盖面积和功率大小主要可以分为以下几种类型: 宏基站(宏站):这是最常见的基站类型,具有较大的发射功率和较广的覆盖范围,通常覆盖半径从1到25公里不等。宏基站主要用于…...
Java IO教程之Java 文件一口气讲完!( *︾▽︾)
Java 文件 Java IO教程 - Java文件 File类的对象是文件或目录的路径名的抽象表示。 创建文件 我们可以从中创建一个 File 对象 路径名父路径名和子路径名URI(统一资源标识符) 我们可以使用File类的以下构造函数之一创建一个文件: File(…...
如何在 Ubuntu 24 上安装 Vmware Tools
原文 Vmware Tools作用 增强图形显示性能 分辨率适配 可使虚拟机的分辨率能够自动适应窗口大小的变化。当您调整 VMware 软件窗口的大小时,Ubuntu 24 虚拟机的屏幕分辨率会随之自动调整,为用户提供更好的视觉体验,方便在不同的使用场景下进…...
内网穿透:如何借助Cloudflare连接没有公网的电脑的远程桌面(RDP)
内网穿透:如何借助Cloudflare连接没有公网的电脑的远程桌面(RDP)-含详细原理配置说明介绍 前言 远程桌面协议(RDP, Remote Desktop Protocol)可用于远程桌面连接,Windows系统(家庭版除外)也是支持这种协议的,无需安装…...
明星作家都在使用的电子书制作工具,现在向大家介绍
在数字化时代,电子书已经成为了广大读者和作家的新宠。越来越多的作家开始尝试将手中的文字作品转化为电子书,以便在更广泛的平台上推广和传播。那么,如何高效、便捷地制作电子书呢?今天,我们就来为大家揭秘一款明星…...
简单认识Maven 3-认识pop.Xml配置文件中的代码
pom.xml是 Maven 项目的核心配置文件,它包含了项目的各种配置信息,以下是对其主要内容含义的认识: 一、项目基本信息 <groupId>: 定义项目的组织或团体的唯一标识符,通常采用反向域名的格式。例如,“…...
LangChain4j系列—OpenAI开发实例
一、引入Maven依赖 1、纯Java <dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-open-ai</artifactId><version>0.35.0</version> </dependency> 2、Spring boot <dependency><groupId&g…...
Java 中简化操作集合的方法
在日常 Java 开发中,我们经常需要操作集合,如 List、Set 和 Map。虽然 Java 提供了丰富的集合框架供开发者使用,但在实际编写业务逻辑时,如何简化集合操作、提高代码可读性和效率,依然是一个经常遇到的问题。特别是随着…...
ArcGIS Pro SDK (十七)宗地结构
ArcGIS Pro SDK (十七)宗地结构 环境:Visual Studio 2022 + .NET6 + ArcGIS Pro SDK 3.0 宗地结构 1 获取活动记录 string errorMessage = await QueuedTask.Run(() => {...
D. Co-growing Sequence
传送门:Problem - 1547D - Codeforces 题意:给定一个 数组 a , 构造一个数组 b ,使得 ( a[i] ^ b[i] ) & ( a[i 1] ^ b[ i 1] ) a[i] ^ b[i] 思路:(二进制题目) 设 a[i] ^ b[i] t 我们要让…...
docker配置加速器
阿里云 控制台》容器镜像服务》镜像工具》镜像加速器 复制地址:https://ywtoq7bz.mirror.aliyuncs.com 到:etc/docker下:vi daemon.json 格式: { "registry-mirrors": ["加速器地址"] } 注࿱…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
