水果整理篇--苹果橘子
Fruit接口,提供减少重量和计算当前重量的功能。
Option Explicit
*******************************************
Public Property Get CurWeight() As Double '计算当前的重量
End Property
*******************************************
Public Function ReduceWeight() As Double '计算减少的重量
End Function
Option Explicit
Implements Fruit
***********************************************************
Private mvarCurWeight As Double '定义当前重量的变量
Private mvarTotalWeight As Double '定义总重量的变量
***********************************************************
Private Sub Class_Initialize() '类的初始化
mvarTotalWeight = 50 '起初总重量为50
mvarCurWeight = mvarTotalWeight '当前的重量为50,
'起初的重量也为50
End Sub
********************************************************************
Private Property Get Fruit_CurWeight() As Double '写入苹果当前重量
Fruit_CurWeight = mvarCurWeight
End Property
**********************************************************************
Private Function Fruit_ReduceWeight() As Double '苹果减少重量
Dim oldWeight As Double '定义从前重量
oldWeight = mvarCurWeight '从前重量等于当前重量
mvarCurWeight = mvarCurWeight - 4 '苹果每天重量减少4
'直到减少到苹果重量的3/5不再减少
If (mvarCurWeight < mvarTotalWeight * 3 / 5#) Then
mvarCurWeight = mvarTotalWeight * 3 / 5
End If
Fruit_ReduceWeight = oldWeight - mvarCurWeight '苹果减少重量为从前重量和当前重量之差
End Function
Option Explicit
Implements Fruit '连接Fruit接口
*********************************************************
Private mvarCurWeight As Double '定义当前重量变量
Private mvarTotalWeight As Double
*********************************************************
Private Sub Class_Initialize() '类的初始化
mvarTotalWeight = 30 '橘子的总重量为30
mvarCurWeight = mvarTotalWeight '橘子的当前重量也为30
End Sub
*****************************************************************
Private Property Get Fruit_CurWeight() As Double '写入橘子当前重量
Fruit_CurWeight = mvarCurWeight
End Property
*****************************************************************
Private Function Fruit_ReduceWeight() As Double '橘子减少的重量
Dim oldWeight As Double '定义橘子从前的重量
oldWeight = mvarCurWeight '橘子从前重量和当前重量相等
mvarCurWeight = mvarCurWeight - 3 '橘子每天重量减少3
'直到减少到橘子的3/5不再减少
If (mvarCurWeight < mvarTotalWeight * 3 / 5#) Then
mvarCurWeight = mvarTotalWeight * 3 / 5
End If
Fruit_ReduceWeight = oldWeight - mvarCurWeight '橘子减少的重量为从前重量和当前重量之差
End Function
Option Explicit
Private mcol As Collection '定义一个集合,mcol是一个盒子
**********************************************************
Private Sub ReleaseFruits() '释放对象
Dim aFruit As Fruit
For Each aFruit In mcol
Set aFruit=Nothing '对于每一个在盒子里的水果最后让其为0
Next
End Sub
*****************************************************************
Public Sub AddFruit(aFruit As Fruit)
mcol.Add aFruit '向盒子里放入水果
End Sub
*****************************************************************
Public Function TotalFruitWeight() As Double '实现计算水果总重量的功能
Dim aFruit As Fruit
Dim total As Double
total=0 '起初总重量为0
For Each aFruit In mcol
total=total+aFruit.CurWeight '橘子和苹果的重量为总重量
Next
TotalFruitWeight=total
End Function
*******************************************************************
Public Function PassOneDay() As Double
Dim aFruit As Fruit
Dim total As Double
total=0
For Each aFruit In mcol
total=total+aFruit.ReduceWeight() '橘子和苹果的重量为总重量
Next
PassOneDay=total
End Function
*************************************************************************
Public Function NumOfApples() As Long
Dim aFruit As Fruit
Dim count As Long
count = 0
For Each aFruit In mcol
If (TypeName(aFruit) = "Apple") Then '加入的是苹果
count = count + 1 '苹果数量+1
End If
Next
NumOfApples = count '苹果的数量
End Function
*****************************************************************
Public Function NumOfOranges() As Long
Dim aFruit As Fruit
Dim count As Long
count = 0
For Each aFruit In mcol
If (TypeName(aFruit) = "Orange") Then '加入的水果为橘子
count = count + 1 '橘子个数加1
End If
Next
NumOfOranges = count '橘子的数量
End Function
***************************************************************
Private Sub Class_Initialize()
Set mcol = New Collection '盒子为一个新的连接
End Sub
***************************************************************
Private Sub Class_Terminate()
ReleaseFruits '释放对象
Set mcol = Nothing '让盒子为0
End Sub
Option Explicit
Dim box As FruitBox '定义一个盒子
*******************************************************************
Private Sub Command1_Click()
box.AddFruit New Apple '盒子里加一个苹果
End Sub
********************************************************************
Private Sub Command2_Click()
box.AddFruit New Orange '盒子里加一个橘子
End Sub
********************************************************************
Private Sub Command3_Click()
Dim str As String
Dim old As Double, reduce As Double, now As Double
'定义从前的,减少的和现在的
old = box.TotalFruitWeight() '调用FruitBox类的TotalFruitWeight方法
str = "一天前总重量有:" & old '从前的重量
List1.AddItem str
str = "其中苹果有:" & box.NumOfApples() '调用FruitBox类的NumOfApples方法
List1.AddItem str
str = "其中橘子有:" & box.NumOfOranges() '调用FruitBox类的NumOfOranges方法
List1.AddItem str
reduce = box.PassOneDay() '调用FruitBox类的PassOneDay方法
str = "一天损失重量:" & reduce
List1.AddItem str
now = box.TotalFruitWeight() '调用FruitBox类的TotalFruitWeight方法
str = "当前重量:" & now
List1.AddItem str
List1.AddItem ""
End Sub
********************************************************************
Private Sub Form_Load() '创建盒子对象
Set box = New FruitBox
End Sub
Private Sub Form_Unload(Cancel As Integer) '释放盒子对象
Set box = Nothing
End Sub
水果整理篇--苹果橘子相关推荐
- 水果怎么画?橘子怎么画?橙子怎么画?
水果怎么画?橘子怎么画?橙子怎么画?绘画初学者如何练习?板绘初学者如何入门?学习绘画难吗?怎样才能学好插画?想必这些都是绘画初学者们经常在想的问题吧,就是不知道如何才能绘画出自己想要的东西,比如说想要 ...
- 【C# winform】操作系统:进程同步程序设计——多生产者多消费者苹果橘子实验
实验内容 桌子上有一只盘子,最多可容纳两个水果,每次只能放入或者取出一个水果.爸爸专门向盘子中放苹果,妈妈专门向盘子中放橘子,儿子专门等待吃盘子中的橘子,女儿专门等吃盘子中的苹果.试编程实现爸爸.妈妈 ...
- php layui ajax多图上传,Laravel+Layer实现图片上传功能(整理篇)
♩ 背景 昨天在自己的 Laravel5.5 框架项目中,希望集成 Layer 的图片上传功能 但是在 ajax(POST) 提交请求时,一直显示 500 报错 ♪ 分析 ⒈ 问题所在 最后将核心代码 ...
- 打造IE6的position:fixed整理篇
打造IE6的position:fixed整理篇 fixed真的是一个非常好的属性. 特别是做弹层的时候.可惜的是"国内主流浏览器"IE6大大不支持. 一般的我们都会通过CSS中的表 ...
- Docker整理篇(docker-compose与私服搭建)
Docker整理篇(docker-compose) 安装与常用命令操作 Docker网络与数据卷 docker-compose与私服搭建 基本介绍 官网地址 https://docs.docker.c ...
- c语言分支编程改错题,二级C语言改错 二级C语言编程题 汇总整理篇.doc
二级C语言改错 二级C语言编程题 汇总整理篇 360教育在线 宇创IT培训07年9月内部资料 内部资料,请勿公开传播 二.改错题 考试做题要求: 1.在/**********found******** ...
- c二级语言程序编程题,二级C语言编程题 汇总整理篇.doc
二级C语言编程题 汇总整理篇 360教育在线 宇创IT培训07年9月内部资料 内部资料,请勿公开传播 三.编程题 考试做题要求: 1.按题目要求编写部分代码,不要改动已经有的代码. 2.在运行时如果遇 ...
- 天堂2单机服务端开外网整理篇
** 天堂2单机服务端开外网整理篇 ** 我们在玩天堂2单机或者想和朋友联机玩天堂2的时候,需要开外网 首先要确认,您的网络有无公网IP,有就继续往下看,没有公网IP, 下面的内容,对您就没什么意义了 ...
- 【Matlab水果识别】苹果质量检测及分级系统(带面板)【含GUI源码 1613期】
一.代码运行视频(哔哩哔哩) [Matlab水果识别]苹果质量检测及分级系统(带面板)[含GUI源码 1613期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1 ...
最新文章
- HotSpot虚拟机对象的创建过程
- boost::contract模块没有宏实现base types的测试程序
- SAP云平台 CloudFoundry环境下的space guid
- C/C++语言中字符串多行书写方法
- xul 创建一个按钮
- HTTPS之SSL处理过程,对此加密和非对称加密
- gem install 和 bundle 区别
- 解决Linux里面未启用网卡的问题
- Oracle之表示约束状态的关键字Enable/Disable/Validate/Novalidate
- finereport前端组件类思维导图
- 【图像融合】自适应参考图像的可见光与热红外彩色图像融合算法
- iOS开发之NSURLSession/NSURLConnection HTTP load failed 的解决办法
- 计算机兴趣小组学情分析,计算机兴趣小组计划、教案浅析.doc
- QQ动态表情包如何制作 堪比沙漠骆驼gif
- html5 手机号直接拨打,html5拨打电话及发短信
- 好看的菜单导航色彩搭配
- JS字符串格式化函数 string.format
- Http请求加密规则(3DES、Base64、HMAC SHA256)
- Ubuntu18.04安装教程——超详细的图文教程
- python儿童入门教程视频-Python入门视频全套教程