与语言无关,编程思路有问题。请看看要怎么办?多谢!!!

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

我目前的写法是:


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



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



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



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


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

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




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

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

要怎么办才好呢?

希望我的问题描述的已经足够清楚了
...全文
135 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
guoqing2009 2009-08-16
  • 打赏
  • 举报
回复
自顶向下进行功能分解就行了
芒果仔 2009-08-16
  • 打赏
  • 举报
回复
写N个函数分别实现N个功能……就这样
Crob 2009-08-16
  • 打赏
  • 举报
回复
按照我的思路。
人是一个Object。
退休金算法是一个Object。
将人做为数据,用退休金算法Object来计算,这个退体金Object可以是static的。
此为Object Orient标准做法。
unsv29 2009-08-16
  • 打赏
  • 举报
回复
楼上 编程是个反复的过程 是自顶向下与由下向上的结合!!!
副组长 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

和你说的过程为什么正好相反呢?仔细领悟一下自顶向下程序设计是怎么回事吧。


unsv29 2009-08-16
  • 打赏
  • 举报
回复
1楼 3楼 4楼 似乎都拿一些教科书上的教条来回答我。

我再说一遍:在子程序内包含有需要按特定顺序执行的操作,这些步骤需要共享数据,而且只有在全部执行完毕后才能完成一项完整的功能。

要如何编程??呵呵呵呵呵呵呵呵


看看你到底有多少编程内功?
晨星 2009-08-15
  • 打赏
  • 举报
回复
函数的名字应该反应它所做的事情。
数据传递可以通过参数,也可以通过有状态的对象。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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