Golang学生成绩管理系统

package main

import (
	"fmt"
	"os"
)

type student struct {
	name0        string
	num0, score0 int
}

func newStudent(name string, num, score int) *student { //模拟student的构造函数
	return &student{
		name0:  name,
		num0:   num,
		score0: score,
	}
}

var studentInf = make([]*student, 0, 100)

func userInput() *student {
	var (
		name       string
		num, score int
	)
	fmt.Print("请输入学生学号:")
	fmt.Scanln(&num)

	fmt.Print("请输入学生姓名:")
	fmt.Scanln(&name)

	fmt.Print("请输入学生成绩:")
	fmt.Scanln(&score)
	return newStudent(name, num, score)
}

func addInf() {
	ptr := userInput() //ptr类型是*student
	studentInf = append(studentInf, ptr)
	fmt.Println("添加信息成功!")
	fmt.Printf("您添加信息如下:\n姓名:%v\t学号:%v\t成绩:%v\n", ptr.name0, ptr.num0, ptr.score0)
	menu()
}

func printInf() {
	if len(studentInf) == 0 {
		fmt.Println("没有任何成绩信息")
		menu()
	}
	for _, val := range studentInf {
		fmt.Printf("%#v\n", *val)
	}
	menu()
}

func changeInf() {
	var (
		num int
	)
	fmt.Print("请输入想要修改的学生学号:")
	fmt.Scanln(&num)
	var finish bool
	for index, val := range studentInf {
		if val.num0 == num {
			ptr := userInput()
			studentInf[index] = ptr
			finish = true
			fmt.Printf("修改成功!姓名:%s\t学号:%d\t成绩:%d\n", ptr.name0, ptr.num0, ptr.score0)
			menu()
		}
	}
	if !finish {
		fmt.Println("输入的学号不存在")
	}
}
func menu() {
	fmt.Printf("--------------------学生成绩管理系统--------------------\n")
	fmt.Printf("0.添加学生成绩                             1.修改学生成绩\n")
	fmt.Printf("2.查看学生成绩				   3.退出系统\n")

	var choose int
	fmt.Scanln(&choose)
	switch choose {
	case 0:
		addInf()
	case 1:
		changeInf()
	case 2:
		printInf()
	case 3:
		fmt.Println("退出系统!")
		os.Exit(0)
	default:
		fmt.Println("输入有误,请重新选择:")
		menu()
	}
}

func main() {
	menu()
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值