diff --git a/golang/go.mod b/golang/go.mod index d1cc943c..5cecc1f3 100644 --- a/golang/go.mod +++ b/golang/go.mod @@ -1,5 +1,3 @@ module isuct.ru/informatics2022 go 1.16 - -require github.com/stretchr/testify v1.8.1 diff --git a/golang/go.sum b/golang/go.sum index 2ec90f70..e69de29b 100644 --- a/golang/go.sum +++ b/golang/go.sum @@ -1,17 +0,0 @@ -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/golang/lab7/lab7.go b/golang/lab7/lab7.go new file mode 100644 index 00000000..39170fde --- /dev/null +++ b/golang/lab7/lab7.go @@ -0,0 +1,42 @@ +package lab7 + +import "fmt" + +func Lab7() { + phone1 := Phone{ + Size: 100, + Model: "Iphone", + Price: 10000, + } + PC1 := PC{ + Model: "Model123", + Price: 5000, + RAM: 30, + } + Laptop1 := Laptop{ + Model: "ASUS", + Price: 3000, + ROM: 20, + } + ProductsList := []Product{&phone1, &PC1, &Laptop1} + defoultCost := GetTotalPrice(ProductsList) + fmt.Println("За товары вы заплатите:", defoultCost) + for _, product := range ProductsList { + product.SetDiscount(30) + } + + defoultCost = GetTotalPrice(ProductsList) + fmt.Println("С учетом всех скидок вы заплатите:", defoultCost) + phone1.SetSize(660) + PC1.SetRAM(50) + Laptop1.SetROM(106) +} + +func GetTotalPrice(ProductsList []Product) float64 { + var defoultCost float64 + + for _, product := range ProductsList { + defoultCost += product.GetPrice() + } + return defoultCost +} diff --git a/golang/lab7/laptop.go b/golang/lab7/laptop.go new file mode 100644 index 00000000..59dbf55c --- /dev/null +++ b/golang/lab7/laptop.go @@ -0,0 +1,28 @@ +package lab7 + +type Laptop struct { + Model string + Price float64 + ROM float64 +} + +func (l *Laptop) SetModel(Model string) { + l.Model = Model +} +func (l *Laptop) GetModel() string { + return l.Model +} +func (l *Laptop) SetPrice(Price float64) { + l.Price = Price +} +func (l *Laptop) GetPrice() float64 { + return l.Price +} + +func (l *Laptop) SetROM(ROM float64) { + l.ROM = ROM +} + +func (l *Laptop) SetDiscount(percent float64) { + l.Price -= (l.Price / 100) * percent +} diff --git a/golang/lab7/pc.go b/golang/lab7/pc.go new file mode 100644 index 00000000..14cb7ae4 --- /dev/null +++ b/golang/lab7/pc.go @@ -0,0 +1,35 @@ +package lab7 + +type PC struct { + Model string + Price float64 + RAM float64 +} + +func (c *PC) SetModel(Model string) { + c.Model = Model +} + +func (c *PC) SetPrice(Price float64) { + c.Price = Price +} + +func (c *PC) GetPrice() float64 { + return c.Price +} + +func (c *PC) GetModel() string { + return c.Model +} + +func (c *PC) SetDiscount(percent float64) { + c.Price -= (c.Price / 100) * percent +} + +func (c *PC) SetRAM(RAM float64) { + c.RAM = RAM +} + +func (c *PC) GetRAM() float64 { + return c.RAM +} diff --git a/golang/lab7/phone.go b/golang/lab7/phone.go new file mode 100644 index 00000000..da2a681b --- /dev/null +++ b/golang/lab7/phone.go @@ -0,0 +1,30 @@ +package lab7 + +type Phone struct { + Size float64 + Model string + Price float64 +} + +func (p *Phone) SetSize(Size float64) { + p.Size = Size +} + +func (p *Phone) GetSize() float64 { + return p.Size +} +func (p *Phone) SetModel(Model string) { + p.Model = Model +} + +func (p *Phone) SetPrice(Price float64) { + p.Price = Price +} + +func (p *Phone) GetPrice() float64 { + return p.Price +} + +func (p *Phone) SetDiscount(percent float64) { + p.Price -= (p.Price / 100) * percent +} diff --git a/golang/lab7/productinterface.go b/golang/lab7/productinterface.go new file mode 100644 index 00000000..e877e95e --- /dev/null +++ b/golang/lab7/productinterface.go @@ -0,0 +1,7 @@ +package lab7 + +type Product interface { + GetPrice() float64 + SetPrice(price float64) + SetDiscount(discount float64) +} diff --git a/golang/main.go b/golang/main.go index 171452ee..9c57b040 100644 --- a/golang/main.go +++ b/golang/main.go @@ -4,9 +4,11 @@ import ( "fmt" "isuct.ru/informatics2022/lab4" + "isuct.ru/informatics2022/lab7" ) func main() { - lab4.Lab4() fmt.Println("Нерабеев Кирилл Сергеевич") + lab4.Lab4() + lab7.Lab7() }