A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 电玩   /  2013-4-19 22:32  /  8210 人查看  /  112 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

//程序清单3-5 计算身体质量指数  参看前面2.14题
import java.util.*;
class  ComputeAndInterpretBMI//计算身体质量指数
{
        public static void main(String[] args)
        {
                Scanner input=new Scanner(System.in);

                System.out.print("请输入以磅为单位的重量:");
                double weight =input.nextDouble();//接收重量

       System.out.print("请输入以英尺为单位的高度:");
                double height =input.nextDouble();//接收高度

                final double KIOGRAMS_PER_POUND=0.45359237;//磅与千克的转换量 常量
final double METERS_PER_INCH=0.0254;//英尺与米德转换量  常量

double weightInKiograms=weight*KIOGRAMS_PER_POUND;//千克
double heightInMeters=height*METERS_PER_INCH;//米
double bmi=weightInKiograms/(heightInMeters*heightInMeters);//BMI计算公式

System.out.println("您的BMI是"+bmi);
if(bmi<16)
        System.out.println("您体重严重偏轻");
else if(bmi<18)
        System.out.println("您体重偏轻");
else if(bmi<24)
        System.out.println("您体重正常");
else if(bmi<29)
        System.out.println("您体重超重");
else if(bmi<35)
        System.out.println("您体重严重超重");
else
        System.out.println("您体重非常严重超重");

        }
}
/*
请输入以磅为单位的重量:146
请输入以英尺为单位的高度:70
您的BMI是20.948603801493316
您体重正常
*/
回复 使用道具 举报
//程序清单3-6 计算税款 做财会跟这些大数字打交道,一点都不能错,应该很辛苦的,眼睛会看花的。
import java.util.*;
class  ComputeTax  //计算税款,难是不难,考查人的耐心与眼力
{
        public static void main(String[] args)
        {
                Scanner input=new Scanner(System.in);
                System.out.print("(0表示单身纳税人,1表示已婚共同纳税人或证实的鳏寡,\n"+
                        "2表示已婚单独纳税人,3表示家庭户主纳税人)"+
                        "请输入您的报税身份: ");
                int status=input.nextInt();//接收数字,确定身份

       System.out.print("请输入您的收入:");
           double income=input.nextDouble();

           double tax=0;

           if(status==0){  //计算单身纳税人
           if(income<=8350)
                   tax=income*0.10;
           else if(income<=33950)
                   tax=8350*0.10+(income-8350)*0.15;
           else if(income<=82250)
                   tax=8350*0.10+(33950-8350)*0.15+(income-33950)*0.25;
           else if(income<=171550)
                   tax=8350*0.10+(33950-8350)*0.15+(82250-33950)*0.25+(income-82250)*0.28;
           else if(income<=372950)
   tax=8350*0.10+(33950-8350)*0.15+(82250-33950)*0.25+(171550-82250)*0.28+(income-171550)*0.33;
           else
tax=8350*0.10+(33950-8350)*0.15+(82250-33950)*0.25+(171550-82250)*0.28+(372950-171550)*0.33+(income-372950)*0.35;
           }
           else if(status==1){//计算已婚共同纳税人或证实的鳏寡
            if(income<=16700)
                   tax=income*0.10;
           else if(income<=67900)
                   tax=16700*0.10+(income-16700)*0.15;
           else if(income<=137050)
                   tax=16700*0.10+(67900-16700)*0.15+(income-67900)*0.25;
           else if(income<=208850)
                   tax=16700*0.10+(67900-16700)*0.15+(137050-67900)*0.25+(income-137050)*0.28;
           else if(income<=372950)
   tax=16700*0.10+(67900-16700)*0.15+(137050-67900)*0.25+(208850-137050)*0.28+(income-208850)*0.33;
           else
tax=16700*0.10+(67900-16700)*0.15+(137050-67900)*0.25+(208850-137050)*0.28+(372950-208850)*0.33+(income-372950)*0.35;
           
           }
           else if(status==2){//计算已婚单独纳税人
if(income<=8350)
                   tax=income*0.10;
           else if(income<=33950)
                   tax=8350*0.10+(income-8350)*0.15;
           else if(income<=68525)
                   tax=8350*0.10+(33950-8350)*0.15+(income-33950)*0.25;
           else if(income<=104425)
                   tax=8350*0.10+(33950-8350)*0.15+(68525-33950)*0.25+(income-68525)*0.28;
           else if(income<=186475)
   tax=8350*0.10+(33950-8350)*0.15+(68525-33950)*0.25+(104425-68525)*0.28+(income-104425)*0.33;
           else
tax=8350*0.10+(33950-8350)*0.15+(68525-33950)*0.25+(104425-68525)*0.28+(186475-104425)*0.33+(income-186475)*0.35;           
           
           
           }
           else if(status==3){//计算家庭户主纳税人
if(income<=11950)
                   tax=income*0.10;
           else if(income<=45500)
                   tax=11950*0.10+(income-11950)*0.15;
           else if(income<=117450)
                   tax=11950*0.10+(45500-11950)*0.15+(income-45500)*0.25;
           else if(income<=190200)
                   tax=11950*0.10+(45500-11950)*0.15+(117450-45500)*0.25+(income-117450)*0.28;
           else if(income<=372950)
   tax=11950*0.10+(45500-11950)*0.15+(117450-45500)*0.25+(190200-117450)*0.28+(income-171550)*0.33;
           else
tax=11950*0.10+(45500-11950)*0.15+(117450-45500)*0.25+(190200-117450)*0.28+(372950-171550)*0.33+(income-372950)*0.35;   
           
           
           }
           else{
           System.out.println("错误:无效状态");
           System.exit(0);
           }

           System.out.println("应付税款是 "+(int)(tax*100)/100.0);
        }
}
/*
(0表示单身纳税人,1表示已婚共同纳税人或证实的鳏寡,
2表示已婚单独纳税人,3表示家庭户主纳税人)请输入您的报税身份: 0
请输入您的收入:400000
应付税款是 117683.5
*/

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 分数不多,请笑纳

