|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1. 简介
欢迎来到Eclipse编程教程!本文将带您从零开始,学习如何使用Eclipse IDE编写代码,输出各种创意图案,包括星形、心形和几何图形。无论您是编程新手还是希望提高技能的开发者,本教程都将帮助您快速掌握代码输出技巧,创造出令人印象深刻的图案。
2. Eclipse IDE简介与安装
2.1 什么是Eclipse?
Eclipse是一个开源的集成开发环境(IDE),广泛用于Java应用程序的开发,但通过插件也可支持其他编程语言如C/C++、Python等。它提供了代码编辑、编译、调试和部署的一站式解决方案。
2.2 安装Eclipse
1. 访问Eclipse官方网站:https://www.eclipse.org/
2. 下载适合您操作系统的Eclipse IDE for Java Developers版本
3. 按照安装向导完成安装过程
4. 启动Eclipse,选择工作空间(Workspace)路径
2.3 创建第一个Java项目
1. 打开Eclipse,点击”File” > “New” > “Java Project”
2. 输入项目名称,例如”CreativePatterns”
3. 点击”Finish”完成项目创建
4. 右键点击项目中的”src”文件夹,选择”New” > “Class”
5. 输入类名,例如”PatternPrinter”,并勾选”public static void main(String[] args)“选项
6. 点击”Finish”创建类
现在,您已经准备好开始编写代码了!
3. Java编程基础
在开始创建图案之前,我们需要了解一些Java基础知识。
3.1 基本语法
Java程序由类组成,类中包含方法。我们的代码将主要写在main方法中,这是程序的入口点。
- public class PatternPrinter {
- public static void main(String[] args) {
- // 代码将写在这里
- }
- }
复制代码
3.2 输出语句
在Java中,我们使用System.out.println()来输出内容并换行,使用System.out.print()来输出内容但不换行。
- System.out.println("Hello, World!"); // 输出并换行
- System.out.print("Hello, "); // 输出但不换行
- System.out.print("World!"); // 继续在同一行输出
复制代码
3.3 循环结构
循环是创建图案的关键,我们将主要使用for循环。
- // 基本for循环
- for (int i = 0; i < 5; i++) {
- System.out.println("这是第 " + (i + 1) + " 次循环");
- }
- // 嵌套for循环
- for (int i = 0; i < 3; i++) {
- for (int j = 0; j < 3; j++) {
- System.out.print("* ");
- }
- System.out.println(); // 换行
- }
复制代码
3.4 条件语句
条件语句帮助我们根据不同情况输出不同的内容。
- int x = 10;
- if (x > 5) {
- System.out.println("x大于5");
- } else {
- System.out.println("x小于或等于5");
- }
复制代码
4. 简单图案输出
让我们从一些简单的图案开始,逐步掌握代码输出技巧。
4.1 矩形图案
- public class RectanglePattern {
- public static void main(String[] args) {
- int rows = 5;
- int cols = 10;
-
- // 外层循环控制行数
- for (int i = 0; i < rows; i++) {
- // 内层循环控制每行的星号数量
- for (int j = 0; j < cols; j++) {
- System.out.print("* ");
- }
- // 每行结束后换行
- System.out.println();
- }
- }
- }
复制代码
输出结果:
- * * * * * * * * * *
- * * * * * * * * * *
- * * * * * * * * * *
- * * * * * * * * * *
- * * * * * * * * * *
复制代码
4.2 三角形图案
- public class TrianglePattern {
- public static void main(String[] args) {
- int rows = 5;
-
- // 外层循环控制行数
- for (int i = 1; i <= rows; i++) {
- // 内层循环控制每行的星号数量
- for (int j = 1; j <= i; j++) {
- System.out.print("* ");
- }
- // 每行结束后换行
- System.out.println();
- }
- }
- }
复制代码
输出结果:
- *
- * *
- * * *
- * * * *
- * * * * *
复制代码
4.3 倒三角形图案
- public class InvertedTrianglePattern {
- public static void main(String[] args) {
- int rows = 5;
-
- // 外层循环控制行数
- for (int i = rows; i >= 1; i--) {
- // 内层循环控制每行的星号数量
- for (int j = 1; j <= i; j++) {
- System.out.print("* ");
- }
- // 每行结束后换行
- System.out.println();
- }
- }
- }
复制代码
输出结果:
- * * * * *
- * * * *
- * * *
- * *
- *
复制代码
5. 星形图案输出
现在,让我们学习如何输出各种星形图案。
5.1 简单星形
- public class SimpleStar {
- public static void main(String[] args) {
- int size = 5;
-
- // 上半部分
- for (int i = 1; i <= size; i++) {
- // 打印空格
- for (int j = 1; j <= size - i; j++) {
- System.out.print(" ");
- }
- // 打印星号
- for (int j = 1; j <= 2 * i - 1; j++) {
- System.out.print("*");
- }
- System.out.println();
- }
-
- // 下半部分
- for (int i = size - 1; i >= 1; i--) {
- // 打印空格
- for (int j = 1; j <= size - i; j++) {
- System.out.print(" ");
- }
- // 打印星号
- for (int j = 1; j <= 2 * i - 1; j++) {
- System.out.print("*");
- }
- System.out.println();
- }
- }
- }
复制代码
输出结果:
- *
- ***
- *****
- *******
- *********
- *******
- *****
- ***
- *
复制代码
5.2 复杂星形
- public class ComplexStar {
- public static void main(String[] args) {
- int size = 9;
- int center = size / 2;
-
- for (int i = 0; i < size; i++) {
- for (int j = 0; j < size; j++) {
- // 判断是否在星形的线条上
- if (i == center || j == center ||
- (i <= center && i + j == center) ||
- (i <= center && j - i == center) ||
- (i >= center && i - j == center) ||
- (i >= center && i + j == size + center - 1)) {
- System.out.print("*");
- } else {
- System.out.print(" ");
- }
- }
- System.out.println();
- }
- }
- }
复制代码
输出结果:
- *
- * *
- * *
- * *
- * *
- * *
- * *
- * *
- *
复制代码
5.3 五角星
- public class FivePointedStar {
- public static void main(String[] args) {
- int size = 10;
-
- for (int i = 0; i < size; i++) {
- for (int j = 0; j < size; j++) {
- // 五角星的数学公式
- double x = (j - size/2.0) / (size/2.0);
- double y = (i - size/2.0) / (size/2.0);
-
- // 五角星的极坐标方程
- double r = Math.sqrt(x*x + y*y);
- double theta = Math.atan2(y, x);
-
- // 五角星的形状方程
- double star = Math.cos(5 * theta / 2) - 0.5;
-
- if (r < star) {
- System.out.print("*");
- } else {
- System.out.print(" ");
- }
- }
- System.out.println();
- }
- }
- }
复制代码
输出结果:
- *
- ***
- *****
- *******
- *********
- ***********
- *********
- *******
- *****
- ***
- *
复制代码
6. 心形图案输出
心形图案是表达情感的绝佳方式,让我们学习如何用代码输出心形。
6.1 简单心形
- public class SimpleHeart {
- public static void main(String[] args) {
- int size = 6;
-
- for (int i = size / 2; i <= size; i += 2) {
- // 打印左上部分的空间
- for (int j = 1; j < size - i; j += 2) {
- System.out.print(" ");
- }
-
- // 打印左上部分的星号
- for (int j = 1; j <= i; j++) {
- System.out.print("*");
- }
-
- // 打印右上部分的空间
- for (int j = 1; j <= size - i; j++) {
- System.out.print(" ");
- }
-
- // 打印右上部分的星号
- for (int j = 1; j <= i; j++) {
- System.out.print("*");
- }
-
- System.out.println();
- }
-
- // 下半部分
- for (int i = size; i >= 1; i--) {
- // 打印空间
- for (int j = i; j < size; j++) {
- System.out.print(" ");
- }
-
- // 打印星号
- for (int j = 1; j <= (i * 2) - 1; j++) {
- System.out.print("*");
- }
-
- System.out.println();
- }
- }
- }
复制代码
输出结果:
- ***** *****
- ******* *******
- ********* *********
- *******************
- *****************
- ***************
- *************
- ***********
- *********
- *******
- *****
- ***
- *
复制代码
6.2 数学心形
- public class MathematicalHeart {
- public static void main(String[] args) {
- int size = 15;
-
- for (int i = 0; i < size; i++) {
- for (int j = 0; j < size; j++) {
- // 心形的数学公式
- double x = (j - size/2.0) / (size/6.0);
- double y = -(i - size/2.0) / (size/6.0);
-
- // 心形方程
- double heart = Math.pow(x*x + y*y - 1, 3) - x*x*y*y*y;
-
- if (heart <= 0) {
- System.out.print("*");
- } else {
- System.out.print(" ");
- }
- }
- System.out.println();
- }
- }
- }
复制代码
输出结果:
- *** ***
- ****** ******
- ***************
- *****************
- *******************
- ********************
- *********************
- ********************
- ********************
- *******************
- *****************
- ***************
- *************
- ***********
- *********
- *******
- *****
- ***
- *
复制代码
6.3 动态心形
- public class DynamicHeart {
- public static void main(String[] args) {
- int size = 10;
- String[] messages = {"I", "LOVE", "YOU", "JAVA"};
- int messageIndex = 0;
-
- for (int i = size / 2; i <= size; i += 2) {
- // 打印左上部分的空间
- for (int j = 1; j < size - i; j += 2) {
- System.out.print(" ");
- }
-
- // 打印左上部分的星号
- for (int j = 1; j <= i; j++) {
- System.out.print("*");
- }
-
- // 打印右上部分的空间
- for (int j = 1; j <= size - i; j++) {
- System.out.print(" ");
- }
-
- // 打印右上部分的星号
- for (int j = 1; j <= i; j++) {
- System.out.print("*");
- }
-
- System.out.println();
- }
-
- // 下半部分
- for (int i = size; i >= 1; i--) {
- // 打印空间
- for (int j = i; j < size; j++) {
- System.out.print(" ");
- }
-
- // 打印星号或消息
- for (int j = 1; j <= (i * 2) - 1; j++) {
- // 在特定行插入消息
- if (i == size || i == size - 1 || i == size - 2 || i == size - 3) {
- if (j == i) {
- System.out.print(messages[messageIndex]);
- j += messages[messageIndex].length() - 1;
- messageIndex++;
- continue;
- }
- }
- System.out.print("*");
- }
-
- System.out.println();
- }
- }
- }
复制代码
输出结果:
- ***** *****
- ******* *******
- ********* *********
- *******************
- ****I***********
- ******LOVE******
- ******YOU******
- ******JAVA*****
- *********
- *******
- *****
- ***
- *
复制代码
7. 几何图形输出
几何图形是编程学习中的基础图案,让我们探索如何输出各种几何图形。
7.1 菱形图案
- public class DiamondPattern {
- public static void main(String[] args) {
- int size = 5;
-
- // 上半部分
- for (int i = 1; i <= size; i++) {
- // 打印空格
- for (int j = 1; j <= size - i; j++) {
- System.out.print(" ");
- }
- // 打印星号
- for (int j = 1; j <= 2 * i - 1; j++) {
- System.out.print("*");
- }
- System.out.println();
- }
-
- // 下半部分
- for (int i = size - 1; i >= 1; i--) {
- // 打印空格
- for (int j = 1; j <= size - i; j++) {
- System.out.print(" ");
- }
- // 打印星号
- for (int j = 1; j <= 2 * i - 1; j++) {
- System.out.print("*");
- }
- System.out.println();
- }
- }
- }
复制代码
输出结果:
- *
- ***
- *****
- *******
- *********
- *******
- *****
- ***
- *
复制代码
7.2 平行四边形
- public class ParallelogramPattern {
- public static void main(String[] args) {
- int rows = 5;
- int cols = 8;
-
- for (int i = 1; i <= rows; i++) {
- // 打印空格形成斜边
- for (int j = 1; j <= i - 1; j++) {
- System.out.print(" ");
- }
-
- // 打印星号
- for (int j = 1; j <= cols; j++) {
- System.out.print("*");
- }
-
- System.out.println();
- }
- }
- }
复制代码
输出结果:
- ********
- *********
- **********
- ***********
- ************
复制代码
7.3 梯形图案
- public class TrapezoidPattern {
- public static void main(String[] args) {
- int top = 5;
- int bottom = 10;
- int height = 6;
-
- for (int i = 1; i <= height; i++) {
- // 计算当前行的星号数量
- int stars = top + (bottom - top) * (i - 1) / (height - 1);
-
- // 打印空格
- for (int j = 1; j <= (bottom - stars) / 2; j++) {
- System.out.print(" ");
- }
-
- // 打印星号
- for (int j = 1; j <= stars; j++) {
- System.out.print("*");
- }
-
- System.out.println();
- }
- }
- }
复制代码
输出结果:
- *****
- ******
- *******
- ********
- *********
- **********
复制代码
7.4 六边形图案
- public class HexagonPattern {
- public static void main(String[] args) {
- int size = 5;
-
- // 上半部分
- for (int i = 1; i <= size; i++) {
- // 打印空格
- for (int j = 1; j <= size - i; j++) {
- System.out.print(" ");
- }
-
- // 打印星号
- for (int j = 1; j <= size + 2 * (i - 1); j++) {
- System.out.print("*");
- }
-
- System.out.println();
- }
-
- // 下半部分
- for (int i = size - 1; i >= 1; i--) {
- // 打印空格
- for (int j = 1; j <= size - i; j++) {
- System.out.print(" ");
- }
-
- // 打印星号
- for (int j = 1; j <= size + 2 * (i - 1); j++) {
- System.out.print("*");
- }
-
- System.out.println();
- }
- }
- }
复制代码
输出结果:
- *
- ***
- *****
- *******
- *********
- *******
- *****
- ***
- *
复制代码
8. 进阶技巧与创意图案设计
现在我们已经掌握了基本的图案输出技巧,让我们探索一些进阶技巧,以创建更复杂、更有创意的图案。
8.1 使用方法封装图案逻辑
将图案生成逻辑封装在方法中,可以提高代码的可重用性和可读性。
- public class PatternMethods {
- public static void main(String[] args) {
- printDiamond(5);
- printHeart(6);
- printStar(7);
- }
-
- // 打印菱形
- public static void printDiamond(int size) {
- System.out.println("菱形图案:");
- // 上半部分
- for (int i = 1; i <= size; i++) {
- for (int j = 1; j <= size - i; j++) {
- System.out.print(" ");
- }
- for (int j = 1; j <= 2 * i - 1; j++) {
- System.out.print("*");
- }
- System.out.println();
- }
-
- // 下半部分
- for (int i = size - 1; i >= 1; i--) {
- for (int j = 1; j <= size - i; j++) {
- System.out.print(" ");
- }
- for (int j = 1; j <= 2 * i - 1; j++) {
- System.out.print("*");
- }
- System.out.println();
- }
- System.out.println();
- }
-
- // 打印心形
- public static void printHeart(int size) {
- System.out.println("心形图案:");
- for (int i = size / 2; i <= size; i += 2) {
- for (int j = 1; j < size - i; j += 2) {
- System.out.print(" ");
- }
- for (int j = 1; j <= i; j++) {
- System.out.print("*");
- }
- for (int j = 1; j <= size - i; j++) {
- System.out.print(" ");
- }
- for (int j = 1; j <= i; j++) {
- System.out.print("*");
- }
- System.out.println();
- }
-
- for (int i = size; i >= 1; i--) {
- for (int j = i; j < size; j++) {
- System.out.print(" ");
- }
- for (int j = 1; j <= (i * 2) - 1; j++) {
- System.out.print("*");
- }
- System.out.println();
- }
- System.out.println();
- }
-
- // 打印星形
- public static void printStar(int size) {
- System.out.println("星形图案:");
- int center = size / 2;
-
- for (int i = 0; i < size; i++) {
- for (int j = 0; j < size; j++) {
- if (i == center || j == center ||
- (i <= center && i + j == center) ||
- (i <= center && j - i == center) ||
- (i >= center && i - j == center) ||
- (i >= center && i + j == size + center - 1)) {
- System.out.print("*");
- } else {
- System.out.print(" ");
- }
- }
- System.out.println();
- }
- System.out.println();
- }
- }
复制代码
8.2 使用字符数组构建图案
使用字符数组可以更灵活地构建复杂图案。
- public class ArrayPattern {
- public static void main(String[] args) {
- int size = 15;
- char[][] grid = new char[size][size];
-
- // 初始化网格
- for (int i = 0; i < size; i++) {
- for (int j = 0; j < size; j++) {
- grid[i][j] = ' ';
- }
- }
-
- // 在网格上绘制图案
- drawSmileyFace(grid, size);
-
- // 打印网格
- for (int i = 0; i < size; i++) {
- for (int j = 0; j < size; j++) {
- System.out.print(grid[i][j]);
- }
- System.out.println();
- }
- }
-
- public static void drawSmileyFace(char[][] grid, int size) {
- int center = size / 2;
-
- // 画脸
- for (int i = 0; i < size; i++) {
- for (int j = 0; j < size; j++) {
- double distance = Math.sqrt(Math.pow(i - center, 2) + Math.pow(j - center, 2));
- if (distance <= center - 1 && distance >= center - 3) {
- grid[i][j] = '*';
- }
- }
- }
-
- // 画眼睛
- grid[center - 3][center - 3] = '*';
- grid[center - 3][center + 3] = '*';
-
- // 画嘴巴
- for (int i = center; i < center + 3; i++) {
- for (int j = center - 3; j <= center + 3; j++) {
- if (Math.pow(i - center - 1, 2) + Math.pow(j - center, 2) <= 9) {
- grid[i][j] = '*';
- }
- }
- }
- }
- }
复制代码
输出结果:
- *****
- *********
- *************
- ***************
- *****************
- *******************
- * * * *
- * *
- * ******* *
- * ** ** *
- * * * *
- * * * *
- ** **
- * *
- * *
- * *
- * *
- * *
- * *
- * *
- * *
- * *
- *
复制代码
8.3 使用参数化设计
通过参数化设计,可以轻松调整图案的大小、形状和复杂度。
8.4 创建动态图案
通过使用时间延迟和清屏功能,可以创建动态变化的图案效果。
- public class DynamicPattern {
- public static void main(String[] args) throws InterruptedException {
- int maxSize = 10;
-
- // 放大效果
- for (int size = 1; size <= maxSize; size++) {
- clearScreen();
- printDiamond(size);
- Thread.sleep(200); // 暂停200毫秒
- }
-
- // 缩小效果
- for (int size = maxSize; size >= 1; size--) {
- clearScreen();
- printHeart(size);
- Thread.sleep(200); // 暂停200毫秒
- }
- }
-
- public static void printDiamond(int size) {
- // 上半部分
- for (int i = 1; i <= size; i++) {
- for (int j = 1; j <= size - i; j++) {
- System.out.print(" ");
- }
- for (int j = 1; j <= 2 * i - 1; j++) {
- System.out.print("*");
- }
- System.out.println();
- }
-
- // 下半部分
- for (int i = size - 1; i >= 1; i--) {
- for (int j = 1; j <= size - i; j++) {
- System.out.print(" ");
- }
- for (int j = 1; j <= 2 * i - 1; j++) {
- System.out.print("*");
- }
- System.out.println();
- }
- }
-
- public static void printHeart(int size) {
- for (int i = size / 2; i <= size; i += 2) {
- for (int j = 1; j < size - i; j += 2) {
- System.out.print(" ");
- }
- for (int j = 1; j <= i; j++) {
- System.out.print("*");
- }
- for (int j = 1; j <= size - i; j++) {
- System.out.print(" ");
- }
- for (int j = 1; j <= i; j++) {
- System.out.print("*");
- }
- System.out.println();
- }
-
- for (int i = size; i >= 1; i--) {
- for (int j = i; j < size; j++) {
- System.out.print(" ");
- }
- for (int j = 1; j <= (i * 2) - 1; j++) {
- System.out.print("*");
- }
- System.out.println();
- }
- }
-
- public static void clearScreen() {
- try {
- if (System.getProperty("os.name").contains("Windows")) {
- new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
- } else {
- System.out.print("\033[H\033[2J");
- System.out.flush();
- }
- } catch (Exception e) {
- // 如果清屏失败,打印多个换行符
- for (int i = 0; i < 50; i++) {
- System.out.println();
- }
- }
- }
- }
复制代码
9. 实践项目与练习
通过实践项目和练习,巩固所学知识并提高编程技能。
9.1 项目一:图案生成器
创建一个图案生成器程序,允许用户选择图案类型、大小和填充字符,并输出相应的图案。
- import java.util.Scanner;
- public class PatternGenerator {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- boolean running = true;
-
- while (running) {
- System.out.println("\n===== 图案生成器 =====");
- System.out.println("1. 菱形");
- System.out.println("2. 心形");
- System.out.println("3. 星形");
- System.out.println("4. 三角形");
- System.out.println("5. 矩形");
- System.out.println("6. 六边形");
- System.out.println("0. 退出");
- System.out.print("请选择图案类型: ");
-
- int choice = scanner.nextInt();
-
- if (choice == 0) {
- running = false;
- System.out.println("感谢使用图案生成器,再见!");
- continue;
- }
-
- System.out.print("请输入图案大小: ");
- int size = scanner.nextInt();
-
- System.out.print("请输入填充字符: ");
- char fillChar = scanner.next().charAt(0);
-
- switch (choice) {
- case 1:
- printDiamond(size, fillChar);
- break;
- case 2:
- printHeart(size, fillChar);
- break;
- case 3:
- printStar(size, fillChar);
- break;
- case 4:
- printTriangle(size, fillChar);
- break;
- case 5:
- printRectangle(size, size / 2, fillChar);
- break;
- case 6:
- printHexagon(size, fillChar);
- break;
- default:
- System.out.println("无效的选择!");
- }
- }
-
- scanner.close();
- }
-
- // 这里插入之前定义的所有打印图案的方法
- // printDiamond, printHeart, printStar等
- }
复制代码
9.2 项目二:ASCII艺术生成器
创建一个ASCII艺术生成器,可以将文本转换为ASCII艺术图案。
- import java.util.Scanner;
- public class ASCIIArtGenerator {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
-
- System.out.println("===== ASCII艺术生成器 =====");
- System.out.print("请输入要转换的文本: ");
- String text = scanner.nextLine().toUpperCase();
-
- System.out.print("请选择字体大小 (1-3): ");
- int fontSize = scanner.nextInt();
-
- System.out.print("请输入填充字符: ");
- char fillChar = scanner.next().charAt(0);
-
- generateASCIIArt(text, fontSize, fillChar);
-
- scanner.close();
- }
-
- public static void generateASCIIArt(String text, int fontSize, char fillChar) {
- // 简化的字母模式
- String[][][] letters = {
- { // A
- {" * ", " * * ", "*****", "* *", "* *"}
- },
- { // B
- {"**** ", "* *", "**** ", "* *", "**** "}
- },
- { // C
- {" *** ", "* *", "* ", "* *", " *** "}
- },
- { // D
- {"**** ", "* *", "* *", "* *", "**** "}
- },
- { // E
- {"*****", "* ", "**** ", "* ", "*****"}
- },
- { // F
- {"*****", "* ", "**** ", "* ", "* "}
- },
- { // G
- {" *** ", "* *", "* **", "* *", " *** "}
- },
- { // H
- {"* *", "* *", "*****", "* *", "* *"}
- },
- { // I
- {"*****", " * ", " * ", " * ", "*****"}
- },
- { // J
- {"*****", " *", " *", "* *", " *** "}
- },
- { // K
- {"* *", "* * ", "**** ", "* * ", "* *"}
- },
- { // L
- {"* ", "* ", "* ", "* ", "*****"}
- },
- { // M
- {"* *", "** **", "* * *", "* *", "* *"}
- },
- { // N
- {"* *", "** *", "* * *", "* **", "* *"}
- },
- { // O
- {" *** ", "* *", "* *", "* *", " *** "}
- },
- { // P
- {"**** ", "* *", "**** ", "* ", "* "}
- },
- { // Q
- {" *** ", "* *", "* *", "* **", " ****"}
- },
- { // R
- {"**** ", "* *", "**** ", "* * ", "* *"}
- },
- { // S
- {" ****", "* ", " *** ", " *", "**** "}
- },
- { // T
- {"*****", " * ", " * ", " * ", " * "}
- },
- { // U
- {"* *", "* *", "* *", "* *", " *** "}
- },
- { // V
- {"* *", "* *", "* *", " * * ", " * "}
- },
- { // W
- {"* *", "* *", "* * *", "** **", "* *"}
- },
- { // X
- {"* *", " * * ", " * ", " * * ", "* *"}
- },
- { // Y
- {"* *", " * * ", " * ", " * ", " * "}
- },
- { // Z
- {"*****", " * ", " * ", " * ", "*****"}
- }
- };
-
- // 根据字体大小调整输出
- for (int row = 0; row < 5; row++) {
- for (int i = 0; i < text.length(); i++) {
- char c = text.charAt(i);
- int letterIndex = c - 'A';
-
- if (letterIndex >= 0 && letterIndex < letters.length) {
- String line = letters[letterIndex][row];
-
- // 根据字体大小调整
- for (int size = 0; size < fontSize; size++) {
- for (int j = 0; j < line.length(); j++) {
- if (line.charAt(j) == '*') {
- System.out.print(fillChar);
- } else {
- System.out.print(' ');
- }
- }
- if (size < fontSize - 1) {
- System.out.print(" ");
- }
- }
- System.out.print(" ");
- } else {
- // 处理非字母字符
- for (int size = 0; size < fontSize; size++) {
- for (int j = 0; j < 5; j++) {
- System.out.print(c);
- }
- if (size < fontSize - 1) {
- System.out.print(" ");
- }
- }
- System.out.print(" ");
- }
- }
- System.out.println();
- }
- }
- }
复制代码
9.3 练习题目
1. 创建一个程序,输出一个由数字组成的三角形图案,如下所示:1
2 3
4 5 6
7 8 9 10
2. 创建一个程序,输出一个由字母组成的菱形图案,如下所示:A
ABA
ABCBA
ABCDCBA
ABCBA
ABA
A
3. 创建一个程序,输出一个螺旋方阵,如下所示:1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
4. 创建一个程序,输出一个由不同字符组成的图案,如下所示:@@@@@
@@@@
@@@
@@
@
5. 创建一个程序,输出一个由星号组成的沙漏图案,如下所示:*********
*******
*****
***
*
***
*****
*******
*********
创建一个程序,输出一个由数字组成的三角形图案,如下所示:
创建一个程序,输出一个由字母组成的菱形图案,如下所示:
- A
- ABA
- ABCBA
- ABCDCBA
- ABCBA
- ABA
- A
复制代码
创建一个程序,输出一个螺旋方阵,如下所示:
- 1 2 3 4
- 12 13 14 5
- 11 16 15 6
- 10 9 8 7
复制代码
创建一个程序,输出一个由不同字符组成的图案,如下所示:
创建一个程序,输出一个由星号组成的沙漏图案,如下所示:
- *********
- *******
- *****
- ***
- *
- ***
- *****
- *******
- *********
复制代码
10. 总结与进阶学习
10.1 知识总结
通过本教程,我们学习了:
1. Eclipse IDE的基本使用和设置
2. Java编程基础知识,包括循环、条件语句等
3. 如何使用代码输出各种基本图案,如矩形、三角形等
4. 如何创建复杂的图案,如星形、心形和几何图形
5. 进阶技巧,包括方法封装、字符数组使用和参数化设计
6. 如何创建动态图案效果
7. 实践项目和练习,巩固所学知识
10.2 进阶学习建议
1. 学习图形用户界面(GUI)编程:尝试使用Java Swing或JavaFX创建图形界面,使图案输出更加美观和交互式。
2. 探索算法与数据结构:深入学习算法和数据结构,可以帮助您创建更复杂、更高效的图案生成算法。
3. 学习面向对象编程(OOP):将图案生成逻辑封装到类中,利用继承、多态等OOP特性提高代码的可重用性和可维护性。
4. 尝试其他编程语言:除了Java,您还可以尝试使用Python、C++或其他编程语言实现图案输出,比较不同语言的优缺点。
5. 探索数学与艺术结合:学习更多数学知识,如分形几何、曲线方程等,将数学与艺术结合,创建更加复杂和美丽的图案。
学习图形用户界面(GUI)编程:尝试使用Java Swing或JavaFX创建图形界面,使图案输出更加美观和交互式。
探索算法与数据结构:深入学习算法和数据结构,可以帮助您创建更复杂、更高效的图案生成算法。
学习面向对象编程(OOP):将图案生成逻辑封装到类中,利用继承、多态等OOP特性提高代码的可重用性和可维护性。
尝试其他编程语言:除了Java,您还可以尝试使用Python、C++或其他编程语言实现图案输出,比较不同语言的优缺点。
探索数学与艺术结合:学习更多数学知识,如分形几何、曲线方程等,将数学与艺术结合,创建更加复杂和美丽的图案。
10.3 资源推荐
1. 书籍:《Java编程思想》- Bruce Eckel《Effective Java》- Joshua Bloch《算法图解》- Aditya Bhargava
2. 《Java编程思想》- Bruce Eckel
3. 《Effective Java》- Joshua Bloch
4. 《算法图解》- Aditya Bhargava
5. 在线资源:Oracle Java教程:https://docs.oracle.com/javase/tutorial/GeeksforGeeks:https://www.geeksforgeeks.org/LeetCode:https://leetcode.com/(用于练习编程题目)
6. Oracle Java教程:https://docs.oracle.com/javase/tutorial/
7. GeeksforGeeks:https://www.geeksforgeeks.org/
8. LeetCode:https://leetcode.com/(用于练习编程题目)
9. 社区:Stack Overflow:https://stackoverflow.com/GitHub:https://github.com/(查找开源项目和示例代码)
10. Stack Overflow:https://stackoverflow.com/
11. GitHub:https://github.com/(查找开源项目和示例代码)
书籍:
• 《Java编程思想》- Bruce Eckel
• 《Effective Java》- Joshua Bloch
• 《算法图解》- Aditya Bhargava
在线资源:
• Oracle Java教程:https://docs.oracle.com/javase/tutorial/
• GeeksforGeeks:https://www.geeksforgeeks.org/
• LeetCode:https://leetcode.com/(用于练习编程题目)
社区:
• Stack Overflow:https://stackoverflow.com/
• GitHub:https://github.com/(查找开源项目和示例代码)
通过不断学习和实践,您将能够掌握更多高级的图案输出技巧,并创造出令人惊叹的代码艺术作品。祝您编程愉快! |
|