项目五 模块化程序设计
一、 项目(实训)名称
模块化程序设计
二、 项目(实训)学时数
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)运行该程序。然后自定义几组数据再运行该程序。
程序调试说明:
多模块的调试除了可以采用前面实验中采用的各种调试方法以外,还可以采用“回声打印”的调试方法。当函数之间要传递的数据较多时,容易出错。这时,在有关的输入数据之后加上输出语句,以便反映数据输入的情况。在函数之间有数据传递后,再用输出语句把传递后的数据输出,这样可以找到数据的错误处,以便分析原因。

