C语言课设绘制动态五角星_第1页
C语言课设绘制动态五角星_第2页
C语言课设绘制动态五角星_第3页
C语言课设绘制动态五角星_第4页
C语言课设绘制动态五角星_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、个人收集整理 仅供参考学习目录一设计题目 2 二 题目内容的描述 2 三应用程序功能的详细说明 2 四输入数据类型格式和内容限制 8 五主要模块的算法描述 9 六结束语 11 七. 程序的源代码清单11附录 A . 程序运行截图 14个人收集整理 仅供参考学习沈阳理工大学材料科学与工程学院计算机程序训练任务书姓名: xxxxxx班级: xxxxxxxx学号: xxx一设计题目 : 在屏幕上绘制一个动态五角星具体内容(一)设计要求在屏幕上绘制一个五角星, 每按一次键盘转九十度。 用循环程序计算五角星的 顶点,画直线完成。五角星显示的位置、大小和转动的方向由键盘输入,并将输 入的数据送文件保存。

2、按回车键程序结束。(功能延伸: 改变数据文件的内容后, 再根据数据文件里的数据绘制五角星)(二)技术要求1. 按照给定题目独立设计程序,上机调试通过。2. 写出 设计报告提交报告的内容如下:二 题目内容的描述在屏幕上绘制一个五角星, 每按一次键盘转九十度。 用循环程序计算五角星的 顶点,画直线完成。五角星显示的位置、大小和转动的方向由键盘输入,并将输 入的数据送文件保存。 按回车键程序结束。(功能延伸: 改变数据文件的内容后, 再根据数据文件里的数据绘制五角星)三应用程序功能的详细说明void set_pentagon(int *xr,int *yr,int *r)/*insert penga

3、ton*/FILE *fp;char filename20,ch;个人收集整理 仅供参考学习printf(Input the files name:);gets(filename);if(fp=fopen(filename,w+)=NULL)printf(file open error.n);exit(0);printf(please input the characters to the file:n);while(ch=getchar()!=n) fputc(ch,fp);putchar(ch);fclose(fp);printf(nplease set the xr yr and r f

4、or the pentagon you have typed in:n);scanf(%d,xr);scanf(%d,yr);scanf(%d,r);这一段是文件的输入与输出。 其中(int *xr,int *yr,int *r) 中*xr,*yr,*r 是形参, 传地址。FILE *fp ,fp是一个指向 FILE 类型结构体的指针变量,通过文件指个人收集整理 仅供参考学习针变量能够找到与他相关的变量。 gets(filename)表示在遇到空格或回车时,之 前的内容都存在 filename 中。“w+”(读写 ),为读写建立一个新的文本文件, if(fp=fopen(filename,w+

5、)=NULL) 是为了判断能否打开文件 ,NULL 指 空指针。fputc(ch,fp)函数的作用是将 ch的值输出到 fp 所指向的文件中去,输 出成功则返回值为输出字符,如输入 xr=200,yr=200 , r=200 。 putchar(ch)的功 能是把 ch 输出在屏幕上 。 printf(nplease set the xr yr and r for the pentagon you have typed in:n);scanf(%d,xr);scanf(%d,yr);scanf(%d,r); 这段的功能是输入 xr,yr,r 的值,存在 xr,yr,r 中;其中 scanf 中

6、xr,yr,r无& ,因为之前定义 int *xr,int *yr,int *r 已经传地址了 。 void show(struct point *p)/*show pentagon*/ int n;for(n=0;n5;n+) if(n=0|n=3)setcolor(2);line(pn.x,pn.y,pn+2.x,pn+2.y);elsesetcolor(4);line(pn.x,pn.y,pn+2.x,pn+2.y);个人收集整理 仅供参考学习这段是利用 for 循环两点画线形成五角星,利用 if 条件语句对旋转边及普通边 上色。其中 for(n=0;n5;n+) ; line(pn.x

7、,pn.y,pn+2.x,pn+2.y) ;功能 是两点连线画出五角星的各边。main() int r,xr,yr;int n,i;int gd=VGA,gm=VGAHI;int k1,k2;int a;其中 int r,xr,yr;中(xr,yr)是圆心坐标,这个圆是五角星的外接圆 , r 为此圆 半径。int gd=VGA,gm=VGAHI ;的功能是设置图形模式 。int k1,k2 ;输入键值 (ASCII 码)。set_pentagon(&xr,&yr,&r);printf(set turn 1 or 2:n);scanf(%d,&a);主函数调用 set_函数,其中 turn1 表

8、示左转 ,turn2 表示右转 。initgraph(&gd,&gm,);cleardevice();if(a=1) i=1;/*turn left*/个人收集整理 仅供参考学习if(a=2) i=5;/*turn right*/ while(1) cleardevice();switch(i)/*4 turns of pentagon*/ case 1:for(n=0;n7;n+) pn.x=xr-r*sin(2*PI*n/5); pn.y=yr-r*cos(2*PI*n/5);show(p);if(a=2) i=5;break;initgraph(&gd,&gm,) ; 初始化图形模式 。

