linux小实验-考勤模拟程序

时间:2023-03-09 17:12:37
linux小实验-考勤模拟程序

任务:

设计一个考勤模拟程序,实现如下功能选择界面,要求使用函数

1.上班签到

2.下班签出

3.缺勤信息查阅

4.退出

考勤程序运行后,提示用户输入上述功能选择,并验证用户输入的用户名和密码;用户信息保存在userinfo.dat中。

如果是上班签到,记录签到信息,如果签到时间大于上午8时,则提示用户迟到,并记录该迟到信息到check.dat。

如果是下班签出,记录签出信息,如果签出时间小于下午6时,则提示用户早退,并记录该早退信息到check.dat。

如果用户选择缺勤信息查询,则将check.dat中对应该用户的迟到早退信息查出并显示。

用户选择功能执行完,shell程序继续回到功能选择界面等待下一个用户进行操作。

代码:

 #!/usr/bin/env bash
# 考勤模拟程序
#作者:于修彦
#date //
function main(){
echo "------------------------------------------------------------"
echo " 欢迎使用考勤程序! "
echo "------------------------------------------------------------" createInfoFile; read -p "请输入您的账号: " username
read -p "请输入您的密码: " password isLogin $username $password; while [[ == ]];
do
menu;
read -p "请输入您的选择:" choice
case $choice in
)
signIn $username;
;;
)
logOff $username;
;;
)
absenceConsult $username;
;;
)
exit1;
;;
* )
echo -e "请选择功能 1 or 2 or 3 or 4!\n"
;;
esac
done }
#菜单
function menu(){
echo "------------------------------------------------------------"
echo " 1.上班签到 "
echo " 2.下班签出 "
echo " 3.缺勤信息查阅 "
echo " 4.退出 "
echo "------------------------------------------------------------"
} #检查账号密码
function isLogin(){
while read line
do
if [[ "$line" == "$1:$2" ]]; then
return
fi
done < userinfo.dat #从文件读入
echo "用户名或密码错误,请重新输入哦"
read -p "请输入您的账号: " username
read -p "请输入您的密码: " password
isLogin $username $password;
} #上班签到
function signIn(){
hour=`date +%H`
if [[ $hour -gt ]]; then
echo "你上班迟到了呀!已经将迟到信息记录在check.dat中。"
echo "$1 上班迟到————日期:`date`" >> check.dat
else
echo "上班签到成功!"
fi
main;
} #下班迁出
function logOff(){
echo "下班签出成功!"
hour=`date +%H`
if [[ $hour -lt ]]; then
echo "你现在属于早退哦!已经将早退信息记录在check.dat中。"
echo "$1 下班早退————日期:`date`" >> check.dat
fi
main;
} #缺勤查阅
function absenceConsult(){
cat check.dat|grep -n "$1" } #退出程序
function exit1(){
exit
} #创建配置文件
function createInfoFile(){
if [[ ! -e userinfo.dat ]]; then
touch userinfo.dat #保存用户名和密码
chmod userinfo.dat
fi
if [[ ! -e check.dat ]]; then
touch check.dat #保存迟到早退信息
chmod check.dat
fi } #执行main函数
main

结果:

linux小实验-考勤模拟程序

linux小实验-考勤模拟程序