基于字符图案的打印_第1页
基于字符图案的打印_第2页
基于字符图案的打印_第3页
基于字符图案的打印_第4页
基于字符图案的打印_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、基于字符*图案的打印作者本人信息:经0531 冯艳 200507503127设计要求:     可直接输出到屏幕上或标准输出设备上;     也可通过运算保存在内存空间中,然后再进行显示;内存使用上,可采用数组,也可使用指针,或其他方式。     图案大小,最大基于当前设备的输出大小。   分析过程 基于字符”*”的打印程序基本的操作应该是基本图形打打印输出,所以首先应该定义的是基本打印子程序。由于要求实现一些图形形状的翻转及转换,所以可以把打印

2、的数据保存进内存,然后转换的时候对内存数据进行相应的处理,然后再调用子程序进行输出。 带有注释行的源程序代码 #include "stdio.h"#include "stdlib.h"/*define four global vars to control output status,paint location and painting size.*/int sta,locx,locy,size;/*define two vars to record repaint count and copiliable*/int c=1,cancopy=

3、0;/*paint triangle*/void cpaint(int n) int i,j,k; for (i=1; i<=n;i+) for(j=1;j<=n-i;j+) printf(" "); for(k=1;k<=2*i-1;k+) printf(" *"); printf("n"); void paint(int n) void subtitle(); void doer(); subtitle(); cpaint(size); sta=0; c=1; cancopy=0; doer();/*conver

4、se*/void cpaint1(int n) int i,j,k; for (i=1; i<=n;i+) for(j=1;j<=i-1;j+) printf(" "); for(k=1;k<=2*(n-i+1)-1;k+) printf(" *"); printf("n"); void paint1(int n) void subtitle(); void doer(); subtitle(); cpaint1(size); sta=1; c=1; cancopy=0; doer();/*turn right*/v

5、oid cpaint2(int n) int i,j,k; for (i=1; i<=n;i+) for(j=1;j<=i;j+) printf(" *"); printf("n"); for (i=n-1; i>=1;i-) for(k=1;k<=i;k+) printf(" *"); printf("n"); void paint2(int n) void subtitle(); void doer(); subtitle(); cpaint2(size); sta=2; c=1; ca

6、ncopy=0; doer();/*turn left*/void cpaint3(int n) int i,j,k; for (i=1; i<=n;i+) for(j=1;j<=n-i;j+) printf(" "); for(k=1;k<=i;k+) printf(" *"); printf("n"); for (i=n-1; i>=1;i-) for(j=1;j<=n-i;j+) printf(" "); for(k=1;k<=i;k+) printf(" *&q

7、uot;); printf("n"); void paint3(int n) void subtitle(); void doer(); subtitle(); cpaint3(size); sta=3; c=1; cancopy=0; doer();/*combine*/void cpaint4(int n) int i,j,k; for (i=1; i<=n;i+) for(j=1;j<=n-i;j+) printf(" "); for(k=1;k<=2*i-1;k+) printf(" *"); printf(

8、"n"); for (i=n-1; i>=1;i-) for(j=1;j<=n-i;j+) printf(" "); for(k=1;k<=2*i-1;k+) printf(" *"); printf("n"); void paint4(int n) void subtitle(); void doer(); subtitle(); cpaint4(size); sta=4; c=1; cancopy=1; doer();/*converse*/void cpaint5(int n) int i,

9、j,k; for (i=1; i<=n;i+) for(j=1;j<=n-i;j+) printf(" "); for(k=1;k<=2*i-1;k+) printf(" *"); printf("n"); for (i=n-1; i>=1;i-) for(j=1;j<=n-i;j+) printf(" "); for(k=1;k<=2*i-1;k+) printf(" *"); printf("n"); void paint5(int n

10、) void subtitle(); void doer(); subtitle(); cpaint5(size); sta=5; c=1; cancopy=1; doer();/*copy*/void copy(int n) int i,j,k; for (i=1; i<=n;i+) gotoxy(locx,locy); for(j=1;j<=n-i;j+) printf(" "); for(k=1;k<=2*i-1;k+) printf(" *"); locy+; for (i=n-1; i>=1;i-) gotoxy(loc

11、x,locy); for(j=1;j<=n-i;j+) printf(" "); for(k=1;k<=2*i-1;k+) printf(" *"); locy+; void title() clrscr(); printf(" +-+n"); printf(" | This Program is made for '*' painting,you can paint in many way! |n"); printf(" | Thanks for your using ! |

12、n"); printf(" +-+nn"); /*main menu*/void mneu() int i; textbackground(0); textcolor(14); title(); printf(" +-+-+n"); printf(" | 1.paint | 0.exit |n"); printf(" +-+-+n"); i=getch(); switch(i) case '1':title();printf(" +-+n");printf("

13、 | please input the size: |n");printf(" +-+n");scanf("%d",&size);paint(size);break; case '0':exit(0); default:mneu(); /*sub menu*/void subtitle()title();printf(" +-+n");printf(" | Please input 0 7 to continue. |n");printf(" +-+-+n");

14、printf(" | 1.repaint|2.turn left|n");printf(" |-+-|n");printf(" | 3.turn right|4.reverse|n");printf(" |-+-|n");printf(" | binatio|6.split |n");printf(" |-+-|n");printf(" | 7.copy|0.retrnu to mneu|n");printf(" +-+-+n");/*

15、case2*/void sc2()switch(sta)case 0:paint3(size);break;case 1:paint2(size);break;case 2:paint(size);break;case 3:paint1(size);break;case 4:paint5(size);break;case 5:paint4(size);break;default:doer();/*case3*/void sc3()switch(sta)case 0:paint2(size);break;case 1:paint3(size);break;case 2:paint1(size);

16、break;case 3:paint(size);break;case 4:paint5(size);break;case 5:paint4(size);break;default:doer();/*case4*/void sc4()switch(sta)case 0:paint1(size);break;case 1:paint(size);break;case 2:paint3(size);break;case 3:paint2(size);break;case 4:paint5(size);break;case 5:paint4(size);break;default:doer();/*

17、case5*/void sc5()switch(sta)case 0:paint4(size);break;case 1:paint5(size);break;case 2:subtitle(); cpaint4(size); sta=2;cancopy=1; doer();case 3:subtitle();cpaint5(size); sta=3;cancopy=1; doer();case 4:paint4(size);break;case 5:paint5(size);break;default:doer();/*case6*/void sc6()switch(sta)case 0:p

18、aint(size);break;case 1:paint1(size);break;case 2:paint2(size);break;case 3:paint3(size);break;case 4:paint(size);break;case 5:paint1(size);break;default:doer();/*case7*/void sc7()if(cancopy=0)doer();elselocx=2*c*(2*size-1)+1;locy=11;switch(sta)case 0:copy(size);c+;sta=0;doer();break;case 1:copy(size);c+;sta=1;doer();break;case 2:copy(size);c+;sta=2;doer();break;case 3:copy(size);c+;sta=3;doer();break;case 4:copy(size);c+;sta

温馨提示

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

评论

0/150

提交评论