Java实验2

合集下载

Java实验

Java实验

实验一熟悉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路径一样。

JavaEE实验(参考) 2

JavaEE实验(参考) 2

本科实验报告课程名称:Java EE编程技术实验项目:语法基础代码风格实验实验地点:逸夫楼404专业班级:软件1028 学号:2010005249 学生姓名:赵才轩指导教师:高保禄2013 年 4 月26 日一.实验目的熟悉Java、JSP、Servlet、Html等相关语法,培养良好的代码风格,为其他实验做好准备。

二.实验内容熟悉NetBeans开发环境,通过编写一个Jsp调用Servlet的程序,熟悉Java、JSP、Servlet、Html等相关语法,培养良好的代码风格。

可以任选以下任一题目:A.网站计数器;B.简易购物车;C.编写一个自定义标记,将Servlet返回的英文字符串转换为大写。

三、实验要求:参照课本,快速熟悉相关内容,按所需题目编写程序,熟悉Java等编程语言或技术的基本编程技巧,注重良好的代码风格(如变量命名、代码注释、Servlet 与类中代码的结构等),初步掌握编写Web应用程序的能力。

2)设法在用户主目录中以home_mycal的文件名来调用mydir/mycal文件。

四、实验环境:软件环境:Windows 7/XP/2000/2003/2008,NetBeans5.5.1/6.5/7.3;硬件环境:P4 2.4G/80G/1G/64M及较高配置的PC机。

五、实验步骤和实验结果:(A、B、C三个实验都有)A.网站计数器:(1)思维方法:首先,网页浏览次数每个用户都可以查看,所以用Servlet 上下文去保存数据;再者:网站计数器要确保在网页重新部署时或服务器重新启动时记得数不会从1开始,所以,我选择用文件把Servlet上下文的数据进行保存;最后,如果在用户访问一次就要读写文件的话,这样效率会很低,所以我利用Servlet的生命周期,把文件的读放在init()方法中,把文件的写放在destory()方法中,这样就完成了对浏览网页的计数。

(2)实现方法:(由于代码较多,所以选择重要的代码写入报告中)Init()方法:(实现了读文件,如果不存在文件则创建一个,并写入初值)public void init() throws ServletException {String counter=null;File FCounter=new File("j:\\counter.txt");if(!FCounter.exists())try {FCounter.createNewFile();FileWriter fw=new FileWriter("j:\\counter.txt");BufferedWriter bw=new BufferedWriter(fw);bw.write("0");bw.close();} catch (IOException ex) {Logger.getLogger(ZCXWebCount.class.getName()).log(Level.SEVERE, null, ex);}try {FileReader fr=new FileReader("j:\\counter.txt");BufferedReader br=new BufferedReader(fr);try {counter=br.readLine();br.close();} catch (IOException ex) {Logger.getLogger(ZCXWebCount.class.getName()).log(Level.SEVERE, null, ex);}} catch (FileNotFoundException ex) {Logger.getLogger(ZCXWebCount.class.getName()).log(Level.SEVERE, null, ex);}this.getServletContext().setAttribute("counter", counter);}●Destory()方法:(实现了跟新文件内容的功能)public void destroy() {String counter=null;try {FileWriter fw=new FileWriter("j:\\counter.txt");BufferedWriter bw=new BufferedWriter(fw);counter=(String) this.getServletContext().getAttribute("counter");bw.write(counter);bw.close();} catch (IOException ex) {Logger.getLogger(ZCXWebCount.class.getName()).log(Level.SEVERE, null, ex);}}●processRequest()方法:(实现了用户浏览后加一的功能,以及显示给用户)protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();String counter=null;counter=(String) this.getServletContext().getAttribute("counter");int count=Integer.parseInt(counter);count++;counter=String.valueOf(count);this.getServletContext().setAttribute("counter", counter);try {out.println("<html>");out.println("<head>");out.println("<title>网站计数器</title>");out.println("</head>");out.println("<body>");out.println("<center><h1>赵才轩网页计数器</h1>");out.println("<h1>访问次数:" +this.getServletContext().getAttribute("counter") + "</h1>");out.println("</center></body>");out.println("</html>");} finally {out.close();}}(3)简易截图:B.简易购物车(1)思维方法:首先,在这个简易的购物车中我不设计数据库,只是从简单的思路中说明问题,所以我的商品数据在jsp页面中体现,并且各个商品的默认属性都是一致的,只是数据不同,这些属性用表单的形式发送处理;再者,我用对象ArrayList去收集购物车中的数据,并用会话session中的setAttribute()方法去保存用户的购物车,再用getAttribute()方法把购物车中的数据显示给用户,最后,在显示出购物车的数据后可以再放回商品页面继续购物。

软件测试实验二实验报告

软件测试实验二实验报告

软件测试实验二实验报告一、实验目的本次软件测试实验的主要目的是熟悉并掌握软件测试的基本方法和技术,通过对一个具体软件系统的测试,发现软件中存在的缺陷和问题,提高软件的质量和可靠性。

二、实验环境1、操作系统:Windows 102、测试工具:Jmeter、Selenium、Bugzilla3、开发语言:Java4、数据库:MySQL三、实验内容1、功能测试对软件的登录功能进行测试,包括输入正确和错误的用户名、密码,验证登录是否成功以及相应的提示信息是否准确。

测试软件的注册功能,检查输入的各项信息是否符合要求,如用户名长度、密码强度等。

对软件的搜索功能进行测试,输入不同的关键词,检查搜索结果的准确性和完整性。

2、性能测试使用 Jmeter 工具对软件的并发性能进行测试,模拟多个用户同时登录、搜索等操作,观察系统的响应时间、吞吐量等性能指标。

对软件的数据库操作性能进行测试,包括插入、查询、更新和删除数据,检查数据库的响应时间和资源占用情况。

3、兼容性测试在不同的浏览器(如 Chrome、Firefox、IE 等)上运行软件,检查界面显示和功能是否正常。

在不同的操作系统(如 Windows、Mac OS、Linux 等)上安装和运行软件,验证其兼容性。

4、安全测试对软件的用户认证和授权机制进行测试,检查是否存在未授权访问和越权操作的情况。

测试软件对 SQL 注入、XSS 攻击等常见安全漏洞的防范能力。

四、实验步骤1、功能测试步骤打开软件登录页面,输入正确的用户名和密码,点击登录按钮,观察是否成功登录并跳转到相应页面。

输入错误的用户名或密码,检查提示信息是否清晰准确。

进入注册页面,输入合法和不合法的注册信息,如用户名过短、密码强度不够等,查看系统的校验结果。

在搜索框中输入关键词,点击搜索按钮,对比搜索结果与预期是否一致。

