没有太多花里胡哨的东西,我们直接从与本次编程有关开始!
“C+Primer+Plus++第6版++中文版PDF电子书下载+高清+带索引书签目录(美)STEPHEN+PRATA著;姜佑译_北京:人民邮电出版社_P730_2016.04”这是设计本作品的缘由,里面的教程对初学者很有用,其中有个练习题目就是需要计算出活了多少天,便有了此次的编程。
分析
我们从出生到现在的时间,可以分为3个阶段
1:出生年到下一年里有多少天的剩余。
2:从下一年到现在年份(不包括月分)有多少天(这是固定的数)。
2:最后一年里,到现在过了多少月,多少天。
总结:把这3个天数相加,就成了我们想要的结果了!
怎么去实现?这是我们要去考虑的,(我失败了很多次,包括语法,语句,都有编译错误,我在这直接讲我最后成功过程情况吧)
设计思想
抬头
书上说,由于目前很多的编程软件的诞生,很多正规规范的写法也变得五花八门,最好是要按照正规写法,让程序编写出来,兼容性会好一些。
定义函数需要在开头顶端定义闰年
:我们会发现,每一年的天数是有规律的,那就是每相隔4年,便是一个闰年。
为了能够方便使用,我们用1896年-2096年,正好是50个闰年数
:
用此来判断是不是闰年因为闰年和非闰年的月数不同,想过用一个数组来表示,但觉得这样会更繁琐,所以得到:
因为我希望能够一次翻译多次使用,便用了goto 跳转
again:
……
goto again;从开头说的,一共分3个版块,也同时可以分3个函数来计算,并最后相加可得天数
1:中间年份的算法:
先判断输入的年份之间有多少个闰年,是闰年就加上366,并返回,不是则加上365,并返回
(ps:其中检修是因为设计时候要看到每一步的函数变化,才好去改正式子)2:开始和现在年份中过了多少天的算法:
因为开始和现在的年份也需要考虑是否闰年,毕竟2月份±1天嘛,所以这一步,只要想法没错,就不会爬坡:只要ctrl+c,ctrl+v就可以了(:
首先是出生年:
(1):判断是否是闰年:
(ps:由于闰年属性是穿插在全文的,我机制的放在了开头就定义了,不需要再改动,同样也是用了goto来无条件跳转)
(2):定义好整体,
出生年到下一年的算法和输入出生天/月有关:用当月的总天数减去出生天-就是当月剩余需要累加的天数。用12减去月份,便是还需要过的月份,再结合开始吧闰年和费闰年的月份/天数数组带入计算。相加便得到了出生年月日到隔年的天数。
↑闰年
↑非闰年(ps:同样的为了他们能够准确输出用了goto over;)
(3):现在的年份正好相反
因为现在日是已经过去了的,直接相加,现在月算出总和天数就可以了。
↑同样也是先判断是否闰年,为什么不是run了呢,因为上面用了,会有冲突,所以加个t(too)
↑同样的goto overt;OK,激动人心的时候到了!(也许就只有我体会得到–)
把上面所得到有用的参数全部相加!!!!!!!就得到了我们想要的结果!
不废话了,上图↓
编译,输入,得到,ok,圆满了,谢谢各位的“看”,也欢迎大神的钱来沟通!也谢谢我自己打了这么久的字(:
源代码已经上传了,系统定义1积分,大家可以去下载看看。
代码块
代码块语法遵循标准markdown代码,例如:
@requires_authorization
def somefunc(param1='', param2=0):
'''A docstring'''
if param1 > param2: # interesting
print 'Greater'
return (param2 - param1 + 1) or None
class SomeClass:
pass
>>> message = '''interpreter
... prompt'''
脚注
--------------下面这个啥代码,比较看不懂,还是C看的懂点,,,,