關於java實訓8的信息

本文目錄一覽:

JAVA實訓報告

1、 實訓的題目及簡介:

題目:java計算器應用程序

簡介:通過本程序可以實現計算器的基本功能。程序是Frame類的子類。使用GridLayout的布局方式對組件進行布局,用Panel類的容器存放按扭、文本框組件,程序中也用到大量的else—–if語句。

2、 設計說明:

一實驗目的

通過實訓能夠結合實例進一步理解面向對象程序設計的基本概念,掌握程序設計的基本方法和技巧,靈活的使用包,進一步的理解接口,熟練的掌握在接口中對事件的實現。深入理解和靈活運用面向對象程序設計的基本特性,培養良好的程序設計風格,提高抽象思維、邏輯思維的能力。

二實驗內容

編寫一個實現計算器應用程序

三 程序介紹及其功能的實現

程序需要導入import java.awt.*、 import java.awt.event.*、 import java.lang.*、 import javax.swing.*包。①程序的基本框架是:首先定義一個Frame類的子類,之後聲明三個面板的布局,即定義了GridLayout類的三個對象gl1、gl2、gl3。之後是定義了Panel類的容器的四個對象p0、p1、p2、p3,其中p0用來存放顯示屏文本框組件,p1採用gl1布局,用來存放刪除和歸零按鈕,p3採用gl3布局,用來存放數字按鈕和運算符按鈕,p2採用gl2布局,用來存放其它功能按鈕鍵按鈕。②具體的實現過程是:⑴、程序定義了JTextField類的對象tf1和TextField類的對象tf2及26個button類的按鈕,在Counter類的構造方法中分別對各個對象進行了初始化,對面板進行了合適的布局,各個按鈕也相應的添加到相應的容器中,在實例化所有按鈕、設置其前景色的同時並註冊監聽器。

⑵、對各個組件進行相應的設計之後,即程序運行之後的可視化界面完成之後開始實現程序內部的事件過程,即接口的實現。定義了一個名為 Bt的類來實現接口,程序在actionPerformed( )方法中對各個按鈕和文本框組件的具體方法進行實現,程序中不斷的用else—if語句對按鈕操作事件的實現,並對事件的異常進行處理。

3.程序清單

import java.awt.*;

import java.awt.event.*;

import java.lang.*;

import javax.swing.*;

public class Counter extends Frame

