zoukankan      html  css  js  c++  java
  • 实现用"*"表示不同几何图形的实心和空心

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

    /**
     * 作者:打不死的小强(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();
        }
    }
  • 相关阅读:
    Oracle Hint的用法
    利用flashback transaction query新特性进行事务撤销
    存储的一些基本概念(HBA,LUN)
    SAN和NAS
    SAN (Storage Attached Network),即存储区域网络
    深入浅出谈存储之NAS是什么
    对于NAS,IP SAN以及iSCSCI SAN存储的一些认识和理解
    Oracle的体系结构
    利用360免费wifi搭建局域网让他人访问Oracle数据库
    杭电ACM id:3783
  • 原文地址:https://www.cnblogs.com/gqs92/p/6778156.html
Copyright © 2011-2022 走看看