golang实战--客户信息管理系统

golang实战--客户信息管理系统,第1张

概述总计架构图: model/customer.go package model import ( "fmt" ) type Customer struct { Id int Name

总计架构图:

 

model/customer.go

package modelimport (    "fmt")type Customer struct {    ID     int    name   string    Gender     Age        Phone      Email  }func NewCustomer(ID int,name string,gender ) Customer {    return Customer{        ID:     ID,name:   name,Gender: gender,Age:    age,Phone:  phone,Email:  email,}}    func NewCustomer2(name  Customer{        name:   name,}}func (c Customer) GetInfo()  {    info := fmt.Sprintf(%v\t%v\t%v\t%v\t%v\t%v\t,c.ID,c.name,c.Gender,c.Age,c.Phone,c.Email)     info}

service/customerService.go

package serviceimport (    go_code/project_6/model)//增删查改type CustomerService  {    customers  []model.Customer    customerID }func NewCustomerService() *CustomerService {    customerService := &CustomerService{}    customerService.customerID = 1    customer := model.NewCustomer(1,张三",1)">男20,1)">15927776543347688971@qq.com)    customerService.customers = append(customerService.customers,customer)     customerService}func (cs *CustomerService) List() []model.Customer {     cs.customers}func (cs *CustomerService) Add(customer model.Customer) bool {    确定一个添加ID的规则,就是添加的顺序    cs.customerID++    customer.ID = cs.customerID    cs.customers = append(cs.customers,1)">return true}根据ID查找客户在切片中的对应下标,如果没有则返回-1func (cs *CustomerService) FindByID(ID int)  {    index := -1    for i := 0; i < len(cs.customers); i++ {        if cs.customers[i].ID == ID {            找到了            index = i        }    }     index}根据ID删除客户func (cs *CustomerService) Delete(ID  {    index := cs.FindByID(ID)    if index == -false    }    从切片中删除元素    cs.customers = append(cs.customers[:index],cs.customers[index+:]...)    }func (cs *CustomerService) GetinfoByID(ID ) model.Customer {    i := ID -  cs.customers[i]}根据ID修改客户信息func (cs *CustomerService) Update(ID  ID {            cs.customers[i].name = customer.name            cs.customers[i].Gender = customer.Gender            cs.customers[i].Age = customer.Age            cs.customers[i].Phone = customer.Phone            cs.customers[i].Email = customer.Email        }    }    }

vIEw/customerVIEw.go

package mainimport (    "    go_code/project_6/service)type customerVIEw 定义必要的字段    key             string 接受用户输入    loop            bool   用于循环判断    customerService *service.CustomerService}func (cv *customerVIEw) mainMenu() {    for {        fmt.Println(------------------客户信息管理软件---------------------)        fmt.Println(                    1.添加客户                    2.修改客户                    3.删除客户                    4.客户列表                    5.退   出)        fmt.Print(请选择1-5:)        fmt.Scanln(&cv.key)        switch cv.key {        case 1:            cv.add()        2:            cv.update()        3:            cv.delete()        4:            cv.List()        5:            cv.logout()        default:            fmt.Println(你的输入有误,请重新输入)        }        if !cv.loop {            break        }    }    fmt.Println(你已退出了客户关系管理系统。。。)}func (cv *customerVIEw) List() {    首先获取当前客户所有信息    customers := cv.customerService.List()    fmt.Println(--------------------客户列表--------------------------)    fmt.Println(编号\t姓名\t性别\t年龄\t电话\t\t邮箱)    0; i < len(customers); i++ {        fmt.Println(customers[i].GetInfo())    }    fmt.Println(------------------客户列表完成------------------------customerVIEw) add() {    fmt.Println(--------------------添加客户--------------------------)    fmt.Print(姓名:)    name := ""    fmt.Scanln(&name)    fmt.Print(性别:)    gender := gender)    fmt.Print(年龄:)    age := 0age)    fmt.Print(电话:)    phone := phone)    fmt.Print(邮箱:)    email := email)    customer := model.NewCustomer2(name,gender,age,phone,email)    if cv.customerService.Add(customer) {        fmt.Println(--------------------添加成功--------------------------)    } else--------------------添加失败--------------------------)    }    fmt.Println(--------------------添加完成--------------------------)}func (cv *customerVIEw) () {    fmt.Println(--------------------删除客户--------------------------请选择要删除客户的客户编号(-1退出):)    ID := -ID)    if ID == -    }    fmt.Println(确认是否删除?y/n)    choice := choice)    if choice == y" || choice == n cv.customerService.Delete(ID) {            fmt.Println(--------------------删除完成--------------------------)        }  {            fmt.Println(-----------------输入ID不存在,请重新输入--------------)        }    }}func (cv *customerVIEw) update() {    fmt.Print(请输入要修改的ID:)    ID := if cv.customerService.FindByID(ID) != - {        customer := cv.customerService.GetinfoByID(ID)        fmt.Printf(姓名(%v:)        fmt.Scanln(&name)        fmt.Printf(性别(%v):gender)        fmt.Printf(年龄(%v):age)        fmt.Printf(电话(%v):phone)        fmt.Printf(邮箱(%v):email)        customer2 :=)    }}func (cv *customerVIEw) logout() {    fmt.Println(确认是否退出?y/n {        fmt.Scanln(&if cv.key == " || cv.key ==  {                    }        fmt.Println(你的输入有误,请从新输入)    }     {        cv.loop =     }}func main() {    var cv customerVIEw    cv.loop =     cv.customerService = service.NewCustomerService()    cv.mainMenu()}

由于代码都比较基础,就不一一介绍了,很容易看懂。我们运行程序:

先选择4:我们已经初始化了一条数据。

再选择1添加一条数据:

再选择4查看一下:

数据确实已经添加成功,我们再选择3,删除一条数据:

 再查看一下:

确实已经删除,然后我们选择2修改数据:

再查看一下:

已经修改了,最后我们选择5进行退出:

总结:通过golang实现的客户信息管理系统。学习一门语言最好的方式就是通过一个实际的例子。通过这个实例,不仅可以进一步巩固golang的相关基础技能,同时,也能让我们加强自己的逻辑能力,从一步步的调用函数,掌握参数传递和接收技巧。

总结

以上是内存溢出为你收集整理的golang实战--客户信息管理系统全部内容,希望文章能够帮你解决golang实战--客户信息管理系统所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存