[实验一]:回文数

程序设计思想:回文数程序比较简单,而且程序的提示比较多。首先用户输入一个数,通过除商取余把各个位上的数字都算出来,然后用判断结构判断各个位上的数字的关系,进一步判断是否构成回文数。

程序流程图:

程序源代码;

import javax.swing.JOptionPane;
public class Number
{
public static void main(String args[])
{

int number=0,d5,d4,d3,d2,d1;
String str=JOptionPane.showInputDialog("输入一个 1 至 99999 之间的数");
number=Integer.parseInt(str);
if(number>=1&&number<=99999) //判断 number 在 1 至 99999 之间的条件
{
d5=number%100000/10000; //计算 number 的最高位(万位)d5
d4=number%10000/1000; //计算 number 的千位 d4
d3=number%1000/100; //计算 number 的百位 d3
d2=number%100/10;
d1=number%10;
if(d5>0) //判断 number 是 5 位数的条件
{
System.out.println(number+"是 5 位数");
if(d1==d5&&d2==d4) //判断 number 是回文数的条件
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d5==0&&d4>0) //判断 number 是 4 位数的条件
{
System.out.println(number+"是 4 位数");
if(d1==d4&&d2==d3) //判断 number 是回文数的条件码
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d5==0&&d4==0&&d3>0) //判断 number 是 3 位数的条件
{
System.out.println(number+"是 3 位数");
if(d1==d3) //判断 number 是回文数的条件
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d2!=0)
{
System.out.println(number+"是 2 位数");
if(d1==d2)
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d1!=0)
{
System.out.println(number+"是 1 位数");
System.out.println(number+"是回文数");
}
}
else
{
System.out.printf("\n%d 不在 1 至 99999 之间",number);
}

}
}

运行结果截图:

 

 

[实验二]:验证程序

Elementary

判断结果:-2072845186

          -2072845186

          2222122110

          2222122110

源程序代码:

public class Elementary {
public static void main(String[] args) {
int i=1234578900+987543210;
System.out.println(i);
long j=1234578900+987543210;
System.out.println(j);
long k=1234578900+987543210L;
System.out.println(k);
long l=1234578900L+987543210L;
System.out.println(l);
}

}

验证截图:

 

原因分析:整型数据的范围是-2147483648—2147483647,超出此范围会发生数据溢出。而long整型数据,计算时要在数后面加上L,否则会被当做整型数据处理,所以1和2发生数据溢出,3和4正确,其中3中的1234578900倍强制转换为long型。

Elementary2

判断结果:HBird

          HBird

          A

          1

          66

          A

          67

          B

          1

          B1

          67

          1

          1B

源程序代码:

public class Elemenetary2 {
public static void main(String[] args) {
System.out.println("H"+"Bird");
System.out.println('H'+"Bird");
String s="";
char c=65;
int i=1;
System.out.println(c);
System.out.println(i);
System.out.println(c+1);
System.out.println(c++);
System.out.println(c+i);
System.out.println(s+c);
System.out.println(s+i);
System.out.println(s+c+i);
System.out.println(i+c+s);
s=s+i;
System.out.println(s);
s=s+c;
System.out.println(s);
}
}

验证截图:

 

 

原因分析:第一个是输出两个字符串H和Bird,第二个是char型H和字符串Bird,第三个是char型的c,第四个是整型的i,第五个是char型和整型数字相加,会发生强行转换,第六个c++,先输出后自加,第七个char型和int型i相加,强行转换为char型,第八个s为空字符串,输出自加后的c,第九个输出1,第十个s+c为B,i是1,输出B1,第十一i在前,强行转换,输出67,第十二s+i,得s=1,第十三s是字符串,所以s和c相加后得1B.

 

Option

判断结果:dear cj, you are 21 years oid.

源程序代码:


import javax.swing.*;
public class Option
{
public static void main(String[] args)
{
String name=JOptionPane.showInputDialog("what is your name?");
String input=JOptionPane.showInputDialog("how old are you?");
int age=Integer.parseInt(input);
String title="your infomation";
String message="dear "+name+", you are "+age+" years old.";
JOptionPane.showConfirmDialog(null,
message, title,JOptionPane.CLOSED_OPTION);
}
}