2、性能测试步骤打开 Jmeter 工具,创建测试计划,添加线程组、HTTP 请求等元素。

Java语言实验2程序控制结构

Java语言实验2程序控制结构

一、实验目的1.理解定义变量的作用,掌握定义变量的方法。

2.掌握顺序结构程序控制。

3.掌握算法与程序设计的基本方法。

4.掌握if语句、if-else-if结构的使用。

5.掌握switch语句的使用。

6.掌握使用while语句实现循环。

7.了解使用do-while语句实现循环。

8.掌握使用for语句实现循环。

9.了解continue语句和break语句的使用。

10.掌握一维数组的概念、定义和使用。

二、实验内容及步骤1.顺序结构(1)任务写一个程序,读入三个整数并打印他们的平均值。

源代码:public class renwu1 {public static void main(String[] args) {int sum = 0;int aver = 0;Scanner scanner = new Scanner(System.in);for(int i = 1;i <= 3; i++) {System.out.print("请输入第" + i +"个数:");sum +=scanner.nextInt();aver = sum / i;}System.out.println("平均数是:" + aver);}}运行结果:写一个程序,读入两个浮点数并打印他们的和、差和积。

源代码:public static void main(String[] args) {float sum = 0;float cha = 0;float ji = 0;Scanner scanner = new Scanner(System.in);System.out.println("请输入第一个浮点数:");float num1 = scanner.nextFloat();System.out.println("请输入第二个浮点数:");float num2 = scanner.nextFloat();sum = num1 + num2;cha = num1 - num2;ji = num1 * num2;System.out.println("和是:" + sum);System.out.println("差是:" + cha);System.out.println("积是:" + ji);}}运行结果:2.分支结构(1)任务任务1:使用简单if语句编程,从键盘键入三个整数,然后按照从小到大的顺序将其输出。

java程序设计实验1,2,3

java程序设计实验1,2,3
importjava.util.Random;
publicclassMathDemo {
publicstaticvoidmain(String[] args) {
Random rand=newRandom();
intv=rand.nextInt();
System.out.println("你得到了一个"+v);
int a=5+4, b=a*2, c=b/4;
int d=b-c;
int e=-d;
int f=e%4;
double g=18.4, h=g%4;
int i=3;
int j=i++;
int k=++i;
System.out.println("a="+a);
System.out.println("b="+b);
}
}
1)保存文件名为:
2)编译命令为:
3)运行程序命令为:
4)如果删除该程序的第一行import语句,重新编译,有何问题?
评语:日期:年月日
实验二:数值类型与变量声明
实验目的:
1.掌握标识符的定义规则
2.认识Java的数据类型以及掌握各种变量的声明方法。
3.掌握不同数值类型间的赋值问题
实验内容
编写一个JAVA程序,对不同类型的类型进行变量的定义并输出相应的值。
if (e!=0 && a/e>5)
System.out.println("因为e非0且a/e为8大于5,所以输出a/e="+a/e);
if (f!=0 && a/f>5)

Java程序设计-试验2(学生版)

Java程序设计-试验2(学生版)

Java程序设计-试验2(学生版)
华北电力大学
实验报告
实验名称Java程序面向对象设计(一)课程名称Java程序设计
专业班级:学生姓名:
学号:成绩:指导教师:张学斌实验日期:
自己的speed的值增加80
【代码10】//car2调用speedUp方法将自己的speed的值增加80
System.out.println("car1目前的速度:"+car1.getSpeed());
System.out.println("car2目前的速度:"+car2.getSpeed());
car1.speedDown(10);
car2.speedDown(20);
System.out.println("car1目前的速度:"+car1.getSpeed());
System.out.println("car2目前的速度:"+car2.getSpeed());
}
}
1.3 实验指导
●创建一个对象时,成员变量被分配空间,这些内
存空间称作该对象的实体或变量,而对象中存放着引用,以确保这些变量被该对象操作使用。

●空对象不能使用,即不能让一个空对象去调用方
法产生行为。

假如程序中使用了空对象,在运行时会产生异常:NullPointerException,对象时。

实验2_流程控制与数组操作

实验2_流程控制与数组操作

四、实验任务
1.创建一个名为 Exp14BTV_1 的 java Application 程序,写出运行结果(验证性实验)。 2.创建一个名为 Exp14BTV_2 的 java Application 程序,写出运行结果(验证性实验)。 2.创建一个名为 Exp14BTV_3 的 java Application 程序,计算圆、矩形、三角形的周长 (设计性实验)。 3.创建一个名为 Exp14BTV_4 的 java Application 程序,计算数字对应的中文金额(设 计性实验)。 4.创建一个名为 Exp14BTV_5 的 java Application 程序,随机产生三组扑克(设计性实 验)。
♠> 。
3
♥>♡>
假设 1~13 为方块(diamond),14~26 为梅花(club),27~39 为红桃(heart),
40~52 为黑桃(spade),53 为小王(little joker),54 为大王(big joker)。 第 1 步:随机产生 18 张牌; 第 2 步:从其余 36 张牌随机选择 18 张牌; 第 3 步:剩余 18 张牌作为备牌; 第 4 步:输出第 1 次产生的 18 张牌; 第 5 步:输出第 2 次产生的 18 张牌; 第 6 步:最后输出备牌。 说明:以上三组牌不能有重复(设计性实验:使用数组和循环完成)。 自己通过 Java 程序实现。
五、实验报告要求
1. 实验目的和要求 2. 实验任务
1
3. 实验题目和源码 4. 实验结果截图粘贴到实验报告中或手抄实验结果 5. 实验中遇到的问题及解决方法(如果不能解决请说明您分析的原因) 6. 实验心得或体会 7. 实验报告必须手写 两条线: 验证性实验: 题目(实验要求)+源码+结果 设计性实验: 题目(实验要求)+源码+结果

java实训报告范文(共10篇)

java实训报告范文(共10篇)

java 实训报告范文(共 10 篇)辽宁建筑职业学院《Java 高级应用》实训报告课题名称:婚庆公司网站专业:软件技术班级:xxxxxxxxxx学号:姓名:xxxx 指导教师:xxx二O 一三年十二月三十日成绩评定标准:目录一、课程设计目的 ................ .. (3)二、课程设计题目描述和要求 ...... .. (3)三、课程设计报告内容 ............ .. (4)设计方案的论证 .................. .. (4)设计概述 ........................ .. (4)设计步骤 ........................ .. (4)课程设计的模块及功能 .............. .. (4)开发环境......................... .. (8)四、程序流程图与功能结构图 ...... .. (9)五、结论............................ .. (10)六、心得体会 .................... .. (11)七、参考书目 .................... .. (12)八、附录 ........................ .. (13)一、课程设计目的专业能力目标1.掌握规划网站的内容结构,目录结构,链接结构的方法。

