導航:首頁 > 編程語言 > java分數

java分數

發布時間:2023-05-03 23:18:33

java怎麼計算分數

1設計一個計算成績的程序。其運行截圖如下所示。
請輸入你要計算的科目數:2
請輸入第一門成績:91
請輸入第二門成績:89
您的各科成績如下:
1:91
2:89
您的總分為:180;
平均分為:90
即:首先讓用戶輸入需要計算幾門成績,然後根據用戶輸入的門數讓用戶一門一門地輸入成績,輸入完了之後,將用戶輸入的各科成績展示出來,然後輸出計算好的的總分和平均分。
要求:用數組來完成本題。

❷ java的分數運算問題

import java.util.Scanner;

public class Du{
public static void main(String args[]) throws Exception{

System.out.println("Please input a string in format xx/xx");

Scanner scanner = new Scanner(System.in);
String input = scanner.next();

String[] ary = input.split("/");

int numerator = Integer.parseInt(ary[0].trim());
int denominator = Integer.parseInt(ary[1].trim());

Fraction fra = new Fraction(numerator, denominator);
Fraction fra2 = new Fraction(15, 7);
Fraction fra3 = new Fraction(13, 12);

fra2.multiple(fra);//測試乘法
System.out.println("15/7 * 1/3 = " + fra2.toString());

fra.add(fra3);//測試加法
System.out.println("1/3 + 13/12 = " + fra.toString());
}
}

class Fraction{

private int numerator;//分子
private int denominator;//分母

public Fraction(int numerator, int denominator) throws Exception{
if(denominator == 0){//分母為0,出錯
throw new Exception("Denominator can't be ZERO!");
}

this.numerator = numerator;
this.denominator = denominator;
}

public void multiple(Fraction fract2){//分數相乘
numerator *= fract2.numerator;//分子相乘
denominator *= fract2.denominator;//分母相乘

//結果約分
int lcd = getLCD(numerator, denominator);//最大公約數
numerator = numerator / lcd;
denominator = denominator /lcd;
}

public void add(Fraction fract2){
int gcm = getGCM(denominator, fract2.denominator);//最小公倍數作為分母

numerator *= gcm / denominator;//分子通分
fract2.numerator *= gcm / fract2.denominator;//第二個分子通分

numerator += fract2.numerator;//分子相加
denominator = gcm;//分母為最小公倍數

//約分
int lcd = getLCD(numerator, denominator);

if(lcd != 1){
numerator = numerator / lcd;
denominator = denominator / lcd;
}
}

public String toString(){
return numerator + "/" + denominator;
}

//求最大公約數
public static int getLCD(int num1, int num2){
int max = Math.max(num1, num2);
int min = Math.min(num1, num2);

while(max % min != 0){
int temp = max;
max = min;
min = temp % min;
}

return min;
}

//求最小公倍數
public static int getGCM(int num1, int num2){
return num1 * num2 /getLCD(num1, num2);
}

}
-----------------
Please input a string in format xx/xx
1/3
15/7 * 1/3 = 5/7
1/3 + 13/12 = 17/12

所有分數都可以通過乘10得倍數而達到分子和分母都是int類型的,所以沒有問題的。

❸ 用java做題根據輸入的分數,輸出該成績的等級(如優秀、良好、中、幾個或不及格

import java.util.Scanner;

public class DemoTest03 {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入你的成績,按回車鍵確定...");
int grade = sc.nextInt();
char rank;
/*
確定成績的范圍,具體到數據
*/
if(grade >= 90) rank = 'S';
else if(grade >= 80) rank = 'A';
else if(grade >= 70) rank = 'B';
else if(grade >= 60) rank = 'C';
else rank = 'D';
/*
switch不能判斷表達式
在JDK1.5之前,switch循環只支持byte short char int四種數據類型.

JDK1.5 在switch循環中增加了枚舉類與byte short char int的包裝類------》對四個包裝類的支持是因為java編譯器
在底層手動進行拆箱,而對枚舉類的支持是因為枚舉類有一個ordinal方法,該方法實際上是一個int類型的數值.

JDK1.7在switch循環中增加了String類型-------》但實際上String類型有一個hashCode演算法,結果也是int類型.

而byte short char類型可以在不損失精度的情況下向上轉型成int類型.所以總的來說,可以認為switch中只支持int.
*/
switch (rank) {
case 'S' :
System.out.println("優秀");
break;
case 'A' :
System.out.println("中");
break;
case 'B' :
System.out.println("良好");
break;
case 'C' :
System.out.println("及格");
break;
case 'D' :
System.out.println("不及格");
break;
default :
System.out.println("系統錯誤,不存在的等級!");
break;
}
}
}

