回 帖 发 新 帖 刷新版面

主题:[原创]编程日记——菜鸟的第一个程序诞生记

编程日记
                                    ——我的第一个程序诞生记

11月17日 星期四
         今天c语言结束了,虽然三天后就考试,但想想自己应该没什么问题,开始考虑大作业——电话号码系统的编写问题。早几天就布置了,因为c语言正学到紧要处,也没时间管它。一个月前还对编程七窍通了六窍,现在就要自己编写,心里还是有点打鼓。哎,反正各种方法自己也都掌握了,回家先!

11月18日 星期五
         呵呵,昨天晚上本来想写的,不过看c的习题到一点多,就没动手,今天开始了,唉,一上来时无从下手啊。虽然有参考教案,但是不打算看,还是想自己完成,毕竟是自己写的第一个程序啊。
         首先思路是关键,这里决定主函数用while循环而不用swich,为的是便于返回主菜单,先简单写了主菜单,然后进入主函数编写,比较顺利,每个选择里面只有一个函数,为的是不用定义整体变量,省得后来搞乱(后期证明对于初学者的我来说这是很正确的[em12])。
    接着是新建信息函数及查询函数,相对简单,只是写电话号码范围限定时有点问题,刚开始只能实现退出,后来用continue进入下次循环,可以重新录入号码,问题解决。

11月19日 星期六
    今天周末,本来计划上午休息,下午继续写。可被人拉去修电脑到下午四点多。回来也没心思再写,只简单考虑了一下修改函数和删除函数的思路,方法是很多,怎样能更简便和更能让自己清楚是关键。
    晚上复习,预备考试。

11月20日 星期日
    今天考试顺利。连带思路也清晰了许多,修改的关键在于是整体重新写入还是只修改一条记录,显然后者简便易实现,想想前两天写修改的困难,主要还是文件指针的位置问题,翻翻书后上级练习,果然有这个,使用fseek,问题解决。但是想重新开始一次删除仍然要退出,用while循环则出错。
    仔细想想,显然还是指针问题,循环结束,指针位于上次搜索的位置,之前的纪录搜索不到,于是在循环结束后加了rewind,完成!!
    (晚上看意甲联赛,我的国际米兰又赢啦![em3]高兴,明天争取完成删除功能!)

11月21日 星期一
    哎,本以为修改写出来,删除应该没问题,可是全然不是那么回事。尝试用修改相同的办法,未成功。关键是如何让记录为空再写入,好像没什么好主意。刚巧上次电脑坏了的家伙又要配显卡,出去换换脑子吧。
    晚上回来,依然没什么简洁方法,想到的都太麻烦。上网发帖子问吧。结果直到12点,才有一个回复的。难道高手也没什么好主意吗?睡觉先,明天要学网页了。

11月22日 星期二
    网页课程相对轻松点,回到家接着想删除问题。一时想不出,就先整理前面的,反正只差这一个功能。把主界面美化了下(说来惭愧,dos下的界面,也美不到哪里去![em8])。加入版本号及作者,毕竟是自己的第一个程序啊。又改进了下退出,可选择是否退出,而不是直接退出。
    忽然想到,这个可选功能应该在程序中处处体现才对,先加入添加和查询功能里吧。经过一番错错对对,修修改改,总算成功了。看看时间已经一点半!![em10]晕,赶紧睡觉!!

11月23日 星期三
    上机作完练习,接着想程序。好像有了点眉目,赶紧在电脑上实现,可是……没带c语言课本,有些东西想不起来。看来还是得多练啊。
    回家继续,用建立结构体数组的方法,把除去想要删除以外的记录统统读入,关闭文件。再用重写操作打开文件,把结构体数组的内容读入,应该思路是对的,可为什么重写后尽是乱码?连试几遍都是这样,看看程序也没什么错误啊?郁闷……[em9]

