前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux小实验-考勤模拟程序

linux小实验-考勤模拟程序

作者头像
于果
发布2021-08-25 16:12:48
2.1K2
发布2021-08-25 16:12:48
举报
文章被收录于专栏:效能与质量效能与质量

任务:

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

1.上班签到

2.下班签出

3.缺勤信息查阅

4.退出

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

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

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

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

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

代码:

  1 #!/usr/bin/env bash
  2 # 考勤模拟程序
  3 #作者:于果
  4 #date 2018/04/08
  5 function main(){
  6     echo "------------------------------------------------------------"
  7     echo "          欢迎使用考勤程序!                "
  8 echo "------------------------------------------------------------"
  9 
 10 createInfoFile;
 11 
 12     read -p "请输入您的账号: " username
 13 read -p "请输入您的密码: " password
 14 
 15 isLogin $username $password;
 16 
 17     while [[ 1 == 1 ]];
 18     do
 19         menu;
 20         read -p "请输入您的选择:" choice
 21         case $choice in
 22             1 )
 23                 signIn $username;
 24                 ;;
 25             2 )
 26                 logOff $username;
 27                 ;;
 28             3 )
 29                 absenceConsult $username;
 30                 ;;
 31             4 )
 32                 exit1;
 33                 ;;
 34             * )
 35                 echo -e "请选择功能 1 or 2 or 3 or 4!\n"
 36                 ;;
 37         esac
 38     done
 39 
 40 }
 41 #菜单
 42 function menu(){
 43     echo "------------------------------------------------------------"
 44     echo "                   1.上班签到              "
 45     echo "                   2.下班签出              "
 46     echo "                   3.缺勤信息查阅          "
 47     echo "                   4.退出                  "
 48     echo "------------------------------------------------------------"
 49 }
 50 
 51 #检查账号密码
 52 function isLogin(){
 53     while read line
 54     do
 55         if [[ "$line" == "$1:$2" ]]; then
 56             return 0
 57         fi
 58     done < userinfo.dat     #从文件读入
 59     echo "用户名或密码错误,请重新输入哦"
 60     read -p "请输入您的账号: " username
 61     read -p "请输入您的密码: " password
 62 isLogin $username $password;
 63 }
 64 
 65 #上班签到
 66 function signIn(){
 67     hour=`date +%H`
 68     if [[ $hour -gt 8 ]]; then
 69         echo "你上班迟到了呀!已经将迟到信息记录在check.dat中。"
 70         echo "$1 上班迟到————日期:`date`" >> check.dat
 71     else
 72         echo "上班签到成功!"
 73     fi
 74     main;
 75 }
 76 
 77 #下班迁出
 78 function logOff(){
 79     echo "下班签出成功!"
 80     hour=`date +%H`
 81     if [[ $hour -lt 18 ]]; then
 82         echo "你现在属于早退哦!已经将早退信息记录在check.dat中。"
 83         echo "$1 下班早退————日期:`date`" >> check.dat
 84     fi
 85     main;
 86 }
 87 
 88 #缺勤查阅
 89 function absenceConsult(){
 90     cat check.dat|grep -n "$1"
 91 
 92 }
 93 
 94 #退出程序
 95 function exit1(){
 96     exit 0
 97 }
 98 
 99 #创建配置文件
100 function createInfoFile(){
101     if [[ ! -e userinfo.dat ]]; then
102         touch userinfo.dat   #保存用户名和密码
103         chmod 777 userinfo.dat
104     fi
105     if [[ ! -e check.dat ]]; then
106         touch check.dat   #保存迟到早退信息
107         chmod 777 check.dat
108     fi
109 
110 }
111 
112 #执行main函数
113 main

结果:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-05-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档