2.熟练掌握网页制作软件的基本操作,和使用技能。

3.掌握使用 JAVA 语言进行面向对象设计的基本方法,提高运用分析问题,解决问题的能力。

4.提高我们对 JAVABEN 组建的掌握和运用能力,让我们更熟练应用图像的界面。

5.掌握页面的整体控制和头部内容的设置方法。

6.熟练掌握动态网站相关组件的设计:servelet、javabean、jsp、过滤器等。

7.熟练建立各种形式的超链网站测试的方法。

通用能力目标1、合理安排自己的任务及时间,来完成本次课题。

任务实训2 Java分支结构程序设计(一)

任务实训2 Java分支结构程序设计(一)

任务实训2 Java分支结构程序设计(一)一、实训目的通过本次实验,掌握Java的流程控制语句:顺序、分支语句的使用。

并能熟练运用if语句,switch语句解决实际问题。

二、实训内容1.阅读程序写出执行结果。

2.编写判断输入的年份是否是闰年的程序,闰年的条件是能被4整除,但不能被100整除;能被4整除,又能被400整除。

3.给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。

90分以上为A,81-89分为B,70-79分为C,60-69分为D,60分以下为E。

说明:Character.toUpperCase(ch)可以把小写字母转换为大写字母。

4.任意给定3个正实数(a,b,c)作为三角形的三边,判断是否能组成三角形,若可以则输出它的面积。

请编程。

说明:Math.sqrt()方法为求平方根;a+b>c,a+c >b,b+c>a同时成立组成三角形;p=(a+b+c)/2;面积=Math.sqrt(p*(p-a)*(p-b)*(p-c))三、实训步骤1、启动NetBeans。

2、新建一个项目,项目名称为ch02,存放在自己建立的文件夹下。

(具体操作步骤可以再复习一下实验一的内容)3、通过选择[文件]菜单中的[新建文件]命令,实现创建Java Application程序。

四、阅读程序写出执行结果及程序的功能通过选择[文件]菜单中的[新建文件]命令,实现以下实例内容。

通过练习并能熟练运用if语句,switch语句解决实际问题。

1、程序的功能及结果,并说明各语句的作用源程序名:NumberSort .javapackage chapter04;public class NumberSort {public static void main(String[] args) {int a=5,b=7,c=3,t;if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}System.out.print(a+" "+b+" "+c);}}五、独立编写Java Application程序1.编写判断输入的年份是否是闰年的程序,闰年的条件是能被4整除,但不能被100整除;能被4整除,又能被400整除。

实验2-转义字符、类型转换、运算符

实验2-转义字符、类型转换、运算符

实验2 Java符号与表达式2.1 实验目的(1)熟悉基本数据类型及其占用空间大小,熟悉标识符的定义特点;(2)熟悉常见转义字符的含义;(3)掌握不同类型数据的赋值转换原则,熟悉自动转换与强制转换的含义;(4)掌握常用运算符的使用。

2.2 知识要点2.2.1 基本数据类型、变量(1)标识符的命名原则:以字母,下划线(_),美元符($)开始的一个字符序列,后面可以跟字母,下划线,美元符,数字。

(2)基本数据类型(见表2-1)表2-1 基本数据类型●八进制表示形式:以0(零)开头,如:012;●十六进指表示形式:以0x开头,如:0xa1;●整数默认int型,长整数可在后面加L;●实数默认双精度型,要明确表示为float型在数据后加F。

●布尔型数据只有true和false两个值;●字符型数据是用单引号括起来。

2.2.2 特殊字符—转义符Java字符采用Unicode编码。

“\”(反斜杠)在字符表示或字符串中有特殊作用,它和之后的字符合并解释,用于表示一些特殊字符。

见表2-2。

表2-2 常见转义符2.2.3 自动类型转换与强制类型转换(1)自动转换次序byte-->short→char→int→long→float→double按照箭头所示方向,处于左边的数据类型的数据可以自动转换赋值给右边的数据类型的变量,但反之,将处于右边的数据类型的数据赋值给处于左边的数据类型的变量必须经过强制转换。

(2)布尔类型不能与其他类型进行转换;(3)赋值时强制转换可能导致数据丢失精度。

2.2.4 输出语句的使用(1)print()方法与println()的差异是前者输出后不换行,而后者换行。

(2)输出时可以通过“+”号将任何数据与字符串拼接。

如果拼接的是基本类型变量,则在其位置输出变量值,如果是对象,则在其位置输出对象的toString()方法的返回结果。

2.2.5 容易用错的运算符(1)++或--的位置相关性。

不妨假设原来a值为4,则使用++或--运算符后的结果如表2-3所示。

Java实验报告一及作业总结二

Java实验报告一及作业总结二

Java实验报告⼀及作业总结⼆Java实验报告实验⼀ Java开发环境与简单Java程序⼀、实验⽬的(1)熟悉JDK开发环境(2)熟练掌握结构化程序设计⽅法⼆、实验内容1. 打印输出所有的“⽔仙花数”,所谓“⽔仙花数”是指⼀个3位数,其中各位数字⽴⽅和等于该数本⾝。

例如,153是⼀个“⽔仙花数”。

2. 编写Java程序,求13-23+33-43+…+973-983+993-1003的值。

3. 编程求1!+2!+3!+…+20!。

4. 编写Java程序,计算8+88+888+…前10项之和。

5. ⼀个数如果恰好等于它的因⼦之和,这个数就称为完数。

编写程序输出1000以内的所有完数。

6. 编写应⽤程序,输出满⾜1+2+3+…+n<8888的最⼤正整数。

7. 使⽤for循环打印下⾯的图形。

三、实验过程1. 打印输出所有的“⽔仙花数”,所谓“⽔仙花数”是指⼀个3位数,其中各位数字⽴⽅和等于该数本⾝。

例如,153是⼀个“⽔仙花数”。

实验源码:实验结果:1533703714072. 编写Java程序,求13-23+33-43+…+973-983+993-1003的值。

实验源码:实验结果:-5003.编程求1!+2!+3!+…+20!。

实验源码:实验结果:40379134.编写Java程序,计算8+88+888+…前10项之和。

实验源码:实验结果:12866086085. ⼀个数如果恰好等于它的因⼦之和,这个数就称为完数。

编写程序输出1000以内的所有完数。

实验源码:实验结果:6284966. 编写应⽤程序,输出满⾜1+2+3+…+n<8888的最⼤正整数。

实验源码:实验结果:1327. 使⽤for循环打印下⾯的图形。

四、实验总结:觉得还是要多练题,增加⾃⼰的逻辑,解决相关问题。

