20155303 《Java程序设计》实验一(Java开发环境的熟悉)实验报告
20155303 《Java程序设计》实验一(Java开发环境的熟悉)实验报告
一、实验内容及步骤
(一)使用JDK编译、运行简单的java程序
- 命令行下的程序开发
步骤一(新建文件夹):打开windows下的cmd → 输入cd Code
命令进入Code
目录 → 输入md 20155303test
建立以自己学号命名的文件夹 → 输入cd 20155303test
进入文件夹 → 输入md exp1
建立“实验一”文件夹 → 输入cd exp1
进入“实验一”文件夹
步骤二(编译、运行java程序):使用vim编辑器编辑java程序 → 在命令行下编译、运行
(二)使用IDEA编辑、编译、运行、调试Java程序
1、新建「HelloJDB」类,输入如下代码:
2、在需要设置断点的一行左侧单击鼠标,出现红色圆点。比如如下在第六行设置了断点:
在上方Run
菜单找到Debug...
进行单步调试:
截止到第六行运行结果如下:
3、继续向下执行,可以单击Step Over
,执行完方法。可以看到运行结果sum=11
。
『注意』:常用调试快捷图标功能总结如下:
① Step Over(F8):程序向下执行一行(如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行)
② Step Into(F7):程序向下执行一行。如果该行有自定义方法,则运行进入自定义方法(不会进入官方类库的方法)
③ Force Step Into:进入任何方法
④ Step Out(Shift+F8):如果在调试的时候进入了一个方法,并觉得该方法没有问题,就可以使用stepout跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,该方法已执行完毕。
⑤ Run to Cursor:将程序运行到光标处。
4、如果想判断循环内部是否出问题?比如我们想进入for循环,在第十行设置断点,右击出现对话框,在里面填写自己想测试的数值,如i==50
,再单击resume
图标或者快捷键F9
即可得到运行结果。
二、练习:实现学生成绩管理功能,并进行测试。
『要求』:通过命令行和IDEA两种方式实现,在IDEA下练习调试程序。
- 设计思路:
首先要明白想让这个程序做一些什么事?以我的这道练习题为例,我想让它完成“添加学生”、“更新学生基本信息”、“删除学生信息”、“按照成绩排序”和“根据学号判断学生是否存在并查找学生”五项功能。
其次,要将自己的想法通过编程实现。基于以上需求,我设计了一个Student类(包含以上三项信息)和一个Manage类(实现各种功能):
最后,设计一个测试类,通过调用构造函数验证程序。如果出现bug再进行调试修改。
- 命令行实现:
1、添加学生
2、更新学生基本信息
3、删除学生信息
4、按照成绩排序
5、根据学号判断学生是否存在并查找学生
6、退出程序
- IDEA调试:
比如想要了解courseSort()
方法的执行情况,可以在该行设置断点,单击Step Over
(或快捷键F8)执行完该方法,并查看执行结果:
如果对该方法有疑问,可以在该行设置断点,单击Step Into
(或快捷键F7)进入内部:
即可查看该方法的详细执行过程。
三、实验过程中遇到的问题
『问题一』:第一次设计的代码只能完成按成绩排序的功能,功能非常单一,使用价值不高。感谢娄老师的指点,经修改目前代码可以完成
添加学生
、更新学生基本信息
、删除学生信息
、按照成绩排序
和根据学号判断学生是否存在并查找学生
五项功能。程序还有很大的提升空间,可根据实际需要继续开发程序功能。『问题二』:在命令行下运行出现了中文乱码问题,是因为windows下默认的编码方式与IDEA设置的编码方式不同。将编码方式转为UTF-8即可成功运行。
- 『问题三』:
马超同学针对我编写的“成绩管理系统”提出疑问:如果有非法输入如何处理?
我的程序的确疏忽了异常处理,鉴于我的测试类用到了Scanner()
方法,查询API文档可知这个方法可能抛出IOException
异常,另外输入格式与期望格式不匹配时还会抛出InputMismatchException
异常,所以应添加 try{...}catch (Exception e) {System.out.println(e);}
捕捉异常。
如果输入不合法,会出现以下异常提示:
感谢马超同学的建议!
四、实验体会与总结
“纸上得来终觉浅,绝知此事要躬行。”看书看了这么久,代码也按照书上敲了近千行,而自己究竟掌握了多少呢?实验给了我们一个将课本理论付诸实践,并检验自我的机会。
这次实验题目比较简单,不过要想达到对代码“信手拈来”的程度并不容易。所以说,敲代码前先在脑海中构建好程序框架,就显得尤为重要。先构思好想干什么,再一步一步用代码实现自己的想法,最后有余力还可以优化程序,提升程序友好度,增加功能等等,我认为这才是编写一个程序完整的步骤。
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 3min | 4% |
设计 | 10min | 13% |
代码实现 | 45min | 62% |
测试 | 5min | 7% |
分析总结 | 10min | 14% |
20155303 《Java程序设计》实验一(Java开发环境的熟悉)实验报告的更多相关文章
- 20145308刘昊阳 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20145308刘昊阳 <Java程序设计>实验一报告 实验名称 Java开发环境的熟悉 实验内容 使用JDK编译.运行简单的Java程序 2.使用Eclipse 编辑.编译.运行.调试J ...
- 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20175316 盛茂淞 2018-2019-2 <Java程序设计>实验一 Java开发环境的熟悉 实验报告 一.实验要求 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA ...
- 20165327《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20165327<Java程序设计>实验二 <Java面向对象程序设计>实验报告 实验二 <Java面向对象程序设计> 一.实验报告封面 课程:Java程序设计 班 ...
- 20165205 实验一 java开发环境的熟悉 实验报告
20165205 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:刘喆君 学号:20165205 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验 ...
- 实验一《开发环境的熟悉》&实验二《固件设计》
20145312&20145338 实验一<开发环境的熟悉>&实验二<固件设计> 合作博客链接:http://www.cnblogs.com/yx2014531 ...
- 20162327实验一Java开发环境的熟悉实验报告
20162327 <程序设计与数据结构>第一次实验报告 基础知识 1.JDB的使用 使用JDB调试程序需要以下五个步骤: 1.设置断点 stop in 2.run 3.print 4.ne ...
- 20145233韩昊辰 《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDEA)
20145233 <Java程序设计>实验报告一:Java开发环境的熟悉 实验要求 使用JDK编译.运行简单的Java程序: 使用IDEA 编辑.编译.运行.调试Java程序. 实验内容 ...
- 20175236 《Java程序设计》实验一(Java开发环境的熟悉)实验报告
一.实验报告封面 课程:Java程序设计 班级:1752班 姓名:温丰帆 学号:20175236 指导教师:娄嘉鹏 实验日期:2019年4月2日 实验时间:13:45 - 15:25 实验序号:实验一 ...
- 20165234 《Java程序设计》实验一 Java开发环境的熟悉
一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:刘津甫 学号:20165234 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验时间:15:35 - 17:15 实验序 ...
- 2018-2019-2 20175227张雪莹 《Java程序设计》 实验一 Java开发环境的熟悉
2018-2019-2 20175227张雪莹<Java程序设计> 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1752班 姓名:张雪莹 学号:2017 ...
随机推荐
- 通过ClientDataSet复制表的结构及数据
1. 需要2个ClientDataSet组件: 2. clientDataSet1连接目标表,clientDataSet2连接源表,如果无法直接连接,使用DataSetProvider进行桥接: ...
- 多示例学习 multiple instance learning (MIL)
多示例学习:包(bags) 和 示例 (instance). 包是由多个示例组成的,举个例子,在图像分类中,一张图片就是一个包,图片分割出的patches就是示例.在多示例学习中,包带有类别标签而示例 ...
- java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
微信小程序前后台使用get方式传参时报错如图.但在微信开发平台和苹果测试都没事,在安卓手机上就报这个错,猜想原因是get传递了汉字的原因. 尝试了下在后台输出从前台获取的参数,但是后台什么也没有获取到 ...
- JAVA LOG4J使用方法
首先,需要在项目中导入log4j使用的JAR包,导入结果如下图: 菜单:Build Path->Configure Build Path->Add Extern Jars 导入JAR包后, ...
- DAY3-Flask项目
1.jsonify: 得到了从API获得的数据并返回,API返回的json数据被转化成dict,我们还需要把dict序列化: return json.dump(result), 200, {'cont ...
- MySql数据库迁移图文展示
MySql数据库的数据从一台服务器迁移到另外一台服务器需要将数据库导出,再从另外一台服务器导入.方法有很多,MySql配套的相关工具都有这个功能.phpMyAdmin就可以做,但是这个加载起来慢,推荐 ...
- 学习Spring Boot:(七)集成Mybatis
前面都是用的是spring data JPA,现在学习下Mybatis,而且现在Mybatis也像JPA那样支持注解形式了,也非常方便,学习一下. 数据库 mysql 5.7 添加依赖 在pom文件中 ...
- 【bzoj1396】 识别子串
http://www.lydsy.com/JudgeOnline/problem.php?id=1396 (题目链接) 题意 问字符串S每一位的最短识别子串是多长(识别子串指包含这个字符且只出现在S中 ...
- 轻量高效的开源JavaScript插件和库 【转】
图片 布局 轮播图 弹出层 音频视频 编辑器 字符串 表单 存储 动画 时间 其它 加载器 构建工具 测试 包管理器 CDN 图片 baguetteBox.js - 是一个简单易用的响应式图像灯箱效果 ...
- 【学习笔记】BEST定理
害怕忘记简单写一点: 无向图的生成树计数:https://www.cnblogs.com/zj75211/p/8039443.html (*ZJ学长 ORZ ) 有向图的欧拉回路计数:https: ...