我有一個學校的java大作業,java大作業小遊戲

本文目錄一覽:

急求一份Java課程設計,結課大作業,最近有考試,時間不夠,來不及做了。謝謝啦!郵箱573762475@qq.com

Java課程設計報告

題 目: 計算器

院(系):xxx學院

年級專業: xxx班

學生姓名: xxx

指導老師: xx老師

開始時間: 200x-xx-xx

完成時間: 200x-xx-xx

目 錄

1. 摘 要

2. 概要設計

3. 詳細設計

4. 測試分析

5. 參考文獻

一、摘 要

本計算器可以進行簡單的四則運算(加、減、乘、除)但僅限於十進制下,還可以進行(八進制,十進制,十六進制)之間的相互轉換,八進制最多可以輸入19位數,十進制最多可以輸入18位數,十六進制最多可以輸入14位數,backspace表示退格, clear表示初始化,在window下直接運行(Jsp2003.bat)即可,界面為灰白對稱。

二、概要設計

(1) 自定義類說明

**********************************************************

* 類名: This_number_too_big *

* 作用: 自定義的異常類,用來處理計算結果溢出 *

* 繼承的父類: Exception類 *

* 實現的接口: 沒有 *

**********************************************************

class This_number_too_big extends Exception

{

}//自定義的一個結果溢出異常類

**********************************************************

* 類名: Jsp2003 *

* 作用: 主類。 *

* 繼承的父類: Frame類 *

* 實現的接口: ItemListener類,ActionListener類 *

**********************************************************

class Jsp2003 extends Frame implements ItemListener,ActionListener

{

public int number=0,length=18;

//number是用來記錄輸入的數字個數,

//length是用來設置在不同進制下允許輸入的最多數字位數,默認為十進制 public char mark=’n’;

//設置運算符號為沒有即為‘n’,它的值是‘+’‘-’‘*’‘/’

public double data=0;

//設置運算數據為零

public char ch;

//用來臨時存放所按按鈕的第一個字符

public boolean Refresh=false;

//設置lab是否要在輸入數據的時候刷新,初始為否

主要方法說明:

————————————————————————————————

//用來處理按了運算符後的計算-

public void js() throws This_number_too_big //指定由method拋出異常

{if (mark==’n’) //沒有運算符

{mark=ch; //,則設置運算符為剛剛輸入的字符,

data=Double.parseDouble(lab.getText());//則設置運算數據為lab的值

Refresh=true;//則設置下一次輸入的時候要刷新lab

}

else //如果採用的是連續運算(即沒有使用‘=’號)則運行下面的語句

{switch (mark) //根據運算符計算結果,並把結果保存到data

{ case ‘+’: data+=Double.parseDouble(lab.getText()); break;

case ‘-‘: data-=Double.parseDouble(lab.getText()); break;

case ‘*’: data*=Double.parseDouble(lab.getText()); break;

case ‘/’: data/=Double.parseDouble(lab.getText()); break;}

lab.setText(Double.toString(data)); //顯示運算結果

mark=ch;//設置運算符為剛剛按下的運算符

Refresh=true;//則設置下一次輸入的時候要刷新lab

number=lab.getText().length();//設置輸入的字符個數

// System.out.println(lab.getText());//用來調試用的

if (dataDouble.MAX_VALUE)

//如果data超過double類型的最大值則拋出自定義的一個異常類

}

}//end js() method

—————————————————————————————————-

public void enter()//處理輸入字符

{if(Refresh==true)

//如果已經設置了 運算符則在下一次輸入數據的時候要把以前lab的內容清除掉

if(lab.getText().charAt(0)==’0′ lab.getText().length()==1)

//如果lab的內容為0則,lab的內容將被所輸入的字符代替,

//否則直接在lab的內容後面加上所輸入的字符

else

if(numberlength)

}//end enter() method

——————————————————————————————————–

//八進制或十六進制轉換成十進制I

public String goto_10(String s,long l)

//參數s: 是要轉換的字符串,由於輸入的控制,保證了字符串的合法性;

//參數l: 使用來設置是將8進制還是16進制轉換成10進制,它的有效值為8或16;

{ String str=s; //用來轉換的字符串

long j=l; //表示進制

long lg=0,jing=1;//lg用來記錄權乘和,jing用來記錄位權

char cha;//臨時記錄要轉換的字符

for(int i=1;i=str.length();i++)

{ cha=str.charAt(str.length()-i);

switch(cha)

{ case ‘1’: lg=lg+1*jing;break;

case ‘2’: lg=lg+2*jing;break;

case ‘3’: lg=lg+3*jing;break;

case ‘4’: lg=lg+4*jing;break;

case ‘5’: lg=lg+5*jing;break;

case ‘6’: lg=lg+6*jing;break;

case ‘7’: lg=lg+7*jing;break;

case ‘8’: lg=lg+8*jing;break;

case ‘9’: lg=lg+9*jing;break;

case ‘A’: lg=lg+10*jing;break;

case ‘B’: lg=lg+11*jing;break;

case ‘C’: lg=lg+12*jing;break;

case ‘D’: lg=lg+13*jing;break;

case ‘E’: lg=lg+14*jing;break;

case ‘F’: lg=lg+15*jing;break;}

jing*=j; //位權升一級,為下次使用做好準備

}

return Long.toString(lg);

}//end String goto_10() method

}

