结构体学生管理系统(golang)

// 1、使用“面向对象”的思维方式编写一个学生信息管理系统。
// 2、学生有id、姓名、年龄、分数等信息
// 3、程序提供展示学生列表、添加学生、编辑学生信息、删除学生等功能
package main

import (
	"fmt"
	"os"
)

type student struct {
	id   int
	name string
}

var studentList = make(map[int]*student)

func newStudent(id int, name string) *student {
	return &student{
		id,
		name,
	}
}
func (e *student) edistuent(name string) {
	e.name = name
}
func listStuent() {
	if len(studentList) == 0 {
		fmt.Println("学生列表为空")
	} else {
		for i, v := range studentList {
			fmt.Printf("学号:%d 姓名:%s\n", i, v.name)
		}
	}

}
func addStudent() {
	var key int
	var name string
	fmt.Printf("请输入学生学号:")
	fmt.Scanln(&key)
	_, ok := studentList[key]
	have := ok
	for have {
		fmt.Println("学号已经存在")
		fmt.Printf("请输入学生学号:")
		fmt.Scanln(&key)
		_, ok := studentList[key]
		have = ok
	}
	fmt.Printf("请输入学生姓名:")
	fmt.Scanln(&name)
	newstudent := newStudent(key, name)
	studentList[key] = newstudent
}
func editStudent() {
	var key int
	fmt.Printf("请输入需要修改学生学号:")
	fmt.Scanln(&key)
	_, ok := studentList[key]
	if ok {
		var name string
		fmt.Printf("请输入学生姓名:")
		fmt.Scanln(&name)
		studentList[key].edistuent(name)
		fmt.Printf("修改成功\n")
		listStuent()
	} else {
		fmt.Println("学号不存在")
	}
}
func deleteStudent() {
	var key int
	fmt.Printf("请输入需要删除学生的学号:")
	fmt.Scanln(&key)
	_, ok := studentList[key]
	if ok {
		delete(studentList, key)
		listStuent()
		fmt.Println("删除成功")
	} else {
		fmt.Printf("学号不存在")
	}
}
func main() {
	fmt.Println("欢迎进入学生管理系统")
	for {

		fmt.Println(`
			1、展示学生列表
			2、添加学生
			3、编辑学生信息
			4、删除学生
			5、退出
		`)
		fmt.Printf("请选择你的操作:")
		var input int
		fmt.Scanln(&input)
		fmt.Printf("你选择的操作是:%d\n", input)
		switch input {
		case 1:
			listStuent()
		case 2:
			addStudent()
		case 3:
			editStudent()
		case 4:
			deleteStudent()
		case 5:
			os.Exit(1)
		default:
			fmt.Println("滚")
		}
	}

}

package main

import (
	"fmt"
	"os"
)

type student struct {
	id   int
	name string
}

func newstudent(id int, name string) *student {
	return &student{
		id,
		name,
	}
}

type studentAdmin struct {
	studentList map[int]*student
}

var studentSystem studentAdmin

func (s *studentAdmin) getStudentList() {
	if len(s.studentList) == 0 {
		fmt.Println("学生列表为空")
	} else {
		for i, v := range s.studentList {
			fmt.Printf("学号:%d 姓名:%s\n", i, v.name)
		}
	}

}
func (s *studentAdmin) addStudent() {
	var key int
	var name string
	fmt.Printf("请输入学生学号:")
	fmt.Scanln(&key)
	_, ok := s.studentList[key]
	have := ok
	for have {
		fmt.Println("学号已经存在")
		fmt.Printf("请输入学生学号:")
		fmt.Scanln(&key)
		_, ok := s.studentList[key]
		have = ok
	}
	fmt.Printf("请输入学生姓名:")
	fmt.Scanln(&name)
	newstudent := newstudent(key, name)
	s.studentList[key] = newstudent
}
func (s *studentAdmin) editStudent() {
	var key int
	fmt.Printf("请输入需要修改学生学号:")
	fmt.Scanln(&key)
	_, ok := s.studentList[key]
	if ok {
		var name string
		fmt.Printf("请输入学生姓名:")
		fmt.Scanln(&name)
		s.studentList[key].name = name
		fmt.Printf("修改成功\n")
		s.getStudentList()
	} else {
		fmt.Println("学号不存在")
	}
}
func (s *studentAdmin) deleteStudent() {
	var key int
	fmt.Printf("请输入需要删除学生的学号:")
	fmt.Scanln(&key)
	_, ok := s.studentList[key]
	if ok {
		delete(s.studentList, key)
		s.getStudentList()
		fmt.Println("删除成功")
	} else {
		fmt.Printf("学号不存在")
	}
}
func main() {
	studentSystem.studentList = make(map[int]*student)
	for {

		fmt.Println(`
			1、展示学生列表
			2、添加学生
			3、编辑学生信息
			4、删除学生
			5、退出
		`)
		fmt.Printf("请选择你的操作:")
		var input int
		fmt.Scanln(&input)
		fmt.Printf("你选择的操作是:%d\n", input)
		switch input {
		case 1:
			studentSystem.getStudentList()
		case 2:
			studentSystem.addStudent()
		case 3:
			studentSystem.editStudent()
		case 4:
			studentSystem.deleteStudent()
		case 5:
			os.Exit(1)
		default:
			fmt.Println("滚")
		}
	}
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sillyyijia

互联网+乞讨

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值