总计架构图:
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实战--客户信息管理系统所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)