(2)程序流程圖

三、詳細設計

import java.awt.*;

import java.awt.event.*;

class This_number_too_big extends Exception

{}//自定義的一個結果溢出異常類

class Jsp2003 extends Frame implements ItemListener,ActionListener {

public Jsp2003() {

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

dispose();

System.exit(0);

}

});

}

static Jsp2003 mainFrame = new Jsp2003();

static Label lab=new Label(“0”);

static Panel pnl1=new Panel(new GridLayout(4,3,3,3));

static Panel pnl2=new Panel(new GridLayout(4,1,3,3));

static Panel pnl3=new Panel(new GridLayout(1,2,3,3));

static Panel pnl4=new Panel(new GridLayout(6,1,3,3));

static Button bt9=new Button(“9”);

static Button bt8=new Button(“8”);

static Button bt7=new Button(“7”);

static Button bt6=new Button(“6”);

static Button bt5=new Button(“5”);

static Button bt4=new Button(“4”);

static Button bt3=new Button(“3”);

static Button bt2=new Button(“2”);

static Button bt1=new Button(“1”);

static Button bt0=new Button(“0”);

static Button btdot=new Button(“.”);

static Button btequ=new Button(“=”);

static Button btadd=new Button(“+”);

static Button btsub=new Button(“-“);

static Button btmul=new Button(“*”);

static Button btdev=new Button(“/”);

static Button btA=new Button(“A”);

static Button btB=new Button(“B”);

static Button btC=new Button(“C”);

static Button btD=new Button(“D”);

static Button btE=new Button(“E”);

static Button btF=new Button(“F”);

static Checkbox ckb8=new Checkbox(“八進制”);

static Checkbox ckb10=new Checkbox(“十進制”);

static Checkbox ckb16=new Checkbox(“十六進制”);

static Button btc=new Button(“clear”);

static Button btt=new Button(“backspace”);

public int number=0,length=18;

//number是用來記錄輸入的數字個數,length是用來設置在不同進制下允許輸入的最多數字位數,默認為十進制

public char mark=’n’; //設置運算符號為沒有即為‘n’,它的值是‘+’‘-’‘*’‘/’

public double data=0; //設置運算數據為零

public char ch; //用來臨時存放所按按鈕的第一個字符

public boolean Refresh=false;//設置lab是否要在輸入數據的時候刷新,初始為否

