Java趣味编程100例.doc

上传人:hw****26 文档编号:3137478 上传时间:2019-05-22 格式:DOC 页数:21 大小:370KB
下载 相关 举报
Java趣味编程100例.doc_第1页
第1页 / 共21页
Java趣味编程100例.doc_第2页
第2页 / 共21页
Java趣味编程100例.doc_第3页
第3页 / 共21页
Java趣味编程100例.doc_第4页
第4页 / 共21页
Java趣味编程100例.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、第 1 章 变幻多姿的图表图表简洁直观,在各种场合得到广泛应用,给人以很强的视觉冲击,经常让人难以忘怀。我们的程序中如果能够灵活地应用图表,一定能给我们的程序增色不少。本章将带你进入变换多姿的图表世界,体会图表编程带来的乐趣。1.1 金字塔图案1问题描述打印出金字塔图案,如图 1.1 所示。2问题分析这个问题是一个很经典的循环应用的题目。我们都知道,打印输出的时候,都是从最左端输出,而这里,第一个星号是在中间。这实际是因为星号之前有很多空格。当我们使用问号来表示空格,实际的输出效果应该是图 1.2 的形式。图 1.1 金字塔 图 1.2 金字塔的分析图从图 1.2 分析,我们就可以发现这个题目

2、的奥秘了。(1)确定程序框架从图 1.2 中,我们可以发现,一共需要打印 5 行,而每一行都是打印几个空格,然后再打印几个星号。这样我们就可以写出程序框架了。程序框架代码如下:public class Ch1_1 public static void main(String args) *for(i=1;i余弦曲线测试width=900height=600(6)运行结果把 Ch1_3.java 文件编译后的 Ch1_3.class 文件放到 Ch1_3.html 网页同一目录下,直接用 IE 浏览器打开 Ch1_3.html,运行程序,结果如图 1.6 所示。3扩展训练前面介绍的余弦曲线的绘制

3、,我们看到的是一个完整的静态图形,能否动态地展现绘制的过程?答案是肯定的,我们可以采用线程的方式来实现,参考代码如下:import java.applet.Applet;import java.awt.Color;import java.awt.Graphics;public class donghua_cos extends Applet implements Runnable/通过实现 Runnable 接口实现线程操作int x,y;double a;int xpos=0;Thread runner;boolean painted=false;public void init() /Ap

4、plet 创建即启动执行,坐标初始化/ TODO Auto-generated method stubGraphics g=getGraphics(); /画画之前,必须先取得画笔for(x=0;x=750;x+=1) /画 x 轴g.drawString(“,x,200);if(x=385) g.drawString(“,360,x);g.drawString(“Y“,330,20); /画 y 轴for(x=360;x=370;x+=1) /画 y 轴箭头第 1 章 变幻多姿的图表9g.drawString(“,x-10,375-x);g.drawString(“,x,x-355);g.d

5、rawString(“X“,735,230);for(x=740;x=750;x+=1) /画 x 轴箭头g.drawString(“,x,x-550);g.drawString(“,x,950-x);public void start() /Applet 创建后自启动方法/ TODO Auto-generated method stubif(runner=null)runner=new Thread(this); /通过 Thread 类来启动 Runnablerunner.start(); /线程启动public void stop() /Applet 生命周期结束后自启动方法/ TODO

6、 Auto-generated method stubif(runner!=null)runner=null; /结束线程public void run() /线程运行方法/ TODO Auto-generated method stubwhile(true)for(xpos=0;xpos900-90;xpos+=3) /循环设置曲线 x 轴坐标边界repaint(); /调用 paint()方法tryThread.sleep(100); /线程休息 100 毫秒catch(InterruptedException e)if(painted)painted=false;public void

7、paint(Graphics g) /画图方法for(x=0;x=xpos;x+=1) /循环画曲线a=Math.cos(x*Math. PI/180+Math.PI);y=(int)(200+80*a); /放大 80 倍并向下平移 200 个像素g.drawString(“,x,y);Java 趣味编程 100 例10painted=true;1.4 奥运五环旗1问题描述在屏幕上画出奥运五环旗,如图 1.7 所示。2问题分析观察奥运五环旗的图案,直观的感觉,由五个圆组成,每个圆的颜色不一样,大小一样,按照一定的位置摆放,找到圆心坐标的规律,就可以通过 Graphics 类提供的绘制椭圆的方

8、法drawOval()来实现画圆操作。(1)确定程序框架奥运五环旗由五个不同颜色的圆组成,我们可以通过循环依次输出五个圆环。控制台不方便输出图形,这里以 Applet 形式输出。这样我们就可以写出程序框架了,代码如下:public class Ch1_4_3 extends Applet /简单实用为主/paint()方法是由浏览器调用的。每当 Applet 需要刷新的时候都会调用该方法public void paint(Graphics g)for(int i=0;i5;i+)/设置当前圆的颜色/根据圆心坐标画出当前圆(2)圆环的坐标分析分析出圆的圆心坐标是画图的关键,对照图 1.8 标示,分析圆的位置规律。图 1.7 奥运五环旗O

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。