天斌's profile'斌' s SpacePhotosBlogListsMore Tools Help

'斌' s Space

只有知道了自己的无能,才能踏上成为高手的道路!
December 19

[分享]假如全世界是一个班!!

 1、美国 班长,学习好,家里有钱,人高马大,好打架。班里没几个人敢惹他。 和副班长关系不好。

2、俄罗斯 副班长,成绩优异,全班最高大,上学期光和班长顶着干。后来家里出事:分家!现在做事很消极,但在班级里有一定的影响力。

3、中国 团支书。幼儿园学习成绩很好。小学时由于体质差常被欺负,没事爱吹牛,由副班长罩着。  

4、英国 学习委员,学习成绩好。家里也很富。班长的跟屁虫,做事没主见,啥都听班长的。前些天和班长把伊拉克打了一顿。

5、瑞士 美术课代表,班花。学习成绩好,清高。

6、奥地利 音乐课代表。

7、阿富汗 职务无。不爱学习。身材矮小。上学期被副班长打,班长帮忙付医药费。前几天把班长家的最高的两个家具砸了,被班长揍个半死,现在失忆中。

8、伊拉克 无职务。学习差。但人高马大,上学期排全班第四。嘴硬,上学期欺负同桌被群殴。前些天被班长和学习委员冲进他家揍个稀巴烂。

9、印度 好玩电脑,成了电脑课代表。经常和同桌巴基斯坦为一块课桌吵架。

10、巴基斯坦 职务无。成绩一般。和团支书关系不错,经常和印度吵架。

11、德国 班级活跃分子,人高马大,擅长数理化。有野心,由于上学打了2架所以现在暂无职务。但认错态度较好。

12、日本 无职位,成绩不错。思想品德很{巨}差。上学期刚被班长和团支书等人揍。现在还惦记着班长家的鱼缸。

13、越南 无职位。人品有问题,瘦弱。上学期被班长揍,幸好有副班长和团支书撑腰。后又挑衅团支书,被狂揍。

14、朝鲜 无职位。有个性。和团支书关系好。近期和班长闹矛盾,班长扬言要揍他。
August 26

Come Back

好久没来更新space了,趁着今天下午这点时间,也做不了太多事情,就上来写几句!
早上刚刚走下坐了12个小时从北京到上海的火车,结束了去参加微软夏令营的北京之行,
累到了一回家就躺在沙发上睡着了。
 
在北京的几天中,和来自几十所全国不同学校,有本科生、研究生,尤其是和我们小组的
伙伴,有我们聪明能干的队长寒冰,将成为未来UR的陈为,很有绘画天赋的室友肖南,颇
有导演才能的邱宏志(虽然杀人的时候总是发表基本上没价值的言论,但是确实和“×宏志”
没有亲戚关系),涉猎技术非常广泛的副队杨扬,颇有“国王”气质的于伟,白马和黑马王子
颜霞飞、吕淼,一直非常认真的大树毛翔博,当然最不能忘了引起全场尖叫、“惊艳”得沉
鱼落雁,闭月羞花的白雪公主雨潇,居然敢在所有亚研院的UR、实习生、以及所有学校的
夏令营营员和支持媒体sohu来表演那么“妩媚”的白雪公主,我真的absolutely服了u !
^_^ 还有同样是我们小组的成员有:杨漾、解睿、何芳、李犁、刘超,应该没有漏网的了。
 
和你们一起度过了非常愉快、非常兴奋、非常HIGH,同时也感觉颇受微软的UR们蹂躏的几
天时间。从最初一起欢迎晚会上设计队名、队旗、队歌、口号开始,到晚上回到酒店以后
加班加点写剧本、排练小品,每天晚上都要忙到凌晨一两点;晚上太HIGH,又在白天梦游
的状态中去密云水库参加魔鬼式的团队拓展训练,搭人梯翻越4米高的海难逃生墙,穿越
沼泽……一起在公园草坪上品尝微软的Barbecue,虽然味道很不如人意,名曰Barbecue,
居然完全没有烤肉串什么的,但是地方倒是很不错,在首都机场附近的,同时和所有亚研院的
实习生、亚研院高层一起观看夏令营成员和实习生们分别准备的各自的恶搞节目,偶尔近
距离抬头看看刚刚飞起来的飞机,平均每分钟就一架!
 
当然还有很多这些天的点点滴滴一起经历过得许多事,相信都是我们这个这个暑假中对应
该珍藏的回忆。

微软的UR们所进行准备的这些天的紧张的日程活动安排,虽然让我们很忙、让我们很累,
让我觉得有中被蹂躏的感觉,但也应该说是帮我们所有的8个团队在短短的几天时间里能
够培养对这个团队的责任和感情的最好方式,让我们的团队从磨合到融洽,从融洽到默契
,再从默契到彼此珍惜。结束了5天短暂的夏令营,大家都各自回到原来的生活轨道上,
但我相信这短短的几天时间中就已经足够让我们在以后的career上成为最好的挚友。让我
们一起加油!
 
今天晚上就要去学校了,和同学一起做一个课程设计,毕竟分开两地做同一个课程设计交
流起来很困难,这是事实,所以差不多等一会儿就该走了。这两天在北京的经历就下次有
时间在写吧…… ^_^ 
June 26

学弟做的视频 太牛了

今天从同学那里看到了一个爆强赞美同济食堂的视频,拿来大家一起分享一下啦!
n久没有update自己的space了, 这学期一直有忙不完的事情,理不清的烦恼.状态也不好的样子.
不管怎么样,快考试了,希望最后几天赶一赶,先把眼前的考试解决掉吧 sigh....
 
 
February 09

本来上网找音乐....无意看到这篇不错的SPACE...拿来转一下 ^_^

钱是比武器更厉害的武器--人民币的升值[转]
http://space.flash8.net/space/?278876
现在很多国人都很关心人民币升值这个话题,但又不了解美国迫使人民币升值的真正意图
何在,现在鄙人就此浅薄的发表一下我的个人看法!
相信大家对80年代的“日本经济衰退”和90年代的“亚洲金融风暴”及“香港的香港金融
保卫战”吧!也许有人会说那是国际投机集团“美国索罗斯财团”搞的,但是,你就没有
想过它背后难道就没有美国政府的支持了吗?下面,我仔细分析一下这些事件的前因后果
你就会明白了。
从1980开始的,特别在1990年和1995年,第一名的美国和第二名的日本之间的GDP差距是
多少?日本GDP超过美国GDP的一半!这也是目前为止唯一一次其它国家和美国的经济差距
缩小到一半的程度。日本人在欢呼:只要超过美国的GDP,日本就可以恢复“正常国家”
了!美国人没有吭声。
按理说,日本还是美国的盟国,其经济也是美国扶持起来的,美国也没有分裂日本的必要
(要分裂,二战时就分裂了,也不用等到80-90年代)。美国也不可能对盟国日本使用“
颠覆性煽动”,眼看着美国是阻挡不了日本经济的发展前景的了!世界各国都在兴奋的期
待着日本GDP超过美国GDP的那个“历史性时刻”!日本企业更加疯狂,美国经济的象征—
—洛克菲勒广场被日本人买下了!美国的精神象征——好莱坞被日本人买了!美国人民的
心情一下子掉到了谷底。“世界第一”就快保不住了!美国人民的荣耀感在急剧下滑,民
间开始蔓延仇日情绪。
1980年,日本的GDP就快到美国的一半了。有一件事情在1985年发生了,1985年美国拉拢
其它五国(7国集团)逼迫日本签署了。以“行政手段”迫使日元升值。其实的一个中心
思想就是日本央行不得“过度”干预外汇市场。日本当时手头有充足的美元外汇储备,如
果日本央行干预,日元升不了值。可惜呀,日本是被去了势的太监。美国驻军、政治渗透
、连宪法都是美国人帮它度身定做的,想不签广场协议都不可能。
日本最后的结局大家也知道了。1985年9月的广场协议至1988年初.美国要求日元升值。根
据协议推高日元,日元兑美元的汇率从协议前的1美元兑240日元上升到1986年5月时的1美
元兑160日元。由于美国里根政府坚持认为日元升值仍不到位,通过口头干预等形式继续
推高日元。这样,到1988年年初,日元兑美元的汇率进一步上升到1美元兑120日元,正好
比广场协议之前的汇率上升了一倍。美国人满足了吗?没有。接着看下去,从1993年2月
至1995年4月,当时克林顿政府的财政部长贝茨明确表示,为了纠正日美贸易的不均衡,
需要有20%左右的日元升值,当时的日元汇率大致在1美元兑120日元左右,所以,根据美
国政府的诱导目标,日元行情很快上升到1美元兑100日元。以后,由于克林顿政府对以汽
车摩擦为核心的日美经济关系采取比较严厉的态度。到了1995年4月,日元的汇率急升至1
美元兑79日元,创下历史最高记录。 日元升值的后果是什么?洛克菲勒广场重新回到了
美国人手中,通用汽车在这个广场的一卖一买中净赚4亿美元!日资在艰难度日中大规模
亏本退出美国。美国人民胜利了!成功的击退了日本的经济进攻!我们可以从事例中看看
1995年之后,日本和美国的GDP之比重新拉开了距离,而且越来越大!
可能有些网友还是没有明白,日元升值怎么啦?跟我们的谈论有什么关系?日元升值,就
是美国对日本的一次经济阻击战!成功的把日本20多年的发展财富大转移到了美国去了。

下面我给个例子大家就清楚了。
假设我是美国财团,我当然知道1985会发生什么,假设我在1983年吧,我用100亿美元兑
换成24000亿日元,进入日本市场,购买日本股票和房地产,日本经济的蓬勃导致股市和
房地产发疯一样的上涨,1985年广场协议签订,日元开始升值,到1988年初,股市和房地
产假设我已经赚到了一倍(5年才翻一倍是最低假设了),那就是48000亿日元。
这时,日元升值到1:120。我把日本的房地产和股票在一年中抛售完,然后兑换回美元,
那么,就是400亿美元!在5年时间中,我净赚300亿美元!(还是最低假设)。那么日本
呢?突然离开的巨额外资就导致了日本经济的崩溃!经济学用词叫“泡沫经济破灭”。这
就是日本常说的:“失去的十年”。而我连本带利的400亿美元回到美国,你想一想,美
国经济能不旺盛吗?!!日本“失去的十年”,却正是美国“兴旺的十年”!看看我的上
表就知道了。
我只是美国财团中的一个,其它财团呢?嘿嘿,而且我的假设还只是到1988年,如果是到
1995年,日元升值到1:79,你我能想象美国在这场经济战争的胜利中,到底从日本刮走了
多少财富?
美国赚够了,日元现在又重新回到了1:140的位置上,美元的坚挺依然和30年前一样!美
元暂时性的贬值,并没有损害到美元的国际地位。这场美日的经济战争,以美国完胜而告
终!!

美国人玩上瘾了。1998年,同样的手法在东南亚四小龙四小虎身上又来了一次,这就是亚
洲金融风暴!唯一不同的,这次不需要广场协议了。因为亚洲这些小虎小龙的外汇储备们
直接阻击就可以大获全胜!但是,还是没有战胜财大气粗、军事强盛、奉行霸权主义的美
国,结局大家也看到了,东南亚货币在先升后跌中,经济发展的成果被美国抢掠一空!!
唯一市场硬挺住了索罗斯的进攻而没有经济崩溃的就只有回归后的香港,保住了香港几十
年的发展果实。当时索罗斯发动世界舆论(包括香港舆论),大肆攻击香港政府(中国政
府)“行政干预市场”,违反市场经济规则、没有民主自由,要是当时中国屈服于世界的
舆论压力而不运用“宏观调控”进行入市干预,那将酿成大祸,又不知道要有多少国人向
当年的日本那样因破产而跳楼自杀了!
当时的曾荫权后来说过:“决定政府入市干预的前一晚,我坐在床头哭了,不是为我自己
,而是怕这个决定如果错误了,害了香港,我怎么向中央政府向市民们交代。”大家现在
知道为什么美国一再要求他国“新闻自由”、“市场经济”、“民主人权”是建立在自己
利益的基础上了吧,知道我国的“宏观调控”政策的正确性和优势所在了吧。
美国停手了吗?没有,因为我过综合势力的增长国力的增强威胁到了美国的根本利益和“
世界第一”的权威,近来“中国公开支持因儿子丑闻陷入困境的安南,指责美国故意借题
发挥进行人生攻击。”就是最好的证明。所以美国心里就不痛快了,就要整人了,现在强
迫人民币升值就是消弱中国的第一步,各位明白了吗?知道为什么中央政府突然狂力打压
上海和北京的房地产市场?知道为什么中国股市那么惨了吗?央行行长周小川在3月还是4
月曾说了一件事情:“有一个40亿美元的外资在上海炒房地产,已经退出中国了这样的外
资,不要也罢!”明白了吗?中国股市是一个弱势股市,很容易被美国财团利用。
中央不可能放松对股市的控制,否则中国经济将会在外资的攻击中崩溃!前段时间,也就
是今年的12月初又有一个240亿美元的外资财团撤离中国上海。现在,大家对国家的宏观
调控的优势有所理解了吧,知道了国家出台那么多针对房地产的政策是多么的明智和及时
了吧(文件详文附在后面,有兴趣的可以读读)!
现在各位知道为什么中国要实行国家外汇管制、汇率控制、打压房地产、控制股市、知道
为什么中国要保持巨额外汇储备,为什么最近央行又出台了新的房地产贷款规定,为什么
中国政府一直要求进出口贸易平衡,为什么要扩展东南亚贸易市场和欧盟市场,为什么要
加WTO了。
其实中美之间的经济战争,早就已经开场了,而且来来回回过了几百招了。我们大多数网
友还懵懵懂懂的只盯着台海,盯着中亚美军又多了一个军事基地。要知道经济崩溃的灾难
远比一场军事战争的后果更严重。军事战争不外乎两种:即“侵略战争”和“卫国战争”
。而军事上的“侵略战争”的最终目的就是打垮对方的一切(军事力量和经济实力)达到
占领对方领土,进行资源掠夺和控制奴役和剥削对方的国民。
这样的事情中国历史上没有少发生,这里我就不例举事例了。而如今的美国就是以军事上
的侵略战争为手段,达到奴役和剥削对方为目的的真实意图(对实力弱小的国家而言),
看看如今的“伊拉克”就明白了,美国实际上是侵略占领了伊拉克,控制了伊拉克的石油
,以此来满足美国国内巨大的需求量;而对实力强的原苏联(原苏联拥有制对方死地的核
力量),美国就只有发动经济进攻来拖垮他们,苏联的分裂就是最好的例子。

