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、账户关系关联

  • 相关阅读:
    Oracle EXPDP/IMPDP示例
    Oracle修改日志归档模式、归档路径以及空间大小的相关测试
    CentOS6.8 安装 Oracle11.2.0.4
    安装ORACLE时 各Linux版本下载地址
    Oracle数据库导入报ORA-39083处理
    oracle跨平台数据迁移 expdp/impdp 字符集问题 导致ORA-02374 ORA-12899 ORA-02372
    ASM路径问题导致数据库不能正常启动 -- 报:ORA-03113: end-of-file on communication channel
    oralce11g RAC 启动后 CRS-0184: Cannot communicate with the CRS daemon.
    Oracle 11g安装时针对不同操作系统所需的依赖包查询地址
    关于oracle RAC心跳线采用直连 还是交换机连接的建议
  • 原文地址:https://www.cnblogs.com/Essaycode/p/12677754.html
Copyright © 2011-2022 走看看