{

//聲明三個面板的布局

GridLayout gl1,gl2,gl3;

Panel p0,p1,p2,p3;

JTextField tf1;

TextField tf2;

Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b26;

StringBuffer str;//顯示屏所顯示的字符串

double x,y;//x和y都是運算數

int z;//Z表示單擊了那一個運算符.0表示”+”,1表示”-“,2表示”*”,3表示”/”

static double m;//記憶的數字

public Counter()

{

gl1=new GridLayout(1,4,10,0);//實例化三個面板的布局

gl2=new GridLayout(4,1,0,15);

gl3=new GridLayout(4,5,10,15);

tf1=new JTextField(27);//顯示屏

tf1.setHorizontalAlignment(JTextField.RIGHT);

tf1.setEnabled(false);

tf1.setText(“0”);

tf2=new TextField(10);//顯示記憶的索引值

tf2.setEditable(false);

//實例化所有按鈕、設置其前景色並註冊監聽器

b0=new Button(“Backspace”);

b0.setForeground(Color.red);

b0.addActionListener(new Bt());

b1=new Button(“CE”);

b1.setForeground(Color.red);

b1.addActionListener(new Bt());

b2=new Button(“C”);

b2.setForeground(Color.red);

b2.addActionListener(new Bt());

b3=new Button(“MC”);

b3.setForeground(Color.red);

b3.addActionListener(new Bt());

b4=new Button(“MR”);

b4.setForeground(Color.red);

b4.addActionListener(new Bt());

b5=new Button(“MS”);

b5.setForeground(Color.red);

b5.addActionListener(new Bt());

b6=new Button(“M+”);

b6.setForeground(Color.red);

b6.addActionListener(new Bt());

b7=new Button(“7”);

b7.setForeground(Color.blue);

b7.addActionListener(new Bt());

b8=new Button(“8”);

b8.setForeground(Color.blue);

b8.addActionListener(new Bt());

b9=new Button(“9”);

b9.setForeground(Color.blue);

b9.addActionListener(new Bt());

b10=new Button(“/”);

b10.setForeground(Color.red);

b10.addActionListener(new Bt());

b11=new Button(“sqrt”);

b11.setForeground(Color.blue);

b11.addActionListener(new Bt());

b12=new Button(“4”);

b12.setForeground(Color.blue);

b12.addActionListener(new Bt());

b13=new Button(“5”);

b13.setForeground(Color.blue);

b13.addActionListener(new Bt());

b14=new Button(“6”);

b14.setForeground(Color.blue);

b14.addActionListener(new Bt());

b15=new Button(“*”);

b15.setForeground(Color.red);

b15.addActionListener(new Bt());

b16=new Button(“%”);

b16.setForeground(Color.blue);

b16.addActionListener(new Bt());

b17=new Button(“1”);

b17.setForeground(Color.blue);

b17.addActionListener(new Bt());

b18=new Button(“2”);

b18.setForeground(Color.blue);

b18.addActionListener(new Bt());

b19=new Button(“3”);

b19.setForeground(Color.blue);

b19.addActionListener(new Bt());

b20=new Button(“-“);

b20.setForeground(Color.red);

b20.addActionListener(new Bt());

b21=new Button(“1/X”);

b21.setForeground(Color.blue);

b21.addActionListener(new Bt());

b22=new Button(“0”);

b22.setForeground(Color.blue);

b22.addActionListener(new Bt());

b23=new Button(“+/-“);

b23.setForeground(Color.blue);

b23.addActionListener(new Bt());

b24=new Button(“.”);

b24.setForeground(Color.blue);

b24.addActionListener(new Bt());

b25=new Button(“+”);

b25.setForeground(Color.red);

b25.addActionListener(new Bt());

b26=new Button(“=”);

b26.setForeground(Color.red);

b26.addActionListener(new Bt());

//實例化四個面板

p0=new Panel();

p1=new Panel();

p2=new Panel();

p3=new Panel();

//創建一個空字符串緩衝區

str=new StringBuffer();

//添加面板p0中的組件和設置其在框架中的位置和大小

p0.add(tf1);

p0.setBounds(10,25,300,40);

//添加面板p1中的組件和設置其在框架中的位置和大小

p1.setLayout(gl1);

p1.add(tf2);

p1.add(b0);

p1.add(b1);

p1.add(b2);

p1.setBounds(10,65,300,25);

//添加面板p2中的組件並設置其的框架中的位置和大小

p2.setLayout(gl2);

p2.add(b3);

p2.add(b4);

p2.add(b5);

p2.add(b6);

p2.setBounds(10,110,40,150);

//添加面板p3中的組件並設置其在框架中的位置和大小

p3.setLayout(gl3);//設置p3的布局

p3.add(b7);

p3.add(b8);

p3.add(b9);

p3.add(b10);

p3.add(b11);

p3.add(b12);

p3.add(b13);

p3.add(b14);

p3.add(b15);

p3.add(b16);

p3.add(b17);

p3.add(b18);

p3.add(b19);

p3.add(b20);

p3.add(b21);

p3.add(b22);

p3.add(b23);

p3.add(b24);

p3.add(b25);

p3.add(b26);

p3.setBounds(60,110,250,150);

//設置框架中的布局為空布局並添加4個面板

setLayout(null);

add(p0);

add(p1);

add(p2);

add(p3);

setResizable(false);//禁止調整框架的大小

//匿名類關閉窗口

addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e1)

{

System.exit(0);

}

});

setBackground(Color.lightGray);

setBounds(100,100,320,280);

setVisible(true);

}

//構造監聽器

class Bt implements ActionListener

