正弦函数的图形表示

更新时间:2023-06-08 22:28:29 阅读: 评论:0

课程设计
   
             
冬天来了写一段话姓   
指导教师
2007         

课程设计任务书
    题目:正弦函数的图形表示
一、课程设计时间
2007年9月10日至2007年9月14日,共计1周,20学时。
二、课程设计内容
用C语言编写软件完成以下任务:
在图形模式下,绘制正弦函数sin(x)在x1~x2之间的图形。
注意:此程序必须用TC2.0编写。
三、课程设计要求
1. 程序质量:
贯彻结构化的程序设计思想。
用户界面友好,功能明确,操作方便。
用户界面中的菜单至少应包括“输入x的区间”、“开始绘制”、、“退出”3项。
代码应适当缩进,并给出必要的注释,以增强程序的可读性。
2. 课程设计说明书:
课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。
四、指导教师和学生签字
指导教师:_______  人民警察职业道德规范学生签名:________
五、成绩:
六、教师评语:

目录
一、需求分析    Ⅰ
二、程序流程图    Ⅱ
三、核心技术的实现说明及相应程序段    Ⅹ
四、个人总结    ⅩⅣ
五、参考文献    ⅩⅣ
六、源程序    ⅩⅤ

一、需求分析
经过对程序设计题目的分析可知,整个程序的设计实现大致分为三大模块,其中他们的功能分别是:绘制图象(Strat Up)、函数参数的设定(Settings)、退出(Quit)。在这些函数当中,绘制图象(Strat Up)又包括菜单栏的绘制,函数图形及坐标轴的绘制和函数的缩放与移动;函数参数的设定(Settings)包括函数Y=ASinBx+C的参数ABCX的区间MinX~MaxX.

、程序流程图
整体框架图   
Y=ASin(Bx)+C
绘制函数图象及功能模块图
(1)菜单界面
(2)函数参数设置
焖排骨的家常做法
怎么重置手机(3)函数区间设置
(4)欢迎屏幕
(5)函数图象
(6)函数的缩放
(7)函数的上下移动
(8)函数的左右移动
三、核心技术的实现说明及相应程序段
void StartUp()/*            图形环境启动*/
{
Initialize();
Start();
Draw();
Pau();
}
/****************************************/
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()/*      欢迎屏幕及视图初始化*/
{
tcolor(RED);
ttextstyle(TRIPLEX_FONT,0,9);
outtextxy(120,180,"Welcome");
tcolor(YELLOW);
ttextstyle(0,0,1);
outtextxy(6,470,"Press ");
getch();
cleardevice();
tfillstyle(SOLID_FILL,7);
tlinestyle(0,0,1);
bar(0,0,639,479);
tfillstyle(SOLID_FILL,BLUE);
bar(1,1,638,12);
Title("Function Graphics V0.1");
DrawRect(3,465,636,476);
DrawMenuBar();
Inform("Ready!");
}
/****************************************/
int ScreenX(double x)/*数学座标转换为屏幕坐标*/
少先队礼仪规范/*对于屏幕坐标而言,它的X轴坐标与数学坐标的正方向相同,而Y轴的坐标相反*/
{
return (316+ZOOM*x+RX*ZOOM);
}
int ScreenY(double y)
{
return (211-ZOOM*y+RY*ZOOM);
}
void MoveUp()
{
if(RY-1>=-15) RY-=1;
Draw();
Inform("MoveUp");
}
void MoveDown()
{      if(RY+1<=15) RY+=1;
Draw();
Inform("MoveDown");
}
void MoveLeft()
{
if(RX-1>=-15) RX-=1;
Draw();
Inform("MoveLeft");
}
void MoveRight()
{
if(RX+1<=15) RX+=1;
Draw();
Inform("MoveRight");
}
/****************************************/
/*                              图形缩放*/寿司的做法视频
void ZoomIn()
{
if(ZOOM*1.5<=80) ZOOM*=1.5;
Draw();
Inform("ZoomIn");
}
void ZoomOut()
{
if(ZOOM/1.5>=1.5) ZOOM/=1.5;
Draw();
Inform("ZoomOut");
}
/*                  目录的选择功能实现*/
switch(getch())
ca ‘0    break
ca ‘1’    break
ca ‘2’   
判断所输入的数据是否符合要求:
void SetA()
{
do
{
  printf("\nPlea Input A(-10~10):");
美的历程在线阅读
  scanf("%f",&A);
  if (A*A>100) printf("Input Wrong(-10~10)! Try Again.\n");
}while(A*A>100);
}
void SetB()
{
do
{
  printf("\nPlea Input B(-10~10):");
  scanf("%f",&B);
  if (B*B>100) printf("Input Wrong(-10~10)! Try Again.\n");
}while(B*B>100);
}
void SetC()
{
do
{
  printf("\nPlea Input C(-10~10):");
  scanf("%f",&C);
  if (C*C>100) printf("Input Wrong(-10~10)! Try Again.\n");
}while(C*C>100);
}
/****************************************/
/*                              区间设置*/
void SetMaxX()
{
do
{
  printf("\nPlea Input Max X(-100~100):");
  scanf("%f",&MaxX);
  if (MaxX*MaxX>10000||MaxX<=MinX) printf("Input Wrong.(-100~100),And MaxX>MinX! Try Again.\n");
}while(MaxX*MaxX>10000||MaxX<=MinX);
}
void SetMinX()
{
do
{
  printf("\nPlea Input Min X(-100~100):");
  scanf("%f",&MinX);
  if (MinX*MinX>10000||MaxX<=MinX) printf("Input Wrong.(-100~100),And MinX<MaxX! Try Again.\n");
}while(MinX*MinX>10000||MaxX<=MinX);
四、个人总结
通过这次C语言的课设实践活动,使我充分的体会到自己的不足。这让我在实践中对C语言又有了一个全新的认识。这让我在了解到自己的不足的同时,使自己对C语言的掌握又加深了一步。尤其是在这次实践活动中,我的课题:
绘制函数SinX的过程中了解了更多的知识,对于C语言的绘图有了一定的掌握。使得自己可以运用程序画出简单的函数图象。在对C语言绘制图形的过程中,让自己了解到不少东西,如数学坐标转换成屏幕坐标,菜单栏及欢迎屏幕的制作,图形的缩放及移动,图形的颜色和立体感上也有了一定的了解,并可以进行一些简单的操作等
五、参考文献
1 谭浩强.C程序设计.北京:清华大学出版社,2005
六、    源程序
/*                                  编译预处理*/
#include <graphics.h>小蜜瓜
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <dos.h>
#include <string.h>
#define ESC 0x1b
#define MENU struct menu
/*>>>>>>>>>*/
/*                                  菜单结构体*/
struct menu
{
char Name[16];
int Value;
void (*Function)();
};
/*>>>>>>>>>*/
/*                                    全局变量*/
int RX=0,RY=0;
double ZOOM=10;

本文发布于:2023-06-08 22:28:29,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1027011.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:图形   函数   程序   绘制   实现   课程设计   坐标   屏幕
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图