ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:36.37KB ,
资源ID:4057290      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4057290.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言课程设计 在屏幕上绘制一个动态五角星 完整版.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言课程设计 在屏幕上绘制一个动态五角星 完整版.docx

1、C语言课程设计 在屏幕上绘制一个动态五角星 完整版目 录一设计题目2二题目内容的描述2三应用程序功能的详细说明2四输入数据类型格式和内容限制8五N-S流程图9六结束语11七.程序的源代码清单11沈阳理工大学计算机程序训练任务书姓名: 班级: 学号: 一设计题目:在屏幕上绘制一个动态五角星 具体内容 (一)设计要求 在屏幕上绘制一个五角星,每按一次键盘转九十度。用循环程序计算五角星的顶点,画直线完成。五角星显示的位置、大小和转动的方向由键盘输入,并将输入的数据送文件保存。按回车键程序结束。(功能延伸:改变数据文件的内容后,再根据数据文件里的数据绘制五角星)(二)技术要求1. 按照给定题目独立设计

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

3、(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 for the pentagon you have typed in:n); scanf(%d,xr); scanf(%d,yr); scanf(

4、%d,r); 这一段是文件的输入与输出。其中(int *xr,int *yr,int *r)中*xr,*yr,*r是形参,传地址。FILE *fp,fp是一个指向FILE类型结构体的指针变量,通过文件指针变量能够找到与他相关的变量。gets(filename)表示在遇到空格或回车时,之前的内容都存在filename中。“w+”(读写),为读写建立一个新的文本文件, if(fp=fopen(filename,w+)=NULL)是为了判断能否打开文件,NULL指空指针。fputc(ch,fp)函数的作用是将ch的值输出到fp所指向的文件中去,输出成功则返回值为输出字符,如输入xr=200,yr=2

5、00,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中xr,yr,r无&,因为之前定义int *xr,int *yr,int *r已经传地址了。void show(struct point *p)/*show pentagon*/ int n; for(n=0;n5;n+) if(

6、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); 这段是利用for循环两点画线形成五角星,利用if条件语句对旋转边及普通边上色。其中 for(n=0;n5;n+); 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; 其中int r,xr,yr;中(xr,yr)是圆心坐

7、标,这个圆是五角星的外接圆,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表示左转,turn2表示右转。 initgraph(&gd,&gm,); cleardevice(); if(a=1) i=1;/*turn left*/ if(a=2) i=5;/*turn right*/ while(1) cleardevice(); switch(i)

8、/*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,);初始化图形模式。cleardevice();清屏。if(a=1) i=1;表示左转。if(a=2) i=5;表示右转。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); s

9、how(p); if(a=2) i=5;break; 其中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程序的输出:Input the files name:kPlease input the characters to the file:xr=200yr=200r=200xr=200yr=200r=200Please set the

10、xr yr and r for the pentagon you have typed in:200 200 200Set turn 1 or 21是左转,2是右转。四 输入数据类型、格式和内容限制Main()主函数主函数中调用scanf()函数,实现数据的输入,并通过调用save(),实现文件的保存,通过调用drawcurve(),画出圆的外摆线,通过调用star()画出五角星,通过for循环不断改变传入star的值,实现五角星在外摆圆上的运动。cleardevice()清屏函数擦除整个图形屏幕并将光标移到原点 line() 画线函数功能: 函数line()使用当前绘图色、线型及线宽,在给定

11、的两点间画一直线。用法: 该函数调用方式为void line(int startx,int starty,int endx,int endy);说明: 参数startx,starty为起点坐标,endx,endy为终点坐标,函数调用前后,图形状态下屏幕光标(一般不可见)当前位置不改变。 此函数相应的头文件为graphics.h返回值: 无conio.h:conio.h不是C标准库中的头文件。conio是Console Input/Outp (控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。graphi

12、cs.h:图形处理头文件。#include 数学运算函数#include 标准库函数#define PI 3.1415926 宏定义 PI输入数据类型包括整形常量。格式和内容方面没有什么限制五、N-S流程图 为画五角星定义一个文件 输入文件名 fp=(fopen(filename,”w+”)= =NULL 是 否 printf(“File open error”) input the characters to the file exit(0) ch=n 将xr,yr,r输入文件保存 图形初始化 调用定义函数pentagon,将控制五角星转向的a输入保存,使用xr,yr,r a= =1是 否

13、a= =2 i=1 是 否 i=5 while(1) n7 n=0 n=n+1 调用数据,传入函数switch(),函数 Closegraph()五 结束语 通过这一学期C语言的学习,是我对C语言有了一个重新的认识,但是有些问题还不是很懂,曾多次去图书馆针对此问题查询资料,再加上同学的指点,才完成本次作业。本次计算机程序训练的题目是编辑动态五角星,转动完全由键盘控制。我编写和调试的这个程序完成了动态五角星的旋转。通过本次程序训练,使我对C语言有了更深刻的了解。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机

14、硬件的应用程序。这使我对C程序的学习产生了很大的兴趣。C语言真是一个博大精深的语言,还需我们继续的学习,在以后的工作和学习中加以应用! 七程序的源代码清单 #include /*标准输入输出*/#include /*数学函数*/ #include /*线条图形函数*/#include /*字符模函数及图形模函数*/#define PI 3.1415926 /*对PI的宏定义*/struct point /*定义结构体变量名称为 point*/ int x; int y; /*定义结构体变量包含的整型变量x,y*/p7;void set_pentagon(int *xr,int *yr,int

15、*r) /*自定义画五角星函数*/ FILE *fp; /*声明fp是指针,用来指向 FILE类型的对象*/ 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); putch

16、ar(ch); fclose(fp); 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);void show(struct point *p) /*show函数的声明*/ int n; for(n=0;n5;n+) /*两点连线画出五角星的各边*/ if(n= =0|n= =3) /*利用if条件语句对旋转边及普通边上色*/ setcolor(2); line(pn.x,pn.y,pn+2.x,pn+2.y); els

17、e 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; int a; set_pentagon(&xr,&yr,&r); /*主函数调用set_函数*/ printf(set turn 1 or 2:n); /*turn1表示左转,turn2表示右转*/ scanf(%d,&a); initgraph(&gd,&gm,); /*;初始化图形模式*/ cleardevice(); /*清屏*/ if(a=1)

18、 i=1; if(a=2) i=5; while(1) cleardevice(); 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

19、/5); pn.y=yr+r*cos(2*PI*n/5); show(p); break; case 4: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); if(a=1) i=0; break; case 5: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; k1=bioskey(0); /*等待键盘输入*/ k1=k1&0xff; /*十六进制转换十进制*/ if(k1=13) break; if(a=1) i+; if(a=2) i-; closegraph(); /*关闭图形系统*/

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

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