Loading...
墨滴

ly010205

2021/06/06  阅读:20  主题:默认主题

编程小题001

每天学习一个Java小编程,每天进步一点点。什么一万小时定律,先敲个一万行代码再说。

变幻多姿的图表

  • 金字塔
  • 九九乘法表
  • 余弦函数

金字塔

实现如图所示的样式 以4层为例,首先需要一个外循环来遍历行数,在每一行又需要一个内循环来遍历的输出每一行的内容。发现每一行输出的规律:每一行的空格数为金字塔层数-所在的行数。星号的个数为行数*2-1。

import java.util.Scanner;
/**
 * 金字塔图案
 */
public class Ch1_1 {
public static void main(String[] args) {
 int i,j,k,n;
 Scanner input = new Scanner(System.in);
 System.out.println("请输入金子塔层数:");
 n=input.nextInt();
 for( i=1;i<=n;i++){//遍历行数
  for(j=1;j<=n-i;j++){//每一行输出空格
   System.out.print(" ");
  }
  for(k=1;k<=2*i-1;k++){//每一行输出*
   System.out.print("*");
  }
  System.out.print("\n");
 }
}
}

九九乘法表

方法类似,需要一个外循环遍历行数,一个内循环遍历行数。

public class Ch1_2 {
 /**
  * 九九乘法表
  */
 public static void main(String[] args) {
  for(int i=1;i<10;i++){//一共9行
   for(int j=1;j<=i;j++){每一行的列数都是与行数一样
    System.out.print(" "+i+"*"+j+"="+(i*j));
   }//每一行的内容
   System.out.println();//换行
  }
 }
}

余弦函数

余弦函数是画出来的,现实生活中画画都需要画布和一个画板,这里需要创建窗体以及加在窗体上的面板,其次是需要一个画笔。 首先新建一个窗体:

package day11_10;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class JFrameTest {
 /**
  * 创建一个800 X  400的窗体,并设置背景颜色
  */
 public static void main(String[] args) {
  // 1.创建一个窗体(JFrame)的对象。frame
  JFrame frame = new JFrame();
  //3.设置窗体的宽高为800 * 400px
  frame.setSize(800,400);
  //4.设置窗体的坐标位置居中
  frame.setLocationRelativeTo(null);
  //5.设置默认关闭按钮功能(关闭界面的同时结束程序)
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  //6.设置窗体的大小不可被更改
  frame.setResizable(false);
  //7.取消窗体的边框
  frame.setUndecorated(true);
  //8.设置窗体的背景颜色
        //frame.setBackground(Color.BLACK);*/  
  //创建一个面板对象panel
  JPanel panel = new JPanel ();
  panel.setBackground(new Color(25,5,255));
  frame.add(panel);
  //2.设置窗体可见
  frame.setVisible(true);
 }
}

这是一般新建窗体的办法.但是这一次使用是构造函数的方法,在方法内创建窗体,在main函数类调用此方法。新建面板使用内部类在窗体类创建面板。 g.drawString(1,2,3),1是指画画的内容,2是指x的坐标,3是指y的坐标。

package day6_3;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Ch1_3 extends JFrame{//继承
 class Ch1_3panel extends JPanel{ 
 int x,y;
 public void paint(Graphics g){
  super.paint(g);//画笔
  //画x轴,y轴;在计算机中y轴的正方向是向下的
  for(x=0;x<=750;x++){
   g.drawString(".", x, 200);始终以x为原点,画出x轴
   if(x<=385)g.drawString(".", 360, x);
  }
  g.drawString("Y", 330, 20);
  //画y轴箭头
  for(x=360;x<=370;x++){
   g.drawString(".", x-10, 370-x);
   g.drawString(".", x, x-355);
  }
  //画x轴箭头
  g.drawString("X", 735, 230);
  for(x=740;x<=750;x++){
   g.drawString(".", x, x-550);//与x轴成45°上方曲线
   g.drawString(".", x, 950-x);//与x轴成45°下方曲线
  }
  //画cos()曲线
  for(x=0;x<=750;x++){
   double a= Math.cos(x*Math.PI/180+Math.PI);
   y=(int)(200+80*a);
   g.drawString(".", x, y);
  }
 } 
 }
 public Ch1_3(){//构造方法创建窗体
  Ch1_3panel panel = new Ch1_3panel();
  panel.setBackground(Color.LIGHT_GRAY);
  this.add(panel);
  this.setSize(900,800);
  this.setLocationRelativeTo(null);
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  this.setVisible(true);
 }
 public static void main(String[] args) {
  new Ch1_3();//调用构造方法
 }
}

ly010205

2021/06/06  阅读:20  主题:默认主题

作者介绍

ly010205