项目四 模块化程序设计
一、 项目(实训)名称
模块化程序设计
二、 项目(实训)学时数
6课时
三、 项目(实训)目标
实训目标:
1.能够实现多模块的程序设计与调试的方法。
2.能够运用函数的定义和调用的方法。
3.能够使用递归方法进行程序设计。
最终成果:
1、演示程序运行的过程和结果。
2、说明调试过程中出现的现象。
3、实训报告。
获得的知识:
1、debug工具。
2、函数调用过程中类型转换的规则。
3、函数递归调用的逻辑过程
4、C语言程序的模块化结构
四、 项目(实训)中的具体任务
1、 编写一个函数,判断一个数是不是素数。在主函数中输入一个整数,输出是否是素数的信息。
2、 编写函数,实现计算两个数的和、差、积、商、余数。
(1)编写一个菜单函数void menu(),用于显示菜单项。
*********************
1.求两个数的和
2.求两个数的差
3.求两个数的积
4.求两个数的商
5.求两个数的余
**********************
(2)编写int add(int x,int y)函数,实现计算两个数的和。
(3)编写int sub(int x,int y)函数,实现计算两个数的差。
(4)编写int mul(int x,int y)函数,实现计算两个数的积。
(5)编写int div(int x,int y)函数,实现计算两个数的商。
(6)编写int mod(int x,int y)函数,实现计算两个数的余。
(7)编写主函数,实现调用以上函数。
3、 用递归方法编写程序,求n阶勒让德多项式的值
五、 教师知识和能力要求
1、C语言模块化设计方法。
2、程序调试能力。
六、 学生知识和能力准备
1、掌握函数的定义与调用。
2、掌握数组的概念。
3、理解变量的作用域和生存期。
七、 工具与设备
1、PC机。
2、Windows 2010操作系统。
3、综合开发环境(IDE): CodeBlocks、VisualStudio Community、Visual C++ 6。
八、 教学资料
《C程序设计》(第四版),谭浩强著,清华大学出版社,2010年11月
九、 实施步骤与技术要点
1、 编写一个函数,判断一个数是不是素数。在主函数中输入一个整数,输出是否是素数的信息。
实验步骤与要求:
(1) 编写一个函数prime(n),返回给定整数n是否为素数。
(2) 编写一个主函数,输入一个整数,调用(1)中的函数,判断此整数是否为素数,并输出结果。
(3) 对于属于多函数程序,可以采用每个函数分别进行编辑、编译的方法,然后再连接、运行。如果编译有错时,可分别修改,这样便于调试。实验2和实验3也可以使用这样的调试方法。
2、 编写函数,实现计算两个数的和、差、积、商、余数。
(1)编写一个菜单函数void menu(),用于显示菜单项。
*********************
1.求两个数的和
2.求两个数的差
3.求两个数的积
4.求两个数的商
5.求两个数的余
**********************
(2)编写int add(int x,int y)函数,实现计算两个数的和。
intadd(int x,int y)
{ return x+y; }
(3)编写int sub(int x,int y)函数,实现计算两个数的差。
intsub(int x,int y)
{ return x-y; }
(4)编写int mul(int x,int y)函数,实现计算两个数的积。
intmul(int x,int y)
{ return x*y; }
(5)编写int div(int x,int y)函数,实现计算两个数的商。
intdiv(int x,int y)
{ return x/y; }
(6)编写int mod(int x,int y)函数,实现计算两个数的余。
intmod(int x,int y)
{ return x%y; }
(7)编写主函数,实现调用以上函数。
3、 用递归方法编写程序,求n阶勒让德多项式的值,递归公式为
实验步骤与要求:
(1) 根据递归公式编制计算n阶勒让德多项式的递归函数p(n,x)。
(2) 编制一个主函数,由键盘输入n,x,调用(1)中的函数计算n阶勒让德多项式的值。
(3) 输入p(n,x)=p(4,2)运行该程序。然后自定义几组数据再运行该程序。
程序调试说明:
多模块的调试除了可以采用前面实验中采用的各种调试方法以外,还可以采用“回声打印”的调试方法。当函数之间要传递的数据较多时,容易出错。这时,在有关的输入数据之后加上输出语句,以便反映数据输入的情况。在函数之间有数据传递后,再用输出语句把传递后的数据输出,这样可以找到数据的错误处,以便分析原因,
十、 考核或评价标准
实训成绩将主要根据学生对待实训的态度、对关键知识点和编程技巧的掌握程度、实训报告的内容、答辩情况等进行综合评定。最后的成绩将分优秀、良好、中等、及格和不及格五个等级。具体评判标准如下:
优秀:实训认真、刻苦,有钻研精神,不无故缺席。熟练掌握了本实训的关键知识点,具有良好的独立思考问题和解决问题的能力,具备了较好的C语言编程能力,编制的程序运行正确。实训记录内容丰富、齐全,答辩时能清晰明了地阐明问题,回答问题反映敏捷、思路清晰。
良好:能认真对待实训,不无故缺席。掌握了本实训的关键知识点,具备了较好的C语言编程能力,编写的程序运行正确。实训记录内容齐全,答辩时能清晰明了地阐明问题,能正确回答全部问题。
中等:能认真对待实训,不无故缺席。基本掌握了本实训的关键知识点,具备了一定的C语言编程能力,编写的程序运行基本正确,无致命错误。实训记录内容较齐全,答辩时能正确回答大部分问题。
及格:对待实训不够认真,有少量迟到、早退或无故缺席现象。基本掌握了本实训的主要内容,具有了用C语言编程的基本能力,但掌握不全面、扎实,编写的程序总体结构符合要求,基本能正常运行,但还存在少量错误。实训记录内容基本齐全,答辩时能在教师提示下正确回答大部分问题。
不及格:对待实训马虎、敷衍,经常迟到、早退或无故缺席。不能正确理解本实训的主要内容,不具备基本的C语言编程能力,编制的程序不能正常运行,或是抄袭他人程序,应付答辩。答辩时即使经教师提示仍不能正确回答大部分问题。