也许有的人要说,那是冷战时期的军备竞赛和当时苏联国内政策导致了原苏联因经济崩溃
而解体的。但是,你有没有想过,进行军备竞赛是以经济实力为基础的。当时的美国经济
实力比苏联强,所以,美国胜利了而苏联解体了。现在轮到我们了,我国现在的经济和军
事实力都没有冷战时期的苏联强大,相同点是我国同样也拥有毁灭美国的核武器,只是数
量少了一点而已。那在这一轮中,就要看我国领导人的智慧了,建立合理的政策来规避风
险,保护自己是当务之急(可喜的是,现在我国已经在这样做了)。
可是,美国也没有闲着,而且,作为经济进攻的第一步他们已经早早的迈出了,向美国“
凯雷财团”这样的世界性投机财团收购中国的“徐州重工”这样的事情已经发生了很多了
,在这里我就不一一例举了。他们的目的很明确,控制中国的核心技术,进行世界性的技
术垄断,迫使??量。同时乘汇率没有变化之前以美元套取人民币,迫使中国央行大量发行
人民币以应付大量的货币兑换需求,为拖垮中国经济打下伏笔。这还是明的进入,暗地里
的就更无法统计了。
说到这里,也许有很多人不明白大量美元兑换人民币的行为与拖垮中国经济有什么关系。
在这里,我解释一下:在没有大量美国财团恶意涌入中国用大量美元换取人民币之前,我
国的经济形式是相对稳定的,但是,实际上,我国发行的人民币的数量远没有我国人民积
累的财富数量那么多,??活动就行了,??为印刷货币的成本是很高的。
举个例子:中国有13亿人口,平均每人的财富拥有量为1万元每人,中国总共有13万亿元
财富,而现实生活中,每个人不可能把自己的全部财富都带在身上,这里就平均一下,平
均每个人身上携带1000元现金(携带量为10%,其实这个量已经是很大了),其余的存在
银行,也就是说,在正常情况下的流动现金量(术语为:现金流量)为1千亿元,乘以一
定的突变系数,(这里为了便于计算,就理想的取值100%),也就是说在正常的经济活动
下,中国只要发行2千亿人民币就可以满足本国的经济活动了。

而大量的恶意的国外财团的资金涌入中国,表面上是拉动了我国的经济,是国内的消费量
变大,也就是使国内的现金流量的需求变大,这样,我国为了满足大众消费的需求,就会
大量印刷和发行人民币来满足这种需求(当年的日本就是这样)。据统计,目前在国际上
金融市场上的投资有136万亿美元。
其中只要有1%涌入中国进行投机经营,按现在的汇率,我国就要发行10.895584万亿元人
民币(1.36*7.8644=10.695584+0.2=10.895584万亿元),货币的发行总量已经超过了我
国现有的外汇储备量(1万亿美元)的10倍,算把中国的全部外汇储备都拿来也难对付对
手,此时,我国的国有经济就是负9.895584万亿元,不能算上全中国人民的全部财富,因
为,国家经济崩溃了,我们手中的财富也就一文不值了。
如果人民币升值以后,他们再用手头的人民币套取美元,中国国内将会余留大量人民币。
那样,国人乃至世界将会对中国失去信心,不再储备和使用甚至抛售手中储备的人民币,
使中国的外贸活动受挫,最终导致中国国内的通货膨胀,对外导致信誉危机从而导致金融
危机。就向40年代的通货膨胀那样一盒火柴要卖几百块。如果我国政府在这次的人民币汇
率这件事上决策错误,那么到时中国近30年来改革开放的经济成果就可能就可能落入他人
之手。

最近,国内的经济形式来看,客观的将,形式是不容乐观的。按理说,人民币升值了,也
就是说钱值钱了,应该是以前1块钱的东西现在只要9毛甚至是8毛就可以买到了;可是现
在的国内形式,除了工资没有涨外其余的都涨了。新华网报道说:自8月份开始,北京市
场食用油价格震荡上扬。进入11月份,米价、面价、菜价及副食价格均有不同程度的攀升
。报道认为,是受国际大豆市场价格上扬的影响,导致食用油价格上升。但是,米面跟风
而涨,25公斤装的富强粉涨幅达12%以上,500克大米上涨了6分钱。据了解,在上海、广
州、深圳粮油等生活必需品已是涨升一遍,并持续一个多月,其中面粉、食用油的最高涨
幅分别已达一成和二成。 副产品涨价说明了我国经济在发展和提高。同时,以农副产品
的涨价来增加农民的收入,维护社会的稳定,给国家的发展提供了一个良好的国内环境,
对国家的发展是有好处的,因为中国农民的数量毕竟占了总人口比例的70%以上嘛。 但是
,中国的这四大城市生活必需品的涨价决外偶然。持续7个多月的宏观调控并没有稳定房
价,相反,导致房价的节节攀升。早有经济学家警告说,地产泡沫将导致通货膨胀,通货
膨胀将引发经济危机。然而,这种声音太微弱,现如今的种种迹象表明,通货膨胀正在步
步逼近我们。
对比1996年的东京,1997年的香港,北京、上海、广州,深圳这四大房价居高不下的城市
,地产泡沫破灭前的迹象已经显现。试图为了一已私利而继续哄抬房价的地方政府,将迎
来经济规律的无情惩罚。因为这一轮的通货膨胀是在毫无防备的情况下发出的,可能还不
被官方承认,但它实实在在已经来临了。这种处在萌芽状态的通货膨胀选择了一个导致经
济危机的最好时机——2007年的元旦和春节前。因此,危害性和破坏性更大。如果有一天
方便面也开始涨价时,这场经济危机已无法遏制了。

柴米油盐、水电油汽的轮番涨价和全面涨价,对中国的富豪阶层的正常生活不构成任何影
响,但是千千万万的普通市民将要付出更多的财富以维持和原来一样的生活水准,也就是
说,中国的高房价,间接地是由普通城市居民来买单,日本的国民是花了15年的时间,香
港的市民就是花了14年。那么,中国的城市居民要花多少年呢?
应对即将到来的通货膨胀,国家自然有金融的手段。可是,中国的人民币在国际市场受到
美元的攻击,一年之内升值达5%,而且,还有继续升值的空间。中国的贸易顺差将在人民
币的升值中逐渐缩小,国际市场的风险已在加剧。而国内市场生活必需品的全面涨价,将
直接影响消费。
最后,逼迫央行加大人民币的发行量,中国的通货膨胀就此爆发。这种危机也可能近在眼
前。 人民币目前在国际货币市场的遭遇是中国汇制改革以来没有过的事,我们目前已经
知道美元要干什么?但是,还由不得我们把国际市场的问题解决好,人民币在国内又是这
样的尴尬。在不动产涨价的带动下,生活必需品全面涨价,形成了国际与国内两种迥然不
同的市场。从某种意义上来说,这样的市场将走向资本的过度投机。说白了,对内将加剧
中国社会的贫富分化,对外给资本大鳄可乘之机。
如果更深层次的分析,人民币似乎是遭遇来自不同方面的围攻,试图将中国30来年经济发
展的成果逐步蚕食。接下来,生活必需品的涨幅将进一步加剧,市民的购买力进一步下降
,国内市场进一步缩小,中国的产能将进一步过剩,最后,必然导致大量的中小企业破产
,经济危机说来就来。
真正要化解这场危机,对目前的经济局势来说,进一步加大宏观调控的力度,理顺房地产
市场的管理体制,采取有力措施,坚决把房价降下来,让城市居民在房价下降的过程中感
受中国经济的力量,从而增强对未来的信心。也许,这是目前最应该做的一件事,尽管已
经做了一些表面工作。

我们要清醒地看到高房价的危害性,尤其是对中国社会的破坏更是史无前例。也许现在还
不必过于悲观,一切都应该有转机。谁都知道中国经济发生了重大问题,就象一辆出现明
显故障的高速列车,轰轰隆隆往前飞奔,不知何时将会出轨或者颠覆。有经济学家预言,
2008年中国经济将会硬着陆,届时,社会动荡不可避免。
那么,出了这么大的问题,而问题的症结究竟何在呢?
发改委专家马晓河指出:我国正在由某一方面的过剩向全面过剩演变。由于产能过剩,内
需不旺,中国产品被迫出口,又导致了大量的贸易摩擦,过分依赖国际市场的风险越来越
大。马晓河举例说:中国人向世界上的每一个人提供了一双鞋子,可见鞋的产能过剩多少
。11月23日,央行副行长苏宁也表示,中国最终消费占GDP比重已从上世纪80年代超过62%
下降到2005的52.1%,居民消费率也从1991年的48.8%下降到2005年的38.2%,均达到历史
最低水平。而在中国居民消费率持续下降的同时,世界平均消费率达78%—79%,比较起来
差别之大就如天上和地下。
上面两位,一位是宏观经济的专家,一位是金融权威,但指出的是一个共同问题,就是因
为内需不旺而导致产能过剩,一旦国际市场出现大的风险,中国将有成千上万工业企业面
临生存的危险。
让我们再来看看近几年推动中国经济高速发展的动因是什么:如果总揽中国经济全局就可
以发现,推动中国经济高速增长的一是投资,二是消费,三是出口,可以说这是并驾齐驱
的“三驾马车。”但是,在我国的实践中是“重投资、重出口、轻消费,”这是问题的表
象。为什么中国人会“重投资、重出口、轻消费,”呢?明知消费是生产力,没有消费就
没有生产力,这是一个浅显的经济学常识,但是在宏观经济发展的布局上,连马克思的剩
余价值理论都不顾及了?

再仔细分析,就会发现很有趣的现象:一是地方政府重投资,前几年表现的是“开发区”
热,后来是“基本建设”热,再后来就是现在的“房地产”热;二是大中型企业重工业产
品出口,不管是上市公司还是民营企业,只要形成了生产规模,眼光都瞄准了国际市场,
大到汽车,家电,小到鞋子,袜子,打火机,一古脑出口。就“投资”热而言,高房价圈
走了老百姓甚至两代人的财富,还有一代人背上了沉重的债务;就“出口”热而言,贸易
顺差继续加剧,贸易摩擦不断增多,人民币升值压力越来越大。
有经济学家分析,人民币自汇率改革以来升值了5%,现在的状况是有可能2007年一年就要
升值5%,相当于前10多年的升值总幅度。那么这个后果是什么呢?许多经济学家讳莫如深
,我可以大胆的告诉大家,后果就是人民币大量从不同渠道流出境,国际洗黑钱的势力乘
机介入,甚至可以把中国贪官的钱都洗白了。
可以说,在2007年之前,只听说外国人到中国来洗钱,这个局面也将因此而改变,中国人
终于到外国去洗钱了。再说得深入一点,就是中国人民创造的财富被别人悄悄地“盗走”
了,而“盗匪?发改委专家马晓河先生的话头上,看看如何解决产能过剩的问题。其实,
很简单,产能过剩的解决之道是刺激消费,而刺激消费的唯一办法就是降低房价。房价不
降,中国人对未来的预期必将产生较大的压力而不敢消费,还有一部分成了房奴无钱消费
。马晓河先生说,中国工业品利用率有半数低于50%,所以,为了减少风险,必须扩大内
需。而内需如何才能扩大呢? 中国居民的消费率是38.2%,世界平均消费率是78%—79%

中国居民平均房价收入比是一比十,世界平均房价收入比是一比,两相对照,中国经济问
题的症结就暴露出来,是高得离谱的房价将中国居民的财富搜刮一空,还拿什么去消费呢
?所以中国人的消费率创下了历史新低。有专家预测,中国房价每下降一个点,将为市场
一年增加100亿以上的消费,而中国房价从2006年前三季度的综合平均价位上,至少有30%
以上的下降空间,也就是说,只要中国房价下降30%,中国市场一年将增加3000亿的消费
总额,中国经济的问题也迎刃而解,中国民众也从此能过上好日子。
相反,我国要是领导人的决策事物就控制不好这个局面,我国的经济将会崩溃?事打击。
我们都清楚我们现在身处的国际环境有多恶劣。面对当前复杂的国际形势,中国一定要具
备打赢两场战争的能力,一是军事战争,二是经济战争。
用战争手段夺取别国别人的财富在人类历史上是很常见的。即使在21世纪的今天也还能看
到。为了保护中国人民的生命财产,以及可能爆发的军事冲突,中国一定要建设强大的陆
军,强大的海军,强大的空军和强大的天军(太空部队)。
在人类进入21世纪的今天,谁占领了太空这个制高点,谁就掌握了未来战争的主动权。任
何太空非军事化的想法,只能是白日做梦!
圣人说得好:落后是要挨打的!中国只有具备了彻底摧毁对手的实力,别人才不敢欺负中
国。

