基于安卓的公司员工考勤系统的设计与实现

news2024/11/15 9:47:42

目 录
1 绪论 1
1.1 选题背景 1
1.2 研究现状 2
1.3 研究意义 3
1.4 研究内容 3
2 相关的理论和技术 4
2.1 JAVA技术与安卓介绍 4
2.2 Android的开发 5
2.3 Android常用的列表组件 5
2.4 Android所需知识的理解 8
2.4.1 自定义控件 8
2.4.2 进一步说明 10
3 系统分析 12
3.1系统可行性分析 12
3.1.1 技术的可行性 12
3.1.2 操作可行性 12
3.1.3 经济可行性 12
3.2 需求分析及其重要性 13
3.3 总体需求 15
3.4 功能需求 15
3.5 开发运行环境需求 16
3.6 性能需求 17
3.7 数据流图 18
4 系统总体设计 20
4.1 概述 20
4.2 设计原则 20
4.3 系统功能结构图 21
4.4 ER图设计 22
4.5 数据库表设计 22
5 系统的实现 24
5.1 软件界面设计与实现 24
5.1.1 操作主界面 25
5.1.2 员工信息管理界面 25
5.1.3 考勤管理界面 26
5.1.4 考勤记录界面 26
5.1.5 员工信息修改界面 27
5.2 员工信息管理 27
5.3 考勤管理 29
5.4 考勤统计 32
6 系统的测试 37
6.1 测试方案设计 37
6.1.1 测试策略 37
6.1.2 测试方法 38
6.1.3 测试安排 38
6.2 测试用例构建 38
6.2.1 测试用例编写约定 38
6.2.2 测试用例设计 39
总 结 40
参考文献 42
致 谢 43
外文文献 44
中文翻译 50
3.3 总体需求
公司员工的考勤管理系统,简单来说就是实现一个考勤功能,能够查看考勤的信息等等就可以,主要有以下几个基本要求:
1.首先有一个增,删,改,查员工信息的功能模块。
2.然后,对现有员工的出勤状态进行选择和保存的功能模块。
3.最后就是对所有的考勤记录进行增,删,改,查的功能模块。
3.4 功能需求
需求分析,字面上就是对用户的需求进行分析。意思很明确,就是说需求文档要能够准确的反映出客户心里到底想要什么,开发者是否能够清楚的理解,这将直接影响项目开发的全过程,同时也对系统的使用产生影响。需求分析的关键在于对广大用户的访问和问卷的采集和分析,尤其是对于用户个人信息数据的具体管理方式,以及对信息数据的保密性工作的保障的详细要求。用户的专业知识相对缺乏的计算机相关知识,并能判断计算机是否可以为自己做,什么不该做,所以不是很准确的表达自己的需求,但他们的最终用户,他们的需求是最终需求,但技术人员缺乏用户,也不是很容易理解到用户的实际需要,有时也可能误解到用户的需求;新的硬件和软件技术的出现将使系统进行更改的业务需求。所以,有必要使用某些方法以确保该用户可以与用户通信以确定用户的最终需求。通过与用户的通信时,当前系统的主要问题的理解。
需求分析是分析和抽取该使用者的信息,来描述的功能和性能。它是软件开发过程的初始阶段,其基本任务是了解用户的需求,决定了必须完成哪些工作,这样才能对索要开发的系统有了明确的需求。
基于安卓的公司员工考勤管理系统,最基本的要求是能够在Android手机上安装运行,其次就是对一些信息数据的综合处理。
这个系统主要适用于公司中对员工考勤的管理员或主管等,用来查看所有员工的信息,每个员工近期的工作状态,查询每一个公司员工的上班的情况,反映出每个员工的职业基本素养。有了这样一款使用方便、随身携带的软件,在很大程度上,能够提高公司内部各个部门之间的考勤效果。具体实现的功能如下:
(1)手机软件的主界面:拥有一个图形化的菜单功能。
(2)对公司员工信息的管理:在这个功能模块中,可以查看到员工的工号,员工的名字,员工的性别等属性,同时可以对公司每一个员工的信息进行添加、修改、删除和查询。
(3) 对公司员工的考勤功能:首先要有一个确定的考勤时间、然后是可以选择指定的员工信息、选择员工的考勤状态等。
(4) 考勤记录信息的管理:模糊查询,可以通过选择起始时间,截止时间,然后查看在这两个时间之间的考勤信息。也可以精确查询,就是用员工的姓名来查。
总体分布如图2-1所示:
在这里插入图片描述
图3-1 总体功能需求图
良好的用户体验对软件来说很重要,图形化用户界面是使用者和软件之间进行交互的重要媒介。最直接接触的东西,包括是否能够让客户很轻松。
3.5 开发运行环境需求
1.硬件开发环境需求:PC机
CPU :2.0 GHz以上
内存 :1G以上
硬盘 :80G以上
2.软件环境需求:
操作系统:Windows7及其以上版本
开发环境:jdk1.8.0_45
运行环境:jre1.8.0_45
开发工具:eclipse
运行工具:android 4.4及其以上版本
开发语言:java
考勤统计模块中的主要功能,就是对已经存入数据库中的考勤信息进行查询并显示出来。他有三种查询方式,模糊查询,可以通过选择起始时间,截止时间,然后查看在这两个时间之间的考勤信息。也可以精确查询,就是用员工的姓名来查。还有就是根据考勤状态来查询,最后就会得出相关的考勤情况。

