绘制函数曲线c语言课程设计报告.docx
- 文档编号:25163270
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:10
- 大小:40.83KB
绘制函数曲线c语言课程设计报告.docx
《绘制函数曲线c语言课程设计报告.docx》由会员分享,可在线阅读,更多相关《绘制函数曲线c语言课程设计报告.docx(10页珍藏版)》请在冰豆网上搜索。
绘制函数曲线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,y仁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,y仁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("\nprintf("\n
1.inputcoefficient");
2.inputextent");
printf("\n
3.drawfunctioncurve");
printf("\n
4.quit");
printf("\n
***************************************************
****************************
*\n");
}
fun1()
{
printf("inputa,b,c\n");
scanf("%f,%f,%f",&a,&b,&c);/*
}
fun2()/*
{
printf("inputxmin,xmax\n");scanf("%f,%f",&xmin,&xmax);
}
funmax()/*
{
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;
}
输入系数a,b,c*/
输入x范围*/
求出x轴最大范围*/
求出x轴对应系
求出y轴对应系
图形初始化*/清屏*/求出屏幕最大横坐标*/求出屏幕最大横坐标*/
画直线*/
在固定点输出字
floatfunx(floatmax_x)/*
数*/
{
return(max_x/2/max);
}
floatfuny(floatmax_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*xmn*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语言的了解。
课程设计所面临的问题都是一些实际问题,在完成的过程中,解决实际问题的能力就很重要,还有一些是以前在课堂上没有学过的知识,这就要求我们去查一些资料,并学习。
虽然个人的程序不同,但还需要与别人的合作,因为我还有些不明白的知识,尤其是自学的知识,运用还不熟练,特别需要虚心的请教老师。
因此,老师在这次实践过程中给了我很大的帮助。
总之,这次课程设计带给我的不仅仅是完成后的喜悦,而是对我以后学习起到了很大的帮助。
今后的学习中,还会遇到很多没学过的知识,就
要求我们去自主学习,去了解,去充实自己的知识,作一个有学识的人!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 绘制 函数 曲线 语言 课程设计 报告