个人理财小助手 —— 设计思路、功能说明
2007-08-01 21:40 金色海洋(jyk) 阅读(4368) 评论(29) 编辑 收藏 举报详细功能(初步)
经过了几天断续的思考,终于有了一个比较完整的思路,先记录下来以免忘记。同时也请大家多多帮忙,看看思路是否可行。
一、收入
1. 工资收入,这个就不用说了吧。
2. 初始资金。使用本软件之前手里还剩余的资金,包括钱包里的、银行里的(活期、定期等)。
3. 利息收入,定期、活期的利息。
4. 储蓄,定期转活期等。
5. 借入。别人借给我钱。
6. 还入。别人还钱给我。
7. 出售物品。出售以前买的物品获得的钱。
l 1、2、3是真正的收入。
l 4、6本来就是自己的钱,5是别人的钱。这些不属于真正的收入。
为什么要把4、5、6都算作“收入”呢?因为我要跟踪资金的“流动”,而我只设计了支出和收入两个表,其他的都要往这两个表靠,所以才会这么设置。
二、支出
1. 缴费,比如水费,电费,手机费,上网费,公交车票等。
2. 购买物品,比如买衣服,家电等。
3. 购买食物,粮食、蔬菜,去饭店等。
4. 储蓄,就是存钱,工资存入活期、活期转定期等。
5. 借出,把我的钱借给别人。
6. 还出,把我的钱还给别人。
l 4、5并不是真正的支出,而只是把钱换了个地方,早晚还是要回来的(特殊情况除外。没办法程序员嘛总是考虑得比较多J)。
l 6别人的钱,还给了别人。这些不属于真正的支出。
为什么要把4、5、6都算作“支出”呢?和上面的原因是一样的,另外活期转定期、定期转活期是对应的;借出、换入,借入、还出是对应的。这样整个资金的流动就都联系起来了。
购买物品和出售物品也有一点关系,但是金额是很难符合的,这里还没有想到一个很好的处理方式。
在有缴费这里也是暗藏杀机,手机费是预交费,先交钱才能用;固定电话费时候交费,本月产生的费用,采个月才交;而煤气水电既可以先交钱,也可以后交钱。后交费的好办,可以确定一个月用了多少钱;而先付费的是先记了(记帐)一笔支出,但是这笔钱还没有真正的花出去呢。假设一次交了100圆的手机话费,省着点用的话可以用两个月(也许更多),那么想统计一下一个月的总共花费是多少就不好处理了。
三、银行储蓄
这里是没有添加的功能的,都是在支出的地方添加,这里是查看储蓄(比如某一个定期存款)的详细情况的。
四、物品管理
同上,对物品做一个管理,记录一下购买日期,不能使用(或者送人、卖掉)的日期,当然这里的物品指的是“大件商品”了。
五、功能举例
说了这么多,我到底想实现一个什么样的功能呢?举个例子来说明一下吧。
1、 某天收到了一月份的工资。
2、 在这份工资里拿出来300元钱,存成定期存款(三个月的整存整取)。
3、 三个月后到期了,转成活期后提取出来。
4、 用这笔钱买了一个手机。(能打电话就行的那种J)
5、 用了几天后发现不好用(一分钱一分货呀),于是决定卖掉。只买了100元钱。
6、 一个兄弟急用钱,把这100元钱借给了他。
7、 几天后还给了我100元钱。
8、 最后(好了不往下设想了),用这100元钱交了手机费。
(这个例子好像有点bt)
我想要达到的目的就是可以把这些账目关联起来。比如第6步里的100元钱是从哪里来的呢?向上一查发现是买手机的钱,那么买手机的钱是哪里来的呢?向上一查是一个定期存款的钱,最后发现是来自于一月份的工资。
什么您说这么弄是不是太累了?!是呀我也觉得有点累,有这么复杂和麻烦吗?可能是我举的这个例子太极端了吧。简单点的例子就是从一月份的工资拿出来400元买个手机、100交手机费、200元吃午饭……这样简单了吧。但是要知道一月份的工资都做了什么事情,二月份收入一共是多少,支出一共是多少。不能有重复的统计。
邀请函
最近园子里面向对象讨论的挺激烈的,平时也总是看到各位高手谈论面向对象、谈论各种模式,发表自己的见解。但是呢有一个共同点:理论多,实际的例子(程序上的)少!
理论终究是理论,我觉得还是拿点实际的代码来讲解,解决一个实际的例子更好一点。而不是设想一些鸭子了、鱼了什么的。这些例子挺生动的,但是对于我来说还是有点迷糊。理论挺好的但是到了实际中怎么编写代码呢?
在这里有一个大胆的请求:邀请各位高手,能不能在闲暇时间来看看我说的这个记帐的小功能,来写点解决方案、设计思路或者是实现代码(部分)。
一来可以结合实际讲解自己的看法;二来大家都是考虑同一个问题,不容易出现歧义;最后,理财是大家或多或少都会用到的吧,想一想不会有坏处吧J。
最后,我是一直使用面向过程,用“面向数据库”的方式来写程序的。面向对象是一点都不熟悉的。三层也没有用过。
所以下一步就是设计数据库,而不是设计类。
希望大家能够多多支持!
感兴趣的可以加入这个群:自然框架开源社区群 46212334。
ps:
1、我不清楚各位是否能够清楚地知道自己的工资都花在什么地方了,至少我是不知道了。所以我想写这个软件来记录一下。
2、写这么一个“复杂”的程序也是对自己的思维、编程技巧的一次挑战。
3、说实在的,有没有人去用我是不关心的,主要是挑战,挑战自己的能力。
4、在编写程序的过程中可能会对其他人有所帮助,因为我会公开一些思路、技巧、代码、数据库结构等。