总结报告:⼀:类的定义:基本⽅式;public static 返回值类型⽅法名(参数类型参数名称,.......){⽅法体; return 返回值;}⽅法的三种调⽤⽅式;注意:void 只能⽤于单独调⽤;要有⼀个更重要的地⽅在学习类的定义的时候,定义成员⽅法的时候与基本⽅法不同,成员⽅法他不需要static关键字,这个要注意!熟悉代码 这⾥说明⼀下什么时候⽤什么时候不⽤static关键字:在定义成员⽅法时不⽤,即因为此时定义的⽅法将要由对象调⽤,⽽不像之前那样与主⽅法⼀起定义在⼀个类当中且由主⽅法直接调⽤。

实验二 面向对象编程实验报告

实验二 面向对象编程实验报告

实验二面向对象编程实验报告一、实验目的本次实验旨在深入理解和掌握面向对象编程的基本概念和方法,通过实际编程操作,提高运用面向对象思想解决问题的能力,熟悉面向对象编程的开发流程和技巧,培养良好的编程习惯和代码规范。

二、实验环境本次实验使用的编程环境为具体编程环境名称及版本,操作系统为操作系统名称及版本。

三、实验内容(一)问题描述设计一个简单的学生管理系统,能够实现对学生信息(包括姓名、学号、年龄、成绩等)的录入、查询、修改和删除操作。

(二)类的设计1、设计一个`Student` 类,用于表示学生对象。

该类包含以下属性:`name`(姓名)、`student_id`(学号)、`age`(年龄)、`score`(成绩)。

2、为`Student` 类添加构造函数,用于初始化学生对象的属性。

3、为`Student` 类添加`get` 和`set` 方法,用于获取和设置学生对象的属性值。

(三)功能实现1、录入功能:实现用户输入学生信息,并创建`Student` 对象进行存储。

2、查询功能:根据学号或姓名查询学生信息,并输出查询结果。

3、修改功能:根据学号或姓名找到对应的学生对象,修改其属性值。

4、删除功能:根据学号或姓名删除对应的学生对象。

四、实验步骤(一)类的实现```javapublic class Student {private String name;private String studentId;private int age;private double score;public Student(String name, String studentId, int age, double score) {thisname = name;thisstudentId = studentId;thisage = age;thisscore = score;}public String getName(){return name;}public void setName(String name) {thisname = name;}public String getStudentId(){return studentId;}public void setStudentId(String studentId) {thisstudentId = studentId;}public int getAge(){return age;}public void setAge(int age) {thisage = age;}public double getScore(){return score;}public void setScore(double score) {thisscore = score;}}```(二)主函数实现```javaimport javautilArrayList;import javautilScanner;public class StudentManagementSystem {private ArrayList<Student> students;public StudentManagementSystem(){students = new ArrayList<>();}public static void main(String args) {StudentManagementSystem system = new StudentManagementSystem();Scanner scanner = new Scanner(Systemin);while (true) {Systemoutprintln("1、录入学生信息");Systemoutprintln("2、查询学生信息");Systemoutprintln("3、修改学生信息");Systemoutprintln("4、删除学生信息");Systemoutprintln("5、退出系统");int choice = scannernextInt();switch (choice) {case 1:systemaddStudent(scanner);break;case 2:systemqueryStudent(scanner);break;case 3:systemmodifyStudent(scanner);break;case 4:systemdeleteStudent(scanner);break;case 5:Systemoutprintln("感谢使用,再见!");Systemexit(0);default:Systemoutprintln("输入有误,请重新输入!");}}}//录入学生信息public void addStudent(Scanner scanner) {Systemoutprintln("请输入学生姓名:");String name = scannernext();Systemoutprintln("请输入学生学号:");String studentId = scannernext();Systemoutprintln("请输入学生年龄:");int age = scannernextInt();Systemoutprintln("请输入学生成绩:");double score = scannernextDouble();Student student = new Student(name, studentId, age, score);studentsadd(student);Systemoutprintln("学生信息录入成功!");}//查询学生信息public void queryStudent(Scanner scanner) {Systemoutprintln("请输入查询方式(1、按学号查询 2、按姓名查询):");int queryType = scannernextInt();if (queryType == 1) {Systemoutprintln("请输入学号:");String studentId = scannernext();for (Student student : students) {if (studentgetStudentId()equals(studentId)){Systemoutprintln("姓名:"+ studentgetName());Systemoutprintln("学号:"+ studentgetStudentId());Systemoutprintln("年龄:"+ studentgetAge());Systemoutprintln("成绩:"+ studentgetScore());return;}}Systemoutprintln("未找到该学号对应的学生信息!");} else if (queryType == 2) {Systemoutprintln("请输入姓名:");String name = scannernext();for (Student student : students) {if (studentgetName()equals(name)){Systemoutprintln("姓名:"+ studentgetName());Systemoutprintln("学号:"+ studentgetStudentId());Systemoutprintln("年龄:"+ studentgetAge());Systemoutprintln("成绩:"+ studentgetScore());return;}}Systemoutprintln("未找到该姓名对应的学生信息!");} else {Systemoutprintln("输入有误,请重新输入!");}}//修改学生信息public void modifyStudent(Scanner scanner) {Systemoutprintln("请输入修改方式(1、按学号修改 2、按姓名修改):");int modifyType = scannernextInt();if (modifyType == 1) {Systemoutprintln("请输入学号:");String studentId = scannernext();for (Student student : students) {if (studentgetStudentId()equals(studentId)){Systemoutprintln("请输入新姓名:");String newName = scannernext();Systemoutprintln("请输入新年龄:");int newAge = scannernextInt();Systemoutprintln("请输入新成绩:");double newScore = scannernextDouble();studentsetName(newName);studentsetAge(newAge);studentsetScore(newScore);Systemoutprintln("学生信息修改成功!");return;}}Systemoutprintln("未找到该学号对应的学生信息!");} else if (modifyType == 2) {Systemoutprintln("请输入姓名:");String name = scannernext();for (Student student : students) {if (studentgetName()equals(name)){Systemoutprintln("请输入新学号:");String newStudentId = scannernext();Systemoutprintln("请输入新年龄:");int newAge = scannernextInt();Systemoutprintln("请输入新成绩:");double newScore = scannernextDouble();studentsetStudentId(newStudentId);studentsetAge(newAge);studentsetScore(newScore);Systemoutprintln("学生信息修改成功!");return;}}Systemoutprintln("未找到该姓名对应的学生信息!");} else {Systemoutprintln("输入有误,请重新输入!");}}//删除学生信息public void deleteStudent(Scanner scanner) {Systemoutprintln("请输入删除方式(1、按学号删除 2、按姓名删除):");int deleteType = scannernextInt();if (deleteType == 1) {Systemoutprintln("请输入学号:");String studentId = scannernext();for (Student student : students) {if (studentgetStudentId()equals(studentId)){studentsremove(student);Systemoutprintln("学生信息删除成功!");return;}}Systemoutprintln("未找到该学号对应的学生信息!");} else if (deleteType == 2) {Systemoutprintln("请输入姓名:");String name = scannernext();for (Student student : students) {if (studentgetName()equals(name)){studentsremove(student);Systemoutprintln("学生信息删除成功!");return;}}Systemoutprintln("未找到该姓名对应的学生信息!");} else {Systemoutprintln("输入有误,请重新输入!");}}}```五、实验结果通过对程序的运行和测试,能够成功实现学生信息的录入、查询、修改和删除功能。

