linux小實驗-考勤模擬程序


任務:

設計一個考勤模擬程序,實現如下功能選擇界面,要求使用函數

          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

 

 

結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM