




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Java程序設(shè)計(jì)
實(shí)驗(yàn)報(bào)告
班級(jí):網(wǎng)絡(luò)151
姓名:徐毅民
學(xué)號(hào):153299
實(shí)驗(yàn)一Java語言基礎(chǔ)
一.實(shí)驗(yàn)?zāi)康?/p>
掌握J(rèn)ava語言的基本語法、基本數(shù)據(jù)類型的使用方法,掌握從
鍵盤輸入基本類型的數(shù)據(jù),熟練運(yùn)用分支、循環(huán)等語句控制程序流程。
二實(shí)驗(yàn)內(nèi)容
1、編寫一個(gè)Java應(yīng)用程序,用戶從鍵盤輸入十名學(xué)生的信息,
至少包括姓名、年齡、出生年月日、java課程實(shí)驗(yàn)成績(jī),成績(jī)使用浮
點(diǎn)數(shù),年齡使用整型,程序?qū)⑤敵瞿挲g、java課程實(shí)驗(yàn)成績(jī)的平均值。
提示:Scanner對(duì)象調(diào)用nextDouble()或nextFloat()可以獲取用
戶從鍵盤輸入的浮點(diǎn)數(shù)。
2、使用Arrays類實(shí)現(xiàn)數(shù)組排序:使用java.util包中的Arrays類
的類方法publicstaticvoidsort(doublea口)可以把參數(shù)a指定的double
類型數(shù)組按升序排序;publicstaticvoidsort(doublea[],intstart,int
end)可以把參數(shù)a指定的double類型數(shù)組中從位置start到end位置
的值按升序排序。
給定數(shù)組inta[]={12,34,9,-23,45,6,90,123,19,45,34);從鍵盤讀
入一個(gè)整數(shù),使用折半查找判斷該整數(shù)是否在這個(gè)數(shù)組中,并將結(jié)果
輸出。
3、輸出100~200之間的所有素?cái)?shù)。
4、采用for循環(huán)求1至1000之內(nèi)的所有“完全數(shù)”。所謂“完全數(shù)”
是指一個(gè)數(shù),恰好等于它的因子之和。例如,6是一個(gè)完全數(shù),因?yàn)?
的因子為1、2、3,而6=1+2+3。
5、已知XYZ+YZZ=532,其中X、Y和Z為數(shù)字,編程求出X,Y和Z的
值。
三.實(shí)驗(yàn)步驟
實(shí)驗(yàn)1以最終學(xué)生信息管理系統(tǒng)為準(zhǔn)
實(shí)驗(yàn)2代碼如下:
importjava.util.Arrays;
importjava.util.Scanner;
publicclasstest2{
publicstaticvoidprir)tDoubleArray(doublea[]){
for(inti=0;i<a.length;i++){
System.out.print(a[i]+"");
}
System.out.println();
}
publicstaticvoidprintflntegerArray(inta[]){
for(inti=0;i<a.length;i++){
System.out.print(a[i]+"");
}
System.out.println();
}
publicstaticvoidmain(String[]args){
doublea[]={2.6,4.6,2,8,888,569.5,454.5,100,-84.5,45};
System.out.printin("原double數(shù)組a:");
printDoubleArray(a);
Arrays.sort(a,0,a.length/2);
System.out.printing排序double數(shù)組a前一半門;
printDoubleArray(a);
Arrays.sort(a);
System.out.printin("排序整個(gè)double數(shù)組a:");
printDoubleArray(a);
intb[]={12,34,9,-23,45,6,90,123,19,45,34);
Arrays.sort(b);
System.out.printin("排序整個(gè)double數(shù)組b:11);
printflntegerArray(b);
Scannerin=newScanner(System.in);
System.out.print("輸入要查詢的數(shù)字:");
intkey=in.nextlnt();
inti=Arrays.binarySearch(b,key);
if(i<011i>=b.length){
System.out.println(i+”輸入數(shù)字不在數(shù)組中!");
}else{
System.out.println(b[i]+"在數(shù)組b第"+(i+l)+"位!");
}
}
}
實(shí)驗(yàn)3代碼如下:
publicclasstest3{
publicstaticbooleanisPrime(intx){
if(x==1)returnfalse;
ints=(int)Math.sqrt(x);
for(inti=2;i<=s;i++){
if(x%i==0)returnfalse;
}
returntrue;
}
publicstaticvoidmain(String[]args){
intent=0;
for(inti=100;i<200;i++){
if(isPrime(i)){
cnt++;
System.out.printfC^Ad",i);
}
if(isPrime(i)&&cnt%10==0)System.out.println();
)
}
}
實(shí)驗(yàn)4代碼如下:
publicclasstest4{
publicstaticbooleanisCompleteNumber(intx){
intsum=0;
for(inti=1;i<x;i++){
if(x%i==0)sum+=x;
}
returnx==sum;
}
publicstaticvoidmain(String[]args){
intent=0;
for(inti=1;i<=1000;i++){
if(isCompleteNumber(i)){
cnt++;
System.out.printf("%4d",i);
}
if(isCompleteNumber(i)&&cnt%10==0)
System.out.println();
)
}
}
實(shí)驗(yàn)5代碼如下:
publicclasstest5{
publicstaticvoidmain(String[]args){
for(intx=0;x<10;x++){
for(inty=0;y<10;y++){
for(intz=0;z<10;z++){
if(100*x+110*y+12*z==532){
System.out.println("X="+x+"Y="+y+"
Z="+z);
return;
}
}
}
}
}
}
四.詳細(xì)的調(diào)試和運(yùn)行結(jié)果
實(shí)驗(yàn)2運(yùn)行結(jié)果:
原double數(shù)組a:
8,0888.0569.5454.5100.0-84.545.0
排序double數(shù)組a前一半:
2.02.64.68,0888.0569.5454.5100.0-84.545.0
排序整個(gè)double數(shù)組a:
-84.52.045.0100.0454.5569.5888.0
排序整個(gè)double數(shù)組b:
-236912193434454590123
輸入要查詢的數(shù)字:-23
-23在數(shù)組b第一位!
實(shí)驗(yàn)3運(yùn)行結(jié)果:
101103107109113127131137139149
151157163167173179181191193197
199
實(shí)驗(yàn)4運(yùn)行結(jié)果:
37111317192329
31374143475359616771
7379838997101103107109113
127131137139149151157163167173
179181191193197199211223227229
233239241251257263269271277281
283293307311313317331337347349
353359367373379383389397401409
419421431433439443449457461463
467479487491499503509521523541
547557563569571577587593599601
607613617619631641643647653659
661673677683691701709719727733
739743751757761769773787797809
811821823827829839853857859863
877881883887907911919929937941
947953967971977983991997
實(shí)驗(yàn)5運(yùn)行結(jié)果:
X=3Y=2Z=1
五.實(shí)驗(yàn)感想
通過本次從實(shí)驗(yàn)對(duì)java語言的基本語法有了基本了解,學(xué)會(huì)了
使用控制臺(tái)命令行的方式運(yùn)行java程序。
實(shí)驗(yàn)二面向?qū)ο蟪绦蛟O(shè)計(jì)
一.實(shí)驗(yàn)?zāi)康?/p>
通過編程和上機(jī)實(shí)驗(yàn),掌握類和構(gòu)造方法的定義及創(chuàng)建對(duì)象的方
法,掌握類的封裝及繼承原則,正確使用重載和覆蓋等多態(tài)概念設(shè)計(jì)
可復(fù)用方法,熟悉包、接口的使用方法,掌握面向?qū)ο蟮某绦蛟O(shè)計(jì)方
法。
二.實(shí)驗(yàn)內(nèi)容
1、編寫MyDate類,完善上次實(shí)驗(yàn)中的人員信息錄入,實(shí)現(xiàn)日期
合法性判斷,包括大小月和閏年。
2、聲明一個(gè)Person類和派生類Student,成員變量包括學(xué)號(hào)、
姓名、入學(xué)時(shí)間、身份證號(hào)、學(xué)分績(jī)點(diǎn)等信息,成員方法包括開戶、
存款、取款、查詢(余額、明細(xì))、銷戶等操作。
3、定義接口Shape及其抽象方法getArea()和getPerimeter()用于
計(jì)算圖形和面積和周長(zhǎng)。定義類Rectangle(矩形)、類Circle(圓形)、類
Triangle(三角形),要求這些類繼承點(diǎn)類Coordinates。并實(shí)現(xiàn)接口的抽
象方法。
提示:
classCoordinates
(
longx;
longy;
Coordinate(longx,longy)
this.x=x;
this.y=y;
}
}
4、包的定義和使用
?創(chuàng)建自定義包Mypackage
在存放源程序的文件夾中建立一個(gè)子文件夾Mypackageo例如,
在“E:\java\程序”文件夾之中創(chuàng)建一個(gè)與包同名的子文件夾
Mypackage(E:\java\程序、Mypackage),并將編譯過的class文件放
入該文件夾中。注意:包名與文件夾名大小寫要一致。再添加環(huán)境變
量classpath的路徑,例如:E:\j2sdkl42_01\lib;E:\java\程序
?在包中創(chuàng)建類
YMD.java程序功能:在源程序中,首先聲明使用的包名
Mypackage,然后創(chuàng)建YMD類,該類具有計(jì)算今年的年份并輸出一
個(gè)帶有年月日的字符串的功能。編譯Test_YMD.java文件,然后將
Test_YMD.class文件存放到Mypackage文件夾中。
?編寫使用包Mypackage中Test_YMD類的程序
YMD_2.java程序功能:給定某人姓名與出生日期,計(jì)算該人年齡,
并輸出該人姓名,年齡,出生日期。程序使用了Test_YMD的方法來
計(jì)算年齡。
三.實(shí)驗(yàn)步驟
實(shí)驗(yàn)1代碼如下:
MyDate類:
publicclassMyDate{
privateintyear;〃年
privateintmonth;〃月
privateintday;〃日
publicMyDate(){
this(1903,1,1);
}
publicMyDate(MyDateother){
this(other.yearzother.month,other.day);
}
publicMyDate(intyear,intmonth,intday){
this.year=year;
this.month=month;
this.day=day;
}
publicstaticintgetDaysOfMonth(intyear,intmonth){
switch(month){
casel:case3:case5:case7:case8:case10:case
12:return31;
case4:case6:case9:case11:return30;
case2:returnMyDate.isLeapYear(year)?29:28;
default:returnInteger.MlN_VALUE;〃錯(cuò)誤
}
}
publicbooleanisValidDate(){
returnMyDate.isValidDate(this.year,this.month,this.day);
}
publicvoidsetMyDate(intyear,intmonth,intday){
this.year=year;
this.month=month;
this.day=day;
}
publicintgetYear(){
returnyear;
}
publicintgetMonth(){
returnmonth;
}
publicintgetDay(){
returnday;
}
publicstaticbooleanisValidDate(intyear,intmonth,intday){
if(day>MyDate.getDaysOfMonth(year,month)){
returnfalse;
}
returntrue;
}
publicstaticbooleanisLeapYear(intyear){
returnyear%400==011year%100!=0&&year%4==0;
}
publicstaticvoidmain(Stringargs[]){
intsei,y,m,d;
Scannerin=newScanner(System.in);
while(true){
System.out.printin("請(qǐng)輸入年月日
y=in.nextlnt();
m=in.nextlnt();
d=in.nextlnt();
if(MyDate.isValidDate(yzm,d)){
System.out.println(y+"年"+m+"月"+d+"日信息
正確!)
}else{
日信息
System.out.println(y+"^"+m+">R"+d+"
不正確!");
}
System.out.printin("是否繼續(xù)輸入?(1:是,0:否)");
sei=in.nextlnt();if(sel==0)break;
}
)
}
實(shí)驗(yàn)2以最終學(xué)生信息管理系統(tǒng)為準(zhǔn)
實(shí)驗(yàn)3代碼如下:
Shape接口:
publicinterfaceShape{
publicabstractdoublegetArea();
publicabstractdoublegetPerimeter();
}
Rectangle類:
publicclassRectangleimplementsShape{
privatedoublewidth;
privatedoubleheight;
privateCoordinatec;〃矩形左下角的點(diǎn)
publicRectangle(){
this.width=0;
this.height=0;
this.c=newCoordinate。0);
}
publicRectangle(doublewidth,doubleheight,intx,inty){
this.width=width;
this.height=height;
this.c=newCoordinate(x,y);
}
(?Override
publicdoublegetArea(){
returnthis.width*this.height;
}
(?Override
publicdoublegetPerimeter(){
return2*(this.width+this.height);
}
}
Circle類
publicclassCircleimplementsShape{
privatedoubleradius;
privateCoordinatecenter;
publicCircle(){
this.radius=0;
this.center=newCoordinate(0,0);
}
publicCircle(doubleradius,longx,longy){
this.radius=radius;
this.center=newCoordinate(x,y);
}
(?Override
publicdoublegetArea(){
returnMath.Pl*this.radius*this.radius;
}
(?Override
publicdoublegetPerimeter(){
return2*Math.PI*this.radius;
}
}
Triangle類
publicclassTriangleimplementsShape{
privatedoublea,b,c;
privateCoordinatecl,c2,c3;
publicTriangle(){
this.a=0;
this.b=0;
this.c=0;
this.cl=newCoordinate。0);
this.c2=newCoordinate。0);
this.c3=newCoordinate。0);
}
@Override
publicdoublegetArea(){
doubles=this.getPerimeter()/2;
returnMath.sqrt(s*(s-a)*(s-b)*(s-c));
}
(?Override
publicdoublegetPerimeter(){
returnthis.a+this.b+this.c;
}
publicstaticbooleanisVaild(doublea,doubleb,doublec){
if(a+b<=c11a+c<=b11b+c<=a){
returnfalse;
}
if(Math.abs(a-b)>=c||Math.abs(a-c)>=b||
Math.abs(b-c)>=a){
returnfalse;
}
returntrue;
}
)
測(cè)試類
publicclasstest3{
publicstaticvoidmain(String[]args){
Shapeshape;
Scannerin=newScanner(System.in);
System.out.printin("請(qǐng)輸入矩形的寬、高,左下角點(diǎn)的
橫坐標(biāo)、縱坐標(biāo):");
shape=newRectangle(in.nextDouble(),in.nextDoubleO,
in.nextlnt(),in.nextlnt());
System.out.printin("矩形的面積:"+shape.getArea()+"周
長(zhǎng)"+shape.getPerimeter());
System.out.printin("請(qǐng)輸入圓的半徑,圓心的橫坐標(biāo)、
縱坐標(biāo)
shape=newCircle(in.nextDouble(),in.nextlnt(),
in.nextlnt());
System.out.printing'圓形的面積:"+shape.getArea()+"周
長(zhǎng)"+shape.getPerimeter());
doublea,b,c;
System.out.printin("請(qǐng)輸入三角形的三條邊長(zhǎng):");
a=in.nextDouble();b=in.nextDouble();c=
in.nextDouble();
while(!Triangle.isVaild(a/b,c)){
System.out.printin("這不是一個(gè)三角形,請(qǐng)重新輸入
三條邊長(zhǎng):");
a=in.nextDouble();b=in.nextDouble();c=
in.nextDouble();
}
System.out.printing請(qǐng)分別輸入三個(gè)頂點(diǎn)的橫坐標(biāo)、縱
坐標(biāo):");
shape=newTriangle(a,b,c,in.nextlnt(),in.nextlntO,
in.nextlnt(),in.nextlnt(),in.nextlnt(),in.nextlnt());
System.out.printin("三角形的面積:"+shape.getArea()+"
周長(zhǎng)"+shape.getPerimeter());
}
}
實(shí)驗(yàn)4代碼如下:
五.詳細(xì)的調(diào)試和運(yùn)行結(jié)果
實(shí)驗(yàn)1運(yùn)行結(jié)果:
請(qǐng)輸入年月日:
20011256
2001年12月56日信息不正確!
是否繼續(xù)輸入?(1:是,0:否)
1
請(qǐng)輸入年月日:
1900229
1900年2月29日信息不正確!
是否繼續(xù)輸入?(1:是,0:否)
0
實(shí)驗(yàn)2以最終學(xué)生信息管理系統(tǒng)為準(zhǔn)
實(shí)驗(yàn)3運(yùn)行結(jié)果:
請(qǐng)輸入矩形的寬、高,左下角點(diǎn)的橫坐標(biāo)、縱坐標(biāo):
78910
矩形的面積:56.0周長(zhǎng)30.0
請(qǐng)輸入圓的半徑,圓心的橫坐標(biāo)、縱坐標(biāo):
234
圓形的面積:12.566370614359172周長(zhǎng)12.566370614359172
請(qǐng)輸入三角形的三條邊長(zhǎng):
345
請(qǐng)分別輸入三個(gè)頂點(diǎn)的橫坐標(biāo)、縱坐標(biāo):
458548
三角形的面積:6.0周長(zhǎng)12.0
實(shí)驗(yàn)4運(yùn)行結(jié)果:
五.實(shí)驗(yàn)感想
通過本次從實(shí)驗(yàn)對(duì)java語言的基本語法有了更深刻的了解,對(duì)
java中類的定義和面向?qū)ο蟮脑O(shè)計(jì)有了基本的了解。
實(shí)驗(yàn)三異常處理程序設(shè)計(jì)
一.實(shí)驗(yàn)?zāi)康?/p>
了解Java中異常處理(exception)的作用及常用的異常類,掌
握異常處理的設(shè)計(jì)方法。
二.實(shí)驗(yàn)內(nèi)容
1、用try-catch-finally結(jié)構(gòu)實(shí)現(xiàn)異常處理。編譯并運(yùn)行程序,
寫出程序運(yùn)行結(jié)果。
2、設(shè)計(jì)一個(gè)Java程序,自定義異常類,從命令行(鍵盤)輸入
一個(gè)字符串,如果該字符串值為“XYZ”,則拋出一個(gè)異常信息“This
isaXYZ",如果從命令行輸入ABC,則沒有拋出異常。(只有XYZ和
ABC兩種輸入)。
3、聲明一個(gè)Average接口,其中約定求平均值的方法;聲明多
個(gè)類實(shí)現(xiàn)Average接口,分別給出求平均值的方法實(shí)現(xiàn)。例如,在一
組數(shù)值中,一種算法是,全部數(shù)值相加后求平均值,另一種算法是,
去掉一個(gè)最高分和一個(gè)最低分后,再將總分求平均等;使用鍵盤輸入
數(shù)據(jù)時(shí)一,對(duì)于不能轉(zhuǎn)換成數(shù)值的字符串進(jìn)行異常處理。
三.實(shí)驗(yàn)步驟
實(shí)驗(yàn)1代碼如下:
publicclassExceptionTest{
publicstaticvoidmain(String[]args){
inti=0;
Stringgreeting[]={"Hello","Only","Test"};
while(i<4){
try{
System,out.printIn(greeting[i]);
}catch(ArraylndexOutOfBoundsExceptione){
System,out.printin(〃數(shù)組越界");
}finally{
System.out.printin("總會(huì)運(yùn)行“);
}
i++;
實(shí)驗(yàn)2代碼如下:
importjava.util.Scanner;
publicclassMyExceptionextendsException{
privatestaticfinallongserialVersionUID=IL;
Stringinformation;
publicMyException(){
this,information=this.toStringO;
publicMyException(Strings){
this,information=s;
publicStringgetStringO{
returnthis,information;
}
publicstaticvoidmain(String[]args){
intsei;
Stringinput;
Scannerin=newScanner(System,in);
while(true){
try{
input=in.next();
if(input,equals(,,XYZ,/)){
thrownewMyException("ThisisaXYZ");
)
}catch(MyExceptione){
System,out.printin(e.getStringO);
}finally{
System,out.print("是否繼續(xù)輸入?(1:是,0:
否)〃);
sei=in.nextlnt();
if(sei==0)break;
實(shí)驗(yàn)3以最終學(xué)生信息管理系統(tǒng)為準(zhǔn)
四.詳細(xì)的調(diào)試和運(yùn)行結(jié)果
實(shí)驗(yàn)1運(yùn)行結(jié)果:
Hello
總會(huì)運(yùn)行
Only
總會(huì)運(yùn)行
Test
總會(huì)運(yùn)行
數(shù)組越界
總會(huì)運(yùn)行
實(shí)驗(yàn)2運(yùn)行結(jié)果:
請(qǐng)輸入XYZ或ABC:
ABC
是否繼續(xù)輸入?(1:是,0:否):
1
請(qǐng)輸入XYZ或ABC:
XYZ
ThisisaXYZ
是否繼續(xù)輸入?(1:是,0:否):
0
五.實(shí)驗(yàn)感想
通過本次實(shí)驗(yàn)對(duì)java的異常處理機(jī)制有了很深的了解。
實(shí)驗(yàn)四圖形用戶界面程序設(shè)計(jì)
1.實(shí)驗(yàn)?zāi)康模赫莆战M件的使用方法,理解委托事件處理模型。熟悉圖形用戶界面
基本組件的使用方法,熟悉如何使用布局管理器對(duì)組件進(jìn)行管理及如何使用Java
的事件處理機(jī)制。
實(shí)驗(yàn)內(nèi)容:
1、輸入一個(gè)整數(shù),分別顯示其百位、十位和個(gè)位數(shù)字,圖形用戶界面如圖4.1
所示。要求:整數(shù)文本行可編輯且能實(shí)現(xiàn)事件處理,當(dāng)輸入數(shù)據(jù)錯(cuò)誤時(shí),處
理異常,彈出對(duì)話框,提示重新輸入信息;其他文本行僅用于顯示不可編輯。
源代碼:
packagesy4;
importjava.awt.FlowLayout;
importjava.awt.Label;
importjava.awt.TextField;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.3Button;
importjavax.swing.3Frame;
importjavax.swing.OOptionPane;
publicclassMineframeextendsDFrameimplementsActionListener
{
staticTextFieldT=newTextField(20);
staticTextFieldTl=newTextField(20);
staticTextFieldT2=newTextField(20);
staticTextFieldT3=newTextField(20);
publicMineframe()
{
super("Displaythenumberofintegers");
this.setSize(300,140);
this.setLocation(300,240);
this.setLayout(newFlowLayout());
this.add(newLabel,整數(shù)”));
this.add(T);
this.add(newLabel("百位"));
T1.setEditable(false);
this.add(n);
this.add(newLabel("十位"));
T2.setEditable(false);
this.add(72);
this.add(newLabel("個(gè)位"));
73.setEditable(false);
this.add(73);
[Buttonbutton=newJButton("確定");
this.add(button);
button.addActionListener(this);
this.setResizable(true);
this.setDefaultClose0peration(EXI7^0/V_CL0SE);
this.setVisible(true);
T.addActionListener(this);
}
publicvoidactionPerformed(ActionEvente)throwsNumberFormatException
{
try
{
Stringstr=T.getText();
intnum=Integer.parselnt(str);
int
tl=num/100;
t2=(num/10)%10;
t3=(num%100)%10;
T1.setText(String.vaLueOf(tl));
72.setText(String.va^ue0/(t2));
73.setText(String.value0/(t3));
)
catch(NumberFormatExceptionnfe)
{
JOptionPane.shoMMessageDiaLog(this,”不能轉(zhuǎn)換為整數(shù)");
)
finally
{Stringstr=T.getText();
intnum=Integer.parselnt(str);
int
tl=num/100;
t2=(num/10)%10;
t3=(num%100)%10;
T1.setText(String.vaLueO/(tl));
72.setText(String.value0f(t2));
T3.setText(String.vaLueO/(t3));
}
)
publicstaticvoidmain(Stringargs[])
{
newMineframe();
}
實(shí)驗(yàn)結(jié)果:
圖Displaythen..,—□XI
整和112AJ.
消息X『);
①不能轉(zhuǎn)換為整數(shù)
確定
2、模擬實(shí)現(xiàn)一個(gè)可視化的簡(jiǎn)單計(jì)算器,至少提供進(jìn)行加法、減法、乘法、除法
等基本運(yùn)算的功能,希望能支持加正負(fù)號(hào)、求平方根、清零等其他功能。
源代碼:
packagesy4;
importjava.awt
importjavax.swing.*;
importjavax.swing.event.*;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
publicclassCounterextendsDFrameimplements
ActionListener/Z^WindowListener
privateDTextFieldtext;
private3Button[]button;
privateMessageJDialogjdialog;
staticStringope="”;〃標(biāo)記操作數(shù)
staticStringfLag=";〃標(biāo)記運(yùn)算符號(hào)
privatestaticStringnumber=''“number用來表示當(dāng)前數(shù)字
保留前一值,
staticdoublesave=0Jresutt=0>nuw=0;〃saveresult
為結(jié)果,岫用來記錄小數(shù)點(diǎn)個(gè)數(shù)
Stringoperation[]={"sqrt","backspace","C","7","8","9",
”/'"4","5","6","1","2","3","0","+"};
publicCounter()
(
super(“計(jì)算器”);
button=newJButton[operation.length];
this.setBounds(280J100,300,240);
this.setDefaultCloseOperation(FXI7^O/V_CLOSE);
JPanelpanel=newJPanel(newFlowLayout());
this.getContentPane().add(panel);
JPanelpanelR=new3Panel(newGridLayout(l,l));//
設(shè)置text文本框
panel.add(panelR);
text=new3TextField("0",6);
panelR.add(text);
JPanelpanelID[]=new3Panel[5];〃設(shè)置按鈕
for(inti=0;i<operation.length;i++){
if(i%4==0)〃四個(gè)鍵為一行
{
panelID[i/4]=newJPanel(newGridLayout(1,4));
panel.add(panelID[i/4]);
)
button[i]=newJButton(operation[i]);//這里是按鈕的布局
button[i].addActionListener(this);
panelID[i/4].add(button[i]);
}
this,setVisible(true);
jdialog=newMessageJDialog(this);
)
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==button[16])//"0"
(
if(ope=="")
{
if(!text.getText().equals("0"))
number=text.getText()+"0";
text,setText(nu/nber);
)
else
(
text.setText("0");
}
)
else
{
ope="";
text.setText("0");
}
if(ftag=="")
save=Double.parseDoubte(text.getText());
)
if(e.getSource()==button[12])//nl"
(
if(ope=="")
{
if(!text.getText().equals("0"))
{
number=text.getText()+"l";
text,setText(nu/nber);
)
else
(
text.setText("l");
}
)
else
{
ope="";
text.setText("l");
)
if(fLag=="")
save=Double.parseDoubte(text.getText());
}
if(e.getSource()==button[13])//"2'\
(
if(ope=="")
{
if(!text.getText().equals("0"))
number=text.getText()+"2";
text,setJext(number);
}
else
(
text.setText("2");
}
)
else
{
ope="";
text.setText("2");
}
if(ftag=="")
save=Double.parseDoubte(text.getText());
)
if(e.getSource()==button[14])//n3"
(
if(ope=="")
{
if(!text.getText().equals("0"))
{
number=text.getText()+"3";
text,setText(nu/nber);
)
else
(
text.setText("3");
}
)
else
{
ope="";
text.setText("3");
)
if(fLag=="")
save=Double.parseDoubte(text.getText());
}
if(e.getSource()==button[8])//"4"
(
if(ope=="")
{
if(!text.getText().equals("0"))
number=text.getText()+"4";
text,setJext(number);
}
else
(
text.setText("4");
}
)
else
{
ope="";
text.setText("4");
}
if(ftag=="")
save=Double.parseDoubte(text.getText());
)
if(e.getSource()==button[9])//”5“
(
if(ope=="")
{
if(!text.getText().equals("0"))
{
number=text.getText()+"5";
text,setText(nu/nber);
)
else
(
text.setText("5");
}
)
else
{
ope="";
text.setText("5");
)
if(fLag=="")
save=Double.parseDoubte(text.getText());
}
if(e.getSource()==button[10])//"6"
(
if(ope=="")
{
if(!text.getText().equals("0"))
number=text.getText()+"6";
text,setJext(number);
}
else
(
text.setText("6");
}
)
else
{
ope="";
text.setText("6");
}
if(ftag=="")
save=Double.parseDoubte(text.getText());
)
if(e.getSource()==button[4])//"7
(
if(ope=="")
{
if(!text.getText().equals("0"))
{
number=text.getText()+"7";
text,setText(nu/nber);
)
else
(
text.setText("7");
}
)
else
{
ope="";
text.setText("7");
)
if(fLag=="")
save=Double.parseDoubte(text.getText());
}
if(e.getSource()==button[5])//"8
(
if(ope=="")
{
if(!text.getText().equals("0"))
number=text.getText()+"8";
text,setJext(number);
}
else
(
text.setText("8");
}
)
else
{
ope="";
text.setText("8");
}
if(ftag=="")
save=Double.parseDoubte(text.getText());
)
if(e.getSource()==button[6])//"9"
(
if(ope=="")
{
if(!text.getText().equals("0"))
{
number=text.getText()+,,9";
text,setText(nu/nber);
)
else
(
text.setText("9");
}
)
else
{
ope="";
text.setText("9");
)
if(fLag=="")
save=Double.parseDoubte(text.getText());
}
if(e.getSource()==button[0])//"sqrt
(
doubled=Double.parseDoubLe(text.getText());
d=Math.sqrt(d);
text.setText(""+d);
if(^ag==?")
save=d;
)
if(e.getSource()==button[l])
doubled=Double.parseDoubLe(text.getText());
d=0-d;
text.setText("H+d);
save=d;
}
if(e.getSource()==button[2])
{
save=0;
ope="";
text.setText("");
}
if(e.getSource()==button[3])//"C"
(
num=Q;
text.setText("");
)
if(e.getSource()==button[19])//"+"
{
ftag=H+";
ope="+*';
text.setText("+");
num=Q;
}
if(e.getSource()==button[15])//
{
九*
ope="-";
text.setText
num=0;
}
if(e.getSource()==button[ll])//"*"
{
ope="*";
text.setText("*");
num=d;
}
if(e.getSource()==button[7])//"/"
ftag='7";
ope="/";
text.setText("/");
num=0;
)
if(e.getSource()==button[17])//".
(
Stringstr=text.getText
text.setText(str);
}
if(e.getSource()==button[18])//"="
{
if(fLag.equals("+"))
(
re
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030中國瓶裝酸奶行業(yè)市場(chǎng)發(fā)展分析及競(jìng)爭(zhēng)策略與投資前景研究報(bào)告
- 2025-2030中國球囊擴(kuò)張支架行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析研究報(bào)告
- 廠區(qū)綠化垃圾清運(yùn)合同范例
- 2025-2030中國環(huán)磷酰胺行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國環(huán)保公共市場(chǎng)運(yùn)行態(tài)勢(shì)與發(fā)展戰(zhàn)略建議研究研究報(bào)告
- 2025-2030中國玉米粒罐頭市場(chǎng)消費(fèi)調(diào)查與未來銷售趨勢(shì)報(bào)告版
- 華律網(wǎng)委托貸款合同范本
- 加盟減肥合同范例
- 2025-2030中國物聯(lián)網(wǎng)機(jī)器人行業(yè)市場(chǎng)發(fā)展分析及前景趨勢(shì)與投資研究報(bào)告
- 2025-2030中國牙膏行業(yè)發(fā)展分析及投資風(fēng)險(xiǎn)預(yù)測(cè)研究報(bào)告
- 大學(xué)生畢業(yè)網(wǎng)簽協(xié)議書
- 消化道穿孔患者的護(hù)理
- 小學(xué)英語-M5u1 It's big and light.教學(xué)課件設(shè)計(jì)
- 服務(wù)質(zhì)量保障制度
- 2023年4月2日湖北省事業(yè)單位聯(lián)考A類《職業(yè)能力傾向測(cè)驗(yàn)》真題及答案
- 甘12J8 屋面標(biāo)準(zhǔn)圖集
- 員工技能等級(jí)評(píng)定方案樣本
- 2023年新改版教科版科學(xué)三年級(jí)下冊(cè)活動(dòng)手冊(cè)參考答案(word可編輯)
- 2023年東方航空投資管理東方航空產(chǎn)業(yè)投資有限公司招聘筆試題庫含答案解析
- 小升初小學(xué)生簡(jiǎn)歷模板
- LY/T 1970-2011綠化用有機(jī)基質(zhì)
評(píng)論
0/150
提交評(píng)論