20155330 实验一《Java开发环境的熟悉》(Windows+IDEA)实验报告
实验知识点
- JVM、JRE、JDK的安装位置与区别;
- 命令行运行javac;java;javac -cp; java -cp;
- PATH,CLASSPATH,SOURCEPATH的设定方法与应用;
- 包管理:package;import;javac -d ;
- Eclipse(Netbeans)管理Java项目,调试:断点、单步执行等;
- Java基础语法:类型与类型转换;变量;运算符;流程控制等;
- JDK帮助文档的使用。
实验内容及步骤
使用JDK编译、运行简单的java程序
命令行下的程序开发
步骤一(新建文件夹):
- 打开windows下的cmd(Windows键+R)
- 输入cd Code命令进入Code目录
- 输入md 20155330test建立以自己学号命名的文件夹
- 输入cd 20155330test进入文件夹
- 输入md exp1建立“实验一”文件夹
- 输入cd exp1进入“实验一”文件夹

步骤二(编译、运行java程序):
- 使用vim编辑器编辑java程序,并在vim编辑器中输入以下内容

- 在命令行下编译、运行,结果如下

- 使用vim编辑器编辑java程序,并在vim编辑器中输入以下内容
使用IDEA编辑、编译、运行、调试Java程序
创建HelloJDB文件,输入下面代码:
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;
}
}
运行结果如下:

在需要设置断点的一行左侧单击鼠标,出现红色圆点。如下在第五行设置了断点,Debug单步调试后输出了结果:

在IDEA中可选择单步调试的方式有如下三种:

单击Step Over继续向下执行,执行完方法。得到运行结果sum=11。

Debug 常用快捷键
| 快捷键 | 介绍 |
|---|---|
| F7 | 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌的方法中 必备 |
| F8 | 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则不进入当前方法体内 必备 |
| F9 | 在 Debug 模式下,恢复程序运行,但是如果该断点下面代码还有断点则停在下一个断点上 必备 |
| Alt + F8 | 在 Debug 的状态下,选中对象,弹出可输入计算表达式调试框,查看该输入内容的调试结果 必备 |
| Ctrl + F8 | 在 Debug 模式下,设置光标当前行为断点,如果当前已经是断点则去掉断点 |
| Shift + F7 | 在 Debug 模式下,智能步入。断点所在行上有多个方法调用,会弹出进入哪个方法 |
| Shift + F8 | 在 Debug 模式下,跳出,表现出来的效果跟 F9 一样 |
| Ctrl + Shift + F8 | 在 Debug 模式下,指定断点进入条件 |
| Alt + Shift + F7 | 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果方法体还有方法,则会进入该内嵌的方法中,依此循环进入 |
练习:实现凯撒密码,并进行测试。
- 实现凯撒密码代码如下:
import java.util.Scanner;
public class Caesar {
public static void main(String args[]) throws Exception {
System.out.println("请输入明文:");
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
System.out.println("请输入密钥:");
Scanner sc1 = new Scanner(System.in);
int key = sc1.nextInt();
Encryption(s, key);
System.out.println("请输入密文:");
Scanner sc2 = new Scanner(System.in);
String s1 = sc2.nextLine();
System.out.println("请输入密钥:");
Scanner sc3 = new Scanner(System.in);
int key1 = sc3.nextInt();
Decrypt(s1, key1);
}
public static void Encryption(String str, int k) {// 加密
String string = "";
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c >= 'a' && c <= 'z')
{
c += k % 26;
if (c < 'a')
c += 26;
if (c > 'z')
c -= 26;
} else if (c >= 'A' && c <= 'Z')
{
c += k % 26;
if (c < 'A')
c += 26;
if (c > 'Z')
c -= 26;
}
string += c;
}
System.out.println(str + " 加密后为:" + string);
}
public static void Decrypt(String str, int n) {// 解密
int k = Integer.parseInt("-" + n);
String string = "";
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c >= 'a' && c <= 'z')
{
c += k % 26;
if (c < 'a')
c += 26;
if (c > 'z')
c -= 26;
} else if (c >= 'A' && c <= 'Z')
{
c += k % 26;
if (c < 'A')
c += 26;
if (c > 'Z')
c -= 26;
}
string += c;
}
System.out.println(str + " 解密后为:" + string);
}
}
设计思路:
凯撒密码的实质是移位密码体制,通过把字母移动一定的位数来实现加密和解密。由于字符在计算机中的存储是以ASCII码的形式存储,那么只要在用户输入的字符串每位加上一定的数字便能得加密到一串密文,解密的过程相似。在程序中给出了输入明文/密文和密钥提示。
运行结果:

实验过程中遇到的问题
- 问题1:在命令行下编译运行java时出现以下问题

- 解决方案:在尝试了更改环境变量添加ClASSPATH各种网络上常见方法后发现,是由于将JDK和JRE文件夹存在了电脑上的Program Files而不是Program Files(x86)中,在移动文件夹后问题得到了解决。