public static void main(String args[]) {

System.out.println(“Starting Jsp2003…”);

lab.setAlignment(Label.RIGHT);

lab.setBackground(Color.lightGray);

lab.setForeground(Color.BLUE);

lab.setFont(new Font(“Serief”,Font.BOLD,18));

lab.setBounds(14,33,216,40);

mainFrame.add(lab);

CheckboxGroup grp=new CheckboxGroup();

ckb8.setCheckboxGroup(grp);

ckb10.setCheckboxGroup(grp);

ckb16.setCheckboxGroup(grp);

ckb8.setBounds(14,75,55,25);

ckb10.setBounds(69,75,55,25);

ckb16.setBounds(124,75,65,25);

ckb8.setState(false);

ckb10.setState(true);

ckb16.setState(false);

mainFrame.add(ckb8);

mainFrame.add(ckb10);

mainFrame.add(ckb16);

pnl1.setBounds(14,140,120,150);

pnl2.setBounds(144,140,40,150);

pnl3.setBounds(14,100,170,36);

pnl4.setBounds(190,100,40,190);

pnl1.add(bt7);

pnl1.add(bt8);

pnl1.add(bt9);

pnl1.add(bt4);

pnl1.add(bt5);

pnl1.add(bt6);

pnl1.add(bt1);

pnl1.add(bt2);

pnl1.add(bt3);

pnl1.add(bt0);

pnl1.add(btdot);

pnl1.add(btequ);

pnl2.add(btadd);

pnl2.add(btsub);

pnl2.add(btmul);

pnl2.add(btdev);

pnl3.add(btt);

pnl3.add(btc);

pnl4.add(btA);

pnl4.add(btB);

pnl4.add(btC);

pnl4.add(btD);

pnl4.add(btE);

pnl4.add(btF);

btA.enable(false);

btB.enable(false);

btC.enable(false);

btD.enable(false);

btE.enable(false);

btF.enable(false);

mainFrame.add(pnl1);

mainFrame.add(pnl2);

mainFrame.add(pnl3);

mainFrame.add(pnl4);

mainFrame.setResizable(false);

mainFrame.setLayout(null);

mainFrame.setSize(240,300 );

mainFrame.setTitle(“計算器”);

mainFrame.setVisible(true);

ckb8.addItemListener(mainFrame);

ckb10.addItemListener(mainFrame);

ckb16.addItemListener(mainFrame);

//把事件聆聽者向各個組鍵註冊

bt1.addActionListener(mainFrame);

bt2.addActionListener(mainFrame);

bt3.addActionListener(mainFrame);

bt4.addActionListener(mainFrame);

bt5.addActionListener(mainFrame);

bt6.addActionListener(mainFrame);

bt7.addActionListener(mainFrame);

bt8.addActionListener(mainFrame);

bt9.addActionListener(mainFrame);

bt0.addActionListener(mainFrame);

btadd.addActionListener(mainFrame);

btsub.addActionListener(mainFrame);

btmul.addActionListener(mainFrame);

btdev.addActionListener(mainFrame);

btt.addActionListener(mainFrame);

btc.addActionListener(mainFrame);

btdot.addActionListener(mainFrame);

btequ.addActionListener(mainFrame);

btA.addActionListener(mainFrame);

btB.addActionListener(mainFrame);

btC.addActionListener(mainFrame);

btD.addActionListener(mainFrame);

btE.addActionListener(mainFrame);

btF.addActionListener(mainFrame);

}// end main() mothed

//———————————————

//checkbox 事件的處理

public void itemStateChanged(ItemEvent e)

