求高手帮忙弄一个C语言课程设计,80到100行,核心语句50行,用TC,不需要...
发布网友
发布时间:2023-12-18 22:36
我来回答
共3个回答
热心网友
时间:2024-03-25 13:17
#include "stdio.h"
#include "graphics.h"
#include "math.h"
void Draw(int color);
int t_x=320,t_y=240,t_r=40; /* SUN太阳参数,圆心坐标及半径 */
int d_x,d_y,d_r=20; /* D地球参数 */
int y_x,y_y,y_r=5; /* Y月亮参数 */
int j_x,j_y,j_r=8; /* J星参数 */
int m_x,m_y,m_r=10; /* M星参数 */
int s_x,s_y,s_r=4; /* S星参数 */
float th1=0,th2=0,th3=0,th4=0,th5=0;/* 各星相对太阳的角度 */
main()
{
int gd=DETECT,gm;
int key=0; /* 保存键盘值?*/
int i;
float r;
initgraph(&gd,&gm,"");
Draw(12); /* 先画一个 */
while(key!=0x11b) /* 如果按键==ESC键则退出 */
{
Draw(0); /* 用背景色把画好的图洗掉 */
if(bioskey(1)) /* 如果有按键?*/
{
key=bioskey(0); /* 取得按键的值 */
if(key==0x4b00) t_x-=10; /* 向上方向键 */
if(key==0x4d00) t_x+=10; /* 向下方向键 */
if(key==0x4800) t_y-=10; /* 向左方向键 */
if(key==0x5000) t_y+=10; /* 向右方向键 */
}
th1+=0.001256; /* 各星按角度移动 */
if(th1>=6.28) th1-=6.28; /* 如果转了一圈,按0角度从新计算 */
th2+=0.01256;
if(th2>=6.28) th2-=6.28;
th3+=0.002512;
if(th3>=6.28) th3-=6.28;
th4+=0.000314;
if(th4>=6.28) th4-=6.28;
th5+=0.00628;
if(th5>=6.28) th5-=6.28;
r+=0.5; /* 让太阳半径动态增加 */
if(r>=40) r=20; /* 增大40后用从20从新开始 */
t_r=(int)r;
Draw(12); /* 用颜色12画出图形 */
delay(1000); /* 稍等1秒钟看一下结果 */
}
closegraph();
}
void Draw(int color) /* 画图形 */
{
setcolor(color);
circle(t_x,t_y,t_r); /* 画太阳?*/
outtextxy(t_x-10,t_y-4,"SUN"); /* 显示太阳符号SUN */
d_x=t_x+130*cos(th1); /* 根据太阳位置计算地球位置X */
d_y=t_y+130*sin(th1); /* 根据太阳位置计算地球位置Y */
circle(d_x,d_y,d_r); /* 画地球 */
outtextxy(d_x-4,d_y-4,"D"); /* 显示地球符号D */
y_x=d_x+40*cos(th2); /* 根据地球位置计算月亮位置X */
y_y=d_y+40*sin(th2); /* 根据地球位置计算月亮位置Y */
circle(y_x,y_y,y_r); /* 画月亮 */
outtextxy(y_x-3,y_y-4,"Y"); /* 显示月亮符号Y */
j_x=t_x+60*cos(th3); /* 根据太阳位置计算J星位置X */
j_y=t_y+60*sin(th3); /* 根据太阳位置计算J星位置Y */
circle(j_x,j_y,j_r); /* 画J星 */
outtextxy(j_x-4,j_y-4,"J"); /* 显示J星符号J */
m_x=t_x+200*cos(th4); /* 根据太阳位置计算M星位置X */
m_y=t_y+200*sin(th4); /* 根据太阳位置计算M星位置Y */
circle(m_x,m_y,m_r); /* 画M星 */
outtextxy(m_x-4,m_y-4,"M"); /* 显示M星符号M */
s_x=t_x+230*cos(th5); /* 根据太阳位置计算S星位置X */
s_y=t_y+230*sin(th5); /* 根据太阳位置计算S星位置Y */
circle(s_x,s_y,s_r); /* 画S星,S星太小,所以没有显示符号 */
}
这个希望能用的上,我们也做这个,也是一样的要求
热心网友
时间:2024-03-25 13:17
额。。。还用TC
热心网友
时间:2024-03-25 13:10
不同TC行吗?