Java实验报告中的实验题

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-4:
Forth.java——
说明:编写图形界面的Java Applet,接受用户输入的一个整形数和一个浮点型数,单击按钮求两数之和。
实验1-5:
WaysOfTakingMoney.java——
说明:小明有5分、2分、1分硬币,想拿出1元钱,有几种拿法?给出所有拿法。实现方式不限。
在此题中运用了穷举法,列出了各种取法。
实验5-1:
FileInfor.java——
说明:编写一个图形化小工具,功能类似系统工具dir,可查看用户给定文件的创建时间、文件类型、文件大小等信息。
创建时间、文件大小等信息可直接通过file类取得,文件类型需要写方法判断,接受用户输入的文件名,截取其后缀,根据其后缀判断文件的类型。例如后缀为.java的是Java的源程序文件,后缀为.txt的是文本文件。注意提高程序的容错性(输入的格式的多样性和不确定性)。
实验4-1:
(1)Rectangular1.java——
(2)Rectangular2.java——
说明:在实验3第3题的基础上,分别实现下列5个步骤的要求。
Step1:
为实验3中定义的矩形类派生一个子类:正方形类。正方形类的操作同样是求周长和面积。则这个子类除了从父类继承来的方法之外,还需要定义哪些方法?列出正方形类的所有域与方法。编程验证所编写的正方形类。
在做本本题时原本真对26个字母分别设计了变量,后来进行了优化,运用了数组变量,大大减少了代码量。
实验4-3:
Palindrome.java——
说明:采用递归方法编程,检查一个任意给定的字符串是否是回文。
------------------------------------------------------------

java实验2:pi的近似值

java实验2:pi的近似值

一、实验内容使用下式计算PI的近似值并显示。

其中i的值由用户输入。

要求使用JOptionPane.showInputDialog作为输入,JOptionPane.showMessageDialog作为输出。

