JAVA论文

上传人:jiups****uk12 文档编号:40015913 上传时间:2018-05-22 格式:DOC 页数:18 大小:151KB
返回 下载 相关 举报
JAVA论文_第1页
第1页 / 共18页
JAVA论文_第2页
第2页 / 共18页
JAVA论文_第3页
第3页 / 共18页
JAVA论文_第4页
第4页 / 共18页
JAVA论文_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《JAVA论文》由会员分享,可在线阅读,更多相关《JAVA论文(18页珍藏版)》请在金锄头文库上搜索。

1、计算机科学与技术学院计算机科学与技术学院JAVAJAVA 程序设计程序设计学生姓名:学生姓名:张晓源张晓源 学号:学号:E10714058 学生姓名:学生姓名:马马 永永 学号:学号:E10714142班班 级:级:07 计算机科技二班计算机科技二班指导老师:指导老师:段段 震震2010 年年 1 月月 1 日日安徽大学 Java 设计论文21 程序整体思想程序整体思想我们为桃园宿舍楼开发一个程序,模拟安全的无钥进入系统。在宿舍楼的入口大厅处,有一个进入系统,宿舍楼内的各位同学必须输入他们的姓名,房间号和密码。当输入的数据有效时,系统将打开进入宿舍楼内容房间的门。实现这个程序需要两个类:Doo

2、r 和 Dorm。Door 类模拟开门;Dorm 类管理宿舍楼住客的信息。Dorm 类的一个实例可以增加和删除住客信息,可以从文件中读出同学信息,可以将住客信息写入文件,也可以根据姓名检索住客的信息。我们可以将输入的数据与 Dorm 对象中的信息进行对比来验证输入数据的有效性。2 程程 序序 设设 计计1. 问题陈述编写进入程序,要求输入三个信息:姓名,房间号和密码。密码由长度为 48 个字符的任意字符串组成,而且每个住客拥有各自唯一的密码。如果以上三个信息都匹配,系统解锁开门。假设系统中不存在同名的住客。2. 总体计划为了实现完整的系统,我们编写两个单独的程序。一个是用来增加,删除和修改住客

3、信息的管理模块;另一个是用来与住客交互的用户模块。我们通过三个主要步骤来实现程序:1)定义 Resident 类(住客) ,Dorm 类(宿舍)2)定义用户接口 InputHandler 类,最后的控制类 EntranceMonitor 类4)将各个部分组合一起,完成数据字典:以下为用 windows visio 绘制的程序图安徽大学 Java 设计论文3InputHandlerEntranceMonitorDoorResidentDormResident 类类:维护宿舍楼中每位住客的信息方法:方法:public Resident()默认的构造方法public Resident(String

4、name,String room,String password)throws IllegalArgumentException通过传递的值创建一个 Resident 对象。当所给的密码长度小于 4 个字符或者大于8 个字符时抛出异常public void setName(String name)给 name 赋值Public void setPassword(String id)throws IllegalArgumentException给 password 赋值。当密码小于 4 个字符或者大于 8 个字符时抛出异常安徽大学 Java 设计论文4Public void setRoom(St

5、ring room)给 room 赋值Public String getname()返回 name 的值Public String getpassword()返回 password 的值Public String getRoom()返回 room 号Dorm 类:类:管理多个 Resident 对象。它允许客户增加,删除或者检索 Resident 对象。此外,他还可以将多个 Resident 对象保存到文件中,或者从文件中读取多个 Resident对象。方法:方法:public Dorm()默认的构造的方法,可以创建一个 Dorm 对象Public Dorm(String filename)从

6、名为 filename 的文件中读出住客列表创建一 Dorm 对象Public void openFile(String filename)从指定的文件读出住客列表。找不到指定文件时抛出 FileNotFoundException 异常Public void savefile(String filename)将住客列表保存到指定的文件中。当文件不能保存时抛出 IOException 异常Public void add(Resident resident)将 resident 对象加入到列表中Public void delete(String name)从列表中删除指定的住客。如果列表中不存在该

