还剩59页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
学生实验报告册(理工类)课程名称J__a程序设计实验专业班级12计算机科学与技术
(1)学生学号学生姓名所属院部计算机工程学院指导教师马青霞2014—2015学年第2学期金陵科技学院教务处制实验项目名称J__a编程基础实验学时4同组学生姓名无实验地点A101实验日期4月1日-4月8日实验成绩批改教师马青霞批改时间实验1J__A编程基础
1、实验目的
1、熟练掌握JDK编写调试J__a应用程序及J__a小程序的方法;
2、熟练掌握J__a应用程序的结构;
3、了解J__a语言的特点,基本语句、运算符及表达式的使用方法;
4、熟练掌握常见数据类型的使用;
5、熟练掌握if-else、switch、while、do-while、for、continue、break、return语句的使用方法;
6、熟练掌握数组和字符串的使用
二、实验要求
1、编写程序要规范、正确,上机调试过程和结果要有记录;
2、做完实验后给出本实验的实验报告
三、实验设备、环境__有JDK、Eclipse软件的计算机
四、实验步骤采用记事本编写一个简单的应用程序
(1)新建一个记事本文件,重新命名为Hello.j__a
(2)打开记事本,输入以下内容(注意大小写)publicclassHello{publicstaticvoid__inStringargs[]{}}
(3)请记录程序编译和执行的步骤,并附上运行结果图进入文件所在目录cdclass\j__a\j__a_ex1编译N:\class\j__a\j__a_ex1j__acHello.j__a运行j__aHello结果
五、实验内容
1、从键盘上输入学号、班级和姓名,并附上运行结果图importpublicclassKeyboardDemo{publicstaticvoid__inString[]args{Scannerscan=newScannerSystem.in;System.out.print请输入班级;Stringcls=scan.nextLine;System.out.print请输入姓名;Stringname=scan.nextLine;System.out.print请输入学号;Stringnum=scan.nextLine;System.out.println班级+cls+姓名+name+学号+num;}}
2、编写一个程序,用来判断输入的是大写字母,小写字母,数字还是其他的字符(if)importpublicclassCharDemo{publicstaticvoid__inString[]args{//TODOAuto-generatedmethodstubScannerscan=newScannerSystem.in;whiletrue{System.out.print请输入一个字符:;charch=scan.nextLine.charAt0;ifCharacter.isUpperCasechSystem.out.println该字符是大写字母:+ch;elseifCharacter.isLowerCasechSystem.out.println该字符是小写字母:+ch;elseifCharacter.isDigitchSystem.out.println该字符是数字:+ch;elseSystem.out.println该字符是其他字符!;}}}
3、编写一个程序,实现简单加、减、、乘除的运算,要求从键盘上输入数据(switch)importpublicclassCount{publicstaticvoid__inString[]args{//TODOAuto-generatedmethodstubintnum1;intnum2;charfh;Scannersc=newScannerSystem.in;whiletrue{System.out.println请输入第一个数;num1=sc.nextInt;System.out.println请输入您的运算符;fh=sc.next.charAt0;System.out.println请输入第二个数;num2=sc.nextInt;switchfh{case+:{System.out.printlnnum1+num2=+num1+num2;break;}case-:{System.out.printlnnum1-num2=+num1-num2;break;}case*:{System.out.printlnnum1*num2=+num1*num2;break;}case/:{ifnum2==0{break;}else{System.out.printlnnum1/num2=+num1/num2;break;}}default:{System.out.println输入有误!;break;}}}}}
4、定义一个一维数组,通过键盘输入10个两位整数,并求出其中的最大值和平均值,把结果显示出来importpublicclassArrayDemo{publicstaticvoid__inString[]args{//TODOAuto-generatedmethodstubScannerscan=newScannerSystem.in;intarr[]=newint
[10];intsum=0;System.out.print请输入10个两位整数;forinti=0;i10;i++{arr[i]=scan.nextInt;sum+=arr[i];}System.out.printlnsum:+String.for__t%dsum;System.out.println__erage:+String.for__t%.2fdoublesum/10;}}
5、定义一个5行5列二维数组,用随机数给二维数组赋值,按照5行5列的格式显示出二维数组的内容,把最大值显示出来publicclassArray5_5Demo{publicstaticvoid__inString[]args{//TODOAuto-generatedmethodstubintarr[][]=newint
[5]
[5];forinti=0;i5;i++forintj=0;j5;j++{arr[i][j]=int__th.random*90+10;}forinti=0;i5;i++{forintj=0;j5;j++{System.out.printString.for__t%4darr[i][j];}System.out.println;}}}
6、实现不规则二维数组的输入和输出importpublicclassNoRuleArrDemo{publicstaticvoid__inString[]args{//TODOAuto-generatedmethodstubintarr[][]=newint
[3][];arr
[0]=newint
[3];arr
[1]=newint
[2];arr
[2]=newint
[4];Scannerscan=newScannerSystem.in;forinti=0;iarr.length;i++{forintj=0;jarr[i].length;j++{System.out.print请输入数据0-_____:;arr[i][j]=scan.nextInt;}}System.out.println数组元素为;forinti=0;iarr.length;i++{forintj=0;jarr[i].length;j++System.out.printString.for__t%-5darr[i][j];System.out.println;}}}实验项目名称面向对象编程实验学时8同组学生姓名无实验地点A101实验日期4月15日-5月6日实验成绩批改教师马青霞批改时间实验2面向对象编程
一、实验目的、要求
1、熟练掌握J__a语言类定义的基本语法;
2、熟练掌握类成员的访问控制,对象建立的方法;
3、熟练掌握类构造方法、成员方法的定义和重载;
4、熟练掌握类继承、多态和抽象性;
5、熟练掌握接口的定义和实现方法;
6、掌握基本的异常处理方法
二、实验要求
1、编写程序要规范、正确,上机调试过程和结果要有记录;
2、做完实验后给出本实验的实验报告
三、实验设备、环境__有JDK、Eclipse软件的计算机
四、实验内容
1、定义一个Students类,包括学号、姓名、性别、年龄4个属性,要求在性别属性中增加对性别的判断(只能输入男和女),在年龄属性中提供对不合法(年龄在10至50之间)输入的判断,并提供方法显示学生信息构建该类,并测试packagetest1;classStudents{privateStringnum;privateStringname;privatechar___;privateintage;StudentsStringnumStringnamechar___intage{this.num=num;this.name=name;this.___=___;this.age=age;}booleanjudge___{if___==f||___==mreturntrue;returnfalse;}booleanjudgeAge{ifage10age50returntrue;returnfalse;}voidshow{}}publicclassdemo1{publicstaticvoid__inString[]args{//TODOAuto-generatedmethodstubStudentsstu=newStudents1205104006wjwf21;ifstu.judgeAgestu.judge___stu.show;else}}
2、定义一个方法,用数组作为参数来传递数据(请补充下面的代码)packagetest1;publicclassdemo1{publicstaticvoid__inString[]args{inta[]={102015405035};Myclassmyclass=newMyclass;myclass.printArra;Arrays.sorta;myclass.printArra;}}classMyclass{//定义一个方法,实现数组内容的输出voidprintArrint[]arr{forinti=0;iarr.length;i++{}}}
3、定义一个学生类,把学生类当作对象来传递或者用对象数组作为参数传递packagetest1;classStudents{privateStringnum;privateStringname;privatechar___;privateintage;StudentsStringnumStringnamechar___intage{this.num=num;this.name=name;this.___=___;this.age=age;}voidshow{}}publicclassdemo2{publicstaticvoid__inString[]args{Studentsstu[]=newStudents
[2];stu
[0]=newStudents1205104006wjwf21;stu
[1]=newStudents12051040ysm22;printstu;}publicstaticvoidprintStudentsstu[]{forinti=0;istu.length;i++{stu[i].show;}}}
4、利用方法的重载两个整数和两个双精度类型数据求和packagetest1;classAdd{publicintAddintnum1intnum2{returnnum1+num2;}publicdoubleAdddoublenum1doublenum2{returnnum1+num2;}}publicclassdemo3{publicstaticvoid__inString[]args{intnum1=10;intnum2=20;doublenum3=
10.23;doublenum4=
30.74;Addadd=newAdd;}}
5、定义一个Area类,用构造函数重载,实现矩形的__,圆的__,梯形的__,定义一个ShowArea方法,显示结果packagetest1;classArea{privatestaticfinaldoublePI=
3.14;;privatedoublearea;Areadoublewidthdoublelength{area=width*length;}Areadoubleradius{area=PI*radius*radius;}Areadoublelength1doublelength2doubleheight{area=length1+length2*height/2;}publicvoidshowArea{}}publicclassAreaDemo{publicstaticvoid__inString[]args{Arearectangle=newArea
3.
05.5;Areacycle=newArea
2.4;Areaechelon=newArea
3.
24.54;rectangle.showArea;cycle.showArea;echelon.showArea;}}
6、在该程序中构造一个Person基类,在Person类的基础上再构造Student类,实现方法的覆盖classPerson{privateintage;privateStringname;PersonStringnameintage{this.name=name;this.age=age;}voidshow{System.out.printlnname:+name+\nage:+age;}voidmethod{System.out.printlnmethod调用;}}classStudentextendsPerson{StudentStringnameintage{supernameage;}voidmethod{System.out.printlnmethod调用.......study....;}}publicclassExtendDemo{publicstaticvoid__inString[]args{Studentstu=newStudentwjw21;stu.show;stu.method;}}
7、用面向对象的知识,实现实验一的计算器程序packagehtp;classOperation{privateintnum1;privateintnum2;charopt;publicintgetNum1{returnnum1;}publicvoidsetNum1intnum1{this.num1=num1;}publicintgetNume2{returnnum2;}publicvoidsetNume2intnume2{this.num2=num2;}publicchargetOpt{returnopt;}publicvoidsetOptcharopt{this.opt=opt;}Operationintnum1charoptintnum2{this.num1=num1;this.num2=num2;this.opt=opt;}publicvoidCal{switchopt{case+:{break;}case-:{break;}case*:{break;}case/:{ifnum2==0{break;}else{break;}}default:{break;}}}}publicclassCalculate{publicstaticvoid__inString[]args{//TODOAuto-generatedmethodstubScannerscan=newScannerSystem.in;intnum1;intnum2;charoperator;num1=scan.nextInt;operator=scan.next.charAt0;num2=scan.nextInt;Operationop=newOperationnum1operatornum2;op.Cal;}}静态工厂以加法为例/*Test.j__a*/packagecal;importpublicclassTest{publicstaticvoid__inString[]argsthrowsEx__ption{Scannerinput=newScannerSystem.in;System.out.print请输入第一个数据;intnu__=input.nextInt;System.out.print请输入操作符+、-、*、/;Stringtype=input.next;System.out.print请输入第二个数据;intnumB=input.nextInt;Factoryfactory=FactoryOperation.createFactorytype;Operationoperation=factory.createOperation;operation.setNu__nu__;operation.setNumBnumB;System.out.println计算结果为+operation.getResult;}}/*Operation.j__a*/packagecal;publicabstractclassOperation{protectedintnu__numB;publicintgetNu__{returnnu__;}publicvoidsetNu__intnu__{this.nu__=nu__;}publicintgetNumB{returnnumB;}publicvoidsetNumBintnumB{this.numB=numB;}publicabstractdoublegetResult;}/*Factory.j__a*/packagecal;publicabstractclassFactory{publicabstractOperationcreateOperation;}/*FactoryOperation.j__a*/packagecal;publicclassFactoryOperation{publicstaticFactorycreateFactoryStringtypethrowsEx__ption{Propertiesproperties=newProperties;Filefile=newFileconfig.xml;properties.loadFromXMLnewFileInputStreamfile;StringclassName=properties.getPropertytype;Classc=Class.forNameclassName;Factoryfactory=Factoryc.getClassLoader.loadClassclassName.newInstan__;returnfactory;}}/*config.xml*/xmlversion=
1.0encoding=UTF-8propertiesentrykey=+/properties/*OperationAdd.j__a*/packagecal;publicclassOperationAddextendsOperation{@OverridepublicdoublegetResult{returnnu__+numB;}}
8、定义一个Icar和Icarcolor的接口,在接口Icar中定义一个Run方法和一个Stop方法,在接口Icarcolor中定义一个Color的属性,再定义一个Car类实现接口中的方法和属性inte_____Icar{publicvoidrun;publicvoidstop;}inte_____IcarColor{finalStringcolor=purple;}classCarimplementsIcarIcarColor{publicvoidrun{}publicvoidstop{}}publicclassCarInte_____{publicstaticvoid__inString[]args{//TODOAuto-generatedmethodstubCarmyCar=newCar;myCar.run;myCar.stop;}}实验项目名称图形用户界面实验学时6同组学生姓名无实验地点A101实验日期5月13日-5月27日实验成绩批改教师马青霞批改时间实验3图形用户界面
一、实验目的、要求
1、掌握Swing组件的使用方法;
2、熟练掌握Swing中常用布局管理器的使用方法;
3、掌握用户界面动作与__的处理程序的编写方法;
4、熟练掌握构造用户界面的方法和常见界面元素的使用;
5、熟练掌握J__a绘图的主要方法
二、实验要求
1、编写程序要规范、正确,上机调试过程和结果要有记录;
2、做完实验后给出本实验的实验报告
三、实验设备、环境__有JDK、Eclipse软件的计算机
四、实验内容
1、设计一个Windows应用程序,在该程序中首先构造一个学生基本类,再分别构造小学生、中学生、大学生派生类,当输入相关数据,单击不同的按钮时,将分别创建不同的学生类对象,并输出当前学生的总人数,该学生的姓名,学生类型,平均成绩程序要求
(1)每个学生都有的字段为姓名、年龄
(2)小学生的字段还有语文,数学,用来表示这两科的成绩
(3)中学生在此基础上增加英语成绩
(4)大学生分为必修课和选修课两项成绩
(5)学生类提供方法来统计自己的总成绩并输出
(6)通过静态成员自动记录学生总人数
(7)成员初始化通过构造函数完成/*学生类*/packagehtp.gui;publicabstractclassStudent{privateStringname;privateintage;double__erage;staticintnum;publicStudentStringnameintage{this.name=name;this.age=age;}publicabstractdoubleget__erage;}classStuPriextendsStudent{privatedoublechinese;privatedouble__th;publicStuPriStringnameintagedoublechinesedouble__th{supernameage;this.chinese=chinese;this.__th=__th;}@Overridepublicdoubleget__erage{__erage=chinese+__th/2;return__erage;}}classStuSecextendsStudent{privatedoublechinese;privatedouble__th;privatedoubleenglish;publicStuSecStringnameintagedoublechinesedouble__thdoubleenglish{supernameage;this.chinese=chinese;this.__th=__th;this.english=english;}@Overridepublicdoubleget__erage{__erage=chinese+__th+english/3;return__erage;}}classStuCollextendsStudent{privatedoubleoptional;privatedoublecomp;publicStuCollStringnameintagedoubleoptionaldoublecomp{supernameage;this.optional=optional;this.comp=comp;}@Overridepublicdoubleget__erage{__erage=optional+comp/2;return__erage;}}/*界面*/packagehtp.gui;publicclassStudentGuiextendsJFrameimplementsActionListener{JPaneljp1jp2;JPaneljp1_1jp1_2jp1_3;JButtonjb_prijb_secjb_col;JLabeljl_namejl_agejl_ch_opjl___th_comjl_en;JTextFieldjtf_namejtf_age;JTextFieldjtfCh_Optjtf__th_ComjtfEn;JTextAreajta;publicstaticvoid__inString[]args{StudentGuistu=newStudentGui;}publicStudentGui{jp1=newJPanel;jp2=newJPanel;jp1_1=newJPanel;jp1_2=newJPanel;jp1_3=newJPanel;jl_name=newJLabel姓名;jl_age=newJLabel年龄;jl_ch_op=newJLabel语文/选修;jl___th_com=newJLabel数学/必修;jl_en=newJLabel英语;jtf_name=newJTextField10;jtf_age=newJTextField10;jtfCh_Opt=newJTextField10;jtf__th_Com=newJTextField10;jtfEn=newJTextField10;jta=newJTextArea3020;jb_pri=newJButton小学生;jb_pri.addActionListenerthis;jb_sec=newJButton中学生;jb_sec.addActionListenerthis;jb_col=newJButton大学生;jb_col.addActionListenerthis;jp
1.setLayoutnewGridLayout31;jp1_
1.addjl_name;jp1_
1.addjtf_name;jp1_
1.addjl_ch_op;jp1_
1.addjtfCh_Opt;jp1_
1.addjb_pri;jp1_
2.addjl_age;jp1_
2.addjtf_age;jp1_
2.addjl___th_com;jp1_
2.addjtf__th_Com;jp1_
2.addjb_sec;jp1_
3.setLayoutnewFlowLayoutFlowLayout.RIGHT;jp1_
3.addjl_enRight;jp1_
3.addjtfEnEast;jp1_
3.addjb_colEast;jp
1.addjp1_1North;jp
1.addjp1_2__nter;jp
1.addjp1_3South;jp
2.addjta;this.addjp1North;this.addjp2;this.setVisibletrue;this.setTitle学生信息;this.setSize430500;this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;}@OverridepublicvoidactionPerformedActionEvente{Stringname;intage;doublechi_opt__th_compen;double__erage=0;name=jtf_name.getText;age=Integer.parseIntjtf_age.getText;chi_opt=Double.parseDoublejtfCh_Opt.getText;__th_comp=Double.parseDoublejtf__th_Com.getText;ife.getSour__==jb_pri{StuPristuPri=newStuPrinameagechi_opt__th_comp;__erage=stuPri.get__erage;}elseife.getSour__==jb_sec{en=Double.parseDoublejtfEn.getText;StuSecstuSec=newStuSecnameagechi_opt__th_compen;__erage=stuSec.get__erage;}elseife.getSour__==jb_col{StuCollstuColl=newStuCollnameagechi_opt__th_comp;__erage=stuColl.get__erage;}Student.num++;Stringresult=学生总人数+Student.num+;当前学生平均成绩+String.for__t%.2f__erage;jta.setTextresult;}}
2、在该程序中定义平面图形抽象类Figure和派生类圆(Circle)、矩形(Rectangle)和三角形(________)该程序实现的功能包括输入相应图形的参数,如矩形的长和宽,单击相应的按钮,根据输入参数创建图形类并输出该对象的__/*图形类*/packagehtp.test;abstractclassFigure{publicabstractdoublegetArea;}classCircleextendsFigure{privatestaticfinaldoublePI=
3.1415926;privatedoubleradius;Circledoubleradius{this.radius=radius;}@OverridepublicdoublegetArea{returnradius*radius*PI;}}classRectangleextendsFigure{privatedoublewidth;privatedoublelength;Rectangledoublewidthdoublelength{this.width=width;this.length=length;}@OverridepublicdoublegetArea{returnwidth*length;}}class________extendsFigure{privatedoubleheight;privatedoublelength;________doubleheightdoublelength{this.height=height;this.length=length;}@OverridepublicdoublegetArea{returnheight*length/2;}}/*图形界面*/packagehtp.test;publicclassDemoextendsJFrameimplementsActionListener{JLabeljlRadiusjlLengthjlWidth_Height;JButtonjbRecjbTrijbCir;JTextFieldjtfRadiusjtfLengthjtfWidth_Height;JPaneljp;JTextAreajta;publicstaticvoid__inString[]args{//TODOAuto-generatedmethodstubDemodemo=newDemo;}publicDemo{jlRadius=newJLabel半径;jlLength=newJLabel矩形长/三角形底;jlWidth_Height=newJLabel矩形宽/三角形高;jbRec=newJButton矩形;jbRec.addActionListenerthis;jbTri=newJButton三角形;jbTri.addActionListenerthis;jbCir=newJButton圆;jbCir.addActionListenerthis;jtfRadius=newJTextField10;jtfLength=newJTextField10;jtfWidth_Height=newJTextField10;jp=newJPanel;jta=newJTextArea50200;jta.setBackgroundColor.green;jp.setLayoutnewGridLayout33;jp.addjlLength;jp.addjtfLength;jp.addjbCir;jp.addjlRadius;jp.addjtfRadius;jp.addjbRec;jp.addjlWidth_Height;jp.addjtfWidth_Height;jp.addjbTri;this.addjpNorth;this.addjta;this.setVisibletrue;this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;this.setSize300400;}@OverridepublicvoidactionPerformedActionEvente{//TODOAuto-generatedmethodstubife.getSour__==jbRec{Rectanglerec=newRectangleDouble.parseDoublejtfLength.getTextDouble.parseDoublejtfWidth_Height.getText;jta.setText该矩形__为+String.for__t%.2frec.getArea;jtfRadius.setTextnull;}elseife.getSour__==jbTri{________tri=new________Double.parseDoublejtfLength.getTextDouble.parseDoublejtfWidth_Height.getText;jta.setText该三角形__为+String.for__t%.2ftri.getArea;jtfRadius.setTextnull;}elseife.getSour__==jbCir{Circlecir=newCircleDouble.parseDoublejtfRadius.getText;jta.setText该圆的__为+String.for__t%.2fcir.getArea;jtfLength.setTextnull;jtfWidth_Height.setTextnull;}}}
3、声明一个接口Iplayer,包含5个接口方法播放,停止,暂停,上一首和下一首在该程序中定义一个MP3播放器类和一个__I播放器类,以实现该接口/*播放器接口*/packagehtp.player;publicinte_____IPlayer{publicStringstop;publicStringpause;publicStringplay;publicStringpre;publicStringnext;}/*MP3播放器*/packagehtp.player;publicclassMp3implementsIPlayer{publicMp3{}publicStringstop{//TODOAuto-generatedmethodstubreturn停止播放Mp3歌曲;}publicStringpause{//TODOAuto-generatedmethodstubreturn暂停播放Mp3歌曲;}publicStringplay{//TODOAuto-generatedmethodstubreturn正在播放Mp3歌曲;}publicStringpre{//TODOAuto-generatedmethodstubreturn正在播放Mp3歌曲;}publicStringnext{//TODOAuto-generatedmethodstubreturn正在播放Mp3歌曲;}}/*__i播放*/packagehtp.player;publicclass__iimplementsIPlayer{public__i{}publicStringstop{//TODOAuto-generatedmethodstubreturn停止播放__i歌曲;}publicStringpause{//TODOAuto-generatedmethodstubreturn暂停播放__i歌曲;}publicStringplay{//TODOAuto-generatedmethodstubreturn正在播放__i歌曲;}publicStringpre{//TODOAuto-generatedmethodstubreturn正在播放__i歌曲;}publicStringnext{//TODOAuto-generatedmethodstubreturn正在播放__i歌曲;}}/*播放器*/packagehtp.player;publicclassPlayerextendsJFrameimplementsActionListener{JButtonjbMp3jb__ijbPlayjbPrejbNextjbStopjbPause;JTextFieldjtf;JPaneljpjp1jp2;Stringflag=mp3;Mp3mp3=newMp3;__i__i=null;publicstaticvoid__inString[]args{//TODOAuto-generatedmethodstubPlayerplayer=newPlayer;}publicPlayer{jbMp3=newJButtonMP3;jbMp
3.addActionListenerthis;jb__i=newJButton__i;jb__i.addActionListenerthis;jbPlay=newJButtonPlay;jbPlay.addActionListenerthis;jbPre=newJButtonPre;jbPre.addActionListenerthis;jbNext=newJButtonNext;jbNext.addActionListenerthis;jbStop=newJButtonStop;jbStop.addActionListenerthis;jbPause=newJButtonPause;jbPause.addActionListenerthis;jtf=newJTextField15;jp=newJPanel;jp1=newJPanel;jp2=newJPanel;jp.setLayoutnewGridLayout21;jp
1.addjbMp3;jp
1.addjtf;jp
1.addjb__i;jp
2.addjbPause;jp
2.addjbPre;jp
2.addjbPlay;jp
2.addjbNext;jp
2.addjbStop;jp.addjp1;jp.addjp2;this.addjp;this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;this.setVisibletrue;this.setSize400150;}@OverridepublicvoidactionPerformedActionEvente{//TODOAuto-generatedmethodstubife.getSour__==jbMp3{mp3=newMp3;flag=mp3;jtf.setTextmp
3.play;}elseife.getSour__==jb__i{__i=new__i;flag=__i;jtf.setText__i.play;}elseifflag.equalsmp3{ife.getSour__==jbPlay{jtf.setTextmp
3.play;}elseife.getSour__==jbNext{jtf.setTextmp
3.next;}elseife.getSour__==jbPause{jtf.setTextmp
3.pause;}elseife.getSour__==jbPre{jtf.setTextmp
3.pre;}elseife.getSour__==jbStop{jtf.setTextmp
3.stop;}}else{ife.getSour__==jbPlay{jtf.setText__i.play;}elseife.getSour__==jbNext{jtf.setText__i.next;}elseife.getSour__==jbPause{jtf.setText__i.pause;}elseife.getSour__==jbPre{jtf.setText__i.pre;}elseife.getSour__==jbStop{jtf.setText__i.stop;}}}}实验项目名称J__a高级编程实验学时6同组学生姓名无实验地点A101实验日期6月3日-6月17日实验成绩批改教师马青霞批改时间实验4J__a高级编程
一、实验目的
1、了解文件的概念和文件对象的创建方法;
2、掌握使用文件输入输出流读写文件的方法;
3、了解线程的基本概念和多线程程序设计的基本方法;
4、掌握数据库连接的方法;
5、创建SQL查询;
6、查询并更新数据库中的信息
二、实验要求
1、编写程序要规范、正确,上机调试过程和结果要有记录;
2、做完实验后给出本实验的实验报告
三、实验设备、环境__有JDK、Eclipse软件的计算机
四、实验内容
1、使用文件字节输入/输出流,合并两个指定文件;当文件中的数据已排序时,合并后的数据也要求是已排序的
2、将J__a的关键字保存在一个文本文件中,判断一个字符串是否为J__a的关键字packagehtp;publicclassFileBuf{publicstaticvoid__inString[]argsthrowsIOEx__ption{//TODOAuto-generatedmethodstubFilefile=newFileh:/j__a.___;Stringstr=;FileReaderfr=newFileReaderfile;BufferedReaderbr=newBufferedReaderfr;Stringbuf;whilebuf=br.readLine!=null{str+=buf;}String[]keys=str.split;ArrayListkeyList=newArrayList;Scannerscan=newScannerSystem.in;booleanflag=false;whiletrue{StringmyStr=scan.next;forStringkey:keys{ifmyStr.equalskey.trim{flag=true;break;}}if!flag{}}}}
3、编写在构造方法中产生一个1-5之间的随机数的继承Thread类的线程类DelayPrintThread,使得线程体每休眠此随机数时间就打印输出线程号和休眠时间;另外编写应用DelayPrintThread类的J__a应用程序TwoThread.j__a,在__in方法中创建两个线程,并应用sleep控制主应用程序延迟一段时间packagehtp;classDelayPrintThreadextendsThread{privateintnum=0;DelayPrintThreadintnumthrowsInterruptedEx__ption{super;this.num=num;sleep5;}publicvoidrun{}}publicclassTwoThread{publicstaticvoid__inString[]argsthrowsInterruptedEx__ption{Threads1=newDelayPrintThreadint__th.random*4+1;Threads2=newDelayPrintThreadint__th.random*4+1;s
1.start;s
2.start;Thread.sleep100;Thread.sleep100;}}
4、编写继承Runnable接口的Applet多线程小程序类MultiThreadApplet,编写继承该类的Applet小程序类Clock,在Clock中重新构造父类的run方法,实现数字时钟的功能,要求不断刷新显示时、分、秒packagetest1;classMultiThreadAppletextendsAppletimplementsRunnable{ThreadclockThread;Fontfont;publicvoidinit{font=newFontTimesRo__nFont.BOLD48;}publicvoidstart{ifclockThread==null{clockThread=newThreadthisshowtime;clockThread.start;}}publicvoidstop{//TODOAuto-generatedmethodstubclockThread.stop;}publicvoidpaintGraphicsg{Datenow=newDate;g.drawStringnow.getHours+:+now.getMinutes+:+now.getSeconds5050;}publicvoidrun{}}publicclassClockextendsMultiThreadApplet{publicstaticvoid__inString[]args{Clockclock=newClock;}publicvoidrun{whiletrue{repaint;try{clockThread.sleep1000;}catchInterruptedEx__ptione{}}}}
5、为学生信息表设计数据库应用程序,包括数据的输入、删除和查询功能/*login.j__a*/packagestudent__nage;publicclassLoginextendsJFrame{JPaneljp1=newJPanel;JPaneljp2=newJPanel;JPaneljp3=newJPanel;JLabeljlname=newJLabel登录名;JLabeljlpwd=newJLabel密码;JTextFieldj___name=newJTextField10;JPasswordFieldj___pwd=newJPasswordField10;JButtonjblogin=newJButton登录;JButtonjbcancleButton=newJButton取消;publicLogin{//登录jblogin.addActionListenernewActionListener{@OverridepublicvoidactionPerformedActionEventarg0{StringstuID=j___name.getText.trim;StringstuPwd=j___pwd.getText;Studentstudent=newStudent;ResultSetrs=student.LoadDatastuID;try{//判断用户名是否存在ifrs.next{//判断__是否正确ifrs.getStringstuPwd.trim.equalsstuPwd{newStudentModify;}else{JOptionPane.showMessageDialognull__错误;j___pwd.setText;j___pwd.requestFocus;return;}}else{JOptionPane.showMessageDialognull用户名不存在,请重新输入!;j___name.setText;j___pwd.setText;j___name.requestFocus;return;}}catchSQLEx__ptione{//TODOAuto-generatedcatchblocke.printStackTra__;}}};//登录名设置回车j___name.addActionListenernewActionListener{@OverridepublicvoidactionPerformedActionEventarg0{ifj___name.getText.equals{JOptionPane.showMessageDialogj___name登录名不能为空!登录错误JOptionPane.WARNING_MESSAGE;}else{//__框获得焦点j___pwd.requestFocus;}}};//__设置回车j___pwd.addActionListenernewActionListener{@OverridepublicvoidactionPerformedActionEventarg0{ifj___pwd.getText.equalsJOptionPane.showMessageDialognull__不能为空!__错误JOptionPane.WARNING_MESSAGE;else{jblogin.requestFocus;}}};this.setLayoutnewGridLayout31;jp
1.addjlname;jp
1.addj___name;this.addjp1;jp
2.addjlpwd;jp
2.addj___pwd;this.addjp2;jp
3.addjblogin;jp
3.addjbcancleButton;this.addjp3;this.setBounds100100300150;this.setVisibletrue;this.setResizablefalse;this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;}publicstaticvoid__inString[]args{newLogin;}}/*database.j__a*/packagestudent__nage;publicclassDataBse{//定义数据库操作对象Connectionconn=null;PreparedStatementps=null;ResultSetrs=null;//连接数据库publicvoidOpen{try{conn=Driver__nager}catchEx__ptione{}}publicvoidClose{try{ifrs!=nullrs.close;ifps!=nullps.close;ifconn!=nullps.close;}catchSQLEx__ptione{//TODOAuto-generatedcatchblocke.printStackTra__;}}//对数据库进行增、删、更新操作publicintExecuteSQLStringsql{Open;inti=0;try{ps=conn.prepareStatementsql;i=ps.executeUpdate;}catchSQLEx__ptione{e.printStackTra__;}Close;returni;}//查询publicResultSetgetResultSetStringsql{Open;try{ps=conn.prepareStatementsqlResultSet.TYPE_SCROLL_INSENSITIVEResultSet.CONCUR_READ_ONLY;rs=ps.executeQuery;}catchEx__ptione{e.printStackTra__;}returnrs;}}/*student.j__a*/packagestudent__nage;publicclassStudent{privateStringstuIDstuNamestu___stuPwd;publicStringgetStuID{returnstuID;}publicvoidsetStuIDStringstuID{this.stuID=stuID;}publicStringgetStuName{returnstuName;}publicvoidsetStuNameStringstuName{this.stuName=stuName;}publicStringgetStu___{returnstu___;}publicvoidsetStu___Stringstu___{this.stu___=stu___;}publicStringgetStuPwd{returnstuPwd;}publicvoidsetStuPwdStringstuPwd{this.stuPwd=stuPwd;}//根据学号返回记录集,如果没有学号,则返回所有记录publicResultSetLoadData{Stringsql=select*fromstu;DataBsedb=newDataBse;returndb.getResultSetsql;}publicResultSetLoadDataStringstuID{Stringsql=;//sql=select*fromstuwherestuIDlike%+stuID+%;sql=select*fromstuwherestuID=+stuID+;DataBsedb=newDataBse;returndb.getResultSetsql;}//设置表格模型publicDefaultTableModeltableModelStringstuID{Vectorrowdatacolnames;DefaultTableModeldtm=null;//设置列名colnames=newVector;colnames.add学号;colnames.add姓名;colnames.add性别;rowdata=newVector;ResultSetrs=LoadDatastuID;try{whilers.next{Vectorrow=newVector;row.addrs.getString1;row.addrs.getString2;row.addrs.getString3;rowdata.addrow;}}catchSQLEx__ptione{//TODOAuto-generatedcatchblocke.printStackTra__;}dtm=newDefaultTableModelrowdatacolnames;returndtm;}//更新数据publicStringUpdate{DataBsedb=newDataBse;Stringsql=UpdatestusetstuName=+this.stuName+stu___=+this.stu___+wherestuID=+this.stuID+;ifdb.ExecuteSQLsql0return数据更新成功!;else{return数据更新失败!;}}//插入数据publicStringInsert{DataBsedb=newDataBse;Stringsql=insertintostuvalues+this.stuID++this.stuName++this.stu___++this.stuPwd+;ifdb.ExecuteSQLsql0return数据插入成功!;else{return数据插入失败!;}}//删除publicStringDelete{DataBsedb=newDataBse;Stringsql=deletefromstuwherestuID=+this.stuID+;ifdb.ExecuteSQLsql0return删除成功!;else{return删除失败;}}publicvoidClose{DataBsedb=newDataBse;db.Close;}}/*studentmodify.j__a*/packagestudent__nage;publicclassStudentModifyextendsJFrame{JButtonjbPre=newJButton;JButtonjbNext=newJButton;JButtonjbFirst=newJButton|;JButtonjbLast=newJButton|;JButtonjbAdd=newJButton添加;JButtonjbUpdate=newJButton更新;JButtonjbDelete=newJButton删除;JButtonjbClose=newJButton关闭;JLabeljlstuID=newJLabel学号;JLabeljlstuName=newJLabel姓名;JLabeljlstu___=newJLabel性别;JTextFieldj___stuID=newJTextField10;JTextFieldj___stuName=newJTextField10;JTextFieldj___stu___=newJTextField10;booleanisInsert;ResultSetrs=null;Studentstudent=newStudent;//构造方法publicStudentModify{JPaneljp1jp2jp3jp4;this.setLayoutnewGridLayout41;jp1=newJPanel;jp
1.addjlstuID;jp
1.addj___stuID;j___stuID.setEditablefalse;jp2=newJPanel;jp
2.addjlstuName;jp
2.addj___stuName;jp3=newJPanel;jp
3.addjlstu___;jp
3.addj___stu___;jp4=newJPanel;jp
4.addjbFirst;jp
4.addjbPre;jp
4.addjbNext;jp
4.addjbLast;jp
4.addjbAdd;jp
4.addjbUpdate;jp
4.addjbDelete;jp
4.addjbClose;this.addjp1;this.addjp2;this.addjp3;this.addjp4;this.setBounds100100500200;this.setVisibletrue;this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;rs=student.LoadData;try{ifrs.next{showData;}}catchSQLEx__ptione{//TODOAuto-generatedcatchblocke.printStackTra__;}//前一条记录jbPre.addActionListenernewActionListener{@OverridepublicvoidactionPerformedActionEventarg0{try{ifrs.isFirst{JOptionPane.showMessageDialognull已经是第一条记录!;}else{rs.previous;showData;}}catchSQLEx__ptione{//TODOAuto-generatedcatchblocke.printStackTra__;}}};//后一条记录jbNext.addActionListenernewActionListener{@OverridepublicvoidactionPerformedActionEventarg0{try{ifrs.isLast{JOptionPane.showMessageDialognull已经是最后一条记录;}else{rs.next;showData;}}catchSQLEx__ptione{//TODOAuto-generatedcatchblocke.printStackTra__;}}};//第一条记录jbFirst.addActionListenernewActionListener{@OverridepublicvoidactionPerformedActionEvente{try{ifrs.first{showData;}}catchSQLEx__ptione1{//TODOAuto-generatedcatchblocke
1.printStackTra__;}}};//最后一条jbLast.addActionListenernewActionListener{@OverridepublicvoidactionPerformedActionEvente{try{ifrs.last{showData;}}catchEx__ptione2{//TODO:handleex__ption}}};//更新数据jbUpdate.addActionListenernewActionListener{@OverridepublicvoidactionPerformedActionEventarg0{j___stuID.setEditablefalse;student.setStuIDj___stuID.getText;student.setStuNamej___stuName.getText;student.setStu___j___stu___.getText;student.setStuPwd123456;Strings=null;ifisInsert{ResultSetrs1=student.LoadDatastudent.getStuID;try{ifrs
1.next{JOptionPane.showMessageDialognull学号已经存在,请重新输入!;j___stuID.setEditabletrue;j___stuID.setText;j___stuName.setText;j___stu___.setText;j___stuID.requestFocus;return;}else{s=student.Insert;isInsert=false;rs=student.LoadData;JOptionPane.showMessageDialognulls;try{rs
1.last;}catchSQLEx__ptione{//TODOAuto-generatedcatchblocke.printStackTra__;}}}catchEx__ptione{//TODOAuto-generatedcatchblocke.printStackTra__;}}else{s=student.Update;JOptionPane.showMessageDialognulls;rs=student.LoadData;try{rs.absoluters.getRow;}catchSQLEx__ptione{//TODOAuto-generatedcatchblocke.printStackTra__;}}}};//插入数据jbAdd.addActionListenernewActionListener{@OverridepublicvoidactionPerformedActionEventarg0{j___stuID.setEditabletrue;j___stuID.setText;j___stuName.setText;j___stu___.setText;j___stuID.requestFocus;isInsert=true;}};//删除jbDelete.addActionListenernewActionListener{@OverridepublicvoidactionPerformedActionEventarg0{student.setStuIDj___stuID.getText;JOptionPane.showMessageDialognullstudent.Delete;try{ifrs.isLastrs.first;else{rs.next;}}catchSQLEx__ptione{//TODOAuto-generatedcatchblocke.printStackTra__;}showData;rs=student.LoadData;}};//关闭jbClose.addActionListenernewActionListener{@OverridepublicvoidactionPerformedActionEventarg0{student.Close;System.exit0;}};}//显示记录集中的数据publicvoidshowData{try{j___stuID.setTextrs.getString1;j___stuName.setTextrs.getString2;j___stu___.setTextrs.getString3;}catchSQLEx__ptione{//TODOAuto-generatedcatchblocke.printStackTra__;}}publicstaticvoid__inString[]args{newStudentModify;}}Login界面Modify界面。