在人类进入21世纪的今天,由于国际交流和贸易的全球化,一场新的战争----经济战争,
已经取代军事战争,成为当今世界一部分人夺取另一部分人财产的主要手段.1997年东南
亚的金融风暴就是经济战争的一个例子。落后的东南亚国家经济受到了重大打击。国际金
融炒家以经济手段达到了以往要用战争手段才能达到的目标。
在少迟一点的香港金融保卫战中,时任香港政务司司长的曾荫权和财政司司长任志刚,在
中国中央政府的支持下,用大量外汇储备干预了香港的股票市场。中国中央政府派出了两
名央行副行长到香港,要求香港的全部中资机构,全力以赴支持香港政府的扶盘行动。经
过几个月的较量,香港政府成功击退了国际金融炒家把香港当作提款机的企图。那次的斗
争是非常激烈的,香港恒指变动1点,期货的买卖就会相差2.3亿港币。
香港金融保卫战虽然过去好多年了,我一直在想,如果没有强大中国做后盾,会不会发生
“八国联军”攻打香港的可能呢?毕竟香港政府干预香港股票市场违反了当今国际主流社
会的“规矩”。
中国航油(新加坡)在国际石油期货市场损失5亿美元和一位中国国资委职员在伦敦同期
投资再次被吃表明中国在金融市场方面还有很多东西要学。
就石油这一项,中国现在每年就要多花几百亿美元。现在是中国需要啥,国际商品市场就
涨啥。可以说是“抢你没商量”。 然而,石油等商品的价格对中国经济的危害并不是最
严重的。真正可能对中国经济的造成严重危害是人民币汇率体系和不断高涨的房地产市场
.我总觉得有人要以人民币汇率为突破口,搞垮中国的经济,夺取中国人民的经济成果。
从要人民币升值和自由浮动的叫喊声中,我好像闻到了军事战争的火药味。
现在有一个说得比唱得还好听得说法,让人民币汇率自由浮动,由市场来决定。
难道市场是有鬼决定的吗?由市场来决定,听起来挺公平的,大家都有权。但仔细分析一
下,世界上有哪个市场不是由少数人操中的呢?让人民币汇率由市场来决定,说穿了就是
由他们来决定。
February 06

初中同学聚会...

昨天刚刚和初中同学聚会了一次,而且貌似这是自从初中毕业以来和大家的第一次聚会,
时隔将近6年之后,变化真的很大。来得人也不是很多, 一共十人左右的样子,之中有好
多一部分只觉得很脸熟,知道是初中同学,但是名字嘛.....怎么也想不出来! 呵呵....
有点惭愧....不过喊不出名字的基本上肯定是初中里没有说过什么话,而且平时在班级里
也不是很出挑的那些.....这个没有办法的啦 ^_^
唱了一下午的KTV,顺便打牌、聊天之类的,很多的都已进工作有一段时间了,另外的几
个也是在实习或者正在筹划着找工作的事情。现在还能留在学校里学习,仔细想来倒还是
一件蛮幸福的事情,不必每天恪守严格的上下班时间,可以想怎么睡懒觉就怎么睡;可以
尽情享受一年3个多月的寒暑假、长假的悠哉! 没必要为了每个月几百块钱的实习工资看
老板的脸色。 而且更值得高兴的是,在可见的将来,还将继续在学校里面悠闲下去很长
的一段时间......想想真是幸福啊!
不过老实说,现在能和他们聊天的话题实在不多,有同学问我:
“现在在哪儿混呢?”
“没在哪儿混. 在学校读书!”
“什么学校?”
“上大!”
“噢!陈诗君不也在那儿嘛!”
“唔....看到过几次,不过基本上碰不到!现在跟他不在一个校区的。”
诶...这样很扭捏的回答他。
后来聊到以前班上的另一个同学,就是那种在初中里很不听话,整天骗父母的钱拿去打游
戏机的家伙,考试总不及格,老师经常去他家串门的那种。
“听说沈×去年进去了!是因为抢劫!”
“啊!”
弄得我很惊讶的消息。初中里也和他打过交道,至少没觉得他是个会去伤害别人的人,因
为他个子也不高,属于比较矮的那一类,就是不肯好好读书,要打游戏机。可能是后来和
那些整天混在学校门口和游戏机房里的那些小流氓相处久了,就去干了这样的事情的,诶
....真是不幸! 在学好学坏的问题上,我倒一直坚信 -- 一半的原因是因为:如果自
己没有足够的定力,没有主见而是事事都肯跟在别人后面的话,周围的环境一定会把你带
坏的。另一半的因素就是每个人命中注定的了。
记得有一段时间我跟他的关系还相处的很不错,当然这是建立在一种所谓的“互相的默契
”之上的。原因是这样的:班主任老师大概觉得我一副老实的认真读书模样,就布置给我
一个特别任务,让我每个礼拜二下午(比平时提早放学)放学以后到学校附近的几个游戏
机房逛一圈,看看都有班上哪些人在! 交给我这个任务的时候还顺便问了一句:
“你平时不打游戏机吧?”
“恩 不玩”
“那你知道这里都有哪几个游戏机房吗?”
“唔....知道一些!”
(心里想:靠!我怎么可能不知道!我小学一年级就去过几次游戏机房了,小学的寒暑假
都是在那里泡大的,要不然哪可能小学3年级就成了班上唯一的“四眼”呢!)
然后她又很详细地把她知道的地点告诉了我一遍。
然后我照着她说得挨个去检查!开始几次落网的家伙还满多的(当然我也是被叫进办公室
的人之一),而且大家都奇怪没看到老师来过。后来渐渐去的人就基本没有了.......
不过沈×还是每个礼拜二下午必定会去那里报到的,不过他换了一家离学校比较远的地方
,所以后来我干脆和他“表明身份”,他为了不给老师知道,每次都很“客气”地用游戏
币贿赂我让我一起玩KOF97,还传授我怎么才能通关的技巧。不过看他玩得得心应手,轮
到我每次就怎么也不行,的确是没有天赋啊。(不过奇怪的是,现在这个KOF97我还一直
无聊拿出来玩玩,倒是玩得很遛的说,可以达到他当年的那个水平了!)反正和他关系比
较密切的那一段时间里,一直都觉得他是个很讲义气的家伙,也不霸道,更不会主动去伤
害别人。至少没让我觉得他有这样的倾向吧!
......短短也就6年的时间,变化实在是很多.....最近颇有感触,本来一直以为一个人的
堕落或者发奋、一个家庭的兴盛与衰落应该会需要十年、二十年甚至更多几个十年的样子
,不过事实上我却发现用不了那么长的时间,一般来说十多年的时间让一个家渐渐走上正
轨应该已经算是足够长的了。而一个人的变化更用不了这么长的时间,也许2-3年甚至更
短的时间就足够了吧,原来和你还是没多少差别的,都在一样的起跑线上,现在.......物
是人非了已经!
February 02

忙忙碌碌又一学期.......

考试成绩终于全部出来了,两门“马克思”打头的课都只有良,诶!果然和马克思
八字不合 呵呵 不过我也确实没在这个上面花什么功夫,全都是最后几天的时间临
时赶出来的效果,其实想想,这样的结果就我这种学习态度已经是很不错的了!
这两天忙于在外奔波,为了我要买的新显示器--SAMSUNG 770P,昨天才终于好不
容易捧回来了,为了这家伙,我已经跑遍了几乎徐家汇、浦东太平洋、颐高和赛博
,好多地方都没这东西,真是稀罕之物啊!最后好不容易找到一家有货,价格还算
合理的,但还是没有白色一款的,无奈,最后只得捧了黑色的一台回来了,谁让我
对这台东西已经垂涎已久、非它不要呢。 嘿嘿......
用下来的感觉的确很爽,全身上下除了开关没有一个调节按钮,尤其是屏幕还可以
360度随意旋转,图像还可以跟随屏幕的旋转而进行90度或180度的翻转,这个功能
实在是太有创意了!^_^  这么好的显示器居然到处都没有货呢? 不过话说回来,
这个东西虽然三星已经几番大幅度降价,但还是曲高和寡啊!17寸的居然比19寸的
卖的还要贵一二百块钱,在当今这样追求大屏幕、宽屏的年代里,估计这样的东西
没多少人会买,我的品味一直跟别人不太一样,所以不买19寸的,选了这款。
诶! 看着这台摆在我面前的新显示器......真是奢侈品啊!加上一根新买的1G内存
,算了一下,这学期的奖学金连通明年这个时候“可能会到手”的奖学金全部都搭
进去了。哈哈.....“提前消费”的观念貌似蛮先进的! 不过为了争取拿到明年的奖
学金,下学期开始就不得不把自己卖给图书馆和自修教室的说,诶....真是苦命啊。
不管这么多了,好东东先用起来再说啦....^_^
超喜欢白色的一款,没有买到,只能下几张图片来望梅止渴啦! 放到相册里一起来
分享一下!
September 30

杀人游戏初尝试......^_^

昨天一天玩的真是爽到家了,本来以为要等到长假才可以消受的悠闲提前支取了啊.... 哈
哈! 和班级里的几个同学一起去了嘉定镇上兜了一圈,坐了将近有30分钟的车,总算到了一
个比学校周围看上去繁荣一点的地方,街上的各种专卖店还是开了不少,也有超市,大卖场
,不过从来购物的人手里拎着的大包小包的样子来看,估计嘉定区的居民们绝对是把那里当
成了南京路,淮海路那样的商业中心来对待了。看着从大卖场出来的人推车里面都塞了满满
一车东西,东西多得简直好像要打仗前的日用品物资储备一样,看上去来一趟大卖场也挺不
容易的貌似。
不过最值得一提还是我们7个人坐在大卖场旁边的KFC里面吃完东西后,让我有史以来第一次
玩了传说中很爽很爽的“杀人游戏”,第一次就让我把他们杀了个遍(嘿嘿....嘿嘿.....
哈哈...哈哈....),一个上帝,一个杀手,没有警察的规则,完全有大家来表决认为谁是
凶手,就喀嚓掉谁!
当我抽到那张杀手的卡片的时候(其实就是罗胖同学的饭卡,突然觉得那张胖乎乎、并且长
了不少小痘痘的脸露出一脸的坏笑,蛮有点冷血杀手的味道在面......),第一轮就k掉了
我的室友,平时他跟谁关系都一样,爱憎极其不分明的一个家伙,结果睁开眼睛以后,一圈
子人人在指认凶手的时候,包括被杀的那个家伙的最后遗言都没觉得我是凶手....!看来我
平时在大家眼中绝对保持着老实人的良好形象啊...... ^_^ 那一轮班长同学在指认别人是
凶手的时候还给出非常有力的理由说,当他第一个争眼的瞬间看到我和另一个人才慢慢抬起
头来,而在他看来,凶手一般不会再闭眼,而是等大家都争眼的时候装作自己是第一个睁开
眼的人坐在那里(不过我是第一次嘛! 当然就会很听话地按照程序争眼、闭眼,而不会装
做第一个争眼的人啦.....),班长同学排除了我的嫌疑之后,还继续在那里滔滔不绝地发
表他的推理,结果就是把大家的思路搞得一塌糊涂,最后指出了他认为的凶手。轮到我指认
的时候,我都不知道该说些啥了,所以随便指认了一个......   大家公投认为凶手是谁?
结果班长惨遭不幸,就是因为前两局连续被他抽到的杀手的卡片,然后把我们杀地一个不剩
.....所以, 嘿嘿.... 同学们,做人不能积怨太深啊!!!就这样我杀了一个,群众们又误
杀了一个!剩下的除了我是杀手,还有3个可怜的群众啊!(等待被杀中.....)
第二轮,紧接着上一局的混乱局面,我又杀了一个女生,现在还剩下2个活人,然后在他们
一致指认其中一个是凶手的时候,(我还是没有被其他人怀疑,除了那个被杀的女生觉得
不是我干的就是那个大家公认的凶手做的,但还是在大家意见得影响下排除了对我得怀疑,
呵呵....这个时候我心里面已经乐得快不行了,但表情还是忍住了,神情刚毅地坐在那里,
憋住了没笑出来,要不然就露出破绽咯....)。最后又有一名无辜地群众做了替死鬼,恩,
看来在破案技术手段不健全,找凶手全凭直觉的年代里面,像我这样长着一张善良、朴实的
脸还是很有益处的啊!
第三轮就不用说了,一个凶手,一个群众,我不杀他杀谁啊?是吧! 难道要我背负着白白
害死4条无辜的性命之后内心受到极度煎熬、折磨之后自尽嘛? 引用班长常挂嘴边的一句口
头禅:“这不是搞笑的么?”
** 总结经验:平时一定要深藏不露,装作完全没有威胁性的样子!等到你摸到那张杀手的
卡片的时候......嘿嘿.....你爱干嘛就干嘛去吧!不过貌似人格会变得有些问题的说....
嘿嘿....
September 13

低调开始......

早上的食堂真是恐怖,离上课还有大概一刻钟的时候,急匆匆得赶到了食堂,不过一看就晕了,四排队伍排得几乎到了食堂门口,估计买到早饭也已经是上课时间了,不过还好临时想起,二楼还有个清真食堂,果然那里一个排队的也没有! ^_^ 不用饿着肚子听课了,幸免于难啊!
不过总的来说嘉定的伙食还不错,具兽人罗分析,可能是由于这里是郊区的,离什么附近的养猪场,养鸡场,种菜的地特别的近,省去一大通交通运输费,中间环节费用所以就这么价廉物美!
不过这两天下雨就有点让人很不爽了, 第一天上课中午回来就被浇了一身,本来想走两幢楼的连接天桥而少淋一些雨,不过一路从A楼到了B楼,再到C楼,结果C楼底楼的们全部都被锁死了,诶,没办法,只好再返回去,而这时候小雨已经慢慢下大了,想耍小聪明的下场啊!俗话说:“好的开始是成功的一半,第一天就被雨浇了;不过没有一个好的开始,说不定后面一样也会很旺的哦! 嘿嘿 *_*
September 03

继续MFC之旅......

