#!/usr/bash
#Output file save the students information
FILE=./zhubinqiang_v1.0
#temp file
TMP=./.tmp
#This is menu
menu () {
echo "***************************************************************************"
echo -e "\t\t1.Add a student information"
echo -e "\t\t2.Query a student information by ID"
echo -e "\t\t3.Delete a student information by ID"
echo -e "\t\t4.Screen clearing"
echo -e "\t\t0.Exit this program"
echo "***************************************************************************"
echo -n "Select:"
}
#Add a student infomation
add () {
#validate ID
while [ 1 ];do
echo -n "Student ID(001-999):"
read id
flag=`echo $id|grep -c "^[0-9]\{3\}$"`
if [ $flag -eq 0 -o "$id" == "000" ] ; then
echo "ID must 001-999"
continue
fi
flag2=`awk '{print $1}' $FILE | grep -c ^${id}$`
if [ $flag2 -ge 1 ] ;then
echo "The ID must be only one!"
continue
fi
break
done
#validate Name
while [ 1 ];do
echo -n "Student name(only a-z,A-Z and within 5 characters):"
read name
flag=`echo $name|grep -c "^[a-zA-Z]\{1,5\}$"`
if [ $flag -eq 0 ] ; then
echo "name must within 5 characters only a-z,A-Z"
else
#Name into the capital letters
name=`echo $name | tr '[a-z]' '[A-Z]'`
break
fi
done
#validate Sex
echo -n "Student sex(M or F,default is M):"
read sex
if [ "$sex" = "F" -o "$sex" = "f" ] ; then
sex=F
else
sex=M
fi
#validate Class
while [ 1 ]; do
echo -n "Student class(01-99 default is NULL):"
read class
if [ "$class" == "" ];then
class=NULL
break
fi
#Class match 00-99
flag=`echo $class|grep -c "^[0-9]\{2\}$"`
#check ?
if [ $flag -eq 0 -o "$class" == "00" ] ; then
echo "class must 01-99"
else
break
fi
done
echo -e "$id\t$name\t$sex\t$class" >> $FILE
}
#Query a student by ID
query () {
echo -n "Input the student ID:"
read id
if [ "$id" == "" ] ; then
echo -e "ID\tName\tSex\tClass"
cat $FILE
else
echo -e "ID\tName\tSex\tClass"
grep $id $FILE
if [ $? != 0 ]; then
echo "No student information!"
fi
fi
}
#Delete a student by ID
delete () {
echo -n "Input the student ID:"
read id
flag=`grep -n "$id" $FILE`
if [ "$flag" == "" -o "$id" == "" ]; then
echo "can't find ID=$id student"
return
fi
#get delete number
num=`awk '{print $1}' $FILE | grep -n "${id}" |sed 's/:.*//g'`
echo -e "ID\tName\tSex\tClass"
sed -n "${num}p" $FILE
echo -n "Are you sure delete id(Y or N):"
read sure
if [ "$sure" == "Y" -o "$sure" == "y" ] ; then
sed "${num}d" $FILE > $TMP
cat $TMP > $FILE
echo "Deleted successful"
fi
}
#exit program
quit () {
echo "Thank you Bye!"
exit
}
#Error info
error () {
echo "error input!"
}
#screen cleaning
cls () {
clear
}
#main
main () {
while [ 1 ] ; do
menu
read number
case $number in
1) add ;;
2) query ;;
3) delete ;;
4) cls ;;
0) quit ;;
*) error ;;
esac
done
}
main
分享到:
相关推荐
linux 程序设计 实验 shell 编程 学生成绩管理系统
在这个"shell成绩管理系统"中,我们可以推测作者试图创建一个简单的命令行工具,用于管理学生分数、专业等数据。尽管作者自评代码质量不佳,对于初学者来说,这样的实践项目仍然是学习Shell脚本的基础和宝贵经验。 ...
### 学生成绩管理系统知识点详解 #### 一、实验背景及目标 本实验旨在通过实践操作,使学生能够深入理解并掌握Linux环境下Shell脚本编程技术,并熟练运用dialog工具进行图形化用户界面的设计。具体目标如下: - *...
本文实例为大家分享了shell实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 基本的操作 增加 删除 查询 展示全部学生信息 vim编辑保存信息的文件 遇到的问题 1.增加学生信息时 增加学生信息时,我用的...
用shell script 编写的学生成绩管理系统,实现了增删改查,可改写和完善
1.按学号查询学生成绩信息 2.添加学生成绩信息 3.删除学生成绩信息 4.修改学生成绩信息 5.使用函数分别判断输入的姓名、学号、成绩是否符合要求 6.对数据库进行备份、恢复、检查完整性; 7.生成示例数据库 本程序中...
通过上述知识点,这个简单的学生作业管理系统可以实现接收作业、检查格式、记录提交情况等功能,对于初学者来说是一个很好的实践项目。通过不断迭代和优化,可以进一步增强其功能,如添加成绩计算、邮件通知等特性。
资源里面包含: 1、《Linux系统中用户信息...10、《学生成绩管理系统》 等大作业的功能要求和每个作业对应的源代码。可以配合实验报告使用 功能要求在shell编程期末作业Word文档里,源代码在相关材料文档Word文档里。
学生成绩分析系统是教育领域中用于收集、处理和解读学生学业成绩的重要工具。...对于教育机构而言,这样的系统有助于提升成绩管理效率,提供深入的学术表现分析,从而促进教学质量和学生学习效果的提升。
1. **MySQL数据库**:MySQL是一个流行的关系型数据库管理系统(RDBMS),广泛用于存储结构化数据,如学生姓名、学号、成绩等。在学生信息管理系统中,MySQL可以创建表格来保存学生数据,并提供SQL查询语言进行数据...
在Linux环境下,构建一个成绩管理系统是一项实用且富有挑战性的任务,它可以帮助教育工作者高效地管理和分析学生的学习成绩。本项目名为“Linux成绩管理系统”,旨在提供一个简洁、易于理解的解决方案,让学生、教师...
学生信息管理系统是教育机构日常管理工作中不可或缺的一部分,它能够高效地处理学生的个人信息、课程安排、成绩记录等数据,减轻了人工操作的负担,提高了工作效率。本系统基于Linux操作系统进行开发,充分利用了...
在这个“学生管理系统”的项目中,我们可以看到这两种技术的结合,以实现对学生活动、成绩、个人信息等数据的有效管理。 首先,让我们了解一下Shell。Shell是Linux操作系统的命令解释器,它提供了一个用户与操作...
首先,我们需要编写一个脚本来读取学生成绩文件,并按总成绩排序,输出前三名学生的信息。这涉及到对文本文件的读取、数据处理以及排序算法的应用。在Shell中,可以使用`awk`或`sort`命令来实现这一功能。例如,我们...
以VM ware虚拟机软件和Ubuntu12.04操作系统为平台,使用shell脚本编写程序,实现对学生成绩的统计计算等功能。要求使用linux shell编写程序脚本(Bash风格),并提供友好的的交互界面。 二 实训要求 1、 基本功能...
1. **成绩管理**:记录和更新学生的考试成绩,可能使用CSV文件或数据库存储,支持批量导入和导出。 2. **出勤管理**:跟踪学生的上课出勤情况,可能通过扫描二维码或RFID技术实现自动化记录。 3. **通知系统**:向...
MySQL 是一款广受欢迎的开源关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,现隶属于美国甲骨文公司(Oracle)。自1998年首次发布以来,MySQL以其卓越的性能、可靠性和可扩展性,成为全球范围内Web应用...