1、java初学实验1、要求用户输入(BufferedReader)三条边的长度(float Float.parseFloat()),判断(if.else)并输出这三条边能否组成一个三角形。2、如果一个整数按反向顺序放置后仍然与原数相等,称为回文数(如: 12321)。编程:要求用户输入一个5位的整数,判断此数是否为回文数。(注意:对一个5位整数n(int类型),要取出它的万位(n/10000)、千位(n%10000/1000)、十位(n%100/10)和个位(n%10),如果万位个位&千位十位,则为回文数)3、要求用户输入一个学生的成绩(0100),判断并输出该成绩的等级(switch)。swi
2、tch(score/10)4、要求用户输入一个年份和月份,判断该年该月有多少天。(switch)switch(month) case 1: case 3: . case 4: case 6: . case 2: if()else break; default: .5、利用while循环计算1+4+7+10+13+16+19+.+586、利用while循环计算2+6+18+54+162+486+14587、1、求a+aa+aaa+aaaa+.+aaaaaaaaaaa的和,要求a(19)由用户输入,式子的项数n也由用户输入。比如,2+22+222+2222+22222,a=2,n=5.p=p*10
3、+a;sum=sum+p;/式子有多少项,循环就是多少次/循环体中先计算当前项(找到一个表达式表示前后两项的关系,/“前后两项”使用同一个变量p)/然后累加到sum上8、请编程验证一下“角谷猜想”:对任意的自然数,若是奇数,就对它乘以3加1;若是偶数就对它除以2;这样得到一个新数,再按上述奇数、偶数的计算规则进行计算,一直进行下去,最终将得到1。如对自然数11,按上述规则依次得到34、17、52、26、13、40、20、10、5、16、8、4、2、1。要求用户输入一个自然数(正整数),然后编程输出依次变换最终得到1的过程。ndo if()n=n*3+1else while(n!=1);9、判断
4、并输出500以内既能够被3整除又能够被6整除的整数。/图形有多少行,外层循环就是多少次/观察图形一行有几部分组成,外层循环的内部就有几个循环,这些循环分别用来输出有变化规律每一部分/根据每一部分的变化规律,找出内层的循环所需的次数10、*11、 * * * *12、搬砖问题:36块砖,36人搬,男人搬4块,女人搬3块,两个小孩抬1块。要求一次搬完,问需要男人、女人、小孩各几人?13、编写程序:输出如下图型(提示:将一行分为3部分,分别是空格、数字递增部分、数字递减部分) 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 114、打印九九乘法表: 1
5、 2 3 4 5 6 7 8 9 - 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 8115、编写一个应用程序,要求用户输入5个整数(使用循环结构),输出这五个整数的最大值和最小值。max初始值要比用户输入的第一
6、个数小min初始值要比用户输入的第一个数大int max=Integer.MIN_VALUE;/-Math.pow(2, 31)int min=Integer.MAX_VALUE;/Math.pow(2, 31)-116、定义一个方法能够判断并返回两个整数的最大值,并调用自己的方法测试是否正确。17、编程:要求用户输入一个字符串,按相反顺序输出该字符串。如输入abcd,输出dcba。要求把一个字符串按相反顺序输出的过程定义为一个方法。18、编写一个方法用于求任意两个正整数的最大公约数,调用此方法求16和24的最大公约数。备注:求最大公约数使用辗转相除法,我国古代数学家秦九韶1247年在数书九章
7、中记载了此方法,其处理过程如下:(1)提供两个数m和n(2)以n除m,求得余数r(r=m%n)(3)判断r是否为0,若r=0,此时的n值即为最大公约数,计算结束。若r0,更新被除数和除数,n送m(即m=n),r送n(即nr),转到(2)。r=m%n;while(r!=0)m=n;n=r;r=m%n 19、不使用Math类提供的相关方法,自己编写一个方法public int round(double n)能够对小数n进行四舍五入返回一个整数。注意考虑n的正负。用一些正的或负的的小数测试一下自己编写的方法是否正确。(基本思想:n是一个小数,那么(int)n则得到n的整数部分,n减去自己的整数部分以
8、后,通过跟正或负0.5比较大小,可决定四舍五入后的整数是多少)/一个方法没有static修饰符,称作实例方法(对象方法)【非静态方法】,一定要先创建该方法所在的类的对象(类名 对象名=new 类名();),才能通过对象名.方法名(实参)的形式来调用 /一个方法有static修饰符,称作类方法【静态方法】,可以通过类名.方法名(实参)形式调用,如果在类自身中调用,类名还可省略 /如果创建该方法所在的类的对象,也可(不推荐)通过对象名.方法名(实参)的形式来调用20、编写递归方法 getPower(int x,int y),用于计算x的y次幂(假定x,y都是正整数)(不要使用Math.pow(),
9、在main主方法中调用它求2的10次幂。21、编写递归方法gcd,返回x和y的最大公约数。x和y的最大公约数方法gcd的递归定义如下:如果y等于0,则gcd(x,y)就是x;否则,gcd(x,y)就等于gcd(y,x%y),其中“%”是求模运算符。22、定义一个数组来存储12个学生的成绩72,89,65,58,87,91,53,82,71,93,76,68,计算并输出学生的平均成绩。23、定义一个数组来存储12个学生的成绩72,89,65,58,87,91,53,82,71,93,76,68,统计各成绩等级(90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E)学生人
10、数,并将其放入到数组count中,其中:count0存E级的人数,count1存D级的人数,count4存A级的人数。(提示:注意要找到各分数段同数组count的下标的关系,思想类似于课本上P215页的例子)/90以上 count4+/8089 count3+/7079 count2+/6069 count1+/60以下 count0+24、从键盘输入8个整数存放在一个数组中,然后将奇数和偶数分别存入到两个不同的数组中,并按奇数、偶数交替的顺序输出这两个数组中的所有数据(先交替输出,如果奇数个数多,则再输出剩下的奇数,如果偶数个数多,则再输出剩下的偶数)。(提示与要求:(1)定义一个数组存储从
11、键盘输入的8个整数,先判断这8个整数中奇数和偶数的个数,才能定义存储奇数和偶数的数组的长度;(2)把一个大的数组分别存放在奇数和偶数数组中并交替输出的过程定义为方法)25、实现如下的排序算法:有一种简单的排序方法叫计数排序法,这种排序算法对一个待排序的数组进行排序,并将排序结果放到另一个新的数组中。计数排序算法针对待排序数组中的每个数据,扫描待排序的数组一趟,统计待排序数组中有多少个数据的值比该数据的值小。假设针对某一个记录,统计出的计数值为c,那么,这个记录在新的有序数组中的合适的存放位置即为c。程序框架如下,补充完整:public class CountSort public static
12、 void countSort(int n)/对数组n进行计数排序的方法 int m=new intn.length;/定义排序后的数组m int count=new intn.length;/记录数组n中某个数据在数组m中的位置/*a数组元素a0a1a 2a 3a 4a 5a 6ai的值7406251count数组元素count0count1count2count3count4count5count6最终统计出的counti的值应该为6(代表比a0小的数有6个,a0在数组m中的下标应该为6)3(代表比a1小的数有3个,a1在数组m中的下标应该为3)0(代表比a2小的数有0个,a2在数组m中的
13、下标应该为0)52.41.*/ . for(int i=0;igenerate getters and setters 在Eclipse中自动生成构造方法:sourcegenerate constructer using fields29、预备知识:static、final及final static修饰符的使用,查看课件并编写程序进行深刻理解。(一)根据下面的要求实现圆类Circlea) 圆类Circle的成员变量:私有最终静态成员P表示圆周率(初始化为Math.PI)私有成员radius 表示圆的半径,为double类型b) 圆类Circle的成员方法:Circle( ) 构造方法,将半径置
14、0Circle(double r ) 构造方法,创建Circle对象时将半径初始化为rdouble getRadius( ) 获得圆的半径值void setRadius( ) 设置圆的半径值读取圆周率P的方法(需要什么修饰符?)double getPerimeter( ) 获得圆的周长double getArea( ) 获得圆的面积void disp( ) 将圆的圆周率、半径、周长、面积输出到屏幕(二)建立圆类Circle的测试类CircleTest, 1)在没有圆类Circle的任何对象时,输出成员变量圆周率P的值。2)使用构造方法Circle( )创建对象c1,并将半径设置为3.0,把圆c
15、1的圆周率、半径、周长、面积输出到屏幕3) 使用构造方法Circle(double r )创建对象c2,并将半径初始化为5.2,把圆c2的圆周率、半径、周长、面积输出到屏幕注意:将上述两题的两个类(注意两个类是平行关系,Circle类不使用public修饰符,测试类要定义为public的)写到一个.java文件中即可。(三)自己把上面的两个类写到两个.java文件中,在Circle中声明包,然后CircleTest类引入Circle类并使用;修改Circle类中成员变量和方法的控制符,验证不同控制符的访问范围。(无需提交作业)30、为提高你的编程速度,请学会使用Eclipse软件的代码自动生成
16、功能(如自动生成构造方法、set和get方法,覆盖方法等)(一) 根据下面的要求实现人类People(a)人类People的成员变量:私有成员name表示姓名,为String类型私有成员sex表示性别,为boolean类型,true表示男,false表示女私有成员age表示年龄,为int类型(b)人类People的方法:(1)无参构造方法People ( ),将各成员变量初始化为默认值(2)构造方法People (String n, boolean s, int a) (3)设置姓名的公有方法(4)读取姓名的公有方法(5)设置性别的公有方法(6)读取性别的公有方法public String g
17、etSex( ) 如果为true,返回male,否则返回female(7)设置年龄的公有方法(8)读取年龄的公有方法(8) void disp( ) 将人的姓名、性别、年龄输出到屏幕(二) 通过继承第1题中的人People类,派生学生类Student 。要求如下:(a)学生类Student的成员变量:私有成员department表示所在院系,为String类型(b)学生类Student的方法:(1)无参构造方法Student ( ),将各成员变量初始化为默认值(2)构造方法Student (String n, boolean s, int a, String dep)(3)设置院系的公有方法(
18、4)读取院系的公有方法(5)void disp( ) 将学生的姓名、性别、年龄、所在院系输出到屏幕(三)建立学生类Student的测试类StudentTest,任意建立一个学生对象,并调用方法输出该学生的信息。注意:将上述三题的三个类分别写到三个.java文件中,然后放到一个文件夹中,文件夹命名为“学号姓名30”,然后将该文件夹压缩为一个压缩文件(压缩文件名仍为“学号姓名30”),提交即可。31、(一)定义一个抽象类GeneralPeople,要求如下:(a)成员变量:私有成员name表示姓名,为String类型私有成员sex表示性别,为boolean类型,true表示男,false表示女(b
19、)方法:(1)无参构造方法GeneralPeople ( ),将各成员变量初始化为默认值(2)构造方法GeneralPeople (String name, boolean sex) (3)设置姓名的公有方法(4)读取姓名的公有方法(5)设置性别的公有方法(6)读取性别的公有方法public String getSex( ) 如果为true,返回male,否则返回female(7) 抽象方法public abstract void disp( );(二)根据抽象类GeneralPeople派生出学生类Student(a)学生类Student的成员变量:私有成员school表示所在学校,为Str
20、img类型(b)学生类Student的方法:(1)无参构造方法Student ( ),将各成员变量初始化为默认值(2)构造方法Student (String name, boolean sex, String school) (3)设置学校的公有方法(4)读取学校的公有方法(8) 实现方法disp(),将学生的姓名、性别、所在学校输出到屏幕(三)根据学生类Student派生出大学生类CollegeStudent,要求如下:(a)CollegeStudent的成员变量:私有成员specialty表示所学专业,为String类型(b)CollegeStudent的方法:(1)无参构造方法Colle
21、geStudent ( ),将各成员变量初始化为默认值(2)构造方法CollegeStudent (String name, boolean sex, String school, String specialty)(3)设置专业的公有方法(4)读取专业的公有方法(5)void disp( ) 将学生的姓名、性别、年龄、所在学校、所学专业输出到屏幕(四)建立抽象类GeneralPeople的测试程序,要求建立一个GeneralPeople类型的数组g,任意建立几个Student类型的对象和CollegeStudent类型的对象,将这些对象依次赋值给数组g中的数组元素,用一个循环多态地调用方法d
22、isp()。注意:将上述4题的4个类分别写到4个.java文件中,然后放到一个文件夹中,文件夹命名为“学号姓名31”,然后将该文件夹压缩为一个压缩文件(压缩文件名仍为“学号姓名31”),提交即可。32、接口在实际中更多的作用是用来制订标准的。比如说:“U盘(FlashDisk)和打印机(Printer)都可以插在电脑上使用,这是因为它们都实现了USB的接口,对于电脑来说,只要是符合了USB接口标准的设备就都可以插进来使用,而无需关心到底是什么设备。请按要求实现以下各类:(1) 定义一个接口USB,其中包含两个抽象方法void start()和void stop()。(2)定义一个类FlashD
23、isk实现接口USB,并实现该接口中的两个抽象方法,在start()方法中输出如下语句“U盘已插入,可以开始读写数据”,在stop()方法中输出如下语句“U盘已弹出,无法继续读写数据”(3)定义一个类Printer实现接口USB,并实现该接口中的两个抽象方法,在start()方法中输出如下语句“打印机已连接,可以开始打印”,在stop()方法中输出如下语句“打印机未连接或已停止”(4)定义一个类Computerpublic class Computer public void plugin(USB usb)/表示设备的插入 usb.start(); System.out.println(=US
24、B设备工作正常 =); public void pullout(USB usb)/表示设备的拔出 usb.stop(); (5)建立一个测试类,在main方法中创建一个Computer的对象,并调用相应的方法表示插入和拔出一个U盘,插入和拔出一个打印机。注意: 将上述5个类分别写到5个.java文件中,然后放到一个文件夹中,文件夹命名为“学号姓名”,然后将该文件夹压缩为一个压缩文件(压缩文件名为“学号姓名32”),提交即可。33、以3种不同的颜色和字体在窗体上绘制字符串“三八妇女节快乐!”。34、设计如下界面(性别、年龄、学院、专业的输入可省略)要求如下:(1)在此界面“取消”按钮之后再增加一
25、个组件“文本区域”用来显示信息(2)当用户点击“确定”按钮后,将刚输入的各种信息显示在一个“文本区域”中(3)当用户点击“取消”按钮后,该界面恢复到初始状态,学号后的文本框获得输入焦点。按钮上的图标使用如下的两个图标:(在“上机指导”文件夹中查找)35、(只提交.java文件即可,不要提交压缩包),注意文件命名格式“学号+姓名”设计如下图形用户界面,要求程序具备以下功能:(1)要求“学院”下拉列表与“专业”下拉列表具有联动效果,“学院”的选项与所对应的“专业”选项自由添加;(2)把“年龄”后的文本框修改为 “下拉列表框”;(2)点击“确定”按钮在文本区域中以添加方式显示刚输入的信息;(3)点击“取消”按钮清空各文本框里的内容,各复选框都未被选中,“学号”后的文本框获得输入焦点。所需两个图标如下:(在“上机指导”文件夹中查找)36、完成课本上P495页13.21的程序。编写一个“猜数”程序:该程序随机在11000的范围中选择一个供用户猜测的整数。然后在界面上显示如下标签:给你一个11000的随机数请你猜,请输入你猜的数。应使用一个JTextField来输入猜的
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1