南昌大学Java实验报告2.docx
《南昌大学Java实验报告2.docx》由会员分享,可在线阅读,更多相关《南昌大学Java实验报告2.docx(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 南昌大学实验报告学生姓名: 学 号: 专业班级: 实训类型: 验证 综合 设计 创新 实验日期:2017.11.8 实验成绩:一、 实验项目名称字符串和数组二、 实验的评分标准实验分为AF,A为最高,F最低。F:在规定时间内没有完成所有的实验,而且没有及时提交实验报告,或者实验过程中出现了抄袭复制他人实验代码。D:能完成实验,但是实验结果出现严重错误,不能体现对教学内容的理解。C:能基本完成实验,实验结果基本正确。但是实验内容有较少的错误,提交的实验代码质量一般。B:能较好的完成实验,实验报告条理清楚,实验代码结构清晰,代码质量较高,及时更正试验中出现的错误,并对运行中一些异常错误进行分析,
2、解释错误产生的原因。A:能较好的完成实验,实验代码质量高,实验报告完成度高,能在实验完成的基础上,根据个人的理解增加实验的新功能,具有一定的创新能力。三、 实验目的和要求1. 掌握java的基础知识。2. 掌握和运用java的控制语句和数组。3. 掌握和运用java的字符串。四、 实验内容1.使用BigInteger计算超大整数的问题。2.结合字符串和数组计算超大整数的问题这里,我模仿Math写了专门计算数组形式存放整数的一个工具类(见后面源代码),只有静态函数,想来挑战Biginteger类。在循环体计算前后,分别用时间函数获取系统当前时间,作差来近似等价于核心运算时间。Biginteger
3、类耗时1ms,自己写的方法耗时13ms,相差13倍,惨败。3. 字符串的“=”和equals()方法。详细结果解释在源代码注释中给出。4. 统计英文单词5.用StringBuffer模拟扑克牌洗牌6.数独游戏Clear:清除用户输入的所有数据Restart:开始新的数独游戏Check:检查用户输入数据的正确性提示框用户输入的数字显示蓝色,已知的数字显示黑色为增加可判断性,做出了灰色阴影效果7. 财务应用程序,比较不同利率下的贷款。8. 财务应用程序,信用卡号的合法性实验源代码如下:1. 使用Biginteger计算大数package one;import java.math.BigIntege
4、r;public class BigintegerCal public static void main(String args) BigInteger res = new BigInteger(1); BigInteger b = new BigInteger(1); long start = System.currentTimeMillis(); for(int i = 1;i=100;i+) b = b.multiply(new BigInteger(2); res = res.multiply(b.add(BigInteger.ONE); long end = System.curre
5、ntTimeMillis(); System.out.println(res.toString(); System.out.println(After + (end-start) + ms);2. 字符串或数组计算大数=part1=package two;* this class is designed to offer tools to calculate* huge integer numbers via plain integer arraypublic class ArrayCal private ArrayCal(); /*array a multiply array b*/ pub
6、lic static int mul(int a,int b) int res = new inta.length + b.length; for(int i = 0;i=0;-i) for(int j = a.length-1;j=0;-j) tmp += (resj+i+1 + aj*bi); resj+i+1 = tmp %10; tmp /= 10; resi = tmp; tmp = 0; return ArrayCal.clean(res); /*array a add a single integer*/ public static int add(int a,int num)
7、int res = new inta.length+1; for(int i = a.length-1;i=0;i-) num = ai +num; resi+1 = num % 10; num /= 10; res0 = num; return ArrayCal.clean(res); /* array a multiply a single integer*/ public static int mul(int a,int num) int res = new inta.length+1; int c = 0;/pre for(int i = a.length-1;i=0;i-) c =
8、ai * num + c; resi+1 = c %10; c /= 10; res0 = c; return ArrayCal.clean(res); /*clean the redundant 0 in the front of the array*/ public static int clean(int a) if(a0!=0) return a; else int count = 0; for(int i = 0;ia.length & ai=0;+i) count+; int res = new inta.length - count; System.arraycopy(a,cou
9、nt,res,0,a.length-count); return res;=part2=package two;public class Calculate public static void main(String args) int part2 = 1; int part1; int res = 1; long start = System.currentTimeMillis(); for(int i = 1;i0 for more ,0 for less System.out.println(4.+ pareTo(three); /same as 2 System.out.printl
10、n(5.+one.intern() = three.intern(); 4.统计英文单词package four;import java.util.ArrayList;import java.util.Scanner;public class CountWord public static void main(String args) Scanner input = new Scanner(System.in); ArrayList list = new ArrayList(); System.out.println(Please input an English sentence,seper
11、ated by blank:); String data = input.nextLine(); int count = new intdata.length(); /split the string inputted by the user with / making it String String dataNew = data.split( ); for(String e:dataNew) if(!list.contains(e) list.add(e); countlist.size()-1+; else countlist.indexOf(e)+; int max = count0;
12、 int index = 0; for(int i = 1;imax) max = counti; index = i; System.out.println(The word with the most appearance time: + dataNewindex); System.out.println(The times of its appearance: + max);5. StringBuffer模拟扑克牌洗牌=part1=package five;* the class is designed to create the basic Poke model* in which u
13、ser can shuffle it ,display the cardsclass Poke private char type = ,;private String value = 3 ,4 ,5 ,6 ,7 ,8 ,9 ,10,J ,Q ,K ,A ,2 ;private StringBuffer cards = new StringBuffer();public Poke() for(char x : type)for(String y : value) this.cards.append(x+y);void shuffle(int times) for(int i=0;i= 3 &
14、(len-1 -right)/3 = 3) /the amount of cards to be shuffled at random on each side(13)numOfL = (int)(Math.random()*3+1);numOfR = (int)(Math.random()*3+1);temp.append(cards.substring(left-numOfL*3, left);temp.append(cards.substring(right, right+numOfR*3);left -= numOfL*3;right += numOfR*3;/less than 3
15、cards in each side,put them all in the new stringif(left!=0)temp.append(cards.substring(0, left);if(right!=len-1)temp.append(cards.substring(right, len);cards = temp;/renew the original cards/shuffle finishedvoid showCards() for(int i = 0;i52;i+) if(i+13)%13=0)System.out.println();System.out.print(c
16、ards.substring(3*i, 3*i+3)+ );System.out.println();=part2=package five;public class Shuffle public static void main(String args) Poke poke = new Poke(); poke.shuffle(4);/shuffle for 4 times poke.showCards();6. 数独游戏=part1=package six;import java.util.Arrays;/*this class is designed to generate one so
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南昌大学 Java 实验 报告
限制150内