实验一 Java开发环境的熟悉(Linux + IDEA)

实验内容

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

  2. 使用Eclipse 编辑、编译、运行、调试Java程序。

实验步骤

(一)命令行下Java程序开发

  • 首先双击桌面上的Xface终端图标,打开终端(类似Windows下的cmd),之后会自动运行shell程序,如下图所示:

  • 输入cd Code命令进入Code目录,如下图所示:

  • 输入mkdir 20135100 命令建立实验目录,使用ls命令或dir命令查看建立的目录情况。如下图所示:

  • 输入mkdir exp1建立第一个实验目录,然后输入cd exp1进入实验一目录,可以输入pwd命令查看当前工作路径,如下图所示:

  • 输入gedit Hello.java或vim Hello.java(建议大家花点时间学习一下Vim)编辑Hello.java,并输入以下代码:

package xyh;
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 + " !");
}
}

上图中敲代码时敲掉了一个“;”。

  • 输入javac -d . Hello.java命令编译代码,输入java xyh.Hello命令运行

    程序。结果如下图所示:

  • 修改代码后再次运行:

(二)IDEA下Java程序开发、调试

  • 打开IDEA,如下图所示:

  • 在IDEA中单击Create New Project,如下图所示:



  • 输入项目名称xyh,并单击Finish按钮完成新建项目,如下图所示:



  • 新建Java类,输入代码:

/**
* Created by XiaYihua on 2017/1/29.
*/
import java.util.Scanner; public class xyh{
public static void main(String[] args){
System.out.println("请输入你的名字:");
Scanner scanner = new Scanner(System.in);
String name = scanner.next();
System.out.println("Hi " + name);
}
}

  • 单击运行按钮(或使用Ctrl+F11快捷键),就可以在控制台(Console)中看到运行结果。如下图所示:

  • 单击Window->Open Perspective->Debug打开调试视图,设置断点并单步运行,如下图所示:







(三)练习实现凯撒密码,并进行测试

  • 凯撒密码代码如下:
import java.io.*;
import java.util.Scanner; public class Caesar {
public static void main(String[] args){
System.out.print("请输入密钥:");
Scanner s = new Scanner(System.in);
int a = s.nextInt();
C(a);
} public static void C(int n){
try{
char b[];
BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入一段明文:");
String str2 = br2.readLine();
b = str2.toCharArray();
System.out.println("密文为:");
int k = n;
for(int i = 0;i < str2.length();i++){
char ch = (char)((b[i] - 'a' +k)%26 +'a');
System.out.print(ch);
}
System.out.println("密钥 K = " + k);
}catch(IOException e){
System.out.println(e.getMessage());
}
}
}

运行结果:

问题

凯撒密码移位操作的实现?

解决

采取数组的形式,把输入的数字放在一个数组里,然后逐个进行移位加密,核心代码如下:

for(int i = 0;i < str2.length();i++){
char ch = (char)((b[i] - 'a' +k)%26 +'a');
System.out.print(ch);
}

本次实验的 PSP(Personal Software Process) 时间:

步骤 耗时 百分比
需求分析 40min 18.2%
设 计 50min 22.7%
代码实现 60min 27.3%
测 试 30min 13.6%
分析总结 40min 18.2%

20145226夏艺华 《Java程序设计》实验报告一的更多相关文章

  1. 20145226夏艺华 JAVA预备作业1

    博客阅读总结 关于师生关系: 学生和老师之间我觉得关系时多元化的,不能拘泥于单独的一种关系:灌输与被灌输,教授与被教授--我认为,在不同的课程阶段,师生之间的关系都可以发生变化.前期的老师更像是一个指 ...

  2. 20145226夏艺华 《Java程序设计》实验报告四

    实验四 Android开发基础 实验内容 基于Android Studio开发简单的Android应用并部署测试 了解Android组件.布局管理器的使用 掌握Android中事件处理机制 Andro ...

  3. 20145226夏艺华《网络对抗》第一次实验拓展:shellcode注入+return-to-libc

    20145226夏艺华<网络对抗>第一次实验拓展:shellcode注入+return-to-libc shellcode注入实践 编写shellcode 编写shellcode已经在之前 ...

  4. 20145226夏艺华 网络对抗技术 EXP9 web安全基础实践

    20145226夏艺华 网络对抗技术 EXP9 web安全基础实践 !!!免考项目:wannacry病毒分析+防护 一.实验后回答问题 SQL注入攻击原理,如何防御 攻击原理 "SQL注入& ...

  5. 20145226夏艺华 网络对抗技术EXP8 WEB基础实践

    20145226夏艺华 网络对抗技术EXP8 WEB基础实践 实验问题回答 1.什么是表单? 表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CG ...

  6. 20145226夏艺华 Exp6 信息搜集与漏洞扫描

    20145226夏艺华 Exp6 信息搜集与漏洞扫描 基础问题回答 哪些组织负责DNS,IP的管理? · 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器.DNS和IP地址管理 ...

  7. 20145226夏艺华 网络对抗技术 EXP7 网络欺诈技术防范

    20145226夏艺华 网络对抗技术 EXP7 网络欺诈技术防范 实践内容 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法. · 简单应用SET工具建立冒名网站 · ett ...

  8. 20145226夏艺华 网络对抗技术EXP4 恶意代码分析

    20145226夏艺华 网络对抗技术EXP4 恶意代码分析(未完成版) 回答问题 (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作 ...

  9. 20145226夏艺华 《Java程序设计》实验报告二

    实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步骤 (一)单元测试 ...

随机推荐

  1. java接口实例

    1.开发系统时,主体架构使用接口,接口构成系统的骨架2.这样就可以通过更换接口的实现类来更换系统的实现 public class printerDemo{ public static void mai ...

  2. git修改远程仓库

    三种方式都可以. 1. 修改命令 git remte origin set-url URL 2.先删后加 git remote rm origin git remote add origin git@ ...

  3. Linux中安装Nginx

    1.安装编译文件及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel 2.安装PCRE,Ngi ...

  4. jQueryeasyUI+Hibernate+struts2实现商城后台管理之添加操作时的unique验证

    1. 在admin.js中添加扩展验证的操作checkName var checkUrl = "./hytc/AdminAction_check.action";

  5. BZOJ 1001 狼抓兔子 平面图的最小割

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1001 题目大意: 见链接 思路: 求最小割,平面图的最小割等价于对偶图的最短路 直接建 ...

  6. 消息中间件--"rocketmq"01之环境搭建

    前置知识 ssh工具 连接linux工具SecureCRT 颜色设置,参考 中文乱码,参考 Linux相关知识 centos7 防火墙firewalld的基本使用,参考 启动: systemctl s ...

  7. 想要使用 for循环,就要添加 索引器

  8. EF Core 中多次从数据库查询实体数据,DbContext跟踪实体的情况

    使用EF Core时,如果多次从数据库中查询一个表的同一行数据,DbContext中跟踪(track)的实体到底有几个呢?我们下面就分情况讨论下. 数据库 首先我们的数据库中有一个Person表,其建 ...

  9. 硬盘分区表知识——详解硬盘MBR

    这片文章说得很详细,原文:http://hi.baidu.com/waybq/blog/item/3b8db64bef3dc7f583025c66.html --------------------- ...

  10. Python基础 条件判断和循环

    pyhton if 语句 if 语句后接表达式,然后用: 表示代码块. age = 20 if age >= 18: print 'your age is', age print 'adult' ...