配色: 字号:
实验二 数组和字符串
2023-10-12 | 阅:  转:  |  分享 
  
实验二 数组和字符串实验日期:2023.3.31学号:202134000111姓名:李文宜实验目的Java程序基本语法和流程控制语句的熟练使
用;掌握Java程序中数组的定义和访问方法。实验内容调试教材和课件对应章节的例题,例5.3、例5.5不做要求,确保自己可以做出每一
道题。完成如下任务或编写能够满足如下条件的程序。请说明下面程序的功能,在关键行后面注释其作用:代码注释截图该程序的功能:每次从键盘
输入一个整型数inputNum,并放到数组newArr的最后一位,然后按升序排序 并输出该数组。然后提示输入y/n or no,判
断是否继续执行。若输入n或者no(不区分大小写)程序终止;(2)有一对免子,从出生后第3个月起每个月都生一对兔子,小兔子长到第3个
月后每个月又生一对兔子如果兔子都不死,请输出1~N个月的兔子对数是多少? (Fibonacci数列[11235,8,13,2134
.....)要求:①用数组实现;②用递归调用实现。①代码截图①运行结果截图②代码截图②运行结果截图(3)从键盘输入n个数,求这n个
数中的最大值与最小值并输出。代码截图运行结果截图(4)产生0~100之间的8个随机整数,并利用冒泡排序法将其升序排序后输出(Mat
h.random()默认生成(0~1)的double类型小数,Math在java.lang包中)(冒泡排序规则:比较相邻的两个元素
,如果前一个比后一个大,则交换位置,第一轮的时候最后一个元素应该是最大的一个。按照上述方法继续进行相邻两个元素的比较,这个时候由于
最后一个元素已经是最大的了,所以最后一个元素不用比较·反复比较交换,直到所有数据都符合排序条件,结束排序)代码截图运行结果截图找出
45矩阵中值最小和最大元素,并分别输出其值及所在的行号和列号。代码截图运行结果截图模拟一个系统登录,假设这个系统要使用,必须输入
正确的用户名和密码(自己设定)。要求用带参数的java命令传递用户名和密码。代码截图运行结果截图将用户从键盘输入的每行数据都显示输
出,直到输入字符串“exit”,程序运行结束代码截图运行结果截图从键盘输入一个字符串和一个字符,从该字符串中删除给定的字符代码截图
运行结果截图(9)判断回文字符串,要求使用字符数组实现。(String类中的toCharArray()方法可将字符串转换为字符数组
)代码截图运行结果截图(10)统计从键盘输入的字符串中,字母、数字、空格和其他字符的个数。代码截图运行结果截图(11)编写一个程序
,生成0~9之间的100个随机整数并且显示每一个数的个数。代码截图运行结果截图(12)输入一串字符串,该字符串中可能含有数字,找到
里面出现的数并求和。 (例如,输入: 123eui+8~!2输出: 12382和为133)代码截图运行结果截图在本次实验中的问题和
解决方法1、第一题看代码说明功能,光是看真的看不出来,就一句一句地解读每一行代码的作用,中间还为at是什么意思疑惑了很久,以为是什
么方法,后面才发现只是一个字符串的名字!大概明白了是要输入一个整型数,然后升序输入的意思,就试着运行了一下(见下图)一下子豁然开朗
,程序的功能也就清楚了!2、第二题兔子繁殖问题,完全可以抛开背景信息,直接求一个斐波那契额数列的代码,因为初高中学过 本质就是以一
个1,1开头的数列,第三个数等于前两个数的和,以此类推……用数组实现比较简单,递归调用就仿照课本的写法,执行会慢一点。第三题求n个
数的最小值和最大值,可直接使用java写好的数组的sort()方法,默认升序,输出最小值arr[0],最大值arr[arr.len
gth-1]即可!第四题冒泡排序的代码倒是会写,但用Math.random()产生0~100的随机整数,刚开始不知道该怎么用,百度
了一下,感觉理解不是很深刻。第五题找出45矩阵中最小和最大值所在的行号和列号,看似复杂,因为需要引入的变量较多,但其实代码的重复
度高,也很容易理解。第六题模拟系统登录,考察equals()方法的使用,较容易。第七题我理解的题目是要将输入的字符串与’e’ ‘x
’ ‘i’ ‘t’逐个比对,但是写的过程中频繁出错,最后用了“低配版”的程序,将输入的字符串与’exit’比较。第八题用repla
ce()方法即可第九题判断回文字符串,将输入的字符串转化为数组,再将[i]与[str.length()-1-i]比较,这里考虑引入
一个变量,用于后面判断是否回文。第十题统计输入字符串中字母、数字、空格和其他字符的个数,需要对字符串一个字一个字检查,String
>>char[],即用tocharArray()方法,然后逐个遍历char[]字符数组,对当前字符的种类进行判断,这里注意比较的两
个类型相同,即与’0’ , ‘a’ , ’ ’……比较,然后对应的用来计数的变量进行累加操作。第十一题生成100个0~9的数 并统
计每个输出选的次数,要累计出现的次数 考虑到创建一个长度为10的数组,int j=arr[i] , numcount[j]++;
然后遍历输出每个数出现的次数。第十二题印象很深刻,刚开始真的没有思路,边写边运行然后调试,花了很长时间。刚开始把重心放在求和上,和
求出来就不难输出数字。一开始求和一直出错,求出来的数很大,对不回去,查了一下才发现是因为一直是按字符型比较,而求和的时候忘记减去’
0’ ,这个以后要记住!然后写出来的代码也是边运行边调试纠正,按照我最终写出来的代码,最后一位字符必须单独讨论输出与否,可能较繁琐
,目前还未想出更好的改进方法。心得体会一个明显的感受就是有时候对一个题,有时候心里面已经有了大体的思路,但是会担心这种方法会不会太
繁琐,但其实真正动手写出来 发现它也没有多麻烦,就是说要勤动手,先写出来然后再调试改进!还有发现自己对一些需要循环遍历来累加或输出的题反应不过来(就像第十二题)需要着重练习。跟做实验一的时候不同,实验二的题需要将所学的字符串和数组的知识灵活运用,一个题可能有多种不同的解法,需要课下投入较多的时间精力打磨,才能有效吸收所学!
献花(0)
+1
(本文系新用户52818...首藏)