知识屋:更实用的电脑技术知识网站
所在位置:首页 > 编程技术 > C语言编程

C……曾经的程序员梦

发布时间:2011-02-18 19:46:30作者:知识屋

C,曾经的程序员梦

到了第二年,大家也都能知道编程语言有好多种的,且各有千秋。而其中比较有前途(钱途?)的是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退出,也不成问题了吧?[!--empirenews.page--]分页标题[/!--empirenews.page--]

 

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