ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:389.13KB ,
资源ID:10197205      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10197205.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(安徽工业大学java实验报告DOC.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

安徽工业大学java实验报告DOC.docx

1、安徽工业大学java实验报告DOCJava课程设计报告学 号XXX姓 名XXX班 级计11X指导教师柯栋梁安徽工业大学计算机学院2013年12月实验 一: 利用 JAVA 反射技术分析类结构自己定义的类:package chap05;public class analysis private int a; private char c; protected int b; public double d; public void test1() private void test2() protected double test3() return 1.0; 用java反射技术分析输出的结果:E

2、nter class name (e.g. java.util.Date): chap05.analysisclass chap05.analysispublic chap05.analysis();public void test1();private void test2();protected double test3();private int a;private char c;protected int b;public double d;1.分析程序运行时的输出结果。输出的结果中显示了被分析类的方法与变量,包括这些方法与变量的修饰符2.分析与JAVA反射技术相关的几个类的作用:ja

3、va.lang.reflect.Constructor;Constructor 提供关于类的单个构造方法的信息以及对它的访问权限。java.lang.reflect.Field;Field 提供有关类或接口的单个字段的信息,以及对它的动态访问权限。反射的字段可能是一个类(静态)字段或实例字段。java.lang.reflect.Method;Method 提供关于类或接口上单独某个方法(以及如何访问该方法)的信息。所反映的方法可能是类方法或实例方法(包括抽象方法)。java.lang.reflect.Modifier;Modifier 类提供了 static 方法和常量,对类和成员访问修饰符进

4、行解码。修饰符集被表示为整数,用不同的位位置 (bit position) 表示不同的修饰符。实验二 :利用 JAVA 反射技术分析对象结构实验内容:运行示例程序,分析 Integer 数组对象的结构;改写程序分析一下自定义的类对象,如 Employee 类。结果分析:该程序较为复杂,通过调试模式我发现ObjectAnalyzer的toString方法为一递归函数,从代码可以看出程序是用来分析对象中非静态的成员变量并将其显示出来,通过递归分析对象中的对象的成员变量,通过获取超类分析其继承来的成员变量。自己编的类:package chap05;public class analysis exte

5、nds Employee private int a = 0; private char c = ; static protected int b = 0; public double d = 0; public void test1() private void test2() protected double test3() return 1.0; 分析结果:chap05.analysisa=0,c= ,d=0.0salary=0.0,name=null,year=0,mouth=0,day=0实验三: 利用 JAVA 反射技术调用方法指针定义的People类:package chap05

6、;public abstract class People double salary; String name; int year,mouth,day; public abstract double getSalary(); public abstract void setSalary(double salary);class Employee extends People Employee(String name,double salary,int year,int mouth,int day) this.salary = salary; this.name = name; this.ye

7、ar = year; this.mouth = mouth; this.day = day; Employee() public double getSalary() return salary; public void setSalary(double salary) this.salary = salary; class Manager extends People private double bonus; Manager(String name,double salary,int year,int mouth,int day) this.salary = salary; this.na

8、me = name; this.year = year; this.mouth = mouth; this.day = day; bonus= 0; public double getSalary() return salary+bonus; public void setSalary(double salary) this.salary = salary; public void setBonus(double bonus) this.bonus = bonus; 通过指针调用的结果:public static double chap05.MethodPointerTest.square(d

9、ouble)9.0public static double java.lang.Math.sqrt(double)3.0public double chap05.Employee.getSalary()50000.0public void chap05.Manager.setBonus(double)public double chap05.Manager.getSalary()80000.03.结果分析:1.分析程序运行时的输出结果。代码中Methodl类就相当于一个指向类中方法的指针,Class类通过getMethod方法获取这个Method类,之后Method类的对象可以通过invoke

10、方法来调用这个方法。2.掌握反射技术调用类(对象)方法的基本原理与流程。(同上)4.扩展:1.自定义一些简单类,使用反射技术调用该类(静态方法)或类对象的方法;package chap05;import java.lang.reflect.*;public class MethodPointertest2 public static void main(String args) throws Exception Method sin = Math.class.getMethod(sin,double.class); Field PI = Math.class.getField(PI); Sys

11、tem.out.println(sin.invoke(null, PI.getDouble(null)/2); 输出结果:1.0这里没有再自己定义方法了,这里类比Method方法的使用过程通过Field方法获取了Math类里的PI成员并使用2.对于未知类(对象)的内部结构,如何利用反射技术调用其方法?可以先通过反射技术分析其结构再通过反射技术调用其方法。实验四: 利用 TreeSet 实现集合元素排序源代码:package shiyan04;import java.util.*;public class Employee implements Comparable public String

12、name; public int salary; public Date hiredate = new Date(); Employee(String name,int salary,Date hiredate) this.name = name; this.salary = salary; this.hiredate.setTime(hiredate.getTime(); public int compareTo(Employee other) return pareTo(other.name); class salaryComparator implements Comparator pu

13、blic int compare(Employee a,Employee b) return a.salary - b.salary; package shiyan04;import java.text.SimpleDateFormat;import java.util.*;public class Process public static void main(String args) Employee e = new Employee10; Date nowTime = new Date(); SimpleDateFormat format = new SimpleDateFormat(y

14、yyy-MM-dd); String name = 张三, 李四, 王五, 赵六, Tom, Jerry, Amy, test, Jack, John ; long oneday = 86400000; / System.out.println(nowTime); for (int i = 0; i 10; i+) nowTime.setTime(nowTime.getTime() - oneday * 30); ei = new Employee(namei, 3000 + i * 100, nowTime); System.out.println(按姓名:); SortedSet byna

15、me = new TreeSet(); for (Employee i : e) byname.add(i); Iterator iter = byname.iterator(); while (iter.hasNext() Employee e1 = iter.next(); System.out.println(e1.name + + e1.salary + + format.format(e1.hiredate); System.out.println(按工资:); salaryComparator comp2 = new salaryComparator(); SortedSet by

16、salary = new TreeSet(comp2); for (Employee i : e) bysalary.add(i); iter = bysalary.iterator(); while (iter.hasNext() Employee e1 = iter.next(); System.out.println(e1.name + + e1.salary + + format.format(e1.hiredate); System.out.println(按日期:); SortedSet bydate = new TreeSet( new Comparator() public i

17、nt compare(Employee a, Employee b) return pareTo(b.hiredate); ); for (Employee i : e) bydate.add(i); iter = bydate.iterator(); while (iter.hasNext() Employee e1 = iter.next(); System.out.println(e1.name + + e1.salary + + format.format(e1.hiredate); 运行结果:按姓名:Amy 3600 2013-05-28Jack 3800 2013-03-29Jer

18、ry 3500 2013-06-27John 3900 2013-02-27Tom 3400 2013-07-27test 3700 2013-04-28张三 3000 2013-11-24李四 3100 2013-10-25王五 3200 2013-09-25赵六 3300 2013-08-26按工资:张三 3000 2013-11-24李四 3100 2013-10-25王五 3200 2013-09-25赵六 3300 2013-08-26Tom 3400 2013-07-27Jerry 3500 2013-06-27Amy 3600 2013-05-28test 3700 2013-0

19、4-28Jack 3800 2013-03-29John 3900 2013-02-27按日期:John 3900 2013-02-27Jack 3800 2013-03-29test 3700 2013-04-28Amy 3600 2013-05-28Jerry 3500 2013-06-27Tom 3400 2013-07-27赵六 3300 2013-08-26王五 3200 2013-09-25李四 3100 2013-10-25张三 3000 2013-11-24实验五: 多线程同步之团结就是力量实验源代码:package chap08;import java.util.Random

20、;public class ExCooperation2 public static void main(String args) WorkStudent2 ws1 = new WorkStudent2(1, 10); WorkStudent2 ws2 = new WorkStudent2(2, 20); WorkStudent2 ws3 = new WorkStudent2(3, 30); WorkStudent2 ws4 = new WorkStudent2(4, 40); new Thread(ws1).start(); new Thread(ws2).start(); new Thre

21、ad(ws3).start(); new Thread(ws4).start(); class DeskAndChair int desk=0,0,0,0,0,chair=0,0,0,0,0; private int chairCount = 500; private int deskCount = 500; public synchronized Boolean distribute(int id,long sleeptime) int chairs = 1; int desks = 1; Random rdm = new Random(System.currentTimeMillis();

22、 if(rdm.nextInt() % 2 =0) if(chairCount 0) chairs = chairs - 1; while(chairs 0) desks = desks - 1; while(desks0) try wait(); catch(InterruptedException e) System.out.println(Student +id+: wiping desk +deskCount-); deskid+=1; desks = desks + 1; notifyAll(); if(chairCount = 0&deskCount = 0) return tru

23、e; else return false; class WorkStudent2 implements Runnable private long sleeptime; private int id; static DeskAndChair dc = new DeskAndChair(); public WorkStudent2(int id,long time) super(); this.id=id; this.sleeptime=time; public void run() while(!dc.distribute(id, sleeptime) try Thread.sleep(sle

24、eptime); catch(Exception e) ; System.out.println(Result: Student +id+ wiped +dc.deskid+ desks and+dc.chairid+ chairs.); 运行结果:实验六: 利用 JDBC 技术实现简易 MYSQL 客户端程序1.工具:(2)数据库软件:Microsoft Access 2010(3)Java开发工具:Eclipse2.程序框图: 2.部分运行截图及源代码:数据库表:1.主界面代码:class MyPanel extends JPanel Image img=Toolkit.getDefaul

25、tToolkit().getImage(c:/a.jpg); public void paint(Graphics g) g.drawImage(img,0,0,this); public class MainForm extends JFrame implements ActionListener JMenu mSystem=new JMenu(系统); JMenuItem mExit=new JMenuItem(退出); JMenu mOperate=new JMenu(数据操作); JMenuItem mAdd=new JMenuItem(添加成绩表中的数据); JMenuItem mD

26、el=new JMenuItem(删除成绩表中的数据); JMenuItem mModify=new JMenuItem(修改成绩表中的数据); JMenu mQuery=new JMenu(查询); JMenuItem mName=new JMenuItem(在成绩表中按姓名查询); JMenuItem mScore=new JMenuItem(在成绩表中按成绩查询); JMenuItem mBname=new JMenuItem(在班级表中按班级名查询); JMenuItem mBscore=new JMenuItem(在班级表中按班级平均成绩查询); JMenu mHelp=new JM

27、enu(帮助); JMenuItem mAbout=new JMenuItem(系统信息); JMenuBar mBar=new JMenuBar(); MainForm() super(学生成绩管理系统); setSize(680,640); mSystem.add(mExit); mOperate.add(mAdd); mOperate.add(mDel); mOperate.add(mModify); mQuery.add(mName); mQuery.add(mScore); mQuery.add(mBname); mQuery.add(mBscore); mHelp.add(mAbout); mBar.add(mSystem); mBar.add(mOperate); mBar.add(m

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1