java的一些作业

上传人:仙*** 文档编号:135864633 上传时间:2022-08-16 格式:DOC 页数:18 大小:76KB
返回 下载 相关 举报
java的一些作业_第1页
第1页 / 共18页
java的一些作业_第2页
第2页 / 共18页
java的一些作业_第3页
第3页 / 共18页
点击查看更多>>
资源描述
JAVA语言程序设计(基础篇)实训报告姓 名: 专业班级: 学 号: 年 月 日河南理工大学计算机学院推荐精选1实训目的通过两周的实训,熟练掌握Java语言的基础知识、类与对象的基本概念、类的方法、类的重用以及接口和多态等内容,为Java高级篇的学习打下坚实的基础。2实训内容实训内容覆盖Java语言的基础知识、类与对象的基本概念、类的方法、类的重用以及接口和多态等内容,由4个必做的设计题目和15个选做的方法实现题目组成。2.1复数类声明并测试一个复数类,其方法包括toString()、equals()及复数的加、减、乘运算。2.2坐标点(1)编写一个类来描述坐标点的状态信息以及每个状态信息的设置和读取方法。(2)为(1)所编写的类添加两个构造方法,要求:第一个构造方法为默认构造方法,将坐标点初始化为(0,0)的位置;第二个构造方法带有两个参数,分别初始化横坐标和纵坐标。(3)编写一个类, 该类描述了一个具有权值的坐标点,要求:一是必须继承(2)所编写的类;二是该类必须具有一个带3个参数的构造方法,分别初始化横坐标、纵坐标和权值,并且必须使用父类的构造方法来初始化横坐标和纵坐标;三是写一个方法,来判断两个具有权值的坐标是否相等,并将结果显示在屏幕上。2.3微型CAD 问题描述:编写一个程序,模拟实现一个微型的CAD系统。该程序的几何形体至少包括圆、三角形和直线。只要求示例几何图形的绘制,不要求实际绘制。要点解析:本程序中的几何图形包括圆(Circle)、三角形(Triangle)和直线(Line)。可以将Shape声明为抽象类,规定所有的子类对象都应具有的行为,如绘制图形。对于不同的几何图形,绘制方法会有所不同,在超类Shape中无法具体定义,因此可以声明为抽象方法,Shape的所有子类都必须对这个抽象方法进行重写。CadSystem本身由多个几何形体组成。直线有起点和终点。2.4 三种动物的定义问题描述:乌鸦会飞但不会说话,大猩猩不会飞但能说话,鹦鹉既会飞又会说话。运用接口的知识,编写一个程序对该问题进行建模。要点解析:模拟说话可以设计一个Talkable接口,通过在该接口中声明talk()方法表示说话行为;同样可以定义一个Flyable接口表示“飞”,该接口有一个fly()方法。然后设计三个类Parrot、Corbie和Gorilla表示鹦鹉、乌鸦与大猩猩。推荐精选2.1复数类声明并测试一个复数类,其方法包括toString()、equals()及复数的加、减、乘运算。试验程序如下:import java.io.*;class fushu 本程序用字级独特的思路和做法,对新的内容进行了预习,对学习过的内容进行补充。double shibu; double xubu;public fushu(double shibu,double xubu) this.shibu=shibu; this.xubu=xubu; public static double add(double x,double y) return(x+y);public static double dec(double x,double y) return(x-y);public static double mul(double x,double y) return(x*y);public static double ReadData()String s= ;tryBufferedReader in = new BufferedReader(new InputStreamReader(System.in);s=in.readLine();return(Double.parseDouble(s);catch(IOException e)System.out.println(输入非法!);return(0.0); public String toString() return(shibu+xubu+i); public static void main(String args)double a,b,c,d; System.out.println(请输入第一个复数的实部:);a=fushu.ReadData();System.out.println(请输入第一个复数的虚部:);b=fushu.ReadData();System.out.println(请输入第二个复数的实部:);推荐精选c=fushu.ReadData(); System.out.println(请输入第二个复数的虚部:);d=fushu.ReadData(); fushu x=new fushu(a,b);System.out.println(您输入的第一个复数是:+x);fushu y=new fushu(c,d);System.out.println(您输入的第二个复数是:+y);a=fushu.add(x.shibu,y.shibu); b=fushu.add(x.xubu,y.xubu); fushu addl=new fushu(a,b);System.out.println(您输入的两个复数的和是:+addl);a=fushu.dec(x.shibu,y.shibu); b=fushu.dec(x.xubu,y.xubu); fushu decl=new fushu(a,b);System.out.println(您输入的两个复数的差是:+decl); a=fushu.mul(x.shibu,y.shibu); b=fushu.mul(x.xubu,y.xubu); c=fushu.mul(x.shibu,y.xubu); d=fushu.mul(x.xubu,y.shibu); a=fushu.dec(a,b); b=fushu.add(c,d);fushu mull=new fushu(a,b);System.out.println(您输入的两个复数的积是:+mull); 2.2坐标点(1)编写一个类来描述坐标点的状态信息以及每个状态信息的设置和读取方法。(2)为(1)所编写的类添加两个构造方法,要求:第一个构造方法为默认构造方法,将坐标点初始化为(0,0)的位置;第二个构造方法带有两个参数,分别初始化横坐标和纵坐标。(3)编写一个类, 该类描述了一个具有权值的坐标点,要求:一是必须继承(2)所编写的类;二是该类必须具有一个带3个参数的构造方法,分别初始化横坐标、纵坐标和权值,并且必须使用父类的构造方法来初始化横坐标和纵坐标;三是写一个方法,来判断两个具有权值的坐标是否相等,并将结果显示在屏幕上。试验程序如下:public class Test1String x=;String y=;public Test1() this.x=10;this.y=20;public Test1(String x1,String y1) this.x=x1;this.y=y1;推荐精选public String getX() return x;public void setX(String x) this.x = x;public String getY() return y;public void setY(String y) this.y = y;做出了两个程序!Test2.javapublic class Test2 extends Test1 String z=; public Test2() public Test2(String x,String y,String z) super(x,y); this.z=z; public void print() System.out.println(super.x); System.out.println(super.y); System.out.println(z); public static void main(Stringargs) Test2 t=new Test2(20,40,60); t.print(); 2.3微型CAD 问题描述:编写一个程序,模拟实现一个微型的CAD系统。该程序的几何形体至少包括圆、三角形和直线。只要求示例几何图形的绘制,不要求实际绘制。要点解析:本程序中的几何图形包括圆(Circle)、三角形(Triangle)和直线(Line)。可以将Shape声明为抽象类,规定所有的子类对象都应具有的行为,如绘制图形。对于不同的几何图形,绘制方法会有所不同,在超类Shape中无法具体定义,因此可以声明为抽象方法,Shape的所有子类都必须对这个抽象方法进行重写。CadSystem本身由多个几何形体组成。直线有起点和终点。abstract class Shape abstract void draw();推荐精选class Circle extends Shapevoid draw()System.out.println(画圆);class Triangle extends Shapevoid draw()System.out.println(画三角形);abstract class Point extends Shapeint x,y;Point(int x,int y)this.x=x;this.y=y;public String toSting()return( + x + , +y+);void draw()System.out.println(画点+(+x+,+y+); class Line extends ShapePaint start;private Point end;Line (Paint start,Point end)super();this.start=start;this.end=end; void draw() System.out.println(画直线 起点+ start+到终点+end); public class CadSystem extends Shapeprivate Shape testCiecle;private Shape testTriangle;private Shape lines =new Line5;public CadSystem()for(int j=0;jlines.length;j+)linesj=new Line(new Paint(j,j),new point(j+1,j+1);testCiecle = new Circle();testTriangle = new Triangle();public static void main(String args)推荐精选CadSystem cs = new CadSystem();cs.draw();public void draw()draw(testCircle);draw(testTRiangle);for(int j=0;jlines.length;j+) drew(linesj);void draw(Shape shape)shape.draw();2.4 三种动物的定义问题描述:乌鸦会飞但不会说话,大猩猩不会飞但能说话,鹦鹉既会飞又会说话。运用接口的知识,编写一个程序对该问题进行建模。要点解析:模拟说话可以设计一个Talkable接口,通过在该接口中声明talk()方法表示说话行为;同样可以定义一个Flyable接口表示“飞”,该接口有一个fly()方法。然后设计三个类Parrot、Corbie和Gorilla表示鹦鹉、乌鸦与大猩猩。import java.until.Random;interface Flyablevoid fly();interface Talkablevoid talk();class Parrot implements Flyable,Talkablepublic void fly()System.out.println(Hello! I am a poarroy!I can fly);public void talk( )Sytem.out.printlen(Hello!I am a parrot!); class Corbie implements Flyablepublic void fly()System.out.println(Hello!I am a Gorilla, I am talk!); class RandomFlyableGeneratorprivateRandom rand=new Random();public Object next()switch(rand.nextInt(3)推荐精选default:case 0:return new parrot();case 1:return new Corbie();Case 2:REturn new Gorilla(); public class MultLnherrittprivate static RandomFlyableGenerator gen = new RandomFlyableGenerator();public static void main(String args)Objects=new Object6;for(int i =0;Is.length;i+)si=gen.next();if(si instanceof Flyable)(Flyable)si),fly();if(si instanceof Talkable)(tablkable)si).talk(); 2.5方法的实现15题(1)程序分析:兔子的规律为数列1,1,2,3,5,8,13,21. public class exp2public static void main(String args)int i=0;for(i=1;i=20;i+)System.out.println(f(i);public static int f(int x)if(x=1 | x=2)return 1;elsereturn f(x-1)+f(x-2);(2)判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 public class exp2public static void main(String args)int i=0;math mymath = new math();for(i=2;i=200;i+)if(mymath.iszhishu(i)=true)System.out.println(i);推荐精选class mathpublic int f(int x)if(x=1 | x=2)return 1;elsereturn f(x-1)+f(x-2);public boolean iszhishu(int x) for(int i=2;i=x/2;i+)if (x % 2=0 )return false;return true;(3)题目:打印出所有的 水仙花数 ,所谓 水仙花数 是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 水仙花数 ,因为153=1的三次方5的三次方3的三次方。程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 public class exp2public static void main(String args)int i=0;math mymath = new math();for(i=100;i=999;i+)if(mymath.shuixianhua(i)=true)System.out.println(i);class mathpublic int f(int x)if(x=1 | x=2)return 1;elsereturn f(x-1)+f(x-2);public boolean iszhishu(int x) for(int i=2;i=x/2;i+)if (x % 2=0 )return false;return true;public boolean shuixianhua(int x) int i=0,j=0,k=0;i=x / 100;j=(x % 100) /10;k=x % 10;if(x=i*i*i+j*j*j+k*k*k)return true;推荐精选elsereturn false;(4)题目:判断101-200之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 public class exp2public static void main(String args)int i=0;math mymath = new math();for(i=2;i=200;i+)if(mymath.iszhishu(i)=true)System.out.println(i); class mathpublic int f(int x)if(x=1 | x=2)return 1;elsereturn f(x-1)+f(x-2);public boolean iszhishu(int x)for(int i=2;i=x/2;i+)if (x % 2=0 )return false;return true;(5)题目:打印出所有的 水仙花数 ,所谓 水仙花数 是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 水仙花数 ,因为153=1的三次方5的三次方3的三次方。 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 public class exp2public static void main(String args)int i=0;math mymath = new math();for(i=100;i=999;i+)if(mymath.shuixianhua(i)=true)System.out.println(i); class mathpublic int f(int x)if(x=1 | x=2)return 1;else推荐精选return f(x-1)+f(x-2);public boolean iszhishu(int x)for(int i=2;i=x/2;i+)if (x % 2=0 )return false;return true;public boolean shuixianhua(int x)int i=0,j=0,k=0;i=x / 100;j=(x % 100) /10;k=x % 10;if(x=i*i*i+j*j*j+k*k*k)return true;elsereturn false; (6)题目:打印出杨辉三角形(要求打印出10行如下图) 程序分析: 1 11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 public class Ex33 public static void main(String args) int i,j; int a; a=new int88; for(i=0;i8;i+) aii=1; ai0=1; for(i=2;i8;i+) for(j=1;j=i-1;j+) aij=ai-1j-1+ai-1j; for(i=0;i8;i+) for(j=0;ji;j+) System.out.printf( +aij);推荐精选 System.out.println(); (7)题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 1.程序分析:利用while语句,条件为输入的字符不为 n . import java.util.Scanner;public class ex7 public static void main(String args) System.out.println(请输入字符串:); Scanner scan=new Scanner(System.in); String str=scan.next(); String E1=u4e00-u9fa5; String E2=a-zA-Z; int countH=0; int countE=0; char arrChar=str.toCharArray(); String arrStr=new StringarrChar.length; for (int i=0;iarrChar.length ;i+ ) arrStri=String.valueOf(arrChari); for (String i: arrStr ) if (i.matches(E1) countH+; if (i.matches(E2) countE+; System.out.println(汉字的个数+countH); System.out.println(字母的个数+countE); (8)题目:求s=a+aa+aaa+aaaa+aa.a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 程序分析:关键是计算出每一项的值。 import java.io.*;public class Sumloop public static void main(String args) throws IOExceptionint s=0;String output=;BufferedReader stadin = new BufferedReader(new InputStreamReader(System.in);System.out.println(请输入a的值);String input =stadin.readLine();for(int i =1;i=Integer.parseInt(input);i+) output+=input; int a=Integer.parseInt(output); s+=a; System.out.println(s);推荐精选 (9)题目:一个数如果恰好等于它的因子之和,这个数就称为 完数 。例如6=123.编程 找出1000以内的所有完数。 public class Wanshu public static void main(String args) int s; for(int i=1;i=1000;i+) s=0; for(int j=1;ji;j+) if(i % j=0) s=s+j; if(s=i)System.out.print(i+ ); System.out.println(); 【程序10】 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? public class Ex10 public static void main(String args) double s=0; double t=100; for(int i=1;i=10;i+) s+=t; t=t/2; System.out.println(s); System.out.println(t); (10)一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是多少? 1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析: public class test public static void main (Stringargs) long k=0; for(k=1;k2)/*如果是闰年且月份大于2,总天数应该加一天*/ sum+; System.out.println(It is the the day:+sum);(12)题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 1.程序分析:采取逆向思维的方法,从后往前推断。 public class 猴子吃桃 static int total(int day) if(day = 10) return 1; else return (total(day+1)+1)*2; public static void main(String args)System.out.println(total(1);(13)打印出如下图案(菱形) * * * * * * * 程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环,第一层控制行,第二层控制列。 三角形:public class StartG public static void main(String args)int i=0;int j=0;for(i=1;i=4;i+) for(j=1;j=1;i-) for(j=1;j=2*i-3;j+) System.out.print(*); System.out.println(); 菱形:public class StartG public static void main(String args) int i=0; int j=0; for(i=1;i=4;i+) for(int k=1; k=4-i;k+) System.out.print( ); for(j=1;j=1;i-) for(int k=1; k=5-i;k+) System.out.print( ); for(j=1;j=2*i-3;j+) System.out.print(*); System.out.println(); (14) 题目:求1+2!+3!+.+20!的和 1.程序分析:此程序只是把累加变成了累乘。 public class Ex21 static long sum = 0; static long fac = 0;public static void main(String args) long sum = 0; long fac = 1; for(int i=1; i=10; i+) fac = fac * i; sum += fac; System.out.println(sum);(15)字符串排序。 import java.util.*; 推荐精选public class testpublic static void main(String args) ArrayList list=new ArrayList(); list.add(010101); list.add(010003); list.add(010201); Collections.sort(list); for(int i=0;ilist.size();i+) System.out.println(list.get(i); 3实训小结(实训收获和期望)通过两周的实训,熟练掌握Java语言的基础知识、类与对象的基本概念、类的方法、类的重用以及接口和多态等内容,为Java高级篇的学习打下坚实的基础。通过这次实训让我明白:1、Java语言是简单的Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。 2、Java语言是一个面向对象的。总之,Java语言是一个纯的面向对象程序设计语言。 3、Java语言是分布式的。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 4、Java语言是健壮的。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。 5、Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。 另外Java语言是体系结构中立的,Java语言是可移植的,Java是高性能的,Java语言是动态的,Java是一种单层继承的语言,short Short 2个字节,int Integer 4个字节,long Long 8个字节,float Float 4个字节,double Double 8个字节,byte Byte 1个字节,char Character 2个字节,boolean Boolean 这个视编译环境而定.Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。实训之后我熟悉的掌握本学期的知识,个别程序也让我预习了下学期的知识,受益匪浅,这次实训让我为java的高级语言有了基础,以后会更加努力! (注:可编辑下载,若有不当之处,请指正,谢谢!) 推荐精选
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!