第二次java作业(3-5)和实验(3-14)参考答案 - 图文
更新时间:2024-05-26 14:09:01 阅读量: 综合文库 文档下载
- java大作业推荐度:
- 相关推荐
作业
第三章 Java面向对象
1、为某研究所编写一个通用程序,用来计算每一种交通工具运行1000公里所需的时间,已知每种交通工具的参数都是3个整数A、B、C的表达式。现有两种工具:Car007 和Plane,其中Car007 的速度运算公式为:A*B/C,Plane 的速度运算公式为:A+B+C。需要编写三类:ComputeTime.java, Plane.java, Car007.java和接口Common.java,要求在未来如果增加第3种交通工具的时候,不必修改以前的任何程序,只需要编写新的交通工具的程序。其运行过程如下,从命令行输入ComputeTime的四个参数,第一个是交通工具的类型,第二、三、四个参数分别时整数A、B、C,举例如下:
计算Plane的时间:\ 计算Car007的时间:\
如果第3种交通工具为Ship, 则只需要编写Ship.java,运行时输入:\22 33 44\
提示:充分利用接口的概念,接口对象充当参数。
实例化一个对象的另外一种办法:Class.forName(str).newInstance();例如需要实例化一个Plane对象的话,则只要调用Class.forName(\便可。 访到classpath 路径下即可,请从下往上编译 目录结构 CalTime
--------|--------
| | | |
vehicle ComputTime.java |
--------- | | | |
all Palne.java /Car.java | |
Common.java
1. ComputTime.java 请确保输入正确,其中没有捕捉NumberFromatException import CalTime.vehicle.all.Common; import java.lang.*;
public class ComputeTime {
public static void main(String args[]) { System.out.println(\交通工具: \ System.out.println(\参数A: \
System.out.println(\参数B: \System.out.println(\参数C: \double A=Double.parseDouble(args[1]); double B=Double.parseDouble(args[2]); double C=Double.parseDouble(args[3]); double v,t; try {
Common d=(Common) Class.forName(\+args[0]).newInstance(); // CalTime.vehicle是对应的包名 v=d.runTimer(A,B,C); t=1000/v;
System.out.println(\平均速度: \ System.out.println(\运行时间:\小时\}
catch(Exception e) { System.out.println(\}
} }
2.Plane.java
package CalTime.vehicle;
import CalTime.vehicle.all.Common;
public class Plane implements Common {
public double runTimer(double a, double b, double c) {
return (a+ b + c); } }
3. Car.java
package CalTime.vehicle;
import CalTime.vehicle.all.Common;
public class Car implements Common { public double runTimer(double a, double b, double c)
{
return ( a*b/c ); } }
4.Common.java
package CalTime.vehicle.all;
public interface Common
{ }
double runTimer(double a, double b, double c);
2、编写一个学生类 Student ,要求: (1) 学生类 Student 属性有: id : long型,代表学号 name : String类对象,代表姓名 age : int型,代表年龄 sex : boolen型,代表性别(其中:true表示男,false表示女) phone : String类对象,代表联系电话 (2) 学生类 Student的方法有: Student(long i , String n , int a , boolean s , long p) : 有参构造函数,形参表中的参数分别初始化学号、姓名、年龄、性别和联系电话。 int getAge() ( ) : 获取年龄作为方法的返回值。 boolean getSex( ) ( ) : 获取性别作为方法的返回值。 long getPhone ( ) : 获取联系电话作为方法的返回值。 public String toString( ) : 以 姓名:联系电话 的形式作为方法的返回值。
public class test_S3_2 { public static void main(String[]args) { Student student = new Student(01,\李明\ System.out.println(student.getAge()); System.out.println(student.getPhone()); System.out.println(student.toString()); } }
class Student { public long id; public String name; public int age; public boolean sex; public String phone; public Student(long i,String n,int a,boolean s,String p) { this.id = i; this.name = n; this.age = a; this.sex = s; this.phone = p; } public int getAge() { return this.age; } public boolean getSex() { return this.sex;
}
}
public String getPhone() { return this.phone; }
public String toString() { return this.name+ \ }
3、利用接口编写三角形、矩形的面积和周长的程序。 import java.awt.image.renderable.RenderableImageOp; public class S3_3 { public static void main(String[] args) { Rectangle rectangle = new Rectangle(10, 8);
System.out.println(\矩形面积:\
System.out.println(\矩形周长:\Triangle triangle = new Triangle(3, 4, 5);
System.out.println(\三角形面积:\ System.out.println(\三角形周长:\ } }
class Rectangle implements Cal { double longth; double width; public Rectangle(double longth, double width) { this.longth = longth; this.width = width; } public double calArea() { return this.longth * this.width; } @Override public double calPerimeter() { return (this.longth + this.width) * 2; } }
class Triangle implements Cal { double a; double b; double c; public Triangle(double a, double b, double c) { this.a = a; this.b = b; this.c = c; } public double calArea() { double p = (a+b+c)/2; return Math.sqrt(p*(p-a)*(p-b)*(p-c)); } public double calPerimeter() { return (a+b+c); } }
4、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如\我ABC\,应该截为\我AB\,输入\我ABC汉DEF\,6,应该输出为\我ABC\而不是\我ABC+汉的半个\。 public class Test3 {
public static void main(String[] args) {
String srcStr1 = \我ABC\
String srcStr2 = \我ABC汉DEF\ splitString(srcStr1, 4); splitString(srcStr2, 6); }
public static void splitString(String src, int len) {
int byteNum = 0; if (null == src) {
System.out.println(\ return; }
byteNum = src.length();
byte bt[] = src.getBytes(); // 将String转换成byte字节数组
if (len > byteNum) {
len = byteNum; }
// 判断是否出现了截半,截半的话字节对于的ASC码是小于0的值 if (bt[len] < 0)
{
String subStrx = new String(bt, 0, --len); System.out.println(\ }
else {
String subStrx = new String(bt, 0, len); System.out.println(\ } } }
第四章 Java异常处理 1、 写程序运行结果: public class A {
static int some() { try {
System.out.println(\ return 1; }
finally {
System.out.println(\ } }
public static void main(String arg[]) { System.out.println(some()); } } try finally 1
2、先从键盘输入一个十六进制数,再将其转化为十进制数,然后输出。若输入的不是一个有效的十六进制数,则抛出异常。 import java.util.InputMismatchException; import java.util.Scanner;
public class S4_2
{
public static void main(String[] args) { System.out.println(\请输入一个十六进制的数:\ Scanner cin = new Scanner(System.in); try{ while(cin.hasNext()) { int val = cin.nextInt(16);
System.out.print(\转化为十进制为:\ System.out.println(val); System.out.println(\请输入一个十六进制的数:\ } }catch(InputMismatchException e){ e.printStackTrace(); } } }
3、先编写一个方法,它将格式为“yyyy/mm/dd”形式的日期字符串转化为日期对象。若日期字符串不符合以上规定,则抛出异常。再在main方法中对正常和异常输入的日期字符串分别进行验证,并输出转换后的日期对象。 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class S4_3 { public static void main(String[] args) throws ParseException { System.out.println(\/9/1 :\ Scanner scanner = new Scanner(System.in); String temp = scanner.nextLine(); try { System.out.println(getDate(temp)); } catch (ParseException e) { e.printStackTrace(); throw e; } } public static Date getDate(String date) throws ParseException{ DateFormat format = new SimpleDateFormat(\
}
}
try { return new Date(format.parse(date).getTime()); } catch (ParseException e) { e.printStackTrace(); throw e; }
第五章 Java常见类
1、设有一个由10个英文单词构成的字符串数组,要求: (1) 统计以字母“w”开头的单词数;
(2) 统计单词中含“or”字符串的单词数; (3) 统计长度为3的单词数。
public class S5_1 { public static void main(String[] args) { String string[] = {\ int countW = 0; int countOr = 0; int countLentghEqual3 = 0; for (int i = 0; i < string.length; i++) { if (string[i].substring(0, 1).equals(\ { countW++; } if (string[i].indexOf(\ { countOr++; } if (string[i].length() == 3) { countLentghEqual3++; } } System.out.println(\以字母w开头的单词数:\ System.out.println(\单词中含'or'字符串的单词数:\ System.out.println(\长度为3的单词数:\ } }
2、利用随机函数产生20个10~90之间的不重复整数, 将这些数拼接在一个字符串中, 用逗号隔开(每产生一个新数, 要保证在该串中不存在)。然后将字符串中的整数分离存放到一个数组中,将数组的内容按由小到大的顺序输出。
import javax.naming.ldap.SortControl; public class S5_2 { public static void main(String[] args) { StringBuffer stringBuffer = new StringBuffer(); String string; int a[] = new int[20]; stringBuffer = generateInt(); string = stringBuffer.toString(); System.out.println(string); a = intoArray(string); a = sort(a); for (int i = 0; i < 20; i++) { System.out.print(a[i]+\ } } static StringBuffer generateInt() { int integer; StringBuffer string = new StringBuffer(); String tempString; for (int i = 0; i < 20; i++) { integer = (int)(Math.random()*90); if (integer < 10) { i--; } else if (string.indexOf(Integer.toString(integer)) != -1) { i--; } else { tempString = Integer.toString(integer); string.append(tempString+\ }
}
} return string; }
static int[] intoArray(String string) { int a[] = new int[20]; String tempString; for (int i = 0; i < a.length; i++) { tempString = string.substring(3*i, 3*i+2); a[i] = Integer.parseInt(tempString); } return a; }
static int[] sort(int a[]) { int tempInt; for (int i = 0; i < a.length-1; i++) { for (int j = i+1; j < a.length; j++) { if (a[i] > a[j]) { tempInt = a[i]; a[i] = a[j]; a[j] = tempInt; } } } return a; }
3、先任意输入不超过10个人的姓名和电话到电话簿,然后从电话簿中查询指定人的电话。
import java.util.Scanner; public class S5_3 { public static void main(String[] args) { String person[][] = new String[3][2]; String searchName; String phone; Scanner myInput = new Scanner(System.in); person = input(person);
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 作业
- 答案
- 参考
- 实验
- 图文
- java
- 14
- 幼儿园游戏活动计划
- 儿童心理学部分作业参考答案
- 《计算方法与实习》实验报告
- 银行计算机储蓄系统项目可行性研究报告
- 政治学概论复习重点一
- 郑州市人民公园旅游资源调查报告 - 图文
- 2015年期货基础知识必做题外汇期货二
- 大英县育才中学地理教师岗位职责
- 2012年备战中考:专题汇编 - 选择题(8)
- 沪教版三年级数学上期中考试卷
- 铆工初级试题(有答案)
- 考研英语词汇复习
- 《渔家傲 秋思》说课稿
- 烟台市拖拉机使用现状调研报告
- 10斯堪的纳维亚设计
- 社团活动记录
- 小学生学习之星事迹材料(精简版)
- 全国二级建造师水利水电工程管理与实务复习要点123 - 图文
- 垂直运输设备专项检查表(塔吊、施工电梯、龙门架)
- 第四节 建筑装饰装修工程检查用表030504至030703