乘着这两天比较空闲,又继续回到了《深入浅出MFC》的怀抱,捧起了8月初因为开始做程序
而只学了一半的MFC,不过觉得当时在读到一般的地方选择放弃,直接开始做计图还是明智之
举,后面的大多是深挖mfc的内部架构,消息流动路线图之类的,对需要“知其所以然”的
人很有帮助,不过对计图作业没太大用处。回过头来继续深挖,感觉比当时为了作业硬着头
皮上轻松多了,而且还是收获颇丰哈! 嘿嘿~!
还有看看软件工程的视频教程,至少现在还是觉得听这门课简直就只能当是在听废话,还好
偶还是端正心态,只是把这视频教程当作一次预习啦,而不是彻头彻尾的自学,就当听一个
讲的不怎么的故事! 凑和着听吧!
学累了就看看片子,开始我的NCIS(NAVY CRIMINAL INVESTIGATIVE SERVICE)之旅,基本上
是跟CSI同类型的题材,而且也同样是由CBS拍摄的,不过好像更加偏重于故事的情节而不是
秀一秀高超的调查手段,这方面看起来更加刺激一点。不过里面的语速太快了点,字幕也有
很多翻译有点问题的地方,光靠听我基本上属于听不懂的那种,而且里面那些军衔,船名、
人名之类的又特别对不上号! 诶......英语水平不行了!荒废了一个学期了已经.......
还是加把劲争取一点点能多听懂一些!
August 31

......

本来想赶在半夜12点整之前按下发送按钮的,不过看在是第一次给这个老师提交作业的邮件
,还是在邮件里面把附件的内容说明了一下,这样一搞,按下发送按钮的时候时间已经跳到
了0:01。赶不上做完程序、写完报告当天提交的末班车,反倒是成了8月31号第一个提交作
业的了。Surprise至极了...... ^_^
不过总算是所有的作业都over了, 后面做的真的有点心烦意乱,做不下去的感觉,所以从
20号做完图形学的程序,之后在家里晃荡了3天时间到,23号才开始做数据结构的第一个,
拖拖拉拉做了4天,边做边写报告,所以报告写的断断续续,貌似一团糟的样子。
在着手开始搞第二个之前的一天时间,基本上都是赖在床上消磨掉的。早上10起来,吃完了
早饭,一头倒在床上就睡着了;12点半被老妈叫醒,吃午饭,完了之后看了会电视觉得有点
累了,回到自己房间,结果栽倒到床上又睡了,睡到了差不多5点半吃晚饭的时间起来;晚
上也不想做事,看电视到12点就决定去睡了。^_^ 幸福的一天就这么转眼间就结束了,简直
过得跟“猪”差不多。吃了就睡,睡醒了接着吃!呵呵
吃饱了,睡足了,接着第二个也就开工了,没想到出奇的顺利啊!可能也是因为2个程序的
架构差不多吧,很多地方可以参考,结果从晚上8点钟左右开工,到了半夜2点的时候就发现
居然已经把大概样子做的差不多了,剩下的无非就是一些按钮的变化之类的完善工作。然后
就是昨天完善功能和今天的搞定报告!总算解放啦!*_* 这一天盼得我好苦啊!T_T
肯定还有许多同志们仍在艰苦奋斗之中,革命尚未成功,加油吧!还有6天时间......
不过总结还是要总结一下,(虽然我的程序报告连小结也不想写就交上去了!反正要求上没
说要!^_^) 总结为什么这个暑假过得那么失败......
究其原因就是策略不正确,一开始就是想速战速决,想要用过去已经被每趟寒暑假验证过无
数次,屡获成功的办法--一个礼拜搞定全部作业,然后疯狂地玩一整个暑假。这次本来也
是这么打算的,当然作业的时间被放宽到了最晚5个礼拜完成。不过还是估计不足啊......
一开始信心满满,心血来潮,准备大干一场,拼命的看英文版的Programming Windows,结
果还是没有在预期deadline之前搞定全部3个程序,后面就越来越像是被作业赶着逼着一点
一点地痛苦煎熬,效率奇低......如果早一点改变一下策略,可能效率就会不一样啊!
再就是没有合理的作息时间,每天晚上到深夜2点,早上11点起床,基本上午都是一事无成
的度过的,用一上午4个小时的时间换深更半夜的2个小时,这一点划不划算呢?尚值得商榷
啊! ^_^ 谁让我就是喜欢白天晃荡,专挑晚上做事呢!
留给自己这个暑假的也就最后的11天时间,该稍微让自己好好地放纵一下了,从今天开始,
可以么有压力地玩游戏,看碟,看演唱会LIVE...... 想到这里真的好爽啊!
恩,不过还是先好好睡觉,养精蓄锐再说!  ^_^
August 20

图形学交差咯! O_O 累啊!

忙活了这么久时间的东西,程序写了2千行还是3千行连我自己都没有加起来算过,总算忙出头了,从16号搞定Bezier以外的全部代码到今天,写了整整2天的报告,另外和朋友一起泡了2天,聊聊天,看看电脑上的片子什么的(老实说这报告基本上是脚踩西瓜皮想到什么就写什么的,反正老师那么懒的家伙也不会一个字一个字的去看,不过程序还算是认真编的,毕竟对自己的水平有所提高。^_^)我算是终于脱离苦海啦! 哈哈~~!(恩!值得放肆地大笑一下)大概还有不少同学正在忙着赶着交差,还要继续奋斗几天,大家加把劲哦!
写的不好,请多多包涵啊!刚才挂上来的时候竟然还说篇幅太长了,要我删掉一些内容。没办法只好挂分开贴上来,后一半先贴,这样顺序看下去正合适。
******************************************************************************************

计算机图形学课程设计报告


软件简介及软件功能介绍
 本软件采用C++编写,编写环境为Visual C++ 6.0 SP6,同时在Visual Studio.NET 2003 环境下编译测试通过,不会产生任何警告和编译错误信息。采用Visual C++ 6.0 的MFC AppWizard 生成的一个MFC应用程序框架,支持MFC应用程序的Document/View体系结构,程序采用单文档界面,一次同时只能打开一个视图,并且支持文件的读写保存,保存下来的文件后缀名为*.leo。
 跟随本报告在一起的压缩包中有一个名字是LEO的文件夹,里面包含了图形学课程设计的全部源代码,工程文件以及资源文件,工程的名字也同样是LEO,(我的英文名,这样编写过程当中比较容易记忆)。
根据MFC AppWizard默认生成的类名如下:CLEOApp, 应用程序类,里面含有一个全局对象CLEOApp theApp, 代表这个应用程序本身,从CWinApp公有继承而来,另外还生成了CLEODoc类,负责后台图形数据的管理,CLEOView类,从CView公有继承而来,负责用户界面的显示,更新,接受用户的键盘和鼠标的输入信息(注意:不是从CScrollView,继承而来的,所以本程序不能支持滚动条,也就只能在屏幕大小的可见范围内绘制图形,不过第一次编制这么复杂的程序,没有很大握把,所以没有加入滚动条进去。小小的遗憾!)最后是CMainFrame类,负责这个应用程序窗口工作,在整个程序的编写过程当中,只有我们为了将自己的工具栏挂上去的时候才做了一点小的改动,一般没必要做太大的工作在这个类上面。这里将所有的MFC AppWizard默认生成的类名做了一个简单的交代,以便于在报告后面详述编写过程时用到的类名可以预先做一个伏笔,这样的引入应该不会让人觉得太突然吧。
图形系统的设计思路
下面首先简单介绍一下图形系统的类层次结构设计:
类层次结构
关于图元基类CShape的一点讨论:
最底下一排的6个不同的基本图形类,都是由一个图形基类CShape派生而来的 ,虽然CShape类从概念上说只是一个抽象的概念,但是我们并不把它设计成为一个抽象类,也就是说CShape里面不允许拥有任何一个纯虚函数,即便基类中的这个函数具体要在各个派生类之中才可以给出具体实现,也必须做一个什么语句也没有的空函数留在那里。不能够将CShape类做成抽象类的原因是因为
我们要对CShape类的数据成员序列化,就要用到MFC的IMPLEMENT_SERIAL宏,而宏的执行过程中将会创建一个CShape对象作为函数的一部分,而一个抽象类是不能创建任何对象的,这与我们设计的本意有所违背。因而,在程序处理上,不将CShape作为抽象图元基类。
类层次结构的异同:
由CShape类派生出两个类,一个是非封闭图形类,其子类包括直线类,折线类和Bezier曲线类,另一个是封闭图形类,派生出的子类有椭圆类,多边形类和矩形类。这样的类层次结构和那份课程设计指南中给出的类层次结构相似,唯一有些不同的是椭圆类(CEllipse)和矩形类(CRectangle)在这个程序里面是两个相互独立的、由封闭图形类派生而来的,之间没有任何的继承关系。因为从现实经验来讲,椭圆和矩形本来就是两个完全不同的概念,如果仅仅是为了节约代码而从CRectangle类派生出CEllipse类,比较容易破坏整个图形软件的逻辑结构基础。
交互绘图过程的消息的处理:
接受用户鼠标点击消息的是CLEOView类,相对应WM_LBUTTONDOWN, WM_LBUTTONUP, WM_MOUSEMOVE以及WM_LBUTTONDBLCLK分别有对应的消息处理函数OnLButtonDown(UINT nflag, CPoint point); 诸如此类等等。
不过绘制所有基本图元的鼠标消息处理的代码都要在这个函数里面实现的话,不免有些混乱。为了程序代码的便于维护,以及考虑到各个类体的良好的封装性质,所以将每个基本图元类对于鼠标点击和移动消息的处理全部封装到各个类体之内。具体实现方法如下:(此方法参考《Visual C++实践与提高》一书)
在基类CShape中加入如下虚函数,函数体为空,具体实现由每个派生类根据各自图元类不同的性质决定。
函数声明如下:
// In Shape.h file.
 virtual void MyLButtonDblClk(UINT nflag, CPoint point);
 virtual void MyLButtonUp(UINT nflag, CPoint point);
 virtual void MyMouseMove(UINT nflag, CPoint point);
 virtual void MyLButtonDown(UINT nflag, CPoint point);
函数的参数完全仿照CLEOView类中鼠标消息处理函数的参数类型。但这些仅仅是各个图元类中的成员函数,和CLEOView中的消息处理函数只是函数名和参数类型上的接近,而实质上有着本质的区别。我们不妨暂且将它这样4个一类函数称之为“伪消息处理函数”。
因而你可能在CLEOView::OnLButtonDown(UINT , CPoint )代码中看到这样的语句:(其中m_pShape是CLEOView中的一个类成员变量)
 case TT_LINE:
  m_pShape = new CLine(); //m_pShape是一个CShape对象指针;
m_pShape->MyLButtonDown (nflag, point);
  m_bOperating= TRUE;
  break;
运用虚函数机制,运行时刻自动识别对象类型,自动调用该对象所属类的虚函数。
这样处理的另一个好处就是,因为MyLButtonDown(UINT, CPoint)是图元类的公有成员函数,所以可以直接对图元类的私有成员变量进行操作,而不必通过类的公有接口函数对私有变量进行操作,进一步简化了程序的编写。同时函数将鼠标消息的参数不走样地传递给了图元类的“伪消息处理函数”,以便于在后续功能的扩展中方便地进行对诸如是否SHIFT,CTRL键被按下的相应处理,而不需要特地将这一信息作为一个BOOL型的函数参数来传递。
全局变量的设置:
上面将消息处理的语句分别封装到了每个绘制基本图元的类中来实现,确实应该说是个理想的方法。不过,要知道的是,图元类都是从CShape一层一层派生而来的,而我们在CShape里面没有声明过类似于CLEOView对象或指向它的指针,也就意味着我们不可能在从CShape派生出来的图元类中进行设备环境的获取(GetDC)和释放(ReleaseDC)。显然,如果我们没有一个CLEOView  * m_pView对象指针,也就不能在CShape的派生类里面写如下代码:
  CDC * pdc = m_pView->GetDC();
  ……
  m_pView->ReleaseDC(pdc);
这也就意味着我们可能无法在CLine的鼠标左键按下和释放两个“伪消息处理函数”里面进行直线的绘制工作。
解决这个问题的办法我临时想了想,有这样3种方法:
1. 在CShape里面加入声明 CLEOView * m_pView; 但是问题又来了,初始化怎么解决,我怎么让m_pView初始化的时候去指向当前View呢?这个问题我直到现在还是没有办法。
2. 既然我们在CShape::MyLButtonDown(UINT, CPoint)这一类函数里面多加入一个参数CDC *pdc传递过去,不过所有的MyLButtonDown(UINT, CPoint)这一类函数都是在CLEOView::OnLButtonDown(UINT, CPoint)里面以 m_pShape->MyLButtonDown (nflag, point)的形式被调用的,鼠标消息传递过来的时候也没有包括CDC对象指针,还需要另行获取和释放。
3. 第三个办法可以称得上是一劳永逸,就是声明全局变量,有了指向当前View的全局变量视图指针,无论在程序的哪个部分,哪个函数里面,都可以随时获取和释放CDC对象指针,进行各种图元的绘制工作。(此方法参考《Visual C++实践与提高》一书)
具体实现过程如下:
 (注:在定义指向当前View的全局变量指针的同时,我们还定义了一个指向当前Document的全局变量指针,原因就不用多说了吧,为了随时使用方便。)
 在LEO.H头文件中进行如下声明:
  extern class CLEOView  * g_pView;
  extern class CLEODoc  * g_pDoc; 
为了程序其他文件在包含LEO.H头文件的时候就知道有这么两个变量;
 在LEO.CPP文件中对声明进行初始化:
  CLEOView  * g_pView=NULL;
  CLEODoc   * g_pDoc=NULL;