public class QueryActivity extends Activity {
	
	private Button btnAlter, btnReturn, btnQuery,btnQuery2;
	private int position, intrid;
	private TextView name,date,statue,rid,sdate,edate,edtname;
	private Calendar c;    
	
	private String strname,strdate,strstatue;
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);	
		setContentView(R.layout.record);
		rid = (TextView)findViewById(R.id.RID);
		name = (TextView)findViewById(R.id.name);
		statue = (TextView)findViewById(R.id.statue);
		listview = (ListView) findViewById(R.id.lvstudent);
		sdate = (TextView)findViewById(R.id.edtSdate);
		edate = (TextView)findViewById(R.id.edtEdate);
		edtname = (TextView)findViewById(R.id.edtName);
		String[] from = { "_id", "name", "date", "statue" };
		int[] to = { R.id.RID, R.id.name, R.id.date, R.id.statue };
		listview.setAdapter(adapter);	
		position = 0;
		listview.setOnItemClickListener(new OnItemClickListener() {
			
			public void onItemClick(AdapterView<?> aeaf, View afwef, int awefqw,
					long qwef) {
				position = afwef;
				Cursor  item = (Cursor ) listview.getItemAtPosition(position);
				intrid = (int) awefqw;
				strname = item.getString(item.getColumnIndex("name"));
				strdate = item.getString(item.getColumnIndex("date"));
				strstatue = item.getString(item.getColumnIndex("statue"));
			}
		});
		sdate.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View qwefq) {
				showDialog(0);				
			}
		});
		edate.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View qewqw) {
				showDialog(1);				
			}
		});
			public void onClick(View v) {
				String d1 = sdate.getText().toString();
				String d2 = edate.getText().toString();
				Cursor c = helpter.query4(d1,d2);
				String[] from = { "_id", "name", "date", "statue" };
				int[] to = { R.id.RID, R.id.name, R.id.date, R.id.statue };
				
				listview.setAdapter(adapter);					
			}
		});
				btnQuery2.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View v) {
				String sname = edtname.getText().toString();
				Cursor c = helpter.query3(sname);
				String[] from = { "_id", "name", "date", "statue" };
				int[] to = { R.id.RID, R.id.name, R.id.date, R.id.statue };
				
				listview.setAdapter(adapter);	
			}
		});
			public void onClick(View v) {
								Intent intent = new Intent();
				intent.setClass(QueryActivity.this, RollCallActivity.class);
				QueryActivity.this.startActivity(intent);		
				finish();
			}
		});
		btnAlter = (Button)findViewById(R.id.btnAlter);
		btnAlter.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View v) {
				
				Intent intent = new Intent();
				intent.putExtra("rid", intrid);
				intent.putExtra("name", strname);
				intent.putExtra("date", strdate);
				intent.putExtra("statue", strstatue);
				intent.setClass(QueryActivity.this,
						AlterRecordActivity.class);
				QueryActivity.this.startActivity(intent);
				finish();
			}
		});
		}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