验证截图:

 

 

 

 

原因分析:通过程序输入名字和年龄,再通过视图界面输出结果。

 

[实验三]:Addition

程序设计思想:通过用户输入的两个数,进行加减乘除算法,再输出计算结果。

程序流程图:

   

 

   

 

源程序:

 

// An addition program

 

import javax.swing.JOptionPane;  // import class JOptionPane

 

public class Addition {

   public static void main( String args[] )

   {

      String firstNumber,   // first string entered by user

             secondNumber;  // second string entered by user

      int number1,          // first number to add

          number2,          // second number to add

          sum,              // sum of number1 and number2

          dif,              //两数的差

          pro,              //两数的乘积

          quo;              //两数的商

      // read in first number from user as a string

      firstNumber =

         JOptionPane.showInputDialog( "Enter first integer" );

 

      // read in second number from user as a string

      secondNumber =

         JOptionPane.showInputDialog( "Enter second integer" );

 

      // convert numbers from type String to type int

      number1 = Integer.parseInt( firstNumber );

      number2 = Integer.parseInt( secondNumber );

 

      sum = number1 + number2;     //两数相加

      dif = number1 - number2;     //两数相减

      pro = number1 * number2;     //两数相乘

      quo = number1 / number2;     //两数相除

 

      // display the results

      JOptionPane.showMessageDialog(

         null, "The sum is " + sum, "Results",

         JOptionPane.PLAIN_MESSAGE );         //视图界面输出两数之和

      JOptionPane.showMessageDialog(

       null, "The dif is " + dif, "Results",

       JOptionPane.PLAIN_MESSAGE );         //视图界面输出两数之差

      JOptionPane.showMessageDialog(

       null, "The pro is " + pro, "Results",

       JOptionPane.PLAIN_MESSAGE );         //视图界面输出两数之积

      JOptionPane.showMessageDialog(

       null, "The quo is " + quo, "Results",

       JOptionPane.PLAIN_MESSAGE );         //视图界面输出两数之商

 

      System.exit( 0 );   // terminate the program

   }

}

结果截图:(输入的数为10和2)

 

 

   

   

总结:实验三总体来说比较简单,没有太大难度,视图界面比较有趣,可以再以后的程序中多应用,唯一没有实现的地方是,我想把结果用一个输出框输出,但是没有做到,只能把结果分别输出。

[实验四]:RandomStr

程序设计思想:验证码的关键在于随机字符串的生成,字符串生成后就可以给出提示,把字符串输出,然后给一个输入的结构,根据输入的字符串是否和随机字符串相同来确定是否可以继续。

程序流程图:

 

源程序:

 

import javax.swing.JOptionPane;

public class RandomStr

{

public static void main(String[] args)

{

          //定义一个空字符串

          String yanzheng = "";

          String result = "";

          //进行6次循环

          for(int i = 0 ; i < 6 ; i ++)

          {

                    //生成一个97~122的int型的整数

                    int intVal = (int)(Math.random() * 26 + 97);

                    //将intValue强制转换为char后连接到result后面

                    result = result + (char)intVal;

          }

          yanzheng=JOptionPane.showInputDialog(null,"请输入验证码:"+result+"\n","验证",JOptionPane.PLAIN_MESSAGE);

       

          if(yanzheng.equals(result))

          {

                    JOptionPane.showMessageDialog(null, "输入正确" );

          }

          else

          {

                    JOptionPane.showMessageDialog(null, "输入错误" );    

          }

                            

         }

}

实验结果截图:

 

 

 

 

实验总结:

实验的关键点在于弄懂随机字符串是如何产生的,然后用视图界面输出,并把输入的字符串与随机字符串作比较,需要注意的是,字符串作比较需要用A.equal(B)的形式,比较结果为true或者false,然后根据结果输出。

posted on 2017-10-08 16:33  江槐  阅读(283)  评论(0编辑  收藏  举报