初始化为NULL只是暂时让声明的全局变量不要乱指,为了分别让这两个全局变量指向当前的View 和 Document,还要进一步初始化:
//In CLEOView.cpp file
CLEOView::CLEOView()
{
 g_pView=this; //在CLEOView类的构造函数中对全局变量进行赋值;
}
//In CLEODoc.cpp file
CLEODoc:: CLEODoc()
{
 g_pDoc = this;
}
以上介绍的是这个图形软件的基本层次结构和设计的大致方向,也预先做了一些全局变量的准备工作。接下来的内容就是如何一步一步实现具体的代码编写和阐述编写程序过程中所产生的一些问题。
软件的具体编程实现
工具栏的制作:
我们打算为图形软件制作一个按钮工具栏,这样可以方便用户随时点击需要的功能按钮和绘制图元的种类,而不必每次都到菜单里面去找。那么首先要在资源里面创建一个空白的工具栏,这里我创建工具栏的资源ID为IDR_TOOLBAR, 然后一个一个完成按钮的图标。(工具栏最终效果如下图所示)
图三
正如前面提到由MFC AppWizard默认生成的几个类之中,只有在制作工具栏的时候需要对CmainFrame类做小小的改动,现在我们就要做前面所说的小改动。在CMainFrame.h文件中,加入一个Protected成员变量,定义如下:
  CToolBar  m_wndMyBar;
这就定义了一个工具栏对象,接着要做的就是在CMainFrame.cpp中进行修改
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{  //创建自己的绘制图形的工具栏;
 if(!m_wndMyBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD |
WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY) ||  !m_wndMyBar.LoadToolBar(IDR_TOOLBAR))
 {
  TRACE0("Failed to create toolbar\n");
  return -1;
 }
m_wndMyBar.EnableDocking(CBRS_ALIGN_ANY );
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndMyBar);
}
通过CToolBar :: CreateEx( CToolBar, …..) 函数将工具栏资源和CToolBar 对象m_wndMyBar联系起来,并且用后面3句语句设定了工具栏的停靠属性,这里的工具栏设定为可以停靠在窗口的任何地方。
最大化窗口:
// in LEO.CPP file
BOOL CLEOApp::InitInstance()
{
//找到函数中这样一句语句; m_pMainWnd->ShowWindow(SW_SHOW);更改为
 m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
}
这样就可以使得程序在启动的时候就可以最大化到满屏幕大小,给出了更大的绘制区域。
从CShape开始图元类编写:
根据上面给出的图形类的层次结构,接下来的工作就该是逐个编写图元类了,首先我们来看看这个图形软件的CShape类中到底有哪些成员变量。
class CShape : public CObject 
{
 DECLARE_SERIAL(CShape)
 ……
 int  m_PenStyle;   //画笔风格
 int  m_PenWidth;  //画笔宽度
 COLORREF m_crPenColor; //画笔颜色
CRect m_rcBoundingRect; //图元的包围盒矩形
 BOOL m_bVisible;   //图形是否可见,图形删除后改值等于FALSE;
 BOOL m_bSelected;  //图形是否被选中,默认情况下为TRUE;
public:
static int m_UserPenStyle; //用户自定义画笔风格
 static int m_UserPenWidth; //用户自定义画笔宽度
 static COLORREF m_UsercrPenColor; //用户自定义画笔颜色
};
从int m_PenStyle到BOOL m_bSelected这6个成员变量就不必多废唇舌了,至于后面这3个类中的静态成员变量,他们的作用就是分别对m_PenStyle,m_PenWidth,m_crPenColor三个变量进行赋值。赋值的操作实现在CShape的构造函数中有这样的语句:
CShape::CShape()
{ ……
 m_PenStyle = m_UserPenStyle;
 m_PenWidth = m_UserPenWidth;
 m_crPenColor = m_UsercrPenColor;
}
每次当生成一个从CShape派生类的对象时,譬如说:m_pShape= new Cline();
就会自动地隐式调用基类的构造函数,CLine对象中的成员变量就是在这个时候被赋予了用户指定的线条风格,宽度和颜色的值。那么用户定义的线条风格,宽度和颜色又是从何而来的呢?因为这3个都是静态成员变量,所以可以在Shape.cpp文件中直接给出它们的初始化值。而且,正是因为它们是静态成员变量的缘故,要对他们重新赋值也非常的容易,可以在程序的任何一个地方进行,唯一的必要条件就是要预先包含头文件Shape.H。可以方便地将用户输入的新线条属性赋值给m_UserPenSytle,m_UserPenWidth,m_UsercrPenColor这3个变量,随之后来绘制生成的每个图元都会自动具有用户定义的线条属性值。这样也就免去了每次生成一个图元对象就将所有的线条属性赋值一遍给新对象的麻烦,徒劳增加代码长度。后面将具体叙述如何将用户定义的线条属性赋给这3个静态成员变量,实现的方法也是相当的简单明了。
在CClosedShape类中也有类似关于画刷属性的设置,同样是3个静态成员变量:
class CClosedShape : public CShape 
{ ……
 static int m_UserBrushStyle; //用户定义画刷风格
 static int m_UserBrushHatch; //用户定义画刷图案
 static COLORREF m_UsercrBrushColor;//用户定义画刷颜色
};
在CClosedShape类的构造函数中赋值给了int m_BrushStyle,int m_BrushHatch;和COLORREF m_crBrushColor这3个封闭图形对象所具有的属性。
在CShape的类体声明中出现的这样一句DECLARE_SERIAL(CShape),是使得CShape这个类可以具有Serialize功能,然后在CShape类的定义文件中添加宏IMPLEMENT_SERIAL(CShape,CObject,1),然后重写从CObject类继承过来的虚函数void Serialize(CArchive &ar);尤其需要注意的是,每个具备Serialize功能的类在重写从基类继承过来的void Serialize(CArchive &ar)函数的时候都必需先调用基类的Serialize(CArchive)函数,并且把参数ar传递给基类的Serialize函数,紧接着再进行自身类成员变量的写入文件或者读取文件。
而CShape类中的其它一些函数大部分都是虚函数,在图形基类里面什么也不能做,只是个函数的空壳子,具体的实现视每个具体的图元类不同而各异。

续上一篇

续上一篇

CLEOView成员变量和消息函数编写:
在CLEOView类中,用于进行交互图形绘制的成员变量主要有一下几个:
class CLEOView : public CView
{
public:
 int  m_ToolType; //绘制图形的类型
 BOOL m_bOperating; //表示图元是否已经开始绘制
 BOOL m_bCanDraw; //在按下左键并移动到新位置才表示绘制有效图元
 CShape * m_pShape;
};
前面3个成员变量已经不必多说了,第四个变量CShape *m_pShape作为CLEOView的成员变量,其作用等同于将所有可以绘制的图元类全都留一个新对象在CLEOView类中,唯一的区别就是用一个基类指针可以任意指向派生类的对象,再结合前面说到过的“伪消息处理函数”,可以进行如下形式的调用:
//in CLEOView.CPP file
void CLEOView::OnLButtonDown(UINT nflag, CPoint point)
{ ……
 switch(m_ToolType)
{ case TT_LINE:
  m_pShape = new CLine ();
  m_pShape->MyLButtonDown(nflag, point);  break;
 ……
 case TT_RECTANGLE:
  m_pShape=new CRectangle();
  m_pShape -> MyLButtonDown(nflag,point); break;
}// end of switch
}
这样的处理就把绘制直线和矩形这两个不同图元的具体过程语句分别封装到了CLine 和 CRectangle 这两个类体里面了。每次按下鼠标,就生成一个新的图元,然后移动和释放鼠标左键的消息也通过和上面代码中同样的手法,去调用图元类里的“伪消息处理函数”。
但是,这个方法在具体编写代码的时候还有需要注意的问题,问题出现在使用鼠标绘制PolyLine和Polygon的方法不同于绘制直线和矩形的方法。绘制PolyLine的时候,每次点下鼠标左键表示添加一个新的结点,如果在上面的switch代码中加入这样的语句:
  case TT_POLYLINE:
   m_pShape = new CPolyLine ();  //一开始很容易这么写的,初看没错
   m_pShape = MyLButtonDown(nflag, point); break;
不过如果这样写的话估计永远也不要想画出折线了,问题出在new CPolyLine()上面,试想一下,每次点击一下鼠标都将导致触发m_pShape指向一个新生成的CPolyLine对象,而我们想要的是第一次点击时生成新对象,后面单击只添加新的结点位置到存放结点的CArray<CPoint, CPoint &>类型的数组中,这显然有所违背我们设计程序的本意。于是做如下修改即可将问题解决:
  case TT_POLYLINE:
   if( ! m_bOperating ) m_pShape = new CPolyLine();
   m_pShape = MyLButtonDown(nflag, point);
m_bOperating = TRUE;  break;
同样,绘制多边形的代码也可以如法炮制,因为多边形无论从鼠标绘制的手法以及程序内部的数据结构来说都可以说和折线是相当接近的。
CLEODoc成员变量和函数接口:
CLEODoc类,也就是由MFC AppWizard自动生成的文档类,虽然其成员变量非常少,仅仅只有3个,但是却在整个程序中有举足轻重的作用,它提供了已经绘制图形链表的保存,窗口内容的重绘,也提供了各种对已经绘制图形的操作函数,例如点选图形,圈选图形,删除图形,平移、缩放、旋转和翻转图形的接口函数都在CLEODoc这个类中实现,肩负了在后台维护图元数据结构的任务。以下是其成员变量:
class CLEODoc : public CDocument
{
public:
 CObList  m_ShapeList; //保存绘制图形对象的链表
 CArray< POSITION, POSITION & >  m_SelShapePos; //选中图形的位置
 int  m_SelShapeCount; //被选中图形的数量
};
其中,m_ShapeList用来保存已经绘制的图形,可以用在屏幕刷新以后的重绘时恢复保存的数据,具体函数可以参考CLEOView::OnDraw(CDC *pdc)这个函数。
这是一个需要用户自己改写的的函数。
当然m_ShapeList除了重绘图形的用途之外,还有很多其他作用,所有点选、圈选、平移、缩放、旋转一系列对于图元的操作都离不开m_ShapeList这个变量,当然,后面列举的这些操作的实现必须和CLEODoc中的后面2个成员变量结合使用才可以实现。
CArray< POSITION, POSITION & >  m_SelShapePos 这是一个存放了被选中图形在CObList m_ShapeList这个链表中的位置的模板数组,在CLEODoc类的处理上,我们没有把被选中的图形另外拷贝到一个新的CObList 链表中进行保存,因为这样的话,我们就不得不在每个图元类里面编写一系列的拷贝构造函数来实现,增加了代码的复杂程度。而这里的做法仅仅是记录被选中图形位于链表m_ShapeList中的POSITION, 在函数中要进行存取或者修改的话,同样非常方便,以下是一小段用于将m_ShapeList中所有选中图形扫描一次的代码,通过调用CObList的成员函数GetAt(POSITION &pos)来获取图形指针:
 int count = m_SelShapePos.GetSize();
 for(int i=0; i<count; i++)
 {
  POSITION pos = m_SelShapePos[i];
  CShape *pShape = (CShape *)m_ShapeList.GetAt (pos);
 }
程序中,当需要对选中图形进行平移、旋转、缩放等变换的时候都有用到这样一段代码。
这样2个成员变量就基本上可以完全满足程序所要求实现的所有对于图元的操作了,至于第三个变量int  m_SelShapeCount,记录选中图形的数量,这个倒不是非常重要,因为CArray模板数组本身就提供了成员函数GetSize()来返回当前数组中大小,只要在程序里面保证将数组大小初始化为0,添加元素的时候再动态增长,清空以后将数组大小还原到零,那么在整个程序运行的过程中就可以永远保持数组大小和元素个数一致了,通过取得数组大小来知道选中图元的个数。
一个具体图元类(CRectangle)的实现:
CRectangle类有两个成员变量作为存储一个矩形的数据结构:
BOOL  m_bFormed;   //表示是否完成绘制,初始值为FALSE
CRect  m_rcRect;  
成员变量CRect m_rcRect存放的是这个矩形四个方向上的边界,也就是这个矩形本身。 而这里还要用到另外一个BOOL型变量m_bFormed表示该矩形是否已经绘制完成,理由有这样几个:
1. 绘制仍然在鼠标拖动中的图形,需要使用与完成绘制图形不同的颜色画笔选入设备环境之中,而将不同种类的画笔选入设备环境的工作的语句是位于CRectangle::Draw(CDC *pdc)函数之中,在CRectangle类中添加一个BOOL型成员变量有利于作出判断。
2. 对于正在绘制状态中的封闭图形,应该暂时不显示其内部的填充属性,以避免屏幕过多地刷新,而影响图形绘制的效率。也就应该在CRectangle::OnDraw(CDC *pdc)函数中加入判断语句,如果m_bFormed==FALSE的话,就不要初始化CBrush对象来进行封闭图形内部的填充。
这些判断都应该在CRectangle::Draw(CDC *pdc)函数中完成,所以非常有必要对CRectangle类添加这样一个BOOL类型的成员变量。
上面提到的Draw(CDC *pdc)函数大体结构如下,具体代码参看源文件:
 CRectangle::Draw(CDC *pdc)
 {
  if(m_bFormed = = FALSE)  {将绘制橡皮框的画笔选入设备环境;}
  else if (图形被选中)   {选入绘制选中图形的画笔;}
  else  {根据用户定义线条属性,创建画笔选入设备环境;}
  if(m_bFormed = = TRUE){根据用户定义画刷属性,创建画刷选入设备}
  最后进行绘制图形;
}
交互绘制矩形(CRectangle)的实现:
前面提到过每个图元类里面都有的“伪消息处理函数”将交互绘制图元的具体绘制过程全部封装到了这些个“伪消息处理函数”中。但还是要来具体分析一下从鼠标按下à移动à释放这3个步骤中到底做了那些背后的工作。
以下是绘制矩形对于3个鼠标消息的处理函数的过程概述:


