实现用"*"表示不同几何图形的实心和空心

我当年学习的代码总结,好青涩,特此分享,测试都好着哦。

/**
 * 作者:打不死的小强(Cockroach_Ge)
 * 时间:2014-7-21 21:24
   功能:实现用"*"表示不同几何图形的实心和空心
   参数:1、输入对应图形编号:bh 2、输入相应图形的层数:layer
     3、共有14种图形        4、有效代码量共计:264行
   用户指南:@1:运行程序后,进入主界面
        @2: 用户输入对应图形的编号,可进入求对应图形的方法体内
        @3:接着输入随意的图形层数,回车可显示对应几何图形的实心和空心
 */
package com.jinzhi.FirstWork;
import java.util.*;
public class PrintXingXing {
    public static void main(String[] args) {
        GeZhongXingXing tx = new GeZhongXingXing();
        Scanner sz = new Scanner(System.in);
        System.out.println("请输入:1、三角形 2、平行四边形 3、菱形 4、退出!");
        int bh = sz.nextInt();
            switch (bh) {
            case 1:
                tx.SanJiao();
                break;
            case 2:
                tx.PingXing();
                break;
            case 3:
                tx.LingXing();
                break;
            case 4:
                break;
            default:
            }
        sz.close();
    }
}
class GeZhongXingXing {
    int i, j, k;
    void SanJiao() {
    Scanner s = new Scanner(System.in);
    System.out.print("请输入层数:");
    int layer = s.nextInt();
    System.out.println("左上直角三角形:");
    //外层代表行,内层代表列
    for(i = 0; i < layer; i++) {
        for(j = 0; j < (2 * i) + 1; j++) {
            System.out.print("*");//注意这个错误,找得好苦啊!
        }
        System.out.println();
    }
    System.out.println("左上直角空心三角形:");
    for(i = 0; i < layer; i++) {
        for(j = 0; j < (2 * i) + 1; j++) {
            if(i == (layer - 1)) {//打印最后一行
                System.out.print("*");//注意这个错误,找得好苦啊!
            }else {
                if(j == 0 || j == (2 * i)) {
                    System.out.print("*");
            }else {
                    System.out.print(" ");
                    }
            }
        }
        System.out.println();
    }
    System.out.println("右下直角三角形:");
    for(i = 0; i < layer; i++) {
        for(k = 0; k < (2 * i); k++) {
            System.out.print(" ");
        }
        for(j = 0; j < (((2 * layer) - 1) - (2 * i)); j++) {
            System.out.print("*");
        }
        System.out.println();
        }
    System.out.println("右下直角空心三角形:");
    for(i = 0; i < layer; i++) {
        for(k = 0; k < (2 * i); k++) {
            System.out.print(" ");
        }
        for(j = 0; j < (((2 * layer) - 1) - (2 * i)); j++) {
            if(i == 0) {//第一行
                System.out.print("*");
            }else {
                if(j == 0 || j == ((((2 * layer) - 1) - (2 * i))) - 1) {
                    System.out.print("*");
                }else {
                    System.out.print(" ");
                }
                    }
            }
        System.out.println();
        }
    System.out.println("正的等腰三角形:");
    for(i = 0; i < layer; i++) {
        for(k = 0; k < (layer - 1 - i); k++) {
            System.out.print(" ");
        }
        for(j = 0; j < (2 * i) + 1; j++) {
            System.out.print("*");
        }
        System.out.println();
    }
    System.out.println("正的空心等腰三角形:");
    for(i = 0; i < layer; i++){
        for(k = 0; k < (layer - 1 - i); k++){
            System.out.print(" ");
        }
        for(j = 0; j < (2 * i) + 1; j++){
            if(i == 0 || i == (layer - 1)){
                System.out.print("*");
            }else{
                if(j == 0 || j == ((2 * i))){
                    System.out.print("*");
                }else{
                    System.out.print(" ");
                }
            }
        }
        System.out.println();
    }
    System.out.println("倒的等腰直角三角形:");
    for(i = 0; i < layer; i++) {
        for(k = 0; k < i; k++) {
            System.out.print(" ");
        }
        for(j = 0; j < ((2 * layer) - 1)- (2 * i); j++) {
            System.out.print("*");
        }
        System.out.println();
    }
    System.out.println("倒的等腰直角空心三角形:");
    for(i = 0; i < layer; i++) {
        for(k = 0; k < i; k++) {
            System.out.print(" ");
        }
        for(j = 0; j < ((2 * layer) - 1)- (2 * i); j++) {
            if(i == 0) {
                System.out.print("*");
            }else {
                if(j == 0 || j == (((2 * layer) - 1)- (2 * i)) - 1) {
                    System.out.print("*");
                }else {
                    System.out.print(" ");
                }
            }
        }
        System.out.println();
    }
    s.close();
    }
    void PingXing() {
        Scanner s = new Scanner(System.in);
        System.out.print("请输入层数:");
        int layer = s.nextInt();
        System.out.println("向左斜的平行四边形:");
        for(i = 0; i < layer; i++) {
            for(k = 0; k < i; k++) {
                System.out.print(" ");
            }
            for(j = 0; j < ((2 * layer) - 1); j++) {
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println("向左斜的空心平行四边形:");
        for(i = 0; i < layer; i++) {
            for(k = 0; k < i; k++) {
                System.out.print(" ");
            }
            for(j = 0; j < (2 * layer) - 1; j++) {
                if(i == 0 || i == (layer - 1)) {
                    System.out.print("*");
                }else {
                    if(j == 0 || j == (2 * layer) - 2) {
                        System.out.print("*");
                    }else {
                        System.out.print(" ");
                    }
                }
            }
            System.out.println();
        }
        System.out.println("向右斜的平行四边形:");
        for(i = 0; i < layer; i++) {
            for(k = 0; k < layer - i; k++) {
                System.out.print(" ");;
            }
            for(j = 0; j < (2 * layer) - 1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println("向右斜的空心平行四边形:");
        for(i = 0; i < layer; i++) {
            for(k = 0; k < layer - i; k++) {
                System.out.print(" ");;
            }
            for(j = 0; j < (2 * layer) - 1; j++) {
                if(i == 0 || i == (layer - 1)) {
                    System.out.print("*");
                }else {
                    if(j == 0 || j == ((2 * layer) - 1) - 1) {
                        System.out.print("*");
                    }else {
                        System.out.print(" ");
                    }
                }
            }
            System.out.println();
        }
        s.close();
    }
    void LingXing() {
        Scanner s = new Scanner(System.in);
        System.out.print("请输入层数:");
        int layer = s.nextInt();
        System.out.println("实心菱形");
        for(i = 0; i < layer; i++) {
            for(k = 0; k < (layer - 1 - i); k++){
                System.out.print(" ");
            }
            for(j = 0; j < (2 * i) + 1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
        for(i = 0; i < layer - 1; i++) {
            for(k = 0; k < (i + 1); k++) {
                System.out.print(" ");
            }
            for(j = 0; j < ((2 * layer) - 3) - (2 * i); j++) {
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println("空心菱形");
        for(i = 0; i < layer; i++){
            for(k = 0; k < (layer - 1 - i); k++){
                System.out.print(" ");
            }
            for(j = 0; j < (2 * i) + 1; j++){
                    if(j == 0 || j == (2 * i)){//这里着重变化了
                        System.out.print("*");
                    }else{
                        System.out.print(" ");
                    }
                }
            System.out.println();
            }
        for(i = 0; i < layer - 1; i++) {
            for(k = 0; k < (i + 1); k++) {
                System.out.print(" ");
            }
            for(j = 0; j < ((2 * layer) - 3) - (2 * i); j++) {
                    if(j == 0 || j == ((((2 * layer) - 3) - (2 * i))- 1)) {//这里也是,和打印空心三角形不一样
                        System.out.print("*");
                    }else {
                        System.out.print(" ");
                    }
                }
            System.out.println();
            }
        s.close();
    }
}

 

转载于:https://www.cnblogs.com/gqs92/p/6778156.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值