查看全部评分

回复 使用道具 举报
//程序清单3-7 检验一个数是否能被2和3整除,是被2整数还是被3整数,是否只能被2或3两者中的一个整除
import java.util.*;
class  TestBooleanOperators  //测试布尔运算符
{
        public static void main(String[] args)
        {
                Scanner input=new Scanner(System.in);
                System.out.print("请输入一个整数:");
                int number =input.nextInt();

System.out.println(number+"能被2和3整除吗?"+(number%2==0 && number%3==0)+"\n"+
        number+"能被2或3整除吗?"+(number%2==0 || number%3==0)+"\n"+
        number+"只能被2或3中的一个整除,但不能同时使用吗?"+(number%2==0 ^ number%3==0));
        }
}
/*
请输入一个整数:18
18能被2和3整除吗?true
18能被2或3整除吗?true
18只能被2或3中的一个整除,但不能同时使用吗?false
*/
回复 使用道具 举报
//程序清单 3-8 判定闰年 毕老师曾讲过 首先,要明白闰年的定义--某年可以被4整除而不能被100整除,或者可以被400整除。
import java.util.Scanner;
class  LeapYear //判定闰年
{
        public static void main(String[] args)
        {
                Scanner input=new Scanner(System.in);
                System.out.print("请您输入年份: ");
                int year=input.nextInt();

                boolean isLeapYear=(year%4==0 && year%100 !=0)||(year%400==0);//将定义用逻辑运算符实现
System.out.println(year+"年是闰年吗? "+isLeapYear);

        }
}
/*
请您输入年份: 2013
2013年是闰年吗? false

请您输入年份: 2008
2008年是闰年吗? true
*/
回复 使用道具 举报
/*
程序清单 3-9 彩票问题
假设你想开发一个玩彩票的游戏,程序随机地产生一个两位数的彩票,提示用户输入一个两位数,
然后按照下面的规则判定用户是否能赢:
1.如果用户的输入匹配彩票的实际顺序,奖金为10000美金。
2.如果用户输入的所有数字匹配彩票的所有数字,奖金为3000美金。
3.如果用户输入的一个数字匹配彩票的一个数字,奖金为1000美金。
*/
import java.util.Scanner;
class  Lottery //抽奖
{
        public static void main(String[] args)
        {
                int lottery=(int)(Math.random()*100);//随机生成一个彩票数
               
                Scanner input=new Scanner(System.in);
                System.out.print("请输入您的彩票选号(两位数字): ");
                int guess=input.nextInt();

                int lotteryDigit1=lottery/10;  //彩票的十位数
                int lotteryDigit2=lottery%10;  //彩票的个位数

                int guessDigit1=guess/10;  //选号的十位数
                int guessDigit2=guess%10;  //选号的个位数


                System.out.println("这期彩票的有奖号码是: "+lottery);
        if(guess==lottery)
                System.out.println(" 您猜中了所有的数字并且顺序一样:恭喜您获得10000美金的奖励,欢迎您再次光临");
else if(guessDigit2==lotteryDigit1 && guessDigit1==lotteryDigit2)
System.out.println(" 您猜中了所有的数字但顺序不一样:恭喜您获得3000美金的奖励,欢迎您再次光临");
        else if(guessDigit1==lotteryDigit1 ||guessDigit1==lotteryDigit2
                ||guessDigit2==lotteryDigit1||guessDigit2==lotteryDigit2)
        System.out.println(" 您只猜中了一个的数字:恭喜您获得1000美金的奖励,欢迎您再次光临");
        else
                System.out.println(" 很遗憾!您没猜中了任何数字:不要放弃,请再接再厉,下次获大奖的可能就是您哦!");
        }
}
/*我猜彩票的手气不好,大部分应该猜的都应该是 谢谢惠顾
请输入您的彩票选号(两位数字): 45
这期彩票的有奖号码是: 26
很遗憾!您没猜中了任何数字:不要放弃,请再接再厉,下次获大奖的可能就是您哦!
*/
回复 使用道具 举报
本帖最后由 电玩 于 2013-4-27 10:56 编辑

