C程序设计实训指导书.docx
- 文档编号:27739478
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:36
- 大小:28.75KB
C程序设计实训指导书.docx
《C程序设计实训指导书.docx》由会员分享,可在线阅读,更多相关《C程序设计实训指导书.docx(36页珍藏版)》请在冰豆网上搜索。
C程序设计实训指导书
项目(实训)指导书
系别:
计算机系
专业:
软件工程
课程:
C程序设计
制订人:
陈强
审核人:
制订时间:
2011年9月
项目一熟悉C程序上机环境与顺序结构程序
一、项目(实训)名称
熟悉C程序上机环境与顺序结构程序。
二、项目(实训)学时数
2课时。
三、项目(实训)目标
实训目标:
1、设置C程序运行环境VisualC++6.0。
2、掌握编缉、编译、调试与运行C程序的过程。
3、理解C程序的组成与作用。
最终成果:
1、成功运行所调试的程序。
获得的知识:
1、C程序的运行过程。
2、C程序的组成结构。
3、C语言的基本语法。
四、项目(实训)中的具体任务
1.将两个数互换输出
实验步骤与要求:
(1)将两个数定义为整型;
(2)用赋值法或用scanf函数对两个变量赋值;
(3)编译、连接、运行此程序。
测试数据
(1)3,4
(2)-10,-5
注意:
互换时要设第三个变量,且类型与这两个变量相同。
2.从键盘输入两个整数,然后输出两数中的较大值。
程序可参阅课本
测试数据
(1)8,5
(2)20,100
3.基本整型a的值为32767,基本整型b的值为a+1,编程输出b的值。
注:
将b改为short型试试
五、教师知识和能力要求
1、熟练地进入VisualC++6编辑界面,熟练地输入和修改源程序。
2、掌握C程序的编译、连接和运行的过程。
3、掌握和理解C程序的结构。
4、掌握VisualC++6主菜单中常用菜单的功能。
六、学生知识和能力准备
1、总结实验中在编辑、编译、连接、运行等各环节中所出现的问题及解决方法。
2、提交实验报告,每个程序都要跟算法和程序清单。
七、工具与设备
1、PC机。
2、Windows2003/XP操作系统。
3、VisualStudioC++6。
八、教学资料
《C程序设计》(第四版),谭浩强著,清华大学出版社,2010年11月
九、实施步骤与技术要点
(一)编写源程序代码
1、运行VisualStudioC++6;
2、单击“文件|新建”,打开“新建对话框”,选择“文件”标签;
3、在“文件”对话框中,选择“C++SourceFile”项,选择文件保存位置,输入文件名;
4、输入源代码。
#include
intmain()
{
…
}
4、编译程序,检查语法错误。
5、连接生成.exe文件。
6、执行.exe文件,观察屏幕显示。
(二)调试其它例题
1、按以上步骤调试例题。
2、按授课内容改动程序观察运行结果。
十、考核或评价标准
实训成绩将主要根据学生对待实训的态度、对关键知识点和编程技巧的掌握程度、实训报告的内容、答辩情况等进行综合评定。
最后的成绩将分优秀、良好、中等、及格和不及格五个等级。
具体评判标准如下:
优秀:
实训认真、刻苦,有钻研精神,不无故缺席。
熟练掌握了本实训的关键知识点,具有良好的独立思考问题和解决问题的能力,具备了较好的C语言编程能力,编制的程序运行正确。
实训记录内容丰富、齐全,答辩时能清晰明了地阐明问题,回答问题反映敏捷、思路清晰。
良好:
能认真对待实训,不无故缺席。
掌握了本实训的关键知识点,具备了较好的C语言编程能力,编写的程序运行正确。
实训记录内容齐全,答辩时能清晰明了地阐明问题,能正确回答全部问题。
中等:
能认真对待实训,不无故缺席。
基本掌握了本实训的关键知识点,具备了一定的C语言编程能力,编写的程序运行基本正确,无致命错误。
实训记录内容较齐全,答辩时能正确回答大部分问题。
及格:
对待实训不够认真,有少量迟到、早退或无故缺席现象。
基本掌握了本实训的主要内容,具有了用C语言编程的基本能力,但掌握不全面、扎实,编写的程序总体结构符合要求,基本能正常运行,但还存在少量错误。
实训记录内容基本齐全,答辩时能在教师提示下正确回答大部分问题。
不及格:
对待实训马虎、敷衍,经常迟到、早退或无故缺席。
不能正确理解本实训的主要内容,不具备基本的C语言编程能力,编制的程序不能正常运行,或是抄袭他人程序,应付答辩。
答辩时即使经教师提示仍不能正确回答大部分问题。
项目二选择结构程序设计
十一、项目(实训)名称
选择结构程序设计
十二、项目(实训)学时数
4课时
十三、项目(实训)目标
实训目标:
1、进一步掌握关系表达式和逻辑表达式的使用。
2、熟悉选择结构程序设计。
3、熟练使用if语句进行程序设计。
4、使用switch语句实现多分支选择结构。
最终成果:
1、演示程序运行结果。
2、说明调试过程中出现的现象
3、实训报告
获得的知识:
1、程序调试和结果验证的过程
2、解题思路
十四、项目(实训)中的具体任务
1、调试下列程序,使之具有如下功能:
输入a、b、c三个整数,求最小值并验证结果。
#include
intmain()
{
inta,b,c;
scanf("%d%d%d",a,b,c);
if((a>b)&&(a>c))
if(b printf("min=%d\n",b); else printf("min=%d\n",c); if((a printf("min=%d\n",a); } 2、用scanf函数输入一个年份year,计算这一年2月份的天数days,然后用输出函数printf输出days。 说明: (1)闰年的条件是: year能被4整除但不能被100整除,或者year能被400整除。 (2)如果year是闰年,则2月份的天数为29天,不是闰年则为28天。 3、编写程序,输入三角形三边a、b、c,判断a、b、c能否构成三角形,若不能则输出相应的信息,若能则判断组成的是等腰、等边、直角还是一般三角形。 4、编写程序,输入月薪数a,计算并输出税率、应缴税款和实得奖金数。 工薪所得扣除标准提高到3500元。 要求计算下列表格中空白项。 级数 全月应纳税所得额(含税级距) 税率% 要纳税金额(元) 应纳税金额(元) 最实得金额(元) 一 不超过3500元的 0 二 超过3500元至5000元的部分 3 三 超过5000元至8000元的部分 10 四 超过8000元至12500元的部分 20 五 超过12500元至38500元的部分 25 六 超过38500元至58500元的部分 30 七 超过58500元至83500元的部分 35 七 超过83500元的部分 45 5、身高预测 每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。 小孩成人后的身高与其父母的身高和自身的性别密切相关。 设faHeight为其父身高,moHeight为其母身高,身高预测公式为: 男性成人时身高=(faHeight+moHeight)*0.54(cm) 女性成人时身高=(faHeight*0.923+moHeight)/2(cm) 此外,如果喜爱体育锻炼,那么可增加身高2%,如果有良好的卫生饮食习惯,那么可增加身高1.5%。 编程从键盘输入你的性别(用字符型变量sex存储,输入字符F表示女性,输入字符M表示男性)、父母身高(用实型变量存储,faHeight为其父身高,moHeight为其母身高)、是否喜爱体育锻炼(用字符型变量sports存储,输入字符Y表示喜爱,输入字符N表示不喜爱)、是否有良好的饮食习惯等条件(用字符型变量diet存储,输入字符Y表示喜爱,输入字符N表示不喜爱),利用给定公式和身高预测方法对你的身高进行预测。 实验授课提示: 通过这个实际例子熟悉选择结构程序设计的方法,以及if语句,进一步熟悉VC++集成环境的程序编辑、编译、链接、运行和调试方法。 十五、教师知识和能力要求 1、掌握选择结构程序设计。 2、掌握程序调试与结果验证。 3、掌握程序调试能力。 十六、学生知识和能力准备 1、if语句和switch语句。 2、关系表达式。 3、逻辑表达式 十七、工具与设备 1、PC机。 2、Windows2003/XP操作系统。 3、VisualStudioC++6。 十八、教学资料 《C程序设计》(第四版),谭浩强著,清华大学出版社,2010年11月 十九、实施步骤与技术要点 2、3、5实验步骤与要求: (1)有变量定义为整型。 (2)输入前要加提示语句。 (3)输出结果前要有必要的文字说明。 (4)如果程序有误,可采用“跟踪打印”的调试方法,确定错误的出处。 4、实验步骤与要求: (1)用if语句编程,自变量和函数值均为双精度类型 (2)用scanf函数输入奖金数a,输出结果采用以下形式: a=具体值rate=税率值tax=应缴税款profit=实得奖金数 (3)分别输入a=3000,4500,6000,10000,100000,运行该程序 (4)用if~elseif语句和switch语句编程,其它同上。 二十、考核或评价标准 实训成绩将主要根据学生对待实训的态度、对关键知识点和编程技巧的掌握程度、实训报告的内容、答辩情况等进行综合评定。 最后的成绩将分优秀、良好、中等、及格和不及格五个等级。 具体评判标准如下: 优秀: 实训认真、刻苦,有钻研精神,不无故缺席。 熟练掌握了本实训的关键知识点,具有良好的独立思考问题和解决问题的能力,具备了较好的C语言编程能力,编制的程序运行正确。 实训记录内容丰富、齐全,答辩时能清晰明了地阐明问题,回答问题反映敏捷、思路清晰。 良好: 能认真对待实训,不无故缺席。 掌握了本实训的关键知识点,具备了较好的C语言编程能力,编写的程序运行正确。 实训记录内容齐全,答辩时能清晰明了地阐明问题,能正确回答全部问题。 中等: 能认真对待实训,不无故缺席。 基本掌握了本实训的关键知识点,具备了一定的C语言编程能力,编写的程序运行基本正确,无致命错误。 实训记录内容较齐全,答辩时能正确回答大部分问题。 及格: 对待实训不够认真,有少量迟到、早退或无故缺席现象。 基本掌握了本实训的主要内容,具有了用C语言编程的基本能力,但掌握不全面、扎实,编写的程序总体结构符合要求,基本能正常运行,但还存在少量错误。 实训记录内容基本齐全,答辩时能在教师提示下正确回答大部分问题。 不及格: 对待实训马虎、敷衍,经常迟到、早退或无故缺席。 不能正确理解本实训的主要内容,不具备基本的C语言编程能力,编制的程序不能正常运行,或是抄袭他人程序,应付答辩。 答辩时即使经教师提示仍不能正确回答大部分问题。 项目三循环结构程序设计 一、项目(实训)名称 循环结构程序设计 二、项目(实训)学时数 4课时 三、项目(实训)目标 实训目标: 1、熟练三种循环语句的应用。 2、熟练循环结构的嵌套。 3、熟练break和continue语句的使用。 4、熟练调试与修改程序。 最终成果: 1、演示程序运行结果。 2、说明调试过程中出现的现象。 3、实训报告 获得的知识: 1、控制循环执行次数的方法 2、中断循环执行的方法 3、短路循环执行的方法。 4、VisualStudioC++6环境中调试程序的方法 四、项目(实训)中的具体任务 1、分别用while语句、do-while语句编写程序,计算e≈1+1/1! +1/2! +...+1/n! 2.如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为“完数”。 例如6的因子是1,2,3,且6=1+2+3,因此6是完数。 编写程序找出1000之内的所有完数及这些完数的和。 3、输入并运行下面的程序,观察程序的运行结果。 #include intmain() { intn; while (1) { printf("Enteranumber: "); scanf("%d",&n); if(n%2==1) { printf("Isaid"); continue; } break; } printf("Thanks.Ineededthat! "); } 二十一、教师知识和能力要求 1、掌握循环结构程序设计。 2、掌握程序调试能力。 二十二、学生知识和能力准备 1、VisualStudio项目组织方式 2、while语句和do..while语句。 3、for语句。 二十三、工具与设备 1、PC机。 2、Windows2003/XP操作系统。 3、VisualStudioC++6。 二十四、教学资料 《C程序设计》(第四版),谭浩强著,清华大学出版社,2010年11月 二十五、实施步骤与技术要点 1、分别用while语句、do-while语句编写程序,计算e≈1+1/1! +1/2! +...+1/n! 实验步骤与要求: (1)用单重循环编写程序 (2)使误差小于给定的ε,设ε=10-5 (3)除了输出e以外,同时还要输出总的项数n 2.如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为“完数”。 例如6的因子是1,2,3,且6=1+2+3,因此6是完数。 编写程序找出1000之内的所有完数及这些完数的和。 实验步骤与要求: (1)要求使用for循环 (2)输出形式为: 完数1+完数2...=和值 算法说明: (1)sum=0,m=2 (2)当m<=1000时,反复执行(2.1)(2.2)(2.3)(2.4),否则转(3) (2.1)k=m/2,n=0,j=1 (2.2)当j<=k时,反复执行(2.2.1)(2.2.2),否则转(2.3) (2.2.1)ifj是m的因子则执行n=n+j (2.2.2)j++ (2.3)ifm=n则输出完数m,sum=sum+m (2.4)m++ (3)输出m值 二十六、考核或评价标准 实训成绩将主要根据学生对待实训的态度、对关键知识点和编程技巧的掌握程度、实训报告的内容、答辩情况等进行综合评定。 最后的成绩将分优秀、良好、中等、及格和不及格五个等级。 具体评判标准如下: 优秀: 实训认真、刻苦,有钻研精神,不无故缺席。 熟练掌握了本实训的关键知识点,具有良好的独立思考问题和解决问题的能力,具备了较好的C语言编程能力,编制的程序运行正确。 实训记录内容丰富、齐全,答辩时能清晰明了地阐明问题,回答问题反映敏捷、思路清晰。 良好: 能认真对待实训,不无故缺席。 掌握了本实训的关键知识点,具备了较好的C语言编程能力,编写的程序运行正确。 实训记录内容齐全,答辩时能清晰明了地阐明问题,能正确回答全部问题。 中等: 能认真对待实训,不无故缺席。 基本掌握了本实训的关键知识点,具备了一定的C语言编程能力,编写的程序运行基本正确,无致命错误。 实训记录内容较齐全,答辩时能正确回答大部分问题。 及格: 对待实训不够认真,有少量迟到、早退或无故缺席现象。 基本掌握了本实训的主要内容,具有了用C语言编程的基本能力,但掌握不全面、扎实,编写的程序总体结构符合要求,基本能正常运行,但还存在少量错误。 实训记录内容基本齐全,答辩时能在教师提示下正确回答大部分问题。 不及格: 对待实训马虎、敷衍,经常迟到、早退或无故缺席。 不能正确理解本实训的主要内容,不具备基本的C语言编程能力,编制的程序不能正常运行,或是抄袭他人程序,应付答辩。 答辩时即使经教师提示仍不能正确回答大部分问题。 项目四模块化程序设计 二十七、项目(实训)名称 模块化程序设计 二十八、项目(实训)学时数 6课时 二十九、项目(实训)目标 实训目标: 1.能够实现多模块的程序设计与调试的方法。 2.能够运用函数的定义和调用的方法。 3.能够使用递归方法进行程序设计。 最终成果: 1、演示程序运行的过程和结果。 2、说明调试过程中出现的现象。 3、实训报告。 获得的知识: 1、debug工具。 2、函数调用过程中类型转换的规则。 3、函数递归调用的逻辑过程 4、C语言程序的模块化结构 三十、项目(实训)中的具体任务 1、编写一个函数,判断一个数是不是素数。 在主函数中输入一个整数,输出是否是素数的信息。 2、用梯形法求函数的定积分。 说明: 用梯形法求定积分,梯形公式为 s=h[f(a)+f(b)]/2+hf(a+kh)其中,h=(b-a)/n 3、用递归方法编写程序,求n阶勒让德多项式的值,递归公式为 1(n=0) pn(x)=x(n=1) ((2n-1)xpn-1(x)-(n-1)pn-2(x))/n(n>1) 三十一、教师知识和能力要求 1、C语言模块化设计方法。 2、程序调试能力。 三十二、学生知识和能力准备 1、掌握函数的定义与调用。 2、掌握数组的概念。 3、理解变量的作用域和生存期。 三十三、工具与设备 1、PC机。 2、Windows2003/XP操作系统。 3、VisualStudioC++6。 三十四、教学资料 《C程序设计》(第四版),谭浩强著,清华大学出版社,2010年11月 三十五、实施步骤与技术要点 1、编写一个函数,判断一个数是不是素数。 在主函数中输入一个整数,输出是否是素数的信息。 实验步骤与要求: (1)编写一个函数prime(n),返回给定整数n是否为素数。 (2)编写一个主函数,输入一个整数,调用 (1)中的函数,判断此整数是否为素数,并输出结果。 (3)对于属于多函数程序,可以采用每个函数分别进行编辑、编译的方法,然后再连接、运行。 如果编译有错时,可分别修改,这样便于调试。 实验2和实验3也可以使用这样的调试方法。 2、用梯形法求函数的定积分。 实验步骤与要求: (1)编制一个函数sab(a,b,n),其功能是求函数f(x)在[a,b]上的定积分,其中n为区间[a,b]的等分数。 要求该函数在一个独立的文件中。 (2)编制一个主函数以及计算被积函数值的函数f(x),在主函数中调用 (1)中的函数计算并输出下列积分值。 要求主函数与函数f(x)在同一个文件中。 (3)编制另一个主函数以及计算被积函数值的函数f(x),在主函数中调用 (1)中的函数计算并输出下列积分值。 要求主函数与函数f(x)在同一个文件中。 说明: 用梯形法求定积分,梯形公式为 s=h[f(a)+f(b)]/2+hf(a+kh)其中,h=(b-a)/n 3、用递归方法编写程序,求n阶勒让德多项式的值,递归公式为 实验步骤与要求: (1)根据递归公式编制计算n阶勒让德多项式的递归函数p(n,x)。 (2)编制一个主函数,由键盘输入n,x,调用 (1)中的函数计算n阶勒让德多项式的值。 (3)输入p(n,x)=p(4,2)运行该程序。 然后自定义几组数据再运行该程序。 程序调试说明: 多模块的调试除了可以采用前面实验中采用的各种调试方法以外,还可以采用“回声打印”的调试方法。 当函数之间要传递的数据较多时,容易出错。 这时,在有关的输入数据之后加上输出语句,以便反映数据输入的情况。 在函数之间有数据传递后,再用输出语句把传递后的数据输出,这样可以找到数据的错误处,以便分析原因, 三十六、考核或评价标准 实训成绩将主要根据学生对待实训的态度、对关键知识点和编程技巧的掌握程度、实训报告的内容、答辩情况等进行综合评定。 最后的成绩将分优秀、良好、中等、及格和不及格五个等级。 具体评判标准如下: 优秀: 实训认真、刻苦,有钻研精神,不无故缺席。 熟练掌握了本实训的关键知识点,具有良好的独立思考问题和解决问题的能力,具备了较好的C语言编程能力,编制的程序运行正确。 实训记录内容丰富、齐全,答辩时能清晰明了地阐明问题,回答问题反映敏捷、思路清晰。 良好: 能认真对待实训,不无故缺席。 掌握了本实训的关键知识点,具备了较好的C语言编程能力,编写的程序运行正确。 实训记录内容齐全,答辩时能清晰明了地阐明问题,能正确回答全部问题。 中等: 能认真对待实训,不无故缺席。 基本掌握了本实训的关键知识点,具备了一定的C语言编程能力,编写的程序运行基本正确,无致命错误。 实训记录内容较齐全,答辩时能正确回答大部分问题。 及格: 对待实训不够认真,有少量迟到、早退或无故缺席现象。 基本掌握了本实训的主要内容,具有了用C语言编程的基本能力,但掌握不全面、扎实,编写的程序总体结构符合要求,基本能正常运行,但还存在少量错误。 实训记录内容基本齐全,答辩时能在教师提示下正确回答大部分问题。 不及格: 对待实训马虎、敷衍,经常迟到、早退或无故缺席。 不能正确理解本实训的主要内容,不具备基本的C语言编程能力,编制的程序不能正常运行,或是抄袭他人程序,应付答辩。 答辩时即使经教师提示仍不能正确回答大部分问题。 项目五数据结构的应用 三十七、项目(实训)名称 数组的应用 三十八、项目(实训)学时数 6课时 三十九、项目(实训)目标 实训目标: 1、进一步掌握模块化程序设计方法。 2、使用一维数组和二维数组的进行程序设计。 3、练习并掌握数组作为函数参数的用法。 4、至少掌握一种排序方法。 最终成果: 1、演示程序运行的过程和结果。 2、说明调试过程中出现的现象。 3、实训报告。 获得的知识: 1、数据结构和算法的关系。 2、组织数据的方法。 3、基于数据结构的算法设计 四十、项目(实训)中的具体任务 1.编写程序,对10个数从小到大排序。 2.找出一个二维数组中的鞍点,即该位置上的元素在所在行为最大,在所在列为最小。 如果没有这样的元素,请打印出相应的信息。 3.统计一个班的学生成绩。 要求程序具有如下功能: (1)每个学生的学号和四门功课的成绩从键盘读入。 (2)计算每个学生的总分和平均分。 (3)按平均成绩进行排序,输出排序后的成绩单(包括学号、四门功课的成绩和平均分),给出名次。 如果分数相同,则名次并列,其他学生名次不变。 四十一、教师知识和能力要求 1、C语言语法。 2、算法设计。 3、数据结构。 四十二、学生知识和能力准备 1、数组的定义和引用。 2、字符串的表示方法。 四十三、工具与设备 1、PC机。 2、Windows2003/XP操作系统。 3、VisualStudioC++6。 四十四、教学资料 《C程序设计》(第四版),谭浩强著,清华大学出版社,2010年11月 四十五、实施步骤与技术要点 1.编写程序,对n个数从小到大排序。 实验步骤与要求: (1)任选一种排序方法进行编程。 (2)用sort()函数进行排序。 (3)在主函数中输入数据,调用sort()函数,分别打印出排序前和排序后的结果。 2.找出一个二维数组中的鞍点,即该位置上的元素在所在行为最大,在所在列为最小。 如果没有这样的元素,请打印出相应的信息。 实验步骤与要求: (1)画出此题的流程图。 (2)编写程序求矩阵中所有的鞍点并上机调试。 (3)输入的数据和输出的结果要详细记录。 3.统计一个班的学生成绩。 要求程序具有如下功能: (1)每个学生的学号和四门功课的成绩从键盘读入。 (2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)