实验一《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编辑器> 课程: 完成实验.撰写实验 ...
随机推荐
- Linux基础知识梳理
Linux基础知识梳理 Linux内核最初只是由芬兰人林纳斯?托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的.Linux是一套免费使用和自由传播的类Unix操作系统,是 ...
- 多输入select
目录 多输入select IO模型 select介绍 小demo 注意 引入电子书 title: 多输入select date: 2019/3/20 17:21:34 toc: true --- 多输 ...
- elasticsearch 介绍
一.什么是elasticsearch Elasticsearch是一个基于Lucene的高度可伸缩的分布式的开源全文搜索和分析引擎.它允许您快速.实时地存储.搜索和分析大量数据.它通常用作底层引擎/技 ...
- DirectX11--实现一个3D魔方(2)
前言 上一章我们主要讲述了魔方的构造和初始化.纹理的准备工作.目前我还没有打算讲Direct3D 11关于底层绘图的实现,因此接下来这一章的重点是魔方的旋转.因为我们要的是能玩的魔方游戏,而不是一个观 ...
- idea使用记录
1.在工具栏添加工具
- 第十一节:WebApi的版本管理的几种方式
一. 背景和方案 1. 多版本管理的概念 Android .IOS等 App 存在着多版本客户端共存的问题:App 最新版已经升级到了5.0 了,但是有的用户手机上还运行着 4.8.3.9 甚至2.2 ...
- 请求数据loading
请求数据加载,CSS3实现 HTML: <!--请求数据loading--> <div class="back_loading"> <div clas ...
- day 20 - 1 序列化模块,模块的导入
序列化模块 首先我们来看一个序列:'sdfs45sfsgerg4454287789sfsf&*0' 序列 —— 就是字符串序列化 —— 从数据类型 --> 字符串的过程反序列化 —— 从 ...
- Mask_RCNN学习记录(matterport版本)
资源链接 Mask R-CNN论文 matterport版本的GitHub 基于Keras和Tensorflow GitHub上还有Facebook的官方实现版本:Detectron maskrcnn ...
- MailKit系列之附件分离
本文主要谈谈实现思路,不提供完整代码 一.分离基础 1.MIME邮件的multipart类型 引用文章:https://blog.csdn.net/wangyu13476969128/article/ ...