1、 年 月 日 第 周第一天第一步,编写源代码作为例子,我们编写了一个输出 Hello World 的程序。该程序将连续输出 10 遍该字符串,并且在每一次输出前首先打印一个序号。第二步,打开“编译”工具栏这一步并非是必要的。如果编译工具栏已经打开,或者您决定通过菜单而不是工具来进行操作,并没有必要打开工具栏。菜单命令和工具栏快捷按钮一般是可以替代的。使用鼠标右键单击工具栏的空白处,在弹出的菜单中选中“Build(编译)”一项,就可以打开编译工具栏。在该工具栏中,我们可以选择Debug模式,或者Release模式进行编译。在调试程序的过程中,我们一般选择 Debug 模式。第三步,编译我们可以通
2、过菜单或者工具栏按钮进行编译。如果使用菜单,可以选择: Build - Build DemoQuestion.exe F7 或者: Build - Rebuild All如果使用工具栏,可以选择如下图中的按钮:如果编译完全成功,会显示 0 error(s), 0 warning(s)。另外,即便有一些 warning,也可能编译成功。Warning 表示该代码可能会影响程序运行,虽然可以运行,但有可能存在潜在的问题,编译器不推荐这么写。第四步,除错一般情况下,代码在编写过程中必然会发生各种错误。编译器检查出来的错误会被显示在 VC 6.0 环境的 Build 窗口。如下图所示,编译器提示:在Q
3、uestion.c的第10行,发生了 C2065 错误,变量 j 从没有被声明就被使用了。我们发现上面的错误是因为误把 i 写成了 j,只要改回来,这个错误就被修改好了。第二天小球下落问题:小球从100高处自由下落当第一落地时经过了100米,这个可单独考虑,从第一次弹起到第二次落地前经过的路程为前一次弹起最高高度的一半乘以2加上前面经过的路程,因为每次都有弹起和下落两个过程,这两个过程经过的路程相等所以乘以2,以后的几次依次类推,那么到第十次落地前共经过了九次这样的过程,所以程序中for循环执行循环体的次数是九次。题目中还提到了第十次反弹的高度,这个我们只需在输出时用第九次弹起的高度除以2即可
4、。渐变色的圆:画一个圆形的渐变色首先,我们要用到圆形的基本公式:x*x + y*y = r*r让弧度从02*3.14,然后需要根据弧度和半径算出(x,y),用pi表示圆周率用r表示半径用a表示弧度(小数)用c表示颜色渐变色全屏需要将0255的颜色和0479的y轴对应起来c 表示颜色,范围0255y 表示y轴,范围0479第三天结构体的简单应用:创建一个名为student的结构体类型,其中包含学生基本信息学号(num)、姓名(name)、性别(sex)、年龄(age)、成绩(score),定义一个student类型的变量,并使用学生信息为该变量赋值。运行程序后在窗体上输出该变量的的各成员的值。定
5、义的一个结构体只是一个类型。和整型int、字符型(char)、浮点型(float一样,而并非一个实体变量,只不过这个类型是用户自己定义的构造类型.而不是系统定义的类型.找最高分:一个结构体变量中可以存放一组数据,例如一个学生的学号、姓名、年龄等数据。如果要记录的学生数量很多,定义多个结构体变量显得很麻烦,这是就要应用数组。数据元素为结构体类型的数组称为结构体数组。与一般数组不同的是,结构体数组元素都是一个结构体类型的数据,它们各自还包含成员。第四天逆序放数据:在对全部数组元素赋初始值是,可以不指定数组长度,给一部分元素赋初始值,未赋值的部分元素值为0。例如:int a5=1,2表示给前两个袁术
6、赋了初始值,后面的a2,a3,a4的值均为0选票统计:这个任务是一个典型的一维数组应用,这里要说的一点就是C语言规定只能逐个引用数组元素,不能一次引用整个数组,这个任务提现了在对数组元素进行判断时只能通过for语句对数组中的元素一个一个的引用模拟比赛打分:这个任务需要使用嵌套的for循环,外层的循环是控制选手变化的,内层的for循环是控制5个裁判打分情况的,这里要注意由于不知道选手的人数,所以存储裁判所打分数的数组的大小事随着选手人数变化的。因为有5个裁判,所以当数组下标能被5整除时跳出内层for循环,此时计算出的总分是5名裁判给一名选手打分的结果,将此时计算出的总成绩存到另一个数组中。输出选
7、手成绩是也是遵循上面的规律。对调最大数与最小数:首先是要确定最大数与最小数的具体位置,将a0赋值给min,用min和数组中其他元素比较,有比min小的,就将这个较小的值赋值给min,同时将其所在位置赋给j,当和数组中元素均比较一次后,此时j中存放的就是数组中最小元素所在的位置。最大元素位置的确定同最小元素。当确定具体位置后,将这两个元素位置互换,最后将互换后的数组输出。第五天函数的参数:参数分为两种,一种叫做形式参数,另一种叫做实际参数,在定义函数是函数名后面括弧中的变量名称为“形式参数”。本任务中char *p就是在定义形式参数,在主调函数中调用一个函数是,函数名后面括弧中的参数(可以是一个
8、表达式)称为“实际参数”,本任务主函数调用length时括号中的str就是实际参数函数返回值问题:函数的返回值是通过函数中的return语句获得的。本实例使用return语句将被调用函数length中的n值带回到主调函数中,在定义函数是要指定函数值的类型,函数类型决定了返回值的类型,为了明确表示“不带返回值”,可以用“void”,定义“无类型”。递归解决年龄问题:本任务中的age函数被递归调用,这里详细分析一下递归调用的过程。递归的过程分为两个阶段:第一阶段是“回推”,由题可知,要想求第5个人的年龄必须知道第4个人的年龄,要想知道第4个人的年龄必须知道第3个人的年龄.直到第1个人的年龄时,这时
9、age(1)的年龄已知,就不用再推。第二阶段是“递推”,从第2个人推出第3个人的年龄.一直推到第5个人的年龄为止。这里要注意必须要有一个结束递归过程的条件,本任务就是当n=1时(n表示第n个人),f=10(f表示年龄),也就是age(1)=10,否则递归过程会无限制进行下去。总之递归就是在调用一个函数的过程中又出现直接或间接地调用该函数本身。用数组名作为函数参数:用数组名作为函数参数,应该在主调函数和被调函数中分别定义数组,本任务主调函数定义的数组为height,被调用函数定义的数组为array,实参数组与形参数组类型应一致,本任务都为float,形参数组也可以不指定大小,在定义数组是在数组名
10、后面跟一个空的方括号,用数组名作函数实际参数是,不是把数组元素的值传递给形参,而是把实参数组的起始地址传递给形参数组分数计算器:本任务要求大家掌握的是函数的嵌套调用。C语言规定一个函数内不能包含另一个函数,也就是说不能嵌套定义函数,但是可以再调用一个函数的过程中调用另一个函数,简言之课嵌套调用函数。从本实例来看在执行main函数的过程中,当遇到调用add函数的操作语句时,流程转向add函数,在执行add函数时,当遇到调用gbs函数的操作语句时,流程转向gbs函数,在执行gbs函数时,当遇到调用gby函数的操作语句时,流程转向gby函数,当完成gys函数的全部操作后返回到gbs中,当完成gbs剩
11、下的全部操作后返回到add中执行剩余部分,知道add函数结束,再返回到main函数中,继续执行main剩余部分直到结束(如中间过程在遇到函数就按照上述模式执行第六天:打字母游戏:第一步在随机的位置出现随机的字母,实现方法 rand()随机数生成循环延时函数Sleep()第二步 根据用户的输入擦除随机生成的字母bar()第七天:添加打字母游戏的功能:实现游戏的通关的多个级别,实现生命值递减,即游戏开始的时候用户有一个生命值,当没有击中一个字母生命值减1,当生命值为0的时候,显示GAME OVER,实现计分,即用户打中一个字母记1分,并把分数显示在图形窗口中,当用户的系数加到某一值时,游戏显示通过第一关第 页