20145215《Java程序设计》实验一实验报告
实验一 Java开发环境的熟悉
实验内容及步骤
使用JDK编译、运行简单的Java程序
命令行下程序开发:
- 在命令行下建立实验目录,进入该目录后创建exp1目录
- 敲入以下代码:
package exp1;
import java.util.Scanner;
public class Hello{
public static void main(String[] args){
System.out.println("Input your first name, please:");
Scanner s = new Scanner(System.in);
String name = s.next();
System.out.println("Hello " + name + " !");
}
}
将Hello.java代码保存到exp1目录后,用命令行编译运行通过

使用IDEA编辑、编译、运行、调试Java程序
- 创建HelloJDB文件,输入下面代码:
package exp1;
public class HelloJDB {
public static void main(String[] args) {
int i = 5;
int j = 6;
int sum = add(i, j);
System.out.println(sum);
sum = 0;
for(i=0; i< 100; i++)
sum += i;
System.out.println(sum);
}
public static int add(int augend, int addend){
int sum = augend + addend;
return sum;
}
}
编译运行结果如下:

IDEA的断点设置比较简单,如果你想在某行代码处设置断点,只需在该行代码的最左端鼠标左键点一下即可:

接着使用Debug进行调试,代码运行到第14行停止:


练习-1
实现凯撒密码,并进行测试
- 实现凯撒密码代码如下:
package exp1;
import java.io.*;
public class Caesar{
public static void main(String[] args){
String s="";
int k=0;
char a[];
System.out.print( "请问:需要加密(0)or解密(1):" );
s=input();
k=Integer.parseInt(s);
if(k==0){
System.out.print("请输入你需要加密的密钥(K):");
s=input();
k=Integer.parseInt(s);
System.out.print( "请输入你需要加密的明文(a-z):" );
s=input();
a=s.toCharArray();
System.out.println("加密成功!!");
System.out.print("密文是:");
int i=0;
while(i<a.length) {
if(a[i]==' '){
System.out.print(' ');
i++;
continue;
}
if(a[i]>='a'&&a[i]<='z') {
System.out.print((char) ((a[i] + k - 'a') % 26 + 'a'));
}
i++;
}
}
else{
System.out.print("请输入你需要解密的密钥(K):");
s=input();
k=Integer.parseInt(s);
System.out.print( "请输入你需要解密的密文(a-z):");
s=input();
a=s.toCharArray();
System.out.println( "解密成功!!" );
System.out.print("明文是:");
int i=0;
while(i<a.length) {
if(a[i]==' '){
System.out.print(' ');
i++;
continue;
}
if(a[i]>='a'&&a[i]<='z') {
System.out.print((char) ((a[i] - k - 'a' + 26) % 26 + 'a'));
}
i++;
}
}
}
public static String input(){
String s="";
try{
BufferedReader in =new BufferedReader(new InputStreamReader(System.in));
s=in.readLine();
}
catch(IOException e){}
return s;
}
}
- 运行结果如下:


设计过程
凯撒密码实质就是移位密码,密钥为3,而字符在计算机中的存储都是以ASCII码的形式存储的,所以只要在用户输入的字符串每位加3便能得加密到一串密文,解密的过程也与这类似,这两点都是比较好实现的。关键在于要取得用户输入的字符串,在之前的学习中我们学过用Scanner让用户输入字符,而在本周的学习中又学习了IO流的输入输出,因此为了检验自己对新的知识的掌握程度,我决定用IO流来让用户输入,再将字符串转换成字符数组,这样操作起来便方便了许多。最终我在原来的凯撒密码的基础上进行了改进,让用户自己输入密钥,并且成功实现了加解密的功能。
PSP时间
| 步骤 | 耗时 | 百分比 |
|---|---|---|
| 需求分析 | 20min | 13.8% |
| 设计 | 30min | 20.7% |
| 代码实现 | 60min | 41.4% |
| 测试 | 15min | 10.3% |
| 分析总结 | 20min | 13.8% |
心得体会
第一次做Java实验,总体来讲过程还是比较顺利,题目也相对比较简单。我觉得做实验的时候,首先应该保持自己的思路清晰,心中要有个大概的框架,知道自己应该分几步去做,哪些地方容易实现,难点在哪。接下来就是攻破难点,通过教材或者百度解决自己的问题所在,当难点解决之后,这个实验基本就成功一大半了,剩下的问题可能就是自己在编译过程中的粗心所导致的一些小问题,这些都比较容易解决。此外,我们以后在编代码的时候要尽量模块化,这样能使得代码的可读性较强,修改起来也比较容易,不要把所有代码都写到一个main()函数里。
20145215《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开发学习指南( ...
随机推荐
- [windows]禁止指定用户使用远程桌面服务登录
windows2003下禁止用户远程登录的方法如下: 1.打开控制面板 > 管理工具 > 本地安全策略 2.安全策略-->本地策略-->用户权限分配-->通过终端服务拒绝 ...
- PHP错误日志控制(display_errors和error_reporting)
display_errors和error_reporting是php程序调试过程中两个非常重要的参数,下面就来介绍一下这两个错误日志的配置如何开启和关闭: 我们知道在产品的生产环境肯定是不能够显示错误 ...
- 在IE8等不支持placeholder属性的浏览器中模拟placeholder效果
placeholder是一个很有用的属性,可以提示用户在input框中输入正确的内容,但是IE8以及IE8一下的浏览器不支持该属性,我们可以使用js来模拟相似的效果.下面直接上代码: <!doc ...
- Redis的数据类型及操作
Strings 最简单的类型,一个Key对应一个Value,string类型是二进制安全的.Redis的string可以包含任何数据,如图片或序列化的对象 操作 Set:设置key对应的值为strin ...
- poj 1144 Network 图的割顶判断模板
Network Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 8797 Accepted: 4116 Descripti ...
- GMT与UTC简介
一.简介 许多人都知道两地时间表简称为GMT或UTC,而世界时区表则通称为World Time ,那么GMT与UTC的实质原意又是为何?世界时区又是怎么区分的?面盘上密密麻麻的英文单字代表着什么意义与 ...
- linux—【用户和组的管理操作】(5)
用户:user 组:group 增加:add 修改:modify mod 删除:delete del useradd 增加用户 usermod 修改用户 userdel ...
- win10下安装Wampservice过程中遇到的问题及解决办法
今天在电脑上装Wampserver的时候遇到了几个问题,启动Wampserver无法成功,一直显示橙色.若启动成功Wampserver的图标会显示绿色. 下面的是解决方法 安装 在浏览器中搜索Wamp ...
- 如何用ZBrush快速雕刻LOL中的Lissandra
话说<魔兽>还有1天就上映了,热爱这款游戏的你想必早已按耐不住了吧,别急,再耐心等一下.不过今天我们要讲的,不是魔兽,而是另一款很多人为 之疯狂的游戏—英雄联盟,也就是你们熟悉的LOL啦, ...
- javascript编程习惯总结
总结一下javascript需要注意的一些细节的地方: 1:声明一个对象:var a={ }; 2:另一个对象继承一个对象:Var b=Object.create(a);如果父类的属性和方法发生改变, ...