void CRectangle::MyLButtonDown(UINT nflag, CPoint point)
{ SetRectangle(point,point); }
void CRectangle::MyMouseMove(UINT nflag, CPoint point)
{
 CDC *pdc= g_pView->GetDC(); //用到了全局变量来申请设备环境指针;
 Erase(pdc); //在R2_NOTXORPEN绘图模式下绘图,一次写,二次擦;
 BottomRight(point);
 if(nflag & MK_SHIFT) { 进行绘制正方形的处理;}
 Erase(pdc);
 g_pView->ReleaseDC (pdc);
}
void CRectangle::MyLButtonUp(UINT nflag, CPoint point)
{ ……
 Erase(pdc);
 BottomRight(point);
 if(nflag & MK_SHIFT) { 进行绘制正方形的处理;}
 Draw(pdc); //绘制最终图形
 g_pDoc->m_ShapeList.AddTail(this); //将图形加入图形链表保存
}
在编写MyLButtonUp(UINT, CPoint)中的时候,必须要做的一件事情就是要擦除最后一次留下的橡皮框,Erase(pdc);这并不是可有可无的一句语句,在这个函数中。因为在调试的时候会发现,如果少了这句,不按下SHIFT键的时候没有区别,因为最后的Draw(pdc)可以将橡皮框覆盖掉,用户不会看见。不过倘若用户在移动时按住SHIFT键,释放鼠标时没有按住SHIFT,绘制出来的结果将是长方形,而屏幕上留着最后一次的橡皮框没有擦除。以上就是关于CRectangle的成员变量的介绍,以及在类体内完成交互绘制的内容,其他CRectangle类的成员函数的具体实现可以直接参考源代码。
点选和圈选功能:
实现这样两个功能又必须得回到对于CLEOView和CLEODoc类的讨论,对于点选图形的实现,也就是判断鼠标点击位置和图形链表中所有保存图形的接近程度,也就是需要用到每个具体图元类从其基类CShape继承过来的虚函数 BOOL PtOnShape(CPoint ); 考虑到绘制图元被添加到图形列表的先后顺序,后绘制的图元被添加到图形链表的尾部,不过从用户的角度来分析,位于图形链表尾部的图形图层在上面,用户点击的时候应该优先被选中,所以在函数的处理上应该从链表的尾部开始向前挨个与鼠标点击位置做比较,如果在一定接近程度范围内,则优先被选中。由于这个图形软件在点选图形的编写上仍旧只支持点击来单选一个图形,而不支持通过按住SHIFT键进行多个图形的选取功能,因而在函数中设立了一个BOOL型变量bSelFlag,用于判断如果已经有一个图形被选中,那么就不再继续选择其他图形。大致的实现代码如下:
void CLEODoc::SelectShape(CPoint point, UINT nflag)
{
 BOOL bSelflag = FALSE;
 POSITION oldpos, pos=m_ShapeList.GetTailPosition ();
 while(pos!= NULL)
 { ……
  if(bSelflag) return;
  oldpos=pos;
  CShape * pShape = (CShape *)m_ShapeList.GetPrev(pos);
  if(图形没有被选中&& 图形可见 && pShape->PtOnShape(point))
{更改图形状态为选中;更新bSelflag标志; 添加oldpos到选中图形位置数组}
 }// end of while
}
至于图形的圈选技术,在这个软件中就没有一次只能够选中一个图形这样之类的限制了,圈选框采用的是CRectangle类的对象,拉出一个橡皮框的处理过程和前面叙述的交互绘制矩形的过程相似,只有小小的区别在于要将最后一次的橡皮框擦除,并且也不需要最后将这个矩形保留在屏幕上。
剩下的工作就是顺次沿着保存下来的图形列表一个一个地扫一边,逐个比较图形列表中保存着的对象的矩形包围盒跟用户拉出的圈选框的包含关系,如果图元的包围盒位于该圈选框之内,则意味着被选中,更新该图元对象的m_bSelected成员变量。具体实现圈选图形的代码可以参考CLEODoc.CPP文件中的void CLEODoc::SelectShape(CRect)函数。
墨水瓶和油漆桶功能的实现:
实现改变已经绘制图元的线条和填充颜色,需要用到这2个功能,具体的实现如下。前面在介绍CShape类成员变量的时候已经有提到过这样3个变量。
class CShape : public CObject 
{ ……
public:
static int m_UserPenStyle; //用户自定义画笔风格
 static int m_UserPenWidth; //用户自定义画笔宽度
 static COLORREF m_UsercrPenColor; //用户自定义画笔颜色
};
而每次在图元的构造函数调用基类CShape的构造函数对画笔风格(m_PenStyle)
画笔宽度(m_PenWidth)和画笔颜色(m_crPenColor)进行赋值的时候,都是使用这3个用户定义的类静态成员变量对所要绘制的图形的线条属性进行赋值的。也就是说,只要我们改变CShape类中的这3个静态成员变量,那么以后每次绘制出来的图形都将以改变后的线条属性显示出来,而且又因为这3个是类静态成员变量,所以对它们的赋值改变可以在类外的任何地方进行,唯一的必要条件也就是要包含头文件#include “Shape.h”。在这个图形软件中,用户改变线条属性是通过一个叫做“线条属性对话框”的东西,在菜单上选择“属性”à“线条属性”就可以弹出该对话框。具体实现这个对话框的时候,除了在资源里面进行对话框面板的设计,还另外生成了一个对话框类CLineOPT,此类中有3个成员变量m_LINESTYLE,m_LINEWIDTH,m_LINECOLOR分别与m_UserPenStyle, m_UserPenWidth,m_UsercrPenColor一一对应,在CLEOView中添加弹出对话框并进行数据交换的代码如下:
void CLEOView::OnLineOpt()
{ ……
 CLineOPT instance;
 if(instance.DoModal () == IDOK)
 {
  CShape::m_UserPenWidth=instance.m_LINEWIDTH ;
  CShape::m_UsercrPenColor =instance.m_LINECOLOR ;
  CShape::m_UserPenStyle= instance.m_LINESTYLE ;
  Invalidate(TRUE);
 }
}
m_LINESTYLE,m_LINEWIDTH,m_LINECOLOR这3个CLineOPT中的成员变量,分别保存的是用户通过线条属性对话框设置的线型,线宽和线条颜色的值。
以上这一部分仅仅是使得设置线条属性以后,绘制出来的图形线条具有用户定义的属性。但是如果要改变已经绘制的图元的线条属性,还需要将图形对象链表中将所有图形扫描一遍,如果鼠标点击的位置恰好位于图形上,则直接用用户定义的线型属性来更新被点击的图形的边框。实现这个功能是在CLEODoc::InkBottle (CPoint point, int PenStyle, int PenWidth, COLORREF crPenColor)函数中,大致代码如下:
void CLEODoc::InkBottle(CPoint point, int PenStyle, int PenWidth, COLORREF crPenColor)
{
 BOOL flag=FALSE;  //标志位,只对遍历到的第一个图元改变线条属性
 POSITION pos=m_ShapeList.GetTailPosition ();
 while(pos!= NULL)
 { if(flag) return ;
  CShape *pShape = (CShape *)m_ShapeList.GetPrev(pos);
  if(pShape->m_bVisible && pShape->PtOnShape (point))
  { flag=TRUE; 对pShape指向的图元改变其线条样式、宽度、颜色;}
 }//end of while
}
这样就算基本完成了墨水瓶按钮所需要实现的全部函数。照葫芦画瓢,我们也可以实现程序对已经绘制封闭图元的内部填充属性的修改以及设置将要绘制的封闭图形的填充属性。具体的实现方法可以参考代码中的CLEODoc::BrushPaint(CPoint point, int BrushStyle, int BrushHatch, COLORREF crBrushColor)这个函数。
以上就是一些关于在编写这个图形软件过程中具体细节实现的一些方法和思路,以及阐述了编写过程当中碰到的问题和解决的方法。更多细节请看源代码中的实现。
系统的简单测试
我只对这个图形软件的每个功能做了简单的测试,并且也从中发现了隐藏在其中的一些小小的问题,虽然有些错误完全不会影响对这个软件的使用(譬如:选中一个图形后,再选择某个图元按钮,图形仍然被选中着),不过从用户的角度来讲,应该并不希望发生这样的情况,所以还是将它更改过来。
以下仅仅列举了一些我自己在测试这个软件过程当中测试过的功能,也许还不是面面俱到:
1. 绘制直线的是时候按下SHIFT键,是否可以在8个方向上绘制出水平、垂直或者斜向45度的直线。
(测试结果:通过)
2. 绘制矩形或者椭圆的时候按下SHIFT键,是否可以在东南、东北、西南、西北这4个方向上分别绘制出来正方形或者圆形橡皮框。
(测试结果:通过)
3. 对每种图元分别进行如下测试,在屏幕上绘制两个或者多个完全重叠的相同图形,赋以不同的颜色以示区别,鼠标点击在两个重叠的图形上面,将选中的图形移开,判断鼠标点选功能是否只有一个图形可以被选中,而且应该示后绘制的图形的图层在上面,所以后绘制的图形首先被选中。
(测试结果:通过)
4. 测试程序窗口的重绘功能,在客户区中绘制各种不同类的图元对象,然后将窗口最小化以后恢复,选中窗口边框进行拖动,改变窗口的高度以及宽度,看看刚才绘制的图元对象是否还在屏幕上。
(测试结果:通过)
5. 测试文件的保存功能,在屏幕上绘制各种不同种类的图元对象,然后任意对这些图元改变成不同的线条样式、宽度和颜色,对封闭图元对象也进行不同风格图案的填充,保存文件并重新打开,与保存前绘制的图元,线条以及填充属性是否一致。(通过屏幕截图进行比较)
(测试结果:通过)
6. 测试选中一个图形以后,再去选择绘制图元的按钮,是否选中的图形将自动撤销选中状态。
(测试结果:通过)
课程设计总结
这样一个比较庞大,结构又相对复杂的程序设计对我来说可以说是头一回接触。做下来后最大的感受就是对于这样一个软件的设计工作,千万在动手开始做之前要对编程过程中可能产生的问题有一个比较充分的估计,应该要参考各种相关资料来了解一下几个方面的内容:
l 同类系统的程序架构,类层次结构,以及一些程序关键部分的处理手法,特别是程序中用户交互部分的处理方法,做一个横向的比较。
l 注意那些参考资料中所提到的程序设计中可能步入的常见错误,知道些方面的细节越多,对自己程序编写的效率就越有帮助。
l 既然是编写MFC程序,那么对MFC的相关技术就需要掌握基本的内容。譬如MFC中一些DECLARE_SERIAL、IMPLEMEMT_SERIAL、RUNTIME_CLASS之类在程序编写过程中经常用到的宏,可以非常有助于程序的更多功能的实现。
l 还有就是要对用到的MFC中一些现成的类例如CObList,CArray模板数组,以及和这些类相关的那些类成员函数有一个比较具体化的了解。如果对自己所使用的这些类库提供的数据结构的操作不甚了解的话,就可能在程序调试的时候花费许多时间来解决数据结构上的错误。譬如:CObList类就有这样一个成员函数CObList::GetNext(POSITION &pos),我在编程的时候就没有注意到它的参数是一个引用,结果将图形的POSITION保存到被选中图形的数组时,直接将pos加入数组,已经调用GetNext(POSITON &pos)之后,pos中指向的是图形链表中的下一个对象的指针,这样保存下来的永远是我们设想中的后一个图形。
总之,这个软件编写过程中感触最深的就是觉得:千万不要因为赶时间而在没有做详细的设计准备,盲目下手,这样必定会导致花费更多的时间在程序的反复修改和一次一次无休止的调试上面,反而得不偿失,以上就是我从这次程序编写中学习到的一点经验。

August 16

有空来更新一下!

辛苦了近半个月的图形学程序,总算是告一段落啦!虽然做得不咋的,估计自己都不会去用这么无聊
的程序,本来还打算做图像的读写保存,不过时间不允许了,25号之前要上交,而且后面还有两个小
程序和小程序的报告要完成,想想还剩下没多少时间的暑假就两眼直冒金星。计划每天解决一个,不
过好像是不太可能的咯,不过时间倒不紧张,开学再交嘛,不过这个暑假基本已经泡汤了......T_T
其实再做的过程当中我就一直有个疑问,这次布置下来的作业,开学了真的每个人都能交得出吗?极
度怀疑之中......从一个同学问我编MFC应该用什么编译器这么晕死人的问题! 大学里的课程和暑假
作业真是一团糟的样子,编课程设计要用C++;学校里教过吗? 没有! 要用到MFC,教过吗?也没有
!要会一些Win32,理解windows程序的基本原理,教过吗?还不是没有!学的全都是原理,完成布置
的作业需要的全都是实用主义的,当下正在应用的流行技术!一句话,现在的课程和作业,脱节
啊...... 要从零开始学这么多,所以暑假也就废掉了......
最近喜欢每天在睡觉前喝上一点红酒,所以前两天特地抽时间去麦德龙买酒,听说那里的进口红酒比
较多,貌似开始贪恋杯中之物,呵呵,渐渐的喜欢上了这杯中的琼浆玉液,喜欢这红色的液体在舌尖
转悠,慢慢的流过唇齿间的感觉,甜甜的,又有点涩涩的味道。不过也喝不了太多,基本上倒在杯子
里如果是白开水的话也就一口下去的样子吧,诶,酒量不好也没办法!上次看到一个女孩子在饭桌上
和别人连续喝了好几杯CHIVAS,竟然面不改色,真是敬佩啊!现在的女孩子怎么喝酒就这么来噻呢?
肯定是基因的关系,遗传因素啊!光着脚丫也追不上啊!要是我这几杯下肚的话估计早就不省人事了
。每天晚上喝完了就该差不多去睡觉了,倒是觉得对睡眠很有帮助的样子,无论晚上是2点还是3点睡
,早上10点钟左右就起床了,再也不会一觉睡到中午12点还超过。而且听说长喝红酒还对健康有好处
,可以预防各种各样乱七八糟一大堆疾病,没有理由不喝点,是吧? ^_^
August 10

又大了一岁~!

