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