课程:Java程序设计 班级:1652班 姓名:刘津甫 学号:20165234java
指导教师:娄嘉鹏 实验日期:2018年4月2日vim
实验时间:15:35 - 17:15 实验序号:实验一安全
实验名称:Java开发环境的熟悉网络
实验题目:实现凯撒密码并进行安全加固,并进行测试(正常状况,异常状况,边界状况)dom
实验内容:
1. 使用JDK编译、运行简单的Java程序;
2. 使用IDEA 编辑、编译、运行、调试Java程序。eclipse
实验要求:
1. 没有Linux基础的同窗建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程;
2. 完成实验、撰写实验报告,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同窗”、“看书”等一概得0分)以及分析(从中能够获得什么启示,有什么收获,教训等);
3. 实验报告中统计本身的PSP(Personal Software Process)时间;
4. 严禁抄袭。编辑器
1. 我提早创建好了文件夹 20165234、目录 20165234exp1 ;ide
2. cd 20165234exp1 进入到目录中;函数
3. mkdir src
、 mkdir bin 创建src、bin目录;工具
4. javac -d bin src/Hello.java 、 java -cp bin ljf.Hello 编译运行代码。
查看目录树:
用 vim 编辑的代码以下:
显示项目视图:按「Alt+1」
新建Java类:用鼠标在「src」上点击右键,选择「New」->「Java Class」
生成main方法:在代码编辑窗口中输入「psvm」,而后按「tab」
生成 System.out.println() :
在代码编辑窗口中输入「sout」,而后按「tab」
编译,运行程序:「Run」->「Run...」,快捷键「Alt+Shift+F10」
程序设计中有三类错误:
1. 编译时错误:语法错误,初学者易犯
2. 运行时错误:异常处理
3. 逻辑错误:能编译运行,但运行结果不对
逻辑错误是你们学习中遇到最多的错误,要学会经过调试(Debug)来定位逻辑错误,经常使用技能有:
1. 自顶向下进行调试
2. 学会设置断点(行断点/函数断点/条件断点/临时断点)
3. 学会单步运行
4. 循环的调试
5. 函数(方法)的调试
6. 二分法定位错误
...
如下是调试程序的步骤:
在要设置断点的行号旁用鼠标单击一下就好了(或使用 Ctrl+F8 快捷键)。在第5行设断点:
单击菜单「Run」->「Debug...」(或使用 Alt+Shift+F9 快捷键)开始调试Java程序,程序停留在了第5行:
经过单步运行让程序运行到第6行,单步运行有两种:Step Into(快捷捷F7)和Step Over(快捷捷F8)
两种单步运行功能在运行语句时没有区别,在执行方法调用语句时,Step Into
会跳入方法实现,Step Over
会直接执行完方法,实际使用中咱们优先使用Step Over
,只有方法执行出错了,说明程序问题在被调用方法中,这时再回来经过Step Into
进入方法进行调试。
单击一下Step Over
图标(或F8
),程序停在了第5行,这时查看变量i的值,会看到sum等于11。
单步执行效率比较慢,若想让程序直接运行到第9行,首先咱们要在第9行设置断点,而后单击Resume
图标(快捷键F9
),程序就运行到了第11行:
在第9行左边断点处单击鼠标右键,弹出断点属性框,可设置条件“i==50”:
按一下F9,能够查看i的是50了:
断点只中断一次,若是想把第9,10行的for循环一会儿运行完,就须要在第12行设个条件断点。在第十二行设个断点,鼠标右击断点,点「More」或按快捷键 Ctrl+Shift+F8 打开断点设置窗口,选中「Remove Once hit」
当怀疑某个方法出错了时,就能够设置方法断点。把光标移到方法中的任一行,使用菜单「Run」->「Toggle Method Breakpoint」.
个人学号后两位是34,题目总数为9,所以个人题号为8.
代码以下:
import java.util.Random; import java.util.Scanner; public class exercise { public static void main(String[] args) { Random rd = new Random(); int a = rd.nextInt(100); System.out.println("请输入100之内的数:"); Scanner input = new Scanner(System.in); try { for (int i = 0; i < 3; i++) { int b = input.nextInt(); if (b == a) { System.out.println("你猜对了!"); break; } else if (b < a) { System.out.println("你猜小了"); } else System.out.println("你猜大了"); } } catch (Exception e) { System.out.println("输入有误,请输入100之内的数字"); } } }