zoukankan      html  css  js  c++  java
  • 20145215《Java程序设计》实验一实验报告

    实验一 Java开发环境的熟悉

    实验内容及步骤

    使用JDK编译、运行简单的Java程序

    命令行下程序开发:

    • 在命令行下建立实验目录,进入该目录后创建exp1目录
    • 敲入以下代码:
    package exp1;
    import java.util.Scanner;
    public class Hello{
          public static void main(String[] args){
                  System.out.println("Input your first name, please:");
                  Scanner s = new Scanner(System.in);
                  String name = s.next();
                  System.out.println("Hello " + name + " !");
               }
         }
    

    将Hello.java代码保存到exp1目录后,用命令行编译运行通过

    使用IDEA编辑、编译、运行、调试Java程序

    • 创建HelloJDB文件,输入下面代码:
    package exp1;
    public class HelloJDB {
           public static void main(String[] args) {
                   int i = 5;
                   int j = 6;
                   int sum = add(i, j);
                   System.out.println(sum);
                   sum = 0;
                  for(i=0; i< 100; i++)
                          sum += i;
                  System.out.println(sum);
              }
    
                  public static int add(int augend, int addend){
                  int sum = augend + addend;
                  return sum;
              }
    }
    

    编译运行结果如下:

    • IDEA的断点设置比较简单,如果你想在某行代码处设置断点,只需在该行代码的最左端鼠标左键点一下即可:

    • 接着使用Debug进行调试,代码运行到第14行停止:

    练习-1

    实现凯撒密码,并进行测试

    • 实现凯撒密码代码如下:
    package exp1;
    import java.io.*;
    public class Caesar{
        public static void main(String[] args){
            String s="";
            int k=0;
            char a[];
            System.out.print( "请问:需要加密(0)or解密(1):" );
            s=input();
            k=Integer.parseInt(s);
            if(k==0){
                System.out.print("请输入你需要加密的密钥(K):");
                s=input();
                k=Integer.parseInt(s);
                System.out.print( "请输入你需要加密的明文(a-z):" );
                s=input();
                a=s.toCharArray();
                System.out.println("加密成功!!");
                System.out.print("密文是:");
                int i=0;
                while(i<a.length) {
                    if(a[i]==' '){
                        System.out.print(' ');
                        i++;
                        continue;
                    }
                    if(a[i]>='a'&&a[i]<='z') {
                        System.out.print((char) ((a[i] + k - 'a') % 26 + 'a'));
                    }
                    i++;
                }
            }
            else{
                System.out.print("请输入你需要解密的密钥(K):");
                s=input();
                k=Integer.parseInt(s);
                System.out.print( "请输入你需要解密的密文(a-z):");
                s=input();
                a=s.toCharArray();
                System.out.println( "解密成功!!" );
                System.out.print("明文是:");
                int i=0;
                while(i<a.length) {
                    if(a[i]==' '){
                        System.out.print(' ');
                        i++;
                        continue;
                    }
                    if(a[i]>='a'&&a[i]<='z') {
                        System.out.print((char) ((a[i] - k - 'a' + 26) % 26 + 'a'));
                    }
                    i++;
                }
            }
        }
        public static String input(){
            String s="";
            try{
                BufferedReader in =new BufferedReader(new InputStreamReader(System.in));
                s=in.readLine();
            }
            catch(IOException e){}
            return s;
        }
    }
    
    • 运行结果如下:

    设计过程

    凯撒密码实质就是移位密码,密钥为3,而字符在计算机中的存储都是以ASCII码的形式存储的,所以只要在用户输入的字符串每位加3便能得加密到一串密文,解密的过程也与这类似,这两点都是比较好实现的。关键在于要取得用户输入的字符串,在之前的学习中我们学过用Scanner让用户输入字符,而在本周的学习中又学习了IO流的输入输出,因此为了检验自己对新的知识的掌握程度,我决定用IO流来让用户输入,再将字符串转换成字符数组,这样操作起来便方便了许多。最终我在原来的凯撒密码的基础上进行了改进,让用户自己输入密钥,并且成功实现了加解密的功能。

    PSP时间

    步骤 耗时 百分比
    需求分析 20min 13.8%
    设计 30min 20.7%
    代码实现 60min 41.4%
    测试 15min 10.3%
    分析总结 20min 13.8%

    心得体会

    第一次做Java实验,总体来讲过程还是比较顺利,题目也相对比较简单。我觉得做实验的时候,首先应该保持自己的思路清晰,心中要有个大概的框架,知道自己应该分几步去做,哪些地方容易实现,难点在哪。接下来就是攻破难点,通过教材或者百度解决自己的问题所在,当难点解决之后,这个实验基本就成功一大半了,剩下的问题可能就是自己在编译过程中的粗心所导致的一些小问题,这些都比较容易解决。此外,我们以后在编代码的时候要尽量模块化,这样能使得代码的可读性较强,修改起来也比较容易,不要把所有代码都写到一个main()函数里。

  • 相关阅读:
    [BUUCTF 2018]Online Tool
    [ZJCTF 2019]NiZhuanSiWei 1
    [极客大挑战 2019]PHP
    [De1CTF 2019]SSRF Me
    2018网鼎杯 Fakebook
    [CISCN2019 华北赛区 Day2 Web1]Hack World
    SUCTF checkin
    强网杯 高明的黑客
    GYCTF Ezsqli
    GYCTF 盲注【regexp注入+时间盲注】
  • 原文地址:https://www.cnblogs.com/lxm20145215----/p/5374521.html
Copyright © 2011-2022 走看看