{

public void actionPerformed(ActionEvent e2)

{

try{

if(e2.getSource()==b1)//選擇”CE”清零

{

tf1.setText(“0”);//把顯示屏清零

str.setLength(0);//清空字符串緩衝區以準備接收新的輸入運算數

}

else if(e2.getSource()==b2)//選擇”C”清零

{

tf1.setText(“0”);//把顯示屏清零

str.setLength(0);

}

else if(e2.getSource()==b23)//單擊”+/-“選擇輸入的運算數是正數還是負數

{

x=Double.parseDouble(tf1.getText().trim());

tf1.setText(“”+(-x));

}

else if(e2.getSource()==b25)//單擊加號按鈕獲得x的值和z的值並清空y的值

{

x=Double.parseDouble(tf1.getText().trim());

str.setLength(0);//清空緩衝區以便接收新的另一個運算數

y=0d;

z=0;

}

else if(e2.getSource()==b20)//單擊減號按鈕獲得x的值和z的值並清空y的值

{

x=Double.parseDouble(tf1.getText().trim());

str.setLength(0);

y=0d;

z=1;

}

else if(e2.getSource()==b15)//單擊乘號按鈕獲得x的值和z的值並清空y的值

{

x=Double.parseDouble(tf1.getText().trim());

str.setLength(0);

y=0d;

z=2;

}

else if(e2.getSource()==b10)//單擊除號按鈕獲得x的值和z的值並空y的值

{

x=Double.parseDouble(tf1.getText().trim());

str.setLength(0);

y=0d;

z=3;

}

else if(e2.getSource()==b26)//單擊等號按鈕輸出計算結果

{

str.setLength(0);

switch(z)

{

case 0 : tf1.setText(“”+(x+y));break;

case 1 : tf1.setText(“”+(x-y));break;

case 2 : tf1.setText(“”+(x*y));break;

case 3 : tf1.setText(“”+(x/y));break;

}

}

else if(e2.getSource()==b24)//單擊”.”按鈕輸入小數

{

if(tf1.getText().trim().indexOf(‘.’)!=-1)//判斷字符串中是否已經包含了小數點

{

}

else//如果沒數點有小

{

if(tf1.getText().trim().equals(“0”))//如果初時顯示為0

{

str.setLength(0);

tf1.setText((str.append(“0″+e2.getActionCommand())).toString());

}

else if(tf1.getText().trim().equals(“”))//如果初時顯示為空則不做任何操作

{

}

else

{

tf1.setText(str.append(e2.getActionCommand()).toString());

}

}

y=0d;

}

else if(e2.getSource()==b11)//求平方根

{

x=Double.parseDouble(tf1.getText().trim());

tf1.setText(“數字格式異常”);

if(x0)

tf1.setText(“負數沒有平方根”);

else

tf1.setText(“”+Math.sqrt(x));

str.setLength(0);

y=0d;

}

else if(e2.getSource()==b16)//單擊了”%”按鈕

{

x=Double.parseDouble(tf1.getText().trim());

tf1.setText(“”+(0.01*x));

str.setLength(0);

y=0d;

}

else if(e2.getSource()==b21)//單擊了”1/X”按鈕

{

x=Double.parseDouble(tf1.getText().trim());

if(x==0)

{

tf1.setText(“除數不能為零”);

}

else

{

tf1.setText(“”+(1/x));

}

str.setLength(0);

y=0d;

}

else if(e2.getSource()==b3)//MC為清除內存

{

m=0d;

tf2.setText(“”);

str.setLength(0);

}

else if(e2.getSource()==b4)//MR為重新調用存儲的數據

{

if(tf2.getText().trim()!=””)//有記憶數字

{

tf1.setText(“”+m);

}

}

else if(e2.getSource()==b5)//MS為存儲顯示的數據

{

m=Double.parseDouble(tf1.getText().trim());

tf2.setText(“M”);

tf1.setText(“0”);

str.setLength(0);

}

else if(e2.getSource()==b6)//M+為將顯示的數字與已經存儲的數據相加要查看新的數字單擊MR

{

m=m+Double.parseDouble(tf1.getText().trim());

}

else//選擇的是其他的按鈕

{

if(e2.getSource()==b22)//如果選擇的是”0″這個數字鍵

{

if(tf1.getText().trim().equals(“0”))//如果顯示屏顯示的為零不做操作

{

}

else

{

tf1.setText(str.append(e2.getActionCommand()).toString());

y=Double.parseDouble(tf1.getText().trim());

}

}

else if(e2.getSource()==b0)//選擇的是「BackSpace」按鈕

{

if(!tf1.getText().trim().equals(“0”))//如果顯示屏顯示的不是零

{

if(str.length()!=1)

{

tf1.setText(str.delete(str.length()-1,str.length()).toString());//可能拋出字符串越界異常

}

else

{

tf1.setText(“0”);

str.setLength(0);

}

}

y=Double.parseDouble(tf1.getText().trim());

}

else//其他的數字鍵

{

tf1.setText(str.append(e2.getActionCommand()).toString());

y=Double.parseDouble(tf1.getText().trim());

}

}

}

catch(NumberFormatException e){

tf1.setText(“數字格式異常”);

}

catch(StringIndexOutOfBoundsException e){

tf1.setText(“字符串索引越界”);

}

}

}

public static void main(String args[])

{

new Counter();

}

}

4、調試結果

5、實習體會

求《java8實戰》全文免費下載百度網盤資源,謝謝~

《java8實戰》百度網盤pdf最新全集下載:

鏈接:

?pwd=xr28 提取碼: xr28

簡介:Java 8的發佈使Java程序設計發生了翻天覆地的變化。利用Java 8中新引入的函數式特性,你可以在更短的時間內用更簡潔的代碼完成更複雜的功能,同時還能充分利用硬件的多核架構。  

JAVA上機實訓題

