zoukankan      html  css  js  c++  java
  • 实验一作业整理

    [实验一]:回文数

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

    程序流程图:

    程序源代码;

    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(" %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+" ","验证",JOptionPane.PLAIN_MESSAGE);

           

              if(yanzheng.equals(result))

              {

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

              }

              else

              {

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

              }

                                

             }

    }

    实验结果截图:

     

     

     

     

    实验总结:

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

  • 相关阅读:
    MVC HtmlHelper
    Bellman-ford算法、SPFA算法求解最短路模板
    Dijkstra算法求最短路模板
    静态邻接表模板
    HDU 4511 小明系列故事——女友的考验 ( Trie图 && DP )
    HDU 4758 Walk Through Squares ( Trie图 && 状压DP && 数量限制类型 )
    HDU 3341 Lost's revenge ( Trie图 && 状压DP && 数量限制类型 )
    POJ 3691 DNA repair ( Trie图 && DP )
    POJ 2456 Aggressive cows ( 二分 && 贪心 )
    HDU 2296 Ring ( Trie图 && DP && DP状态记录)
  • 原文地址:https://www.cnblogs.com/cj-125/p/7637765.html
Copyright © 2011-2022 走看看