C语言课设绘制余弦曲线和直线.docx
- 文档编号:2824640
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:14
- 大小:85.83KB
C语言课设绘制余弦曲线和直线.docx
《C语言课设绘制余弦曲线和直线.docx》由会员分享,可在线阅读,更多相关《C语言课设绘制余弦曲线和直线.docx(14页珍藏版)》请在冰豆网上搜索。
C语言课设绘制余弦曲线和直线
沈阳航空工业学院
课程设计
学号__________
班级__________
姓名__________
指导教师__________
年月日
沈阳航空工业学院
课程设计任务书
机械与汽车学院学院机械设计制造及其自动化专业5406108班学号200504061290
一、课程设计题目:
绘制余弦曲线和直线
二、课程设计工作自2007年*月*日起至2007年*月*日止
三、课程设计内容:
运用所学的C语言知识,编制和调试程序,具有如下功能:
在图形模式下,在屏幕上显示0~360度的y=cos(x)曲线与直线x=45(y-1)+31的叠加图形。
其中cos(x)的图形用“*”表示,x用“+”表示,在两个图形交点处用x图形的符号。
四、课程设计要求:
程序质量:
●贯彻结构化程序设计思想。
●用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。
●用户界面中的菜单至少应包括“开始”、“显示”、“退出”3项。
●代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:
课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下:
●封面
●课程设计任务书
●目录
●需求分析(分析题目的要求)
●程序流程图(总体流程图和主要功能模块流程图)
●核心技术的实现说明及相应程序段
●个人总结
●参考资料
●源程序及适当的注释
指导教师:
____________________
学生签名:
____________________
目录
一、需求分析1
二、程序流程图2
三、核心技术的实现说明及相应程序段5
四、个人总结7
五、参考文献8
六、源程序8
一、需求分析
经过对程序设计题目的分析可知,整个程序的设计实现大致分为四个模块,其中每一个模块对应一个函数,他们的功能分别是:
主函数调调用其他函数,绘制余弦曲线函数,绘制直线函数,绘制余弦和直线函数。
在这些函数当中,后三个函数的实现严格按照题目的要求。
1.绘制余弦曲线函数主要是根据相应的坐标绘制出相应的余弦曲线并在屏幕上现显示。
2.绘制直线函数主要是根据相应的坐标绘制出相应的直线曲线并在屏幕上现显示。
3.绘制直线和余弦曲线函数主要是在一个坐标系中根据相应的坐标绘制出相应的余弦曲线和直线并在屏幕上现显示。
4.菜单函数其功能是使界面简化,表达清晰明了,
还有在主函数当中还有switch语句,主要是调用其他函数,并在屏幕上显出来。
二、程序流程图
1、程序总体结构图
图1
2.子程序draw1的结构图
图2
3.子程序draw2结构图
图3
4.子程序draw3结构图
图4
三、核心技术的实现说明及相应程序段
本程序主要是由三自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数实现要求的所有功能。
在这些函数中,余弦曲线函数,直线函数和余弦曲线和直线一起的函数是程中比较核心的部分,下面就是进行具体的说明。
1.余弦曲线函数
该函数的核心内容是坐标系和曲线的表示。
该函数执行时,首先对于第一个Y坐标进行计算并在一行中打印图形,进一步确定Y屏幕行方向坐标。
要表示以x为变量的余弦曲线。
如果屏幕坐标x=m,那么在屏幕上显示的就是“*”,不是就用“”代替。
具体程序段如下:
voiddraw1()
{
doubley;
intx,m,yy;
for(yy=0;yy<=20;yy++)/*对于第一个y坐标进行计算并在一行中打印图形*/
{
y=0.1*yy;/*y:
屏幕行方向坐标*/
m=acos(1-y)*10;/*m:
cos(x)曲线上y点对应的屏幕列坐标*/
for(x=0;x<=62;x++)/*x:
屏幕列方向坐标*/
if(x==m||x==62-m)printf("*");/*打印不相交时的cos(x)图形*/
elseprintf("");/*其它情况打印空格*/
printf("\n");
}}
2.直线函数
该函数的核心内容是坐标系和直线的表示。
该函数执行时,首先对于第一个Y坐标进行计算并在一行中打印图形,进一步确定Y屏幕行方向坐标。
要表示以y为变量的余弦曲线和直线方程。
如果屏幕坐标x=n,那么在屏幕上显示的就是“+”,不是就用“”代替。
具体程序段如下:
voiddraw2()
{
doubley;
intx,n,yy;
for(yy=0;yy<=20;yy++)/*对于第一个y坐标进行计算并在一行中打印图形*/
{
y=0.1*yy;/*y:
屏幕行方向坐标*/
n=45*(y-1)+31;/*n:
直线上y点对应的列坐标*/
for(x=0;x<=62;x++)/*x:
屏幕列方向坐标*/
if(x==n)printf("+");/*打印不相交时的直线图形*/
elseprintf("");/*其它情况打印空格*/
printf("\n");
}}
3.余弦曲线和直线一起函数
该函数的核心内容是坐标系和直线和余弦曲线的表示。
该函数执行时,首先对于第一个Y坐标进行计算并在一行中打印图形,进一步确定Y屏幕行方向坐标。
要表示以y为变量的余弦曲线和直线方程。
如果屏幕坐标x=n或者x=m&&x=n,那么在屏幕上显示的就是“+”,如果屏幕坐标x=m,那么在屏幕上显示的就是“*”,否则就用“”代替。
具体程序段如下:
voiddraw3()
{
doubley;
intx,m,n,yy;
for(yy=0;yy<=20;yy++)/*对于第一个y坐标进行计算并在一行中打印图形*/
{
y=0.1*yy;/*y:
屏幕行方向坐标*/
m=acos(1-y)*10;/*m:
cos(x)曲线上y点对应的屏幕列坐标*/
n=45*(y-1)+31;/*n:
直线上y点对应的列坐标*/
for(x=0;x<=62;x++)/*x:
屏幕列方向坐标*/
if(x==m&&x==n)printf("+");/*直线与cos(x)相交时打印“+”*/
elseprintf("");/*其它情况打印空格*/
printf("\n");
}}
四、个人总结
在这次课程设计过程中,深深的了解了自己对计算机方面的不足,以及计算机应用的广泛,使我对计算机机器及其编程产生了浓烈的兴趣,使我想进一步学习计算机,我想计算机不会落伍也不会被淘汰,而只会更为迅速的发展,如果我想在毕业之后能高人一头必须有自己的长处,那我的长处就是想在计算机方面有一定的发展,
对于这次实习,叫我认识到了光学课本东西是不够的,还需要更多的实践,我们只有在不段的实践中才能成长.
我的程序是绘制余弦曲线和直线,程序的完成情况是基本完成,但是由于对C语言掌握只是一些皮毛,所以还有很多地方需要完善
五、参考文献
1.谭浩强C语言设计北京:
清华大学出版社
2.刘成等.C语言程序设计实验指导与习题集.北京:
中国铁道出版社,2006
3.有些资料在网上查找
六、源程序
#include
#include
#include
intmain()
{
inti;
voiddraw1();/*对draw函数的声明*/
voiddraw2();
voiddraw3();
menu:
printf("youwanttokonwcosX,pleasepress1\n");
printf("youwanttokonwline,pleasepress2\n");
printf("youwanttokonwcosXandline,pleasepress3\n");
printf("youwanttoreturn,pleasepress4\n");
scanf("%d",&i);
switch(i)
{
case1:
draw1();break;
case2:
draw2();break;
case3:
draw3();break;
case4:
exit(0);
}
gotomenu;/*多次调用menu函数*/
}
voiddraw1()/*定义无参函数draw*/
{
doubley;
intx,m,yy;
for(yy=0;yy<=20;yy++)/*对于第一个y坐标进行计算并在一行中打印图形*/
{
y=0.1*yy;/*y:
屏幕行方向坐标*/
m=acos(1-y)*10;/*m:
cos(x)曲线上y点对应的屏幕列坐标*/
for(x=0;x<=62;x++)/*x:
屏幕列方向坐标*/
if(x==m||x==62-m)
printf("*");/*打印不相交时的cos(x)图形*/
elseprintf("");/*其它情况打印空格*/
printf("\n");
}
}
voiddraw2()
{
doubley;
intx,n,yy;
for(yy=0;yy<=20;yy++)
{
y=0.1*yy;
n=45*(y-1)+31;/*n:
直线上y点对应的列坐标*/
for(x=0;x<=62;x++)
if(x==n)
printf("+");/*打印不相交时的直线图形*/
elseprintf("");
printf("\n");
}
}
voiddraw3()
{
doubley;
intx,m,n,yy;
for(yy=0;yy<=20;yy++)/*对于第一个y坐标进行计算并在一行中打印图形*/
{
y=0.1*yy;/*y:
屏幕行方向坐标*/
m=acos(1-y)*10;/*m:
cos(x)曲线上y点对应的屏幕列坐标*/
n=45*(y-1)+31;/*n:
直线上y点对应的列坐标*/
for(x=0;x<=62;x++)/*x:
屏幕列方向坐标*/
if(x==m&&x==n)printf("+");/*直线与cos(x)相交时打印"+"*/
elseif(x==n)printf("+");/*打印不相交时的直线图形*/
elseif(x==m||x==62-m)printf("*");/*打印不相交时的cos(x)图形*/
elseprintf("");/*其它情况打印空格*/
printf("\n");
}}
_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 绘制 余弦 曲线 直线