JavaSE阶段测试

来源:互联网 发布:唐宣宗 知乎 编辑:程序博客网 时间:2024/06/09 17:12

1.按要求完成如下功能(总分20分)

1】创建一明星Star类,属性:star_No(明星编号)、star_Name(明星名字)、star_Masterpieces(明星的成名作)、star_Home(明星祖籍)、star_Marriage(明星婚否)、star_Info(明星信息);封要求所有属性封装,重写toString方法。(4分)

2】 根据下列提供的信息创建Star对象,将每个字符串中的字段所对应的值设置到对象属性中。

(1)star_No:10000001 star_Name:胡军 star_Masterpieces:天龙八部 star_Marriage:true star_Home:北京市Star_Info:胡军出生在北京的一个艺术世家,属于满族镶黄旗。父亲胡宝善是男中音歌唱家,母亲王亦满是话剧演员,伯父是著名的男高音歌唱家胡松华,2013年,担任北京东城区消防形象大使。

(2)star_No:10000002 star_Name:鹿晗 star_Masterpieces:重返20岁star_Marriage:false  star_Home:北京市Star_Info:鹿晗(LU HAN),中国男演员、歌手1990年4月20日出生于北京2008年赴韩国留学期间在明洞逛街时被韩国SM娱乐公司星探发掘,签约成为旗下练习生2012年4月以EXO组合主唱、领舞、门面担当身份正式出道,在中外各国迅速获得超高人气。

(3)star_No:10000011 star_Name:孙俪 star_Masterpieces:后宫甄嬛传star_Marriage:true star_Home:上海市 Star_Info:孙俪,本名孙丽,1982年9月26日出生于上海市,中国大陆女演员、歌手。5岁开始学舞蹈,11岁出访国外表演,15岁担任上海警备区文工团文艺兵3年;退伍后进入东方文化学院学习。

(4)star_No:10000101 star_Name:王宝强 star_Masterpieces:天下无贼 star_Marriage:true star_Home:河北省邢台市南和县Star_Info:王宝强,中国内地男演员,1984年5月29日出生于河北省邢台市,6岁时开始练习武术,8岁在嵩山少林寺做俗家弟子,20岁时主演独立电影《盲井》获金马奖最佳新人奖及法国、泰国电影节最佳男主角奖。(3分)

3】创建用于存放明星对象的TreeSet集合,用于存放上述的几个明星,使用自然排序对该集合对象进行排序,要求按照star_No明星编号进行升序排列,要求输出排序之后的set集合5分)

4】使用HashMap<Star,String>集合进行存储,将Star对象作为键,vlaue值为与该明星有关的作品名。并遍历输出集合元素(要求:明星编号和明星姓名和明星成名作相同的为同一明星)。(5分)

5】 要求在上题遍历集合时,要求编程实现在当前项目中,根据获取的每个具体对象的star_Name为名称创建相应文件,将明星对象具体信息进行保存在当前项目中(3分)

