package mainimport "fmt"type Book struct{BookId stringName stringPrice float64Author stringBorrowable bool
}
type Reader struct {//读者IDReaderID string//押金余额Balance float64
}func (r *Reader)BorrowBook(b *Book)  {if b.Borrowable{b.Borrowable = falsefmt.Printf("读者%s借阅了%s\n",r.ReaderID,b.Name)}else {fmt.Printf("%s借阅失败,该书已借出", b.Name)}
}
func (r *Reader)ReturnBook(b *Book)  {fmt.Printf("读者%s归还了%s\n",r.ReaderID,b.Name)
}
func (r *Reader)PayPenalty(amount float64)  {r.Balance-=amountfmt.Printf("%s交纳了罚金%.2f元,余额是%.2f元\n",r.ReaderID,amount,r.Balance)}
//学生数据模型
type Student struct {//继承Reader//学生特有属性Name stringMajor string}func (s *Student) Study ()  {fmt.Printf("%s正在学习\n",s.Name)
}type Teacher struct {//继承ReaderReader//老师特有属性Name stringCourse string}func (t *Teacher) Teach ()  {fmt.Printf("%s正在教授%s\n",t.Name,t.Course)
}
//覆写交罚金方法:老师不交罚金
func (t *Teacher)PayPenalty(amount float64)  {fmt.Printf("%s交纳了罚金%.2f元,余额是%.2f元\n",t.ReaderID,amount,t.Balance)}
func main() {//创建书b1 := Book{}b1.Name="银瓶梅"b1.Author="欧阳搏达"b1.Price=999.9b1.Borrowable=trueb2 := Book{"10001","奥力给",998.0,"yangge",true}b3 := Book{"10002", "黄金时代", 100.0, "王小波",true}b4Ptr := new(Book)b4Ptr.Name="蓝楼梦"b4Ptr.Author="欧阳搏达"b4Ptr.Price=9.9b4Ptr.Borrowable=truefmt.Println(b1,b2,b3,b4Ptr)//创建学生和老师s1 := Student{Reader: Reader{"001", 100},//s1:=Student{r1,"狗蛋","Python"}Name:   "狗蛋",Major:  "Python",}fmt.Printf("%v\n",s1)fmt.Printf("%+v\n",s1)fmt.Printf("%#v\n",s1)t1 := Teacher{Reader: Reader{"002", 0},Name:   "老王",Course: "撩妹秘籍",}fmt.Printf("%v\n",t1)fmt.Printf("%+v\n",t1)fmt.Printf("%#v\n",t1)//教学、学习、借书、还书、交罚款、状态t1.Teach()s1.Study()t1.BorrowBook(&b1)t1.BorrowBook(b4Ptr)s1.BorrowBook(&b3)s1.BorrowBook(&b2)t1.ReturnBook(&b1)s1.ReturnBook(&b2)t1.ReturnBook(b4Ptr)s1.PayPenalty(5)
}

