shell编程实现学生成绩管理系统

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

主要函数:

colour ()    设置界面颜色
search ()  查询学生信息
add()         增加记录
delete()     删除记录
display()   显示所有记录
edit()         编辑
help()       帮助
quit()        退出

使用截图:

主界面

1、添加

2、显示全部

3、查找

4、删除

删除存在的人:

删除不存在的人:

5、显示全部

参考代码:

#!/bin/bash 

#colour 函数
colour ()
{
  #格式为背景:前景m,主要实现屏幕颜色显示
  case $1 in
    black_white ) #背景为黑色,前景为白色
      echo -e "\033[40;37m"
      ;;
    black_green ) #背景为黑色,前景为绿色
      echo -e "\033[40;32m"
      ;;
    black_cyan ) #背景为黑色,前景为青色
      echo -e "\033[40;36m"
      ;;
    red_yellow ) #背景为红色,前景为黄色
      echo -e "\033[41;33m"
      ;;
    yellow_blue ) #背景为黄色,前景为蓝色
      echo -e "\033[43;34m"
      ;;
  esac
} 

#查询函数
search()
{
  colour black_white
  clear
  echo -e "Please Enter Name >>>\c"
  read NAME
  # 如果无记录时
  if [ ! -f ./record ]; then
    echo "You mush 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"
  fi
  echo "你查询的信息是: $NAME" 

  grep  "$NAME" ./record 2> /dev/null 

  case "$?" in
    1 ) echo "Name not in record."
      ;;
    2 ) echo "You didn't enter 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
  echo "添加成功"
  sleep 2
} 

#删除记录函数
delete()
{
  clear
  echo -e "Please Enter Name >>> "
  read NAME 

  if [ ! -f ./record ]; then
    echo "记录为空请先添加!"
  else
    cp record record.bak 

    grep "$NAME" ./record.bak > /dev/null
    if [ $? != 0 ]; then
      echo "此人不存在"
    else
      # -v 表示 not
      grep -v "$NAME" ./record.bak > record
      echo "删除成功"
    fi
    rm -f record.bak
  fi
  sleep 1
} 

#显示所有记录
display()
{
  colour black_white
  more ./record
} 

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

#屏幕帮助函数
help()
{
  clear
  colour black_cyan
  echo "This is a student's record program by!"
} 

#退出程序
quit()
{
  clear
  colour black_white
  exit
} 

clear
while :
do
  colour red_yellow
  echo "***********************************************************"
  echo "*         STUDENT'S RECORD MENU         *"
  echo "***********************************************************"
  colour yellow_blue
  echo "###########################################################"
  echo "#            1. 查找              #"
  echo "#            2. 添加              #"
  echo "#            3. 删除              #"
  echo "#            4. 显示全部            #"
  echo "#            5. 编辑记录            #"
  echo "#            H: Help Screen          #"
  echo "#            Q: Exit Program          #"
  echo "###########################################################" 

  colour black_green
  echo -e -n " Please Enter Your Choice [1, 2, 3, 4, 5, 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 "Invalid Choice !"
      sleep 2
      clear
      ;;
  esac
done 

总结:

1、sort -o  file file 可以将本文件排序后再写回
2、grep -v  "string"  file 可以将除string 之外的信息过滤出来 
3、进一步熟悉流程控制函数等概念。

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

您可能感兴趣的文章:

  • shell实现学生成绩管理系统
  • shell实现图书管理系统
(0)

