文章目录
前言
最近工作任务较少,闲着无聊,在网上看了一些关于go的文档。准备学一点go基础,为后面转GO做准备。
main.go
package main
import (
"demo/SMS/src"
"fmt"
"os"
)
func main() {
stf := src.StaffMgs{
Mgs: make(map[string]src.Staff),
}
for {
fmt.Printf(`
-----------------------------------------------
-------------欢迎使用员工管理系统---------------
-----------------------------------------------
`)
// fmt.Printf("欢迎使用员工管理系统\n")
fmt.Println(`
1.查看所有员工
2.增加员工
3.删除员工
4.退出系统
`)
var chioce int
fmt.Scanln(&chioce)
fmt.Printf("你选择了%d功能\n", chioce)
switch chioce {
case 1:
stf.ShowStaff()
case 2:
stf.AddStaff()
case 3:
stf.DelStaff()
case 4:
os.Exit(1)
default:
fmt.Println("不要捣蛋!!!")
}
}
}
src/src.go
package src
import (
"fmt"
"sort"
)
type Staff struct {
id int
name string
age int
salary int
position string
}
type StaffMgs struct {
Mgs map[string]Staff
}
// 查看所有员工
func (s StaffMgs) ShowStaff() {
// 添加排序功能
staffId := make([]string, 0, len(s.Mgs))
for i := range s.Mgs {
staffId = append(staffId, i)
}
sort.Strings(staffId)
for i, v := range staffId {
fmt.Printf("序号:%d 工号:%v 姓名:%v 年龄:%v 薪水:%v 职位:%v\n", i+1, s.Mgs[v].id, s.Mgs[v].name, s.Mgs[v].age, s.Mgs[v].salary, s.Mgs[v].position)
}
}
// 添加员工
func (s StaffMgs) AddStaff() {
var (
newid int
newname string
newage int
newsalary int
newposition string
)
fmt.Print("请输入要添加的员工id:")
fmt.Scanln(&newid)
fmt.Print("请输入要添加的员工姓名:")
fmt.Scanln(&newname)
fmt.Print("请输入要添加的员工年龄:")
fmt.Scanln(&newage)
fmt.Print("请输入要添加的员工薪水:")
fmt.Scanln(&newsalary)
fmt.Print("请输入要添加的员工职位:")
fmt.Scanln(&newposition)
strID := fmt.Sprintf("%d", newid)
_, v := s.Mgs[strID] // v值为ture或flase
if v { // v值为空为false,不为空为true
fmt.Printf("%v已存在\n", strID)
} else {
newstaff := Staff{
id: newid,
name: newname,
age: newage,
salary: newsalary,
position: newposition,
}
// StaffMgs接受一个staff类型的值,所以要先创建一个staff类型的对象再赋值
s.Mgs[strID] = newstaff
}
}
// 删除员工
func (s StaffMgs) DelStaff() {
var newid int64
fmt.Println("请输入要删除的员工id:")
fmt.Scanln(&newid)
strID := fmt.Sprintf("%d", newid)
_, v := s.Mgs[strID] // v值为ture或flase
if !v { // v值为空为true,不为空为false
fmt.Printf("%v不存在\n", strID)
} else {
delete(s.Mgs, strID)
}
}