编写一个shell脚本,系统分为学生模块、教师模块。主要功能为学生通过系统查看可选课程,同时选择可选可选课程,选定后无法修改;教师可添加新课程,查看课程所选人数,删除课程信息
时间: 2024-01-26 07:02:08 浏览: 58
学生在线选课系统包括教师和学生模块
3星 · 编辑精心推荐
好的,以下是一个简单的 shell 脚本,实现了上述功能。
```shell
#!/bin/bash
# 初始化数据
students_file="students.txt"
courses_file="courses.txt"
selected_courses_file="selected_courses.txt"
teachers_file="teachers.txt"
# 学生模块
student_module() {
echo "欢迎使用选课系统,以下是可选课程:"
cat $courses_file
read -p "请输入你想选择的课程编号:" course_id
# 检查是否已经选过课程
if grep -q "^$course_id$" $selected_courses_file; then
echo "你已经选择了该课程,无法修改选择!"
exit 1
fi
# 将选课信息写入文件
echo $course_id >> $selected_courses_file
echo "成功选择课程!"
}
# 教师模块
teacher_module() {
echo "欢迎使用教师系统,请选择操作:"
echo "1. 添加课程"
echo "2. 查看选课人数"
echo "3. 删除课程"
read -p "请输入操作编号:" operation_id
case $operation_id in
1)
read -p "请输入课程名称:" course_name
echo $course_name >> $courses_file
echo "成功添加课程!"
;;
2)
echo "以下是各个课程的选课人数:"
for course_id in $(cat $courses_file); do
selected_count=$(grep -c "^$course_id$" $selected_courses_file)
echo "$course_id: $selected_count"
done
;;
3)
read -p "请输入要删除的课程编号:" course_id
sed -i "/^$course_id$/d" $courses_file
sed -i "/^$course_id$/d" $selected_courses_file
echo "成功删除课程!"
;;
*)
echo "无效操作!"
exit 1
;;
esac
}
# 根据输入的用户类型调用不同的模块
read -p "请输入用户类型(1. 学生,2. 教师):" user_type
case $user_type in
1)
student_module
;;
2)
teacher_module
;;
*)
echo "无效用户类型!"
exit 1
;;
esac
```
这个脚本通过文件存储数据,实现了学生选课和教师管理课程的功能。学生只能选择课程,不能修改,而教师可以添加、删除课程,并查看各个课程的选课人数。
阅读全文