餓 我今天才弄好的 應該和你的差不多 你自己看

import java.util.*;

public class rili {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

int year;

int month;

int firstDay;

int day = 0;

int sum = 0;

int week;

int num = 0;

System.out.println(“**********************歡迎使用萬年曆**********************\n\n”);

System.out.print(“請選擇年份:”);

year = input.nextInt();

boolean isRn = (year % 4 == 0 year % 100 != 0) || year % 400 == 0;

System.out.print(“\n請選擇月份:”);

do {

month = input.nextInt();

if (month 12) {

System.out.print(“輸入錯誤請從新輸入:”);

}

} while (month 12);

switch (month) {

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

day = 31;

break;

case 2:

if (isRn == true) {

day = 29;

} else {

day = 28;

}

break;

default:

day = 30;

break;

}

// 計算1900-輸入年份的天數

for (int i = 1900; i year; i++) {

if ((i % 4 == 0 i % 100 != 0) || i % 400 == 0) {

sum = sum + 366;

} else {

sum = sum + 365;

}

}

// 計算輸入年份的月份之前的天數

for (int i = 1; i month; i++) {

switch (i) {

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

sum = sum + 31;

break;

case 2:

if (isRn) {

sum = sum + 29;

} else {

sum = sum + 28;

}

break;

default:

sum = sum + 30;

break;

}

}

week = (1 + sum) % 7;

if (week == 0) {

firstDay = 0;

} else {

firstDay = week;

}

System.out.println(“星期日\t” + “星期一\t” + “星期二\t” + “星期三\t” + “星期四\t”

+ “星期五\t” + “星期六\t”);

for (int i = 0; i firstDay; i++) {

System.out.print(“\t”);

num++;

}

for (int i = 1; i = day; i++) {

num++;

System.out.print(i + “\t”);

if (num % 7 == 0) {

System.out.print(“\n”);

}

}

}

}

《Java8實戰》epub下載在線閱讀,求百度網盤雲資源

《Java 8實戰》(厄馬(Raoul-Gabriel Urma))電子書網盤下載免費在線閱讀

鏈接:

提取碼:1234

書名:Java 8實戰

作者:厄馬(Raoul-Gabriel Urma)

譯者:陸明剛

豆瓣評分:9.2

出版社:人民郵電出版社

出版年份:2016-4-1

頁數:349

內容簡介:

本書全面介紹了Java 8 這個裡程碑版本的新特性,包括Lambdas、流和函數式編程。有了函數式的編程特性,可以讓代碼更簡潔,同時也能自動化地利用多核硬件。全書分四個部分:基礎知識、函數式數據處理、高效Java 8 編程和超越Java 8,清晰明了地向讀者展現了一幅Java 與時俱進的現代化畫卷。

作者簡介:

作者簡介:

Raoul-Gabriel Urma

劍橋大學計算機科學博士,軟件工程師,演講者,培訓師,Cambridge Coding Academy聯合創始人、CEO。曾與谷歌、eBay、甲骨文和高盛集團等大公司合作,並參與過多個創業項目。撰寫過十餘篇經同行審閱的技術文章,並在國際會議上發表過40多篇演講。

Mario Fusco

Red Hat高級軟件工程師,負責JBoss規則引擎Drools的核心開發。擁有豐富的Java開發經驗,曾領導媒體公司、金融部門等多個行業的企業級項目開發。對函數式編程和領域特定語言等有濃厚興趣,並創建了開放源碼庫lambdaj。

Alan Mycroft

劍橋大學計算機實驗室計算學教授,劍橋大學羅賓遜學院研究員,歐洲編程語言和系統協會聯合創始人,樹莓派基金會聯合創始人和理事。發表過大約100篇研究論文,指導過20多篇博士論文。他的研究主要關注編程語言及其語義、優化和實施。他與業界聯繫緊密,曾於學術休假期間在ATT實驗室和英特爾工作,還創立了Codemist公司,該公司設計了最初的ARM C編譯器Norcroft。

暑假在家自學Java,假期結束後進行一個為期8個月Java實訓,在這兩個月的時間裏,到底怎麼安排我的學習計劃

建議不要看是視頻,要買一本書來看,學編程不要走馬觀花,即使你看不完所有的東東也不要走馬觀花,要一步一個腳印,嗯,一個假期應該可以看完java基本的部分了,沒什麼問題……….至於java更高級的東東,例如對於2D,3D圖像的處理,…..就可以要用的時候再看…………..

原創文章,作者:FQWGY,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/129713.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
FQWGY的頭像FQWGY
上一篇 2024-10-03 23:27
下一篇 2024-10-03 23:27

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發佈。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論