文老师(343292019) 10:41:51 学生信息管理系统 id 、name、age、address (id不能重复) 1、添加学生信息 2、修改学生信息 3、删除学生信息 4、查看当前所有学生信息 5、退出 文老师(343292019) 10:41:55 结构体实现
时间: 2023-11-15 22:05:04 浏览: 97
可以使用结构体来实现学生信息管理系统,以下是一个简单的示例代码:
```go
package main
import "fmt"
type student struct {
id int
name string
age int
address string
}
var students []student
func main() {
for {
fmt.Println("1. 添加学生信息")
fmt.Println("2. 修改学生信息")
fmt.Println("3. 删除学生信息")
fmt.Println("4. 查看当前所有学生信息")
fmt.Println("5. 退出")
var choice int
fmt.Print("请输入操作编号:")
fmt.Scanln(&choice)
switch choice {
case 1:
addStudent()
case 2:
updateStudent()
case 3:
deleteStudent()
case 4:
listStudents()
case 5:
return
default:
fmt.Println("无效的操作编号")
}
}
}
func addStudent() {
var s student
fmt.Print("请输入学生ID:")
fmt.Scanln(&s.id)
if findStudent(s.id) != -1 {
fmt.Println("该学生ID已存在")
return
}
fmt.Print("请输入学生姓名:")
fmt.Scanln(&s.name)
fmt.Print("请输入学生年龄:")
fmt.Scanln(&s.age)
fmt.Print("请输入学生地址:")
fmt.Scanln(&s.address)
students = append(students, s)
fmt.Println("添加成功")
}
func updateStudent() {
var id int
fmt.Print("请输入要修改的学生ID:")
fmt.Scanln(&id)
index := findStudent(id)
if index == -1 {
fmt.Println("未找到该学生信息")
return
}
var s student
s.id = id
fmt.Print("请输入学生姓名:")
fmt.Scanln(&s.name)
fmt.Print("请输入学生年龄:")
fmt.Scanln(&s.age)
fmt.Print("请输入学生地址:")
fmt.Scanln(&s.address)
students[index] = s
fmt.Println("修改成功")
}
func deleteStudent() {
var id int
fmt.Print("请输入要删除的学生ID:")
fmt.Scanln(&id)
index := findStudent(id)
if index == -1 {
fmt.Println("未找到该学生信息")
return
}
students = append(students[:index], students[index+1:]...)
fmt.Println("删除成功")
}
func listStudents() {
if len(students) == 0 {
fmt.Println("当前无学生信息")
return
}
fmt.Printf("%-10s%-20s%-10s%-30s\n", "ID", "姓名", "年龄", "地址")
for _, s := range students {
fmt.Printf("%-10d%-20s%-10d%-30s\n", s.id, s.name, s.age, s.address)
}
}
func findStudent(id int) int {
for i, s := range students {
if s.id == id {
return i
}
}
return -1
}
```
这个示例代码定义了一个名为“student”的结构体,包含四个成员变量:一个整型的“id”、一个字符串类型的“name”、一个整型的“age”和一个字符串类型的“address”。它还定义了一个全局变量“students”,用于存储所有学生信息。
在主函数中,程序不断循环,显示菜单供用户选择操作。用户可以选择添加、修改、删除或查看学生信息。每个操作都有对应的函数实现。其中,添加学生信息需要检查学生ID是否重复,如果重复则不能添加。修改和删除学生信息需要先根据学生ID查找对应的学生信息,如果未找到则提示用户未找到该学生信息。
在添加、修改和删除学生信息时,程序会通过标准输入从用户获取学生信息。在查看学生信息时,程序会遍历“students”变量并输出所有学生信息。
这个示例代码只是一个简单的实现,实际应用中可能需要考虑更多的情况,例如输入验证、数据持久化等。
阅读全文