• 一个低级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 " 学号 姓名 年龄 性别 电话(以空格区分)

    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 " $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

  • 相关阅读:
    Md5
    hdu 2569 彼岸
    调用系统相机相冊
    白盒測试
    HDU 1501
    IOS常见错误分析解决(一直更新) 你值得收藏-综合贴
    读“程序猿生存定律”笔记
    Halcon导出的cpp, VC++环境配置
    POJ 1260 Pearls (动规)
    hdoj-1856-More is better【并查集】
  • 原文地址:https://www.cnblogs.com/loufangcheng/p/11820388.html
Copyright © 2020-2023  润新知