用bash循环编写学生信息管理系统
时间: 2023-07-01 11:16:58 浏览: 121
编写学生信息管理系统
好的,我可以为你提供一个简单的学生信息管理系统的bash脚本。这个脚本可以用来添加、删除、查看和修改学生信息。
首先,我们需要定义一个包含学生信息的数组:
```
students=("John Smith" "Jane Doe" "Bob Johnson")
```
这个数组包含了三个学生的姓名。每个学生的信息可以使用一个关联数组来表示:
```
declare -A john=( [name]="John Smith" [age]=18 [gender]="male" [major]="Computer Science" )
declare -A jane=( [name]="Jane Doe" [age]=19 [gender]="female" [major]="Mathematics" )
declare -A bob=( [name]="Bob Johnson" [age]=20 [gender]="male" [major]="Physics" )
```
这些关联数组分别表示 John Smith、Jane Doe 和 Bob Johnson 的信息。
接下来,我们可以编写一些函数来执行不同的操作。例如,我们可以编写一个函数来添加学生信息:
```
function add_student {
read -p "Enter student name: " name
read -p "Enter student age: " age
read -p "Enter student gender: " gender
read -p "Enter student major: " major
students+=("$name")
declare -A student=( [name]="$name" [age]=$age [gender]="$gender" [major]="$major" )
eval "${name,,}=\${student[@]}"
echo "Student added successfully."
}
```
这个函数会提示用户输入学生的姓名、年龄、性别和专业,并将这些信息存储在一个新的关联数组中。然后,它会将学生的姓名添加到学生数组中,并将关联数组添加到全局变量中。
我们还可以编写一个函数来删除学生信息:
```
function delete_student {
read -p "Enter student name: " name
for i in "${!students[@]}"; do
if [[ "${students[$i]}" = "$name" ]]; then
unset "${name,,}"
unset "students[$i]"
students=("${students[@]}")
echo "Student deleted successfully."
return
fi
done
echo "Student not found."
}
```
这个函数会提示用户输入要删除的学生的姓名。然后,它会遍历学生数组,查找该姓名。如果找到,它会从全局变量中删除对应的关联数组,并将学生的姓名从学生数组中删除。
我们还可以编写函数来查看所有学生的信息或修改特定学生的信息。这些函数的实现方式与上述函数类似,不再赘述。
最后,我们可以编写一个主函数来处理用户输入:
```
function main {
while true; do
echo "1. Add student"
echo "2. Delete student"
echo "3. View student information"
echo "4. Modify student information"
echo "5. Exit"
read -p "Enter your choice: " choice
case $choice in
1) add_student;;
2) delete_student;;
3) view_student;;
4) modify_student;;
5) exit;;
*) echo "Invalid choice.";;
esac
done
}
main
```
这个函数会显示一个菜单,让用户选择要执行的操作。然后,它会调用相应的函数来处理用户的选择。
这是一个简单的学生信息管理系统的bash脚本。它可以让用户添加、删除、查看和修改学生信息。当然,这只是一个示例脚本,你可以根据自己的需求来编写更复杂的脚本。
阅读全文