GO员工管理系统

前言

最近工作任务较少,闲着无聊,在网上看了一些关于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)
	}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值