package com.qianfeng.kaoti01;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileReader;import java.io.IOException;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;import java.util.Set;import java.util.TreeSet;public class Work {public static void main(String[] args) {Star s1 = new Star(10000001,"胡军", "天龙八部", "北京市", true, "胡军出生在北京的一个艺术世家,属于满族镶黄旗。父亲胡宝善是男中音歌唱家,母亲王亦满是话剧演员,伯父是著名的男高音歌唱家胡松华,2013年,担任北京东城区消防形象大使。");Star s2 = new Star(10000002,"鹿晗 ", "重返20岁", "北京市", false, "鹿晗(LU HAN),中国男演员、歌手。1990年4月20日出生于北京。2008年赴韩国留学期间在明洞逛街时被韩国SM娱乐公司星探发掘,签约成为旗下练习生。2012年4月以EXO组合主唱、领舞、门面担当身份正式出道,在中外各国迅速获得超高人气。");Star s3 = new Star(10000003,"孙俪", "后宫甄嬛传", "上海市", true, "孙俪,本名孙丽,1982年9月26日出生于上海市,中国大陆女演员、歌手。5岁开始学舞蹈,11岁出访国外表演,15岁担任上海警备区文工团文艺兵3年;退伍后进入东方文化学院学习。");Star s4 = new Star(10000004,"王宝强","天下无贼", "河北省邢台市南和县", false, "王宝强,中国内地男演员,1984年5月29日出生于河北省邢台市,6岁时开始练习武术,8岁在嵩山少林寺做俗家弟子,20岁时主演独立电影《盲井》获金马奖最佳新人奖及法国、泰国电影节最佳男主角奖。");Set<Star> set = new TreeSet<Star>();set.add(s1);set.add(s2);set.add(s3);set.add(s4);System.out.println("排序之后的数组:");Iterator<Star> it = set.iterator();while (it.hasNext()) {Star star = it.next();System.out.println(star);}Map<Star,String> map = new HashMap<Star,String>();map.put(s1, s1.getStar_Masterpieces());map.put(s2, s2.getStar_Masterpieces());map.put(s3, s3.getStar_Masterpieces());map.put(s4, s4.getStar_Masterpieces());System.out.println("集合存储的元素及写入到指定的文件中:");Set<Entry<Star, String>>  entrys = map.entrySet(); Iterator<Entry<Star, String>> it2 = entrys.iterator();while(it2.hasNext()){Entry<Star, String> entry = it2.next();System.out.println("键:"+ entry.getKey()+" 值:"+ entry.getValue());File file = new File(entry.getKey().getStar_Name()+".txt");FileOutputStream fos = null;byte[] data = entry.getKey().toString().getBytes();try {fos = new FileOutputStream(file,true);fos.write(data, 0, data.length);fos.flush();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally{if(fos!=null){try {fos.close();} catch (IOException e) {e.printStackTrace();}}}}System.out.println("明星信息已写入到本地文件成功!");}}
package com.qianfeng.kaoti01;public class Star implements Comparable<Star>{private int star_No;private String star_Name;private String star_Masterpieces;private String star_Home;private boolean star_Marriage;private String star_Info;public Star(int star_No, String star_Name, String star_Masterpieces, String star_Home, boolean star_Marriage,String star_Info) {super();this.star_No = star_No;this.star_Name = star_Name;this.star_Masterpieces = star_Masterpieces;this.star_Home = star_Home;this.star_Marriage = star_Marriage;this.star_Info = star_Info;}public int getStar_No() {return star_No;}public void setStar_No(int star_No) {this.star_No = star_No;}public String getStar_Name() {return star_Name;}public void setStar_Name(String star_Name) {this.star_Name = star_Name;}public String getStar_Masterpieces() {return star_Masterpieces;}public void setStar_Masterpieces(String star_Masterpieces) {this.star_Masterpieces = star_Masterpieces;}public String getStar_Home() {return star_Home;}public void setStar_Home(String star_Home) {this.star_Home = star_Home;}public boolean isStar_Marriage() {return star_Marriage;}public void setStar_Marriage(boolean star_Marriage) {this.star_Marriage = star_Marriage;}public String getStar_Info() {return star_Info;}public void setStar_Info(String star_Info) {this.star_Info = star_Info;}@Overridepublic String toString() {return "明星编号【" + star_No + "】-姓名【" + star_Name + "】-成名作【" + star_Masterpieces+ "】-祖籍【" + star_Home + "】-婚姻状况【" + star_Marriage + "】-明星信息【" + star_Info + "】";}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + ((star_Masterpieces == null) ? 0 : star_Masterpieces.hashCode());result = prime * result + ((star_Name == null) ? 0 : star_Name.hashCode());result = prime * result + star_No;return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;Star other = (Star) obj;if (star_Masterpieces == null) {if (other.star_Masterpieces != null)return false;} else if (!star_Masterpieces.equals(other.star_Masterpieces))return false;if (star_Name == null) {if (other.star_Name != null)return false;} else if (!star_Name.equals(other.star_Name))return false;if (star_No != other.star_No)return false;return true;}@Overridepublic int compareTo(Star o) {if(this.star_No>o.star_No){return 1;}else if(this.star_No<o.star_No){return -1;}else{return 0;}}}