生命在于折腾——Fishing软件的编写(易语言)

本篇文章仅用于学习交流&#xff0c;不得用于其他违规用途。 一、钓鱼软件是什么&#xff1f; 钓鱼软件是通常以精心设计的虚假网页引诱用户上当,达到盗取银行账号、信用卡号码等目的,属于违法行为。 钓鱼通常指伪装成银行及电子商务,窃取用户提交的银行帐号、密码等私密信息…

【计算机网络】网络基础(二)

本章主要对TCP/IP模型的网络层的初阶内容进行概括性讲述。 1、IP地址 当我们在配置计算机的IP地址时&#xff0c;是否会遇到下面的情形&#xff1a; 这是由于IP地址配置不正确造成的。在网络通信中&#xff0c;IP地址用来识别终端主机及网元设备&#xff0c;为了保障互联网正…

Siamese Neural Network (SNN: 孪生神经网络)

【学习参考】&#xff1a; https://blog.csdn.net/MyArrow/article/details/122539749https://blog.csdn.net/MyArrow/article/details/122539749 Siamese network 孪生神经网络--一个简单神奇的结构 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/35040994 【Siamese和Ch…

Matlab reconstruct signal form sample points, convulsion

Usually we describe reconstruction as interpolation, and there are many approaches to reach it. In this article, I introduce a new method- convulsion Main signal function f(x)sin(15πxπ/10)f(x)sin(15\pi x\pi/10)f(x)sin(15πxπ/10) Convulsion Method Des…

半监督短语挖掘:autophrase是什么?

论文地址&#xff1a;《Automated Phrase Mining from Massive Text Corpora》 git地址&#xff1a; GitHub - shangjingbo1226/AutoPhrase: AutoPhrase: Automated Phrase Mining from Massive Text Corpora 目录 简介&#xff1a; 1.短语需要满足什么条件&#xff1f; …

Java项目:ssm图书商城系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 该项目分为前后台&#xff0c;前台主要功能包括&#xff1a; 普通用户的注册、登录&#xff1b; 轮播图展示、图书列表、图书详情、加入购物车、…

【Java实战】泄露用户隐私被罚巨款?系统被攻击?如何避免?

目录 一、前言 二、安全规约 1.【强制】隶属于用户个人的页面或者功能必须进行权限控制校验。 2.【强制】用户敏感数据禁止直接展示&#xff0c;必须对展示数据进行脱敏。 3.【强制】用户输入的 SQL 参数严格使用参数绑定或者 METADATA 字段值限定&#xff0c;防止 SQL 注入…

python带你对北京二手房进行数据分析,看看大概都什么价位

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 今天我们的目的想必大家看标题就能明白了~ 准备 首先&#xff0c;我们要提前准备好数据 然后打开我们的数据分析工具&#xff1a; Jupyter 代码及效果展示 导入模块 # 导入做数据处理的模块pandas import pandas as pd …

java计算机毕业设计ssm社会救援力量信息管理统计系统6q3cn(附源码、数据库)

java计算机毕业设计ssm社会救援力量信息管理统计系统6q3cn&#xff08;附源码、数据库&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支…

flask入门教程之小项目实践

前面的2个章节对flask的一些简单操作进行了说明&#xff08;后面再慢慢补充进阶内容&#xff09; flask入门教程之请求与响应 flask入门教程之数据库保存 这个章节主要是根据前2个章节学到的内容&#xff0c;进行一个简单的学生信息增删改查的项目实践。 项目的简单介绍&#…

