C语言课设绘制动态五角星Word文件下载.docx

上传人:b****5 文档编号:20951468 上传时间:2023-01-26 格式:DOCX 页数:13 大小:107.03KB
下载 相关 举报
C语言课设绘制动态五角星Word文件下载.docx_第1页
第1页 / 共13页
C语言课设绘制动态五角星Word文件下载.docx_第2页
第2页 / 共13页
C语言课设绘制动态五角星Word文件下载.docx_第3页
第3页 / 共13页
C语言课设绘制动态五角星Word文件下载.docx_第4页
第4页 / 共13页
C语言课设绘制动态五角星Word文件下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

C语言课设绘制动态五角星Word文件下载.docx

《C语言课设绘制动态五角星Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言课设绘制动态五角星Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。

C语言课设绘制动态五角星Word文件下载.docx

按回车键程序结束。

(功能延伸:

改变数据文件的内容后,再根据数据文件里的数据绘制五角星)

(二)技术要求

1.按照给定题目独立设计程序,上机调试通过。

2.写出设计报告

提交报告的内容如下:

二.题目内容的描述

三.应用程序功能的详细说明

voidset_pentagon(int*xr,int*yr,int*r)/*insertpengaton*/

{

FILE*fp;

charfilename[20],ch;

printf("

Inputthefile'

sname:

"

);

gets(filename);

if((fp=fopen(filename,"

w+"

))==NULL)

{printf("

fileopenerror.\n"

exit(0);

}

pleaseinputthecharacterstothefile:

\n"

while((ch=getchar())!

='

\n'

{fputc(ch,fp);

putchar(ch);

fclose(fp);

\npleasesetthexryrandrforthepentagonyouhavetypedin:

scanf("

%d"

xr);

yr);

r);

}

这一段是文件的输入与输出。

其中(int*xr,int*yr,int*r)中*xr,*yr,*r是形参,传地址。

FILE*fp,fp是一个指向FILE类型结构体的指针变量,通过文件指针变量能够找到与他相关的变量。

gets(filename)表示在遇到空格或回车时,之前的内容都存在filename中。

“w+”(读写),为读写建立一个新的文本文件,if((fp=fopen(filename,"

))==NULL)是为了判断能否打开文件,NULL指空指针。

fputc(ch,fp)函数的作用是将ch的值输出到fp所指向的文件中去,输出成功则返回值为输出字符,如输入xr=200,yr=200,r=200。

putchar(ch)的功能是把ch输出在屏幕上。

scanf("

这段的功能是输入xr,yr,r的值,存在xr,yr,r中;

其中scanf中xr,yr,r无&

,因为之前定义int*xr,int*yr,int*r已经传地址了。

voidshow(structpoint*p)/*showpentagon*/

{intn;

for(n=0;

n<

5;

n++)

{if(n==0||n==3)

{setcolor

(2);

line(p[n].x,p[n].y,p[n+2].x,p[n+2].y);

else

{setcolor(4);

这段是利用for循环两点画线形成五角星,利用if条件语句对旋转边及普通边上色。

其中for(n=0;

n++);

功能是两点连线画出五角星的各边。

main()

{intr,xr,yr;

intn,i;

intgd=VGA,gm=VGAHI;

intk1,k2;

inta;

其中intr,xr,yr;

中(xr,yr)是圆心坐标,这个圆是五角星的外接圆,r为此圆半径。

intgd=VGA,gm=VGAHI;

的功能是设置图形模式。

intk1,k2;

输入键值(ASCII码)。

set_pentagon(&

xr,&

yr,&

r);

setturn1or2:

&

a);

主函数调用set_函数,其中turn1表示左转,turn2表示右转。

initgraph(&

gd,&

gm,"

cleardevice();

if(a==1)i=1;

/*turnleft*/

if(a==2)i=5;

/*turnright*/

while

(1)

{cleardevice();

switch(i)/*4turnsofpentagon*/

{case1:

{for(n=0;

7;

{p[n].x=xr-r*sin(2*PI*n/5);

p[n].y=yr-r*cos(2*PI*n/5);

show(p);

break;

}

initgraph(&

初始化图形模式。

cleardevice();

清屏。

if(a==1)i=1;

表示左转。

if(a==2)i=5;

表示右转。

switch(i)控制五角星的四个旋转方向。

{case1:

其中switch函数调用show函数,break跳出后重复执行switch函数。

k1=bioskey(0);

k1=k1&

0xff;

if(k1==13)break;

if(a==1)i++;

if(a==2)i--;

closegraph();

其中k1=bioskey(0)表示等待键盘输入。

k1=k1&

0xff

程序的输出:

k

Pleaseinputthecharacterstothefile:

xr=200yr=200r=200

Pleasesetthexryrandrforthepentagonyouhavetypedin:

200200200

Setturn1or2:

1是左转,2是右转。

四.输入数据类型、格式和内容限制

Main()主函数

主函数中调用scanf()函数,实现数据的输入,并通过调用save(),实现文件的保存,通过调用drawcurve(),画出圆的外摆线,通过调用star()画出五角星,通过for循环不断改变传入star的值,实现五角星在外摆线是上的运动。

cleardevice()清屏函数

擦除整个图形屏幕并将光标移到原点

line()画线函数功能:

函数line()使用当前绘图色、线型及线宽,在给定的两点间画一直线。

用法:

该函数调用方式为voidline(intstartx,intstarty,intendx,intendy);

说明:

参数startx,starty为起点坐标,endx,endy为终点坐标,函数调用前后,图形状态下屏幕光标(一般不可见)当前位置不改变。

此函数相应的头文件为graphics.h

返回值:

conio.h:

conio.h不是C标准库中的头文件。

conio是ConsoleInput/Outp(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。

graphics.h:

图形处理头文件。

#include<

math.h>

数学运算函数

#include<

stdio.h>

标准库函数

bios.h>

磁盘输出函数

#definePI3.1415926宏定义PI

输入数据类型包括整形常量。

格式和内容方面没有什么限制

五.主要模块的算法描述

以程序流程图的方式给出

set_pentagon

show

main

六.结束语

通过这一学期C语言的学习,是我对C语言有了一个重新的认识,但是有些问题还不是很懂,曾多次去图书馆针对此问题查询资料,再加上同学的指点,才完成本次作业。

本次计算机程序训练的题目是编辑动态五角星,转动完全由键盘控制。

我编写和调试的这个程序完成了动态五角星的旋转。

通过本次程序训练,使我对C语言有了更深刻的了解。

它既具有高级语言的特点,又具有汇编语言的特点。

它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

这使我对C程序的学习产生了很大的兴趣。

C语言真是一个博大精深的语言,还需我们继续的学习,在以后的工作和学习中加以应用!

七.程序的源代码清单

graphics.h>

conio.h>

#definePI3.1415926

structpoint

{intx;

inty;

}p[7];

voidset_pentagon(int*xr,int*yr,int*r)

voidshow(structpoint*p)

switch(i)

case2:

{p[n].x=xr-r*cos(2*PI*n/5);

p[n].y=yr-r*sin(2*PI*n/5);

break;

case3:

{p[n].x=xr+r*sin(2*PI*n/5);

p[n].y=yr+r*cos(2*PI*n/5);

case4:

{p[n].x=xr+r*cos(2*PI*n/5);

p[n].y=yr+r*sin(2*PI*n/5);

if(a==1)i=0;

case5:

k1=bioskey(0);

附录A.程序运行截图

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

当前位置:首页 > 工程科技 > 电子电路

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

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