?
昆明理工大学
?
《计算机程序设计基础》课程
综合实践型教学课题报告
?
课题名称: 数学计算工具程序设计
?组长: 学号 200510806114 姓名李 兵
200510806133 姓名关层
专业班级: 制药051班
?
昆明理工大学计算中心
2006 年6 月4 日
?
昆明理工大学计算中心
《计算机程序设计基础》课程综合实践型教学课题报告
课程名称:c程序设计 学院:生物与化学工程学院 专业班级 制药051班
学号姓名小组编号所选题号自评小组工作量
(1—6)自评分数分数200510806114李兵0011(1)(2)95?200510806113王虎方0011(3)90?200510806邹艳0011(4)90?200510806张枝润0011(5)90?200510806关成0011(6)90?设计说明与功能描述(基本思路及关键语句说明)? 运用函数的调用来控制多个函数的调用,同时进行多种应算.用循环语句来控制多个不同的语句,使程序运行更有效.我们的基本思路是:先用一个个的小程序把一个需要的输出的函数表现出来,再把它们集成一个大的函数,而在每一个小函数中,我们应用循环语句(for,while)来控制,用判断语句(if….else)来控制程序执行过程中要输出哪些,哪些是与要求有关的,
#define用于定义一个常量.main通过switch语句调用其它的函数使之能满足运算的需要..int main1调用任何数的阶乘的程序.int main2是调用求组合数的函数,int main3是求两个数的最大的公约数和最小的公倍数,int maia4是调用程序去判断一个数是否是素数, int main5是调用菲波拉契数列.ABCDE是与之对应调用的字符.F与退出系统相对应的
?工作内容:
?关层:显示菲波拉契数列的前N项
?
?
?
?
?
?
?
?
?
组长签名: 李兵 2006 年 6月 4 日教师评语?
?
?
?
?
?
教师签名: 200 年 月 日正文内容:
一、问题描述
在这个高速发展的时代,脑力劳动在生产生活中的作用越来越大,因此我们组决定做一个程序来解决计算方面的问题,以便大家把更多的时间用在技术创新上。我们组所做的程序解决了以下的问题:
(1)求任意数的阶乘
(2)求组合数
(3)求任意两个整数的最大公约数和最小公倍数
(4)判断任意数是否是素数
(5)显示菲波拉契数列的前N项
?
二、问题分析
在这次作业中:
李兵主要做了(1)
(2)求任意数的阶乘;
王虎方做了(3)求组合数;
邹艳做了(4)求任意两个整数的最大公约数和最小公倍数;
张芝润做了(5)判断任意数是否是素数;
关层做了(6)显示菲波拉契数列的前N项。
我们的作业要求输入整数且求阶层的数要求不要过大。
三、程序设计思路功能模块说明
通过调用多个函数组合起来,通过选择调用各个函数,流程图如下所示。
?
?
?
?
?
?
?
?
?
?
?
?
在这次作业中,我们主要用了函数的调用,(for,while)循环和(if)判断语句。
?
四、程序调试与测试
在做C程序过程中,我们遇到了好多问题。比如说我们对组合数不了解,我们花费了许多时间去查有关组合数的知识。在程序的组合方面又遇到了许多以前没学过的知识。还有就是,开始是大程序的执行结果:相同的要执行两次。
五、程序清单
这是我们组合并的大程序的主要内容:
?
#define MAX 48
#include "stdio.h"
#include "math.h"
main()
{
int N,i,tp,Ln=0;
unsigned long f1=1,f2=1,f3;
while(1)
{
printf("请输入菲波拉契数列的项数:");
tp=scanf("%d",&N);
if(tp==1&&(N>0&&N
printf("输入的数据非法,请重新输入!\n");
getchar();
getchar();
}
printf("\n\n");
printf("菲波拉契数列的前%d项为:\n\n",N);
printf("%12ld%12ld",f1,f2);
Ln=2;
for(i=3;i<=N;i++)
{f3=f1+f2;
if(Ln++%6==0