基于安卓的公司员工考勤系统的设计与实现
创始人
2024-03-15 14:46:34
0次

目 录
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(){@Overridepublic void onClick(View qwefq) {showDialog(0);				}});edate.setOnClickListener(new OnClickListener(){@Overridepublic 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(){@Overridepublic 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(){@Overridepublic 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();}});}
}

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

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...