shell脚本学生管理系统(1)系统允许学生或教师登录 (2)系统允许学生选课 (3)系统允许学生查看个人信息及选课信息 (4)系统允许教师查看某个课程的相关信息
时间: 2023-11-18 19:13:22 浏览: 28
好的,这是一个更完整的学生选课管理系统的示例代码,包括学生和教师登录、选课、查看个人信息和课程信息等功能。代码如下:
```shell
#!/bin/bash
# 学生账户信息
students=( "student1,123456" "student2,654321" )
# 学生选课信息
courses=( "course1,student1" "course2,student2" )
# 教师账户信息
teachers=( "teacher1,123456" "teacher2,654321" )
# 课程信息
course_info=( "course1,teacher1,10" "course2,teacher2,20" )
# 学生登录函数
function student_login() {
read -p "请输入学生账号:" username
read -s -p "请输入学生密码:" password
echo ""
for student in ${students[@]}
do
if [[ $student == "$username,$password" ]]
then
echo "登录成功!"
student_menu $username
return
fi
done
echo "账号或密码错误,请重新登录!"
student_login
}
# 学生菜单函数
function student_menu() {
echo "=========================="
echo "欢迎进入学生选课管理系统"
echo "1. 选课"
echo "2. 查看个人信息"
echo "3. 查看选课信息"
echo "4. 退出系统"
echo "=========================="
read -p "请输入菜单编号:" choice
case $choice in
1)
select_course $1;;
2)
view_student_info $1;;
3)
view_course_info $1;;
4)
echo "退出系统!"
exit;;
*)
echo "无效的菜单编号,请重新输入!"
student_menu $1;;
esac
}
# 学生选课函数
function select_course() {
echo "可选课程如下:"
echo "课程名称 授课教师 课程容量"
echo "=============================="
for course in ${course_info[@]}
do
course_name=`echo $course | cut -d ',' -f 1`
teacher_name=`echo $course | cut -d ',' -f 2`
course_capacity=`echo $course | cut -d ',' -f 3`
echo "$course_name $teacher_name $course_capacity"
done
read -p "请输入要选修的课程名称:" course_name
for course in ${course_info[@]}
do
if [[ `echo $course | cut -d ',' -f 1` == $course_name ]]
then
course_capacity=`echo $course | cut -d ',' -f 3`
for item in ${courses[@]}
do
if [[ `echo $item | cut -d ',' -f 1` == $course_name ]]
then
echo "您已经选修了该课程!"
return
elif [[ `echo $item | cut -d ',' -f 2` == $1 ]]
then
echo "您已经选修了其他课程,不能再选修该课程!"
return
fi
done
if [[ ${#courses[@]} -ge $course_capacity ]]
then
echo "该课程已经选满!"
return
fi
courses+=("$course_name,$1")
echo "选课成功!"
return
fi
done
echo "该课程不存在!"
}
# 查看学生个人信息函数
function view_student_info() {
for student in ${students[@]}
do
if [[ `echo $student | cut -d ',' -f 1` == $1 ]]
then
echo "学生姓名:`echo $student | cut -d ',' -f 1`"
echo "学生年龄:`echo $student | cut -d ',' -f 2`"
echo "学生性别:`echo $student | cut -d ',' -f 3`"
return
fi
done
}
# 查看学生选课信息函数
function view_course_info() {
echo "您已选修的课程如下:"
echo "课程名称 授课教师"
echo "================"
for item in ${courses[@]}
do
if [[ `echo $item | cut -d ',' -f 2` == $1 ]]
then
course_name=`echo $item | cut -d ',' -f 1`
for course in ${course_info[@]}
do
if [[ `echo $course | cut -d ',' -f 1` == $course_name ]]
then
teacher_name=`echo $course | cut -d ',' -f 2`
echo "$course_name $teacher_name"
fi
done
fi
done
}
# 教师登录函数
function teacher_login() {
read -p "请输入教师账号:" username
read -s -p "请输入教师密码:" password
echo ""
for teacher in ${teachers[@]}
do
if [[ $teacher == "$username,$password" ]]
then
echo "登录成功!"
teacher_menu
return
fi
done
echo "账号或密码错误,请重新登录!"
teacher_login
}
# 教师菜单函数
function teacher_menu() {
echo "=========================="
echo "欢迎进入教师管理系统"
echo "1. 查看课程信息"
echo "2. 退出系统"
echo "=========================="
read -p "请输入菜单编号:" choice
case $choice in
1)
view_course;;
2)
echo "退出系统!"
exit;;
*)
echo "无效的菜单编号,请重新输入!"
teacher_menu;;
esac
}
# 查看课程信息函数
function view_course() {
echo "课程名称 授课教师 课程容量"
echo "=============================="
for course in ${course_info[@]}
do
course_name=`echo $course | cut -d ',' -f 1`
teacher_name=`echo $course | cut -d ',' -f 2`
course_capacity=`echo $course | cut -d ',' -f 3`
echo "$course_name $teacher_name $course_capacity"
done
}
# 主程序
while true
do
echo "=========================="
echo "欢迎进入学生选课管理系统"
echo "1. 学生登录"
echo "2. 教师登录"
echo "3. 退出系统"
echo "=========================="
read -p "请输入菜单编号:" choice
case $choice in
1)
student_login;;
2)
teacher_login;;
3)
echo "退出系统!"
exit;;
*)
echo "无效的菜单编号,请重新输入!";;
esac
done
```
这个学生选课管理系统的实现需要一些数据结构,比如 `students` 数组存储学生账户信息,`courses` 数组存储学生选课信息,`teachers` 数组存储教师账户信息,`course_info` 数组存储课程信息。通过条件语句、循环语句和函数来实现学生和教师登录、选课、查看个人信息和课程信息等功能。
以上是一个简单的学生选课管理系统的示例代码,希望对您有所帮助。如果您有其他问题或需要进一步了解,请随时向我提问。