20145211 《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDEA)
实验要求
- 使用JDK编译、运行简单的Java程序;
- 使用IDEA 编辑、编译、运行、调试Java程序。
实验内容
- 命令行下Java程序开发
- IDEA下Java程序开发、调试
- 练习(通过命令行和IDEA两种方式实现,在IDEA下练习调试程序)
- 实现四则运算,并进行测试
实验步骤(实现四则运算,并进行测试)
前期准备
- 第一周的博客里有关于前期环境设置的详细操作,这里不再赘述 20145211 《Java程序设计》第1周学习总结——小荷才露尖尖角 中已经进行了说明;
- 我使用的是IDEA,其实不管你用的什么软件,是指并没有变化,纵使风云变幻,规律却万变不离其宗。
代码一
- 这是我在实验课上设计的一个比较简单直接的代码,虽有不足,但麻雀虽小,五脏俱全。
需求分析
- 四则运算,即要实现基本的加、减、乘、除运算法则,并正确输出运算结果;
- 能够排除用户一些错误的输入;
- 能够持续运算,直到用户退出。
设计
- 用户循环输入的设计,通过一个```do-while``·语句实现;
- 定义接口:
java.util.Scanner;
,提供用户输入的功能; - 不同运算功能的实现,通过
switch
语句,根据用户输入运算符号的不同调用不同的功能 - 字符的输入,需要
cr = (char) System.in.read();
,同时还要用```catch````避免异常的出现
代码实现 & 测试
- 代码
public class New {
public static void main(String[] args) {
double num1,num2;
char cr = 0;
String condition="";
do {
Scanner input = new Scanner(System.in);
System.out.print("请输入第一个数:");
num1 = input.nextDouble();
System.out.print("请输入第二个数:");
num2 = input.nextDouble();
System.out.print("请输运算符号:");
try {
cr = (char) System.in.read();
} catch (IOException e) {
System.out.println("error!");
}
switch (cr) {
case '+':
System.out.print(num1 + "+" + num2 + "=" + (num1 + num2));
break;
case '-':
System.out.print(num1 + "-" + num2 + "=" + (num1 - num2));
break;
case '*':
System.out.print(num1 + "*" + num2 + "=" + (num1 * num2));
break;
case '/': {
if (num2 == 0) {
System.out.println("被除数不能为0");
} else {
System.out.println(num1 + "/" + num2 + "=" + (num1 / num2));
}
}
break;
default:
System.out.println("无法识别改运算符");
}
System.out.print("是否继续?Yes:继续,任意字符:结束");
condition = input.next();
}while("Yes".equals(condition));
}
}
- 测试
IDEA中调试很简单,run
一下就行了,或者快捷键Ctrl+Shift+F10
,即可编译运行;
IDEA在你编写的时候就会告诉你错误,否则所有的程序都无法执行(这个,有好处,有坏处,找不到错的,,只有删掉。。)
代码二
- 后来我觉得这个代码不易后期的修改,且没有测试,所以我把运算那一块写了一个
yusuan
类,并专门写了一个简单的测试类
需求分析
- 在代码一的基础上,实现模块的划分;
- 对一些常见用例进行测试。
设计
- 运算:
在yunsuan
类中定义4个函数,返回其操作的结果 - 测试:
对一些常见的特殊情况进行测试
代码实现 & 测试
IDEA环境下开发:
- Yunsuan
public class Yunsuan {
public double plus(double a, double b){
return a + b;
}
public double sub(double a, double b){
return a - b;
}
public double mul(double a, double b){
return a * b;
}
public double divide(double a, double b){
return a/b;
}
}
- New1
package lab01;
import java.util.Scanner;
import java.lang.String;
import java.io.IOException;
public class New1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double num1, num2;
Yunsuan go = new Yunsuan();
String condition = "";
do {
System.out.print("please input the first number:");
num1 = input.nextDouble();
System.out.print("please input the second number:");
num2 = input.nextDouble();
System.out.print("please input the calculator char:");
char cr = 0;
try {
cr = (char) System.in.read();
} catch (IOException e) {
System.out.println("error!");
}
switch (cr) {
case '+':
System.out.println(num1 + "+" + num2 + "=" + go.plus(num1, num2));
break;
case '-':
System.out.println(num1 + "-" + num2 + "=" + go.sub(num1, num2));
break;
case '*':
System.out.println(num1 + "*" + num2 + "=" + go.mul(num1, num2));
break;
case '/': {
if (num2 == 0) {
System.out.println("the divided number can't be zero");
} else {
System.out.println(num1 + "/" + num2 + "=" + go.divide(num1, num2));
}
}
break;
default:
System.out.println("can't identify the char");
}
System.out.println("continue?Yes:continue,any other char:exit");
condition = input.next();
} while ("Yes".equals(condition));
}
}
}
- Test
package lab01;
import java.util.Scanner;
import java.lang.String;
import java.io.IOException;
public class New1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double num1, num2;
Yunsuan go = new Yunsuan();
String condition = "";
do {
System.out.print("please input the first number:");
num1 = input.nextDouble();
System.out.print("please input the second number:");
num2 = input.nextDouble();
System.out.print("please input the calculator char:");
char cr = 0;
try {
cr = (char) System.in.read();
} catch (IOException e) {
System.out.println("error!");
}
switch (cr) {
case '+':
System.out.println(num1 + "+" + num2 + "=" + go.plus(num1, num2));
break;
case '-':
System.out.println(num1 + "-" + num2 + "=" + go.sub(num1, num2));
break;
case '*':
System.out.println(num1 + "*" + num2 + "=" + go.mul(num1, num2));
break;
case '/': {
if (num2 == 0) {
System.out.println("the divided number can't be zero");
} else {
System.out.println(num1 + "/" + num2 + "=" + go.divide(num1, num2));
}
}
break;
default:
System.out.println("can't identify the char");
}
System.out.println("continue?Yes:continue,any other char:exit");
condition = input.next();
} while ("Yes".equals(condition));
}
}
- 测试
在同学的指导下,掌握了断点调试、单步执行等方法,可以逐句编译,这大大简化了找错的难度,并且易于后期的维护
命令行下开发:
第一个我忽略的问题是,IDEA中可以输出中文,然而JDK中这是一个错误!
第二个我犯错的是,应该先编译子类,再编译父类
终于成功了
分析总结与实验体会(感悟、思考等)
- 刚听说模5余1的同学要实现四则运算,当时就傻了,这个的多难!!因为我原来在ACM里做过一道题其基本功能就是实现四则运算,用到什么波兰排序。。后来发现,我想多了,只是简单地实现四则运算,并不是一个表达式(好开心)
- 后来,就一马平川,switch语句,直接KO;然而我发现,在与别人的交流中,我发现我这个太弱了,在之前的基础上讲几个模块剥了出来,并进行了简单的测试
- 还有,我发现IDEA用的太爽,换回命令行之后,之前许多注意的细节都忘得差不多了,这应该是温水煮青蛙吧。。这种选择性失忆的直接后果就是我花了将近1个小时的时间在调试上,自己又急,还搞不出来。。简直了。。。还好我有阿Q精神,我会安慰自己,,“天将降……”。
- 言归正传,此次试验可以看出,扎实的基础才能让你兵来将当水来土掩,所以千万不要好高骛远!
PSP(Personal Software Process)时间:
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 10min | 5% |
设计 | 10min | 5% |
代码实现 | 60min | 32% |
测试 | 75min | 40% |
分析总结 | 30min | 16% |
参考资料
20145211 《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDEA)的更多相关文章
- 20145314郑凯杰 《Java程序设计》实验一 Java开发环境的熟悉(Windows + Eclipse)实验报告
20145314郑凯杰 <Java程序设计>实验一 Java开发环境的熟悉(Windows + Eclipse)实验报告 实验要求 •使用JDK编译.运行简单的Java程序: •使用Ecl ...
- 20145316《Java程序设计》实验一:Java开发环境的熟悉(Windows + IDEA)
20145316<Java程序设计>实验一:Java开发环境的熟悉(Windows + IDEA) 一.DOC命令行下Java程序开发 1.打开cmd,输入 mkdir 20145316命 ...
- 20145239 实验一 Java开发环境的熟悉(Windows + IDEA)
实验一 Java开发环境的熟悉(Windows + IDEA) 实验内容 1.使用JDK编译.运行简单的Java程序:2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验知识点 1.JV ...
- 20145301《Java程序设计》实验报告一:Java开发环境的熟悉
20145301<Java程序设计>实验报告一:Java开发环境的熟悉 课程:Java程序设计 实验名称:Java开发环境的熟悉 实验目的与要求: 1.没有Linux基础的同学建议先学习& ...
- 2018-2019-2-20175303 实验二 《Java开发环境的熟悉》实验报告
2018-2019-2-20175303 实验二 <Java开发环境的熟悉>实验报告 姓名:柴轩达 学号:20175303 班级:1753 实验课程:JAV ...
- 2018-2019-2-20175225 实验二《Java开发环境的熟悉》实验报告
姓名:张元瑞 学号:20175225 班级:1752 实验课程:JAVA程序设计 实验名称:Java面向对象程序设计 实验时间:2019.4.16 指导老师:娄嘉鹏 实验内容 测试点一 - " ...
- 20145312《Java第一次实验报告》
20145312<Java第一次实验报告> Java开发环境的熟悉(Windows+Idea) 一.实验内容 使用Idea编辑.编译.运行.调试Java程序. 使用JDK编译.运行简单的J ...
- 20145212《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDE)
20145212<Java程序设计>实验报告一:Java开发环境的熟悉(Windows+IDE) 实验内容及步骤 1.命令行下的JAVA程序开发 建立并进入实验目录: 撰写简单的Hello ...
- 20145213《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDEA)
20145213<Java程序设计>实验报告一:Java开发环境的熟悉(Windows+IDEA) 实验要求 使用JDK编译.运行简单的Java程序. 使用IDEA编辑.编译.运行.调试J ...
随机推荐
- Ada语言基础
前天是程序员节,CodeForces上举办了一场比赛,要求必须使用ADA语言提交.顿时虐爆了我这个只知道pascal,C,BASIC这3种语系的菜.今天闲着看了看这种语言,一看才知道竟然是美国军方专用 ...
- BZOJ2851 : 极限满月
把集合A[i]看作i点的前驱点集合,建成一个DAG,并新建超级源S,向每个前驱集合为空的点连边,那么B[i]就是S到i的必经点集合. 首先使用Lengauer-Tarjan算法建立出以S为起点的Dom ...
- (centos)linux下访问双系统windows7文件系统
fdisk -l 无法挂载 NTFS格式的分区:mount: unknown filesystem type ‘ntfs’. 问题: # mount –t ntfs /dev/sdb1 ...
- ubuntu下新建用户的终端不显示当前路径,不能用上下光标键得到使用过的命名解决办法
这几天我装ubuntu10.10,xubuntu12.04创建新用户的时候,总会遇到这个问题 就是打开终端的时候,没有路径了,即:xxx@xxx:~$ 找了很久,最后找到了(http://www.os ...
- 【转】Android APK的数字签名的作用和意义
1. 什么是数字签名? 数字签名就是为你的程序打上一种标记,来作为你自己的标识,当别人看到签名的时候会知道它是与你相关的 2. 为什么要数字签名? 最简单直接的回答: 系统要求的. Andr ...
- iOS真机调试的验证项
基本的匹配项 App 描述文件 BundleID (匹配) ApplicationID Cert (匹配) Cert DeviceID (被包含) DeviceIDs 描述文件就是包含了各种需要验证信 ...
- javascript 三个 对话框
用法: 一般写在 </html>之后,<script language="javascript">代码必须放在这里面</script> 三个常用 ...
- WPF 一个数据库连接测试的实现
要实现的功能效果图如下:因为我们要测试数据是从输入框获得的,所以,我们的连接字符串不是写死在应用程序中的.下面我就详细介绍一下.
- Memcached 笔记与总结(6)PHP 实现 Memcached 的一致性哈希分布算法
首先创建一个接口,有 3 个方法: addServer:添加一个服务器到服务器列表中 removeServer:从服务器列表中移除一个服务器 lookup:在当前的服务器列表中找到合适的服务器存放数据 ...
- iOS标准时间与时间戳相互转换
iOS标准时间与时间戳相互转换 (2012-07-18 17:03:34) 转载▼ 标签: ios 时间戳 标准时间 格式 设置 转化 杂谈 分类: iPhone开发 设置时间显示格式: NS ...