JAVA实验_题目8
- 格式:doc
- 大小:37.50 KB
- 文档页数:4
实验8 Method的使用1.程序填空题,不要改变与输入输出有关的语句;50001输入一个正整数repeat 0<repeat<10,做repeat次下列运算:输入1 个正整数n,计算 s 的前n项的和保留 4 位小数;s = 1 + 1/2 +....+ 1/n要求定义并调用函数factn计算n的阶乘;例:括号内是说明输入:2 repeat=22 n=210 n=10输出:public class Test50001 {public static void mainString args {int ri,repeat;int i,n;double s;Scanner in=new Scanner;repeat=;forri=1;ri<=repeat;ri++{n=;/-----------/s=0;for i=1;i<=n;i++s+=fact i;}}/---------------/static double fact int n {int i;double f=1;for i=1;i<=n;i++f=i;return f;}}50002输入一个正整数repeat 0<repeat<10,做repeat次下列运算:输入2个正整数a和n, 求a+aa+aaa+aa…an个a之和;要求定义并调用函数fna,n,它的功能是返回aa…an个a;例如,fn3,2的返回值是33;例:括号内是说明输入2 repeat=22 3 a=2, n=38 5 a=8, n=5输出246 2+22+22298760 8+88+888+8888+88888imponner;public class Test50002{public static void mainString args{int ri, repeat;int i, n,a;long sn;Scanner in=new Scanner;repeat=;forri=1; ri<=repeat; ri++{a=;n=;/------------/sn=0;for i=1;i<=n;i++sn+=fn a,i;}}/------------/s tatic int fn int a,int n{int s=0;forint i=1;i<=n;i++s=s10+a;return s;}}50003输入一个正整数repeat 0<repeat<10,做repeat次下列运算:读入1 个整数,统计并输出该数中2的个数;要求定义并调用函数countdigitnumber,digit,它的功能是统计整数number中数字digit的个数;例如,countdigit10090,0的返回值是3;例:括号内是说明输入:3 repeat=3-219022345543输出:count=2 -21902中有2个2count=1 有1个2count=0 345543中没有2public class Test50003{public static void mainString args{int ri, repeat;int count;long n;Scanner in=new Scanner;repeat=;forri=1; ri<=repeat; ri++{n=;/---------/n=n;count=countdigit n,2;}}/------------/static int countdigit long number,int digit{....要求定义并调用函数fibn,它的功能是返回第n项Fibonacci数;例如,fib7的返回值是13;例:括号内是说明输入:3 repeat=31 10 m=1, n=1020 100 m=20, n=1001000 6000 m=1000, n=6000输出:1 123 5 8 1到10之间的Fibonacci数21 34 55 89 20到100之间的Fibonacci数1597 2584 4181 1000到6000之间的Fibonacci数public class Test50006{public static void mainString args{int ri,repeat;int i, m, n;long f;Scanner in=new Scanner;repeat=;forri=1; ri<=repeat; ri++{m=;n=;/---------/i=1;f=1;while f<=n{if f>=m " ";i++;f=fib i;}}}/------------/sta ti c long fib int n{ //返回第n项Fibonacci数int i;long a=1,b=1,f=1;for i=3;i<=n;i++{ //从第3项开始计算f=a+b;a=b;b=f;}return f;}}50007输入一个正整数repeat 0<repeat<10,做repeat次下列运算:输入2 个正整数m和n1<=m,n<=10000,输出m 到n之间的所有完数完数就是因子和与它本身相等的数;要求定义并调用函数factorsumnumber,它的功能是返回number的因子和;例如,factorsum12的返回值是161+2+3+4+6;例:括号内是说明输入:2 repeat=220 500 m=100, n=4001 100 m=1, n=100输出:28 4961 6 28public class Test50007{public static void mainString args{int ri,repeat;int i, m, n;Scanner in=new Scanner;repeat=;forri=1;ri<=repeat;ri++{m=;n=;/---------/for i=m;i<=n;i++if i==factorsum i" ";}}/---------/static int factorsum int number{ //返回number的因子和int sum=0;if number==1sum=1;forint i=1;i<=number-1;i++if number%i==0sum+=i;return sum;}}50008输入一个正整数repeat 0<repeat<10,做repeat次下列运算:输入2 个正整数m和n1<=m,n<=1000,输出m 到n之间的所有满足各位数字的立方和等于它本身的数;要求定义并调用函数isnumber判断number的各位数字之立方和是否等于它本身;例:括号内是说明输入:2 repeat=2100 400 m=100, n=4001 100 m=1, n=100输出:153 370 371 111+555+333=153; 333+777=370; 333+777+111=3711public class Test50008{public static void mainString args{int ri,repeat;int i, m, n;Scanner in=new Scanner;repeat=;forri=1;ri<=repeat;ri++{m=;n=;/---------/for i=m;i<=n;i++if is i" ";}}/---------///判断number的各位数字之立方和是否等于它本身static boolean is int number{int sum=0,n,digit;n=number;while n>0{digit=n%10;n=n/10;sum+=digitdigitdigit;}if number==sum return true;else return false;}}50009输入一个正整数repeat 0<repeat<10,做repeat次下列运算:输入一个整数,将它逆序输出;要求定义并调用函数reversenumber,它的功能是返回number的逆序数;例如reverse12345的返回值是54321;例:括号内是说明输入4 repeat=4123456 -100 -2 99输出654321-1-299public class Test50009{public static void mainString args{int ri,repeat;long n, res;Scanner in=new Scanner;repeat=;forri=1;ri<=repeat;ri++{n=;/---------/res=reverse n;}}/---------/static long reverse long number{//返回number的逆序数int flag=1;long a=0,digit;if number<0{flag=-1;number=-number;}while number>0{digit=number%10; //分离出个位数字a=a10+digit; //形成当前的逆序数number=number/10;}return flaga;}}50011输入一个正整数repeat 0<repeat<10,做repeat次下列运算:输入三个整数a、b和c,输出其中较大的数;要求定义和调用函数maxa, b, c找出a、b中较大的数,函数形参a、b和c的类型是int;输入输出示例:括号内是说明输入3 repeat=3输入:5 8 9 a=5, b=8-1 -10 -5 a=-1, b=-101 1 1 a=1, b=1输出:max5,8,9=9max-1,-10,-5=-1max1,1,1=1public class Test50011 {public static void mainString args {int ri, repeat;int a,b,c,maximun;Scanner in = new Scanner;repeat = ;for ri = 1; ri <= repeat; ri++ {a = ;b = ;c=;/-----------------/maximun=maximuna,b,c;Sy}}/-------------------/static int maximunint a,int b,int c{int max=a;ifmax<bmax=b;ifmax<cmax=c;return max;}}。
第1章问答题及作业题第1章问答题1、发明Java语言的原因是什么?发明Java语言的主要贡献者是谁?2、“Java编译器将源文件编译生成的字节码是机器码”,这句话正确吗?3、Java程序的主类必须含有怎样的方法?4、“Java应用程序必须含有一个类是public类”,这句话正确吗?5、“Java Applet程序的主类必须是public类”,这句话正确吗?6、请叙述Java源文件的命名规则。
7、源文件生成的字节码在运行时都加载到内存中吗?8、怎样编写加载运行Java Applet的简单网页?9、编译器使用“-source”参数的作用是什么?“-source”参数的默认取值是什么?第1章作业题1.参照例1-1编写一个Java应用程序,程序能在命令行中输出“早上好,Good Morning”。
2.参照例1-2编写一个Java Applet程序,程序能在浏览器中显示“你好,Hello”。
第2章问答题及作业题第2章问答题1、什么是标识符?标识符的规则是什么?2、什么是关键字?请说出5个关键字。
3、Java的基本数据类型是什么?4、下列哪些语句是错误的?int x=120;byte b=120;b=x;5、下列哪些语句是错误的?float x=12.0;float y=12;double d=12;y=d;6、下列两条语句的作用是等价的吗?char x=97;char x=’a’;7、下列语句输出的结果是什么?int a=97;byte b1=(byte)128;byte b2=(byte)-129;System.out.printf(“%c,%d,%d”,a,b1,b2);8、数组是基本数据类型吗?怎样获取一维数组的长度?9、假设有两个int类型数组:int[] a=new int[10];int[] b=new int[8];b=a;a[0]=100;b[0]的值一定是100吗?10、下列两条语句的作用等价吗?int[] a={1,2,3,4,5,6,7,8};int[] a=new int[8];}第2章作业题1.参照例2-1编写一个Java应用程序,输出俄文字母表。
java8集合非空的写法题目:Java 8集合非空的写法目录:1. 引言2. 初始集合3. 第一种方法:使用if条件判断3.1. 传统的if条件判断3.2. 使用Java 8的Optional类4. 第二种方法:使用Stream流4.1. 使用stream().anyMatch()4.2. 使用stream().findFirst().isPresent()4.3. 使用stream().collect(Collectors.toList()).isEmpty()5. 总结1. 引言在Java 8中,集合非常常见且广泛使用。
然而,有时候我们需要判断一个集合是否为空,以便在代码中做出相应的处理。
本文将介绍两种常见的方式,以帮助你在Java 8中判断集合是否为空。
2. 初始集合我们首先需要创建一个初始的集合,以便进行判断。
在这里,我们创建一个名为"list"的ArrayList作为示例:javaList<String> list = new ArrayList<>();3. 第一种方法:使用if条件判断这是一种常见的方法,只需要使用if语句来判断集合是否为空。
3.1. 传统的if条件判断javaif (list != null && !list.isEmpty()) {集合非空,进行相关操作} else {集合为空,进行相关操作}这是一种传统的方式,先判断集合是否为null,然后再判断集合是否为空。
3.2. 使用Java 8的Optional类Java 8引入了Optional类,它可以帮助我们更好地处理空值。
使用Optional类,我们可以将上述if条件判断简化为以下代码:javaOptional<List<String>> optionalList = Optional.ofNullable(list); if (optionalList.isPresent() && !optionalList.get().isEmpty()) { 集合非空,进行相关操作} else {集合为空,进行相关操作}Optional类提供了ofNullable()方法,可以将一个可能为空的引用包装为Optional对象。
java实践练习题Java是一种常用的高级编程语言,广泛应用于软件开发领域。
为了提高自己的编程技能,掌握Java的基本语法和特性,进行实践练习是必不可少的。
本文将为大家提供一些Java实践练习题,帮助读者加深对Java的理解和应用。
练习题一:用户登录验证编写一个Java程序,实现用户登录验证功能。
要求实现以下功能:1. 提示用户输入用户名和密码;2. 编写一个方法来判断用户输入的用户名和密码是否正确;3. 如果用户名和密码正确,则输出“登录成功”,否则输出“登录失败”。
示例代码:```import java.util.Scanner;public class UserLogin {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输入用户名:");String username = input.nextLine();System.out.println("请输入密码:");String password = input.nextLine();if (validateUser(username, password)) {System.out.println("登录成功");} else {System.out.println("登录失败");}input.close();}public static boolean validateUser(String username, String password) { // 编写验证逻辑// 返回true或false表示验证结果}}```练习题二:计算阶乘编写一个Java程序,计算给定数字的阶乘。
要求实现以下功能:1. 提示用户输入一个正整数;2. 编写一个方法来计算给定数字的阶乘;3. 输出计算结果。
Java程序设计实用教程(第4版)习题解答与实验指导叶核亚编著2013年11月目录“Java程序设计”课程教学要求 (1)第1章Java概述 (3)第2章Java语言基础 (5)第3章类的封装、继承和多态 (22)第4章接口、内部类和Java API基础 (37)第5章异常处理 (42)第6章图形用户界面 (44)第7章多线程 (49)第8章输入/输出流和文件操作 (51)“Java程序设计”课程教学要求1. 课程性质、目的和任务程序设计是高等学校计算机学科及电子信息学科各专业本科的核心专业基础课程,是培养学生软件设计能力的重要课程。
在计算机学科的本科教学中,起着非常重要的作用。
“Java程序设计”是计算机科学与技术专业本科的专业基础限选课,开设本课程的目的是:进行程序设计和面向对象方法的基础训练;使用Java编程技术,设计解决操作系统、网络通信、数据库等多种实际问题的应用程序。
本课程通过全面、系统地介绍Java语言的基础知识、运行机制、多种编程方法和技术,使学生理解和掌握面向对象的程序设计方法,理解和掌握网络程序的特点和设计方法,建立起牢固扎实的理论基础,培养综合应用程序的设计能力。
本课程的先修课程包括:C/C++程序设计I、C/C++程序设计II、数据结构、操作系统、计算机网络、数据库原理等。
2. 教学基本要求本课程的基本要求如下。
①了解Java语言特点,理解Java Application应用程序的运行原理和方法。
掌握在JDK 环境中编译和运行程序的操作,熟悉在MyEclipse集成开发环境中,编辑、编译、运行和调试程序的操作。
②掌握Java语言中语句、数组、引用类型等基本语法成分的使用方法,通过类、接口、内嵌类型、包、异常处理等机制表达和实现面向对象程序设计思想。
③掌握Java的多种实用技术,包括图形用户界面、多线程、文件操作和流、使用URL 和Socket进行网络通信等。
④熟悉Java JDBC数据库应用的设计方法。
实验报告:模拟物流快递系统程序设计一、实验目的本次实验旨在通过Java编程语言,模拟物流快递系统的基本功能,包括订单管理、货物管理、配送管理、库存管理等功能。
通过本次实验,我们希望掌握Java 编程语言在物流快递系统中的应用,提高我们的编程能力和系统设计能力。
二、实验环境本次实验使用的编程语言为Java,开发工具为Eclipse,操作系统为Windows 10。
三、实验步骤1. 确定系统需求:首先,我们需要明确物流快递系统的基本功能,包括订单管理、货物管理、配送管理、库存管理等功能。
同时,还需要考虑系统的用户界面和交互方式。
2. 设计系统架构:根据系统需求,我们可以设计系统的架构,包括数据库设计、系统模块划分等。
3. 编写代码:根据系统架构,我们可以开始编写代码。
首先,我们需要定义数据模型,包括订单、货物、配送等的数据结构。
然后,我们需要编写相应的业务逻辑代码,实现系统的各个功能。
4. 测试与调试:编写完代码后,我们需要进行测试和调试。
首先,我们可以进行单元测试,确保每个模块的功能正常。
然后,我们可以进行集成测试,确保各个模块之间的交互正常。
5. 完善系统:在测试和调试完成后,我们可以对系统进行完善,包括添加文档、优化代码等。
四、实验结果通过本次实验,我们成功地实现了物流快递系统的基本功能,包括订单管理、货物管理、配送管理、库存管理等功能。
同时,我们也实现了系统的用户界面和交互方式,使得用户可以方便地使用系统。
五、实验总结通过本次实验,我们不仅掌握了Java编程语言在物流快递系统中的应用,还提高了我们的编程能力和系统设计能力。
同时,我们也意识到了软件开发过程中的细节问题和规范问题,这对我们未来的工作和学习都有很大的帮助。
Java实验报告中的所有实验题实验一略实验二Java 基本语法练习【完成实验项目】1.输入一个整数,输出该数的二进制表示形式的字符串2.编写Java应用程序,把100~1000的自然数中能够被3整除的数输出到屏幕上。
3.打印小于1000的斐波纳契数4. 输入一个梯形的上底、下底和高,求其面积实验三面向对象基础编程【完成实验项目】1.写一个名为Rectangle的类表示矩形。
其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。
要求该类提供计算面积的方法getArea()方法,以及修改width和height的值及获得width和height当前值的方法。
要求:(1)使用构造函数完成各属性的初始赋值(2)使用getter和setter的形式完成属性的访问及修改2. . 请定义一个名为Card的扑克牌类,该类有两个private访问权限的字符串变量face 和suit:face描述一张牌的牌面值(如:"Ace", "Deuce", "Three","Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King");suit描述一张牌的花色(如:"Hearts", "Diamonds", "Clubs", "Spades")。
定义Card类中的public访问权限的构造方法,为类中的变量赋值;定义protected访问权限的方法getFace(),得到扑克牌的牌面值; 定义protected访问权限的方法getSuit(),得到扑克牌的花色; 定义方法toString(),返回表示扑克牌的花色和牌面值字符串(如“Ace of Hearts”、“Ten of Clubs”等)。
java程序设计实训题目
以下是一些Java程序设计实训题目,供您参考:
1. 编写一个Java程序,实现一个简单的计算器,可以进行加、减、乘、除
运算。
要求使用面向对象的思想,将计算器的功能封装在一个类中,并提供一个主函数用于测试。
2. 编写一个Java程序,实现一个简单的文本编辑器,可以打开、保存、编
辑和打印文本文件。
要求使用Java的I/O流和文件操作类库,以及图形用
户界面库(如Swing或JavaFX)。
3. 编写一个Java程序,实现一个简单的聊天室,支持多人同时在线聊天。
要求使用Java的多线程机制和网络编程技术(如Socket编程),并实现基本的用户注册、登录和消息发送功能。
4. 编写一个Java程序,实现一个简单的数据库管理系统,可以创建、删除、查询和更新数据库中的记录。
要求使用Java的JDBC API连接数据库,并
使用SQL语句进行操作。
5. 编写一个Java程序,实现一个简单的图像处理软件,可以对图像进行缩放、旋转、裁剪和滤镜处理。
要求使用Java的图像处理库(如Java Advanced Imaging API)和图形用户界面库(如Swing或JavaFX)。
6. 编写一个Java程序,实现一个简单的邮件发送系统,可以发送HTML格式的邮件。
要求使用Java的邮件发送库(如JavaMail API),并支持SMTP协议和附件上传功能。
7. 编写一个Java程序,实现一个简单的在线考试系统,可以随机生成试题、计时考试时间并自动评分。
要求使用Java的多线程机制和网络编程技术(如Socket编程),并实现基本的用户登录、答题和提交功能。
实验八:抽象类和接口
【实验目的】
1.熟练掌握类的继承的概念。
2.掌握抽象类abstract的概念。
3.掌握接口interface的概念。
【实验地点】科技楼206
【课时安排】2课时
【实验内容】
1.定义一个抽象类--Shape,该类有求面积getArea和周长getPerimeter两个抽象方法。
该抽象类派生三角形Triangle、矩形Rectangle、圆Circle三个子类,为各个子类实
现抽象类的方法,并为这些子类编写合适的属性和构造方法。
编写程序分别创建三
角形、矩形、圆对象,并输出各个对象的面积和周长。
2.定义一个接口Drawable,该接口如下:
public interface Drawable{
public void draw();
public boolean isVisible();
}
对第一题中的三个派生子类,分别实现Drawable接口,并对创建的对象调用其实
现的接口方法。
(对于方法的实现可以尽量简单,如draw方法可以简单的打印出:“某某类的draw方法”)
【作业】
将第1题实验内容写实验报告。
实验一熟悉Java开发环境(验证性2学时)一、实验目的与要求:1 掌握Java Application程序的开发过程并编写第一个Java Application程序*2 掌握Java Applet程序的开发过程并编写第一个Java Applet程序。
*3 练习简单的HTML文件配合Java Applet使用。
4 熟悉jdk的使用二、实验内容:1 编写一个Java Application程序,在屏幕上显示”This is my first java program!”.*2 编写第一个Java Applet 程序,在屏幕上显示”This is my first Java Applet!”三、实验步骤:1、jdk的使用jdk开发工具包可以从网站下载,jdk不是集成编译环境,须手动运用命令行程序进行编译和解释执行1)编辑.java文件可以在记事本或其他纯文本编辑器中编辑,保存时把文件扩展名定为.java即可,当然要注意文件名命名的要求2)编译生成.class文件进入dos系统进行编译(如图1.1所示),格式如javac MyFirstApplication.java,要注意图1.1进入命令行看javac.exe的路径并且MyFirstApplication.java文件路径和javac.exe路径一样。
编译成功后就能在浏览器中看见多了一个MyFirsApplication.class或更多的.class文件。
如图1.2所示图1.2使用jdk编译MyFirstApplication.java文件3)解释执行Application程序:同样是在dos系统下解释执行,格式如java MyFirstApplication,注意.class后缀别加,如图1.3所示。
图1.3解释执行MyFirstApplication.class程序* applet程序进入dos系统进行编译,格式如javac MyFirstApplet.java,要注意看javac.exe的路径并且MyFirstApplet.java文件路径和javac.exe路径一样。
第八章类和对象的扩展
【实验目的】
(1) 类的继承
a. 掌握父类及子类的关系及创建方法
b. 掌握上转型对象的使用方法
c. 掌握子类对象创建过程中与父类构造方法的关系,及super关键字的用法
(2) 多态与接口
a. 掌握抽象类与抽象方法的概念
b. 掌握多态的实现原理及方法
c. 了解成员变量的隐藏
d. 掌握接口的设计方法
【实验范例】
例1:(继承)
(1)编写一个圆类Circle,该类拥有:
①一个成员变量
Radius(私有,浮点型);ustID == id) ind=i;
}
while (true) {
"\n1.存款");
"2.取款");
"3.修改密码");
"4.查询");
"5.退出");
sc = new Scanner;
switch()) {
case 1:
"请输入存款金额:");
money = ();
cust[ind].deposit(money);
cust[ind].displayAccout();
break;
case 2:
"请输入取款金额:");
money = ();
if (cust[ind].withdraw(money))
cust[ind].displayAccout();
else
"您的账号余额不足!");
break;
case 3:
"请输入新密码:");
cust[ind].custPWD = ();
break;
case 4:
cust[ind].displayAccout();
break;
case 5:
"欢迎使用xxx银行系统!");
(1);
}
}
}
}
【练习题目】
8-1 (继承与多态)有哺乳动物类mammal,将其作为父类,从其派生出子类猫cat和子类狗dog,基类中有方法speak()。
8-2 (重载)编写一个Java应用程序,从键盘读取用户输入两个字符串,并重载3个strAdd函数分别实现这两个字符串的拼接、整数相加和浮点数相加。
要进行异常处理,对输入的不符合要求的字符串提示给用户,不能使程序崩溃。
(异常处理)
8-3 (接口)
1.利用接口继承完成对生物、动物、人三个接口的定义。
其中生物接口定义呼吸抽象方法;
2.动物接口除具备生物接口特征之外,还定义了吃饭和睡觉两个抽象方法;
3.人接口除具备动物接口特征外,还定义了思维和学习两个抽象方法。
4.定义一个学生类实现上述人接口。
8-4 (继承、接口)
实现一个名为Person的类和它的子类Employee,Manager是Employee的子类,设计一个接口Wage,用于涨工资,普通员工一次能涨10%,经理能涨20%。
具体要求如下:
(1)接口Wage包含addWage方法,创建类WageImpl用于实现接口Wage
(2)Person类中的属性有:姓名name(String类型),地址address(String类型),定义该类的构造方法;
(3)Employee类中的属性有:工号ID(String型),工资wage(double类型),工龄(int型),定义该类的构造方法;
(4)Manager类中的属性有:级别level(String类型)定义该类的构造方法;
(5)编写一个测试类,产生一个员工和一个经理给该员工和经理涨工资,并输出其具有的信息。
(提示:对象类型判断用instanceof)
【综合练习】
仿照综合例子,在第七章综合例子的基础上改进。
要求:
1、增加VIP卡类,它继承于FuelCard
a)VIP卡有折扣等级 (设置属性成员折扣等级:level);(0级无折扣,1
级98折,2级95折)
b)根据需要,重写VIP卡的加油的方法(重写);
c)仿照综合例子,增加另一个构造函数(重载),包含对level属性值的构
造
3、建立4张加油卡(对象数组),信息为
4、实现简单的循环菜单显示,并实现存|充值、加油、显示卡信息、修改密码、更改车牌等功能。