二、源代码package pi;import javax.swing.*;public class Pi {public static void main(String[] args) {String i;int j;double pi;i=JOptionPane.showInputDialog( "请输入自然数i值=" );j= Integer.parseInt(i);//将输入的字符串i转换为int型pi=0;for(int k=1;k<=j;k++)pi+=4*Math.pow(-1,k+1)/(2*k-1);JOptionPane.showMessageDialog( null,"计算得到pi的近似值="+pi);}}三、运行结果(1)运行时出现的输入界面:(2)输入为i值为1的输出情况:(3)输入i值为10、100、1000的输出情况:四、反思总结这次实验让我更深入地了解了java的JOptionPane.showInputDialog和JOptionPane.showMessageDialog的使用方式在写程序的过程中,也加深了我对Java运算符的了解。

在实验过程中我发现以下几点问题:(1)pi的近似值的实验要求JOptionPane.showInputDialog作为输入,JOptionPane.showMessageDialog作为输出。

应注意文件中必须包含import javax.swing.*;才能使用这两句。

此外,通过JOptionPane.showInputDialog输入的i值是字符串型,要想计算pi近似值,要先把i的类型转换为int型。

java实验2实验报告1

java实验2实验报告1

java实验2实验报告1Java 实验 2 实验报告一、实验目的本次 Java 实验 2 的主要目的是通过实际编程操作,深入理解和掌握Java 语言中的一些重要概念和技术,包括面向对象编程的基本思想、类和对象的创建与使用、方法的定义与调用,以及异常处理等方面的知识。

通过实践,提高我们的编程能力和解决问题的能力。

二、实验环境本次实验使用的开发工具是 IntelliJ IDEA,Java 版本为 JDK 18。

操作系统为 Windows 10。

三、实验内容1、设计一个简单的学生类(Student)包含学生的姓名(name)、学号(studentID)、年龄(age)等属性。

定义构造方法用于初始化学生对象的属性。

定义获取和设置学生属性的方法。

2、实现一个计算学生平均年龄的方法接受一个学生对象数组作为参数。

计算并返回学生的平均年龄。

3、异常处理在计算平均年龄的方法中,处理可能出现的除数为 0 的异常情况。

四、实验步骤1、创建学生类(Student)```javapublic class Student {private String name;private int studentID;private int age;public Student(String name, int studentID, int age) {thisname = name;thisstudentID = studentID;thisage = age;}public String getName(){return name;}public void setName(String name) {thisname = name;}public int getStudentID(){return studentID;}public void setStudentID(int studentID) {thisstudentID = studentID;}public int getAge(){return age;}public void setAge(int age) {thisage = age;}}```2、计算平均年龄的方法```javapublic class AverageAgeCalculator {public double calculateAverageAge(Student students) {int totalAge = 0;int studentCount = studentslength;for (Student student : students) {totalAge += studentgetAge();}if (studentCount == 0) {throw new ArithmeticException("除数不能为 0,学生数组为空。

Java程序设计实验报告_2

Java程序设计实验报告_2

Java程序设计实验报告姓名:学号:班级:课题名称(附程序名):JAVA计算器(Calculator.java)一、实验目的通过JAVA图形接口的应用,编写出一图形界面的科学计算器;熟悉JAVA程序开发的一般步骤,掌握事件驱动,并能掌握一定的Java 编程能力,在实践中能感受Java的奥秘!同时检验自己的学习成果。

二、实验任务具有加减乘除的计算器,可以延伸到开方等其他的一些计算。

三、开发工具与平台Microsoft Visual Studio 2005四、设计思路:1)界面设计2)逻辑设计首先明确该实验设计的要求实现的基本功能,其次设计布局,将空间划分为由行和列组成的网格单元,每个单元放一个组件,网格单元大小可以不同,尽量将相同属性的按钮放在一个区域,方便操作。

3)软件调试与测试经过调试之后,能实现基本的四则运算,并能实现开方和消除错误的数。

4)软件设计优化该软件的界面应该更加流畅,同时我相信随着自己只是的日益丰富,开发软件的速度更快,效率更高,功能更加全面!5)实验总结不足:没有实现Mc,MR,MS,M+以及菜单栏几个功能,有待进一步完善。

这样才能够完成自己的第一个应用软件设计!优点:通过本次实验设计,大体了解了Java图形接口的应用,并在过程中增强了对程序的调试能力。

对JAVA有了更深一步的理解,学会如何解决问题,如何坚持对程序的调试,同时也增强了自己学习Java的信心。

五、附录源程序如下:import java.awt.BorderLayout;import java.awt.Container;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.GridLayout;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JPanel;import javax.swing.JTextField;public class Calculator extends JFrame implements ActionListener { boolean init = true;boolean isMath = false;boolean clear = true;boolean clickable = true;double qian;String fuhao;int all = 0;JTextField text = new JTextField(25);JButton bM = new JButton();JButton bMC = new JButton("MC");JButton bMR = new JButton("MR");JButton bMS = new JButton("MS");JButton bMADD = new JButton("M+");JButton b0 = new JButton("0");JButton b1 = new JButton("1");JButton b2 = new JButton("2");JButton b3 = new JButton("3");JButton b4 = new JButton("4");JButton b5 = new JButton("5");JButton b6 = new JButton("6");JButton b7 = new JButton("7");JButton b8 = new JButton("8");JButton b9 = new JButton("9");JButton bNOP = new JButton("+/-");JButton bDot = new JButton(".");JButton bDiv = new JButton("/");JButton bMul = new JButton("*");JButton bSub = new JButton("-");JButton bAdd = new JButton("+");JButton bSprt = new JButton("sprt");JButton bMod = new JButton("%");JButton bDao = new JButton("1/x");JButton bEqual = new JButton("=");JButton bBackspace = new JButton("Backspace"); JButton bCE = new JButton("CE");JButton bC = new JButton("C");public Calculator() {this.setTitle("计算器");JMenuBar mainMenu = new JMenuBar();setJMenuBar(mainMenu);JMenu editMenu = new JMenu("编辑");JMenu viewMenu = new JMenu("查看");JMenu helpMenu = new JMenu("帮助");mainMenu.add(editMenu);mainMenu.add(viewMenu);mainMenu.add(helpMenu);JPanel jpDisplay = new JPanel();JPanel jpInput = new JPanel();JPanel jpLeft = new JPanel();JPanel jpRight = new JPanel();text.setText("0.");text.setHorizontalAlignment(JTextField.RIGHT); jpDisplay.add(text);bM.addActionListener(this);bMC.addActionListener(this);bMS.addActionListener(this);bMR.addActionListener(this);bMADD.addActionListener(this);jpLeft.setLayout(new GridLayout(5, 1)); jpLeft.add(bM);jpLeft.add(bMC);jpLeft.add(bMR);jpLeft.add(bMS);jpLeft.add(bMADD);JPanel jpInnerN = new JPanel();JPanel jpInnerS = new JPanel();bBackspace.addActionListener(this);bCE.addActionListener(this);bC.addActionListener(this);jpInnerN.setLayout(new GridLayout(1, 3)); jpInnerN.add(bBackspace);jpInnerN.add(bCE);jpInnerN.add(bC);b0.addActionListener(this);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);b7.addActionListener(this);b8.addActionListener(this);b9.addActionListener(this);bNOP.addActionListener(this);bDot.addActionListener(this);bDiv.addActionListener(this);bMul.addActionListener(this);bSub.addActionListener(this);bAdd.addActionListener(this);bSprt.addActionListener(this);bMod.addActionListener(this);bDao.addActionListener(this);bEqual.addActionListener(this);jpInnerS.setLayout(new GridLayout(4, 5));jpInnerS.add(b7);jpInnerS.add(b8);jpInnerS.add(b9);jpInnerS.add(bDiv);jpInnerS.add(bSprt);jpInnerS.add(b4);jpInnerS.add(b5);jpInnerS.add(b6);jpInnerS.add(bMul);jpInnerS.add(bMod);jpInnerS.add(b1);jpInnerS.add(b2);jpInnerS.add(b3);jpInnerS.add(bSub);jpInnerS.add(bDao);jpInnerS.add(b0);jpInnerS.add(bNOP);jpInnerS.add(bDot);jpInnerS.add(bAdd);jpInnerS.add(bEqual);jpRight.setLayout(new BorderLayout());jpRight.add(jpInnerN, BorderLayout.NORTH);jpRight.add(jpInnerS, BorderLayout.CENTER);jpInput.setLayout(new BorderLayout());jpInput.add(jpLeft, BorderLayout.WEST);jpInput.add(jpRight, BorderLayout.CENTER);Container pane = this.getContentPane();pane.setSize(333, 208);this.setLocation(300, 200);this.setLayout(new BorderLayout());pane.add(jpDisplay, BorderLayout.CENTER);pane.add(jpInput, BorderLayout.SOUTH);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.pack();this.setVisible(true);}public void actionPerformed(ActionEvent e) {if (init)this.text.setText("0.");init = false;Object source = e.getSource();if (source == bBackspace) {String s = text.getText();text.setText("");for (int i = 0; i < s.length() - 1; i++) { char a = s.charAt(i);text.setText(text.getText() + a);}System.out.println("backspace");}if (source == bCE) {text.setText("0.");clear = true;init = true;System.out.println("CE");}if (source == bC) {text.setText("0.");clear = true;init = true;System.out.println("C");}if (source == bM) {System.out.println("M");}if (source == bMC) {System.out.println("MC,功能末实现");}if (source == bMR) {System.out.println("MR,功能末实现");}if (source == bMS) {System.out.println("MS,功能末实现");}if (source == bMADD) {System.out.println("M+,功能末实现");}if (source == b0) {System.out.println("0");if (clear == false)// 判断是否点击了符号位text.setText("");text.setText(text.getText() + "0");}if (source == b1) {if (clear == false)text.setText("");text.setText(text.getText() + "1");clear = true;// 第二次不在清空(前二句)}if (source == b2) {System.out.println("2");if (clear == false)text.setText("");text.setText(text.getText() + "2");clear = true;}if (source == b3) {System.out.println("3");if (clear == false)text.setText("");text.setText(text.getText() + "3");clear = true;}if (source == b4) {System.out.println("4");if (clear == false)text.setText("");text.setText(text.getText() + "4");clear = true;}if (source == b5) {System.out.println("5");if (clear == false)text.setText("");text.setText(text.getText() + "5");clear = true;}if (source == b6) {System.out.println("6");if (clear == false)text.setText("");text.setText(text.getText() + "6");clear = true;}if (source == b7) {System.out.println("7");if (clear == false)text.setText("");text.setText(text.getText() + "7");clear = true;}if (source == b8) {System.out.println("8");if (clear == false)text.setText("");text.setText(text.getText() + "8");clear = true;}if (source == b9) {System.out.println("9");if (clear == false)text.setText("");text.setText(text.getText() + "9");clear = true;}try{if (source == bNOP) {System.out.println("+/-");boolean isNumber = true;String s = text.getText();for (int i = 0; i < s.length(); i++)if (!(s.charAt(i) >= '0' && s.charAt(i) <= '9'|| s.charAt(i) == '.' || s.charAt(i) == '-')) {isNumber = false;break;}if (isNumber == true) {// 如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号去掉if (s.charAt(0) == '-') {text.setText("");for (int i = 1; i < s.length(); i++) {char a = s.charAt(i);text.setText(text.getText() + a);}}// 如果当前字符串第一个字符不是符号,则添加一个符号在首字母处elsetext.setText('-' + s);}}if (source == bDot) {System.out.println(".");clickable = true;for (int i = 0; i < text.getText().length(); i++)if ('.' == text.getText().charAt(i)) {clickable = false;break;} // 第一层判断是否里面含有小数点;if (clickable == true)// 第二层判断text.setText(text.getText() + ".");}if (source == bDiv) {System.out.println("/");qian = Double.parseDouble(text.getText());fuhao = "/";clear = false;}if (source == bMul) {System.out.println("*");qian = Double.parseDouble(text.getText());fuhao = "*";clear = false;}if (source == bSub) {System.out.println("-");qian = Double.parseDouble(text.getText());fuhao = "-";clear = false;}if (source == bAdd) {System.out.println("+");qian = Double.parseDouble(text.getText());fuhao = "+";clear = false;}if (source == bSprt) {System.out.println("sprt");String s = text.getText();if (s.charAt(0) == '-') {text.setText("负数不能开根号");} elsetext.setText(Double.toString(ng.Math.sqrt(Double.parseDouble(text.getText()))));clear = false;}if (source == bMod) {System.out.println("%,功能末实现");}if (source == bDao) {System.out.println("1/x");if (text.getText().charAt(0) == '0'&& text.getText().length() == 1) {text.setText("除数不能为零");} else {boolean isDec = true;int i, j, k;String s= Double.toString(1 / Double.parseDouble(text.getText()));for (i = 0; i < s.length(); i++)if (s.charAt(i) == '.')break;for (j = i + 1; j < s.length(); j++)if (s.charAt(j) != '0') {isDec = false;break;}if (isDec == true) {String stemp = "";for (k = 0; k < i; k++)stemp += s.charAt(k);text.setText(stemp);} elsetext.setText(s);}clear = false;}if (source == bEqual) {System.out.println("=");Double ss=Double.parseDouble(text.getText());text.setText("");if (fuhao == "+")text.setText(qian + ss + "");if (fuhao == "-")text.setText(qian - ss + "");if (fuhao == "*")text.setText(qian * ss + "");if (fuhao == "/")text.setText(qian / ss + "");clear = false;// 要清空前一次的数据;}}catch (Exception ee) {System.out.println("请正确输入");text.setText("运算出错,给您带来不便,sorry");clear = false;}}public static void main(String[] args) {new Calculator();}}11。

实验报告Java二

实验报告Java二

JA V A实验报告系(教研室):专业:年级:实验课程:Java语言程序设计姓名:学号:实验室号:计算机号:实验时间:指导教师签字:成绩:实验2一、实验目的1.掌握声明二维数组变量,创建二维数组对象,使用二维数组解决实际问题。

2.使用构造方法创建对象,通过对象引用变量访问对象,。

3.封装数据域以便于类的维护。

二、实验要求1.(7.6)编写两个矩阵相乘的方法。

方法头如下:public static double[][] multiplyMatrix(double[][] a, double[][] b)为了是矩阵a能够和矩阵b相乘,矩阵a的列数必须与矩阵b的行数相同。

假设矩阵c是相乘的结果,而a的列数是n,那么每个元素c ij=a i1* b1j + a i2 * b2j+ …+ a in * b nj。

例如,对于两个3×3的矩阵a和b,c有:编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示他们的2.(8.1)创建一个名为Rectangle的类表示矩形,这个类包括:●两个名为width和height的double型数据域,它们分别表示矩形的宽和高。

width和height的默认值都为1。

●创建默认矩形的无参构造方法:Rectangle()。

●一个创建width和height为指定值的矩形的构造方法:Rectangle(double width, double height)。

●一个名为getWidth()的方法返回宽。

●一个名为getHeight()的方法返回高。

●一个名为getArea()的方法返回这个矩形的面积。

●一个名为getPerimeter()的方法返回周长。

实现这个类,编写一个测试程序,提示用户输入两个矩形,创建两个Rectangle对象,然后显示矩形的宽,高,面积和周长。

三、实验原理1.本题通过编写Matrix类实现题目要求。

Matrix类包含三个方法:存储矩阵的方法:public static double[][] inputMatrix()用于打印矩阵的方法:public static double[][] outputMatrix(double[][] x),利用两个for循环来实现输出二维数组。

《Java程序设计》实验指导书-2_[1]...

《Java程序设计》实验指导书-2_[1]...

Java语言程序设计实验指导书目录实验一 JDK的安装和运行环境变量的设置 (3)实验二 JA V A语言基础实验 (3)实验三 JA V A面向对象特性实验 (5)实验四 Java输入输出实验 (6)实验五基于AWT及SWING的GUI及事件处理实验 (8)实验六Applet (11)附录Ⅰ (14)附录Ⅱ (15)实验一 JDK的安装和运行环境变量的设置实验目的1.通过实验使学生掌握J2SDK安装和运行环境设置。

2.掌握java最简单的程序结构,会使用javac和java命令。

实验内容1.下载j2sdk1.4.2。

在网站的download链接中选择J2SE1.4.2链接,选择j2sdk-1.4.2-04-windows-i586.exe下载。

2.安装该程序。

默认安装路径为c:\jdk1.4.2。

3.设置环境变量。

主要有path和classpath两个环境变量需设置。

在windows98中的设置方式为:使用记事本打开autoexec.bat文件,加入:SET PA TH=%PATH%;c:\jdk1.4.2\binSET CLASSPATH=.; c:\jdk1.4.2\lib在windows2000按如下方法设置:进入“控制面板”->“系统”->“高级”->“环境变量”->“系统变量”后,双击path,在后面添加:c:\jdk1.4.2\bin,双击classpath,在后面添加:c:\jdk1.4.2\lib。

重新启动系统。

4、编写一个输出“这是我的第一个JA V A程序”程序。

5、示例程序:public class HelloWorld{public static void main(String [ ] args){System.out.println(“Hello World”);}}在记事本中编写该程序,并保存为d:\my\HelloWorld.java。

运行过程为:进入dos环境,切换到保存路径,然后在命令行中输入下列命令:javac HelloWorld.java编译通过后,在命令行中输入下面的命令java HelloWorld运行结果应该为:Hello World实验二 JA V A语言基础实验实验目的1.通过实验使学生掌握JA V A变量、标识符以及语法规则。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

验2类和对象一、实验目的:1、学习定义类和使用类创建对象。

2、掌握对象变量和普通变量的区别,学习掌握使用对象调用其成员的方法。

3、学习掌握类的构造方法。

4、学习掌握给方法传递对象。

5、学习掌握类的静态变量和静态方法。

二、实验任务:1、创建Java程序,学习类的定义、使用类创建对象、通过对象调用其成员、类的构造方法的作用、如何给方法传递对象、掌握静态变量、静态方法的用法。

程序要求:(1)首先创建Circle类表示平面上的圆,要求该类具备构造方法,以初始化表示半径的私有数据成员radius;具备求圆面积的方法;还要具备一个静态数据成员numOfObjects,用来统计程序运行过程中创建圆对象的个数。

(2)创建一个静态方法public static void printCircle(Circle c),功能是输出参数圆对象c的相关信息,包括半径和面积的值。

(不是Circle的成员方法)(3)程序运行中创建2个以上的圆对象,分别输出相关信息,并统计输出对象的数目。

2、创建Java程序,进一步学习上述的内容以及关键字this的使用和类抽象的概念。

程序要求:(1)首先创建有理数类Rational,该类包含构造方法和加、减、乘、除方法。

(2)程序主方法中创建两个有理数对象,分别进行加、减、乘、除运算,并输出运算结果。

三、实验步骤:1、按照任务1的要求创建一个表示圆形的Circle类。

2、按照任务1的要求创建一个类TestInstanceAndClassVariable,其中包含静态方法public static void printCircle(Circle c)和程序的主方法main,在main方法中创建两个或多个Circle对象,调用printCircle(Circle c)方法显示每个Circle对象的相关信息,最后统计程序中所有创建的Circle类对象的数目。

实验代码:public class TestInstanceAndClassVariable{public static void main(String[]args) {Circle circle1=new Circle();System.out.println("Beforecreatingcircle2");System.out.print("circle1is:");printCircle(circle1);Circle circle2=new Circle(5);circle1.setRadius(9);System.out.println("\nAftercreatingcircle2andmodifying"+"circle1' sradiusto9");System.out.print("circle1is:");printCircle(circle1);System.out.print("circle2is:");printCircle(circle2);}public static void printCircle(Circle c){System.out.println("radius("+c.getRadius()+")andnumberofCircleobject s("+c.getNumOfObjects()+")");}}class Circle{private double radius;private static int numOfObjects=0;public Circle(){radius=1.0;numOfObjects++;}public Circle(double r){radius=r;numOfObjects++;}public double getRadius(){return radius;}public void setRadius(double newRadius){radius=newRadius;}public static int getNumOfObjects(){return numOfObjects;}public double findArea(){return radius*radius*Math.PI;}}实验结果:3、按照任务2的要求创建一个有理数类Rational,应包含2个私有的长整型数据成员numerator和denominator分别存储一个有理数的分子和分母;该类应包含不带参数的构造方法,和带参数的构造方法。

其中不带参数的构造方法把有理数的分子和分母初始化为0和1;带参数的构造方法中应对该有理数进行约分,为此需为该类创建一个成员方法private long gcd(long n, long d);该方法返回分子和分母的最大公约数。

4、为理数类Rational创建四个成员方法分别实现2个有理数的加、减、乘、除运算,四个方法的方法签名如下:public Rational add(Rational secondRational);public Rational subtract(Rational secondRational);public Rational multiply(Rational secondRational);public Rational divide(Rational secondRational);5、为Rational类改写toString()方法,该方法改写后的功能是:以分数的形式输出一个有理数。

例如:2/36、创建一个程序TestRationalClass,该类中分别创建2个Rational类的对象r1和r2,计算并显示它们的和、差、积、商。

程序运行的结果应如下图所示:实验代码:public class Rational{// Data fields for numerator and denominatorprivate long numerator = 0;private long denominator = 1;// Default constructorpublic Rational(){this(0, 1);}// Construct a rational with specified numerator and denominator public Rational(long numerator, long denominator){long gcd = gcd(numerator, denominator);this.numerator = numerator/gcd;this.denominator = denominator/gcd;}// Find GCD of two numbersprivate long gcd(long n, long d){long t1 = Math.abs(n);long t2 = Math.abs(d);long remainder = t1%t2;while (remainder != 0){t1 = t2;t2 = remainder;remainder = t1%t2;}return t2;}// Getter method for numeratorpublic long getNumerator(){return numerator;}public long getDenominator(){return denominator;}// Add a rational number to this rationalpublic Rational add(Rational secondRational){long n = numerator*secondRational.getDenominator() +denominator*secondRational.getNumerator();long d = denominator*secondRational.getDenominator();return new Rational(n, d);}// Subtract a rational number from this rationalpublic Rational subtract(Rational secondRational){long n = numerator*secondRational.getDenominator()- denominator*secondRational.getNumerator();long d = denominator*secondRational.getDenominator();return new Rational(n, d);}// Multiply a rational number to this rationalpublic Rational multiply(Rational secondRational)long n = numerator*secondRational.getNumerator();long d = denominator*secondRational.getDenominator();return new Rational(n, d);}// Divide a rational number from this rationalpublic Rational divide(Rational secondRational)throws RuntimeException{if (secondRational.getNumerator() == 0)throw new RuntimeException("Denominator cannot be zero");long n = numerator*secondRational.getDenominator();long d = denominator*secondRational.getNumerator();return new Rational(n, d);}// Override the toString() methodpublic String toString(){if (denominator == 1)return numerator + "";elsereturn numerator + "/" + denominator;}}public class TestRationalClass{// Main methodpublic static void main(String[] args){// Create and initialize two rational numbers r1 and r2.Rational r1 = new Rational(4, 2);Rational r2 = new Rational(2, 3);// Display resultsSystem.out.println(r1.toString() + " + " + r2.toString() + " = " + (r1.add(r2)).toString());System.out.println(r1.toString() + " - " + r2.toString() + " = " + (r1.subtract(r2)).toString());System.out.println(r1.toString() + " * " + r2.toString() + " = " + (r1.multiply(r2)).toString());System.out.println(r1.toString() + " / " + r2.toString() + " = " + (r1.divide(r2)).toString());}实验截图:四、实验结果通过本次实验,我掌握了静态变量和静态方法的使用方法和使用环境。

相关文档
最新文档