答案:使用Golang通过定义Student结构体实现增删改查,利用切片存储数据,结合tablewriter库以表格形式输出学生成绩信息,包含ID、姓名、各科成绩及平均分,通过命令行交互完成操作。

用Golang实现一个学生成绩管理系统,重点在于数据的增删改查(CRUD)操作和结果的可视化输出,比如以表格形式展示。Golang本身没有内置数据库或UI框架,但可以通过标准库和第三方包高效完成这些任务。下面一步步说明如何构建这样一个系统。
首先定义一个Student结构体,包含学号、姓名、各科成绩等字段。使用切片(slice)作为临时数据存储,适合小型应用或演示。
示例代码:
type Student struct {
ID int
Name string
Math float64
English float64
Science float64
}
var students []Student
var nextID = 1
这里用全局变量students保存所有学生数据,nextID自动递增分配唯一ID。
立即学习“go语言免费学习笔记(深入)”;
围绕Student结构体实现四个核心操作:
例如添加学生的函数:
func addStudent(name string, math, english, science float64) {
student := Student{
ID: nextID,
Name: name,
Math: math,
English: english,
Science: science,
}
students = append(students, student)
nextID++
}
删除操作需遍历查找索引并用切片操作移除:
func deleteStudent(id int) bool {
for i, s := range students {
if s.ID == id {
students = append(students[:i], students[i+1:]...)
return true
}
}
return false
}
Golang标准库不提供表格渲染功能,推荐使用github.com/olekukonko/tablewriter来格式化输出。
安装方式:
go get github.com/olekukonko/tablewriter
将学生数据输出为表格:
func printStudents() {
table := tablewriter.NewWriter(os.Stdout)
table.SetHeader([]string{"ID", "Name", "Math", "English", "Science", "Average"})
for _, s := range students {
avg := (s.Math + s.English + s.Science) / 3
table.Append([]string{
strconv.Itoa(s.ID),
s.Name,
fmt.Sprintf("%.2f", s.Math),
fmt.Sprintf("%.2f", s.English),
fmt.Sprintf("%.2f", s.Science),
fmt.Sprintf("%.2f", avg),
})
}
table.Render()
}
运行后会在终端打印出对齐美观的表格,包含每名学生的平均分。
使用fmt.Scanln或bufio.Scanner读取用户输入,驱动CRUD操作。
简单菜单示例:
func main() {
for {
fmt.Println("\n1. 添加学生")
fmt.Println("2. 查看所有学生")
fmt.Println("3. 更新学生")
fmt.Println("4. 删除学生")
fmt.Println("5. 退出")
fmt.Print("选择操作: ")
var choice int
fmt.Scanln(&choice)
switch choice {
case 1:
// 输入信息并调用addStudent
case 2:
printStudents()
case 5:
return
default:
fmt.Println("无效选项")
}
}
}
基本上就这些。通过结构体管理数据,手动实现CRUD逻辑,配合tablewriter输出表格,就能快速搭建一个命令行版学生成绩管理系统。后续可扩展文件持久化(如JSON)或接入SQLite数据库提升实用性。
以上就是如何用Golang实现学生成绩管理系统_Golang数据增删改查与表格生成的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号