20145120 《Java程序设计》实验一实验报告

实验名称:Java开发环境的熟悉

实验目的与要求:

1.使用JDK编译、运行简单的Java程序;(第1周学习总结)

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

实验内容、步骤

我的实验环境是Windows+IDEA
开始调试程序

只要想要设置断点的地方的左边左键点一下就可以设置断点了,右击断点可以设置成条件断点

---
step over和step into
---
resume
---
watch窗口,按绿色的加号可以添加变量,按红色的减号可以把已添加的变量删掉,在watch窗口可以看到变量目前的值


程序代码里也能看到变量值

教材学习中的问题和解决过程

因为我是用WINDOWS+IDEA,所以实验一博客很多部分我都不能直接套用,代码调试需要的各个按钮都要要自己摸索,把鼠标移上去,等提示信息显示出来,再比较老师的截图里的内容,才能确定这个按钮的作用。

设条件断点的时候把i==3和i=3搞错了

代码调试中的问题和解决过程

我是20号,20mod5+1=1,做的是凯撒密码的实现。

1.一开始我以为应该有个scanner.nextChar的方法,然而,其实并没有。后来百度了一下,找到了toCharArray(),toCharArray()可以把字符串转化成字符数组。

Scanner scanner = new Scanner(System.in);char[] m = new char[100];char[] c = new char[100];System.out.println("请输入明文:");   //输入明文String str=scanner.nextLine();char[] chars=str.toCharArray();for (int i=0;i<chars.length;i++){m[i]=chars[i];}

因为一开始定义好了明文和密文的字符串,以为有个nextChar,所以这样写了,后来才想到可以直接把转出来的字符数组定成m就好

2.加密的部分我开始是这样写的

for (int i=0;i<100;i++){    //加密if ((m[i]>='a'&&m[i]<='w')||(m[i]>='A'&&m[i]<='W')) {c[i] = (char) (m[i] + 3);}else if ((m[i]>='x'&&m[i]<='z')||(m[i]>='X'&&m[i]<='Z')){c[i] = (char) (m[i] + 3-26);}else {c[i]=m[i];}}

后来发现程序不能运行,调试之后发现,如果明文小于100,后面都是Null,不可能再+3,所以出错了

3.后来我想尝试让可以自己输入密钥

System.out.println("请输入密钥:");   //取得密钥
int key = scanner.nextInt()%26;System.out.println("请输入明文:");   //取得明文
String str=scanner.nextLine();

发现输入密钥之后程序直接走完了,瞬间有种似曾相识的感觉,于是我试了下在中间加行scanner.nextLine();,果然成功了。

最终程序和截图

import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);char[] c = new char[100];System.out.println("请输入密钥:");   //取得密钥int key = scanner.nextInt()%26;scanner.nextLine();System.out.println("请输入明文:");   //取得明文String str=scanner.nextLine();char[] m=str.toCharArray();if (m.length>=100){System.out.println("输入过长,请控制在100英文字符以内");}for (int i=0;i<m.length;i++){    //加密if ((m[i]>='a'&& m[i]<='z')||(m[i]>='A'&& m[i]<='Z')) {c[i] = (char) (m[i]+key);if (key>0){if ((c[i]<'a'&& c[i]>'Z')||c[i]>'z'){c[i] -= 26;}}else{if ((c[i]<'a'&& c[i]>'Z')||c[i]<'A'){c[i] += 26;}}}else {c[i]=m[i];}}System.out.println("密文:");      //输出密文for (int i=0;i<m.length;i++) {System.out.printf("%c",c[i]);}}
}

实验心得与体会

这次实验本身的算法不是很难,但是感觉编程中考验到我的地方还是不少,例如我一直以为是有一个scanner.nextChar(),老实说我到现在都不懂为什么不弄个nextChar出来。这次实验让我实践到了之前学到的很多知识,例如变量的定义,“.length”的使用,“Scanner”的使用等等,也学会了很多新知识,包括关于Scanner的一些特点,如何用IDEA调试代码等等,获益良多。

参考资料

  • Java学习笔记(第8版)
  • 《Java学习笔记(第8版)》学习指导
  • 实验一 Java开发环境的熟悉(Linux + Eclipse)
  • ...

转载于:https://www.cnblogs.com/20145120hxx/p/5372027.html