既然菲菲指明要我更新space,不管怎么说也要卖这个面子的啊....^_^ ,以表示对我space一直
以来的光顾和支持嘛!space看得人倒是不少,不过回帖的真的寥寥无几啊,同学们啊,只看不回
可真的太不够意思^O^!
另外,我的年纪比你小,当不了你大哥,不要乱叫哦..... -_- 汗!
确切的说,凌晨之前,也就是刚刚2个小时前,再往前时间倒退20年的话,才刚刚好是我来到这个
世界上的时刻。
20年后的现在的我,就坐在屏幕前面,两眼直直地对着电脑,敲击键盘,写着space。这种时光过
隙的感觉,简直就像是拍电影一样。虽然这20年不算长,不能说是尝遍,但也应该说让我体验了
生活中各样的酸甜苦辣,倒不是要在这里回顾什么,总结什么,然后对将来展望什么,这些都没
有太大必要,经历过的,就是一点一滴的成长的历程,成熟的累积!不管经历是苦是甜,尤其是
那些不太愉快的过去,都应该是衡量成熟的刻度斗量吧!当然也是命运咯~~!
今天月亮公公倒是很赏脸的样子,一直没有被云遮住,看样子我生日它倒是蛮给面子的嘛!^_^
不过觉得还是要感谢妈妈20年给予我的生命,结果却因为剖腹产的关系留下了现在常常会发炎的
伤口;20年中辛辛苦苦把我拉扯长大,奔波劳累。还有很多很多妈妈在这些年付出的,也不是三
言两语说得清楚的,只是让我觉得,一定要好好孝敬她,让她过上无忧无虑的好日子,否则对不
起她这么些年来的付出,再怎么好也不为过......这个就要看我的实际行动了 ^_^
从上次8月2日下午更新了space之后,就开始做图形学程序了,一直忙活到了3号的凌晨,才把界
面上的菜单和代码挂钩了起来,工具栏也做上去了,还算比较顺利的样子。不过3号下午就出状况
了,那天觉得键盘放在腿上打字可能手腕比较放松,但是线不够长,所以只能把键盘插口拔出来
重新布置,结果插上去就不灵了,不停地死机!以为系统坏了,换了一个系统,还是不行。但已
经很晚了,第二天买了新键盘,兴奋之余,小小地用游戏麻痹了一下自己(暂且就当是新键盘的
质量测试吧! 哈哈~~)又折腾掉一天时间。然后5号被邀请吃饭,6号又去了图书馆,晚上开始
写了一点程序,前天晚上和妈妈一起到昌里路逛街来消化晚餐,写到昨天晚上碰到问题卡住了,
折线始终画不出来,一气之下又和老妈去好又多兜了一圈。  今天就特别值得一说了,从上午
11点开始解决卡住我的问题,一直没有找到答案,反反复复地调试,把所有的步骤执行的次数全
都输出了一边,最后总算才找到,应该是第一次点下鼠标的时候开始绘制一条新的折线,不过我
每次鼠标点击都会new一个新的对象,然后自动调用构造函数,难怪记录结点个数的变量老是清零
。时间已经是下午4点半了,然后一口气把多边形,方形,圆和椭圆都写掉了,自己都不敢相信我
的效率居然会如此之高..... 所有的基本图形都搞定,剩下的就是曲线的绘制和,图形的平移,
旋转,缩放,翻转四项操作了,一共也就四个函数,快一点的话两三天应该够了, 最后再写5000
字的开发报告就可以交差了. 数据结构的那两个小程序应该更快啦,希望还可以留一点时间来让
我享受一下暑假的惬意吧!O_O
明年暑假还不知道会不会是空头支票呢! 如果不当老师的话,估计这辈子也就这一次了!
August 02

开工咯!~~ ^_^

    差不多准备了将近一个月的时间,课程设计的内容也准备得差不多啦,整个程序的架构也基本
心里有数,应该在写的过程中不会出现什么大的问题,但愿可以对这个图形学课程设计速战速决吧
!我可不想托得时间太长,后面还有两个数据结构的程序要写.....虽然总是感觉还有最后一个月
的时间,来得及吗? 不过每天还是照样睡觉睡到中午12点才起床,晚上半夜以后一二点睡觉!不过
我觉得这样的习惯还是蛮适合我的,晚上总是比较安静,可以静下来听听音乐,看看书什的......
做什么事情都更加有效率一点,这也是我特别喜欢晚上开工的原因。
    刚才从硬盘里翻箱倒柜地整理出了这几天要一边编程一边听得,偶用来随时调试,放松神经的
御听的歌曲,也不知道这些偶最爱的歌已经被我放了多少遍了,大概真的不下五六百遍了,不过真
的还是每次打开电脑的时候就想再听,不厌其烦地一轮一轮地放,期中大部分都是孙燕姿前两张专
集里的经典,像什么 我得爱 ,天黑黑, 风筝,还有就是Avril的几乎所有的歌曲。不过Avril的
音乐还是只适合白天听听,毕竟是属于light stock music,晚上听了太兴奋,就更加不要睡觉
了.... 呵呵 这样下去可不太好,时差不要倒得太厉害了...... ^_^ 一直都觉得,燕姿的歌里面
清唱的声音总是占了主流的部分,而加以适当的音乐,只是做了非常非常好的陪衬效果,在她的歌
里面,总有感觉是旋律是跟在唱声后面半秒钟起来的,有一种歌声带动旋律的感觉。流畅,完美的
声音气质让人第一次听她的歌就会喜欢上她的音乐,而不像有些歌曲里面音乐把唱声包裹的严严实
实,只听到音乐,根本不知道在唱什么东西,而且歌曲的旋律也不怎么的...
    还有值得一提的就是Avril的歌了,虽然总体感觉上要比孙燕姿的劲爆很多,也要吵得多,不
过,从我两年前刚刚接触的两个MTV的感觉还是很棒的,一支是MY HAPPY ENDING,另一支是I'm
WITH YOU ; 也是有非常清透的声音。之前以为唱摇滚的总是那种很粗鲁,野蛮,走出来一脸愤怒
的样子,一开口就是F打头的那种风格的家伙才会去做摇滚音乐,不过后来才发现这么个小女生唱
出来的light stock也蛮有味道的,声音非常的有爆发力,但有不会让人觉得是那种大喊大叫的摇
滚唱法。有兴趣的朋友也可以去试着听听看哦~  ^_^
    好了,就此打住,该去写程序了,希望准备的那么充分,就不要再出什么乱子了.God Bless!
July 19

空虚中......

又是好几天没有来更新SPACE了,有别的事情要做总会把SPACE撂在一边!
这几天看书看得晕乎乎的,一点玩的时间也没有给自己留出来,今天好像终于有点忍不住了,本来
已经狠下决心,暑假不玩这些老掉牙的游戏了,把游戏都备份到另外一个硬盘了,想让自己禁欲一
下,不过...... 所以........ 嘿嘿! 虽然玩的时候有那么一点犯罪感,不过,毕竟很爽啊! 看
来意志力也没有自己认为的那么坚强......!
现在倒是觉得头脑清醒一点,没有刚才那么晕了,哦, 从来没发觉游戏有如此神奇之功效啊!乐
乎?乐哉!
 
在刚刚过去的上半个月中,除了暑假开始的几天疯玩了一把,后面的时间到现在就只剩下看书了,
一开始的十天里面,还绕有兴致地把每天做得事情do a list, 可以回过头来反省一下到底都做了
些什么事,不过记着记着就发现每天的内容都大同小异,后来也就把这个忘记的一干二净了,今天
上午才刚刚发现某个文件夹的角落里有一个名字好熟悉的记事本啊......呵呵!难道人还没老,记
性倒是未老先衰。oh...No.....不要啊......
 
现在有时候觉得自己很没有思想!不会像以前那样去思考这样那样的问题,懒得去想一些专业以外
的问题,留给学习更多的时间是为了让自己保持领先获得更多的心里安慰吧!而牺牲掉的其他一些
爱好,譬如看小说,娱乐新闻或者一些康熙,国光之类的搞怪节目,甚至国内国外的新闻也报以漠视的态度......但是好像脑子里有个声音告诉自己:“这样是不对的啊!”。 虽然专业领域里技术举足轻重,但如果真的把自己变成了一个只剩下技术的行尸走肉,那也太恐怖了吧。 感觉没有思想,会比没有技术失去更多的东西,至少感觉上应该是这样的吧。 文字表达能力也差的一塌糊涂的样子,不看散文,不读诗歌,甚至有时觉得离开了输入法,连字大概都不会写了......

好像还有太多太多对自己越来越不满意的地方,只是想起来脑子千头万绪的,觉得接下来的时间要
多看看小说,散文,多关心关心国际动态,否则真的太死了......本来有很多想写,坐在电脑前不
知从何说起——再写下去又觉得写得太乱——还是自己先整理整理再写吧。
July 08

C++ Study!

看了一整天的C++ Primer,貌似有发现了很多以前从来没有注意过得地方,不过也在怀疑,就算

把c++的边边角角的点都学了个遍,对课程设计有有多少帮助呢!  再说啦,先把这本字典一样的

东西啃掉再说吧。 不过貌似进度太慢了,今天才看了100页多一点,可是这本东西总共有一千多

页呢! 就算当作小说也有的好看了,还有后面六百多页, 希望明天进度可以顺利一点吧!不过

估计这也就只能是“希望”了......  累累累累累累累累累累啊........... 休息吧!

July 06

又到嘉定

搬家去假定了,从本部坐车去嘉定,一路上的颠簸加上高峰时间的堵车,花了大概有一个半小时
才到,而且车费又那么贵,居然要了偶8块钱,无语了,简直就是垄断型产业嘛!一路上看路上两
旁的商店渐渐地稀少,稀少,再稀少,最后就完全看不到还有什么可以购物的超市,卖场,基本
上也就离嘉定不不远了。
嘉定的寝室的确造得很漂亮,每一间寝室都比本部更加的宽敞,封闭式的阳台,宽大的落地窗,
可以躺得下一个人的落地窗窗台,最棒的还是每间房间都有热水器,最爽的莫过于此啦!再也不
用每天泡热水那么麻烦! ^_^ 不过厕所好像有点烂,只有一张浴帘把卫生间一分为二。不过也就
只能将就将就吧。
还有一点值得一提的是,寝室离教学楼的距离史无前例的近啊,如果有什么课是在电信楼的机房
上的话,那就更没话说了,宿舍的对面就是电信楼! ^_^ 这下爽了,看样子可以考虑一下是七点
四十五分,或者是七点五十分起床,应该都来得及吧! 嘿嘿~~!
不过嘉定也有很多不爽的地方,在宿舍里向外望去,竟然看到的学校外面是大片的农田,不敢想
象,我这是到了什么地方了啊。还有就是传说中形状方得不能再方了得图书馆,有幸亲眼一间,
果然造得像一块方糖一样的方!而且貌似离宿舍还蛮远的,不过也没关系,反正我也是一个学期
不会去图书馆自修超过3次的那种人!毕竟新建造的图书馆质量令人担忧啊,要是他们用的劣质油
漆有甲醛超标的问题,还是保住自己的小命比较重要啊! ^_^
不管如何,还有两个多月的暑假可以呆在家里,所以嘉定的生活应该离我还有一段距离,现在就
不去管那么多了!尽情的享受我的悠长假期吧! 说不定这也是大学里面最后一个可以自己支配比
较多部分时间的机会了,明年的现在,会有多忙,完全就是未知数,一点概念也没有。嗯,好好
的过好这两个月的每一天!
July 04

拜拜了~~大二!

现在真的好想大喊:"爽啊~~~~~~!"
痛苦的大学生活到今天已经全部结束了,新的大学生活从假期里的课程设计开始,成绩昨天半夜
刚刚出来,看到成绩单的时候总算松了一口气,本来以为最后一门数电考试可能挂了,因为感觉
非常不好,真怕挂了的话就要把这门课在脑袋里继续存一个暑假,幸运的是,总算过了。哈
哈...... 其他的课还算满意,出乎意料的是,这次的绩点竟然完全没用地提高了00.1,这学期这
样差的状态竟然还有“进步”!靠的是选修课,超级无语了......
这两天大概脑子还没有从考试状态缓过神来,刚才在看这学期到底修了多少个学分,竟然搞得我
这么累,算了3遍,算出了2个不同的结果,脑子还是一片浆糊的感觉,最后计算机算了一下,28
学分。记得好像在学生手册上翻到过这样的规定,每学期选课学分不得超过28分,哦,好像
刚刚封顶了,再多说不定就作废了。
不过下学期就爽了,再也没有恶心的垃圾课了,没有模电,数电,物理试验,电工试验,公益劳
动这样没用又浪费偶宝贵的时间,结束啦!全部都是让人兴奋的专业课。再者是一个礼拜只上4天的课,没有选修课,不必为了选修课的学分而有因为时间的关系不能选喜欢的课,大把大把的自由支配时间,想干什么就干什么。如果再逃掉一点垃圾老师的课,估计一个礼拜也就3天的课吧!^_^ 
好期待大三这样的生活,虽然要搬到嘉定那么偏僻的地方,也许可以给自己一份没有压力,更加解脱,自在的心情吧! 呵呵
Just 爽 it!  ^_^ 
June 17

一定要有题目才能发布吗?

