绘制余弦曲线和直线.docx

上传人:b****6 文档编号:6115234 上传时间:2023-01-03 格式:DOCX 页数:10 大小:57.82KB
下载 相关 举报
绘制余弦曲线和直线.docx_第1页
第1页 / 共10页
绘制余弦曲线和直线.docx_第2页
第2页 / 共10页
绘制余弦曲线和直线.docx_第3页
第3页 / 共10页
绘制余弦曲线和直线.docx_第4页
第4页 / 共10页
绘制余弦曲线和直线.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

绘制余弦曲线和直线.docx

《绘制余弦曲线和直线.docx》由会员分享,可在线阅读,更多相关《绘制余弦曲线和直线.docx(10页珍藏版)》请在冰豆网上搜索。

绘制余弦曲线和直线.docx

绘制余弦曲线和直线

课程设计

学号_200704021120

班级_7402104_

姓名_______

指导教师_______

2008年9月12日

课程设计任务书

电子信息工程学院电子信息工程专业7402104班学号200704021120

一、课程设计题目:

绘制余弦曲线和直线

二、课程设计工作自2008年9月8日起至2008年9月12日止

三、课程设计内容:

运用所学的C语言知识,编制和调试程序,具有如下功能:

在图形模式下,在屏幕上显示0~360度的y=cos(x)曲线与直线x=45(y-1)+31的叠加图形。

其中cos(x)的图形用“*”表示,x用“+”表示,在两个图形交点处用x图形的符号。

四、课程设计要求:

程序质量:

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

●用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。

●用户界面中的菜单至少应包括“开始”、“显示”、“退出”3项。

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

课程设计说明书:

课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下:

●封面

●课程设计任务书

●目录

●需求分析(分析题目的要求)

●程序流程图(总体流程图和主要功能模块流程图)

●核心技术的实现说明及相应程序段

●个人总结

●参考资料

●源程序及适当的注释

指导教师:

学生签名:

五、成绩:

六、教师评语:

 

目录

一、需求分析1

二、程序流程图1

三、核心技术的实现说明及相应程序段5

四、个人总结5

五、参考文献6

六、源程序7

 

一、需求分析

经过对程序设计题目的分析可知,整个程序的设计实现。

在屏幕上显示0~360度的cos(x)曲线与直线f(x)=45*(y-1)+31的迭加图形。

其中cos(x)图形用“*”表示,f(x)用“+”表示,在两个图形相交的点上则用f(x)图形的符号。

分析:

在TC下启动图形系统进行绘图,能将笛卡尔坐标转换成屏幕坐标,能判断输入x是否正确,并能正确绘图,菜单功能要全面。

图形迭加的关键是要在分别计算出同一行中两个图形的列方向点坐标后,正确判断相互的位置关系。

为此,可以先判断图形的交点,再分别控制打印两个不同的图形。

二、程序流程图

1、程序总体结构图

 

 

图1程序总体结构图

 

2、一次函数模块图

N

Y

图2一次函数模块图

 

3、余弦函数模块图

Y

N

图3余弦函数模块图

 

三、核心技术的实现说明及相应程序段

这个程序在图形模式下显示图象,因此需要在图形系统下建立图形窗口,画线框。

图形窗口建立程序段:

intgdriver=DETECT,gmode;/*规定自动搜索显示类型和显示模型*/

dx=(xmax-xmin)/50;

initgraph(&gdriver,&gmode,"");/*初始化图形系统*/

cleardevice();

setcolor(12);

setviewport(100,100,600,450,1);/*建立图形窗口*/

setlinestyle(0,0,3);

rectangle(0,0,500,350);/*画线框*/

line(0,175,500,175);

line(250,0,250,350);

目录的选择功能实现:

switch(c)

{

case'1':

entdata();break;

case'2':

plot();break;

case'3':

exit(0);

}

四、个人总结

C语言我们已经学习了一个学期了,但它所包含的内容是我们短短一学期所无法学精的,再经过这一周的课设我更是深有体会。

特别的我这次的题目是用链表处理实际问题,链表是难点但在学习中不是重点,我并没有太重视,甚至有些忽略。

现在我是非常的后悔,这几天下来我经过查阅各种资料,并且在课余时间向高年级的学长请教,几天下来我感觉对于链表问题有了大概的印象,但还不过深入,答辩就能很好的说明,对于我这次答辩的失败我感到非常后悔。

我在今后的学习过程中一定要更加专心仔细,对于细节不怕麻烦深入研究。

总之经过这一周的课设的学习我不只是学到C程序设计的方法,而是学习到了更多的东西,让我明白今后无论做什么事情,只要自己用心,认真的去对待,用正确的态度去面对,就没有办不到的事情。

还有,这对我今后生活处理各种问题也有很大的帮助,很感谢能有这次机会让我能力得到较大的提高,让我更好的认清自己。

五、参考文献

1谭浩强.C程序设计.北京:

清华大学出版社,2005

2刘成等.C语言程序设计实验指导与习题集.北京:

中国铁道出版社,2006

六、源程序

#include

#include

#include

#include

voidmenu();

voidentdata();

voidplot();

doublexmin,xmax;

voidentdata()

{

printf("Pleaseenterminx,maxx:

\n");

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

puts("Press2todraw.");

}

doublefun1(doublex)

{

returncos(x);

}

doublefun2(doublex)

{

return(45*(x-1)+31);

}

voidmenu()

{

clrscr();

printf("*****Welcome***\n");

printf("1.Enterdata\n");

printf("2.Drawtheplot\n");

printf("3.End\n");

}

voidplot()

{

doublex=xmin,y;

doubledx;

intgdriver=DETECT,gmode;/*规定自动搜索显示类型和显示模型*/

dx=(xmax-xmin)/50;

initgraph(&gdriver,&gmode,"");/*初始化图形系统*/

cleardevice();

setcolor(12);

setviewport(100,100,600,450,1);/*建立图形窗口*/

setlinestyle(0,0,3);

rectangle(0,0,500,350);/*画线框*/

line(0,175,500,175);

line(250,0,250,350);

moveto(250+x*50,175-50*fun1(x));

for(;x<=xmax;x=x+dx)/*余弦曲线作图*/

{

setcolor(10);

setlinestyle(0,0,1);

lineto(250+x*50,175-50*fun1(x));

}

moveto(250+50*fun2(xmin),175-xmin);

for(;xmin<=xmax;xmin+=dx)/*一次函数作图*/

{

setcolor(4);

setlinestyle(0,0,3);

lineto(250+50*fun2(xmin),175-50*xmin);

}

getch();

closegraph();/*结束画图系统*/

}

voidmain()

{

charc;

menu();

c=getch();

while

(1)

{

switch(c)

{

case'1':

entdata();break;

case'2':

plot();break;

case'3':

exit(0);

}

menu();

c=getch();

}

}

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

当前位置:首页 > 自然科学

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

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