实验一Java开发环境的熟悉
实验一Java开发环境的熟悉
实验内容
•命令行下Java程序开发
•IDEA下Java程序开发、调试
•练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序)
•实现凯撒密码,并进行测试
实验要求
使用JDK编译、运行简单的Java程序;
使用Eclipse 编辑、编译、运行、调试Java程序。
实验步骤
前期准备
预先安装好JDK,并配置好环境变量;
继续下载idealC-2016.1.1,安装完毕后在Eclipse界面中配置JDK,为后期运行Eclipse调试程序做准备。
需求分析
实现凯撒密码,并进行测试;
需要一个主类,设置主函数,提供输入、输出功能,实现加法密码加密解密;
需要一个加密类,一个解密类,提供对于输入的明文、密文和输入的密钥进行对应的加密、解密这样一个算法,而且可以供主函数调用;
设计
主类的设计:
该类不含主函数,供调用以及输出输出和跳转使用;
设计私有成员变量result和flag,result用来记录各个功能函数的计算结果,flag用来判断除法运算是否合法;
设计四个计算功能的函数,分别实现加减乘除功能,并通过this.result来返回计算结果,通过this.flag返回判断是否合法的结果;
设计两个取值功能的函数,因为result和flag是私有成员变量,不能由别的类直接进行取值,所以设计两个取值的函数,分别为getResult()和isFlag()。
主类的设计:
首先要定义接口:java.util.Scanner;,提供用户输入的功能;
定义主函数,记录三个输入变量,分别是左右操作数(double型),以及中间的运算符(字符串型);
定义主类类变量,实现调用加密、解密类的功能,针对所需要进行加密或是解密调用不同功能的功能函数,进而实现加密或是解密;
将结果进行输出。
代码实现 & 测试
Eclipse环境下开发:
依据题目,根据已学JAVA知识,进行不同块的代码编写。
主类代码:
package cc.openhome;
import java.util.Scanner;
public class shiyan1_1 {
public static void main(String args[]) throws Exception {
System.out.println("输入[加密]进行加密[解密]进行解密,请选择");
Scanner c = new Scanner(System.in);// 第四章,P108创建Scanner对象
String s1 = c.nextLine(); // 获取本行的字符串
if (s1.equalsIgnoreCase("加密")) {// 第六章P181 判断变量s1与A是否相等,忽略大小
System.out.println("请输入明文:");
Scanner shuru = new Scanner(System.in);
String s = shuru.nextLine();
System.out.println("请输入密钥(PS:请牢记密钥):");
Scanner miyao = new Scanner(System.in);
int key = miyao.nextInt();// 将下一个输入项转换成int类型
Encryption(s, key);// 调用Encryption方法
} else if (s1.equalsIgnoreCase("解密")) {
System.out.println("请输入密文:");
Scanner shuru = new Scanner(System.in);
String s = shuru.nextLine();
System.out.println("请输入密钥:");
Scanner miyao = new Scanner(System.in);
int key = miyao.nextInt();
Decrypt(s, key);// 调用Decrypt方法
}
}
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; // 移动key%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; // 移动key%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);
}
}
利用周末的时间,自己在课下学习了实验一的实验内容,由于前面的基础掌握较差,所以实验的内容还是掌握的不透彻,本次试验主要是四个步骤1.命令行下Java程序开2.IDEA下Java程序开发、调试3.练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序)4.实现凯撒密码,并进行测试
实验一Java开发环境的熟悉的更多相关文章
- 20145205 实验一 Java开发环境的熟悉
实验内容 命令行下Java程序开发 IDEA下Java程序开发.调试 练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) 实现凯撒密码,并进行测试 实验要求 使用JDK编译 ...
- 实验一 Java开发环境的熟悉
实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没 ...
- 20145308刘昊阳 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20145308刘昊阳 <Java程序设计>实验一报告 实验名称 Java开发环境的熟悉 实验内容 使用JDK编译.运行简单的Java程序 2.使用Eclipse 编辑.编译.运行.调试J ...
- 20145225《Java程序设计》实验一 Java开发环境的熟悉(Linux + Eclipse)
20145225<Java程序设计> 实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑 ...
- 20145208实验一 Java开发环境的熟悉
20145208实验一 Java开发环境的熟悉 使用JDK编译.运行简单的java程序 命令行下程序开发 在命令行下建立实验目录,然后创建并进入该目录后的子目录. 编译并运行一个代码 使用IDEA 编 ...
- 实验一 Java开发环境的熟悉(Linux + Eclipse)
学号 20175206 实验一 <Java开发环境的熟悉>实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实 ...
- 实验一 Java开发环境的熟悉(Linux + Idea) 20175301李锦然
https://gitee.com/ShengHuoZaiDaXue/20175301.git 实验一 Java开发环境的熟悉(Linux + Idea) 实验内容 1.使用JDK编译.运行简单的Ja ...
- 2018-2019-2 实验一 Java开发环境的熟悉
实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA编辑.编译.运行.调试Java程序 实验知识点 1. JVM.JRE.JDK的安装位置与区别: 2. 命令行运行javac:ja ...
- 20175208 实验一 Java开发环境的熟悉
20175208 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1752班 姓名:张家华 学号:20175208 指导教师:娄嘉鹏 实验日期:2019年4月2日 实 ...
随机推荐
- Angular JS学习之指令
1.Angular JS通过称为指令的新属性来扩展HTML:通过内置的指令来为应用添加功能: 2.AngularJS指令:AngularJS指令是扩展的HTML属性,带有前缀ng-: **ng-app ...
- 2016.8.14 HTML5重要标签以及属性学习
1.响应网格系统,这使得它很容易把元素放在行,并指定每个元素的相对宽度 . 要注意的是: 在使用网格布局系统之前,要不把布局的元素都添加到同一个<div>中,而且这个<div> ...
- 分享Kali Linux 2016.2第41周镜像虚拟机
分享Kali Linux 2016.2第41周镜像虚拟机该虚拟机使用Kali Linux 2016.2第41周镜像文件安装而成,系统已经更新到10月12日.里面已经进行如下配置:(1)设置官方软件源( ...
- wpf ListBox,item两列不等高。
业务有这样的需求,类似瀑布流.内容两列不等高展示. 只需要继承panel,重写MeasureOverride和ArrangeOverride方法就行了. 很简单,内容都在代码里. using Syst ...
- 用super daemon xinetd进行安全配置
xinetd 可以进行安全性或者是其他的管理机制的控制,这些控制手段都可以让我们的服务更为安全,资源管理更为合理.一些对客户端开放较多权限的服务(例如telnet)或者本身不带有管理机制的服务就可以通 ...
- HBase 学习笔记
1. HBase 的特点 1.线性扩展,自动分表 region的自动分裂以及master的balance 增加datanode机器即可增加容量 增加regionserver机器即可增加读写吞吐量 2. ...
- Android MultiDex
出现的原因: 当Android系统安装一个应用的时候,有一步是对Dex进行优化,这个过程有一个专门的工具来处理,叫DexOpt.DexOpt的执行过程是在第一次加载Dex文件的时候执行的.这个过程会生 ...
- 《深入浅出Windows 10通用应用开发》
<深入浅出Windows 10通用应用开发>采用Windows 10的SDK进行重新改版,整合了<深入浅出Windows Phone 8.1应用开发>和<深入解析 ...
- 20161005 NOIP 模拟赛 T2 解题报告
beautiful 2.1 题目描述 一个长度为 n 的序列,对于每个位置 i 的数 ai 都有一个优美值,其定义是:找到序列中最 长的一段 [l, r],满足 l ≤ i ≤ r,且 [l, r] ...
- POJ 1673 EXOCENTER OF A TRIANGLE(垂心)
题目链接 折腾了半天,没想出怎么证明,以前初中老师教过,不知道怎么办,就量量...受不了,怒抄模版1Y... #include <cstdio> #include <iostream ...