实验五:输入输出练习正式讲义.doc

深 圳 大 学 实 验 报 告 课程名称: JAVA程序设计 实验名称: 实验五:输入输出练习 班 级: 微电一班 姓 名: 肖晓彤 同 组 人: 实验日期: 2016 年 6 月 12 日 教师签字: 一、实验目的 本次实验基于之前的实验结果(GUI实验),在此基础上我们再进行改进提升,达到融会贯通掌握java文件输入输出的目的。 二、实验内容 请同学们打开GUI实验的内容,阅读自己完成的代码,不完善的地方自己做补充, 现在进行如下的设计修改: 保持前面的要求不变,此时我们保存学生记录的载体不再是ArrayList,而是磁盘文件,比如可以是student.dat,此时,原来的数据结构可以不变,用来作为中间保存的结构,当定义好自己的文件后,把数据写入磁盘文件来进行读写,可利用ObjectInputStream/ObjectOutputStream两个类完成学生记录的整体输入输出。利用此类,需要实现对象序列化接口Serializable,该接口只是给出抽象的名,没有要实现的方法!如果实现了该接口,则对象可作为整体一次性输入、输出,比如学生对象,此时不需要按姓名、性别、成绩等分项输入、输出,可以把学生对象作为一个整体一次性写入文件或读出!本次实验可能算法上不需做大的修改,整体显示界面不变,主要是数据的读取或输出与原来不同,显示结果需要给出你的文件的内容的截图!!! 按照我所给的实验报告格式,认真完成各项要求并在指定的时间内提交你的报告(注意,只需提交word格式文档一份,千万不要压缩,增加打开工作量!!!),请各位注意提交时间,过了截止时间,如果补交,成绩会相应进行打折!!! 三、程序代码 由于本次代码是在实验四的代码基础上增加一些代码,所以GUI部分不再赘述。 (1) 如上图所示,首先是让学生类实现Serializable接口,使学生对象可序列化。 (2)要用到的中间保存的数据结构 ①在主类的类体中定义一个学生集合类Jstudent,作为主类的一个成员变量: protected ArrayListStudent Jstudent=new ArrayListStudent(); 此学生类集合是暂时保存用户添加的学生类,并将学生类一个个地写进文件student.txt里,在删除的时候也会同时更新此学生类集合。 ②定义在删除相关组件的的实现监听器的接口里的学生类集合deleteJstudent: 具体实现是从文件中一个个读取学生类到这个集合类,并在此集合类中找到要删除的学生,进行移除后,再把更新后的学生类集合deleteJstudent中的学生类一个个写进文件里。 ③定义在寻找的相关组件的实现监听器接口的类里面: 具体实现是从文件中一个个读取学生类到这个集合类findJstudent中,并在此集合类中进行查找,找到后输出学生相关信息。 (3)具体地对文件的相关操作的代码实现: ①添加学生 class addAction implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub Object o=e.getSource(); int i; if(addSubmit==o) { if(addname.getText().length()==0||addgender.getText().length()==0||addmajor.getText().length()==0||addschool.getText().length()==0||addpolitic.getText().length()==0||addmath.getText().length()==0||addenglish.getText().length()==0||addmajorGrade.getText().length()==0) JOptionPane.showMessageDialog(mainGUI, 还有信息没填!!); else { Student s=new Student(addname.getText(),addgend

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档