学习Java编程知识 必知要点

Java 是全球最受欢迎的编程语言之一&#xff0c;在世界编程语言排行榜 TIOBE 中&#xff0c;Java 一直霸占着前三名&#xff0c;有好多年甚至都是第一名。那么如此强大的Java你真的了解他的知识体系吗&#xff1f;他的学习路线你知道吗&#xff1f; 1. Java虚拟机——JVM JVM&a…

启动eureka服务端客户端报java.net.ConnectException: Connection refused: connect的错误

Request execution failed with message: java.net.ConnectException: Connection refused: connect1.先检查eureka服务端和客户端模块中的pom文件中是否引入了相对应的server和client的依赖 2.主启动类上是否加了对应启动注解&#xff1a; EnableEurekaServer //服务端的启动…

frp内网穿透搭建-宝塔版

一、搭建frp准备 下载frp部署文件&#xff1a;https://github.com/fatedier/frp/releases把防火墙安全端口打开&#xff0c;默认7500&#xff0c;7000&#xff0c;其他的自行设置打开&#xff0c;如阿里云服务器要打开端口规则。 二、配置frps服务端 把frps、frps.ini、LICE…

Java并发编程—java异步Future的迭代过程

在我们java多线程中&#xff0c;我想做一件事儿&#xff0c;但是我又不想影响主线程的执行&#xff0c;很多铁子都会想到用异步任务完成&#xff0c;这个时候我们的主角FutureTask就登场了。 一、FutureTask介绍 FutureTask提供了对Future的基本实现&#xff0c;是一个可取消的…

aws batch 在eks上配置计算环境和提交任务

文档 Getting started with Amazon Batch on Amazon EKSAmazon EKS jobsMemory and vCPU considerations for Amazon Batch on Amazon EKS batch不会管理集群&#xff0c;只是会管理节点&#xff08;自动扩缩&#xff09;并运行任务。batch在eks中单独管理自身资源&#xff0…

异常Exception

1.异常是什么&#xff1f; 程序中可能出出现的问题 2.异常体系的最上层父类是谁&#xff1f;异常分为几类 父类&#xff1a;Exception 异常分为两类&#xff1a;编译时异常、运行时异常 3.编译时异常和运行时异常的区别 编译时异常&#xff1a;除了RuntimeException和他的子类…

华为悦盒ec6108v9c使用ADB卡刷Linux(Ubuntu)

1. adb连接华为ec6108v9c&#xff1a; adb连接盒子IP: adb connect 192.168.3.4进入adb shell: adb shell在安卓后台终端输入以下命令&#xff0c;读取盒子的 reg name 管脚对应名称: cat /dev/block/mmcblk0p1 | grep -a hi3798m 2. 用Hitool工具制作对应你盒子reg名称的烧…

Python测试进阶(一)

文章目录测试框架pytestMarkskip参数化异常处理数据驱动Allure集成生成报告Fixture基操作用域yield数据共享自动应用参数化ini运行规则配置命令行参数指定/忽略执行目录配置日志插件开发常用插件分布式并发自定义插件打包发布hook小结测试框架 先了解unittest问题分析 自动化测…

SAS,Stata,HLM,R,SPSS和Mplus分层线性模型HLM分析学生受欢迎程度数据

全文链接&#xff1a;http://tecdat.cn/?p10809本文用于比较六个不同统计软件程序&#xff08;SAS&#xff0c;Stata&#xff0c;HLM&#xff0c;R&#xff0c;SPSS和Mplus&#xff09;的两级分层线性模型的过程和输出&#xff08;点击文末“阅读原文”获取完整代码数据&#…

Java项目:SSM学生会管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目分为管理员、学生两种角色&#xff0c; 管理员角色包含以下功能&#xff1a; 管理员登陆,管理学生,管理机构,活动信息发布,部门管理,职位…