{ mark=’n’;

Refresh=false;

//規定當進制轉換時以前輸入的運算符失效

if (ckb8.getState()==true)

{ btA.enable(false);

btB.enable(false);

btC.enable(false);

btD.enable(false);

btE.enable(false);

btF.enable(false);

bt9.enable(false);

bt8.enable(false);

btdot.enable(false);

btadd.enable(false);

btmul.enable(false);

btsub.enable(false);

btdev.enable(false);

btequ.enable(false);

//在八進制的情況下對有些按件的管理

if(length==18) { lab.setText(goto10_8(lab.getText()));

number=lab.getText().length();

}

if(length==14) { lab.setText(goto_10(lab.getText(),16L));

lab.setText(goto10_8(lab.getText()));

number=lab.getText().length();

}

//將其他進制轉換成八進制

length=19;

//在八進制下允許輸入數字個數最多為19位

}

if(ckb10.getState()==true)

{ btA.enable(false);

btB.enable(false);

btC.enable(false);

btD.enable(false);

btE.enable(false);

btF.enable(false);

bt9.enable(true);

bt8.enable(true);

btdot.enable(true);

btadd.enable(true);

btmul.enable(true);

btsub.enable(true);

btdev.enable(true);

btequ.enable(true);

//在十進制的情況下對有些按件的管理

if(length==19) { lab.setText(goto_10(lab.getText(),8L));

number=lab.getText().length();}

if(length==14) { lab.setText(goto_10(lab.getText(),16L));

number=lab.getText().length();}

//進制轉換成十進制

length=18;

//在十進制下允許輸入數字個數最多為18位

}

if(ckb16.getState()==true)

{ btA.enable(true);

btB.enable(true);

btC.enable(true);

btD.enable(true);

btE.enable(true);

btF.enable(true);

bt9.enable(true);

bt8.enable(true);

btdot.enable(false);

btadd.enable(false);

btmul.enable(false);

btsub.enable(false);

btdev.enable(false);

btequ.enable(false);

//在十六進制的情況下對有些按件的管理

if(length==18) { lab.setText(goto10_16(lab.getText()));

number=lab.getText().length();}

if(length==19) { lab.setText(goto_10(lab.getText(),8L));

lab.setText(goto10_16(lab.getText()));

number=lab.getText().length();}

//將其他進制轉換成十六進制

length=14;

//在十六進制下允許輸入數字個數最多為14位

}

}//end itemStateChanged(ItemEvent e) method

//————————————————————

//按鈕事件的處理

public void actionPerformed(ActionEvent m)

{

Button btn=(Button) m.getSource();

ch=btn.getLabel().charAt(0);

switch (ch)

break;//初始化

case ‘1’: enter(); break;

case ‘2’: enter(); break;

case ‘3’: enter(); break;

case ‘4’: enter(); break;

case ‘5’: enter(); break;

case ‘6’: enter(); break;

case ‘7’: enter(); break;

case ‘8’: enter(); break;

case ‘9’: enter(); break;

case ‘0’:

if(lab.getText().charAt(0)==’0′ lab.getText().length()==1)

break;

if(numberlength)

else break;

} break;

case ‘A’: enter(); break;

case ‘B’: enter(); break;

case ‘C’: enter(); break;

case ‘D’: enter(); break;

case ‘E’: enter(); break;

case ‘F’: enter(); break;

case ‘.’: {if(Refresh==true)

if(lab.getText().indexOf(‘.’)== -1)

else

break;

}

break;

case ‘b’: {if(number==0) break;

else

else

{if (number!=1) lab.setText(lab.getText().substring(0,number));

else

lab.setText(Character.toString(lab.getText().charAt(0)));}

}

}break;

case ‘+’: try

catch(This_number_too_big e)

{lab.setText(“0”); number=0; mark=’n’;

Refresh=false; System.out.println(“The number is too big”);} break;

//如果出現異常則初始化效果如同clear鍵

case ‘-‘: try

catch(This_number_too_big e)

{lab.setText(“0”); number=0; mark=’n’;

Refresh=false; System.out.println(“The number is too big”);} break;

//如果出現異常則初始化效果如同clear鍵

case ‘*’: try

catch(This_number_too_big e)

{lab.setText(“0”); number=0; mark=’n’;

Refresh=false; System.out.println(“The number is too big”);} break;

//如果出現異常則初始化效果如同clear鍵

case ‘/’: try

catch(This_number_too_big e)

{lab.setText(“0”); number=0; mark=’n’;

Refresh=false; System.out.println(“The number is too big”);} break;

//如果出現異常則初始化效果如同clear鍵

case ‘=’: try

catch(This_number_too_big e)

{lab.setText(“0”); number=0; mark=’n’;

Refresh=false; System.out.println(“The number is too big”);} break;

//如果出現異常則初始化效果如同clear鍵

}

一個java的作業!~

import java.lang.Math;

//a+bx+cx^2=y

