20202301 2021-2022-1 《数据结构与面向对象程序设计》实验一报告

课程:《程序设计与数据结构》
班级: 2023
姓名:贾奕琦
学号:20202301  
实验教师:王志强
实验日期:2021年9月23日
必修/选修: 必修

## 1.实验内容

  • 基于命令行进行简单的Java程序编辑、编译、运行和调试。
  • 练习Linux基本命令。
  • 学习Java程序的JDB调试技能:

      https://www.cnblogs.com/rocedu/p/6371262.html。

  • 编写简单的Java程序。


## 2. 实验过程及结果
一.基于命令行进行简单的Java程序编辑、编译、运行和调试。

命令行:<一>vim编辑器的使用

1、模式转换

<1>普通模式转换为插入模式:“i”或“a”

<2>普通模式转换为命令行模式:“wq”

<3>命令行模式转换为普通模式:“ESC ctrl+【”   

2、光标移动

h→左

l→右

j→下

k→上

w→移动到下一个单词

b→移动到上一个单词

3、插入模式

i→在当前光标处进行编辑

l→在行首插入

A→在行末插入

a→在光标后插入一个新行

o→在当前行后插入一个新行

O→在当前行前插入一个新行

cw→替换从光标所在位置后到一个单词结尾的字符

4、删除

x→删除光标所在处的字符

X→删除光标所在前一个字符

dd→删除整行/剪切

dw→删除一个单词

D→删除至行位

d^→删除至行首

dG→删除至文档结尾

d1G→删除至文档首部

ndd→n为数字,表示删除n行

5、保存与退出

:q!→退出但不保存

shift+zz /:x /:wq→保存并退出

:w【文件】→另存到【文件】中

:wq!→强制保存并退出

6、游标跳转

gg→移动到第一行

G→移动到最后一行

nG→n为数字,表示移动到第n行

w→到下一个单词的开头

e→到当前单词的结尾/下一个单词的结尾

b→到前一个单词的开头

ge→到前一个单词的结尾

0 / ^→到行头

$→到行尾

7、显示行号→:set nu

8、复制与粘贴

普通模式:nyy→n为数字,复制游标所在的n行

          yG→复制至文本末

          y1G→复制至文本开头

p→粘贴到光标下

P→粘贴到光标后

9、替换和撤销

r+【待替换字母】→将游标所在字母替换为指定字母

~→反转游标所在字母的大小写

R→连续替换,直到按下Esc

cc→替换整行

cw→替换一个单词

u{n}→撤销n次操作

<二>java命令行基本操作

mkdir 创建新文件夹

cd 目录转换<cd ..进入上一级目录>

vi/vim 创建新文件并进入编辑

ls 列出目录下的所有文件

javac 编译一个java文件

java 运行一个java程序

rm 删除当前目录下某个文件

 cp 复制某文件至某地址

mv 将某文件转移或进行重命名

man  查找命令的使用方法

二、练习Linux基本命令

1、find:Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

 

 

 

2、man:查看Linux中的指令帮助、配置文件帮助和编程帮助等信息

 

 

 

 

 

 

 

3、locate:用来查找文件或目录

 

 

 

4、grep:Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

 

 

 

5、which:which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

 

 

 

6、whereis:whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。

 

 

 

7、cheat:cheat 允许你在命令行中创建和查看交互式的速查表cheatsheet。它旨在帮助提醒 *nix 系统管理员他们经常使用但还没频繁到会记住的命令的选项。

8、基本操作

 

 

 

 

 

 

 

 

 

三、学习Java程序的JDB调试技能:https://www.cnblogs.com/rocedu/p/6371262.html

1·编写HelloJDB.java程序在页面一

 

 

 

2·在页面二使用javac -g -d bin src/HelloJDB.java对程序进行编译

 

 

 

3·在页面三对jdb进行初始化

 

 

 

调试程序先要学会设置断点,这样才能让程序停在你感觉有问题的代码处进行排查。学习调试我们要学会设置四种断点:

1、方法断点

2、行断点

3、条件断点

4、临时断点

在JDB中输入help可以查看命令列表:

 

 

 

通过运行stop in HelloJDB.main命令在main方法开始处设置断点,输入run命令来运行HellJDB.class,程序会在main()的开始处停下:

 

 

 

四、编写简单的Java程序

1、         输出helloworld

 

 

 

 

 

 

2、         区分print和println的区别

 

 

 

 

 

 

3、变量赋值并进行字符串的加和

 

 

 

 

 

## 3. 实验过程中遇到的问题和解决过程
- 问题1:cheat下载时,出现数次与电脑不匹配的情况
- 问题1解决方案:进行百度,寻求多种解决办法,最终更换初始源后成功完成下载
- 问题2:在利用jdb调试时,代码无法在页面运行
- 问题2解决方案:在同一页面运行后发现代码存在问题
- 问题3:jdb测试时,由于前期初始化工作未做好,导致无法进行
- 问题3解决方案:先寻求了同学的帮助,发现了代码的问题,后在网页的协助下,完成初始化
## 其他(感悟、思考等)
在刚一开始学习数据结构时,电脑就出现了主板烧坏的问题,导致很长一段时间,无法对课上所学,及时练习,因此落下许多;在后面学习中,由于基础不牢固,无法跟上正常进度。

在这一次的经历中,我感受到了,练习对于我们专业的重要性。没有付出就没有成功。

## 参考资料

-  [《Java程序设计与数据结构教程(第二版)》](https://book.douban.com/subject/26851579/)

-  [《Java程序设计与数据结构教程(第二版)》学习指导](http://www.cnblogs.com/rocedu/p/5182332.html)

posted @ 2021-09-23 17:18  20202301贾奕琦  阅读(44)  评论(0编辑  收藏  举报