程序笔记   发布时间:2022-06-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了shell实现学生成绩管理系统大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例为大家分享了sHell实现学生成绩管理系统的具体代码,供大家参,具体内容如下

基本的操作

增加
删除
查询
展示全部学生信息
vim编辑保存信息的文件

遇到的问题

1.增加学生信息时
@H_673_22@

增加学生信息时,我用的echo重定向到文件里,这里开始用的一个>,会导致覆盖。以前的数据没有了。

总结:重定向符号:

>:覆盖型写法 (文件里原来的内容被覆盖)

echo "Hello world" > myfile

>>:添加型写法 (新内容添加在原来内容的后面)

echo "Hello world" >> myfile

2.删除某一行学生信息
@H_673_22@

开始不知道怎么删除,最后查到了grep -v命令。
他表示反向选择,亦即显示出没有 ‘搜寻字符串' 内容的那一行。

具体实现代码

#! /bin/bash

#查询函数
search()
{
    clear
    echo -e "Please enter name >>>\c"
    read name
    #如果记录为空
    if [ ! -f ./record ];then
        echo "you must have some scores before you can search!"
        sleep 2
        clear
        return 
    fi
    #没有输入名字进行查询
    if [ -z "$name" ];then
        echo "you dIDn't enter a name!"
        echo -e "Please enter name >>>\c"
        read name
    fi

    grep -i "$name" ./record 2> /dev/null

    case "$?" in
      1) echo "name not in record."
        ;;
      2) echo "you dIDnt eter a name to search";
        sleep 2;
        search;;
    esac
}

#增加信息
add()
{
    clear
    echo "Enter name and score of a record"
    echo -e "\c"
    if [ ! -f ./record ];then
        touch record
    fi

    read NEWname
    #关于输出重定向,>代表覆盖式的写入 ,>>代表添加式的写入
    echo "$NEWname" >>./record

    sort -o ./record ./record
}

#删除学生信息
delete()
{
    clear 
    echo -e "Please enter delete name"
    read name

    if [ ! -f ./record ];then
      echo "this name is not in record"
    else
      cp record record.bak
      rm -f record
      grep -v "$name" ./record.bak > record
      rm -f record.bak
      fi
}

#显示所有的记录函数
display()
{
    more ./record
}

#利用vim编辑器编辑函数
edit()
{
  vim ./record
}

#屏幕帮助操作
Help()
{
  clear
  echo "this is a student record program by unix sHell language!"
}

#推出程序
quit()
{
  clear
  exit
}

clear
while true
do
    echo "*********************************************"
    echo "****     student record menu    ****"
    echo "*********************************************"
    echo "---------------------------------------------"
    echo "#############################################"
    echo "       1-search a record       "
    echo "       2-add a record         "
    echo "       3-delete a record       "
    echo "       4-dispaly all records     "
    echo "       5-edit record with vim     "
    echo "       H-Help             "
    echo "       Q-exit             "
    echo "#############################################"
    echo -e -n "Please enter your choice [1,2,3,4,5,6,H,Q]:\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 "InvailID choice!";
    sleep 2;
    clear;;
    esac
  done

shell实现学生成绩管理系统

shell实现学生成绩管理系统

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

大佬总结

以上是大佬教程为你收集整理的shell实现学生成绩管理系统全部内容,希望文章能够帮你解决shell实现学生成绩管理系统所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。