天天看點

Golang實作簡單學生管理系統:查詢、修改、添加、删除學生資訊

1、定義學生結構體

student.go

type student struct {
	id int
	name string
	age int
}
           

2、定義管理者結構體,其中管理者中存儲着所有學生資訊

type manage struct {
	// 所有學生資訊
	students map[int]student
}
           

3、管理者應該具有學生資訊管理能力:增删改查學生。完整的

manage.go

如下:

type manage struct {
	// 所有學生資訊
	students map[int]student
}

// 判斷學生是否存在
func (this manage) isExist(id int) bool {
	_,exist := this.students[id]
	return exist
}

// 添加學生
func (this manage) addStudent(s student) {
	this.students[s.id]=s
}

// 删除學生
func (this manage) deleteStudent(id int) bool {
	_,exist:=this.students[id]
	// 不存在該學生
	if !exist {
		return false
	}
	delete(this.students,id)
	return true
}

// 查詢單個學生資訊
func (this manage) getStudent(id int) student{
	return this.students[id]
}

// 查詢所有學生
func (this manage) listStudent() map[int]student {
	return this.students
}

// 修改學生資訊
func (this manage) updateStudent(s student) {
	this.students[s.id]=s
}
           

4、定義圖形化界面

import (
	"fmt"
)

// 學生管理系統:實作檢視、添加、修改、删除學生
var m=manage{
	students: map[int]student{},
}

// 系統入口
func Start() {
	for {
		fmt.Println("======歡迎來到學生管理系統======")
		fmt.Println("     1.檢視所有學生資訊     ")
		fmt.Println("     2.檢視某個學生資訊     ")
		fmt.Println("     3.添加學生           ")
		fmt.Println("     4.修改學生資訊        ")
		fmt.Println("     5.删除學生           ")
		fmt.Println("     6.退出              ")
		fmt.Println("============================")
		fmt.Printf("請輸入你要進行的操作:")
		var option int
		fmt.Scanln(&option)	// 擷取輸入值
		switch option {
		case 1:
			getAll()
		case 2:
			getOne()
		case 3:
			addStudent()
		case 4:
			UpdateStudent()
		case 5:
			delStudent()
		case 6:
			return
		default:
			fmt.Println("請輸入合法的操作")
		}
	}
}

// 查找所有學生
func getAll() {
	students:=m.listStudent()
	for _,s := range students {
		fmt.Println("學号:",s.id,"姓名:",s.name,"年齡:",s.age)
	}
}

// 查詢某個學生
func getOne() {
	fmt.Printf("請輸入要查詢的學生ID:")
	var id int
	fmt.Scanln(&id)
	s:=m.getStudent(id)
	fmt.Println("學号:",s.id,"姓名:",s.name,"年齡:",s.age)
}

// 添加學生
func addStudent() {
	var id int
	var name string
	var age int
	fmt.Printf("請輸入學生ID:")
	fmt.Scanln(&id)
	res:=m.isExist(id)
	if res {
		fmt.Println("該學生已存在!不可重複添加")
		return
	}
	fmt.Printf("請輸入學生姓名:")
	fmt.Scanln(&name)
	fmt.Printf("請輸入學生年齡:")
	fmt.Scanln(&age)
	s:=student{
		id:id,
		name:name,
		age:age,
	}
	m.addStudent(s)
	fmt.Println("添加成功!")
}

// 删除學生
func delStudent() {
	var id int
	fmt.Printf("請輸入要删除的學生ID:")
	fmt.Scanln(&id)
	res:=m.deleteStudent(id)
	if res {
		fmt.Println("删除成功")
	} else {
		fmt.Println("不存在該學生!")
	}
}

// 修改學生資訊
func UpdateStudent() {
	var id int
	fmt.Printf("請輸入學生ID:")
	fmt.Scanln(&id)
	s:=m.getStudent(id)
	fmt.Println("學生目前的資訊是=>學号:",s.id,"姓名:",s.name,"年齡:",s.age)
	fmt.Printf("請輸入要修改的學生姓名:")
	fmt.Scanln(&s.name)
	fmt.Printf("請輸入要修改的學生年齡:")
	fmt.Scanln(&s.age)
	m.updateStudent(s)
	fmt.Println("修改成功!")
}



           

執行部分效果如下:

Golang實作簡單學生管理系統:查詢、修改、添加、删除學生資訊