绘制函数曲线 c语言 课程设计 报告.docx

上传人:b****2 文档编号:1999523 上传时间:2023-05-02 格式:DOCX 页数:10 大小:36.20KB
下载 相关 举报
绘制函数曲线 c语言 课程设计 报告.docx_第1页
第1页 / 共10页
绘制函数曲线 c语言 课程设计 报告.docx_第2页
第2页 / 共10页
绘制函数曲线 c语言 课程设计 报告.docx_第3页
第3页 / 共10页
绘制函数曲线 c语言 课程设计 报告.docx_第4页
第4页 / 共10页
绘制函数曲线 c语言 课程设计 报告.docx_第5页
第5页 / 共10页
绘制函数曲线 c语言 课程设计 报告.docx_第6页
第6页 / 共10页
绘制函数曲线 c语言 课程设计 报告.docx_第7页
第7页 / 共10页
绘制函数曲线 c语言 课程设计 报告.docx_第8页
第8页 / 共10页
绘制函数曲线 c语言 课程设计 报告.docx_第9页
第9页 / 共10页
绘制函数曲线 c语言 课程设计 报告.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

绘制函数曲线 c语言 课程设计 报告.docx

《绘制函数曲线 c语言 课程设计 报告.docx》由会员分享,可在线阅读,更多相关《绘制函数曲线 c语言 课程设计 报告.docx(10页珍藏版)》请在冰点文库上搜索。

绘制函数曲线 c语言 课程设计 报告.docx

绘制函数曲线c语言课程设计报告

沈阳航空工业学院

课程设计

 

学号:

200604021109

班级:

6402104

姓名:

王穷杰

指导教师:

刘成

2007年9月17日

沈阳航空工业学院

课程设计任务书

院系:

电子工程系专业:

电子信息工程班级:

6402104班

学号:

200604021109课程设计题目:

绘制函数曲线

一、课程设计工作自2007年9月10日起至2007年9月14日止

二、课程设计内容:

用C语言编写软件完成以下任务:

在图形模式下,绘制一元二次函数ax2+bx+c.其中系数a,b,c,以及X的取值范围,均由用户从键盘输入。

三、课程设计要求

1.程序质量:

✧贯彻结构化的程序设计思想。

✧用户界面友好,功能明确,操作方便。

✧用户界面中的菜单至少应包括“选择菜单”、“输入X区间”、“开始绘制”、“退出”4项。

✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。

2.课程设计说明书:

课程结束后,上交课程设计说明书和源程序。

课程设计说明书的格式和内容参见提供的模板。

四、指导教师和学生签字

指导教师:

________学生签名:

________

五、成绩:

六、教师评语:

目录

程序设计题目1

题目分析1

总体设计1

模块设计2

关键技术分析2

完整的源程序3

总结:

7

 

程序设计题目:

绘制函数曲线。

具体要求如下:

在图形模式下,绘制一元二次函数ax2+bx+c。

其中系数a,b,c,以及x的取值范围,均由用户从键盘输入。

用户界面中的菜单至少应包括“输入系数”“输入x的曲间”“开始绘制”“退出”

题目分析:

经过对程序设计题目的分析可知,整个程序的设计实现大致分为:

绘制坐标,绘制图形。

在绘制坐标中,关键步骤是将笛卡儿坐标转化成屏幕坐标。

总体设计:

图1整体框架图:

模块设计

图2坐标转换:

fun3

initgraph(&graphdriver,&graphmode,"")

max_x=getmaxx();max_y=getmaxy()

绘制坐标

x1=max_x/2+xmin*coe_x,y1=max_y/2-(a*xmin*coe_x*xmin*coe_x+b*xmin*coe_x+c)*coe_y

moveto((int)x1,(int)y1)

for(x=xmin*coe_x;x<=xmax*coe_x;x++)

x2=max_x/2+x,y2=max_y/2-(a*x*x+b*x+c)*coe_y;lineto((int)x2,(int)y2);

关键技术分析

显示器设定:

intgraphdriver=DETECT,graphmode

图形初始化:

initgraph(&graphdriver,&graphmode,"")

求出屏幕的最大横,纵坐标大小:

max_x=getmaxx();max_y=getmaxy()

绘制坐标轴:

line(0,240,640,240);画直线

line(320,0,320,480);

line(640,240,635,235);

line(640,240,635,245);

line(320,0,315,5);

line(320,0,325,5);

