【使用Go语言编写一个学生管理系统cmd交互】

学生管理系统cmd交互

package main

import (
	"app/student"
	"fmt"
)

//创建切片 存放学生列表
var studentList = make([]Student.Student, 0, 10)
//fmt.Printf("%v\n %T",studentList,studentList)
func main() {
	var flag bool = true
	for ;flag;{
		//--------------------菜单功能
		fmt.Println("-----------------------")
		fmt.Println("欢迎使用golang学生管理系统")
		fmt.Println("1.添加学生")
		fmt.Println("2.查看学生")
		fmt.Println("3.修改学生")
		fmt.Println("4.删除学生")
		fmt.Println("5.退出")
		fmt.Println("-----------------------")

		//获取输入的值
		var selectValue int
		fmt.Scanln(&selectValue)
		//fmt.Printf("%v", selectValue)

		//操作执行
		switch int(selectValue) {
		case 1:
			fmt.Println("添加学生")
			addStudent()
		case 2:
			fmt.Println("查看学生")
			lookStudent()
		case 3:
			fmt.Println("修改学生")
			updateStudent()
		case 4:
			fmt.Println("删除学生")
			deleteStudent()
		case 5:
			fmt.Println("退出")
			flag=false
		default:
			fmt.Println("输入有误")
		}
	}

}
//-------------添加学生
func addStudent() {
	//创建结构体的实例
	student := Student.Student{}
	fmt.Println("请输入姓名 年龄 学号 性别 专业")
	fmt.Scanln(&student.S_name, &student.S_age, &student.S_id, &student.S_sex, &student.S_speciality)
	fmt.Println(student.S_name, student.S_age, student.S_id, student.S_sex, student.S_speciality)

	studentList = append(studentList, student)
	fmt.Println("添加完成")
	fmt.Println(studentList)
}

//-------------查看学生
func lookStudent() {
	for _,student := range studentList {
		fmt.Println(student.S_name, student.S_age, student.S_id, student.S_sex, student.S_speciality)
	}
}
//-----------修改学生
func updateStudent() {
	fmt.Println("请输入要修改的学生id")
	var id string
	fmt.Scanln(&id)
	//选择学生
	for i, student1 := range studentList {
		if student1.S_id == id {
			fmt.Println("请输入新的信息 姓名 年龄 学号 性别 专业")
			student := Student.Student{}
			fmt.Scanln(&student.S_name, &student.S_age, &student.S_id, &student.S_sex, &student.S_speciality)
			fmt.Println(student.S_name, student.S_age, student.S_id, student.S_sex, student.S_speciality)
			studentList[i] = student
			fmt.Println("修改成功")
			return
		}
	}
	fmt.Println("没找到学生")


}
//------删除学生
func deleteStudent() {
	var id string

	fmt.Print("请输入要删除的学生ID: ")
	fmt.Scanln(&id)

	for i, student := range studentList {
		if student.S_id == id {
			studentList = append(studentList[:i], studentList[i+1:]...)
			fmt.Println("学生删除成功!")
			return
		}
	}

	fmt.Println("找不到该学生!")
}



使用Go语言编写一个学生管理系统:

package main

import (
	"fmt"
	"os"
	"os/exec"
)

type Student struct {
	ID   int
	Name string
	Age  int
}

var students []Student

func main() {
	for {
		showMenu()
		var choice int
		fmt.Print("请输入选项: ")
		fmt.Scanln(&choice)

		switch choice {
		case 1:
			addStudent()
		case 2:
			deleteStudent()
		case 3:
			showAllStudents()
		case 4:
			*****Screen()
		case 5:
			os.Exit(0)
		default:
			fmt.Println("无效的选项,请重新输入!")
		}
	}
}

func showMenu() {
	fmt.Println("学生管理系统")
	fmt.Println("--------------------")
	fmt.Println("1. 添加学生")
	fmt.Println("2. 删除学生")
	fmt.Println("3. 显示所有学生")
	fmt.Println("4. 清屏")
	fmt.Println("5. 退出")
	fmt.Println("--------------------")
}

func addStudent() {
	var id, age int
	var name string

	fmt.Print("请输入学生ID: ")
	fmt.Scanln(&id)
	fmt.Print("请输入学生姓名: ")
	fmt.Scanln(&name)
	fmt.Print("请输入学生年龄: ")
	fmt.Scanln(&age)

	student := Student{
		ID:   id,
		Name: name,
		Age:  age,
	}

	students = append(students, student)
	fmt.Println("学生添加成功!")
}

func deleteStudent() {
	var id int

	fmt.Print("请输入要删除的学生ID: ")
	fmt.Scanln(&id)

	for i, student := range students {
		if student.ID == id {
			students = append(students[:i], students[i+1:]...)
			fmt.Println("学生删除成功!")
			return
		}
	}

	fmt.Println("找不到该学生!")
}

func showAllStudents() {
	fmt.Println("所有学生信息:")
	for _, student := range students {
		fmt.Printf("ID: %d, 姓名: %s, 年龄: %d\n", student.ID, student.Name, student.Age)
	}
}

func *****Screen() {
	cmd := exec.Command("*****") // for Linux/OS X
	if os.Name == "windows" {
		cmd = exec.Command("cmd", "/c", "cls") // for Windows
	}
	cmd.Stdout = os.Stdout
	cmd.Run()
}

这个学生管理系统使用了一个Student结构体来表示学生的信息,使用切片students来存储所有学生的数据。主函数中使用一个无限循环来显示菜单,并根据用户的选择执行相应的操作。你可以根据自己的需求对代码进行修改和扩展。

你可能感兴趣的:(golang,golang,后端)