




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录一设计题目2二题目内容的描述2三应用程序功能的详细说明2四输入数据类型格式和内容限制8五N-S流程图9六结束语11七.程序的源代码清单11沈阳理工大学计算机程序训练任务书姓名: 班级: 学号: 一设计题目:在屏幕上绘制一个动态五角星 具体内容 (一)设计要求 在屏幕上绘制一个五角星,每按一次键盘转九十度。用循环程序计算五角星的顶点,画直线完成。五角星显示的位置、大小和转动的方向由键盘输入,并将输入的数据送文件保存。按回车键程序结束。(功能延伸:改变数据文件的内容后,再根据数据文件里的数据绘制五角星)(二)技术要求1. 按照给定题目独立设计程序,上机调试通过。2. 写出设计报告提交报告的内容如下:二 题目内容的描述 在屏幕上绘制一个五角星,每按一次键盘转九十度。用循环程序计算五角星的顶点,画直线完成。五角星显示的位置、大小和转动的方向由键盘输入,并将输入的数据送文件保存。按回车键程序结束。(功能延伸:改变数据文件的内容后,再根据数据文件里的数据绘制五角星)三应用程序功能的详细说明 void set_pentagon(int *xr,int *yr,int *r)/*insert pengaton*/ 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 for 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+)=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中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); 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)是圆心坐标,这个圆是五角星的外接圆,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)/*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); show(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 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()使用当前绘图色、线型及线宽,在给定的两点间画一直线。用法: 该函数调用方式为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()函数等等。graphics.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是 否 a= =2 i=1 是 否 i=5 while(1) n7 n=0 n=n+1 调用数据,传入函数switch(),函数 Closegraph()五 结束语 通过这一学期C语言的学习,是我对C语言有了一个重新的认识,但是有些问题还不是很懂,曾多次去图书馆针对此问题查询资料,再加上同学的指点,才完成本次作业。本次计算机程序训练的题目是编辑动态五角星,转动完全由键盘控制。我编写和调试的这个程序完成了动态五角星的旋转。通过本次程序训练,使我对C语言有了更深刻的了解。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。这使我对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 *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); 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(%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); 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; 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) 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/5); pn.y=yr+r*cos(2*PI*n/5); show(p); break; case 4:for(n=0;n7;n+)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025医药(集团)股份有限公司合同管理暂行规定
- 2025年辅警招聘考试综合提升试卷附答案详解(考试直接用)
- 2022年2月韶关市直遴选面试真题带答案详解
- 2022年2月锦州市直机关遴选公务员面试真题带详解
- 2022年11月三明市直遴选面试真题带详解
- 2025年行政执法基础知识综合练习题含答案详解(培优a卷)
- 2014护士试题及答案
- 2025年皖北煤电集团总医院招聘24人笔试备考题库含答案详解(新)
- 临沧云南临沧市交通运输综合行政执法支队招聘交通运输综合行政执法辅助人员笔试历年参考题库附答案详解(a卷)
- 工作表现评语简笔女生
- 高考英语分层词汇1800(适合艺考生使用)
- 市政工程质量保修书
- GB/T 31950-2023企业诚信管理体系要求
- 输变电工程标准化施工作业卡变电工程
- 系列压路机xmr303随机文件16-操作保养手册
- 目标产量完成超产奖励方案
- 网络运维计算机管理论文(论文)
- 面试评分表(学生会)
- 小学语文教师选调进城考试试题4套(附答案)
- 《高中政治选修3》17.联合国:最具普遍性国际组织
- GB/T 5606.1-2004卷烟第1部分:抽样
评论
0/150
提交评论