zoukankan      html  css  js  c++  java
  • Golang-demo

    介绍:

      实现对客户管理实现增删查改

    model/customer.go

    package model
    import "fmt"
    type Customer struct {
    	Id int 
    	Name string
    	Gender string
    	Age int
    	Email string
    	Phone string
    }
    func NewCustomer(id int,name string,gander string,age int, email string,phone string) *Customer {
    	return &Customer{
    		Id: id,
    		Name: name,
    		Gender: gander,
    		Age: age,
    		Email: email,
    		Phone: phone,
    	}
    }
    func NewCustomerNoId(name string,gander string,age int, email string,phone string) *Customer {
    	return &Customer{
    		Name: name,
    		Gender: gander,
    		Age: age,
    		Email: email,
    		Phone: phone,
    	}
    }
    func (customer *Customer) GetInfo() string {
    	info := fmt.Sprintf("%v	%v	%v	%v	%v	%v",customer.Id,customer.Name,customer.Gender,customer.Age,customer.Email,customer.Phone)
    	return info
    }
    

    service/customerService.go

    package service
    import (
    	_"fmt"
    	"laurencecustomerManage/model"
    )
    
    type CustomerService struct {
    	customerNum int
    	customers []model.Customer
    }
    func NewCustomerService() *CustomerService {
    	customerService := &CustomerService{}
    	customerService.customerNum = 1
    	customer := model.NewCustomer(customerService.customerNum,"lauren7ce","男",28,"lauren7ce@outlook.com","13538239520")
    	customerService.customers = append(customerService.customers,*customer)
    	return customerService
    }
    func (cs *CustomerService) Delete(id int) bool {
    	index := cs.FindById(id)
    	if index == -1 {
    		return false
    	}
    	//这里等下要来理解理解
    	cs.customers = append(cs.customers[:index],cs.customers[index + 1:]...)
    	return true
    }
    func (cs *CustomerService) FindById(id int) int {
    	index := -1
    	for i, _ := range cs.customers {
    		if cs.customers[i].Id == id {
    			index = i
    			break
    		}
    	}
    	return index
    }
    func (cs *CustomerService) FindByIdModifile(id int) (key int, customer []model.Customer) {
    	index := -1
    	for i, _ := range cs.customers {
    		if cs.customers[i].Id == id {
    			index = i
    			break
    		}
    	}
    	if index != -1 {
    		customer := cs.customers[index:index+1]
    		return index, customer
    	} else {
    		return 0, nil
    	}
    }
    func (this *CustomerService) Updat(index int,customer *model.Customer) bool {
    	this.customers[index] = *customer
    	return true
    }
    func (cs *CustomerService) List() []model.Customer {
    	return cs.customers
    }
    func (cs *CustomerService) Add(customer *model.Customer) bool {
    	cs.customerNum += 1 
    	customer.Id = cs.customerNum
    	cs.customers = append(cs.customers,*customer)
    	return true
    }
    

    view/customerView.go

    package main
    
    import (
    	"fmt"
    	"laurencecustomerManage/service"
    	"laurencecustomerManage/model"
    )
    
    type customerView struct {
    	option string
    	loop bool
    	customerService *service.CustomerService
    }
    func (cv *customerView) list() {
    	customer := cv.customerService.List()
    	fmt.Println("--------------------------------------")
    	fmt.Println("编号	姓名	性别	年龄	邮箱	电话
     ")
    	for i := 0; i < len(customer); i++ {
    		fmt.Println(customer[i].GetInfo())
    	}
    	fmt.Println("--------------------------------------")
    }
    func(cv *customerView) add() {
    	fmt.Println("-------------添加客户-----------------")
    	name := ""
    	fmt.Print("姓名:")
    	fmt.Scanln(&name)
    	for {
    		if name != "" {
    			break
    		}
    		fmt.Print("姓名:")
    		fmt.Scanln(&name)
    	}
    	
    	gender := ""
    	fmt.Print("性别:")
    	fmt.Scanln(&gender)
    	for {
    		if gender != "" {
    			break
    		}
    		fmt.Print("性别:")
    		fmt.Scanln(&gender)
    	}
    	age := 0
    	fmt.Print("年龄:")
    	fmt.Scanln(&age)
    	for {
    		if age != 0 {
    			break
    		}
    		fmt.Print("年龄:")
    		fmt.Scanln(&age)
    	}
    	email := ""
    	fmt.Print("邮箱:")
    	fmt.Scanln(&email)
    	for {
    		if email != "" {
    			break
    		}
    		fmt.Print("邮箱:")
    		fmt.Scanln(&email)
    	}
    	phone := ""
    	fmt.Print("电话:")
    	fmt.Scanln(&phone)
    	for {
    		if phone != "" {
    			break
    		}
    		fmt.Print("电话:")
    		fmt.Scanln(&phone)
    	}
    	//构建Customer
    	customer := model.NewCustomerNoId(name,gender,age,email,phone)
    	cv.customerService.Add(customer)
    	fmt.Println("--------------------------------------")
    }
    func (cv *customerView) delete() {
    	fmt.Print("请输入要删除的ID:")
    	id := -1
    	fmt.Scanln(&id)
    	fmt.Println("确认删除? y/n:")
    	choice := ""
    	for {
    		fmt.Scanln(&choice)
    		if choice == "y" || choice == "n" {
    			break
    		}
    		fmt.Print("输入有误,请重新输入:")
    	}
    	if choice == "y" && cv.customerService.Delete(id) {
    		fmt.Println("删除成功")
    	} else {
    		fmt.Println("删除失败")
    	}
    }
    func (cv *customerView) exit() {
    	fmt.Print("您确定要退出吗? y/n:")
    	choice := ""
    	for {
    		fmt.Scanln(&choice)
    		if choice == "y" || choice == "n" {
    			break
    		}
    		fmt.Print("输入有误,请重新输入:")
    	}
    	if choice == "y" {
    		cv.loop = false
    	}
    }
    func (cv *customerView) modifile() {
    	fmt.Print("请输入要编辑的用户ID: ")
    	id := -1
    	fmt.Scanln(&id)
    	indx, customer := cv.customerService.FindByIdModifile(id)
    	fmt.Println(customer[0])
    	if customer != nil {
    		fmt.Println("--------编辑更新客户信息---------")
    		fmt.Printf("姓名(%v):",customer[0].Name)
    		name := ""
    		fmt.Scanln(&name)
    		fmt.Printf("性别(%v):",customer[0].Gender)
    		gender := ""
    		fmt.Scanln(&gender)
    		fmt.Printf("年龄(%v):",customer[0].Age)
    		age := 0
    		fmt.Scanln(&age)
    		fmt.Printf("电话(%v):",customer[0].Phone)
    		phone := ""
    		fmt.Scanln(&phone)
    		fmt.Printf("邮箱%v):",customer[0].Email)
    		email := ""
    		fmt.Scanln(&email)
    		upCustomer := model.NewCustomer(id,name,gender,age,phone,email)
    		if cv.customerService.Updat(indx,upCustomer) {
    			fmt.Println("更新成功")
    		} else {
    			fmt.Println("更新成功")
    		}
    	}
    }
    func (cv *customerView) mainMenu() {
    	for {
    		fmt.Println("----------家庭收支记账明细------------")
    		fmt.Println("             1 添加客户")
    		fmt.Println("             2 修改客户")
    		fmt.Println("             3 删除客户")
    		fmt.Println("             4 客户列表")
    		fmt.Println("             5 退    出")
    		fmt.Println("             请选择(1-5)")
    		fmt.Println("--------------------------------------")
    		fmt.Print("请选择您要操作的选项:")
    		fmt.Scanln(&cv.option)
    		switch cv.option {
    		case "1":
    			cv.add()
    		case "2":
    			cv.modifile()
    		case "3":
    			cv.delete()
    		case "4":
    			cv.list()
    		case "5":
    			cv.exit()
    		default:
    			fmt.Print("输入有误,请重新输入:")
    		}
    		if !cv.loop {
    			fmt.Println("欢迎下次光临,Goodbay!!!!!!!!!!!!")
    			break
    		}
    	}
    }
    func main() {
    	var cv customerView = customerView{
    		option: "",
    		loop: true,
    	}
    	cv.customerService = service.NewCustomerService()
    	cv.mainMenu()
    }
    

     

    TODO

    1、账号密码登录验证

    2、账户关系关联

  • 相关阅读:
    Postman使用教程
    CAD和ArcGIS转换 矢量配准
    SAP CRM Advanced search和Simple search里Max hit表现行为的差异
    SAP CRM Product simple search的启用步骤
    如何快速定位SAP CRM订单应用(Order Application)错误消息抛出的准确位置
    如何动态修改SAP CRM WebClient UI表格栏的宽度
    如何在SAP CRM WebClient UI里创建web service并使用ABAP消费
    如何处理SAP CRM Web Service错误
    如何使用SAP CRM WebClient UI实现一个类似新浪微博的字数统计器
    如何开启SAP CRM基于WORD模板创建附件的功能
  • 原文地址:https://www.cnblogs.com/Essaycode/p/12677754.html
Copyright © 2011-2022 走看看