11月24日 星期四
    不知怎的,一到学校就有灵感,赶紧回家再看一边程序,忽然发现只是变量使用错误,思路是对的。改动一下,成功!但是新的问题来了,我想要每个功能都能不用退回主菜单继续实现,要怎样做呢?    

11月26日 星期六
    嘿嘿,昨天休息……(中学同学聚会。白天饮茶,晚上烧烤,然后飚歌……),今天得把时间补回来。
    先写了自己加的备份功能函数,是从以前用的进销存软件得到的启发,在推出时询问是否备份,是则逐条读取写入另一个文件,否则直接退出。这样一来,退出的询问就用不着了。
    实现那种连续操作,在查询修改里都没问题。可删除用同样的方法就老有问题,仔细检查一遍,发现是结构体数组里的变量没有删除,导致下次写入时多了一些数据。怎样让结构体内的变量为空?这个好像没讲过。还有数组要怎样逐个清除?想得有点头大,干脆先放放,去写其他的地方,实现了大多数确定实行的地方都有询问及选择。至于那个问题?明天问teacher曹,嘿嘿。[em11]

11月27日 星期日
    今天一问才发现,自己想多了。只要重写数组的由零开始的元素就行,反正读入时有循环限制,关键是让每次写入都从0号元素开始,让循环变量初始赋值为零即可。
    这个问题,又是在学校解决的,看来以后有问题就来学校……[em15]
    回家后开始实现最后一个功能排序。写来并不复杂,但是实现就有问题。只要姓名是汉字,排序就显示乱码。另外,汉字姓名如何排序?看来暂时不行,好在英文名字还是正常。
至此,算是初步完成全部了。晚上又增加了一些代码,主要是在输入错误时,程序将如何处理,难倒不难,只是要细些,不要遗漏和出错。写好后,错略检查一遍,看来没什么问题了。

11月28日 星期一
    今天主要是测试,测试过程中又发现一些问题。例如在查询功能里,第一次如果输入错误,系统将提示错误,重新输入。但是在输入正确的信息时,依然提示错误。经检查,又是循环变量初始赋值问题,更正……我想这就是传说中的bug吧?
    直到晚上,经测试所有功能均正常,这才算全部完成。回头看看十天编程的日子,程序虽小、方法虽简单,然而过程中的得失对错,却和其他编程者一样吧,呵呵,终于也体验了一把程序员的甘苦。[em17]


    (至此,《编程日记》全部完成,至于编程的体会经验,还是等我多学写东西,多遍些程序之后,才有资格说的。)


    

    

回复列表 (共18个回复)

沙发

别搞编程了.当作家不错.

板凳

你真的相信有人会把这个看完吗?你打字的速度肯定好快,不过这么多再快也够辛苦的,呵呵,以后多做些实事吧,不要这儿乱发牢骚!

3 楼

你学编程兰费人才啊。

4 楼

拜1楼id

5 楼

找你寫blog不錯

6 楼

2楼的,我写日记而已,又不是给谁看的,看完看不完没所谓的,再说哪里有牢骚?又怎么不做实事了?

7 楼

既然这么多人都打击你,俺就鼓励一下吧:-)。
我也喜欢写日记,这个……也没啥说的。
那些人肯定都没写过日记,总之不要在意。

8 楼

不要这样说人家么.毕竟是人家的的一个程序,心里面高兴嘛.
你们要是不想看就不要看,人家自己愿意写,你们又管不着!

9 楼

呵呵 ,写得好啊!
把大学几年的学习生活写出来,肯定比谭爷爷的书卖的还要好。

10 楼

谢谢所有回复者,回复就代表关注。
我想还是因为我程度太浅的缘故,总之编程我会继续学下去,日记也继续会写,希望将来回首本页,能见证我的成长。
PS:楼上,大学生活已经远离多年,现在是青鸟的培训。呵呵

我来回复

您尚未登录,请登录后再回复。点此登录或注册