❹ 怎麼用java編程,實現分數的加減乘除運算

package Rational;

import java.util.StringTokenizer;
/**
* @author SunKun
* 分數四則運算
*/
public class Calculator {
int numerator; // 分子
int denominator; // 分母

Calculator(){
}

Calculator(int a,int b){
if(a == 0){
numerator = 0;
denominator = 1;
}
else{
setNumeratorAndDenominator(a,b);
}
}

void setNumeratorAndDenominator(int a, int b){ // 設置分子和分母
int c = f(Math.abs(a),Math.abs(b)); // 計算最大公約數
numerator = a / c;
denominator = b / c;
if(numerator<0 && denominator<0){
numerator = - numerator;
denominator = - denominator;
}
}

int getNumerator(){
return numerator;
}

int getDenominator(){
return denominator;
}

int f(int a,int b){ // 求a和b的最大公約數
if(a < b){
int c = a;
a = b;
b = c;
}
int r = a % b;
while(r != 0){
a = b;
b = r;;
r = a % b;
}
return b;
}

Calculator add(Calculator r){ // 加法運算
int a = r.getNumerator();
int b = r.getDenominator();
int newNumerator = numerator * b + denominator * a;
int newDenominator = denominator * b;
Calculator result = new Calculator(newNumerator,newDenominator);
return result;
}

Calculator sub(Calculator r){ // 減法運算
int a = r.getNumerator();
int b = r.getDenominator();
int newNumerator = numerator * b - denominator * a;
int newDenominator = denominator * b;
Calculator result = new Calculator(newNumerator,newDenominator);
return result;
}

Calculator muti(Calculator r){ // 乘法運算
int a = r.getNumerator();
int b = r.getDenominator();
int newNumerator = numerator * a;
int newDenominator = denominator * b;
Calculator result = new Calculator(newNumerator,newDenominator);
return result;
}

Calculator div(Calculator r){ // 除法運算
int a = r.getNumerator();
int b = r.getDenominator();
int newNumerator = numerator * b;
int newDenominator = denominator * a;
Calculator result = new Calculator(newNumerator,newDenominator);
return result;
}

static Calculator qiuyu(double left,double right){ // 求余運算
double point_result = Math.IEEEremainder(left, right);
int r1 = (int)point_result;
double r2 = point_result - r1;
int newNumerator = r1*10000 + (int)(r2*10000);
int newDenominator = 10000;
Calculator result = new Calculator(newNumerator,newDenominator);
return result;
}

static Calculator pow(double left,double right){ // 求冪運算left^right
double point_result = Math.pow(left, right);
int r1 = (int)point_result;
double r2 = point_result - r1;
int newNumerator = r1*10000 + (int)(r2*10000);
int newDenominator = 10000;
Calculator result = new Calculator(newNumerator,newDenominator);
return result;
}

static Calculator max(double left,double right){ // 求兩數中的較大值
double point_result = Math.min(left, right);
int r1 = (int)point_result;
double r2 = point_result - r1;
int newNumerator = r1*10000 + (int)(r2*10000);
int newDenominator = 10000;
Calculator result = new Calculator(newNumerator,newDenominator);
return result;
}

static Calculator min(double left,double right){ // 求兩數中的較小值
double point_result = Math.min(left, right);
int r1 = (int)point_result;
double r2 = point_result - r1;
int newNumerator = r1*10000 + (int)(r2*10000);
int newDenominator = 10000;
Calculator result = new Calculator(newNumerator,newDenominator);
return result;
}

// 封裝了具體運算,主要為對輸入進行轉換,對輸出封裝
public static void compute(String data1,String operation,String data2){
StringTokenizer fenxi = new StringTokenizer(data1,"/");
int data1_1 = Integer.parseInt(fenxi.nextToken());
int data1_2 = Integer.parseInt(fenxi.nextToken());
fenxi = new StringTokenizer(data2,"/");
int data2_1 = Integer.parseInt(fenxi.nextToken());
int data2_2 = Integer.parseInt(fenxi.nextToken());

Calculator r1 = new Calculator(data1_1,data1_2);
Calculator r2 = new Calculator(data2_1,data2_2);

Calculator result;
int a,b;
if(operation.equals("+")){ // 兩數相加
result = r1.add(r2);
a = result.getNumerator();
b = result.getDenominator();
System.out.println(data1+" "+operation+" " +data2+" = " + a + "/" + b);
}

if(operation.equals("-")){ // 兩數相減
result = r1.sub(r2);
a = result.getNumerator();
b = result.getDenominator();
System.out.println(data1+" "+operation+" " +data2+" = " + a + "/" + b);
}

if(operation.equals("*")){ // 兩數相乘
result = r1.muti(r2);
a = result.getNumerator();
b = result.getDenominator();
System.out.println(data1+" "+operation+" " +data2+" = " + a + "/" + b);
}

if(operation.equals("/")){ // 兩數相除
result = r1.div(r2);
a = result.getNumerator();
b = result.getDenominator();
System.out.println(data1+" "+operation+" " +data2+" = " + a + "/" + b);
}

if(operation.equals("%")){ // 兩數求余
double left = (double)data1_1/(double)data1_2;
double right = (double)data2_1/(double)data2_2;
result = qiuyu(left,right);
a = result.getNumerator();
b = result.getDenominator();
System.out.println(data1+" "+operation+" " +data2+" = " + a + "/" + b);
}

if(operation.equals("^")){ // 兩數求冪
double left = (double)data1_1/(double)data1_2;
double right = (double)data2_1/(double)data2_2;
result = pow(left,right);
a = result.getNumerator();
b = result.getDenominator();
System.out.println(data1+" "+operation+" " +data2+" = " + a + "/" + b);
}

if(operation.equals("max")){ // 兩數中的較大值
double left = (double)data1_1/(double)data1_2;
double right = (double)data2_1/(double)data2_2;
result = max(left,right);
a = result.getNumerator();
b = result.getDenominator();
System.out.println(data1+" "+operation+" " +data2+" = " + a + "/" + b);
}

if(operation.equals("min")){ // 兩數中的較小值
double left = (double)data1_1/(double)data1_2;
double right = (double)data2_1/(double)data2_2;
result = min(left,right);
a = result.getNumerator();
b = result.getDenominator();
System.out.println(data1+" "+operation+" " +data2+" = " + a + "/" + b);
}
}
}

