go语言学生管理系统
时间: 2023-11-30 17:43:25 浏览: 87
学生的管理系统
以下是一个使用Go语言实现的学生管理系统的示例代码,包括学生信息的增删改查和成绩排序功能:
```go
package main
import (
"bufio"
"fmt"
"os"
"sort"
"strconv"
"strings"
)
type Student struct {
id int
name string
score int
}
var studentList []Student
func main() {
for {
fmt.Println("请选择操作:")
fmt.Println("1. 添加学生信息")
fmt.Println("2. 删除学生信息")
fmt.Println("3. 修改学生信息")
fmt.Println("4. 查询学生信息")
fmt.Println("5. 成绩排序")
fmt.Println("6. 退出")
var choice int
fmt.Scanln(&choice)
switch choice {
case 1:
addStudent()
case 2:
deleteStudent()
case 3:
modifyStudent()
case 4:
queryStudent()
case 5:
sortStudent()
case 6:
os.Exit(0)
default:
fmt.Println("无效的选择,请重新输入")
}
}
}
func addStudent() {
fmt.Println("请输入学生信息,格式为:学号 姓名 成绩")
scanner := bufio.NewScanner(os.Stdin)
if scanner.Scan() {
line := scanner.Text()
fields := strings.Fields(line)
if len(fields) != 3 {
fmt.Println("输入格式错误,请重新输入")
return
}
id, err := strconv.Atoi(fields[0])
if err != nil {
fmt.Println("学号必须为数字,请重新输入")
return
}
score, err := strconv.Atoi(fields[2])
if err != nil {
fmt.Println("成绩必须为数字,请重新输入")
return
}
student := Student{id, fields[1], score}
studentList = append(studentList, student)
fmt.Println("添加成功")
}
}
func deleteStudent() {
fmt.Println("请输入要删除的学生学号")
var id int
fmt.Scanln(&id)
for i, student := range studentList {
if student.id == id {
studentList = append(studentList[:i], studentList[i+1:]...)
fmt.Println("删除成功")
return
}
}
fmt.Println("未找到该学生")
}
func modifyStudent() {
fmt.Println("请输入要修改的学生学号")
var id int
fmt.Scanln(&id)
for i, student := range studentList {
if student.id == id {
fmt.Println("请输入修改后的学生信息,格式为:姓名 成绩")
scanner := bufio.NewScanner(os.Stdin)
if scanner.Scan() {
line := scanner.Text()
fields := strings.Fields(line)
if len(fields) != 2 {
fmt.Println("输入格式错误,请重新输入")
return
}
score, err := strconv.Atoi(fields[1])
if err != nil {
fmt.Println("成绩必须为数字,请重新输入")
return
}
student.name = fields[0]
student.score = score
studentList[i] = student
fmt.Println("修改成功")
}
return
}
}
fmt.Println("未找到该学生")
}
func queryStudent() {
fmt.Println("请输入要查询的学生学号")
var id int
fmt.Scanln(&id)
for _, student := range studentList {
if student.id == id {
fmt.Printf("学号:%d,姓名:%s,成绩:%d\n", student.id, student.name, student.score)
return
}
}
fmt.Println("未找到该学生")
}
func sortStudent() {
sort.Slice(studentList, func(i, j int) bool {
return studentList[i].score > studentList[j].score
})
fmt.Println("排序结果:")
for _, student := range studentList {
fmt.Printf("学号:%d,姓名:%s,成绩:%d\n", student.id, student.name, student.score)
}
}
```
阅读全文