《C语言程序设计王新萍实训指导书.docx》由会员分享,可在线阅读,更多相关《C语言程序设计王新萍实训指导书.docx(49页珍藏版)》请在第一文库网上搜索。
1、C语言程序设计实训指导书编制:山西职业技术学院计算机工程系信息管理教研室2011-5-17第一部分实训目标与方式一、实训的目的(一)课程定位C语言是一种优秀的结构化程序设计语言,是程序设计的入门语言课。是计算机应 用专业的专业基础课。具体教学目标定位为:使学生逐步建立起程序结构的概念,掌握程序 设计的一般思路和方法,培养学生独立解决问题的能力。(二)实训目标实践教学,特别是实训,是高职课程教学方式的生命线。C语言程序设计的实训是 学生重要的实习环节,主要培养下述能力:(1)培养学生程序设计开发的基本素质(2)培养编程的逻辑思维和熟练掌握程序设计的技能和方法(3)培养学生分析问题和独立解决问题的
2、能力,为学生综合素质的培养打下坚实的 基础。(4)使学生掌握编程的风格和技巧,养成良好的编程习惯,具备扎实的专业素质。二、实训方式与方法(一)实训的基本方式教师制定出难易适中的设计题目,学生分组讨论或独立进行设计,然后上机调试, 实训重点放在程序开发的全过程上。难点是如何使学生学会分析问题,如何调试程序。其中 一周的项目实训由学生分组,每个设计小组中不同学生设计不同的模块,分工协作开发出完 整的项目。(二)、实训的步骤、方法步骤:(1)上机前的准备工作学生要复习和掌握与本实训有关的教学内容。根据问题,进行分析,选择适当算 法并编写程序,手编程序应书写整齐。上机前一定要仔细检查程序(称为静态检查
3、)直到找 不到错误(包括语法和逻辑错误)才能上机,以提高上机效率。分析可能遇到的问题及解决 的对策。准备几组测试程序的数据和预期的正确结果,以便发现程序中可能存在的错误。上 机前没有充分的准备,到上机时临时拼凑一个错误百出的程序,宝贵的上机时间白白浪费了。 切忌不编程序或抄别人程序上机,应从一开始就养成严谨的科学作风。(2)准备好调试和运行时所需的数据上机调试。首先调用C语言集成开发环境,输入并编辑事先准备好的源程序;然后调用编 译程序对源程序进行编译,查找语法错误,若存在语法错误,重新进入编辑环境,改正后再 进行编译,直到通过编译,得到目标程序(扩展名为OBJ)。下一步是调用连接程序,产生
4、可执行程序(扩展名为EXE)。使用预先准备的测试数据运行程序,观察是否得到预期的正 确结果。若有问题,则仔细调试,排除各种错误,直到得到正确结果。在调试过程中,要充 分利用C语言集成开发环境提供的调试手段和工具,例如单步跟踪、设置断点、监视变量值 的变化等。整个过程应自己独立完成。不要一点小问题就找老师,学会独立思考,勤于分析, 通过自己实践得到的经验用起来更加得心应手。(3)对实训过程中出现的问题进行分析,写出实训报告。实验结束后,要整理实验结果并认真分析和总结,根据教师要求写出实验报告。书写 报告是整个实验过程的一个重要环节。通过写报告,可以对整个实训过程有个全面的分析, 对所学知识会有更
5、深刻地理解。方法:(1)对运行中可能出现的问题应事先做出估计;对程序中自己有疑问的地方,应作 上记号,以便在上机时给于注意。(2)在实训过程中应该有试错这一环节,很重要,引导学生故意制造一些错误,观 察编译提示,使学生在试错的过程中逐步掌握程序调试方法,在试错过程中体会程序设计的 乐趣,并获得成就感。通过试错的方式进一步领会程序设计的思想。提升解决问题的能力(3)在实训过程中,教师一定要有意识地培养和训练学生良好的程序设计风格。使 学生遵照统一的编程风格(缩排技术)、注释标准、命名规则、及编码原则进行编程。(4)编程是一项既复杂又枯燥的工作,为了增强学生的学习兴趣,在每一实训项目的 实训过程中
6、,由老师演示讲解、或由学生自己编制一个趣味程序实例,通过对趣味问题的讨 论,使学生在轻松愉悦的氛围中探索程序的奥妙,达到事半功倍的效果。()成绩考核与记载(1)实训完成后,每位实训学生都要求撰写实训报告单(见附件)。(2)实训的后期阶段必须对学生实训进行考核。考核前要制定考核标准,通过现场 考核,登记每位学生的考核成绩。(3)实训总评成绩由三部分构成:考勤(占20%) +实训报告(占40%) +实训考 核(占40%)。(四)实训教材或指导书名称:王新萍、郑静主编的C语言程序设计教程三、实训内容、要求、学时分配序号实训名称目的要求实训学时开出要求1熟悉C环境掌握C语言程序的结构1 .熟悉TUrb
7、OC集成环境的操作界面,能熟 练地启动TUrbO C和退出TUrbo C。2 .熟练掌握在Turbo C下建立、修改和运 行、保存和装入程序的方法。3 .掌握C程序的基本结构2必做2数据类型及其运算1 .进一步熟悉TUrboC集成环境下程序的 建立、修改和运行2 .熟悉定义各种基本数据类型变量的方法3 .初步了解Printf函数的使用4 .熟悉有关变量的语法错误,并能够根据 错误信息修改、调试程序。5 .熟悉各种运算符的使用规则,能编写简 单程序,求数学运算式的值。6 .理解赋值运算符的意义,区别赋值运算 符与数学中的等号。2必做3顺序结构程序设计1 .熟练掌握printf函数和scanf函数
8、的调用 格式,及其相关的格式转换控制符。2 .能灵活运用printf函数控制屏幕输出格2必做式,熟悉SCanf函数对各种类型数据的输 入格式。3.熟练掌握getchar函数和putchar函数的 调用方法4选择结构程序设计1 .掌握控制流程中复合语句的使用。2 .熟练掌握if语句和ifelse语句,理解条 件嵌套。3 .熟练掌握SWitCh语句。4必做5循环结构程序设计1 .熟练掌握while语句、dowhile语句、 for语句的功能、使用格式和执行过程。2 .理解循环结构,在实际编程中能灵活运 用三种循环语句解决相关问题。6必做6数组的定义和引用I.掌握一维数组和二维数组的定义、赋值 和输
9、入的方法。2 .掌握字符数组和字符串函数的使用3 .掌握与数组有关的算法(特别是排序算 法)4必做7函 数十1 .掌握函数的定义方法2 .掌握函数的实参与形参的对应关系和 “值传递”方式。3 .掌握函数的调用方法。4必做8指 针十1 .掌握指针的概念,会定义和使用指针变 量2 .熟练掌握用指针处理一维数组,掌握用 指针形式引用二维数组中各个元素。3 .熟练掌握用字符指针处理一维字符数组。6必做9结构体与联合体1 .掌握结构体变量和共用体变量的定义和 使用。2 .掌握结构体类型数组的使用。2必做10预编译处理命令1 .掌握宏定义的方法。2 .掌握文件包含处理方法。3 .掌握条件编译的方法2选做1
10、1文件操作1 .掌握文件以及缓冲文件系统、文件指针 的概念2 .学会使用文件打开、关闭、读、写等文 件操作函数。2必做12项目实训1 .初步了解软件开发的几个阶段2 .熟悉软件开发的过程3 .培养学生综合应用知识解决问题的能力1周必做合计36学时+1周第二部分具体实训内容实训项目1.熟悉C环境、掌握C语言程序的结构技能培养目标1 .熟悉TUrbOC集成环境的操作界面,能熟练地启动TUrbOC和退出Turbo Co2 .熟练掌握在TUrboC下建立、修改和运行、保存和装入程序的方法。3 .掌握C程序的基本结构实验内容仔细阅读以下程序,领会各程序的运行结果并掌握TUrbOC的基本操作流程。l.ma
11、in()(Printf(WELLCOME TO TURBO C!);11)在编辑窗口录入该程序后,选择File菜单中的Save,输入存盘路径及文件名(例如输 入A:sjl_l)进行保存。2)选择RUn菜单中的Run,完成程序的编译、连接和运行。3)选择Run菜单中的User Screen ,观察屏幕上的运行结果。说明:在TUrboC环境下编译、连接和运行C程序,会得到扩展名为Qbj的目标文件和扩 展名为.exe的可执行文件,这两个文件的文件正名与源程序文件正名相同。如果系统在 编译或连接的过程中发现了源程序的错误,则系统中止程序的编译或连接,并在 Message窗口中显示出错信息。列磁盘文件目
12、录:按A11+X退出TUrbO C,返回De)S提示符;键入dir sjl.*并回车,则屏幕显示:Sjl-IC42421-09-03 10:18Sjl-IOBJ2211-09-03 10:22Sjl-IEXE44861-09-03 10:25第一个文件sjl.C是源文件文本,在DoS提示符下键入TYPESj1.C命令,可在屏 幕上显示该文件的内容。可看到该程序只有42个字节。第二个文件sjl-l.OBJ是TUrbO C编译程序产生的二进制机器指令(目标码),如果用 DOS命令TYPE显示该文件,屏幕可能会出现混乱的信息。第三个文件sjl_l.EXE是Turbo C连接程序产生的可执行文件。在D
13、OS提示符下键入 sjl并按回车,屏幕将显示 “WELLCOME TO TURBO C!”。2 .main()(Int a,b,c;/*定义三个整型变量a,b,c*/a=10;b=30;c=a+b;clrscr(); /* 清屏 */printf(ua+b=%d,c);)1)先分析程序的运行结果,再运行程序,对比预先分析的结果与屏幕上的结果是否一致。 如果有差异,分析错误所在。2)删除程序中的注释,看看会有什么结果。3)删除程序中的变量定义语句“inta,b,c;,看看会有彳3 . main() (主函数int a,b;/*定义两个整型变量a,b*/a=30;b=cf(a);clrscr();
14、 /* 清屏 */Printf(a*a=%d,b);)cf(inlx)/*定义cf()函数,X为形式参数*/Cf函数(int y;y=x*x;return(y); /*将变量y的值作为cf()函数的返回值*/)先分析程序的运行结果,再运行程序,对比预先分析的结果与屏幕上的结果是否一致。 1)如果有差异,分析错误所在。2)将cf()函数整个搬到主函数之前,运行程序,看看会有什么运行结果。3)将程序中的“a=30;”改成“scanf(d”,&a);,看看会有什么运行结果。4 .趣味程序实例演示(歌星大奖赛)在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1700分。选手最后得 分为:去掉一个最
15、高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。 *问题分析与算法设计这个问题的算法十分简单,但是要注意在程序中判断最大、最小值的变量是如何赋值的。* 程序说明与注释#include ,stdio.hmain()(int integer,1,max,min,sum;max=-32768; *先假设当前的最大值max为C语言整型数的最小值*/min=32767; /*先假设当前的最小值min为C语言整型数的最大值*/SUm=0; /*将求累加和变量的初值置为0*/for(i=l;i=IO;i+)(printf(,Input number %d=i);SCanf(%d,&integer); /* 输入评委的评分 */SUm+