西北工业大学C程序大作业范例.docx

上传人:b****5 文档编号:5616936 上传时间:2022-12-29 格式:DOCX 页数:5 大小:36.31KB
下载 相关 举报
西北工业大学C程序大作业范例.docx_第1页
第1页 / 共5页
西北工业大学C程序大作业范例.docx_第2页
第2页 / 共5页
西北工业大学C程序大作业范例.docx_第3页
第3页 / 共5页
西北工业大学C程序大作业范例.docx_第4页
第4页 / 共5页
西北工业大学C程序大作业范例.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

西北工业大学C程序大作业范例.docx

《西北工业大学C程序大作业范例.docx》由会员分享,可在线阅读,更多相关《西北工业大学C程序大作业范例.docx(5页珍藏版)》请在冰豆网上搜索。

西北工业大学C程序大作业范例.docx

西北工业大学C程序大作业范例

学院

班级

学号

姓名

摘要

我选择的是数学型综合作业:

(A)绘制圆;(B)求最大数。

主要内容:

(A)在屏幕上用‘*’绘制一个圆;(B)问555555的约数中最大的三位数是多少。

基本设计思路:

(A)题目的设计思路是:

将(x,y)转换为相当圆心(r,r)的坐标。

计算到圆心的距离。

判断到圆心的距离是否为r。

如果这个点在圆上,打印'*',否则,打印''。

(B)题目的设计思路是:

根据约数的定义,对于一个整数N,除去1和它自身外,凡能整除N的数即为N的约数。

本题只要求取约数中最大的三位数,因此,最简单的方法是用100到999之间的所有数去除555555,即可求出555555的全部约数。

在(A)题目中,我选择用离圆心的距离r来判断是否打印‘*’。

在(B)题目中由于只要求输出最大三位约束,故可以使用for语句从999开始,每次递减,可以减少循环次数。

会更快且更方便的得到结果。

通过编译运行,俩个程序的结果都满足题意要求,个人感觉比较好的完成了大作业。

1摘要

1.1设计题目

(A)绘制圆;(B)求最大数。

1.2设计内容

(A)在屏幕上用‘*’绘制一个空心的圆;(B)问555555的约数中最大的三位是多少?

1.3开发工具

VisualStudio2010

1.4应用平台

Windows7 64位

2详细设计

2.1程序结构

(A)在屏幕上用‘*’绘制一个空心的圆

定义变量半径r,rx,ry。

赋值r将(x,y)转换为相当圆心(r,r)的坐标rx,ry。

计算到圆心的距离d。

判断到圆心的距离是否为r,用if语句。

是的话打印‘*’,否则‘’。

开始

rx=x–r,ry=y-r

d=sqrt(rx*rx+ry*ry)–r

if(fabs(d)<0.5)(允许有0.5的误差)

if(isAtCircle(x,y,r))

printf("*");

else

printf("");

结束

(B)求最大数

i=555555,j从999开始,通过for语句判断i%j==0,每循环一次j--;直至循环到符合条件的j,输出555555的最大三位约数。

开始

longi=555555;

intj;

for(j=999;j>=100;j--)//for循环从999开始每次递减一

if(i%j==0)//当满足此条件时停止循环,输出结果

printf("Themaxfactorwith3digitsin%ldis:

%d,\n",i,j);

结束

2.2主要功能

程序功能:

(A)在屏幕上用‘*’绘制一个空心的圆;(B)求555555的最大三位约数。

原理和方法:

将(x,y)转换为相当圆心(r,r)的坐标。

计算到圆心的距离。

判断到圆心的距离是否为r。

如果这个点在圆上,打印'*',否则,打印''。

循环语句采用for循环。

(B)题目的原理和方法:

i=555555,j从999开始,通过for语句判断i%j==0,每循环一次,j--;循环到符合条件的j,输出555555的最大三位约数。

2.3函数实现

1(A)在屏幕上用‘*’绘制一个空心的圆。

intrx=x-r;ry=y–rdouble,d=sqrt(rx*rx+ry*ry);for(y=0;y<2*(r+1);y++)for(x=0;x<2*(r+1);x++){if(d=r)printf("*”;Elseprintf("");}

(B)高次方数的尾数longi=555555;intj;for(j=999;j>=100;j--)f(i%j==0)

2.4开发日志

(A)我先分析此题用何种算法完成,确定了使用FOR循环并用if语句判断距离是否为半径,再一步步编写源代码。

调试过程有一次调用函数错误,改正后运行程序,结果正确。

(B)我直接定义i=555555,j=999,然后使用for语句开始循环,终止条件是i%j==0;此时结束循环,输出结果,结果正确。

3程序调试及运行

3.1程序运行结果

3.1程序运行结果

(A)在屏幕上用‘*’绘制一个空心的圆

(B)求555555的最大三位约数。

结果是777正确。

3.2程序使用说明

(A)打开源程序,编译,连接,然后运行即可得到用‘*’绘制一个空心的圆(B)打开源程序,编译,连接,然后运行即可得到555555的最大三位约数是777。

3.3程序开发总结

程序开发需要认真,仔细、耐心,每一步都要认真完成,不管是哪步出了问题都可能导致得不到最后的结果。

当然也要注意利用手中的设备条件,方便自己更快、更准确地找到错误并改正。

另一方,程序开发需要创新,创新的思路,创新的算法可以简化程序,也是程序编写更加快捷。

在这次大作业的完成当中,也碰到了一些不会的棘手的步骤,请教了同学后最后总算成功做出来了。

4附件(源程序)

(A)在屏幕上用‘*’绘制一个空心的圆(工程名称:

用‘*’绘制一个空心的圆)

#include

#include

intisAtCircle(intx,inty,intr)

{

intrx=x-r;

intry=y-r;

doubled=sqrt((double)(rx*rx+ry*ry))-r;

if(fabs(d)<0.5)

return1;

else

return0;

return(int)d;

}

voidprintCircle(intr)

{

intx,y;

for(y=0;y<2*(r+1);y++)

{

for(x=0;x<2*(r+1);x++)

{

if(isAtCircle(x,y,r))

printf("*");

else

printf("");

}

printf("\n");

}

}

intmain()

{

intr;

printf("请输入半径\nr=");

scanf("%d",&r);

printCircle(r);

return0;

}

(B)求最大数(问555555的最大三位约数是多少?

#include

voidmain()

{

longi=555555;

intj;

for(j=999;j>=100;j--)

if(i%j==0)

{

printf("Themaxfactorwith3digitsin%ldis:

%d,\n",i,j);

break;

}

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1