20145120 《Java程序设计》实验一实验报告相关推荐

  1. python语言程序设计实践教程实验八答案_清华大学出版社-图书详情-《Java程序设计教程及实验指导》...

    前言 Java程序设计教程及实验指导Java是一门主流的面向对象的程序设计语言,是面向对象程序设计教学的主流语言.本书由有多年教学经验的专业教师编写,分为教程以及实验与课程设计两部分.教程部分从Jav ...

  2. java编写程序上机实验,《Java程序设计》上机实验

    <<Java程序设计>上机实验>由会员分享,可在线阅读,更多相关<<Java程序设计>上机实验(19页珍藏版)>请在技术文库上搜索. 1.tor的安装及 ...

  3. #《JAVA程序设计》 20155214 实验五 网络编程与安全

    <JAVA程序设计> 20155214 实验五 网络编程与安全 实验内容 掌握Socket程序的编写: 掌握密码技术的使用: 设计安全传输系统. 实验要求 要求一 结对实现中缀表达式转后缀 ...

  4. java课设推荐,《Java程序设计》课程设计报告推荐.docx

    <Java程序设计>课程设计报告推荐 <Java程序设计>课程设计报告2015-2016学年 第一学期设计题目整数进制转换学生姓名邹晓刚学 号0专业班级信管1303指导教师 姜 ...

  5. 20145202马超 2016-2017-2 《Java程序设计》第一次实验

    之前做的(http://www.cnblogs.com/tuolemi/p/5707098.html) 其余的 断点的使用 行断点 条件断点 参考(http://www.cnblogs.com/roc ...

  6. java程序设计实验报告册_20145215《Java程序设计》实验一实验报告

    实验一 Java开发环境的熟悉 实验内容及步骤 使用JDK编译.运行简单的Java程序 命令行下程序开发: 在命令行下建立实验目录,进入该目录后创建exp1目录 敲入以下代码: package exp ...

  7. java实验3_Java实验3

    实验3 常用类(2学时) 一.实验目的 1. 熟悉Java中的String.StringBuffer.Math.包装器类.Scanner类的使用方法. 2. 使用常用类解决一般性的应用问题. 3. 掌 ...

  8. java期末大作业设计_java程序设计-期末大作业报告模板.doc

    云南大学软件学院报告 Java programming – final Report School of Software, Yunnan University 个人成绩 序号学号姓名成绩12345 ...

  9. java程序设计输入输出实验_20145320《Java程序设计》第五次实验报告

    20145320<Java程序设计>第五次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18: ...

最新文章

  1. 远程办公第五天,你还在扩容吗?
  2. javaScript第五天(2)
  3. Cisco系列网络设备测试命令大全
  4. C语言和指针的本质是什么?技术大神给出答案
  5. 使用croc命令在Linux系统电脑之间传输文件和文件夹
  6. python变量分类_Python 入门系列 —— 5. 三大变量类型介绍
  7. 1.node.js 概述
  8. 申报表计算机代码是什么,金税盘的维护费在申报表上面有一个要填写减免性质代码怎么填啊 ?那个代码是什么呢?...
  9. 浏览器书签有效性验证
  10. PHP——常用的魔术方法(保姆级教学)
  11. 抖音5×5一笔连线问题无解的证明
  12. iptables工作原理及iptables命令行使用介绍
  13. 风中的纸屑——阅读编写可维护的JavaScript
  14. 51学习(2):vscode+ Embedded IDE开发环境搭建
  15. html怎么引用网页链接,浅谈网页中各种链接引用方法
  16. ToDesk for Mac v4.2.1 中文版 远程控制软件
  17. 使用nvm管理node
  18. principal java_CAS 单点登录服务端 如何获取到principal
  19. 2019计算机小高考成绩,小高考没过怎么办 2021小高考难度如何
  20. 幼儿抽象逻辑思维举例_熊孩子到底在想什么—幼儿思维干货速记!

热门文章

  1. 谈一下ACM的入门书籍及方法
  2. 只在用户登陆时运行_linux 系统的7个运行级别
  3. LDA主题模型简介及Python实现
  4. 机器学习应用量化投资没啥用?那是你方法不对!
  5. 抽取CNN网络任意层的特征,VGG模型fine-tuning实践
  6. python+flask搭建CNN在线识别手写中文网站
  7. mysql 记录操作_MySQL 记录操作
  8. java 取消引用_java代码优化——消除过期的对象引用
  9. 画出传输门、三态门、开路门_谷仓门优缺点有哪些?安装效果绝对出彩
  10. AttributeError: module ‘onnxruntime‘ has no attribute ‘InferenceSession‘