太原理工大学Java实验报告
更新时间:2023-04-22 18:13:01 阅读量: 实用文档 文档下载
包含课后全部代码与个人感受,希望可以对读者有所启发
实验由本人当时亲自完成 仅供参考,希望可以帮助大家
本科实验报告
课程名称: Java程序设计B
实验项目: Java语言基础编程和面向对象设计
实验地点: 逸夫楼501
专业班级:学号:
学生姓名: 氣宇軒昂
指导教师:
2012年 13月 13日
包含课后全部代码与个人感受,希望可以对读者有所启发
实验名称 实验目的和要求 1. 2. 3. 4.
实验一
Java 环境搭建和 Java 语言基础编程
掌握 JDK、Eclipse 的下载和安装,并熟练使用 API 帮助文档; 学会 Java Application 程序和 Java Applet 程序的编制、编译和运行; 熟练掌握 Java 程序流程控制语句的使用; 熟练掌握 Java 语言数组的使用、字符串以及字符串处理方法的使用。
实验内容 1. 下载并安装最新版本的 JDK 和 Eclipse,设置环境变量,下载 API 帮助文档。 2. 设计 Java Application 程序,输出“我叫×××,我编写的 Java Application 程序运 行通过了” ,分别在命令提示符和 Eclipse 环境中编译、运行。 3. 完成习题 2.7 的编程、调试与运行。 4. 使用 for 循环语句输出习题 3.5 中的图案。 5. 完成习题 3.9 的编程、调试与运行。 6. 完成习题 4.5 和 4.7 的编程、调试与运行。 主要仪器设备 台式或笔记本计算机
实验记录(写出实验内容中 3,5,6 的程序代码和运行结果)(可分栏或加页) 2.7 程序代码import java.util.Scanner; public class DataType { public static void main(String[] args) { Scanner in=new Scanner(System.in); System.out.print("请输入一个long型数据(输完按enter结束) :"); long a=in.nextLong(); System.out.print("请输入一个float型数据(输完按enter结束) :"); float b=in.nextFloat(); System.out.print("请输入一个double型数据(输完按enter结束) :"); double c=in.nextDouble(); System.out.println("long:"+a); System.out.println("float:"+b); System.out.println("double:"+c); } }
运行结果
包含课后全部代码与个人感受,希望可以对读者有所启发
3.9 程序代码import java.util.Scanner; public class ValueFore { int n; ValueFore() { this.n=calculateN(); } double stackBy(int n) { int i; double s=1; for(i=1;i<=n;i++) { s*=i; } return s; } double overlap() { int i; double sum=1; for(i=1;i<=this.n;i++) { sum+=1/stackBy(i); } return sum; } int calculateN() { Scanner in=new Scanner(System.in); int i=1; double a=in.nextDouble(); while(1/stackBy(i)>a) {
包含课后全部代码与个人感受,希望可以对读者有所启发
i++; } return i; } public static void main(String[] args) { Scanner in=new Scanner(System.in); boolean b=true; while(b) { System.out.println("请选择菜单:"); System.out.println(" 1.计算不同精度的e值"); System.out.println(" 2.退出"); switch(in.nextByte()) { case 1: { System.out.println("请输入精度(例如:1e-3,表示0.001) :"); ValueFore a=new ValueFore(); System.out.println("e="+a.overlap()); };break; case 2:b=false;break; } } } }
运行结果
说明:没有按书中的要求去求,但是这个程序功能更强,运用了菜单的方式,使用程序的
人能求
包含课后全部代码与个人感受,希望可以对读者有所启发
出不同精度的 e 值。
4.5 程序代码public class StringText { public static void main(String[] args) { String str1="I am"; String str2="a student"; String str3="我是中国人"; StringBuffer str=new StringBuffer(); str.append(str1).append(str2).append(str3); System.out.println(str); System.out.println(str.charAt(8)); System.out.println(str.charAt(16)); } }
运行结果
4.7 程序代码import java.util.Scanner;
public class Triangle { void printTriangle(int row) { int i,j; int[][] a=new int[row][]; for(i=0;i<row;i++) a[i]=new int[i+1]; for(i=0;i<row;i++) { a[i][0]=1; a[i][i]=1; } for(i=2;i<row;i++) { for(j=1;j<i;j++)
包含课后全部代码与个人感受,希望可以对读者有所启发
{ a[i][j]=a[i-1][j-1]+a[i-1][j]; } } System.out.println("输出杨辉三角为:"); for(i=0;i<row;i++) { for(j=row-1;j>i;j--) System.out.print("\t"); for(j=0;j<=i;j++) { System.out.print(a[i][j]); if(i!=0) System.out.print("\t\t"); } System.out.print("\n"); } } public static void main(String[] args) { Scanner in=new Scanner(System.in); Triangle num=new Triangle(); System.out.print("请输入杨辉三角的行数:"); num.printTriangle(in.nextByte()); } }
运行结果
说明:这个程序同样也具有一定的灵活行,随意输出杨辉三角的行数就就可以得到不同的杨辉三 角,比如输入 6,得到如下结果:
包含课后全部代码与个人感受,希望可以对读者有所启发
遇到的问题和解决方法编写求 e 值的过程中题中只给出了最后一项的精度, 这就要求我们用这一精度去先求出 n 来, 求 n 就是要解决的问题之一,我用了一个循环,先判断符合不符合精度,如果大于所给精度让初 值为 1 的 i 自加 1;最后小于精度的那一项停止循环,随之计算出 n。 编写杨辉三角的过程中主要是一个排布的过程,因为按题中要求,得输出题中的格式,所以 必须在输出的格式中加空格或退格,第二个空格是第一个的二倍,为了看起来比较流畅,我是用 加退格,得到运行结果。
心得体会编写程序是一件令人欣悦的事,当你为解决某个问题绞尽脑汁最后又得到问题的解,那种心 情只有自己才知道,我最大的心得就是通过编写简单的程序让我对编写程序有了更高的认识,逻 辑上更清晰,增加了个人编程的小技巧,同时更有信心去编写更复杂的程序。
包含课后全部代码与个人感受,希望可以对读者有所启发
实验名称 实验目的和要求 1. 2. 3. 4. 1. 2. 3. 4. 5.
实验二
Java 面向对象程序设计、异常处理和 Applet 小程序
掌握 Java 面向对象程序设计中类、继承、包和接口的概念和应用; 掌握类变量和实例变量、类方法和实例方法的特点、使用; 掌握异常的概念和 Java 异常处理机制,学会异常处理 5 个关键字的使用; 熟悉 Applet 小程序的特点和运行过程,掌握 Applet 程序中常用的方法。 完成教材实验 4 中实验内容(1) 完成教材实验 4 中实验内容(3)。 完成教材实验 5 中实验内容(2),指出抛出异常的语句,属于何类异常。
完成教材实验 5 中实验内容(3)。 完成教材实验 6 中实验内容(2) 台式或笔记本计算机
实验内容
主要仪器设备
实验记录(写出实验内容中 1,4,5 的程序代码和运行结果)(可分栏或加页) 实验四内容(1)的程序代码:import java.io.*; import java.util.Scanner; public class Complex { double real,imag; Complex() { } Complex(double real,double imag) { this.real=real; this.imag=imag; } void addComplex(Complex c1,Complex c2) { this.real=c1.real+c2.real; this.imag=c1.imag+c2.imag; System.out.println("("+this.real+","+this.imag+")"); } void minusComplex(Complex c1,Complex c2) { this.real=c1.real-c2.real;
包含课后全部代码与个人感受,希望可以对读者有所启发
this.imag=c1.imag-c2.imag; System.out.println("("+this.real+","+this.imag+")"); } void multiplyComplex(Complex c1,Complex c2) { this.real=c1.real*c2.real-c1.imag*c2.imag; this.imag=c1.real*c2.imag+c1.imag*c2.real; System.out.println("("+this.real+","+this.imag+")"); } public static void main(String[] args) throws IOException { Scanner in = new Scanner(System.in); System.out.print("请输入第一个复数的实部和虚部并用空格隔开:"); Complex c1=new Complex(in.nextDouble(),in.nextDouble()); System.out.print("\n请输入第二个复数的实部和虚部并用空格隔开:"); Complex c2=new Complex(in.nextDouble(),in.nextDouble()); Complex c=new Complex(); boolean a=true; while(a) { System.out.println("请选择菜单:"); System.out.println(" 1.复数加法"); System.out.println(" 2.复数减法"); System.out.println(" 3.复数乘法"); System.out.println(" 4.退出"); switch(in.nextByte()) { case 1:c.addComplex(c1, c2);break; case 2:c.minusComplex(c1, c2);break; case 3:c.multiplyComplex(c1, c2);break; case 4:a=false;break; } } } }
运行结果
包含课后全部代码与个人感受,希望可以对读者有所启发
说明:输入的数可以是在精度范围内的任何实数,先输入两个复数后然后就可以通过菜单提示的 功能去选择是要做加,减,乘,还是退出程序,比书中的要求的相对灵活一些。
实验四内容(3)的程序代码:package mymaths; public interface MaxMinValue { double seekMax(double a,double b,double c); double seekMin(double a,double b,double c); } package mymaths; public class SeekMaxMinValue implements MaxMinValue { double max,min; public double seekMax(double a,double b,double c) { this.max=a>b?a:(b>c?b:c); return this.max; } public double seekMin(double a,double b,double c) {
包含课后全部代码与个人感受,希望可以对读者有所启发
this.min=a<b?a:(b<c?b:c); return this.min; } } package mymaths; import java.util.Scanner; public class Example { public static void main(String[] args) { Scanner in=new Scanner(System.in); MaxMinValue num = new SeekMaxMinValue(); boolean a=true; while(a) { System.out.println("请选择菜单:"); System.out.println(" 1.取最大值"); System.out.println(" 2.取最小值"); System.out.println(" 3.退出"); switch(in.nextByte()) { case 1: System.out.print("输入要比较的三个数并用空格隔开:"); System.out.println("Max="+num.seekMax(in.nextDouble(),in.nextDouble(),in .nextDouble())
);break; case 2: System.out.print("输入要比较的三个数并用空格隔开:"); System.out.println("Min="+num.seekMin(in.nextDouble(),in.nextDouble(),in .nextDouble()));break; case 3:a=false;break; } } } }
运行结果
包含课后全部代码与个人感受,希望可以对读者有所启发
说明:有些繁琐,但根据提示进行就可以了
实验五内容(三)程序:import java.util.Scanner; public class Bank { String name; long remainder; Bank(String name,long remainder) { =name; this.remainder=remainder; } long withdraeal(long getMoney) throws InsufficientFundsException { try { this.remainder=this.remainder-getMoney; if(this.remainder<0) { throw new InsufficientFundsException("尊敬的"++"您的余 额不足"); } return this.remainder; } catch(InsufficientFundsException e) { System.out.println(e.getMessage());
包含课后全部代码与个人感受,希望可以对读者有所启发
return this.remainder=this.remainder+getMoney; } } public static void main(String[] args) { Scanner in=new Scanner(System.in); throws InsufficientFundsException
System.out.print("请输入您的姓名和存款金额并用空格或回车隔开:"); Bank user=new Bank(in.next(),in.nextLong()); boolean a=true; while(a) { System.out.println("请选择菜单:"); System.out.println(" 1.取款"); System.out.println(" 2.退出"); switch(in.nextByte()) { case 1: { System.out.print("请输入您要取款的金额(输完之后按enter结束) : "); System.out.println(" 您 的 "+user.withdraeal(in.nextLong())); };break; case 2:a=false;break; } } } } class InsufficientFundsException extends Exception { public InsufficientFundsException(String msg) { super(msg); } } 卡 上 余 额 :
运行结果
包含课后全部代码与个人感受,希望可以对读者有所启发
说明:书中要求的也没有这么多功能,为了熟悉而加了这些必要的功能,从上述输入的数据中可 以看书程序可以解决取钱以后卡上余额的显示,并且继续取还是取余额的钱,当余额不足是会提 示信息,并且自己的余额不会变,还可以继续取钱。
实验六内容(二)程序:import java.applet.*; import java.awt.*; import java.awt.event.*; public class Test1 extends Applet implements ActionListener { Button b=new Button("change"); Button b1=new Button("change1"); public void init() { add(b); add(b1); b.addActionListener(this); b1.addActionListener(this); }
public void paint(Graphics g) { Font f=new Font("宋体",Font.PLAIN,18);
包含课后全部代码与个人感受,希望可以对读者有所启发
g.setFont(f); g.setColor(Color.blue); g.drawString("Please look at me.", 0, 30); } public void actionPerformed(ActionEvent e) { if(e.getSource()==b) { Graphics g = getGraphics(); Font f=new Font("楷体_GB2312",Font.PLAIN,18); g.setFont(f); g.setColor(Color.black); g.drawString("Please look at me.", 0, 60); } if(e.getSource()==b1) { Graphics g = getGraphics(); Font f=new Font("宋体",Font.PLAIN+Font.ITALIC,18); g.setFont(f); g.setColor(Color.green); g.drawString("Please look at me.", 0, 90); } } }
运行结果
说明:按钮 change 按下出来黑字体,按钮 change1 按下出来绿色字体。
包含课后全部代码与个人感受,希望可以对读者有所启发
遇到的问题和解决方法编程过程中遇到结果
不一致的情况比较多,比如说银行系统中取走钱后余额是正确的,在取 钱时余额又回到了刚开始存的钱,解决这些问题中用的最多的是 this 的变化,在编写复数是 this 用的相对也是比较多的,显示了其较高的灵活性!
心得体会在编完银行系统时感觉很有成就感, 在调试过程中都能按自己的要求去执行, 再次提升了我 个人对编程的兴趣,小程序我感觉编写的还不够好,只是做到了简单的要求,我想再给我点儿时 间会编的更好!
包含课后全部代码与个人感受,希望可以对读者有所启发
实验名称 实验目的和要求
实验三
图形用户界面、多线程和多媒体编程
1. 掌握文本组件、按钮和单、复选按钮组件的使用;掌握列表的使用,鼠标、键盘 事件的处理;掌握布局控制的方法; 2. 掌握线程的概念、线程的生命周期;掌握采用扩展 Thread 类和实现 Runnable 接 口的多线程编程方法; 3. 掌握 Java 中声音播放、图形绘制和显示图像的程序设计方法; 实验内容 1. 编写一个 Applet 程序响应鼠标事件,当鼠标事件发生时,在状态栏显示相应的状 态信息(使用 showStatus(字符串)方法)。 2. 完成教材实验 7 中实验内容(3)。 3. 完成教材实验 8 中实验内容(1)(2)。 4. 完成教材实验 8 中实验内容(3)。 5. 编程绘制直线、各种矩形、各种椭圆及多边形。 6. 编程显示各种字体、字型、字号和不同颜色的文字。 主要仪器设备 台式或笔记本计算机
实验记录(写出实验内容中 1,2,5 的程序代码和运行结果)(可分栏或加页) 实验内容一程序:import java.applet.*; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; public class MouseText extends Applet { Panel p1,p2; TextArea f; public void init() { setSize(800,600); setLayout(new GridLayout(1,2)); p1=new Panel(); p2=new Panel(); p2.setLayout(new BorderLayout()); f=new TextArea(); p2.add(f); add(p1); add(p2); p1.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e)
包含课后全部代码与个人感受,希望可以对读者有所启发
{ int x=e.getX(); int y=e.getY(); f.append("Push at ("+x+","+y+")\n"); } }); } }
运行结果
说明:当鼠标指向左边区域时,相应的坐标位置打印在文本区域。
实验七实验内容(三)程序:import java.awt.*; import java.awt.event.*; public class ClickMe { Frame f; Button btn; int a=1; public void chushihua()
包含课后全部代码与个人感受,希望可以对读者有所启发
{ f=new Frame(); f.setSize(400,300); f.setLayout(null); btn=new Button("Click Me"); btn.setLocation(150, 120); btn.setSize(110,30); f.add(btn); f.setVisible(true); btn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { a++; if(e.getSource()==btn) { if(a%2==0) { btn.setLabel("Click Me Again"); } else { btn.setLabel("Click Me"); } } } }); } public static void main(String[] args) { ClickMe a=new ClickMe(); a.chushihua(); } }
运行结果:
正在阅读:
太原理工大学Java实验报告04-22
云县绿地规划说明书 - 图文04-19
文物内容加上游学者周卓的解读06-04
2016-2021年中国聚氨酯鞋底机市场分析及发展策略研究预测报告05-22
第四章第二节机械振动简单04-12
高新技术企业整改报告10-13
学校后勤及其他安全管理制度07-05
蒜苔炒鸡蛋作文600字06-26
敬畏作文素材08-27
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 太原
- 理工
- 实验
- 报告
- 大学
- Java
- 太阳影子定位技术 2015高教社杯 数学建模 获奖论文
- 图书馆镜像服务与深度链接侵犯信息网络传播权的认定
- 电脑故障排查总攻略
- 电影音乐鉴赏——霸王别姬音乐赏析
- the pdf全文太行山区山野菜植物资源与开发利用探讨guide downloa
- 电摩界 修炼等级划分
- 2015年考研333教育综合大纲
- 《经济法》期末复习试题(答案)
- 日产2000T新型干法水泥生产线建设工程可行性研究报告
- 中美欧合作有利于世界和平与发展
- 西南边陲的特色旅游区──西双版纳(全)课件人教版
- 2014年小升初数学试题精选二
- 发展中日关系要看得远些(一九八四年三月二十五日)
- 金属氧化物避雷器带电测试方法浅析
- 关于制定《苏州市园林绿化工程扬尘污染
- 最全的毕业生登记表的班组鉴定班组意见
- 新街中学_2013年八年级生物上册复习提纲
- 选修4第二章复习(教案)
- 车队安全生产责任书
- CNC加工中心中级工理论试题