2.

package com.qianfeng.kaoti02;import java.util.Arrays;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Scanner;import java.util.Set;import java.util.Map.Entry;public class Work {public static void main(String[] args) {int[] arr = work01();System.out.println();work02(arr);work03(arr);work04(arr);int[] arr4 = work05(arr);for(int j=0;j<arr4.length;j++){if(j<arr4.length-1){System.out.print(arr4[j]+",");}else{System.out.print(arr4[j]);}}}//1,使用键盘录入个10数字,并遍历该数组( 3分 )public static int[] work01(){Scanner sc = new Scanner(System.in);int[] arr = new int[10];for(int i=0;i<10;i++){if(i==0){System.out.println("请输入数字:");}else{System.out.print("您已输入了"+i+"个数字");}arr[i] = sc.nextInt();}System.out.println("您已输入10个数字");for(int j=0;j<10;j++){if(j<9){System.out.print(arr[j]+",");}else{System.out.print(arr[j]);}}return arr;}//2, 设计一个方法,找出数组中最大值、最小值(不考虑重复项),求总和及平均值。并打印观察结果。(4分)  public static void work02(int[] arr){int max=arr[0],min=arr[0],sum=0;for(int i=0;i<arr.length;i++){if(max<arr[i]){max = arr[i];}if(min>arr[i]){min = arr[i];}sum = sum+arr[i];}System.out.println("最大值为:"+max);System.out.println("最小值为:"+min);System.out.println("总和:"+sum);System.out.println("平均值:"+sum/arr.length);}//3. 随机生成一个10-90之间的整数,并将随机数插入到数组的下标为0的位置,其他数据依次后移产生新的数组,打印新的数组(3分)public static int[] work03(int[]arr){int[] newArr = new int[arr.length+1];int num = (int)(10+Math.random()*(90-10+1));System.out.println("随机数生成数为:"+num);newArr[0] = num;for(int i=0;i<arr.length;i++){newArr[i+1] = arr[i];}System.out.println(Arrays.toString(newArr));System.out.println("插入后结果为:");for(int j=0;j<newArr.length;j++){if(j<newArr.length-1){System.out.print(newArr[j]+",");}else{System.out.print(newArr[j]);}}return newArr;}//4, 使用任意排序算法对插入随机数后的数组的数据,从小到大依次排序,并返回该数组。(5分)(不能使用Arrays.sort(arr))public static int[] work04(int[] arr){for (int x=0;x<arr.length-1 ;x++ ){for (int y=0;y<arr.length-1-x ;y++ ){if (arr[y]>arr[y+1]){int temp = arr[y];arr[y] = arr[y+1];arr[y+1] = temp;}}}return arr;}//5, 设计一个方法,去除数组中的重复项,并将数组中小于32的值存入一个新数组,返回新数组,并打印数组。(5分)public static int[] work05(int[] arr){Map<Integer,Integer> map = new HashMap<Integer,Integer>();for(int i=0;i<arr.length;i++){map.put(arr[i], i);}int num = 0;System.out.println("");System.out.println("去重后的结果是:");Set<Entry<Integer, Integer>>  entrys = map.entrySet(); Iterator<Entry<Integer, Integer>> it2 = entrys.iterator();while(it2.hasNext()){Entry<Integer, Integer> entry = it2.next();if( entry.getKey()<32){num++;}System.out.print(entry.getKey()+",");}System.out.println("num:"+num);int[] newArr = new int[num];int index = 0;Iterator<Entry<Integer, Integer>> it3 = entrys.iterator();while(it3.hasNext()){Entry<Integer, Integer> entry = it3.next();if( entry.getKey()<32){newArr[index] = entry.getKey();index++;}}return newArr;}}