实验一《Java开发环境的熟悉》实验报告
(一)基础操作
实验要求:
1 .建立“自己学号exp1”的目录
2 .在“自己学号exp1”目录下建立src,bin等目录
3 .javac,java的执行在“自己学号exp1”目录
4 .提交 Linux或Window或macOS中命令行下运行Java的全屏截图, 运行结果包含自己学号等证明自己身份的信息
5 .代码提交码云
思路
用'mkdir'建立文件,用'vim'编写文件,'javac'编译,运用一个'System.out.println'即可
代码:
public class ID {
public static void main(String args[]) {
System.out.println("刘雨恒");
System.out.println("20175309");
}
}
结果截图:
码云链接:
https://gitee.com/Lyh20175309/java-besti-is-lyh/tree/master/20175309exp1/src
(二)使用IDEA调试Java程序
调试代码这一块按照了老师所给的参考博客来一步一步的完成的,不知道为何,我在设置完断点后单击鼠标右键无法设置条件断点,现在仍在寻找解决方案;另外,由于我的电脑的原因,F1到F12都被自动设置了快捷键,在IDEA里无法使用,想使用的话还需要取消快捷键,造成了极大的不便。
结果截图
(三)练习实现凯撒密码并进行安全加固,并进行测试(正常情况,异常情况,边界情况)。
代码
/**
* Created by lenovo on 2019/4/2.
*/
import java.sql.SQLOutput;
import java.util.Scanner;
public class kaisa {
public static void main(String[] args) {
System.out.println("1 加密 2 解密");
Scanner in = new Scanner(System.in);
int n = in.nextInt();
if (n == 1) {
System.out.print("请输入明文:");
String str = in.next();//输入明文
String jm = "";//定义字符串jm并初始化
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);//这句话我的理解是把str的第I个值赋值给ch,即把str都装进ch中。
if (ch >= 'a' && ch <= 'z') {
if (ch < 'x') { //如果小于x,加3最多变成z,如果大于x,就必须先-26,再+3,例‘x'=24-26+3=1=’a'
ch += 3;
} else {
ch -= 26;
ch += 3;
}
}
if (ch >= 'A' && ch <= 'Z') {
if (ch < 'X') {
ch += 3;
} else {
ch -= 26;
ch += 3;
}
}
jm += ch;
}
System.out.println("密文是:" + jm);
}
else if (n == 2) {
System.out.print("请输入密文:");
String str = in.next();//输入密文
String jm = "";
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (ch >= 'a' && ch <= 'z') {
if (ch > 'c') {
ch -= 3;
} else {
ch += 26;
ch -= 3;
}
} else if (ch >= 'A' && ch <= 'Z') {
if (ch > 'C') {
ch -= 3;
} else {
ch += 26;
ch -= 3;
}
}
jm += ch;
}
System.out.println("明文是:" + jm);
}
else {
System.out.println("输入错误");
}
}
}
1.正常情况
2.异常情况
3.边界情况
后来我发现了我程序的纰漏就是无法加密数字,但一般发密文的时候数字都是用文字表示,所以我就把含有数字的当成边界情况了。
遇到的问题
1运行结果是正确的,但之后又有“输入错误”的输出。
解决办法:还是对条件语句理解的不够透彻;应该在第二个if前加一个else,否则if和if else变成了两个个体,前面if中n等于1之后跳入第二个条件,判断n此时不等于2,于是运行else那一块,所以就输出了正确结果和“输入错误”。
实验心得
1.实验1-1看起来很简单,但打好基础非常重要,涉及到的几个命令都是最基础的命令,但凡学习java都必会的,可以看出老师设计此实验的良苦用心
2.实验1-2用idea调试代码是非常重要的,作为一名程序“猿”,不仅要会开发,还要按照需求调试,学好怎样调试和使用快捷键调试是不可避免的一步,学好这些,才能理直气壮地说自己掌握了编程。
3.练习:凯撒密码看起来好像很简单(其实实际上也不难),就是一个单纯的ch=ch+3,但涉及到了一个分类讨论的思想,即判断字母是否是x,y,z。这三个字母在最后三位必须要先减26再加3;另外加密和解密的字符串jm必须要初始化,否则会输出乱码。
4.通过这次实验帮助自己查缺补漏,之前C语言的学习仍有很多没学明白的地方,自己要加把劲了。
实验一《Java开发环境的熟悉》实验报告的更多相关文章
- 20145308刘昊阳 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20145308刘昊阳 <Java程序设计>实验一报告 实验名称 Java开发环境的熟悉 实验内容 使用JDK编译.运行简单的Java程序 2.使用Eclipse 编辑.编译.运行.调试J ...
- 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20175316 盛茂淞 2018-2019-2 <Java程序设计>实验一 Java开发环境的熟悉 实验报告 一.实验要求 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA ...
- 20165327《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20165327<Java程序设计>实验二 <Java面向对象程序设计>实验报告 实验二 <Java面向对象程序设计> 一.实验报告封面 课程:Java程序设计 班 ...
- 20165205 实验一 java开发环境的熟悉 实验报告
20165205 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:刘喆君 学号:20165205 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验 ...
- 20162327实验一Java开发环境的熟悉实验报告
20162327 <程序设计与数据结构>第一次实验报告 基础知识 1.JDB的使用 使用JDB调试程序需要以下五个步骤: 1.设置断点 stop in 2.run 3.print 4.ne ...
- 实验一Java开发环境的熟悉
实验一Java开发环境的熟悉 实验内容 •命令行下Java程序开发 •IDEA下Java程序开发.调试 •练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) •实现凯撒密码 ...
- 20175316 盛茂淞 实验一 Java开发环境的熟悉
20175316 盛茂淞 实验一 Java开发环境的熟悉 实验目的 使用JDK编译.运行简单的Java程序 实验要求 1.建立"自己学号exp1"的目录 2.在"自己学号 ...
- 20155327实验一 Java开发环境的熟悉
20155327实验一 Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的java程序 2.使用IDEA编辑.编译.运行.调试java程序 实验步骤 1.使用JDK编译.运行简单的jav ...
- 20165233 实验一 Java开发环境的熟悉
20165233 实验一 Java开发环境的熟悉 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 2.完成实验.撰写实验 ...
- 20155231 java实验一 Java开发环境的熟悉
20155231 java实验一 Java开发环境的熟悉 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 完成实验.撰写实验 ...
随机推荐
- vue路由信息对象
一个路由信息对象表示当前激活的路由的状态信息,每次成功的导航后都会产生一个新的对象. path字符串,对应当前路由的路径 params对象,包含动态路由参数 query对象,URL查询参数 hash字 ...
- java 根据经纬度坐标计算两点的距离算法
/** * @Desc 根据经纬度坐标计算两点的距离算法<br> * @Author yangzhenlong <br> * @Data 2018/5/9 18:38 */ p ...
- P1822 魔法指纹
一道放在分块训练中的分块打表屑题 看了神NaCly_Fish的题解学了间隔打表(话说这么屑的东西有什么学的必要吗) 内容大多摘自大佬的题解 1,答案可递推,才适合间隔打表 什么叫可递推呢?假设f[n] ...
- 428 Setup MySQL + - 改
初步认识MySQL 安装 练习增减改 1.什么是数据库软件: 数据库,俗称数据的仓库.方便管理数据的软件(或程序) 市面上数据库软件: Oracle:甲骨文公司产品.当前最流行应用最广泛数据库软件.和 ...
- apt-get install 出问题怎么办?
有时候在用apt-get安装包的时候总是会莫名其妙出现各种问题,建议先把如下命令行按顺序敲一遍,基本上都能解决 sudo apt-get clean sudo apt-get update sudo ...
- mina statemachine解读(一)
statemachine(状态机)在维护多状态数据时有非常好的作用,现在github上star排名最前的是squirrel-foundation以及spring-statemachine,而min ...
- Linux下定时备份文件
一. 编写脚本 编写一个脚本文件,使脚本可以执行备份命令. 例如,将文件目录 /home/backups/balalala 备份到/home目录下,并压缩. 1. 创建脚本 命令格式: touch 路 ...
- 从koa-session源码解读session本质
前言 Session,又称为"会话控制",存储特定用户会话所需的属性及配置信息.存于服务器,在整个用户会话中一直存在. 然而: session 到底是什么? session 是存在 ...
- Go命令官方指南【原译】
启动错误报告 编译包和依赖项 删除目标文件和缓存的文件 显示包或符号的文档 打印Go环境信息 更新包以使用新API Gofmt(重新格式化)包源 通过处理源生成Go文件 下载并安装包和依赖项 编译并安 ...
- C++示例
Linux C++ template使用示例: #include <iostream> #include <cstring> using namespace std; temp ...