linux shell编程学生选课管理系统怎么定义学生帐号文件、教师帐号文件和课程文件。包括学生姓名,学号,密码,课程,教师姓名,教师密码,课程,联系主界面如下: ----------------------------欢迎使用学生选课系统------------------------------ * 1、学生身份登录系统 * * 2、教师身份登录系统 * * 3、退出学生选课系统 * ---------------------------------------------------------------------------------------- B、如以学生身份登录系统,系统显示的主界面如下: ----------------------欢迎使用学生选课系统(学生)------------------------ * 1、学生选择课程 * * 2、学生查看信息 * * 3、学生退出系统 * ---------------------------------------------------------------------------------------- 学生信息中需显示学生的学号、姓名、所选课程等 C、如以教师身份登录系统,系统显示的主界面如下: ----------------------欢迎使用学生选课系统(教师)------------------------ * 1、教师添加课程 * * 2、教师删除课程 * * 3、教师查看课程 * * 4、教师退出系统 * ----------------------------------------------------------------------------------------请给出具体代码
时间: 2023-08-05 14:06:31 浏览: 102
对于学生帐号文件,可以采用如下格式:
```
学号:姓名:密码:选课1,选课2,选课3...
```
对于教师帐号文件,可以采用如下格式:
```
工号:姓名:密码
```
对于课程文件,可以采用如下格式:
```
课程编号:课程名称:教师姓名
```
以下是一个简单实现的示例代码(仅供参考):
```shell
#!/bin/bash
# 学生帐号文件
students_file="students.txt"
# 教师帐号文件
teachers_file="teachers.txt"
# 课程文件
courses_file="courses.txt"
# 学生身份登录
student_login() {
echo "欢迎使用学生选课系统(学生)"
echo "1、学生选择课程"
echo "2、学生查看信息"
echo "3、学生退出系统"
read -p "请选择操作:" choice
case $choice in
1) student_select_course;;
2) student_view_info;;
3) exit 0;;
*) echo "无效的选项";;
esac
}
# 学生选择课程
student_select_course() {
read -p "请输入要选的课程编号:" course_id
# 检查课程是否存在
course=$(grep "^${course_id}:" "$courses_file")
if [ -z "$course" ]; then
echo "无效的课程编号"
return
fi
# 检查学生是否已选该课程
student_courses=$(grep "^${student_id}:" "$students_file" | cut -d: -f4)
if echo "$student_courses" | grep -qw "$course_id"; then
echo "您已选过该课程"
return
fi
# 更新学生选课信息
sed -i "/^${student_id}:/s/$/:${course_id}/" "$students_file"
echo "选课成功"
}
# 学生查看信息
student_view_info() {
student_info=$(grep "^${student_id}:" "$students_file")
student_name=$(echo "$student_info" | cut -d: -f2)
student_courses=$(echo "$student_info" | cut -d: -f4)
echo "学号:$student_id"
echo "姓名:$student_name"
echo "选课:$student_courses"
}
# 教师身份登录
teacher_login() {
echo "欢迎使用学生选课系统(教师)"
echo "1、教师添加课程"
echo "2、教师删除课程"
echo "3、教师查看课程"
echo "4、教师退出系统"
read -p "请选择操作:" choice
case $choice in
1) teacher_add_course;;
2) teacher_delete_course;;
3) teacher_view_course;;
4) exit 0;;
*) echo "无效的选项";;
esac
}
# 教师添加课程
teacher_add_course() {
read -p "请输入课程编号:" course_id
read -p "请输入课程名称:" course_name
# 检查课程是否已存在
if grep -qw "^${course_id}:" "$courses_file"; then
echo "课程已存在"
return
fi
# 添加课程
echo "${course_id}:${course_name}:${teacher_name}" >> "$courses_file"
echo "添加成功"
}
# 教师删除课程
teacher_delete_course() {
read -p "请输入要删除的课程编号:" course_id
# 检查课程是否存在
if ! grep -qw "^${course_id}:" "$courses_file"; then
echo "无效的课程编号"
return
fi
# 删除课程
sed -i "/^${course_id}:/d" "$courses_file"
echo "删除成功"
}
# 教师查看课程
teacher_view_course() {
echo "课程编号 课程名称 教师姓名"
echo "---------------------------"
cat "$courses_file"
}
# 主程序
while true; do
echo "欢迎使用学生选课系统"
echo "1、学生身份登录系统"
echo "2、教师身份登录系统"
echo "3、退出学生选课系统"
read -p "请选择身份:" identity
case $identity in
1) # 学生身份登录
read -p "请输入学号:" student_id
read -s -p "请输入密码:" student_password
echo
# 验证学生身份
student=$(grep "^${student_id}:" "$students_file")
if [ -z "$student" ]; then
echo "无效的学号或密码"
continue
fi
if [ "$student_password" != "$(echo "$student" | cut -d: -f3)" ]; then
echo "无效的学号或密码"
continue
fi
student_login
;;
2) # 教师身份登录
read -p "请输入工号:" teacher_id
read -s -p "请输入密码:" teacher_password
echo
# 验证教师身份
teacher=$(grep "^${teacher_id}:" "$teachers_file")
if [ -z "$teacher" ]; then
echo "无效的工号或密码"
continue
fi
if [ "$teacher_password" != "$(echo "$teacher" | cut -d: -f3)" ]; then
echo "无效的工号或密码"
continue
fi
teacher_name=$(echo "$teacher" | cut -d: -f2)
teacher_login
;;
3) # 退出系统
exit 0
;;
*) echo "无效的选项";;
esac
done
```
阅读全文