C语言求三位数中完全平方数问题的课程设计
课程设计任务书 分院(系) 信息科学与工程学院 专业 电子信息工程 学生姓名 王爽 学号 0903030420 设计题目 求三位数中完全平方数问题 内容及要求: 将1到9这9个数不重复地分成3组,每组3个数组成一个3位数,要求这3个3位数都是完全平方数。 例如:361=19*19, 529=23*23, 784=28*28. 进度安排: 17周:确定算法,进行初步设计(总体设计)、详细设计、模块编码等。 18周:编码调试,测试数据,撰写论文,验收并答辩。 指导教师(签字): 年 月 日 分院院长(签字): 年 月 日 目 录 一.课程设计目的及要求……………………………………………………3 1.1 目的……………………………………………………………………3 1.2 要求……………………………………………………………………3 二.相关知识……………………………………………………………………3 三.设计方案……………………………………………………………………3 详细设计…………………………………………………………………3 四.程序代码实现……………………………………………………………3 五.测试数据及运行结果 ……………………………………………………4 六.课程设计总结………………………………………………………………5 一.课程设计目的及要求 1.目的:了解软件工程中的一些系统分析,模块分析,代码设计的概念,利用visual c++实现求三位数中的完全平方数的操作,通过对系统的分析和设计,进一步巩固C语言的学习,以提高对开发环境。 2.要求 将1到9这9个数不重复地分成3组,每组3个数组成一个3位数,要求这3个3位数都是完全平方数。 :二.相关知识 C语言程序设计:第二章 算法 第五章 c语句及其程序设计 第六章 数组 c语言实践训练:第一章c语句及其程序设计 第二章 数组 三.设计方案 第一步:求出三个数中不包含0且是某个整数平方的三位数,因为这样的三位数并不多; 第二步:分解该三位数中的每一位数字; 第三步:判断共分解的三位数字是否相等,若不等,下一步; 第四步:统计满足要求的三位数; 第五歩:将满足条件的三位数进行组合,即分成三组,通过每个数字间的比较,使得所选出的3个三位数的9个数字没有重复; 四.程序代码实现 #include main() { int a[20],num[20][3],b[10];/*a存放满足条件的三位数*/ int i,j,k,m,n,t,flag; printf(“求出是平方数的三位数“); for(j=0,i=11;i<=31;i++) if(i%10!=0) { k=i*i;/*三位数:不包含0且是某整数平方的三位数*/ num[j+1][0]=k/100; num[j+1][1]=k/10%10; num[j+1][2]=k%10; if(!(num[j+1][0]==num[j+1][1] || num[j+1][0]==num[j+1][2] || num[j+1][1]==num[j+1][2]))/*分解的三位数字各不相等*/ a[++j]=k;/*J:计数器,统计已找到的满足条件的三位数*/ } for(i=1;i<=j-2;++i)/*从满足条件的三位数中选出三个进行组合*/ { b[1]=num[i][0]; b[2]=num[i][1]; b[3]=num[i][2]; for(t=i+1;t<=j-1;++t) { b[4]=num[t][0];/*取第t个数的三位数字*/ b[5]=num[t][1]; b[6]=num[t][2]; for(flag=0,m=1;!flag m++)/*flag出现数字重复的标记*/ for(n=4;!flag n++)/*判断是否重复*/ if(b[m]==b[n])flag=1;/*flag=1,数字有重复*/ if(!flag) for(k=t+1;k<=j;k++) { b[7]=num[k][0];/*取第k个数的三位数字*/ b[8]=num[k][1]; b[9]=num[k][2]; for(flag=0,m=1;!flag m++)/*判断前两个数是否与第三个数的数字重复*/ for(n=7;!flag n++) if(b[m]==b[n])flag=1; if(!flag) printf(“%d,%d,%d\n“,a[i],a[t],a[k]); } } } } 五.测试数据及运行结果: (截屏显示) 六.课程设计总结 (1)能够通过编译时出现的出错提示信息,进行初步的纠错。 (2)完成一个程序的一般步骤为设计,录入 ,编译 ,如果出错,则修改,然后再编译,编译成功后,看看结果是否正确,如果结果不正确,则再重复以上步骤。 (3)从这次编程序的过程中,我学到了编程所必须具备的专业技能,更领会编译程序所需要的细心和耐心。 参考文献: 1.《C语言程序设计》,清华大学出版社, 2008年3月第1版,马秀丽、刘志妩、李筠编著。 2. 《C语言实践训练》,清华大学出版社,2010年3月第1版,马秀丽、刘志妩、虞闯编著。