❺ 用java怎麼寫分數

你可以寫個分數類,下面是參考:

public class Fraction {
private Integer numerator; // 分子;
private Integer denominator; // 分母

/**
* 構造器
*/
public Fraction() {
}

public Fraction(Integer numerator, Integer denominator) {
this.numerator = numerator;
this.denominator = denominator;
}

public Integer getDenominator() {
return denominator;
}

public void setDenominator(Integer denominator) {
this.denominator = denominator;
}

public Integer getNumerator() {
return numerator;
}

public void setNumerator(Integer numerator) {
this.numerator = numerator;
}

/**
* 求最大公約數
*
* @return
*/
private int getGCD(int a, int b) {
int max = Math.max(a, b);
int min = Math.min(a, b);
int mod = max % min;
if (mod == 0) {
return min;
} else {
return this.getGCD(mod, min);
}
}

/**
* 簡化和約分
*
* @return
*/
public Fraction simplify() {
// 格式化
if (this.numerator == 0) {
this.denominator = null;
return this;
} else if (this.denominator * this.numerator > 0
&& this.denominator < 0) {
this.denominator = Math.abs(this.denominator);
this.numerator = Math.abs(this.numerator);
return this;
} else if (this.denominator < 0) {
this.denominator = Math.abs(this.denominator);
this.numerator = -this.numerator;
return this;
}
// 約分
int gcd = this.getGCD(Math.abs(denominator), Math.abs(numerator));
if (gcd == 1) {
return this;
} else {
this.denominator = this.denominator / gcd;
this.numerator = this.numerator / gcd;
return this;
}
}

/**
* 加法
*
* @param fraction
* @return
*/
public Fraction add(Fraction fraction) {
Integer resultDenominator = Math.abs(this.denominator)
* Math.abs(fraction.getDenominator());
Integer resultNumerator = this.numerator * fraction.getDenominator()
+ this.denominator * fraction.getNumerator();
Fraction result = new Fraction(resultNumerator, resultDenominator);
return result.simplify();
}

/**
* 減法
*
* @param fraction
* @return
*/
public Fraction minus(Fraction fraction) {
Integer resultDenominator = Math.abs(this.denominator)
* Math.abs(fraction.getDenominator());
Integer resultNumerator = this.numerator * fraction.getDenominator()
- this.denominator * fraction.getNumerator();
Fraction result = new Fraction(resultNumerator, resultDenominator);
return result.simplify();
}

/**
* 乘法
*
* @param fraction
* @return
*/
public Fraction multiply(Fraction fraction) {
Fraction result = null;
if (this.numerator == 0 || fraction.numerator == 0) {
result = new Fraction(0, null);
}
Integer resultDenominator = this.denominator
* fraction.getDenominator();
Integer resultNumerator = this.numerator * fraction.getNumerator();
result = new Fraction(resultNumerator, resultDenominator);
return result.simplify();
}

/**
*除法
*
* @param fraction
* @return
*/
public Fraction divide(Fraction fraction) {
Fraction result = null;
if (this.numerator == 0) {
result = new Fraction(0, null);
}
Integer resultDenominator = this.denominator * fraction.getNumerator();
Integer resultNumerator = this.numerator * fraction.getDenominator();
result = new Fraction(resultNumerator, resultDenominator);
return result.simplify();
}

@Override
public String toString() {
return "[分子]" + this.numerator + "-[分母]" + this.denominator;
}

/**
* 測試
*
* @param args
*/
public static void main(String[] args) {
Fraction f1 = new Fraction(1, 2);
Fraction f2 = new Fraction(2, 4);
System.out.println(f1);
System.out.println(f2);
System.out.println(f2.simplify());
System.out.println(f1.add(f2));
System.out.println(f1.minus(f2));
System.out.println(f1.multiply(f2));
System.out.println(f1.divide(f2));
}
}

