正弦函数的图形表示(20页).doc
《正弦函数的图形表示(20页).doc》由会员分享,可在线阅读,更多相关《正弦函数的图形表示(20页).doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-正弦函数的图形表示-第 XVI 页沈 阳 航 空 工 业 学 院 课程设计学 号 _200604021119_班 级 _6402104_ 姓 名 _李百川_指导教师 _刘成_2007年 月 日课程设计任务书院系:电子工程系 专业:电子信息工程 班级:6402104学号:200604021119题目:正弦函数的图形表示一、课程设计时间2007年9月10日至2007年9月14日,共计1周,20学时。二、课程设计内容用C语言编写软件完成以下任务:在图形模式下,绘制正弦函数sin(x)在x1x2之间的图形。注意:此程序必须用TC2.0编写。三、课程设计要求1. 程序质量: 贯彻结构化的程序设计思想。
2、 用户界面友好,功能明确,操作方便。 用户界面中的菜单至少应包括“输入x的区间”、“开始绘制”、“退出”3项。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。2. 课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。四、指导教师和学生签字指导教师:_刘成_ 学生签名:_李百川_五、成绩:六、教师评语:目录一、需求分析二、程序流程图三、核心技术的实现说明及相应程序段四、个人总结五、参考文献六、源程序一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为三大模块,其中他们的功能分别是:绘制图象(Strat Up)、函数参数的设定(
3、Settings)、退出(Quit)。在这些函数当中,绘制图象(Strat Up)又包括菜单栏的绘制,函数图形及坐标轴的绘制和函数的缩放与移动;函数参数的设定(Settings)包括函数Y=ASin(Bx)+C的参数A、B、C及X的区间MinXMaxX.二、程序流程图 整体框架图 Y=ASin(Bx)+C开 始输入目录选项Start Now(绘图) Settings (参数设定)Quit(退出)0.Set A (参数A的设定)1.Set B (参数B的设定)2.Set C (参数C的设定)3.Set MinX (X的最小值)4.Set MaxX (X的最大值)5.Back (返回)输入函数Y=
4、ASin(Bx)+C的各项参数A、B、C及X的区间范围MinXMaxX的值void StartUp() Initialize(); Start(); Draw();Pause();void Initialize()int GD=VGA; int GM=VGAHI; int ErrorC; clrscr(); initgraph(&GD,&GM,); ErrorC=graphresult(); if (ErrorC!=0) printf(Graphics System ERROR); exit(1); cleardevice();void Start() setcolor(RED); sette
5、xtstyle(TRIPLEX_FONT,0,9); outtextxy(120,180,Welcome); setcolor(YELLOW); settextstyle(0,0,1); outtextxy(6,470,Press Any Key.); getch(); cleardevice(); setfillstyle(SOLID_FILL,7); setlinestyle(0,0,1); bar(0,0,639,479); setfillstyle(SOLID_FILL,BLUE); bar(1,1,638,12); Title(Function Graphics V0.1); Dra
6、wRect(3,465,636,476); DrawMenuBar(); Inform(Ready!); /*/int ScreenX(double x)/*数学座标转换为屏幕坐标*/ return (316+ZOOM*x+RX*ZOOM);int ScreenY(double y) return (211-ZOOM*y+RY*ZOOM);绘制函数图象及功能模块图void DrawAxis(int maxx,int maxy,int minx,int miny) int i; setcolor(GREEN); line(ScreenX(minx),ScreenY(0),ScreenX(maxx
7、),ScreenY(0); line(ScreenX(0),ScreenY(miny),ScreenX(0),ScreenY(maxy); for(i=minx;i=maxx;i+) if(i%10=0) line(ScreenX(i),ScreenY(-1),ScreenX(i),ScreenY(1); for(i=miny;i=maxy;i+) if(i%10=0) line(ScreenX(-1),ScreenY(i),ScreenX(1),ScreenY(i); void Draw() double x,y,y2; int MaxY,MinY; DrawRect(3,37,636,46
8、0); setviewport(4,38,635,459,1); setfillstyle(1,7); bar(0,0,640,480); MaxY=211/ZOOM; MinY=-211/ZOOM; DrawAxis(MaxX,MaxY,MinX,MinY); setcolor(RED); setlinestyle(0,0,1); for(x=MinX;x=MaxX;x+=1.0/Q) y=Function(x); y2=Function(x+1.0/Q); line(ScreenX(x),ScreenY(y),ScreenX(x+1.0/Q),ScreenY(y2); int Screen
9、X(double x) return (316+ZOOM*x+RX*ZOOM);int ScreenY(double y) return (211-ZOOM*y+RY*ZOOM);double Function(double x) return (A*sin(B*x)+C);void ZoomIn() if(ZOOM*1.5=1.5) ZOOM/=1.5; Draw(); Inform(ZoomOut);void MoveUp() if(RY-1=-15) RY-=1; Draw(); Inform(MoveUp);void MoveDown() if(RY+1=-15) RX-=1; Dra
10、w(); Inform(MoveLeft);void MoveRight() if(RX+1=-15) RY-=1; Draw(); Inform(MoveUp);void MoveDown() if(RY+1=-15) RX-=1; Draw(); Inform(MoveLeft);void MoveRight() if(RX+1=15) RX+=1; Draw(); Inform(MoveRight);/* 图形缩放*/void ZoomIn() if(ZOOM*1.5=1.5) ZOOM/=1.5; Draw(); Inform(ZoomOut);/* 目录的选择功能实现*/switch
11、(getch()case 0: ;break;case 1: ;break;case 2: ;判断所输入的数据是否符合要求:void SetA() do printf(nPlease Input A(-1010):); scanf(%f,&A); if (A*A100) printf(Input Wrong(-1010)! Try Again.n); while(A*A100);void SetB() do printf(nPlease Input B(-1010):); scanf(%f,&B); if (B*B100) printf(Input Wrong(-1010)! Try Agai
12、n.n); while(B*B100);void SetC() do printf(nPlease Input C(-1010):); scanf(%f,&C); if (C*C100) printf(Input Wrong(-1010)! Try Again.n); while(C*C100);/* 区间设置*/void SetMaxX() do printf(nPlease Input Max X(-100100):); scanf(%f,&MaxX); if (MaxX*MaxX10000|MaxXMinX! Try Again.n); while(MaxX*MaxX10000|MaxX
13、10000|MaxX=MinX) printf(Input Wrong.(-100100),And MinX10000|MaxX=MinX);四、个人总结通过这次C语言的课设实践活动,使我充分的体会到自己的不足。这让我在实践中对C语言又有了一个全新的认识。这让我在了解到自己的不足的同时,使自己对C语言的掌握又加深了一步。尤其是在这次实践活动中,我的课题:绘制函数SinX的过程中了解了更多的知识,对于C语言的绘图有了一定的掌握。使得自己可以运用程序画出简单的函数图象。在对C语言绘制图形的过程中,让自己了解到不少东西,如数学坐标转换成屏幕坐标,菜单栏及欢迎屏幕的制作,图形的缩放及移动,图形的颜色和
14、立体感上也有了一定的了解,并可以进行一些简单的操作等五、参考文献1 谭浩强C程序设计北京:清华大学出版社,2005六、源程序/* 编译预处理*/#include #include #include #include #include #include #define ESC 0x1b#define MENU struct menu/* 菜单结构体*/struct menu char Name16; int Value; void (*Function)();/* 全局变量*/int RX=0,RY=0;double ZOOM=10;int Q=10;float A=1,B=1,C=0;floa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 正弦 函数 图形 表示 20
限制150内