//程序清单 3-10 以对话框的形式编写 程序清单3-3 猜生日
import javax.swing.JOptionPane;
class  GuessBirthdayUsingConfimationDialog //猜生日使用确认对话框
{
        public static void main(String[] args)
        {
                String set1=
                        "1  3  5  7\n"+
                        "9 11 13 15\n"+
                        "17 19 21 23\n"+
                        "25 27 29 31";
                String set2=
                        "2  3  6  7\n"+
                        "10  11 14 15\n"+
                        "18 19 22 23\n"+
                        "26 27 30 31";
                String set3=
                        "4  5  6  7\n"+
                        "12 13  14 15\n"+
                        "20 21  22 23\n"+
                        "28  29  30  31";
                String set4=
                        "8  9 10  11\n"+
                        "12  13 14 15\n"+
                        "24  25 26 27\n"+
                        "28   29 30  31\n";
                String set5=
                        "16 17 18 19\n"+
                        "20 21 22 23\n"+
                        "24 25 26 27\n"+
                        "28 29 30 31";

                int day=0;

               
                int answer=JOptionPane.showConfirmDialog(null,"您的出生日期在set1 中吗?\n"+set1);

                if(answer==JOptionPane.YES_OPTION)
                        day +=1;

        answer=JOptionPane.showConfirmDialog(null,"您的出生日期在set2 中吗?\n"+set2);

                if(answer==JOptionPane.YES_OPTION)
                        day +=2;

                answer=JOptionPane.showConfirmDialog(null,"您的出生日期在set3 中吗?\n"+set3);

                if(answer==JOptionPane.YES_OPTION)
                        day +=4;

                answer=JOptionPane.showConfirmDialog(null,"您的出生日期在set4 中吗?\n"+set4);

                if(answer==JOptionPane.YES_OPTION)
                        day +=8;

                answer=JOptionPane.showConfirmDialog(null,"您的出生日期在set5 中吗?\n"+set5);

                if(answer==JOptionPane.YES_OPTION)
                        day +=16;

JOptionPane.showMessageDialog(null,"您的出生日期是"+day+"!");
        
               
        }
}
更多图片 小图 大图
组图打开中,请稍候......
回复 使用道具 举报
本帖最后由 电玩 于 2013-4-27 11:05 编辑

