毕节学院BijieUniversity实验教案2012~2013学年度第一学期课程名称面向对象程序设计实验学时36学时适用班级10级计科本授课教师于国龙教师职务助教教学单位数学与计算机科学学院实验教案(首页)实验课程名称面向对象程序设计实验学时34□独立设课□非独立设课实验课类别1.验证性或基础性□2.综合性□3.设计性□4.创新性和研究型□任课教师于国龙职称助教授课对象年级:2010级专业:计算机科学与技术班级:1班□本科□专科教材和主要参考资料教材:《Java面向对象程序设计》,耿祥义编著,清华大学出版社,2011年。参考书:《Java教程》(英文版,第二版),RogerGarsideJohnMariani编著,机械工业出版社,2003《Java2实用教程》(第三版),耿祥义编著,清华大学出版社,2006。《Java大学教程》,耿祥义,电子工业出版社,2004。《Java2实用教程(第三版)实验指导与习题解答》,张跃平耿祥义,清华大学出版社,2006.8。教学目的和教学要求JAVA程序设计是计算机科学与技术专业的专业基础课,它是网络时代广泛使用的面向对象的编程语言,它具有可移植性、稳定性、安全性、多线程机制等众多优点,具有非常高的技术性能。上机实验的目的是提高学生的分析问题、解决问题的能力和动手能力,通过实践环节正确理解和熟练掌握JAVA语言的基本知识和基本技能,培养面向对象的程序设计思想和程序设计方法及能力。教学重点和教学难点Java面向对象编程、GUI编程教学进程安排课次实验项目(实验内容)学时备注1设置环境变量并编写简单java应用程序22循环语句和数组应用43接口应用144字符串类常用方法应用45输入输出流应用46窗口布局6实验教案课题(项目)名称:设置环境变量并编写简单java应用程序计划学时:2实验类型:1.验证性或基础性□2.综合性□3.设计性□4.创新性和研究型□授课日期:年月日第周星期第节实验目的1.学习JDK的开安装和配置2.学习eclipse的安装和基本使用3.练习编写基本的Java程序实验要求1.掌握JDK的安装和配置2.掌握JCreator的安装和基本使用3.掌握Java程序编写的基本方法4.理解Java程序编译和运行的基本过程实验内容与步骤1.JDK的安装及基本使用(1)下载JDK的安装文件()(2)按照安装软件提示进行安装(3)配置path和classpath(4)测试(A)javac命令(B)java命令(5)编写HelloWorld.java程序,编译并运行2.Eclipse安装(1)下载Eclipse(2)解压安装3.Eclipse使用(1)设置工程区(选择自己的目录哦!!!)(2)建立项目Project****(****代表学号后4位)(3)创建cn.pzhu.java.s****.exp1.HelloWorld类,并运行4.简单程序编写在包cn.pzhu.java.s****.exp1下创建(1)编写下面“HelloWorld”程序。publicclassHello{publicstaticvoidmain(Stringargs[]){System.out.println(这是一个简单的Java应用程序);Studentstu=newStudent();stu.speak(Wearestudents);}}classStudent{publicvoidspeak(Strings){System.out.println(s);}}(2)编写程序输出如下字符(StarDemo.java)***************思考与练习(1)了解,总结eclipse中的快捷实验教案课题(项目)名称:循环语句和数组应用计划学时:4实验类型:1.验证性或基础性□2.综合性□3.设计性□4.创新性和研究型□授课日期:年月日第周星期第节实验目的1.验证8种原始数据类型数据的赋值操作2.流程控制语句的使用3.数组应用实验要求1.掌握原始数据类型的初值以及基本的赋值操作2.掌握流程控制语句的使用3.数组应用实验内容与步骤1.完成如下程序,并尝试取消注释片的代码,编译测试在包cn.pzhu.java.s****.exp2下创建如下程序////////////////////////////Assign.java//////////////////////////////////////////publicclassAssign{publicstaticvoidmain(String[]args){//1.DeclareandAssigninta;a=100;System.out.println(a=+a);intb=100;System.out.println(b=+b);intc=a;System.out.println(c=+c);//2.booleanbooleanflag=true;//booleanflag=1;//erroSystem.out.println(flag=+flag);//3.texttype//charcA='A';//charcA=A;charcA=65;System.out.println(cA=+cA);Strings1=Helloworld;Strings2=Hello\nworld;System.out.println(s1=+s1);System.out.println(s2=+s2);//4.integertypebyteiA=100;//byteiB=200;shortiC=1000;intiD=10000;longiE=1000;//intiF=10000L;System.out.println(iA=+iA+\n+iC=+iC+\n+iD=+iD+\n+iE=+iE+\n);//5.floating-pointtypefloatfA=3.14F;//floatfB=3.14;doublefC=3.14;doublefD=3.14D;doublefE=2E2;doublefF=123.4E+306D;System.out.println(fA=+fA+\n+fC=+fC+\n+fD=+fD+\n+fE=+fE+\n+fF=+fF+\n);}}///////////////////////////////////////////////////////////////////////////////////////2、使用for、while、do…while分别实现在n!,并在n=10的情况下测试建议编写三个独立的方法3、编写测试代码测试“||”和“&&”短路现象4.创建如下的二维数组,并遍历数组123458abcde5.要求:判断一个数组中是否存在相同的元素,如果存在相同的元素则输出“重复”,否则输出“不重复”。该题中如果需要判断数组中元素是否重复,则需要对数组中的元素进行两两比较,如果有任意一组元素相等,则该数组中的元素存在重复,如果任意一组元素都不想等,则表示数组中的元素不重复。实现思路:假设数组中的元素不重复,两两比较数组中的元素,使用数组中的第一个元素和后续所有元素比较,接着使用数组中的第二个元素和后续元素比较,依次类推实现两两比较,如果有一组元素相同,则数组中存储重复,结束循环。把比较的结果存储在一个标志变量里,最后判断标志变量的值即可。则实现的代码如下:int[]n={1,2,3,1,0};booleanflag=true;//假设不重复for(inti=0;in.length–1;i++){//循环开始元素for(intj=i+1;jn.length;j++){//循环后续所有元素//如果相等,则重复if(n[i]==n[j]){flag=false;//设置标志变量为重复break;//结束循环}}}//判断标志变量if(flag){System.out.println(“不重复”);}else{System.out.println(“重复”);}在该代码中,flag变量存储是否重复,true代表不重复,false代表重复。外部循环中循环变量i代表第一个元素的下标,内部循环中循环变量j代表后续元素的下标,当i为零时和后续所有元素比较,然后当i为1时也和后续所有元素比较,依次类推,这样实现所有元素之间的两两比较。然后如果元素相同,则代表有重复,把flag变量的值置成flase,结束循环。最后根据flag变量的值就可以判断是否重复了。思考与练习1.练习位的基本操作2.尝试创建一个对象数组实验教案课题(项目)名称:接口应用计划学时:14实验类型:1.验证性或基础性□2.综合性□3.设计性□4.创新性和研究型□授课日期:年月日第周星期第节实验目的1.验证面向对象三大特性2.学习封装的实现3.学习继承的实现4.编写多态实例5.学习抽象类的使用6.学习接口的使用实验要求1.掌握封装的实现方法2.掌握继承的编程方式和思想3.理解多态现象4.掌握抽象类和接口的使用实验内容与步骤1.封装的实现(1)编写程序模拟个人银行账号类。考虑个人银行的特点,建立类模型(注意属性和方法的访问权限修饰符)[参考代码]publicclassBankAccount{privateStringaccountID;privateStringpassword;privateintbalance;publicBankAccount(StringaccountID,Stringpassword,Stringoperator){this.accountID=accountID;this.password=password;this.balance=0;System.out.println(CreateaBankAccount);System.out.println(AccountID:+this.accountID);System.out.println(CurrentBalance:+this.balance);System.out.println(Operator:+operator);System.out.println(SaveAccountinfotoDatabase);}publicvoidqueryBalance(Stringpassword){if(password==this.password){System.out.println(PasswordOK);System.out.println(CurrentAccountBalance:+this.balance);}else{System.out.println(PasswordErro);}}publicvoidchangePassword(StringoldPassword,StringnewPassword){if(oldPassword==this.password){System.out.println(PasswordOK);this.password=newPassword;System.out.println(ChangePassordOK);}else{System.out.println(PasswordErro);}}publicvoiddeposit(intmoney,Stringoperator){this.balance+=money;System.out.println(addbalanceOK.Operator:+operator);System.out.println(SaveAccountchangetodatabase);}publicvoidwithdraw(Stringpassword,intmoney,Stringoperator){if(password==this.password){System.out.println(PasswordOK);if(this.balancemoney){this.balance-=mo