一个让人困扰的编程思路问题。

unsv29 2009-08-15 08:41:34
要求:编写一个程序 根据一个人的生日,计算他的年龄,根据他的年龄计算他的退休金。

我目前的写法是:


Public Function 计算生日()
计算生日
call 计算年龄
End Function


Public Function 计算年龄()
计算年龄
call 计算退休金
End Function

Public Function 计算退休金()
计算退休金
End Function




这种做法的最大缺点是 比如这个程序:
Public Function 计算生日()
计算生日
call 计算年龄
End Function

函数名字叫做“计算生日”,但是这个函数的内容既有 计算生日的代码,而且还调用了个 计算年龄的子函数。
也就是函数名字无法准确反映函数的内容。

大家有好的办法么?

这个程序要怎么编写,比较好些?
...全文
180 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
dingyanwei 2009-08-16
  • 打赏
  • 举报
回复
lz rp存在严重问题。
unsv29 2009-08-16
  • 打赏
  • 举报
回复
有人给出了标准答案:

写程序就像写作文,一定要有一个中心思想,即使你的程序可以解决一系列的问题,但是主要问题应该只列一个,就是说要抓主要矛盾。

反观你的程序,就没有做到这一点,你的目标不清楚。首先要知道:你想做什么,然后设计你的程序。
如果你想要计算一个人的退休金你可以:

Public Function 计算退休金()
...
End Function

这个就是你的目标,如果你在计算退休金的过程中,需要知道年龄,那么你改成

Public Function 计算退休金()
call 计算年龄()
End Function
Public Function 计算年龄()
...
End Function

同理,要想获得年龄,需要知道生日,因此

Public Function 计算退休金()
call 计算年龄() //需要用年龄才能计算除退休金
...
End Function
Public Function 计算年龄()
call 计算生日() //需要知道生日才能知道退休年龄
...
End Function
Public Function 计算生日()
...
End Function

和你说的过程为什么正好相反呢?仔细领悟一下自顶向下程序设计是怎么回事吧。
http://topic.csdn.net/u/20090815/21/eedee5a5-984c-43f0-b3e0-60abed3a3e3e.html?seed=1986824929&r=59107026#r_59107026
chinaboyzyq 2009-08-15
  • 打赏
  • 举报
回复
......
zdingyun 2009-08-15
  • 打赏
  • 举报
回复
继续围观!
......
unsv29 2009-08-15
  • 打赏
  • 举报
回复
3楼,这个不是问题么??

我觉得是个问题啊 你有什么好的解决方案么?
顺便看看你的文档组织能力到底有多强?
dingyanwei 2009-08-15
  • 打赏
  • 举报
回复
稍稍似乎明白点楼主的一点点意思了,不过还不太透彻。

因此,回复如下:
计算生日代码纯属没有任何意义,因为生日已经提供了,没必要计算了,再说生日也不是计算出来的。
unsv29 2009-08-15
  • 打赏
  • 举报
回复
回4楼,具体情况你看看我在5楼所说的,就是针对“在子程序内包含有需要按特定顺序执行的操作,这些步骤需要共享数据,而且只有在全部执行完毕后才能完成一项完整的功能。”要如何做?

我在“楼主位”给的那就是个随便的例子,是用来说明问题的。

unsv29 2009-08-15
  • 打赏
  • 举报
回复
回1楼

Public Function 计算生日()
计算生日
call 计算年龄
End Function


这个 第一个“计算生日”指的是函数的名字 。 第二个 “计算生日”指的是 具体的计算生日的代码。

============================

回2楼:

请你给起个好名字!!!呵呵




------------------------------------------------------------------------


这个问题确实很困扰我 现在正在想如何解决。 针对这个问题我查了大量的资料,换一种【说法】就是:
在子程序内包含有需要按特定顺序执行的操作,这些步骤需要共享数据,而且只有在全部执行完毕后才能完成一项完整的功能。

我的程序要求是:根据一个人的生日,计算他的年龄,根据他的年龄计算他的退休金。这个程序要求是符合【说法】的。

要怎么办才好呢?

希望我的问题描述的已经足够清楚了
kmzs 2009-08-15
  • 打赏
  • 举报
回复
沒看懂啊,生日应该是给定的,不需要计算,因此应该是:
Public Function 计算年龄(生日参数)As Integer
返回年龄
End Function

Public Function 计算退休金(年龄参数)As Double
返回退休金
End Function
fzx4936 2009-08-15
  • 打赏
  • 举报
回复
不是问题的问题
dingyanwei 2009-08-15
  • 打赏
  • 举报
回复
函数名字无法准确反映函数的内容

======================
那就用个更贴切的来描述不就得了。
dingyanwei 2009-08-15
  • 打赏
  • 举报
回复
Public Function 计算生日()
计算生日
call 计算年龄
End Function

======================
这不是递归了吗?

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