前言
一、自动考勤系统是什么?
考勤是工作的一个重要指标,不仅学校需要,各大企业也十分需要,为此博主做了一个简易的模拟考勤程序,可以实现上班签到、下班签出、缺勤信息查阅的功能,此程序基于ubuntu下,使用VMwave虚拟机希望大家能够喜欢。
二、使用步骤
1.VMwave虚拟机的使用
1、打开终端。
2、创建user1目录,在此目录中创建test和userinfo.dat文件。
3、在终端打开test文件进行编写,并保存。
4、在终端打开userinfo.dat文件进行编写,并保存。
5、输入命令执行test文件。
PS:如果权限不够在chmod -x test后更改属性,或不敲chmod -x test。
二、主要代码
1.test文件代码
1、初始化页面代码如下(示例):
#! /bin/bash
#filename:shelltest
exsig=0
while true; do
echo ""
echo "----欢迎使用本系统----"
echo " 1. 上班签到"
echo " 2. 下班签出"
echo " 3. 考勤信息查询"
echo " 4. 退出系统"
echo "----------------------"
echo ""
echo "请输入你的选项:"
2、初始化页面代码如下(示例):
read choice
case $choice in
1)echo "请输入你的名字:"
read name
echo "请输入你的密码:"
read password
if test -r /home/zyf/user1/userinfo.dat
then
while read fname fpassword
do
echo "$fname"
echo "$fpassword"
if test "$fname" = "$name"
then
break
fi
done < /home/zyf/user1/userinfo.dat
else
echo System Error:userinfo.dat does not exist!
fi
if test "$fname" != "$name"
then
echo "不存在该用户!"
elif test "$fpassword" != "$password"
then
echo "密码不正确!"
else
hour=`date +%H`
if test "$hour" -gt 8
then
echo "你迟到了!"
echo "$name 上班迟到---日期:`date`" >>/home/zyf/user1/check.dat
else
echo "早上好,$name!"
fi
fi
;;
2)echo "请输入你的名字:"
read name
echo "请输入你的密码:"
read password
if test -r /home/zyf/user1/userinfo.dat
then
while read fname fpassword
do
if test "$fname" = "$name"
then
break
fi
done < /home/zyf/user1/userinfo.dat
else
echo System Error:userinfo.dat does not exist!
fi
if test "$fname" != "$name"
then
echo " 不存在该用户!"
elif test "$fpassword" != "$password"
then
echo "密码不正确!"
else
hour=`date +%H`
if test "$hour" -lt 18
then
echo "你早退了!"
echo "$name 下班早退----日期:`date`">> /home/zyf/user1/check.dat
else
echo "再见,$name!"
fi
fi
;;
3)echo "请输入你的名字:"
read name
echo "请输入你的密码:"
read password
if test -r /home/zyf/user1/userinfo.dat
then
while read fname fpassword
do
if test "$fname" = "$name"
then
break
fi
done < /home/zyf/user1/userinfo.dat
else
echo System Error:userinfo.dat does not exist!
fi
if test "$fname" != "$name"
then
echo "不存在该用户!"
elif test "$fpassword" != "$password"
then
echo "密码不正确!"
else
echo "你的记录:"
echo "---------"
cat -b /home/zyf/user1/check.dat|grep $name
echo "---------"
fi
;;
4)echo "欢迎你的使用,再见!"
exsig=1
;;
*)echo "请输入合法的选项!"
;;
esac
if test "$exsig" = "1"
then
break
fi
done
PS:要注意/home/zyf/user1/userinfo.dat,需要改为自己的路径,下图为查看路径的方法。
2.userinfo.dat文件代码
WanMing 12345
三、演示效果
----欢迎使用本系统----
1. 上班签到
2. 下班签出
3. 考勤信息查询
4. 退出系统
----------------------
请输入你的选项:
1
请输入你的名字:
WanMing
请输入你的密码:
12345
WanMing
12345
你迟到了!
----欢迎使用本系统----
1. 上班签到
2. 下班签出
3. 考勤信息查询
4. 退出系统
----------------------
请输入你的选项:
2
请输入你的名字:
WanMing
请输入你的密码:
12345
再见,WanMing!
----欢迎使用本系统----
1. 上班签到
2. 下班签出
3. 考勤信息查询
4. 退出系统
----------------------
请输入你的选项:
3
请输入你的名字:
WanMing
请输入你的密码:
12345
你的记录:
---------
1 WanMing 上班迟到---日期:Fri Oct 21 19:54:34 PDT 2022
---------
----欢迎使用本系统----
1. 上班签到
2. 下班签出
3. 考勤信息查询
4. 退出系统
----------------------
请输入你的选项:
4
欢迎你的使用,再见!
ps:程序中我所设定的用户为WanMing,上班时间为8:00-18:00
四、总结
以上就是今天要分享的内容,本文仅仅简单介绍了基于ubuntu下的自动考勤系统,介绍了VMwave的使用,具体代码已经在gitee仓库开源(https://gitee.com/nqqdz/automatic-attendance-system.git),旨在与各位同学一起交流,提升技术。作为一位死磕嵌入式的小白,希望大家能在此过程中不吝赐教,如有问题,请大家批评指正。