public class func(double a1,double b1,double c1,double x1){

double a=a1;idouble b=b1;double c=c1;double x=x1;idouble y=0;

public void function(double a,double b,double x)

{

if((b^2-4*a*c)0.0)

printf(“沒有實根”);

double x1=-(b/2a)+Math.sqrt(b^2-4*a*c)/2a;

double x2=-(b/2a)-Math.sqrt(b^2-4*a*c)/2a;

printf(“根為x1=%d,x2=%d”,x1,x2);

}

我有一個學校的java大作業,需要實現addplayer familyname,surname,username 來添加player

scanner是默認空格分割字符的

你可以把3個數隔一個空格輸入,然後依次存進數組裡

String[] s;

while (s.hasNext()) {

System.out.println(s.next());

s[]=s.next();

}自己改改看

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/254835.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:13
下一篇 2024-12-15 12:13

相關推薦

  • 小甲魚Python最新版課後作業及答案

    Python編程語言已經成為最受歡迎的計算機編程語言之一。而小甲魚的Python教程已經深受廣大編程學習者的青睞,其中課後作業及答案是學習過程中的必要部分。下面我們從幾個方面具體闡…

    編程 2025-04-29
  • Python小遊戲變現攻略

    想要通過編寫小遊戲來變現嗎?Python是一個非常受歡迎的編程語言,特別是在遊戲開發領域。在本文中,我們將介紹如何使用Python編寫遊戲並從中獲利。 一、選擇適合的遊戲類型 首先…

    編程 2025-04-28
  • 網上報名學校一般幾天可以審核完?

    網上報名已經成為了學校招生的主要手段之一,省時省力,也更加便捷。但是很多人都會有一個問題——網上報名學校一般幾天可以審核完呢?下面我們就從不同的角度來闡述這個問題。 一、學校審核機…

    編程 2025-04-28
  • 小甲魚Python課後作業及答案百度雲

    小甲魚課程是一門 Python 開發的視頻課程,自 2008 年以來一直廣受歡迎。本文主要介紹小甲魚 Python 課後作業及答案所在的百度雲地址。以下是詳細內容: 一、百度雲地址…

    編程 2025-04-27
  • 以 Python 為基礎的考研學校

    Python 是一種高級編程語言,其簡潔的語法和功能強大受到了越來越多程序員的青睞。在考研學習中,Python 提供了一個強大的工具,它可以幫助考生更高效地處理數據分析、科學計算和…

    編程 2025-04-27
  • Python開發基礎戴歆作業答案解析

    本文將從基礎語法、函數方法、常用模塊三個方面對Python開發基礎戴歆作業答案進行詳細的解析與闡述。 一、基礎語法 Python的基礎語法相對簡單易懂,但也有一些需要特別注意的地方…

    編程 2025-04-27
  • 國外學校學歷在國內的認證

    對於在國外獲得學位或者證書的人來說,將這些證書在國內認證是非常重要的。這可以在求職、轉換工作、申請進入大學或研究生院、考取執業資質等方面給予極大的幫助。下面從多個方面探討國外學校學…

    編程 2025-04-27
  • 小遊戲編程代碼可粘貼

    小遊戲編程是一種非常流行的編程方式,可以幫助人們輕鬆創建自己的小型遊戲。而小遊戲編程代碼可粘貼,則是指將代碼以文本的形式複製到剪貼板上,然後再將其粘貼到編程軟件開發環境中。這種方法…

    編程 2025-04-27
  • Python第一章作業中級用法介紹

    本文將從語言基礎、數據類型、控制語句、函數和模塊等多個方面詳細闡述Python第一章作業中級。 一、語言基礎 Python是解釋型語言,不需要編譯,在寫代碼的時候不需要定義數據類型…

    編程 2025-04-27
  • 美賽memo:一個實現作業幫助以及組隊交流的應用

    一、美賽memo的基本功能 美賽memo是一個基於Python的web應用程序,主要用於美國數學建模競賽中各題目的研究、研討,以及題目答疑、組隊交流等功能。美賽memo包含以下基本…

    編程 2025-04-12

發表回復

登錄後才能評論