用go语言写的一个简单的图书管理系统,包含了基本的增删改查代码。希望大家能从中获得帮助。
package main
import "fmt"
type book struct{
id string
name string
author string
price int
}
//用来存储book类
var books[] book
var b book
func Add(){
fmt.Print("请输入图书的书号:")
fmt.Scan(&b.id)
fmt.Print("请输入图书的作者:")
fmt.Scan(&b.author)
fmt.Print("请输入要图书的书名:")
fmt.Scan(&b.name)
fmt.Print("请输入图书的价钱:")
fmt.Scan(&b.price)
books = append(books,b)
fmt.Println("添加成功!!!")
}
//删除
func Delete(){
//声明图书的书号
var number string
//记录符合条件的下标
var result int
//判断系统中是否存在书籍
if len(books)==0{
fmt.Println("抱歉,你还未添加图书!")
fmt.Println("删除失败!")
}else {
fmt.Print("请输入图书的书号:")
fmt.Scan(&number)
for index,book :=range books{
if number == book.id{
result = index
}
}
//走到这里代表已经找到了
books = append(books[:result],books[result+1:]...)
fmt.Println("删除成功!")
}
}
//修改
func Modify(){
if len(books)==0{
fmt.Println("抱歉,你还未添加图书!")
fmt.Println("修改失败!")
}else{
//记录索引
var result int
fmt.Print("请输入你要修改的图书的书号:")
fmt.Scan(&b.id)
for index,book := range books{
if b.id == book.id{
result = index
}
}
//这里以找到对应的下标
fmt.Printf("你要修改的图书书号为:%s\n",b.id)
var choose int
fmt.Print("1:修改书号 2:修改书名 3:修改价钱 4:修改作者 5:退出")
fmt.Println("请选项你要修改的内容:")
fmt.Scan(&choose)
fmt.Printf("你选择的选项是:%d\n",choose)
switch choose {
case 1:
fmt.Print("请输入修改后的书号:")
fmt.Scan(&b.id)
books[result].id = b.id
fmt.Println("修改成功!")
case 2:
fmt.Print("请输入修改后的书名:")
fmt.Scan(&b.name)
books[result].name = b.name
fmt.Println("修改成功!")
case 3:
fmt.Print("请输入修改后的价钱:")
fmt.Scan(&b.price)
books[result].price = b.price
fmt.Println("修改成功!")
case 4:
fmt.Print("请输入修改后的作者名:")
fmt.Scan(&b.author)
books[result].author = b.author
fmt.Println("修改成功!")
case 5:
default:
fmt.Println("没有这个选项!")
}
}
}
func Search(){
if len(books)==0{
fmt.Println("抱歉,还未添加图书!")
}else {
fmt.Println("1: 书号查找 2:书名查找 3:作者查找 4:退出查找")
fmt.Print("请输入你的查找方式:")
var choose int
fmt.Scan(&choose)
var result int
switch choose{
case 1:
fmt.Print("请输入您想要查找的书号:")
fmt.Scan(&b.id)
for index,book := range books{
if b.id == book.id {
result = index
}else{
fmt.Println("抱歉,没有该图书的信息!")
}
}
fmt.Printf("书号为 %s 的信息如下:\n",books[result].id)
fmt.Printf("书号:%s\n",books[result].id)
fmt.Printf("书名: %s\n",books[result].name)
fmt.Printf("作者: %s\n",books[result].author)
fmt.Printf("价钱: %d\n",books[result].price)
case 2:
fmt.Print("请输入您想要查询的书名:")
fmt.Scan(&b.name)
for index,book := range books{
if b.name == book.name{
result = index
}else {
fmt.Println("抱歉,没有该图书的消息!")
}
}
fmt.Printf("书名为 %s 的信息如下:\n",books[result].name)
fmt.Printf("书号:%s\n",books[result].id)
fmt.Printf("书名: %s\n",books[result].name)
fmt.Printf("作者: %s\n",books[result].author)
fmt.Printf("价钱: %d\n",books[result].price)
case 3:
fmt.Println("请输入您想要查询的作者:")
fmt.Scan(&b.name)
for index,book := range books{
if b.author == book.author{
result = index
}else {
fmt.Println("抱歉,没有该图书的消息")
}
}
fmt.Printf("作者名为 %s 的信息如下:\n",books[result].author)
fmt.Printf("书号:%s\n",books[result].id)
fmt.Printf("书名: %s\n",books[result].name)
fmt.Printf("作者: %s\n",books[result].author)
fmt.Printf("价钱: %d\n",books[result].price)
case 4:
default:
fmt.Println("没有这个选项!")
}
}
}
func SearchAllName(){
if len(books) == 0{
fmt.Println("抱歉,还未添加书籍!")
}else{
fmt.Println("书名:")
for _,book := range books{
fmt.Println(book.name)
}
}
}
func main() {
for{
fmt.Println("-----------------------")
fmt.Println("欢迎来到图书管理系统!")
fmt.Println("1:添加图书信息")
fmt.Println("2:删除图书信息")
fmt.Println("3:修改图书信息")
fmt.Println("4:查找图书信息")
fmt.Println("5:查看所有图书的书名")
fmt.Println("6:退出图书管理系统!")
fmt.Println("-----------------------")
var flag bool
var choose int
fmt.Print("请输入你的选项:")
fmt.Scan(&choose)
switch choose {
case 1:
Add()
case 2:
Delete()
case 3:
Modify()
case 4:
Search()
case 5:
SearchAllName()
case 6:
flag = true
default :
fmt.Println("没有这个选项,请重新输入!")
}
if flag{
fmt.Println("欢迎您的下次登录!")
break
}
}
}