上机作业5

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《Java程序设计》上机实验赵小敏自编2016/2017(1)Java程序设计课程作业(五)班级:网工1501学号:201526810318姓名:王佳宇完成日期:2016.11.10一、编写一个日期程序,包含如下方法:(1)输出当前的年份(2)输出当前的季度(3)输出当前的月份(4)输出当前是星期几(5)输出当前的日期,格式为××××年××月××日,如2013年11月1日(6)输出当前的北京时间,格式为时:分:秒,如08:21:36(7)输出当前的日期和时间,格式为××××-××-××时:分:秒,如2013-11-108:21:36(1)问题分析参照书本p177-178的格式使用(2)代码实现package第一题;importjava.util.Calendar;publicclassTime{publicstaticvoidmain(String[]args){Calendarc=Calendar.getInstance();intyear=c.get(Calendar.YEAR);intmonth=c.get(Calendar.MONTH)+1;intday=c.get(Calendar.DAY_OF_WEEK);intdate=c.get(Calendar.DATE);StringDay=null;if(day==1){Day=日;}elseif(day==2){Day=一;}elseif(day==3){Day=二;}elseif(day==4){《Java程序设计》上机实验赵小敏自编Day=三;}elseif(day==5){Day=四;}elseif(day==6){Day=五;}elseif(day==7){Day=六;}System.out.println(年份:+year);System.out.println(季度:+(month/3+1));System.out.println(月份:+month);System.out.println(星期+Day);System.out.println(日期:+year+年+month+月+date+日);Calendarc2=Calendar.getInstance();Strings1=String.format(北京时间:%1$tH:%1$tM:%1$tS,c2);System.out.println(s1);Strings2=String.format(日期和时间:%1$tY-%1$tm-%1$td%1$tH:%1$tM:%1$tS,c2);System.out.println(s2);}}(3)运行结果运行结果如图(3)实验小结学会了Calendar类的使用和各种日期的输出方式二、某班30个学生学号为20130301~20130330全部选修了Java程序设计课程,给出所有同学成绩(实现时可用随机数产生,范围为60~100),请编写一个程序StuScore.java将该班的Java程序设计课程成绩按高到低排序打印输出。《Java程序设计》上机实验赵小敏自编要求分别用List和Map来实现,打印的成绩表包括学号、姓名、性别、成绩,如下示例:20130324张三男9520130310李丽芳女9020130302王小五男88(1)问题分析先建立一个Student的类来储存相关信息,在使用List和Map实现时应注意输出的排序问题。(2)代码实现package第二题;importjava.util.ArrayList;importjava.util.Collections;importjava.util.Comparator;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importjava.util.TreeMap;publicclassStu{intsno;Stringname;booleanisMale;intscore;publicStu(intsno){this.sno=20100300+sno;name=学生+sno+号;isMale=(int)(Math.random()*2)==1;score=(int)(Math.random()*41)+60;}publicstaticvoiduseList(){ListStulist=newArrayListStu();for(inti=1;i=30;i++){list.add(newStu(i));}Collections.sort(list,newComparatorStu(){@Overridepublicintcompare(Stuo1,Stuo2){returno2.score-o1.score;《Java程序设计》上机实验赵小敏自编}});System.out.println(学号\t姓名\t性别\t成绩);for(Stus:list){System.out.println(s.sno+\t+s.name+\t+(s.isMale?男:女)+\t+s.score);}}publicstaticvoiduseMap(){MapInteger,Stumap=newTreeMapInteger,Stu(newComparatorInteger(){@Overridepublicintcompare(Integero1,Integero2){returno2-o1;}});for(inti=1;i=30;i++){Stus=newStu(i);map.put(s.score,s);}System.out.println(学号\t姓名\t性别\t成绩);for(IteratorIntegeri=map.keySet().iterator();i.hasNext();){Stus=map.get(i.next());System.out.println(s.sno+\t+s.name+\t+(s.isMale?男:女)+\t+s.score);}}publicstaticvoidmain(String[]args){System.out.println(利用List实现:);useList();System.out.println(利用Map实现:);useMap();}}(3)运行结果运行结果如图《Java程序设计》上机实验赵小敏自编《Java程序设计》上机实验赵小敏自编(4)实验小结学会了List和Map的使用,并且学会了利用Collections.sort(list,newComparatorStu(){@Overridepublicintcompare(Stuo1,Stuo2){returno2.score-o1.score;}});来进行排序。在使用Map的时侯如果数据相同,一个键只能对应一个数据,所以当随机出来的数据相同时就会出现利用Map实现时数据会被覆盖,从网上搜索相关资料说是因为Map本身的原因,如果需要做到不被覆盖只能对Map进行重载。三、选做题(建议学有余力的同学选做第2题)(1)假设某停车场的收费标准为:15分钟以内免费,超过15分钟每小时收费5元,每天30元封顶。有效停车时间=实际停车时间-15分钟,如实际停车1小时10分,收费5元;实际停车时间1小时20分钟,收费10元,以此类推。请编写一个简单的停车收费程序ParkingFeeCollection1.java。(1)问题分析需要对停车时间进行分类《Java程序设计》上机实验赵小敏自编(2)代码实现package第三题;importjava.util.Random;publicclassParkingFeeCollection1{publicstaticintcharge(inttime){intt;intmoney;if(time=15)money=0;elseif(time15&&time=375){if((time-15)%60==0)t=(time-15)/60;elset=(time-15)/60+1;money=t*5;}elsemoney=30;returnmoney;}publicstaticvoidmain(String[]args){//TODO自动生成的方法存根Randomr=newRandom();intt=r.nextInt(400);System.out.println(停车时间:(分钟));System.out.println(t);System.out.println(收费);System.out.println(charge(t));}}(3)运行结果运行结果如图2.1-1。《Java程序设计》上机实验赵小敏自编(4)实验小结加强了对随机数的使用,在做第二题的时侯想不到更好的方法对时间进行分类,想直接对时间进行加减而不是做转化,但是目前还没找到合适对方法,今后有空会继续尝试

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功