实验体会与总结
由于之前的密码学实验刚好也是类似的程序设计,所以在设计代码方面没有太多的难处,核心的思想是差不多的。需要注意的是,在java中的一些语法特别是输入输出方面与之前的C有所不同。这次的程序进行了简单的模块化,将加/解密分别进行了编写。但是java作为一门面向对象语言,在这方面的运用还有所欠缺,目前自编程序大多数还是继承了之前C语言的思想,希望在不断的学习中能够更好的运用java语言。
| 步骤 | 耗时 | 百分比 |
|---|---|---|
| 需求分析 | 10min | 10% |
| 设计 | 15min | 15% |
| 代码实现 | 50min | 50% |
| 测试 | 5min | 5% |
| 分析总结 | 20min | 20% |
20155330 实验一《Java开发环境的熟悉》(Windows+IDEA)实验报告的更多相关文章
- 20145314郑凯杰 《Java程序设计》实验一 Java开发环境的熟悉(Windows + Eclipse)实验报告
20145314郑凯杰 <Java程序设计>实验一 Java开发环境的熟悉(Windows + Eclipse)实验报告 实验要求 •使用JDK编译.运行简单的Java程序: •使用Ecl ...
- 20145239 实验一 Java开发环境的熟悉(Windows + IDEA)
实验一 Java开发环境的熟悉(Windows + IDEA) 实验内容 1.使用JDK编译.运行简单的Java程序:2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验知识点 1.JV ...
- 20155324 《Java程序设计》实验一 Java开发环境的熟悉(Windws + IDEA)实验报告
20155324 <Java程序设计>实验一 Java开发环境的熟悉(Windws + IDEA)实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA 编辑. ...
- 20155227 2016-2017-2 《Java程序设计》实验一 Java开发环境的熟悉(Windws + IDEA)实验报告
20155227 2016-2017-2 <Java程序设计>实验一 Java开发环境的熟悉(Windws + IDEA)实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: ...
- 20145219 《Java程序设计》实验一 Java开发环境的熟悉(Linux + Eclipse)实验报告
20145219 <Java程序设计>实验一 Java开发环境的熟悉(Windws + IDEA)实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA 编辑. ...
- 实验一 Java开发环境的熟悉
实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没 ...
- 20145225《Java程序设计》实验一 Java开发环境的熟悉(Linux + Eclipse)
20145225<Java程序设计> 实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑 ...
- 实验一 Java开发环境的熟悉(Linux + Idea) 20175301李锦然
https://gitee.com/ShengHuoZaiDaXue/20175301.git 实验一 Java开发环境的熟悉(Linux + Idea) 实验内容 1.使用JDK编译.运行简单的Ja ...
- 20175208 实验一 Java开发环境的熟悉
20175208 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1752班 姓名:张家华 学号:20175208 指导教师:娄嘉鹏 实验日期:2019年4月2日 实 ...
- 20165206 实验一 Java开发环境的熟悉
20165206 实验一 Java开发环境的熟悉 一.实验内容及步骤 实验一 Java开发环境的熟悉-1 建立有自己学号的实验目录. 通过vim Hello.java编辑代码. 编译.运行Hello. ...
随机推荐
- Java.io 包(字节流)
I/O流概述 在 Java 中,把不同类型的输入.输出源抽象为流(Stream),而其中输入或输出的数据则称为数据流(Data Stream),用统一的接口表示,从而使程序设计简单明了.流是一组有顺序 ...
- Burp Suite使用介绍总结
Burp Suite使用介绍(一) 小乐天 · 2014/05/01 19:54 Getting Started Burp Suite 是用于攻击web 应用程序的集成平台.它包含了许多工具,并为这些 ...
- Python运算符和数据类型
一.Python的逻辑运算符 1.数字运算符: 运算符 描述 例子 + 加 - 两个对象相加 a + b 输出结果 30 - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10 * ...
- 记录c++本地文件读取组装
class ErrorCodeConfig{ public: ErrorCodeConfig(){} ErrorCodeConfig(const ErrorCodeConfig&)=delet ...
- BZOJ 1015 星球大战starwar 逆向并查集
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1015 题目大意: 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个 ...
- 程序人生:02我来告诉你,一个草根程序员如何进入BAT
本文摘自左潇龙博客,原文出处:http://www.cnblogs.com/zuoxiaolong/p/life54.html 引言 首先声明,不要再问LZ谁是林萧,林萧就是某著名程序员小说的主角名字 ...
- ethereumjs/ethereumjs-blockchain-1-简介和API
https://github.com/ethereumjs/ethereumjs-blockchain SYNOPSIS概要 A module to store and interact with b ...
- CodeForces - 999D Equalize the Remainders (模拟+set)
You are given an array consisting of nn integers a1,a2,…,ana1,a2,…,an , and a positive integer mm . ...
- 信息: Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level
四月 , :: 下午 org.apache.coyote.http11.AbstractHttp11Processor process 信息: Error parsing HTTP request h ...
- zookeeper启动时报错:Error contacting service. It is probably not running问题
查看zookeeper.out发现启动日志报错未找到java路径. 启动日志位于zookeeper-4.0.10/bin目录下 修改/etc/profile中环境变量得以解决.