创建一个shell脚本,可查询课程安排。当输入数字1时显示“Math”;输入数字2时显示“English”;输入数字3时显示“Physics”;输入数字4时显示“Chinese”;其他数字显示“Input erro”。 脚本内容主要为
时间: 2023-10-08 08:04:34 浏览: 11
以下是一个简单的 Shell 脚本,可根据输入的数字显示对应的课程安排:
```bash
#!/bin/bash
echo "请输入数字 1-4:"
read num
case $num in
1)
echo "Math"
;;
2)
echo "English"
;;
3)
echo "Physics"
;;
4)
echo "Chinese"
;;
*)
echo "Input error"
;;
esac
```
脚本中使用了 `case` 语句来根据输入的数字显示对应的课程安排。`read` 命令用于获取用户输入的数字,并将其存储在 `$num` 变量中。`case` 语句根据 `$num` 的值来执行相应的操作。如果输入的数字不在 1-4 的范围内,则显示错误消息。
相关问题
创建学生和教师帐号文件 可以分别创建一个students.txt和teachers.txt文件来存储学生和教师的帐号信息,每个帐号一行,包括用户名和密码,用空格分隔。例如: 复制 # students.txt alice 123456 bob 123456 复制 # teachers.txt john 123456 创建课程文件 可以创建一个courses.txt文件来存储所有的课程信息,每个课程一行,包括课程编号、课程名称和选课人数,用空格分隔。例如: 复制 # courses.txt 1001 Math 0 1002 English 0 创建登录界面 使用Shell脚本来创建一个登录界面,提示用户选择登录身份并输入用户名和密码。根据用户的选择,进入学生或教师的主界面。 创建学生主界面 在学生主界面中,使用Shell脚本来实现以下三个功能: 学生选择课程:列出所有可选的课程,并让学生输入课程编号来选择课程。如果输入的课程编号不存在或课程已经选满,给出错误提示。 学生查看信息:显示学生的学号、姓名和所选课程。 学生退出系统:退出程序。 创建教师主界面 在教师主界面中,使用Shell脚本来实现以下四个功能: 教师添加课程:让教师输入课程编号和课程名称来添加新课程。 教师删除课程:让教师输入课程编号来删除已有课程。 教师查看课程:列出所有课程及其选课人数。 教师退出系统:退出程序。 以上是一个简单的学生选课系统的实现。当然,根据需求的不同,还有很多可以扩展和改进的地方。请给出详细代码
好的,下面是一个简单的实现代码,仅供参考:
```bash
#!/bin/bash
# 定义学生帐号文件、教师帐号文件和课程文件
STUDENT_FILE="students.txt"
TEACHER_FILE="teachers.txt"
COURSE_FILE="courses.txt"
# 定义学生和教师主界面
student_menu() {
echo "----------------------欢迎使用学生选课系统(学生)------------------------"
echo "* 1、学生选择课程 *"
echo "* 2、学生查看信息 *"
echo "* 3、学生退出系统 *"
echo "----------------------------------------------------------------------------------------"
}
teacher_menu() {
echo "----------------------欢迎使用学生选课系统(教师)------------------------"
echo "* 1、教师添加课程 *"
echo "* 2、教师删除课程 *"
echo "* 3、教师查看课程 *"
echo "* 4、教师退出系统 *"
echo "----------------------------------------------------------------------------------------"
}
# 定义登录界面
login() {
echo "----------------------------欢迎使用学生选课系统------------------------------"
echo "* 1、学生身份登录系统 *"
echo "* 2、教师身份登录系统 *"
echo "* 3、退出学生选课系统 *"
echo "----------------------------------------------------------------------------------------"
read -p "请输入选项(1-3):" option
case $option in
1)
read -p "请输入学生用户名:" username
read -s -p "请输入密码:" password
echo
if grep -q "^$username $password$" $STUDENT_FILE; then
student_main $username
else
echo "错误:用户名或密码错误"
fi
;;
2)
read -p "请输入教师用户名:" username
read -s -p "请输入密码:" password
echo
if grep -q "^$username $password$" $TEACHER_FILE; then
teacher_main
else
echo "错误:用户名或密码错误"
fi
;;
3)
exit
;;
*)
echo "错误:无效选项"
;;
esac
}
# 定义学生主界面
student_main() {
username=$1
while true; do
student_menu
read -p "请输入选项(1-3):" option
case $option in
1)
# 列出所有可选课程
echo "可选课程如下:"
awk '{if ($3==0) print $1, $2}' $COURSE_FILE
read -p "请输入课程编号:" course_id
# 判断课程是否存在且未选满
if awk '{if ($1=='$course_id' && $3==0) exit 1}' $COURSE_FILE; then
# 更新课程文件
awk '{if ($1=='$course_id') {$3=1; print} else print}' $COURSE_FILE > tmp
mv tmp $COURSE_FILE
# 更新学生信息
awk '{if ($1=="'$username'") {$3='$course_id'; print} else print}' $STUDENT_FILE > tmp
mv tmp $STUDENT_FILE
echo "选课成功"
else
echo "错误:课程不存在或已选满"
fi
;;
2)
# 显示学生信息
awk '{if ($1=="'$username'") print "学号:"$1"\n姓名:"$2"\n所选课程:"$3}' $STUDENT_FILE
;;
3)
# 退出程序
exit
;;
*)
echo "错误:无效选项"
;;
esac
done
}
# 定义教师主界面
teacher_main() {
while true; do
teacher_menu
read -p "请输入选项(1-4):" option
case $option in
1)
# 添加新课程
read -p "请输入课程编号:" course_id
read -p "请输入课程名称:" course_name
echo "$course_id $course_name 0" >> $COURSE_FILE
echo "课程添加成功"
;;
2)
# 删除已有课程
read -p "请输入课程编号:" course_id
if awk '{if ($1=='$course_id') exit 1}' $COURSE_FILE; then
echo "错误:课程不存在"
else
grep -v "^$course_id " $COURSE_FILE > tmp
mv tmp $COURSE_FILE
echo "课程删除成功"
fi
;;
3)
# 列出所有课程及其选课人数
echo "所有课程如下:"
awk '{print $1, $2, "(" $3 "人)"}' $COURSE_FILE
;;
4)
# 退出程序
exit
;;
*)
echo "错误:无效选项"
;;
esac
done
}
# 主程序
while true; do
login
done
```
注意,以上代码仅供参考,实际使用时需要根据需求进行修改和完善。另外,安全性也是需要考虑的一个因素,如密码的加密等。
2、功能模块 1)成绩上传函数add(){}:利用read命令读取上传的科目和成绩; case语句用来判断选择哪个科目,然后使用追加重定向将成绩存入文件info 2)成绩查询函数search(){}:直接打开存放成绩的文件info 3、脚本主体部分,包含以下内容: 1)使用while循环重复执行脚本主体内容; 2)输出成绩管理系统界面和选择的界面,1、成绩上传 2、成绩查询 3、退出; 3)要求使用case匹配对应的功能模块;选择1,调用成绩上传函数;选择2,调用成绩查询函数;选择3,退出shell;选择其他,提示输入错误;
以下是一个简单的实现所述功能的Shell脚本:
```shell
#!/bin/bash
# 成绩上传函数
add() {
read -p "请输入科目名称:" subject
read -p "请输入成绩:" score
case $subject in
"语文")
echo "$score" >> info_chinese
;;
"数学")
echo "$score" >> info_math
;;
"英语")
echo "$score" >> info_english
;;
*)
echo "输入的科目名称错误!"
;;
esac
echo "成绩上传成功!"
}
# 成绩查询函数
search() {
read -p "请输入要查询的科目名称:" subject
case $subject in
"语文")
echo "语文成绩如下:"
cat info_chinese
;;
"数学")
echo "数学成绩如下:"
cat info_math
;;
"英语")
echo "英语成绩如下:"
cat info_english
;;
*)
echo "输入的科目名称错误!"
;;
esac
}
# 脚本主体部分
while true
do
echo "欢迎使用成绩管理系统!请选择操作:"
echo "1、成绩上传"
echo "2、成绩查询"
echo "3、退出"
read choice
case $choice in
1)
add
;;
2)
search
;;
3)
echo "再见!"
exit 0
;;
*)
echo "输入错误,请重新选择!"
;;
esac
done
```
在脚本所在的目录下,需要创建三个文件 `info_chinese`、`info_math` 和 `info_english`,用于保存对应科目的成绩。当选择成绩上传时,会根据输入的科目名称选择对应的文件并将成绩追加写入;当选择成绩查询时,会打开对应的文件并输出所有成绩。