其實(shí)就是程序設(shè)計(jì)的流程圖,用于應(yīng)用程序開發(fā)的藍(lán)本,隨便找個(gè)流程圖看看就明白是什么意思了
創(chuàng)新互聯(lián)建站始終堅(jiān)持【策劃先行,效果至上】的經(jīng)營(yíng)理念,通過(guò)多達(dá)10多年累計(jì)超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的全網(wǎng)營(yíng)銷推廣解決方案,現(xiàn)已廣泛運(yùn)用于各行各業(yè)的客戶,其中包括:社區(qū)文化墻等企業(yè),備受客戶贊揚(yáng)。
說(shuō)不太能說(shuō)的明白,類似于棋譜一類的東西,上一步走什么,下一步走什么
;ct=201326592cl=2lm=-1fr=ala0fmq=pv=ic=0z=0se=1showtab=0fb=0width=height=face=0word=java+%B3%CC%D0%F2%C9%E8%BC%C6%C1%F7%B3%CC%CD%BCs=0#width=height=z=0fb=0ic=0lm=-1face=0
在百度圖片搜索
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Drawing extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
// 實(shí)例化一個(gè)文本域
JTextField tf = new JTextField();
// 設(shè)置兩個(gè)按鈕
JButton b1 = new JButton("開始");
JButton b2 = new JButton("停止");
boolean isGo = false;
public Drawing() {
b1.setActionCommand("start");// 在開始按鈕上設(shè)置一個(gè)動(dòng)作監(jiān)聽 start
JPanel p = new JPanel();// 創(chuàng)建一個(gè)面板容器,用于放置組件
// 將兩個(gè)按鈕添加到可視化容器上面,用add方法
p.add(b1);
p.add(b2);
// 在兩個(gè)按鈕上增加監(jiān)聽的屬性,自動(dòng)調(diào)用下面的監(jiān)聽處理方法actionPerformed(ActionEvent
// e),如果要代碼有更好的可讀性,可用內(nèi)部類實(shí)現(xiàn)動(dòng)作
// 監(jiān)聽處理。
b1.addActionListener(this);
b2.addActionListener(this);
// 將停止按鈕設(shè)置為不可編輯(即不可按的狀態(tài))
b2.setEnabled(false);
// 將上面的文本域放在面板的北方,也就是上面(上北下南左西右東)
this.getContentPane().add(tf, "North");
// 將可視化容器pannel放在南邊,也就是下面
this.getContentPane().add(p, "South");
// 設(shè)置用戶在此窗體上發(fā)起"close"時(shí)默認(rèn)執(zhí)行的操作,參數(shù)EXIT_ON_CLOSE是使用
// System exit方法退出應(yīng)用程序。僅在應(yīng)用程序中使用
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(300, 200);// 設(shè)置面板大小,寬和高
this.setLocation(300, 300);// 設(shè)置面板剛開始的出現(xiàn)的位置
// 用指定名稱創(chuàng)建一個(gè)新的定制光標(biāo)對(duì)象,參數(shù)表示手狀光標(biāo)類型
Cursor cu = new Cursor(Cursor.HAND_CURSOR);
// 為指定的光標(biāo)設(shè)置光標(biāo)圖像,即設(shè)置光標(biāo)圖像為上面所創(chuàng)建的手狀光標(biāo)類型
this.setCursor(cu);
// 將面板可視化設(shè)置為true,即可視,如果為false,即程序運(yùn)行時(shí)面板會(huì)隱藏
this.setVisible(true);
// 設(shè)置面板的標(biāo)題為歡迎
tf.setText("welcome to this program! ");
this.go();// 調(diào)用go方法
}
public void go() {
// 這里是死循環(huán),也就是說(shuō)用戶不點(diǎn)擊停止按鈕的話他一直循環(huán)出現(xiàn)隨機(jī)數(shù),直到用戶點(diǎn)
// 擊停止按鈕循環(huán)才能推出,具體流程在actionPerformed方法中控制。
while (true) {
// 上面所定義的isGo的初始值為false,所以程序第一次到此會(huì)跳過(guò)
if (isGo == true) {
String s = "";
// 產(chǎn)生7個(gè)隨機(jī)數(shù)
for (int j = 1; j = 7; j++) {
// 每個(gè)隨機(jī)數(shù)產(chǎn)生方式,這里定義靈活,可以自由定義隨機(jī)數(shù)產(chǎn)生的方式
int i = (int) (Math.random() * 36) + 1;
// 如果產(chǎn)生的隨機(jī)數(shù)小于10的話做處理:這里就牽扯到一個(gè)重要的概念,簡(jiǎn)單敘述一下:
if (i 10) {
s = s + " 0" + i;
/*
* 當(dāng)一個(gè)字符串與一個(gè)整型數(shù)項(xiàng)相加的意思是連接,上面的s = s + " 0" +
* i的意思是字符串s鏈接0再連接整型i值,而不會(huì)導(dǎo)致0和整型的i相加,
* 產(chǎn)生的效果為s0i,由于s為空字符串(上面定義過(guò)的),所以當(dāng)i小于零時(shí),在個(gè)位數(shù)前面加上0,比如產(chǎn)生的隨機(jī)數(shù)i為7的話,顯示效果為
* 07.
*/
} else {
// 如果產(chǎn)生的隨機(jī)數(shù)比10打的話,那么加上空格顯示,即數(shù)字和數(shù)字之間有個(gè)空格
s = s + " " + i;
}
// 以上循環(huán)循環(huán)七次,以保證能出現(xiàn)7個(gè)隨機(jī)數(shù)
}
// 將產(chǎn)生的隨機(jī)數(shù)全部顯示在文本域上,用文本域?qū)ο髏f調(diào)用它的
//設(shè)置文本的方法setText(String)實(shí)現(xiàn)。
tf.setText(s);
}
try {
// 以下為線程延遲
Thread.sleep(10);
} catch (java.lang.InterruptedException e) {
e.printStackTrace();
}
}
}
// 以下是上面設(shè)置的事件監(jiān)聽的具體處理辦法,即監(jiān)聽時(shí)間處理方法,自動(dòng)調(diào)用
public void actionPerformed(ActionEvent e) {// 傳入一個(gè)動(dòng)作事件的參數(shù)e
// 設(shè)置字符串s來(lái)存儲(chǔ)獲得動(dòng)作監(jiān)聽,上面的start
String s = e.getActionCommand();
/*
* 以下這個(gè)條件語(yǔ)句塊的作用為:用戶點(diǎn)擊開始后(捕獲start,用方法getActionCommand()),將命令觸發(fā)設(shè)置為true,從而執(zhí)行上面的go方法中的循環(huán)體(因?yàn)檠h(huán)體中要求isGo參數(shù)為true,而初始為false)。
* 執(zhí)行循環(huán)快產(chǎn)生隨機(jī)數(shù),并將開始按鈕不可編輯化,而用戶只可以使用停止按鈕去停止。如果用戶按下停止時(shí),也就是沒有傳入?yún)?shù)“start”的時(shí)候,
* 執(zhí)行else語(yǔ)句塊中的語(yǔ)句,isGo設(shè)置為false,將不執(zhí)行上面go中的循環(huán)語(yǔ)句塊,從而停止產(chǎn)生隨機(jī)數(shù),并顯示,并且把開始按鈕設(shè)置為可用,而把
* 停止按鈕設(shè)置為不可用,等待用戶按下開始再去開始新一輪循環(huán)產(chǎn)生隨機(jī)數(shù)。
*/
// 如果捕獲到start,也就是用戶觸發(fā)了動(dòng)作監(jiān)聽器,那么下面處理
if (s.equals("start")) {
isGo = true; // 設(shè)置isGo為true
b1.setEnabled(false); // 將開始按鈕設(shè)置為不可用
b2.setEnabled(true); // 將停止按鈕設(shè)置為可用
} else {
isGo = false; // 將isGo設(shè)置為false,isGo為循環(huán)標(biāo)志位
b2.setEnabled(false); // 設(shè)置停止按鈕為不可用(注意看是b2,b2是停止按鈕)
b1.setEnabled(true); // 設(shè)置開始按鈕為可用
}
}
public static void main(String[] args) {
new Drawing();// 產(chǎn)生類的實(shí)例,執(zhí)行方法
}
// 圣誕平安夜了,祝朋友開心快樂!
}
百度知道上傳圖片太麻煩 我給你說(shuō)一下吧,
第1.1層循環(huán): 橫著打印* a從1起 a=i*2+1 已知i只能是 0,1,2,3 所以a的范圍 是1~7 第一層橫著*
第1.2層循環(huán): 橫著打印“ ” j從0起 j=2-i 已知i只能是 0,1,2,3 所以j的范圍 是0~1 ,0~-1
第二層循環(huán):豎著打印,就是換行
i的要跑 0,1,2,3 四次,就是一共打四行,
j的要跑0,1,2,//0,1//0// 6次,第一次空3 /空2/空1
a的要跑1,//1,2,3//1,2,3,4,5//1,2,3,4,5,6,7, 16次
因?yàn)閖是在a上面的 所以先打J 第一輪i=0,j打 0 ,1, 2 前面空三格 然后a開始a只能打一個(gè)1 所以 就是空三個(gè)格打 一個(gè)*,后面的以此類推,當(dāng)i=3的時(shí)候,就是第四波,這時(shí)候j不符合條件 j進(jìn)不去,所以第四波不打空格
大概就是這樣子 ~~~~求采納
import java.awt.*;//引入包java.awt中所有的類
import java.awt.event.*;//引入包java.awt.event中所有的類.
public class Calculator extends WindowAdapter implements ActionListener//創(chuàng)建Calculator類,
實(shí)現(xiàn)ActionListener接口.
{
private double result=0,data1=0,radixPointDepth=1;//定義變量
private boolean radixPointIndicate=false,resultIndicate=false;
private char prec='+';//創(chuàng)建優(yōu)先默認(rèn)字符"+"
private Frame f;//創(chuàng)建窗口
private TextField tf;//創(chuàng)建文本框
private Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17;//創(chuàng)建按鈕
private Panel p;//創(chuàng)建/面板容器
static public void main(String args[])//main方法,創(chuàng)建calGUI(圖形用戶界面),完成初試化
{
//構(gòu)造器
Calculator de=new Calculator();//創(chuàng)建構(gòu)造方法
de.go();
}
public void go()
{
f=new Frame("計(jì)算器");
p=new Panel();//運(yùn)算界面p
p.setLayout(new GridLayout(4,4)); // 設(shè)置p的布局為GridLayout,四行四列
tf=new TextField(30);
//實(shí)例化按鈕
b1=new Button("7");
b2=new Button("8");
b3=new Button("9");
b4=new Button("+");
b5=new Button("4");
b6=new Button("5");
b7=new Button("6");
b8=new Button("-");
b9=new Button("1");
b10=new Button("2");
b11=new Button("3");
b12=new Button("*");
b13=new Button("0");
b14=new Button(".");
b15=new Button("=");
b16=new Button("/");
b17=new Button("清零");
f.add(tf,"North"); //把文本區(qū)域添加到框架的上方
f.add(p,"Center"); //把面版添加到框架的中間
f.add(b17,"South"); //把按鈕(清零)添加到框架的下方
//把按鈕添加到面版上
p.add(b1);
p.add(b2);
p.add(b3);
p.add(b4);
p.add(b5);
p.add(b6);
p.add(b7);
p.add(b8);
p.add(b9);
p.add(b10);
p.add(b11);
p.add(b12);
p.add(b13);
p.add(b14);
p.add(b15);
p.add(b16);
//為按鈕添加監(jiān)聽
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
b10.addActionListener(this);
b11.addActionListener(this);
b12.addActionListener(this);
b13.addActionListener(this);
b14.addActionListener(this);
b15.addActionListener(this);
b16.addActionListener(this);
b17.addActionListener(this);
f.addWindowListener(this); //為框架添加監(jiān)聽
f.setSize(300,190);//設(shè)置框架的大小
f.setVisible(true);//設(shè)置框架為可見
}
//監(jiān)聽程序
public void actionPerformed(ActionEvent e)
{
String s;
s=e.getActionCommand();
//SWITCH開關(guān)
switch(s.charAt(0))
{
case '0': case '1': case '2': case '3': case '4': case '5': case '6': case
'7': case '8': case '9'://按了“0-9”,就執(zhí)行下面
if(resultIndicate)
{
result=0;
data1=0;
prec='+';
}
Integer Int1=new Integer(s);
if(radixPointIndicate)
{
radixPointDepth=radixPointDepth/10;
data1=data1+(Int1.intValue())*radixPointDepth;
}
else
{
data1=data1*10+(Int1.intValue());
}
Double displayNumber=new Double(data1);
tf.setText(displayNumber.toString());
resultIndicate=false;
break;
case '+': case '-':case '*':case '/':case '='://按了“+、-、*、/”,就
執(zhí)行下面
if(s.charAt(0)!='='resultIndicate)
{
prec=s.charAt(0);
resultIndicate=false;
}
else
{
//用SWITCH開關(guān)運(yùn)算出執(zhí)行了“+、-、*、/”的結(jié)果
switch(prec)
{
case '+':
result=result+data1;
break;
case '-':
result=result-data1;
break;
case '*':
result=result*data1;
break;
case '/':
result=result/data1;
break;
}
}
radixPointIndicate=false;
radixPointDepth=1;
displayNumber=new Double(result);
tf.setText(displayNumber.toString());
//監(jiān)聽是否按了“=”
if(s.charAt(0)!='=')
{
data1=0;
prec=s.charAt(0);
}
else
{
resultIndicate=true;
}
break;
case '.':
radixPointIndicate=true;
break;
}
//監(jiān)聽是否按了為“清零”,是則對(duì)各數(shù)據(jù)清零
if(s.equals("清零"))
{
result=0;
data1=0;
radixPointDepth=1;
tf.setText("");
}
}
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
請(qǐng)點(diǎn)擊輸入圖片描述
package com.greatwall.business.controller;
import java.math.BigDecimal;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author xysddjyt
* @since 2020/6/16 15:06
*/
public class BankTest {
public static void main(String[] args) {
? Scanner scan = new Scanner(System.in);
? // 余額(單位:分)
? Long BALANCE = 10000000L;
? // 卡號(hào)
? String card = "001";
? // 密碼
? String password = "123456";
? String inputCard = new String();
? String inputPassword = new String();
? String quit = new String();
? while (true) {
? ? ? System.out.println("\n歡迎來(lái)到網(wǎng)上銀行辦理存取款業(yè)務(wù)!");
? ? ? System.out.println("請(qǐng)輸入銀行卡號(hào)和銀行卡密碼進(jìn)行登錄!");
? ? ? while (true) {
? ? ? ? ? System.out.print("請(qǐng)輸入銀行卡號(hào)(按q退出): ");
? ? ? ? ? inputCard = scan.nextLine();
? ? ? ? ? quit = inputCard;
? ? ? ? ? if (inputCard.equals("q")) {
? ? ? ? ? ? ? break;
? ? ? ? ? }
? ? ? ? ? if (!inputCard.equals(card)) {
? ? ? ? ? ? ? System.out.print("您輸入銀行卡號(hào)不正確,請(qǐng)重新輸入 ");
? ? ? ? ? ? ? continue;
? ? ? ? ? }
? ? ? ? ? break;
? ? ? }
? ? ? if (quit.equals("q")) {
? ? ? ? ? continue;
? ? ? }
? ? ? while (true) {
? ? ? ? ? System.out.print("請(qǐng)輸入銀行卡密碼(按q退出): ");
? ? ? ? ? inputPassword = scan.nextLine();
? ? ? ? ? quit = inputPassword;
? ? ? ? ? if (inputPassword.equals("q")) {
? ? ? ? ? ? ? break;
? ? ? ? ? }
? ? ? ? ? if (!inputPassword.equals(password)) {
? ? ? ? ? ? ? System.out.print("您輸入銀行卡密碼不正確,請(qǐng)重新輸入 ");
? ? ? ? ? ? ? continue;
? ? ? ? ? }
? ? ? ? ? break;
? ? ? }
? ? ? if (quit.equals("q")) {
? ? ? ? ? continue;
? ? ? }
? ? ? System.out.print("登錄成功,當(dāng)前登錄的賬戶名:" + inputCard);
? ? ? String type = "4";
? ? ? while (!type.equals("0")) {
? ? ? ? ? System.out.print("\n您當(dāng)前的余額為:" + money(BALANCE) + "元");
? ? ? ? ? System.out.print("\n請(qǐng)選擇操作類型。(存款:1;取款:2 ;余額:3;退出:0)\n");
? ? ? ? ? type = scan.nextLine();
? ? ? ? ? switch (type) {
? ? ? ? ? ? ? case "1": {
? ? ? ? ? ? ? ? ? System.out.print("請(qǐng)輸入您的存款金額(元):");
? ? ? ? ? ? ? ? ? String chageNumber = scan.nextLine();
? ? ? ? ? ? ? ? ? if (!isPositiveInteger(chageNumber)) {
? ? ? ? ? ? ? ? ? ? ? System.out.print("請(qǐng)輸入正確的存款金額!");
? ? ? ? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? BALANCE = Long.valueOf(chageNumber) * 100 + BALANCE;
? ? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? ? }
? ? ? ? ? ? ? case "2": {
? ? ? ? ? ? ? ? ? System.out.print("請(qǐng)輸入您的取款金額(元):");
? ? ? ? ? ? ? ? ? String chageNumber = scan.nextLine();
? ? ? ? ? ? ? ? ? if (!isPositiveInteger(chageNumber)) {
? ? ? ? ? ? ? ? ? ? ? System.out.print("請(qǐng)輸入正確取款金額!");
? ? ? ? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? BALANCE = BALANCE - Long.valueOf(chageNumber) * 100;
? ? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? ? }
? ? ? ? ? ? ? case "3": {
? ? ? ? ? ? ? ? ? System.out.print("您當(dāng)前的余額為:" + money(BALANCE) + "元\n");
? ? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? ? }
? ? ? ? ? ? ? default: {
? ? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? ? }
? ? ? ? ? }
? ? ? }
? }
}
private static boolean isMatch(String regex, String orginal) {
? if (orginal == null || orginal.trim().equals("")) {
? ? ? return false;
? }
? Pattern pattern = Pattern.compile(regex);
? Matcher isNum = pattern.matcher(orginal);
? return isNum.matches();
}
// 判斷數(shù)據(jù)是否為正整數(shù)
public static boolean isPositiveInteger(String orginal) {
? return isMatch("^\\+{0,1}[1-9]\\d*", orginal);
}
// 分轉(zhuǎn)元,轉(zhuǎn)換為bigDecimal在toString
public static String money(Long money) {
? return BigDecimal.valueOf(money).divide(new BigDecimal(100)).toString();
}
}