9、cleardevice();清屏 。if(a=1) i=1; 表示左转。 if(a=2) i=5;表示右转 。switch(i) 控制五角星的四个旋转方向。case 1:for(n=0;n7;n+)n=4n=2n=3=1 或 6n=0 或 5 pn.x=xr-r*sin(2*PI*n/5); pn.y=yr-r*cos(2*PI*n/5);show(p);if(a=2) i=5;break;其中 switch 函数调用 show函数, break跳出后重复执行 switch 函数。个人收集整理 仅供参考学习k1=bioskey(0);k1=k1&0xff;if(k1=13) break;if(

10、a=1) i+;if(a=2) i-; closegraph();其中 k1=bioskey(0)表示等待键盘输入 。 k1=k1&0xff程序的输出:Input the files name:kPlease input the characters to the file:xr=200yr=200r=200xr=200yr=200r=200Please set the xr yr and r for the pentagon you have typed in:200 200 200Set turn 1 or 2:1 是左转, 2 是右转。个人收集整理 仅供参考学习四 输入数据类型、格式和内

11、容限制Main()主函数主函数中调用 scanf()函数,实现数据的输入,并通过调用 save(),实现文 件的保存,通过调用 drawcurve(),画出圆的外摆线,通过调用 star()画出 五角星,通过 for 循环不断改变传入 star 的值,实现五角星在外摆线是上的运 动。cleardevice() 清屏函数 擦除整个图形屏幕并将光标移到原点line() 画线函数功能: 函数 line() 使用当前绘图色、线型及线宽,在给定的两 点间画一直线 。用法: 该函数调用方式为 void line(int startx,int starty,int endx,int endy);说明: 参数

12、 startx,starty 为起点坐标 ,endx,endy为终点坐标,函数调用前后, 图形状态下屏幕光标 (一般不可见 )当前位置不改变。此函数相应的头文件为 graphics.h返回值: 无conio.h:conio.h 不是 C 标准库中的头文件。 conio 是 Console Input/Outp (控制台输入输出)的简写,其中定义了通过控制台进行数据输入和 数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如 getch()函数等等。graphics.h:图形处理头文件。#include 数学运算函数#include 标准库函数#include磁盘输出函数#define

13、PI 3.1415926 宏定义 PI 输入数据类型包括整形常量。格式和内容方面没有什么限制个人收集整理 仅供参考学习五 主要模块的算法描述以程序流程图的方式给出set_pentagon个人收集整理 仅供参考学习showmain10个人收集整理 仅供参考学习六 结束语通过这一学期 C 语言的学习,是我对 C 语言有了一个重新的认识,但是 有些问题还不是很懂, 曾多次去图书馆针对此问题查询资料, 再加上同学的指 点,才完成本次作业。 本次计算机程序训练的题目是编辑动态五角星, 转动完 全由键盘控制。我编写和调试的这个程序完成了动态五角星的旋转。通过本次程序训练, 使我对 C语言有了更深刻的了解。

14、 它既具有高级语言的 特点,又具有汇编语言的特点。 它可以作为工作系统设计语言, 编写系统应用 程序,也可以作为应用程序设计语言, 编写不依赖计算机硬件的应用程序。 这 使我对 C程序的学习产生了很大的兴趣。 C 语言真是一个博大精深的语言, 还 需我们继续的学习,在以后的工作和学习中加以应用!七程序的源代码清单#include #include #include #include #include #define PI 3.1415926 struct point int x;int y;p7;void set_pentagon(int *xr,int *yr,int *r)FILE *fp

15、;char filename20,ch;printf(Input the files name:); gets(filename);if(fp=fopen(filename,w+)=NULL)printf(file open error.n);exit(0);printf(please input the characters to the file:n); while(ch=getchar()!=n)11个人收集整理 仅供参考学习 fputc(ch,fp); putchar(ch);fclose(fp);printf(nplease set the xr yr and r for the p

16、entagon you have typed in:n); scanf(%d,xr);scanf(%d,yr); scanf(%d,r);void show(struct point *p) int n;for(n=0;n5;n+) if(n=0|n=3) setcolor(2);line(pn.x,pn.y,pn+2.x,pn+2.y); else setcolor(4);line(pn.x,pn.y,pn+2.x,pn+2.y);main() int r,xr,yr;int n,i;int gd=VGA,gm=VGAHI;int k1,k2;int a;set_pentagon(&xr,&

17、yr,&r);printf(set turn 1 or 2:n); scanf(%d,&a);initgraph(&gd,&gm,); cleardevice();if(a=1) i=1;if(a=2) i=5;while(1)cleardevice();12个人收集整理 仅供参考学习switch(i)case 1:for(n=0;n7;n+) pn.x=xr-r*sin(2*PI*n/5); pn.y=yr-r*cos(2*PI*n/5);show(p);if(a=2) i=5;break;case 2:for(n=0;n7;n+) pn.x=xr-r*cos(2*PI*n/5); pn.y=yr-r*sin(2*PI*n/5);show(p); break;case 3:for(n=0;n7;n+) pn.x=xr+r*sin(2*PI*n/5); pn.y=yr+r*cos(2*PI*n/5);show(p); break;case 4:for(n=0;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论