outtextxy(320,240,"(0,0)");在固定点输出字符串

outtextxy(620,240,"x");

outtextxy(320,10,"y");

坐标之间的转换:

x1=max_x/2+xmin*coe_x,y1=max_y/2-(a*xmin*coe_x*xmin*coe_x+b*xmin*coe_x+c)*coe_y;

moveto((int)x1,(int)y1);

for(x=xmin*coe_x;x<=xmax*coe_x;x++)

{

x2=max_x/2+x,y2=max_y/2-(a*x*x+b*x+c)*coe_y;

lineto((int)x2,(int)y2)

目录选择功能的实现:

switch(n)

{

case1:

fun1();break;

case2:

fun2();break;

case3:

fun3();break;

case4:

exit(0);

default:

printf("\nerror\n")

图3数据的输入

完整的源程序

#include

#include

floata,b,c,xmin,xmax,max;/*定义全局变量*/

voidmenu()

{printf("\n************************************WELCOME***********

**************************\n");

printf("\n1.inputcoefficient");

printf("\n2.inputextent");

printf("\n3.drawfunctioncurve");

printf("\n4.quit");

printf("\n***************************************************

*****************************\n");

}

fun1()

{

printf("inputa,b,c\n");

scanf("%f,%f,%f",&a,&b,&c);/*输入系数a,b,c*/

}

fun2()/*输入x范围*/

{

printf("inputxmin,xmax\n");

scanf("%f,%f",&xmin,&xmax);

}

funmax()/*求出x轴最大范围*/

{

floatm,n;

if(xmin<0)

m=-xmin;

else

m=xmin;

if(xmax<0)

n=-xmax;

else

n=xmax;

if(m>=n)

max=m;

else

max=n;

}

floatfunx(floatmax_x)/*求出x轴对应系数*/

{

return(max_x/2/max);

}

floatfuny(floatmax_y)/*求出y轴对应系数*/

{

floatd;

d=max_y/2/(a*max*max+b*max+c);

if(d>0.6)

d=0.6;

if(d<0.0026)

d=0.0026;

return(d);

}

fun3()

{

intmax_x,max_y;

intgraphdriver=DETECT,graphmode;

floatx1,y1,x2,y2,x,coe_x,coe_y;

initgraph(&graphdriver,&graphmode,"");/*图形初始化*/

cleardevice();/*清屏*/

max_x=getmaxx();/*求出屏幕最大横坐标*/

max_y=getmaxy();/*求出屏幕最大横坐标*/

funmax();

coe_x=funx(max_x);

coe_y=funy(max_y);

line(0,240,640,240);/*画直线*/

line(320,0,320,480);

line(640,240,635,235);

line(640,240,635,245);

line(320,0,315,5);

line(320,0,325,5);

outtextxy(320,240,"(0,0)");/*在固定点输出字符串*/

outtextxy(620,240,"x");

outtextxy(320,10,"y");

x1=max_x/2+xmin*coe_x,y1=max_y/2-(a*xmin*coe_x*xmin*coe_x+b*xm

n*coe_x+c)*coe_y;

moveto((int)x1,(int)y1);

for(x=xmin*coe_x;x<=xmax*coe_x;x++)

{

x2=max_x/2+x,y2=max_y/2-(a*x*x+b*x+c)*coe_y;

lineto((int)x2,(int)y2);

}

getch();

closegraph();/*关闭图形函数*/

}

main()

{

intn;

menu();

while

(1)

{

scanf("%d",&n);

switch(n)

{case1:

fun1();break;

case2:

fun2();break;

case3:

fun3();break;

case4:

exit(0);

default:

printf("\nerror\n");

}

}

总结:

这次课程设计,加强了我对c语言的了解。

课程设计所面临的问题都是一些实际问题,在完成的过程中,解决实际问题的能力就很重要,还有一些是以前在课堂上没有学过的知识,这就要求我们去查一些资料,并学习。

虽然个人的程序不同,但还需要与别人的合作,因为我还有些不明白的知识,尤其是自学的知识,运用还不熟练,特别需要虚心的请教老师。

因此,老师在这次实践过程中给了我很大的帮助。

总之,这次课程设计带给我的不仅仅是完成后的喜悦,而是对我以后学习起到了很大的帮助。

今后的学习中,还会遇到很多没学过的知识,就要求我们去自主学习,去了解,去充实自己的知识,作一个有学识的人!

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2