C,曾经的程序员梦
2008-03-08 21:56:52 来源:WEB开发网核心提示:到了第二年,大家也都能知道编程语言有好多种的,C,曾经的程序员梦,且各有千秋,而其中比较有前途(钱途?)的是TC,谁都不好说将来的路,对不对?亲爱的朋友,不管怎么着,TC这东西可上可下
到了第二年,大家也都能知道编程语言有好多种的,且各有千秋。而其中比较有前途(钱途?)的是TC。不管怎么着,TC这东西可上可下,可对操作系统编程,可完成汇编的大部分功能。这可让爱捣蛋的男生一提起来就满面红光。动不动就会说,你小子给我小心点。得罪了哥们我,小心我编个病毒KILL了你。呵呵,谁K谁呀。吹起来,谁都不怕谁呢。是的,只是吹。TC到底是个什么东西,都不太清楚。
不清楚不是?大家不都想学TC么?专业科长有话说了。想学好办,咱这学期就开。可有一条,学不好我可不愿意你!一句话说的全班学生心里发毛(哈哈,你可能要问我,都发毛,你怎么知道?我只能告诉你,我编了个调查程序调查过。),开始重新审阅TC了。可无论是吹牛,还是怯阵,该上演的还得开场!
课本是清华版的,谭老教授的自得之作。搭眼一看,就感觉着呀,特权威。第一节课,大家都破天荒的预习了一下!随着上课铃声的响起、响过,大家都不住的把目光扫向门口。呵呵~~是你的躲也躲不过呗。这不,来了——一个个子不高的,文文静静的,不戴眼镜的年轻女教师。可不了,大家都禁不住的一阵唏嘘,要知道,在工校里找个女教师可不易呢。再说, 在男生的眼里,做软件学编程,是男生的专利,女得了孩子可不该分羹。
好了,不管怎么说,那女教师微笑也好,脸红红的也好,她走上了讲台。大家这次都屏住呼吸,看着她,希望她说点啥,比如,介绍一下自己(我怀疑有许多男生也想趁机介绍一下他自己)。但这位老师就是与众不同。你瞧她轻轻的把书放到桌子上,翻开,第一句就是:这节课我向大家介绍C语言的发展历程……下面又是一阵喧哗。至少,也应该告诉我们你叫啥呢,漂亮的老师!呵呵~~
C语言确实不简单!第一,它竟然不要行号;第二,它的流程如此清楚,超Basic过Pascal;第三……行了,行了,你才知道呀,菜鸟!被大虾狠狠的K了一句,这位菜兄的满面红霞,变成金乌西坠,变成暮色沉沉。我有幸目睹这脸上无限的风景,有意思。
其实C语言,平(我的)心而论,它的函数思想非凡优秀。它只有几条语句,函数构成它的主体了。没有该死的进程,也没有子程序,你可都定义成函数。这个统一的编程思想,实在是让人着迷的。另外,简单的定义函数结构和十分灵活的编写程序方式,统一的变量定义要求,都是这种语言的优秀之处。当然,说到底,在DOS时代,它最最可贵之处是十分高的运行速率。这些不仅是它的优秀之处,在那个年代,也是独特之处。真正的程序员用C,也许就从那个时候引发的。呵呵~~什么真正的程序员用C,只不过C把握的人并不多,有些程序员想以此表现自己是正宗罢了!
以后的学习生活是紧张有趣的。我一路小跑,自己学会了函数,数组,指针,文件操作。后来果然不出我所料,这本书根本就讲不完嘛。上机的时候,我总是摆弄C。别人都说C不能用,我暗笑,笨伯呀,把路径设置好不就行了?有的同学做图形函数练习,总是不能成功。跑去问老师,那个带同学实习的老师好象不太精通C。告诉他说,我们机房里的这个“版本”不太好……
小女生为了考试而学习C了。大男生开始咒骂C了。这个东西不是那么好把握耶,看来。但不管你学到什么程度,科长可不含糊。学习的进程一天天的没有停下来的意思。好了,到学期末了,咱们的C课程也该结束了,大家设计一个东东吧!
设计?我早知道教学计划里有这一条了。但轮到的时候,还是心里发毛。天哪,我只会求几个小儿科的数字相加,相减,乘方,“水仙花”!呵呵~~我还会给猴子分配天天吃多少桃,给国王挑选最好的女婿,让狼很快的知道自己找不到兔子……可这都派不上用场呀。科长狠,C老师,哦,我给你说过的,那个文文静静,不戴眼镜,年轻漂亮的老师,她更不体贴呢。开口就布置了一个课题:用C编制一个菜单,编制一个数据库,输入一个商品,应该能够查到这个东西还有多少,单价为多少,云云。好了,课题就是这个了,大家,想去吧。
菜单这个东西大家谁都用过,挺方便的。可现在要用C自己写?不是赶鸭子上架么!呵呵~~不上也得上。科长有令,这次写入档案,不毕业的名额本届学生将不限制,想得到它很轻易!——吓我?还没有不毕业的呢,建校以来。但是,做一做,总没坏处吧。我开始预备了。
菜单是什么原理?光带。正常的色彩,和反色显示,构成了菜单的样子,完成功能。假如用热键来激活某项的话,那不叫菜单了。用光标键控制,是比较标准的。试想啊,屏幕上显示四个色块。一样的底色。其中一个是反色显示,表示当前它被选中了。然后,用户按下一个向下光标键,那个反色显示的老兄,把权柄教给了下一位。这就实现了菜单功能。如何实现这个亮块的转移呢?我最初的打算是把这个图形块割下来,保存到内存中去。用到的时候,取出,显示。我这么想了,也这么保存IMAGE了。分配内存,保存图像。可后来我发现,分配内存需要指针吧。保存图像也不是那么好兑付的。指针很调皮,不听话。尽管我也有信心做好,但是,我开始考虑寻求一个简单的办法了。
怎么办?呵呵~~我有的是办法。既然这个方法不可取,那么我就用画矩形的方式完成。这个方式的具体办法是,所有的光带都是矩形。预先把选中的那一个,画成反色。然后……虾们,我说的是不是很简单!可筛选出这么一个可取的方案,可不轻易呢。然后的问题你也知道吧。判定用户按下了什么键,然后在本地清除反色,画上正常的色彩,到“该去”的地方,画上反色。这样就完成了光带的移动。
这里涉及到一个问题,就是判定当前在第几项上。也许你会说,建个数组不就得了。呵呵~~那样不是俺的习惯!我必会找个简洁的算法来实现。首先,规划好这个菜单的(X,Y) 标,然后确定间距。这种算法的好处是,我可以随时通过改变变量改变整个菜单的位置和菜单项相对位置,而不需修改其他代码。然后用一对变量保存当前菜单项的位置。到底现在是第几项?你就可用当前位置和(X,Y)的差距得知了!然后,你可判定,当前位置假如到了底了(假设是纵向菜单),你就知道再按↓,就应该跑到上边去。反之,亦然。这个算法是不是很简单和明了?
至于每个菜单实现什么功能,你"case"一下就是了! 还有按ESC退出,也不成问题了吧?
其实有头疼的,那就是艺术汉字的显示问题。假如读取汉字库,会无比的麻烦。俺当时是偷了懒了,用的是特显。——呜,提起来太沧桑啦!是老掉牙的特显老兄呢!偷了这次懒,至今想起脸红,嘿嘿……
数据库怎么调呢?这要涉及到文件处理了。打开一个文件,读出,显示在屏幕上,不会很难吧。这个我早就解决了。但现在想一想,用DOS的TYPE会更简单!只是当时已惘然耶。 记得我当时是把我常吃的冰淇淋的名字价格规格味道写了进去,呵呵~~老师一见之下,倍感难忘,尽管这并不是俺的初衷。我只是想治理一下我天天该吃什么样的冰淇淋而已……
老师给我的分数是全班最高的,B+,这倒让我很难忘。因为全班能做出图形的不多,能够知道析出图形的目标文件的不多,知道注册图形库的更不多。不是我水平高,是弟兄们太捧场呢。
写这些文字的时候,那份设计报告我还保存着。老师曾多次鼓励我,真的喜欢C的话,学C++。TC只能担负让你入门的任务了。学C++是势在必行的。那个时候,我没有条件学C++。再说,数据库的普遍使用,让小城市中,C显得很尴尬。这个东西是好,但,没地方能用着呢。我问我的老师,他已经是高级程序员了。我说我想沿着C的路走下去,您看行吗?他思考了一会,告诉我说,你假如C真的用的好了的话,在滕州真的能打开一片天地呢。
但我终于是处于X世代的人,后来终于选择了出门就能用到的数据库了! C,后来就成了我记忆中,最美好的片段了。现在也在研究BCB,但已经没有当时的那种激情。呵呵~~写下这篇文字,纪念我为C疯狂的岁月吧。我以后也可能会熟练的使用BCB呢,但,那是后话了。究竟,在IT业主导的这个时代,在INTERNET成为主流的这个时代,在这个计算机飞速发展的时代,在我们出生就被定为X世代的时代,谁都不好说将来的路,对不对?
亲爱的朋友,您是否也有过学C的经历?我很希望您也也讲给我听呢。
更多精彩
赞助商链接