本来现在我应该是正坐在六级的考场中和很多人一样,在紧张地一道一道地做听力,阅读,完型填空,而我却坐在电脑前面,把音乐的音量开得很大,悠然自得的写已经很久没有更新的SPACE。是因为一个小小的错误,让我忘记把身份证带上,进不了考场,于是决定不考了。其实这几天一直在为六级考试的临近而烦恼,没有时间复习,却一心想要考一个比第一次六级更高的分数(靠!这哪可能?)!来学校的路上还在不停做思想斗争,想放弃,但是又不想最后收到一张280分的成绩单,于是决定放平心态,随便考一个分数吧,只要>=280分就可以了。但有时候还会异想天开的去想,如果这次考试的心态这么平,会不会有希望超常发挥一下呢?^_^ 贪心的毛病还是改不了!可能也是老天觉得我已经不用再考第三次了,准备的时候心情太放松了的缘故,把身份证忘得一干二净!(我觉得自己也不是这么粗心的人啊!就当是老天爷帮我作出了一个正确的决定吧!谢谢啦!)真的决定放下一些无意义负担的时候,的确会一下子觉得很轻松,很愉快的感觉,久违的也是短暂的满足感啊!不过很多时候还是放不下追求,梦想,宁可让自己累一点,也要争取,有点累,但也甘心这么去做。
这两天运气应该说真的是很好,可能是提前吃到了Marvin的喜蛋的关系,一个礼拜过得顺利的一塌糊涂。准备了很久的计算机图形学开卷考试,就是上课怎么听都听不懂的老师的讲义全都是从其他地方照搬过来的,所以我就猜测那个垃圾出的题目肯定是从网上抄来的,果不其然,所以几乎一道也没有逃出我的手掌心,道道命中,虽然在考场上举手问他选择题是单选还是多选,碰了一鼻子的灰,竟然回答我“有关这个问题在上课的时候已经强调过了,你是不是从来没来上过课?”不过做题目都会的感觉还是很爽啊!哈哈哈哈.......  图形学的试卷他抄的真是好难啊!要不是预先有准备,开卷也来不及写,否则估计我也会挂的!
另外还有恶心的电子试验考试!那个老头子竟然扬言要挂掉50%(你一定没有看错,不是5%,是50%啊,真恶心......,为什么这学期垃圾,变态的老师这么多,上学期造的什么孽啊......),不过幸运的是,实验考的时候两个试验操作,第一个因为仪器不太好的关系,那老师自己试了半天也没法跳,所以就给了我一个钩(占30分啊!)另一个试验来不及做了,不过在笔试的时候,本来我打算诚实一点,那个来不及做的试验数据就空在那里,不过当我把考卷交给监考笔试的老师的时候,老师很神奇地问了我一句:“不做了吗?这个表格会"算"吗?”(么想法了......!"算"!我当然会咯,然后就在那里捏造数据,30分啊。最后还留了一组数据以示我最后一组来不及测的假像!装装样子嘛!我可是被逼的哦!嘿嘿,我一直都是很诚实的孩子嘛!)
今天还是一个特别的日子,天哥飞去美国了,可能现在飞机已经飞进了平流层了,放弃读了两年的复旦,到美国那里重新从SAT开始,我想做出这样的决定是需要很大的魄力的,而且没有给自己留下退路。不管你在世界的哪个角落,我们都一定相信你,支持你,为你加油!SAT只是一次小小的挑战,我相信你的实力,一定可以拿到高分,申请到理想的学校。努力哦!也希望我的好运可以分享给你,让你带到那里。一路顺风哦!记得一定要吃Marvin的喜蛋!^_^
这两天Marvin的老婆就要生小Marvin了,一切顺利哦!Marvin可能这两天又开始紧张起来了吧,毕竟没几天就要当爸爸了,凭我和Marvin三年相处下来,觉得他绝对可以当一个好爸爸,好男人。
希望这几天自己考试的时候好运长伴!才对得起这学期以来的努力和坚持啊!哦,对了,陶子,我觉得你图形学的复习就准备的非常出色,继续努力哦!最后几门可都是你的强项啊! Come on! 不要放弃! 需要帮忙的话尽管说,不要客气哦。
现在这个时间,考六级的同志们应该在等打铃开始写作文了吧,我大作都已经完成了,同志们加油吧!这应该是建space以来最长的一篇日志了,不容易啊,慢慢耐心看吧!
May 17

乱写一通.......

最近有点忙,好久没有来更新space了,明天的数电考试,虽然说没有什么很充分的把握,不过经过了这两个礼拜以来的努力,正常难度的题基本可以应付得了,肯定不会向上次考试那样拿了个不及格,不堪回首啊.....!
考试的前一天晚上也不愿意再做很多事情,也就是随手翻翻书,听听喜欢的音乐来放松一下,决定今天晚上好好休息,用最好的状态对付明天的挑战吧。 ^_^ 这个周末可以轻松一点了。
最近喜欢有时候逛逛一些ftp站点,倒是好像发现了新大陆一样,发现了很多非常好玩,有意思的东西,而且基本上都是其他网站上根本下载不到的,(纯属内部资料哦)....!
昨天就在一个做得很精彩的ppt上面看到了这样几句不错的话,觉得蛮有道理的一些话,把它打在了下面,大家一起来分享一下吧! 可惜里面
的图片和音乐就没有办法看到了,不过可以把整个东西下载来!下面是地址: 
ftp://166.111.80.53/incoming/for_jtk_IBM/documents/jtk/财富论坛/Wishes.pps
 
ppt中几句经典的句子:
The one who takes your hand but touches your heart is a true Friend.
 
We seldom think of what we have, but always think of what we miss.
 
Don't cry because it's over now, laugh because it happened.
 
The more precisely you plan, the harder destiny will hit you.
 
What happens, happens for a reason.
 
Don't make an effort because the best thing happen, when you least expect them.
The greatest events, aren't the loudest, but the most quiet hours.
 
The most difficult lesson to learn is: Which bridge in life to use or which one to break off.
Everybody sees how you seems, however, only some know who you are.
 
He who would like to have something he never had, will have to do something well, that he hasn't done yet.
 
Perhaps God would want you to become acquainted with many different people in the course of you life, so that when you meet the right ones, you can appreciate and be grateful for them.
Give something a name, and it will happen.
 
Love doesn't require two people look at each other, but that they look together in the same direction.
Life is drawing without an eraser.
 
I wish you always: Air to breath, Fire to warm you, Water to drink and The earth to live in.
 
Wish you enjoy it!
April 29

五一七天忙~~

    忙忙碌碌又过了一周,转眼明天回家就准备过五一了,不过估计7天长假也不会太好过,有
很多课都必须要利用这七天的时间来补上来,有两门课离散数学和数字逻辑基本上已经拉下了
将近一个月的进度了,而且我每次都上课,一节也没有拉下。不过几乎完全听不懂老师讲的内
容,觉得我们现在学得东西就跟天书一样,不过昨天晚上,因为要交作业的关系,而我又不想
拿自己完全不懂的抄上去交差(看来我的学习态度还是有救的啊....^_^),翻了翻数字逻辑的东
西,发现远远要比自己想象中简单得多,而且自学得速度也远要比老师上课快....不过上课听
得就只有一头雾水。现在超怀疑自己是不是患了什么人际交流理解障碍#◎#¥※@×%……,
难道高中里认真停课的习惯在大学里就派不上用了吗?自己都被搞糊涂了,晕死了....!
    这学期一直都有事情让自己忙个不停,自己也定下了比较紧凑的时间表来督促自己要抓紧
大二这学期,要是轻易让这学期荒废的话,后果不堪设想.... 至少我们专业的情况是这样,现
在都觉得自己大一的时候没有好好把握那一年的时光,在跨进大学校门的优越感中浑浑噩噩地
完成了进入大学的过渡,错过了让自己在专业能力方面更早一步捷足先登,冲到更靠前的位置
上面去。不过大一嘛,估计大家都是差不多这么过来的,呵呵,也没有看出太大的差别!
    这学期,发觉身边的其他同学也都在学一些课程以外的必要的专业知识,看一些算法,学
习,讨论的氛围还是很不错的,这应该会更好地给自己地学习注入一些动力吧!进了大学以后
好像没有感觉到自己的智商有什么很大的进步,诶,可能智商的发育结束了,不过靠现在这些
也差不多了吧! 努力一下,应该还是可以冲到前面一些去的 ^o^ !
    五一,七天的时间可以让自己好好的调整一下,接下去一直到可能7月底,都会有很多事情
要忙,今天听老师说暑假实习大作业2个礼拜要编完是不可能的,因为在做作业的同时要学很多
新的东西。这倒让我想试试用2周做完它,现在学得越多,准备越充足,到时候花的时间就可以
大大的减少,剩下的时间就用来看别人慢慢地做咯.....嘿嘿!(有点邪恶的想法啊)
    最后祝愿所有朋友五一节七天过得愉快!  ^_^  至于我么,为了将来,现在就做出一点牺牲啦!
April 21

比赛结束了!

    终于可以登入SPACE,一连好几天都上不了,想更新都没办法,郁闷了好几天...!
    名次没有初赛那样让人振奋,也主要是由于我没在比赛中为我们队做出什么贡献的关系,虽然努力了,但还是一道题目也没有Accepted,可惜啊! 要不然就有二等奖了。
    追根究底还是没有实力的关系,高手很多,所以要多多地加倍努力。刚才在pku上看到了一句话,觉得挺鼓舞人心的,“只有知道了自己的无能,才能踏上成为高手的道路”,希望在一年的努力之后可以用自己的真正实力去拼搏一下。
    这次也算是走过,经历过一下ACM比赛,已经觉得很幸运了,名次并不重要,为下一次积累了不少珍贵的经验!^_^ 当然还是留下了一些照片来作为比赛的纪念,还有比赛现场的照片记录,放在SPACE上,不过这两天都是蓬头垢面的,样子好难看~~!不过回过头来看看自己比赛是认真的样子还是~^_^,感觉不错的啦!
    累了一天,等于是逃课加免费嘉定校区半日游,哈哈~! 嘉定那里的楼还是造得很不错的,给人很开阔的视野,宿舍楼的阳台风景也很棒!就是太偏僻了,所以才会有一望无际的感觉,偶尔逛逛真的不错,不过要在那里呆两年的时间恐怕.....!那里竟然只有一个食堂现在,吃饭的时候聊到要是吃腻了食堂的饭该怎么办? “那就去学校外面吃啊!”,一开始觉得这个主意不错,不过一想好像有点问题,校门出去已经不是赤峰路了。啊!突然觉得大三的生活一片黑暗,最后决定还是天天泡面为生吧!
     星期天还有报名的英语竞赛的初赛,不过基本上是去玩玩而已,对英语比赛已经没有什么想法了,不像对ACM比赛那么地期待有好的结果,看到时候的发挥了!为自己加油一下!还有为和我一组参加ACM比赛的陶立诚英语赛场上人品,实力一起大爆发~~!^_^ 
     Life is fabulous as long as you dream!
April 14

时间好快~!

    今天,4月14号,四月份又快到一半的时间了,最近一直都好忙啊。记得计算机图形学老师在3
月布置下来作业,说要在5月长假之前交,那时候还觉得时间很长。一转眼,离最后期限还剩下2个
礼拜的时间,现在却连图形学一行代码都没写......(不过好像班级里写完的只有一两个人而已,
这个还是可以让我宽慰一下啊。^_^)
    看着桌子上一叠已经堆得有杯子那么高的药盒子,和被我随手乱扔铝塑料的药片包装,真的不
知道这样的日子好要持续多久!不过还是应该还是以身体为重啊。
    刚才突然想起来图书馆借来的书明天就要到期,本来想好白天打电话去的,写程序写得忘了,
到图书馆的网站上想要续借却登入不了页面,TT .....郁闷啊! 只有过两天叫我哥代劳啦,要罚钱
就罚吧,反正也不贵!记一个教训...
    忙着编程,准备明天的比赛,虽然没什么基础,不过这两天的努力也算是临时抱佛脚。还是学
到了很多新的东西,累归累,小小的提高还是挺高兴的啊!应该在之后的一段时间里还会学到更多
东西,期待,兴奋,也蛮大压力的!毕竟acm会耽误了很大一部分学习的时间,不知道如何去平衡
,每天的时间都不够用似的,还是走下去再说吧.....
    继续努力地去做自己想做的,希望明天的比赛顺利!不过应该没问题,呵呵,我的partner实
力很强,初赛一定不再话下! *_^
April 02

诶,胃的呼救啊!

    两天熬夜,几杯咖啡,再加上几顿饭中不小心要了几个有点辣的菜,短短四天时间就把
我给搞倒了,礼拜四下午在图书馆公益劳动的时候胃就有点"抽筋"的感觉,回到寝室立即钻
进被窝里睡了两个小时,原本以为胃疼就这样会好了,谁知吃完蛋糕以后又开始发作了(实
在没想法了TT... 怎么软的蛋糕也会让胃不舒服),决心明天逃课,立刻回家。
    礼拜五一早就由妈妈陪同到医院检查,主任医生是托朋友特别找来的,医生简单的问了
我一下情况之后就说要做胃镜。 吓我一跳!这个传说中最恐怖的对胃的检查(不如说是"虐
待")竟然要... 一开始连我妈也觉得没必要,不过在那个朋友的再三劝说,说X光拍不清楚
最后还是要胃镜检查,而且医生亲自来帮我做胃镜,只能硬着头皮上了......
    (过程太过于恶心,以下省略××字数....!)
    结果出来连我也吓了一跳,胃炎,十二指肠溃疡!而且呼吸测试结果超出正常上限四倍
之多,难怪自己都常常会觉的有很重的口腔气味!   诶... 可怜的胃啊!
    以前看胃病都没有查清楚根本的原因,医生总是帮你开一些不温不火的药,治不好病,
吃不死人,什么治疗"脾虚胃寒,胃气不调"之类的,怎么吃都吃不好也难怪了...
    这次吃了苦头,而且病因也查清楚了,还是下定决心好好的吃药啦,健康可是自己的事
情啊。老妈总是说:"少认识几个字没关系,身体跨了黄金堆成山你也搬不动啊!" 说得也是
啊,不过自从礼拜五医院回来以后自己还是很乖的啊,为了早上按时吃药,连懒觉也不睡了
^_^, 没办法啊! 
    现在最最希望我的胃快快好起来啊,以前不愿做彻底的检查其实也就是怕出来的结果让
妈妈担心了!
    平时不注意自己胃的同学们还是要多多注意一下!我的胃,诶,前车之鉴啊!做个不恰
当的比喻:胃就像大自然,你对她好,大家相安无事;要是你破坏环境的话,会遭报复的啊
! (呵呵 瞎扯竟然扯到保护环境上去了!^_^)
   
 

天斌

Interests
Photo 1 of 17

Feed

The owner hasn't specified a feed for this module yet.