相关推荐

  • shell实现学生成绩管理系统

    本文实例为大家分享了shell实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 基本的操作 增加 删除 查询 展示全部学生信息 vim编辑保存信息的文件 遇到的问题 1.增加学生信息时 增加学生信息时,我用的echo重定向到文件里,这里开始用的一个>,会导致覆盖.以前的数据没有了. 总结:重定向符号: >:覆盖型写法 (文件里原来的内容被覆盖) echo "hello world" > myfile >>:添加型写法 (新内容添加在原来内容的后面)

  • shell实现图书管理系统

    本文实例为大家分享了shell实现图书管理系统的具体代码,供大家参考,具体内容如下 #!/bin/bash #author:zhanghongjun #version:1.0 #date:2011年 12月 14日 星期三 21:18:18 CST function information { echo "---------------------------" echo "图书馆管理系统(5.4版本)" echo echo -n "| " ;e

  • shell编程实现学生成绩管理系统

    本文实例为大家分享了shell实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 主要函数: colour ()    设置界面颜色 search ()  查询学生信息 add()         增加记录 delete()     删除记录 display()   显示所有记录 edit()         编辑 help()       帮助 quit()        退出 使用截图: 主界面 1.添加 2.显示全部 3.查找 4.删除 删除存在的人: 删除不存在的人: 5.显示全部

  • Python学生成绩管理系统简洁版

    讲起学生成绩管理系统,从大一C语言的课程设计开始,到大二的C++课程设计都是这个题,最近在学树莓派,好像树莓派常用Python编程,于是学了一波Python,看了一点基本的语法想写点东西练下手. 开发环境:Ubuntu+Python2.7 代码如下: #coding=utf-8 #保存学生信息 studentList=[] def addInfo(name,addr): tempInfo={} tempInfo['name']=name tempInfo['addr']=addr student

  • C语言利用结构体数组实现学生成绩管理系统

    要求: 某班有最多不超过30人(具体人数由键盘输入)参加期末考试,最多不超过6门(具体门数由键盘输入).定义结构体类型描述学生信息,每个学生信息包括:学号.姓名.多门课的成绩.总成绩和平均成绩.用结构体数组作为函数参数,编程实现如下菜单驱动的学生成绩管理系统. (1) 录入每个学生的学号.姓名和各科考试成绩. (2) 计算每门课程的总分和平均分. (3) 计算每个学生的总分和平均分. (4) 按每个学生的总分由高到低排出名次表. (5) 按学号由小到大排出成绩表. (6) 按姓名的字典顺序排出成

  • C++实现学生成绩管理系统

    终于结束了期末考试,有时间将这学期C++作业整理一下,都是一些基础的内容,写出来希望给一些初学者一些参考.主要使用到C++的面对对象编程思想,对学生信息类及链表类进行封装 文章可能有点长,可以只参考需要的部分 题目要求 用C++及类和对象来进行抽象.封装与实现,用作课内的第四次作业.注意学生的成绩需要用链表来实现,并且链表也需要实现封装. 成绩管理系统 信息描述: 现有学生成绩信息,内容如下 姓名 学号 语文 数学 英语 张明明 01 67 78 82 李成友 02 78 91 88 张辉灿 0

  • C语言学生成绩管理系统课程设计word版

    一份C语言学生成绩管理系统设计报告,分享给大家 一.课程设计题目 <学生成绩管理系统设计> 二.实训目的 (1)掌握结构化程序设计的基本方法,基本掌握面向对象程序设计的基本思路和方法. (2)掌握C++的基本概念和基础知识. (3)通过训练能够读懂较为复杂的C++语言源程序并具备基本C++语言程序设计的能力. (4)通过实训,培养自己编写.调试.分析程序的能力. (5)培养自己独立解决问题,查找资料的能力.同学之间相互帮助,相互交流,相互合作的团队精神. (6) 培养自己良好的学习兴趣,独立的

  • C++实现简单学生成绩管理系统

    本文实例为大家分享了C++实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 一.问题描述 设计一个学生成绩管理程序,实现按班级完成对学生成绩信息的录入和修改,并用文件保存.实现按班级输出学生的成绩单:实现按学号和姓名进行查询,按平均成绩进行排序功能. 二.基本要求 (1)使用面向对象编程思想编写开发过程中需要用到的类,比如:Person 类,学生类继承Person类,管理类实现对成绩信息的操作. (2)输入和输出可以使用文本文件重定向输入(保存数据为磁盘文件):也可以使用标准输入输出进行

  • C语言代码实现学生成绩管理系统

    某班有最多不超过 30 人(具体人数由键盘输人)参加期未考试,考试科目 最多不超过 6 门(具体门数由键盘输入,但不少于 3 门),学生成绩管理系统是一 个非常实用的程序,如果能够把用户输入数据存盘,下次运行时读出,就更有用 了.增加文件读写的功能,即编程实现如下菜单驱动的学生成绩管理系统: (1) 录入每个学生的学号.姓名和各科考试成绩.(2) 计算每门课程的总分和平均分.(3) 计算每个学生的总分和平均分.(4) 按每个学生的总分由高到低排出名次表.(5) 按学号由小到大排出成绩表.(6)

  • Python实现学生成绩管理系统

    本文实例为大家分享了Python实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 基本功能: 输入并存储学生的信息:通过输入学生的学号.姓名.和分数,然后就可以把数据保存在建立的student文件里面. 打印学生的所有信息:通过一个打印函数就可以把所有的信息打印在屏幕上. 修改学生信息:这个功能首先通过查询功能查询出该学生是否存在,如果存在就对该学生的信息进行修改,如果不存在则返回到主界面. 删除学生信息:该功能是对相应的学生进行删除操作,如果学生存在就查找到进行删除. 按学生成绩进行排

  • 学生成绩管理系统C语言代码实现

    C语言实现了学生成绩管理系统,可以进行学生成绩的增加,删除,更新,查询,计算和展示. 完整代码如下: #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct person //定义结构体 { char num[10]; //学号 char name[20]; //姓名 float cyuyan; //C语言成绩 float en; //物理学成绩 float ji; //原子物理成绩

随机推荐