go语言 学生管理系统 简化版

go语言 学生管理系统 简化版,第1张

概述packagemainimport( "encoding/json" "fmt" "io/ioutil" "os")typeStudentstruct{ IDint Ageint Scoreint Namestring}typeClassstruct{ IDint Studentmap[int]*Student}func(c*Cla
package mainimport (	"enCoding/Json"	"fmt"	"io/IoUtil"	"os")type Student struct {	ID    int	Age   int	score int	name  string}type Class struct {	ID      int	Student map[int]*Student}func (c *Class) showStudent() {	fmt.Printf("\t%s\t%s\t%s\t%s\n", "ID", "姓名", "年龄", "分数")	sortID := make([]int, 0)	for k := range c.Student {		sortID = append(sortID, k)	}	for _, v := range sortID {		studentMsg := c.Student[v]		fmt.Println(studentMsg)		fmt.Printf("\t%s\t%s\t%s\t%s\n", studentMsg.ID, studentMsg.name, studentMsg.Age, studentMsg.score)	}}func (c *Class) addStudent() {	var ID, age, score int	var name string	fmt.Print("请输入ID:")	_, err := fmt.Scan(&ID)	fmt.Print("请输入name:")	_, err = fmt.Scan(&name)	fmt.Print("请输入age:")	_, err = fmt.Scan(&age)	fmt.Print("请输入score:")	_, err = fmt.Scan(&score)	if err != nil {		fmt.Println("输入有无,保存信息错误")	}	_, isSave := c.Student[ID]	if isSave {		fmt.Println("学生ID已存在,请重新输入")	}	student := &Student{		ID:    ID,		name:  name,		Age:   age,		score: score,	}	// 将输入内容存入内存	c.ID = ID	c.Student[ID] = student	// 将map类型转换成string类型,并写入txt文件	dataType, _ := Json.Marshal(*student)	dataString := string(dataType)	writefile(dataString+"\n")	fmt.Println("添加成功")	fmt.Println(&c)}func (c *Class) delStudent() {	fmt.Println("请输入用户ID:")	var ID int	_, err := fmt.Scan(&ID)	if err != nil {		fmt.Println("输入有误,请重新输入")	}	_, isSave := c.Student[ID]	if !isSave {		fmt.Println("用户ID不存在")		return	}	delete(c.Student, ID)	fmt.Println("删除成功")}func (c *Class) updateStudent() {	fmt.Println("请输入用户ID:")	var ID int	_, err := fmt.Scan(&ID)	if err != nil {		fmt.Println("输入有误")		return	}	_, isSave := c.Student[ID]	if !isSave {		fmt.Println("用户不存在,请重新输入")		return	}	var name string	var age int	var score int	fmt.Println("请输入新的name:")	_, err = fmt.Scan(&name)	fmt.Println("请输入新的age:")	_, err = fmt.Scan(&age)	fmt.Println("请输入新的score:")	_, err = fmt.Scan(&score)	student := &Student{		ID:    ID,		name:  name,		Age:   age,		score: score,	}	c.Student[ID] = student	fmt.Println("修改成功")}func readfile() {	content, err := IoUtil.Readfile("./studentMsg.txt")	if err != nil {		fmt.Println("read file Failed, err:", err)		return	}	fmt.Println("文件内容如下:")	fmt.Print(string(content))}func writefile(name string) {	file, err := os.Openfile("./studentMsg.txt", os.O_CREATE|os.O_Trunc|os.O_WRONLY, 0666)	if err != nil {		fmt.Println("open file Failed, err:", err)		return	}	defer file.Close()	file.Write([]byte(name+"\n"))       //写入字节切片数据	//file.WriteString(name+"\n") //直接写入字符串数据	fmt.Println("开始写入文件")}func main() {	c := &Class{}	c.Student = make(map[int]*Student, 50)	for {		fmt.Println("学生管理系统:")		fmt.Println()		fmt.Println("1.查看学生 \n2.添加学生 \n3.删除学生 \n4.修改学生信息 \n5.查看文件 \n6.退出登陆")		fmt.Println()		fmt.Print("请输入选项: ")		var num int		_, err := fmt.Scan(&num)		if err != nil {			fmt.Println("输入有无,请重新输入")		}		switch num {		case 1:			c.showStudent()		case 2:			c.addStudent()		case 3:			c.delStudent()		case 4:			c.updateStudent()		case 5:			readfile()		case 6:			goto goHome		default:			fmt.Println("输入有无,请重新输入")			continue		}	}goHome:	fmt.Println("退出系统")}
总结

以上是内存溢出为你收集整理的go语言 学生管理系统 简化版全部内容,希望文章能够帮你解决go语言 学生管理系统 简化版所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1241764.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存