❻ 二分之一在java中怎麼表示

二進制數據是用0和1兩個數碼來表示的數。
Java中表示分數怎麼用 不加double 就是0.0; 記得加double。
計算機中的二進制則是一個非常微小的開關,用「開」來表示1,「關」來表示0。
「Java是一門面向對象的編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。」

閱讀全文

與java分數相關的資料

熱點內容
如何提高配套文件科學性 瀏覽:552
免費qq在線客服代碼 瀏覽:615
網路攝像機和麥克風的使用點不了 瀏覽:872
win10資源文件夾卡死 瀏覽:431
聯想筆記本如何添加網路連接 瀏覽:821
釘釘文件下載到微信用哪個瀏覽器 瀏覽:252
word怎麼刪掉第一頁 瀏覽:215
為什麼小米5不能升級系統 瀏覽:768
復古攝影教程 瀏覽:803
u盤里文件顯示文件夾空 瀏覽:574
如何編程年月日的進制 瀏覽:351
升級電腦硬體注意什麼 瀏覽:827
cnc銑床多主軸如何編程 瀏覽:640
怎麼下載網站所有圖片 瀏覽:967
遠程傳文件最快的軟體下載 瀏覽:425
怎麼弄電影網站 瀏覽:209
淘寶編程培訓班怎麼樣 瀏覽:732
公文系統物理文件 瀏覽:903
c語言編程變數冪怎麼寫 瀏覽:73
bat文件怎麼寫 瀏覽:117

友情鏈接