【Go】面向对象(四):面向对象实战(图书借阅系统demo)相关推荐

  1. Java实战案例一:图书借阅系统

    项目:图书借阅系统 项目简介:开发一个图书借阅系统,包括图书常用的查看.新增.删除.借出.归还等功能 开发工具:eclipse 语言:Java 知识点:程序控制结构.数组.IO 模块流程划分 将整个系 ...

  2. 【计算机毕业设计】图书借阅系统

    一.系统截图(需要演示视频可以私聊) 摘 要 随着电子商务快速发展世界各地区,各个高校对图书馆也起来越重视.图书馆代表着一间学校或者地区的文化标志,因为图书馆丰富的图书资源能够带给我们重要的信息资源, ...

  3. 4.2 图书借阅系统数据库设计 --MySQL

    本文目录 前言 一.背景和需求分析 1.1 背景 1.2 信息需求 1.3 功能需求 管理员 学生 1.4 数据流图 二.概念结构设计 1. 抽象出系统实体 2. 局部E-R图 2.1 学生 E-R图 ...

  4. 【Java之简易[图书借阅系统]】戳进来看看

    大家好,今天给大家带来本人的自主编写的简易版[图书借阅系统],权当做个人的实战练习和学习作品!老师说过三分看,七分练! 成果展示: 一.设计需求 请设计一个图书借阅系统,实现图书信息的展示,借阅,还书 ...

  5. C++通过ODBC方式连接数据库SQLServer及增删查改操作【图书借阅系统为例】

    C++通过ODBC方式连接数据库SQLServer及增删查改操作[图书借阅系统为例] 文章目录 前言 一.ODBC如何配置 二.SQL Server如何设置账号密码 三.C++连接数据库以及增删查改操 ...

  6. Java——图书借阅系统

    ** 项目需求: ** 为图书阅览室开发一个图书借阅系统,最多可存50本书,实现图书的管理.图书借阅系统具备以下功能: 1.查看图书信息 菜单选择查看功能,展示当前所有图书的相关信息,效果如下. ca ...

  7. 安卓移动应用开发课程设计(图书借阅系统)代码+使用流程介绍文档

    目录 第1章 概述 1 1.1 开发背景 1 1.2 开发目标 1 1.3 设计原则 1 第2章 需求分析 1 2.1 项目定义 2 2.2 需求陈述 2 2.3 不同角色用例 2 第3章 可行性分析 ...

  8. 基于Servlet的图书借阅系统,万能项目,写毕设不用愁了

    目录 获取方式 项目技术栈 适合对象 适合课题 项目功能概述 部分运行截图 一天完成毕业设计 获取方式 本站下载链接 基于Servlet的图书馆借阅管理系统-Java文档类资源-CSDN下载 项目技术 ...

  9. 图书借阅系统java_基于JAVAWEB的图书借阅系统

    [实例简介] 基于JAVAWEB的图书借阅系统,包含了源代码.数据库和论文 [实例截图] [核心代码] 图书借阅系统 └── 图书借阅系统 ├── 开题报告.doc ├── 毕设论文.docx ├── ...

最新文章

  1. 关于 MySQL LEFT JOIN 你可能需要了解的三点
  2. 傅立叶变换和小波变换入门学习
  3. 基础知识---汇编学习笔记
  4. 前端学习(2849):简单秒杀学习之浮动
  5. 生产者消费者之阻塞队列版本
  6. 第一个正式的python版本_LeetCode | 0278. First Bad Version第一个错误的版本【Python】...
  7. html5初探ppt,HTML5---HTML5初探151019讲义.ppt
  8. hibernate级联 cascade属性(转)
  9. 有消息推送服务器的手机厂家,又一家手机厂商完成统一推送服务适配
  10. python roberts滤波_Python 图像处理 OpenCV (12): Roberts 算子、 Prewitt 算子、 Sobel 算子和 Laplacian 算子边缘检测技术...
  11. 服务器终端性能测试之iometer
  12. Revit导入lumion渲染
  13. Linux m4a转mp3
  14. 正方形数组的数目(DAY 81)
  15. emoji 原生表情解析成对应表情包png
  16. linux报cpu软锁,内核软死锁
  17. MongoDB 安全安全检查列表
  18. 最全自动驾驶数据集分享系列八 | 仿真数据集
  19. 大数据Hadoop之——总结篇
  20. Original error: pkg: /data/local/tmp/appium_cache/8d4156e508daae39c3f4815552e22e311432ff1f.apk

热门文章

  1. 2015-03-29-绘图和可视化(3)-绘制地图:图形化显示海地地震危机数据
  2. Blackberry运营商Vendor ID代码表
  3. 读书笔记-精准努力-自信与自卑
  4. Camtasia Studio CamStudio如何导出为手机视频
  5. 使用MODIS数据筛选火点
  6. WEB QQ 网页登陆QQ QQ的HTTP接口探究
  7. C++判断IP地址是否有效
  8. thinkphp6 容器和依赖注入
  9. 怎样看待活文档“ATDD”---记敏捷中国2012 open space
  10. Spring注解大全详情,