哈哈!通过敲程序清单的代码,我翻完了第三章 选择。又可以开始编写第三章的编程练习题了。
不过之前我还是先看看 第三章的复习题。

可以从这本书的配套网站下载复习题的答案  http://www.cs.armstrong.edu/liang/intro8e/
第三章的复习题 答案:(不过是纯英文的)
回复 使用道具 举报
本帖最后由 电玩 于 2013-4-27 20:34 编辑

第三章的复习题 答案:(不过是纯英文的)具体的题目大家可以下载电子版看看
Java语言程序设计-进阶篇(原书第8版。  http://download.csdn.net/detail/lx76939412/4768179
http://download.csdn.net/download/lx76939412/4768171  Java语言程序设计-基础篇(原书第8版   

终于看集合类了,开始看 IO 视频。



  
回复 使用道具 举报
本帖最后由 电玩 于 2013-4-28 12:04 编辑

3.1(代数方面:解一元二次方程)可以使用下面的公式求一元二次方程ax[sup]2[/sup]+bx+c=0的两个根:
b[sup]2[/sup]-4ac称作一元二次方程的判别式。如果它是正值,那么一元二次方程就有两个正根。如果它为0,方程式就只有一个根。如果它是负值,方程式无实根。
编写程序,提示用户输入a,b,c的值,并且显示基于判别式的结果。如果这个判别式为正,显示两个根。如果判别式为0,显示一个根。否则,显示“该方程无实根”。
注意:可以使用Math.poe(x,0.5)来计算  根号x。

截图25.png (4.57 KB, 下载次数: 0)

截图25.png
回复 使用道具 举报
import java.util.Scanner;
class  QuadraticEquation01 //解一元二次方程
{
        public static void main(String[] args)
        {
        Scanner input=new Scanner(System.in);
                System.out.print("请输入a,b,c的值 :");
                double a=input.nextDouble();//接收a值
                double b=input.nextDouble();//接收b值
                double c=input.nextDouble();//接收c值

                double num=b*b-4*a*c;
                double r1=(-b+Math.pow(num,0.5))/2*a;
                double r2=(-b+Math.pow(num,0.5))/2*a;
                if (num>0 )
                {
          System.out.println("这个一元二次方程的两个根分别为"+r1+"和"+r2);
                }else if(num==0){
         System.out.println("这个一元二次方程只有一个根,是"+r1);
                }else
                System.out.println("该方程无实根");
        }
}
/*
请输入a,b,c的值 :1.0 3 1
这个一元二次方程的两个根分别为-0.3819660112501051和-0.3819660112501051

请输入a,b,c的值 :1 2.0 1
这个一元二次方程只有一个根,是-1.0

请输入a,b,c的值 :1 2 3
该方程无实根
*/
回复 使用道具 举报
本帖最后由 电玩 于 2013-4-28 12:28 编辑

3.2(检查一个数字是否是偶数)编写程序,读入一个整数并检查它是不是偶数。

import java.util.Scanner;
class  Even02 //检查一个数字是否是偶数
{
public static void main(String[] args)
{
  Scanner input=new Scanner(System.in);
  System.out.print("请输入一个整数:");
  int number =input.nextInt();
if (number%2==0)
{
  System.out.println(number+"是偶数吗? "+(number%2==0));
}else
  System.out.println(number+"是偶数吗? "+(number%2==0));
}
}
/*
请输入一个整数:25
25是偶数吗? false
请输入一个整数:2000
2000是偶数吗? true
*/
回复 使用道具 举报
本帖最后由 电玩 于 2013-4-28 12:43 编辑

3.3(代数方面:求解2*2线性方程)可以使用Cramer规则解下面2*2线性方程组:
a*x+b*y=e    x=(e*d-b*f)/(a*d-b*c)      y=(a*f-e*c)/(a*d-b*c)
c*x+d*y=f
编写程序,提示用户输入a,b,c,d,e和f,然后显示结果。如果ad-bc为0,报考消息“方程式无解”。

import java.util.Scanner;
class LinearEquations03 //求解2*2线性方程
{
public static void main(String[] args)
{
  Scanner input=new Scanner(System.in);
  System.out.print("请输入a,b,c,d,e,f的值 :");
  double a=input.nextDouble();//接收a值
  double b=input.nextDouble();//接收b值
  double c=input.nextDouble();//接收c值
  double d=input.nextDouble();//接收d值
  double e=input.nextDouble();//接收e值
  double f=input.nextDouble();//接收f值
  if (a*d-b*c!=0)
  {
System.out.println("该方程式中x是"+(e*d-b*f)/(a*d-b*c) +"  和y是  "+(a*f-e*c)/(a*d-b*c));
  }else
  System.out.println("该方程式无解!");
}
}
/*
请输入a,b,c,d,e,f的值 :9.0 4.0 3.0 -5.0 -6.0 -21.0
该方程式中x是-2.0  和y是  3.0
请输入a,b,c,d,e,f的值 :1.0 2.0 2.0 4.0 4.0 5.0
该方程式无解!
*/
回复 使用道具 举报
本帖最后由 电玩 于 2013-4-28 12:55 编辑

3.4(游戏:学习加法)编写程序,产生两个100以下的整数,然后提示用户输入这两个整数的和。如果答案正确。程序报告true,否则,报告flase.

import java.util.Scanner;
class LearningAddition04 //学习加法
{
public static void main(String[] args)
{
  int number1=(int)(Math.random()*100);//取随机数(10到90之间的整数)
  int number2=(int)(Math.random()*100);
        
  Scanner input=new Scanner(System.in);
  System.out.print(number1+"  +  "+number2+"  =  "+" ? " );
  int answer =input.nextInt();
  System.out.println(number1+"  +  "+number2+"  =  "+answer+"  是 "+(number1+number2==answer));
}
}
/*
8  +  39  =   ? 40
8  +  39  =  40  是 false
91  +  68  =   ? 159
91  +  68  =  159  是 true
*/
回复 使用道具 举报
本帖最后由 电玩 于 2013-4-28 13:04 编辑

3.5(游戏:三个数的加法)程序清单3-1中的程序产生了两个整数,并提示用户输入这两个整数的和。
修改该程序使之能产生三个一位整数,然后提示用户输入这三个整数的和。

import java.util.Scanner;
class AdditionQuiz05 //三个数的加法
{
public static void main(String[] args)
{
        int number1=(int)(System.currentTimeMillis()%10);//取随机数  一个一位整数 只要%10
  int number2=(int)(System.currentTimeMillis()*7%10);
  int number3=(int)(System.currentTimeMillis()*9%10);
        Scanner input=new Scanner(System.in);
        System.out.print("What is "+number1+" + "+number2+" + "+number3+" ? ");//请用户输入答案
  int answer=input.nextInt();
        System.out.println(number1+" + "+number2+" + "+number3+" = "+answer+" is "+(number1+number2+number3==answer) );//给答案判断
}
}
/*
What is 3 + 1 + 7 ? 11
3 + 1 + 7 = 11 is true
What is 9 + 3 + 1 ? 10
9 + 3 + 1 = 10 is false
*/
回复 使用道具 举报
本帖最后由 电玩 于 2013-4-28 13:17 编辑

3.6(医疗应用程序:BMI)修改程序清单3-5,让用户输入重量、英尺和英寸。例如:一个人身高是5英尺10英寸,输入的英尺值就是5而英寸值为10.


import java.util.Scanner;
class  ComputeAndInterpretBMI06//计算身体质量指数
{
public static void main(String[] args)
{
  Scanner input=new Scanner(System.in);
  System.out.print("请输入以磅为单位的重量:");
  double weight =input.nextDouble();//接收重量
       System.out.print("请输入您身高高度中的英尺整数值:");
  int height1 =input.nextInt();//接收身高高度中的英尺值
  System.out.print("请输入您身高高度中的英寸整数值:");
  int height2 =input.nextInt();//接收身高高度中的英寸值
  double height=height1+height2*0.083333333333333;//身高高度   1英尺=12英寸,1英寸=0.083333333333333英尺

  final double KIOGRAMS_PER_POUND=0.45359237;//磅与千克的转换量 常量
final double METERS_PER_INCH=0.0254;//英尺与米的转换量  常量
double weightInKiograms=weight*KIOGRAMS_PER_POUND;//千克
double heightInMeters=height*METERS_PER_INCH;//米
double bmi=weightInKiograms/(heightInMeters*heightInMeters);//BMI计算公式
System.out.println("您的BMI是"+bmi);
if(bmi<16)
System.out.println("您体重严重偏轻");
else if(bmi<18)
System.out.println("您体重偏轻");
else if(bmi<24)
System.out.println("您体重正常");
else if(bmi<29)
System.out.println("您体重超重");
else if(bmi<35)
System.out.println("您体重严重超重");
else
System.out.println("您体重非常严重超重");
}
}
/*
请输入以磅为单位的重量:146
请输入您身高高度中的英尺整数值:5
请输入您身高高度中的英寸整数值:10
您的BMI是3016.598947415041
您体重非常严重超重
*/

回复 使用道具 举报
本帖最后由 电玩 于 2013-4-29 21:19 编辑

3.7(财务应用程序:整钱兑零)修改程序清单2-10,使之只显示非零的币值单位。用单词的单数形式显示一个单位,例如:1 美元和1美分 1 dollar and 1 penny;用单词的复数形式显示多于一个单位的值,例如 2美元和3美分 2 dollars and 3 pennies.  (使用输入值23.67来测试该程序)

import java.util.Scanner;
class  ComputerChange07  //整钱兑零 单位的单复数 我们美丽的汉语就没有这么麻烦  
{
public static void main(String[] args)
{
  Scanner input=new Scanner(System.in);
        System.out.print("请输入一个钱数,例如23.67:");
  double amount=input.nextDouble();//接收钱数  23.67
  int centsAmount=(int)(amount*100);//转换为以分币为单位的数量 2367
  int dollars=centsAmount/100;  //得到美元数  23
        centsAmount=centsAmount%100;//剩下的以分币为单位的数量 67 centsAmount=centsAmount-dollars*100;
        int quarters=centsAmount/25;//得到25美分的数量值  2
        centsAmount=centsAmount%25;//剩下的以分币为单位的数量 17 centsAmount=centsAmount-quarters*25;
     
  int dimes=centsAmount/10;//得到10美分的数量值 1
  centsAmount=centsAmount%10;//剩下的以分币为单位的数量 7 centsAmount=centsAmount-dimes*10;
  int nickels= centsAmount/5;//得到5美分的数量值 1
  centsAmount=centsAmount%5;//剩下的以分币为单位的数量 2 centsAmount=centsAmount-nickels*5;
  int pennies=centsAmount;//得到1美分的数量值 2
  System.out.println("你的钱数"+amount+"可以兑换");
  if (dollars!=1)
  {
            System.out.println(dollars+" dollars and");
  }else
   System.out.println(dollars+" dollar and");
  if (quarters!=1)
  {
   System.out.println(quarters+" quarters and");
  }else
             System.out.println(quarters+" quarter and");
  if (dimes!=1)
  {
   System.out.println(dimes+" dimes and");
  }else
             System.out.println(dimes+" dime and");
  if (nickels!=1)
  {
   System.out.println(nickels+" nickels and");
  }else
             System.out.println(nickels+" nickel and");
  if (pennies!=1)
  {
   System.out.println(pennies+" pennies ");
  }else
             System.out.println(pennies+" pennie");
     
}
}
/*
请输入一个钱数,例如23.67:23.67
你的钱数23.67可以兑换
23 dollars and
2 quarters and
1 dime and
1 nickel and
2 pennies
*/
回复 使用道具 举报
本帖最后由 电玩 于 2013-4-29 21:58 编辑

3,8(对三个整数排序)编写程序对这些整数排序。这些整数都是由输入对话框输入,并分别存储在变量num1,num2,num3中。程序对这些数进行排序,使之满足num1<=num2<=num3.

import javax.swing.JOptionPane;
class  SortOfThreeIntegers08 //对三个整数排序
{
public static void main(String[] args)
{
  
  String number1String=JOptionPane.showInputDialog("请您输入第一个整数");
        int number1=Integer.parseInt(number1String);
String number2String=JOptionPane.showInputDialog("请您输入第二个整数");
        int number2=Integer.parseInt(number2String);
  String number3String=JOptionPane.showInputDialog("请您输入第三个整数");
        int number3=Integer.parseInt(number3String);
if (number1>number2)
{
int temp=number1;
    number1=number2;
number2=temp;
}
if (number1>number3)
{
int temp=number1;
    number1=number3;
number3=temp;
}
if (number2>number3)
{
int temp=number2;
    number2=number3;
number3=temp;
}
      
String output="这三个整数顺序是: \n " +number1+"<="+number2+"<="+number3;
JOptionPane.showMessageDialog(null,output);
}
}

更多图片 小图 大图
组图打开中,请稍候......

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 能有自己思考最好

查看全部评分

回复 使用道具 举报
LZ 好样~~
回复 使用道具 举报
本帖最后由 电玩 于 2013-4-29 22:45 编辑

3.9(商业方面:检查ISBN)ISBN(国际标准书号)以前是一个10位整数d1d2d3d4d5d6d7d8d9d10,最后的一位是校验和,它是使用下面的公式用另外9个数计算出来的:
(d1*1+d2*2+d3*3+d4*4+d5*5+d6*6+d7*7+d8*8+d9*9)%11
如果校验和为10,那么按照ISBN的习惯,最后一位应该表示为X。
编写程序,提示用户输入前9个数,然后显示10位ISBN(包括前面起始位置的0)。
程序应该读取一个整数输入。例如:输入的是013601267,那么程序就该显示0136012671.

import java.util.Scanner;
class  CheckISBN09 //检查ISBN
{
public static void main(String[] args)
{
  Scanner input=new Scanner(System.in);
        System.out.print("请输入ISBN(一个九位整数,例如013601267:");
  int number=input.nextInt();//接收ISBN
int d9=number%10;
int d8=number/10%10;
int d7=number/100%10;
int d6=number/1000%10;
int d5=number/10000%10;
int d4=number/100000%10;
int d3=number/1000000%10;
int d2=number/10000000%10;
int d1;
if (number/100000000<1)
{
d1=0;
}else
d1=number/100000000;
  int d10=(d1*1+d2*2+d3*3+d4*4+d5*5+d6*6+d7*7+d8*8+d9*9)%11;
  if(d10==10){
      if(d1==0)
       System.out.println("ISBN为:"+"0"+number+"X");
       else
   System.out.println("ISBN为:"+number+"X");
  }
  else {if(d1==0)
       System.out.println("ISBN为:"+"0"+number+d10);
        else
   System.out.println("ISBN为:"+number+d10);}
}
}
/*
请输入ISBN(一个九位整数,例如013601267:013601267
ISBN为:0136012671
*/
回复 使用道具 举报
梁海君 发表于 2013-4-29 21:40
LZ 好样~~

谢谢!                                      
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马