7、住客,则什么都不发生Public Resident getResident(String name)返回具有给定名字的 Resident 对象。如果没有发现匹配的 Resident 对象,则返回nullPublic string getResidentList()返回 String 形式的住客列表,每个住客后面都使用行分隔符。列表中包括姓名,房间号和密码Door 类:类:模拟开门安徽大学 Java 设计论文5方法:方法:public Door()Public void open()显示一个简单的消息对话框EntranceMonitor 类:类:程序的主类(进入控制器)InputHandler

8、类:类:处理输入例程的用户接口类类 作 用 EntranceMonitor程序中管理其他对象的最高层控制对象,一个实例化的主类Door模拟开门的类Dorm维护 Resident 对象列表的类InputHandler处理输入的用户接口类JOptionPane显示消息的类3. 开发步骤我们使用的是在软件工程学到的增量开发技术。增量开发技术。此技术将用小的增量步骤开发程序。首先开发一个骨架程序,之后通过增加越来越多的代码逐渐建立程序。在每个增量步骤中,在转移到下一步之前,我们都要设计,编码,测试。这种有条理的程序开发使我们在每一步都将注意力集中到单一任务上,从而减少了错误的机会。步骤 1:程序框架实

9、现 Resident 类,并与 Dorm 类的实例进行正确的交互,为了验证Dorm 类的主要操作,最高层操作对象 EntranceMonitor 将打开一个文件,并将文件的内容列出来。下面是 Resident 类:import java.io.*;class Resident implements Serializable 安徽大学 Java 设计论文6private String name;private String room;private String password;public Resident( ) this(“unassigned“, “000“, “13public Res

10、ident(String name, String room, String pwd)throws IllegalArgumentException setName(name);setRoom(room);setPassword(pwd);public String getName( ) return name;public String getPassword( ) return password;public String getRoom( ) return room;public void setName(String name) this.name = name;public void

11、 setPassword(String pwd) int length = pwd.length();if (length 8) throw new IllegalArgumentException();安徽大学 Java 设计论文7 else this.password = pwd;public void setRoom(String room) this.room = room;主类定义如下:import javax.swing.*;import java.io.*;class EntranceMonitor private Dorm manager;public EntranceMoni

12、tor( ) manager = new Dorm();public static void main(String args) EntranceMonitor sentry = new EntranceMonitor();sentry.start();public void start( ) openFile( );String roster = manager.getResidentList();System.out.println(roster);private void openFile( ) String filename;安徽大学 Java 设计论文8while (true) fi

13、lename = JOptionPane.showInputDialog(null,“File to open:“);if (filename = null) /input dialog was canceledSystem.exit(0);try manager.openFile(filename);return; catch (FileNotFoundException e) JOptionPane.showMessageDialog(null,“No such file“); catch (IOException e) JOptionPane.showMessageDialog(null

14、,“Error in reading file“);测试:第一步测试的目的是验证打开一个文件并获得文件的具体内容时,是否正确使用了 Dorm 类。测试这个功能,需要一个包含住客信息的文件。执行下面程序创建一个示例测试文件,可以修改这个文件来创建其他的测试数据文件。import javax.swing.*;import java.io.*;class CreateResidentFile public static void main(String args)throws IOException Resident res;Dorm manager = new Dorm( );res = new

15、Resident(“zhang“, “2206“, “1234“);安徽大学 Java 设计论文9manager.add(res);res = new Resident(“xiao“, “2207“, “2345“);manager.add(res);res = new Resident(“yuan“, “2208“, “3456“);manager.add(res);res = new Resident(“mayong“, “2204“, “4567“);manager.add(res);String filename = JOptionPane.showInputDialog(null,“

16、Save to which file:“);manager.saveFile(filename);System.exit(0); 步骤 2:创建用户接口实现用户接口类 InputHandler,这个接口的作用是获取三个信息。主控制类EntranceMonitor 将调用 InputHandler 对象来获得输入的数据。然后,InputHandler 对象将使用 JOptionPane 按照一定顺序来获得三个数据。输入数据之后,EntranceMonitor 类将从 InputHandler 对象获得这些数据。InputHandler 类的 getInput 方法调用 JOptionPane 三次,分别取得姓名,房间号和密码,每一次输入的数据都保存到相应的数据成员中,通过访问方法,如 getnam

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号