finaljava实验报告.docx
- 文档编号:14249456
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:26
- 大小:58.96KB
finaljava实验报告.docx
《finaljava实验报告.docx》由会员分享,可在线阅读,更多相关《finaljava实验报告.docx(26页珍藏版)》请在冰点文库上搜索。
finaljava实验报告
学生学号
0121010680225
实验课成绩
武汉理工大学
学生实验报告书
实验课程名称java语言与程序设计
开课学院计算机科学与技术学院
指导老师姓名祁明龙
学生姓名姬琪
学生专业班级软件工程SY1001
2012—2013学年第一学期
实验课程名称:
java语言程序设计
实验项目名称
文件输入、输出流,类继承及接口
实验成绩
实验者
姬琪
专业班级
软件工程SY1001
组别
同组者
实验日期
年月日
第一部分:
实验分析与设计(可加页)
一、实验内容描述(问题域描述)
实验目的:
继承是面向对象程序设计方法中的一种重要手段,通过继承可以更有效的组织程序结构,明确类间关系,并充分利用已有的类来完成更复杂、深入的开发。
多态则可以提高类的抽象度和封闭性,同意一个或多个相关类对外的接口。
实验内容:
✧
(1)把下列数据写到一个名为c:
\myfile.data的文件中。
姓名
年龄
电子邮件
Zhangsan
20
Zhang-San@
LiSi
18
Li_Si@
WangErMazi
21
Wang_er_mazi@
LiuBang
240
Liu-Bang@
;
二、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等)
利用java.io.FileOutputStream和java.io.DataOutputStream直接把表中的数据写到文件中
方法2:
编写一个表示每行数据的JavaBean,例如Person,然后再使用对象数组
方法3:
同方法2,但是使用数据结构java.util.Vector
把myfile.data数据文件拷到C盘(因为里面有一些初始数据)。
在C盘下创建文件夹:
C:
\wk\javacourse。
把源代码文件StudentManagmentSystem.java拷到该文件夹之下,并编译、解释执行。
三、主要实验工具、仪器设备及耗材
个人计算机,Eclipse
四、实验代码
(StudentManagmentSystem.java)
packagejavacourse;
importjava.awt.*;
importjava.awt.event.*;
importjava.util.*;
importjava.io.*;
publicclassStudentInfoManagment
extendsWindowAdapterimplementsActionListener
{
FramemainWindow;
MenuBarmb;
Menumenu;
MenuItem[]actions;
Dialogd1,d2;
Fontfont;java.awt.List[]lists;Label[]titles;
/***Controlsforinputingstudent'sinfo***/
Label[]d1Labs;
TextField[]d1TFs;
Button[]d1Btns;
Checkbox[]d1CBs;
CheckboxGroupd1Grp;
Buttond1Quit;
/***Someconstantstrings***/
finalString[]messages=
{
"Inputstudent'info","Displayallstudents'infos","Savedataintothefile","Loadinfofromthefile",
};
/***Hashtabletohandlestudents'infos***/
Hashtable
{
"NAME","PHONE","EMAIL"};
finalintNumberFunctionalities=4;publicStudentInfoManagment(){
//TODOAuto-generatedconstructorstub
}
publicvoidguiSetup()
{
mainWindow=
newFrame("AStudentInformationSystem");mainWindow.setSize(600,400);mainWindow.setLocation(100,100);
font=newFont("TimesNewRoman",Font.ITALIC,18);mainWindow.setFont(font);
mb=newMenuBar();
menu=newMenu("Functionalities");
actions=newMenuItem[NumberFunctionalities];for(inti=0;i { actions[i]=newMenuItem(messages[i]);menu.add(actions[i]);actions[i].addActionListener(this); } mb.add(menu); mainWindow.setLayout(newGridLayout(1,4));titles=newLabel[4]; lists=newjava.awt.List[4];for(inti=0;i<4;i++) {titles[i]=newLabel();lists[i]=newjava.awt.List(); } titles[0].setText("NAME");titles[1].setText("PHONE");titles[2].setText("EMAIL");titles[3].setText("SEX");for(inti=0;i<4;i++) mainWindow.add(lists[i]); mainWindow.setMenuBar(mb);mainWindow.addWindowListener(this);/***Dialog01setup***/ d1=newDialog(mainWindow,messages[0],false);d1.setBounds(100,100,400,200); d1Labs=newLabel[3];d1TFs=newTextField[3];for(inti=0;i<3;i++) { d1Labs[i]=newLabel(d1Str[i]);d1TFs[i]=newTextField(20); } d1CBs=newCheckbox[2];d1Grp=newCheckboxGroup(); d1CBs[0]=newCheckbox("Male",d1Grp,true);d1CBs[1]=newCheckbox("Female",d1Grp,false);d1Btns=newButton[2]; d1Btns[0]=newButton("SUBMIT");d1Btns[1]=newButton("RESET");d1Quit=newButton("QUIT");d1Btns[0].addActionListener(this);d1Btns[1].addActionListener(this);d1Quit.addActionListener(this);d1.setLayout(newGridLayout(6,2));for(inti=0;i<3;i++) { d1.add(d1Labs[i]); d1.add(d1TFs[i]); } d1.add(d1CBs[0]); d1.add(d1CBs[1]); d1.add(d1Btns[0]); d1.add(d1Btns[1]); d1.add(d1Quit);mainWindow.setVisible(true); } publicvoidactionPerformed(ActionEvente) { Objecto=e.getSource();if(o==actions[0]) { d1.setVisible(true); } elseif(o==d1Btns[0]) { Stringname,phone,email;booleanisFemale; name=d1TFs[0].getText();phone=d1TFs[1].getText();email=d1TFs[2].getText();isFemale=d1CBs[1].getState();STUDENTaStudent=new STUDENT(name,phone,email,isFemale);students.put(name,aStudent); } elseif(o==d1Btns[1]) { for(inti=0;i<3;i++)d1TFs[i].setText(""); } elseif(o==d1Quit) { d1.dispose(); } elseif(o==actions[1]) { for(inti=0;i<4;i++) lists[i].removeAll(); Enumeration StringBufferbuf=newStringBuffer(); StringsexStr;while(enu.hasMoreElements()) { STUDENTstu=enu.nextElement(); if(stu.isFemale)sexStr="Female";elsesexStr="Male";lists[0].add(stu.getName());lists[1].add(stu.getPhone());lists[2].add(stu.getEmail());lists[3].add(sexStr); } } elseif(o==actions[2]) { try{ Filefile=newFile("C: \\myfile.data");FileOutputStreamfos= newFileOutputStream(file); ObjectOutputStreamoos=newObjectOutputStream(fos);oos.writeObject(students); fos.close(); oos.close();}catch(Exceptionex) { ex.printStackTrace(); } } elseif(o==actions[3]) { try{ Filefile=newFile("C: \\myfile.data");FileInputStreamfis= newFileInputStream(file); ObjectInputStreamois=newObjectInputStream(fis);Hashtabletemp=(Hashtable)ois.readObject();Enumeration { STUDENTstu=enu.nextElement();students.put(stu.getName(),stu); } fis.close(); ois.close();}catch(Exceptionex) { ex.printStackTrace(); } } } publicvoidwindowClosing(WindowEvente) { System.exit(0); } /** *@paramargs*/ publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub newStudentInfoManagment().guiSetup(); } } classSTUDENTimplementsSerializable { privateStringname,phone,email;booleanisFemale; publicStringgetName(){returnname; } publicvoidsetName(Stringname){this.name=name; } publicStringgetPhone(){returnphone; } publicvoidsetPhone(Stringphone){this.phone=phone; } publicStringgetEmail(){returnemail; } publicvoidsetEmail(Stringemail){this.email=email; } publicbooleanisFemale(){returnisFemale; } publicvoidsetFemale(booleanisFemale){this.isFemale=isFemale; } publicSTUDENT(Stringname,Stringphone,Stringemail,booleanisFemale){ super();this.name=name; this.phone=phone;this.email=email;this.isFemale=isFemale; } publicSTUDENT(){super(); //TODOAuto-generatedconstructorstub } } 第二部分: 实验结果分析(可加页) 一、实验结果描述 二.实验小结、建议及体会 经过这次实验,我对java语言有了初步认识,对如何使用java编程有了初步了解,并且尝试编出一个简单的小程序,这对我有很大的帮助,为我以后的java学习打下了基础。 实验课程名称: java语言程序设计 实验项目名称 接口的定义以及流的输入输出 实验成绩 实验者 姬琪 专业班级 软件工程SY1001 组别 同组者 实验日期 年月日 第一部分: 实验分析与设计(可加页) 一.实验内容描述(问题域描述) : 熟悉Java的各种类型、掌握java的变量定义及表达式的运算等。 实验内容: 接口之一定义四则运算的加减法,接口之二定义四则运算的乘除运算。 类一有一个打印一个字符串和一个整数的成员方法,要求打印的数据通过形式参数导入。 类二继承类一并实现接口一和接口二,且含有用于计算20和30四则运算并打印计算结果的主函数。 利用核准输入流输入一元二次方程的三个系数,并解该方程。 二、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等) 第一题: 接口一: packagejavacourse; publicinterfaceInterface01{ publicintadd(inta,intb); publicintsub(inta,intb); } 接口二: packagejavacourse; publicinterfaceInterace02{ publicintprod(inta,intb); publicintdiv(inta,intb); } 父类: packagejavacourse; publicclassFatherClass{ publicstaticvoidprint(Stringstr,inta) { System.out.println(str+": "+a); } } 子类: packagejavacourse; publicclassAChildClass extendsFatherClass implementsInterface01,Interace02 { publicAChildClass(){ //TODOAuto-generatedconstructorstub } @Override publicintprod(inta,intb){ //TODOAuto-generatedmethodstub return(a*b); } @Override publicintdiv(inta,intb) { //TODOAuto-generatedmethodstub try{ return(a/b); }catch(Exceptionex) { System.out.println("a/bwithb=0"); return-999; } } @Override publicintadd(inta,intb){ //TODOAuto-generatedmethodstub return(a+b); } @Override publicintsub(inta,intb){ //TODOAuto-generatedmethodstub return(a-b); } /** *@paramargs */ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub AChildClasscc=newAChildClass(); print("30+20",cc.add(20,30)); print("30-20",cc.sub(30,20)); print("30*20",cc.prod(30,20)); print("30/20",cc.div(30,20)); } } 第二题参考代码: packagejavacourse; importjava.io.*; publicclassROOT{ privatedoublea,b,c,x1,x2; privatebooleanhaRealRoots; publicROOT(){ super(); //TODOAuto-generatedconstructorstub } publicROOT(doublea,doubleb,doublec){ super(); this.a=a; this.b=b; this.c=c; } publicdoublegetX1(){ returnx1; } publicdoublegetX2(){ returnx2; } publicbooleanisHaRealRoots(){ returnhaRealRoots; } publicvoidpstr(Stringstr) { System.out.println(str); } publicstaticvoidprint(Stringstr,doublea) { System.out.println(str+a); } publicvoidcalRoots() throwsIOException,NumberFormatException { byte[]arrA,arrB,arrC; StringstrA,strB,strC; doubledelta; arrA=newbyte[80]; arrB=newbyte[80]; arrC=newbyte[80]; pstr("Inputcoefficienta: "); System.in.read(arrA); pstr("Inputcoefficientb: "); System.in.read(arrB); pstr("Inputcoefficientc: "); System.in.read(arrC); strA=newString(arrA); strB=newString(arrB); strC=newString(arrC); a=Double.parseDouble(strA); b=Double.parseDouble(strB); c=Double.parseDouble(strC); delta=b*b-4*a*c; if(delta<0) this.haRealRoots=false; else { this.haRealRoots=true; x1=(-b+Math.sqrt(delta))/(2*a); x2=(-b-Math.sqrt(delta))/(2*a); } } /** *@paramargs */ publicstaticvoidmain(String[]args) throwsException { //TODOAuto-generatedmethodstub ROOTrt=newROOT(); rt.calRoots(); if(rt.isHaRealRoots()) { print("x1=",rt.getX1()); print("x2=",rt.getX2()); } else { rt.pstr("Don'texistrealroots"); } } } 三、主要实验工具、仪器设备及耗材 个人计算机,Eclipse
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- finaljava 实验 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)