用shell脚本编写学生选课系统,可以通过教师和学生登陆分别实现不同操作给出详细的源码
时间: 2024-02-25 15:54:08 浏览: 73
学生选课系统(源代码)
好的,以下是一个基于Shell脚本的学生选课系统,支持学生和教师两种角色登陆,分别有不同的操作:
```bash
#!/bin/bash
# 学生账号密码
student_user="student"
student_pass="123456"
# 教师账号密码
teacher_user="teacher"
teacher_pass="123456"
# 定义函数:显示菜单
function show_menu {
clear
echo "欢迎使用学生选课系统"
echo "1. 学生登陆"
echo "2. 教师登陆"
echo "3. 退出系统"
}
# 定义函数:学生操作菜单
function show_student_menu {
clear
echo "欢迎 $student_user 登陆"
echo "1. 查看课程列表"
echo "2. 选择课程"
echo "3. 查看已选课程"
echo "4. 删除已选课程"
echo "5. 退出系统"
}
# 定义函数:教师操作菜单
function show_teacher_menu {
clear
echo "欢迎 $teacher_user 登陆"
echo "1. 查看所有课程"
echo "2. 添加课程"
echo "3. 删除课程"
echo "4. 退出系统"
}
# 定义函数:查看课程列表
function show_courses {
echo "课程列表如下:"
echo "1. 数学"
echo "2. 英语"
echo "3. 物理"
echo "4. 化学"
echo "5. 生物"
}
# 定义函数:选择课程
function select_course {
echo "请输入你要选择的课程编号:"
read course_num
case $course_num in
1) course_name="数学" ;;
2) course_name="英语" ;;
3) course_name="物理" ;;
4) course_name="化学" ;;
5) course_name="生物" ;;
*) echo "输入有误,请重新输入!" && select_course ;;
esac
echo "你选择了 $course_name 课程"
echo $course_name >> courses.txt
}
# 定义函数:查看已选课程
function show_selected_courses {
echo "你已选的课程如下:"
cat courses.txt
}
# 定义函数:删除已选课程
function delete_course {
echo "请输入你要删除的课程名称:"
read course_name
sed -i "/^$course_name\$/d" courses.txt
echo "已删除课程 $course_name"
}
# 定义函数:添加课程
function add_course {
echo "请输入要添加的课程名称:"
read course_name
echo $course_name >> courses.txt
echo "已添加课程 $course_name"
}
# 定义函数:删除课程
function remove_course {
echo "请输入要删除的课程名称:"
read course_name
sed -i "/^$course_name\$/d" courses.txt
echo "已删除课程 $course_name"
}
# 学生登陆
function student_login {
echo "请输入学生账号:"
read user
echo "请输入学生密码:"
read -s password
if [[ $user == $student_user && $password == $student_pass ]]; then
while true
do
show_student_menu
read option
case $option in
1) show_courses ;;
2) select_course ;;
3) show_selected_courses ;;
4) delete_course ;;
5) echo "谢谢使用,再见!" && exit ;;
*) echo "输入有误,请重新输入!" ;;
esac
read -p "按任意键继续..." -n 1 -r
done
else
echo "账号或密码错误,请重新登陆!"
student_login
fi
}
# 教师登陆
function teacher_login {
echo "请输入教师账号:"
read user
echo "请输入教师密码:"
read -s password
if [[ $user == $teacher_user && $password == $teacher_pass ]]; then
while true
do
show_teacher_menu
read option
case $option in
1) cat courses.txt ;;
2) add_course ;;
3) remove_course ;;
4) echo "谢谢使用,再见!" && exit ;;
*) echo "输入有误,请重新输入!" ;;
esac
read -p "按任意键继续..." -n 1 -r
done
else
echo "账号或密码错误,请重新登陆!"
teacher_login
fi
}
# 主程序
while true
do
show_menu
read option
case $option in
1) student_login ;;
2) teacher_login ;;
3) echo "谢谢使用,再见!" && exit ;;
*) echo "输入有误,请重新输入!" ;;
esac
read -p "按任意键继续..." -n 1 -r
done
```
这个脚本实现了以下功能:
1. 显示菜单,包括学生登陆、教师登陆和退出系统。
2. 学生登陆:输入学生账号密码后,显示学生操作菜单,包括查看课程列表、选择课程、查看已选课程、删除已选课程和退出系统。
3. 教师登陆:输入教师账号密码后,显示教师操作菜单,包括查看所有课程、添加课程、删除课程和退出系统。
4. 查看课程列表:显示所有可选课程。
5. 选择课程:根据用户输入的课程编号,将选定的课程名称写入 courses.txt 文件中。
6. 查看已选课程:显示已选的课程列表。
7. 删除已选课程:根据用户输入的课程名称,从 courses.txt 文件中删除该课程。
8. 添加课程:根据用户输入的课程名称,将该课程添加到 courses.txt 文件中。
9. 删除课程:根据用户输入的课程名称,从 courses.txt 文件中删除该课程。
10. 退出系统:结束程序运行。
注意,这个脚本使用了一个名为 courses.txt 的文本文件来存储课程信息,需要在脚本所在目录下创建该文件。
阅读全文