一個低級shell簡易學生信息管理系統-新增登陸注冊功能


還有bug 不修改了

小聲bb一下 這玩意真的要控制版本 隨手保存 本來有個超完整的版本 一開心被我rm - f 了 后續還出現了 更多的bug 仔細仔細

 

 

 

 

 

 

 

源碼如下:

 
         

 

record=stu.db

if [ ! -e $record ]; then

    touch record

fi

if [ ! -e $key.txt ]; then

    touch key.txt

fi

login()

{

i=3

while [ $i -gt 0 ]

do

echo "---->您還有 $i 次機會,請好好把握"

echo -e " 登錄姓名:\c"

read Name

echo -e " 登錄密碼:\c "

read Pwd

echo $content

if [ "$Name" = "lfc" ] && [ "$Pwd" = "123456" ] #管理員賬號

then

 echo "---->登錄成功!歡迎您 管理員"

sleep 2

return 1

elif content=$(grep -0 "^賬戶:${Name}|密碼:${Pwd}" "key.txt")

then

 echo "---->登錄成功!歡迎您 $Name 同學"

sleep 2

return 1

 

else [[ $content = "" ]];

echo "賬戶或者密碼錯誤"

i=`expr $i - 1`

 

fi

done

echo "---->機會用完了哦!歡迎下次再見"

}

 

#注冊

  register()

 {

     echo -e " 注冊名:\c"

     read Name

     echo -e " 密  碼:\c"

     read Pwd

     content=$(grep -0 "^a賬戶:${Name}|" "key.txt")

     if [[ $content = "" ]]

     then

               echo "賬戶:${Name}|密碼:$Pwd" >> key.txt

               echo "賬戶成功!"

                 echo "---->注冊成功!歡迎您$Name"

                 echo "---->您的注冊名:$Name ;注冊密碼:$Pwd"

     else

       echo "賬戶也注冊過啦,請換一個好聽的賬戶名字喲"

     fi

 }

 echo "****************************************"

 echo "********歡迎來到學生信息管理系統********"

 echo "******     1、登錄帳號             *****"

 echo "******     2、注冊帳號             *****"

 echo "****************************************"

 echo -e "---->請輸入您的選擇:\c"

 read NUM

 if [ $NUM -eq 1 ]

 then

     login

 elif [ $NUM -eq 2 ]

 then

     register

 else

     echo “對不起,無該選項,請重新輸入!!!”

fi

 

#查詢函數

search()

{

   clear

   echo "請輸入你需要查詢學號 "

#如果記錄為空

    read content

    grep $content $record

    if [ $? -eq 1 ]; then

        echo "未找到相關學生信息"

    fi

  read -s -n1 -p "按任意鍵繼續 ... "

}

 

#增加信息

add() {

clear

echo "請輸入學生信息"

printf "%-14s %-12s %-4s %-4s %-11s\n" 學號 姓名 年齡 性別 電話\(以空格區分\)

read no name age sex phone

#echo -e "\c"

 # 判斷是否存在

 if [ "$no" -gt 0 ] 2>/dev/null; then

        echo "" >/dev/null

  else

    echo "學號不是數字!請重新輸入"

    echo "2s后自動返回首頁"

     sleep 2;

       return 1

 

    fi

 checkno=$(awk '$1=="'"$no"'" {print $0}' $record)

    # 學號已存在

    if [ -n "$checkno" ] >/dev/null; then

       echo "該學號已存在請重新輸入"

       echo "2s后返回首頁"

        sleep 2;

        return 1

    fi

  printf "%-14s %-12s %-4d %-4s %-11d\n" $no $name $age $sex $phone >>$record

    sort -o $record $record

    echo "添加成功"

    read -s -n1 -p "按任意鍵繼續 ... "

}

 

#刪除學生信息

delete()

{

clear

echo "輸入要刪除學生的學號"

read del

    del=$(awk '$1=="'"$del"'" {print $0}' $record)

    # 學號空

    if [ -z "$del" ]; then

        echo "未找到相關學生信息"

        return 1

    fi

    echo $del

    sed -i "/$del/d" $record

    echo "刪除成功"

}

 

#顯示所有的記錄函數

display()

{

clear

cat $record

read -s -n1 -p "按任意鍵繼續 ... "

}

 

#修改學生信息

edit()

{

clear

echo "請輸入需要修改學生信息的學號"

  

echo "輸入要修改的學號"

    read del

    del=$(awk '$1=="'"$del"'" {print $0}' $record)

    # 學號為空

    if [ -z "$del" ]; then

        echo "未找到相關學生信息"

        return 1

    fi

    sed -i "/$del/d" $record

    echo "輸入修改后學生信息"

    sleep 1

    add

    echo "信息修改成功"

 

 

#vim ./record 之前的暴力修改

}

 

#屏幕幫助操作

help()

{

clear

echo "這是使用shell腳本寫的學生信息管理系統,若使用有問題請往博客https://www.cnblogs.com/loufangcheng/進行查看"

}

 

#退出程序

quit()

{

clear

exit

}

 

clear

while true

do

echo -e " "

echo "*********************************************"

echo "*******學生信息管理 **************************"

echo "---------------------------------------------"

echo "#############################################"

echo "******* 1-查找學生信息     ******************"

echo "******* 2-增加學生信息     ******************"

echo "******* 3-刪除學生信息     ******************"

echo "******* 4-顯示所有學生信息 ******************"

echo "******* 5-修改學生信息     ******************"

echo "******* H-幫助            ********************"

echo "******* Q-退出             ******************"

echo "#############################################"

echo -e -n "請輸入您的選擇:\c"

read CHOICE

 

case $CHOICE in

1) search;;

2) add; clear;;

3) delete; clear;;

4) display;;

5) edit; clear;;

H|h) help;;

Q|q) quit;;

*) echo "請重新輸入!";

sleep 2;

clear;;

esac

done


免責聲明!

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



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