C语言课程设计编程日记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011年9月29日星期四
今晚终于把工程建起来了,我把文件包含、宏定义、需要跨文件调用的函数原型申明放进自定义的头文件里,函数定义单独放一个源文件,主函数单独放一个主文件里,全局变量的定义也放进主文件里。工程里的每个文件先单独编译,而后连接,就可以了。
vend.c和vend.h同时存在的时候会报错“Undefined symbol _main in module c0.asm”
寝室里鲜可曾今用一个没有main函数的工程来编译,以失败告终。。。。。。。
还是鲜可,不建工程单靠文件包含想通过编译,无果。。。。。。。。
“为防止上述危险出现,应该贯彻前面提出的一条原则:使同一程序对象的定义点和所有使用点都能参照同一个描述。就目前问题而言,达到这一目标的一种方式是把所有类型定义、常量定义放在一个公用信息文件里,把定义和使用出现在不同文件中的函数原型也都列在这个文件里········”——《从问题到程序·程序设计与C语言引论》裘宗燕著机械工业出版社
“全局性数据对象通常定义在主文件里,或按照归属原则定义在某个文件里”——《从问题到程序·程序设计与C语言引论》裘宗燕著机械工业出版社
******************************************************************************* 2011年10月3日星期一
今天我搞定了主界面的设计,新加了一个报警按钮可以作为街边突发紧急情况是得求救对象,岳坤虎把开机动画做好了,我整合到工程里可以成功运行,现在基本完成了前期的一些准备工作。
今天发现一个问题,如果一些不需要形参的函数形参表里不写void在编译的时候会有waring:***with no prototype,所以写这些函数的时候要注意规范。
新发现:GIF格式的图片在打开方式里选择用IE打开,然后再将其保存为BMP格式,可以在dos里以256色方式打开。
******************************************************************************* 2011年10月4日星期二
【潜在问题】MOUSE.C文件里的测试主函数如果运行过exit(1);或break;退出程序后重新进得时候会在黑色dos界面出现null pointer assignment提示,并直接退出程序。未弄懂是什么原因导致,以作记号。
鼠标按键时如果两次按键时间间隔过短会无法响应,理论间隔为1秒。
******************************************************************************* 2011年10月5日星期三
终于解决了鼠标的移植性问题,把鼠标和现有工程集成在一起并编译通过了~现在我已经有了主面板、汉字系统和鼠标。接下来我要把岳坤虎写的开机动画和图形显示模块移植过工程里。
值得高兴的是我们的鼠标几乎没遇到过闪烁的问题,呵呵。应该是我们直接调用中断中自带的鼠标形状而没有自己画鼠标产生的效果。我们的鼠标是16*16点阵的方式显示,别人用画线的方法显示,显然后者更慢。或者是别人程序错误导致鼠标不停地在重画,但这个可能性较低,因为随着鼠标的移动鼠标本来就在不断重画。
【确认问题】已经确认:源文件名和函数名相同不引起错误,.C文件和.H文件的名字相同时,由于会编译出相同的.OBJ文件发生错误,该问题产生的前提是.C和.H文件都在工程里被编译了。若.H没有加到工程里是不会发生这个问题的。
今天终于把动画、汉字、鼠标和主面板整合在工程里了,下一步要研究图片调用显示饮料瓶和具体算法了。
*******************************************************************************
2011年10月6日星期四
郁闷+纠结今天找朱明富老师请教了SVGACC的使用和关于256色图像的显示问题,我们最终决定放弃256色编程,暂时用16色图显示商品图片。
今天无意间又发现一个错误,我的鼠标程序在win7的DOSBOX下可以显示,但在XP 下无法显示,网上的说法是在win 98、me之前的版本和纯DOS下可以显示,在XP下无法显示。所以我们悲剧的要重写鼠标,貌似老师说过要自己画鼠标吧。
结构体中成员项的表示:
1.一般的变量结构变量名.成员名
2.结构指针(*结构指针名).成员名或结构指针名->成员名
我们的软件名字就叫小V具有报警功能的小V真正做到了“有困难找小V!”
今天菜单制作有些许进展,但是汉字显示仍有些瑕疵,程序运行时频繁出现不确定性问题,每次重开的运行结果可能不一样。汉字显示时会有颜色尾巴。
******************************************************************************* 2011年10月7日星期五
今天把鼠标重写了,使用不停画线的方法来显示鼠标,但是还有些问题,鼠标不能擦除轨迹,一直按着的时候会不停的闪。我觉得是程序自身的问题,因为不按的时候移动起来的鼠标是不闪的。
******************************************************************************* 2011年10月10日星期一
今天增加了按钮识别函数和兑零函数的雏形。
【设想】开机动画->显示作者后售货机是关着的,然后增加一个开机的过程,其中显示操作系统“龙Os”,其他的操作添加动画。售货机上方还可以显示时间。
今天遇到一个问题,change.c文件里有一个change函数用来兑零的函数,在工程里运行的时候报错“call to nunfunction”,后来将函数的名字改成exchange后错误不再出现。
******************************************************************************* 2011年10月11日星期二
今天整理了工程,改了关于全局变量的部分,将其他文件需要的全局结构或者变量在vend.c里的main函数之前定义,其他源文件需要引用时就在前面用extern声明即可。【未完成任务】为减少全局变量,需要检查整个工程,将其他子函数改为形参调用。
【需求】还需要一个文件专门存放购买时的支付记录退钱的.C文件和.H文件用来进行购买兑零两个源文件里的公有函数调用。
******************************************************************************* 2011年10月12日星期三
今天在写钱币处理方面的函数,收钱找钱,包括判断收银盒里的各种钱币数目。
【经验】到助教那里验收,知道了工程怎么建还有全局的规划。我们需要清晰地划分模块,并将每个模块写成.C文件,每个,C文件都有相应的一个.H文件。.H文件里不写文件包含命令,而是都写在相应的.C文件里。文件之间也可以通过包含.H的方式进行跨文件函数调用。.H文件里写宏定义、类型声明、结构声明、函数原型声明,不写变量定义。
******************************************************************************* 2011年10月13日星期四
今天把工程恢复先前的进度,按老师助教的建议改好了工程布局。核心算法zhifu.c里面最大的函数已经完工。
******************************************************************************* 2011年10月14日星期五