20145120 《Java程序设计》实验一实验报告
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调试代码等等,获益良多。
参考资料
20145120 《Java程序设计》实验一实验报告的更多相关文章
- 20145330《Java程序设计》第一次实验报告
20145330<Java程序设计>第一次实验报告 实验一Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Ja ...
- 20145320《Java程序设计》第一次实验报告
20145320<Java程序设计>第一次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.08 18: ...
- 20145317彭垚 《Java程序设计》第一次实验实验报告
20145317彭垚 <Java程序设计>第一次实验实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验名称:Java开发环境的 ...
- 20155339《java程序设计》第一次实验报告
20155339<java程序设计>第一次实验报告 实验一 java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的java程序: 2.使用IDEA编辑.编译.运行.调试java程 ...
- 20144303 《Java程序设计》第一次实验实验报告
20144303 <Java程序设计>第一次实验实验报告 北京电子科技学院(besti)实验报告 课程:java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.08 ...
- 20145240 《Java程序设计》第一次实验报告
20145240 <Java程序设计>第一次实验报告 实验内容 一.命令行下java程序开发 1.建立Code目录,输入mkdir 20145240命令建立实验目录,并使用dir命令查看目 ...
- 《Java程序设计》课程实验要求
目录 <Java程序设计>课程实验要求 注册实验楼账号 实验一 Java开发环境的熟悉 实验二<Java面向对象程序设计> 实验三 <敏捷开发与XP实践> 实验四 ...
- 20145127《java程序设计》第一次实验
<java程序设计>第一次实验 实验内容及其步骤 1.使用JDK编写简单的Java小程序: Java编译的方法有很多,最基础最简单的就是使用命令行,记事本,Java虚拟机直接进行编译,下面 ...
- #《JAVA程序设计》 20155214 实验五 网络编程与安全
<JAVA程序设计> 20155214 实验五 网络编程与安全 实验内容 掌握Socket程序的编写: 掌握密码技术的使用: 设计安全传输系统. 实验要求 要求一 结对实现中缀表达式转后缀 ...
- 《JAVA程序设计》 20155208 实验四 Android程序设计
<JAVA程序设计> 20155208 实验四 Android程序设计 实验一: 实验要求: Android Stuidio的安装测试: 参考<Java和Android开发学习指南( ...
随机推荐
- 二维码zxing源码分析(四)wifi部分
前三个部分的地址是:ZXING源码分析(一)CAMERA部分 . zxing源码分析(二)decode部分.zxing源码分析(三)result.history部分 前面三篇文章基本上已经把zxin ...
- Part 57 to 58 Why should you override ToString and Equal Method
Part 57 Why should you override ToString Method sometimes you can override ToString method like that ...
- 获取字符串对应的MD5值 (AL16UTF16LE)
CREATE OR REPLACE FUNCTION fn_md5_utf16le (InputString IN VARCHAR2) RETURN VARCHAR2 IS retval ); /** ...
- 使用pch预编译文件
首先新建一个pch文件,然后要修改这个项目的Build Setting中的Prefix Header 修改为 $(SRCROOT)/项目名称/预编译文件名: 一般pch文件的用处: 1.导入框架, ...
- 点击文字label同时选中checkbox radio
在做网页的时候一般会有一个需求:点击一段文字信息的同时选中某个checkbox 旧处理方式是在这段文字上加上点击事件触发checkbox的选中事件 //jq中://选中 $("#ID&quo ...
- php连接到数据库操作
<?php $result = mysql_query($sql); while($row = mysql_fetch_array($result)) { ?> 要写的内容代码,比如说Ht ...
- springside出现Description Resource Path Location Type
<?xml version="1.0" encoding="utf-8" ?><beans xmlns="http://www.sp ...
- (转)MongoDB分片实战 集群搭建
环境准备 Linux环境 主机 OS 备注 192.168.32.13 CentOS6.3 64位 普通PC 192.168.71.43 CentOS6.2 64位 服务器,NUMA CPU架构 Mo ...
- (转)从集中到分布,解读网络视频IT架构变迁
2006年以视频网站为代表的网络视频行业迅速崛起,IPTV.视频分享网站.视频搜索网站.提供视频服务的互动社区.交友.播客等等新兴媒体发展迅猛.网络视频行业现已成为众多资本机构关注与投资的焦点.但是在 ...
- ZLComboBox自定义控件开发详解
[引言]距离上一回写博客已经有一些时日了,之前的爱莲iLinkIT系列主要是讲解了如何用NodeJS来实现一个简单的“文件传送”软件,属于JavaScript中在服务器端的应用. 今天,我们就回归到J ...