Java实验报告房屋销售管理信息系统的设计与实现Word格式.docx
《Java实验报告房屋销售管理信息系统的设计与实现Word格式.docx》由会员分享,可在线阅读,更多相关《Java实验报告房屋销售管理信息系统的设计与实现Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
1.Java用户界面概述
图形用户界面(GraphicsUserInterface,缩写GUI)是指以图形的显示方式与用户实现交互操作的应用程序界面,设计具有GUI特征的应用程序被称为GUI应用程序设计。
Java提供了十分完善的图形用户界面功能,使得软件开发人员可以轻松地开发出功能强大、界面友善、安全可靠的应用程序,充分体现了Java语言的时代感与面向对象程序设计的优越性。
在Java语言中,为GUI应用程序设计提供了强大的功能,其相关的类主要封装在两包(java.awt和javax.swing)中,其中包含了实现图形用户界面的所有基本元素,这些基本元素主要包括容器、组件、绘图工具与布局管理器等。
组件是与用户实现交互操作的部件,容器是包容组件的部件,布局管理器是管理组件在容器中布局的部件,绘图工具是绘制图形的部件。
Java.awt是javal.l用来建立GUI的图形包,这里的“awt”是抽象窗口工具包。
JAVA设计用户界面需要以下四个基本步骤:
(1)创建和设置组件;
(2)将组件加入到容器中;
(3)布局组件;
(4)处理有组件产生的事件。
当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。
计算机的最大好处在于利用它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。
管理信息系统是进行信息的采集、存储、加工、维护和使用的系统,它是随着管理科学和技术科学的发展而形成的。
在学习的Java语言后,我使用Java语言编写了一个简单的房屋销售管理信息系统,可以实现简单的录入、查询、修改、删除和显示信息的功能。
1系统分析与设计
1.1系统目标
该程序是一个图形界面的简单的房屋销售管理信息系统,其实现的功能主要有:
(1)录入房屋基本信息,信息包括有:
房屋号、销售者姓名、中介职工姓名、房屋销售价格;
(2)查询房屋基本信息;
(3)修改房屋基本信息;
(4)删除房屋基本信息;
(5)显示房屋基本信息:
计算超过200万的房屋总数,并输出这些房屋的详细信息。
房屋销售管理信息系统功能总框图:
1.2系统模块分析
1.欢迎语主模块
欢迎语主模块是本系统的主要窗口,在菜单条里有一个菜单,其子菜单有6个菜单项,包括有录入房屋信息、查询房屋信息、修改房屋信息、删除房屋信息、显示房屋信息、退出系统。
2.录入房屋信息模块
录入房屋信息界面包括:
房屋号、售房者姓名、中介职工姓名、房屋销售价格四个文本框,和“录入”、“重置”两个按钮,实现对房屋信息的录入。
输入完信息之后,点击录入,会显示确认框,确认基本信息是否将要被录入。
3.查询房屋信息模块
查询房屋信息窗口是一个独立窗口,显示在主窗口上面。
查询方式是:
在“输入要查询的房屋号:
”的文本框内输入房屋号,然后点击“查询”按钮,然后就会在售房者姓名、中介职工姓名、房屋销售价格三个文本框内显示出所要查询的信息。
4.修改房屋信息模块
修改房屋信息界面包括输入要修改的编号、(新)售房者姓名、(新)中介职工姓名和(新)房屋销售价格四个文本框,和“开始修改”、“录入修改”和“重置”三个按钮。
当输入要修改的编号后,点击按钮“开始修改”则会显示出要修改的房屋的基本信息,当你重新输入新信息之后,点击“录入修改”按钮会弹出确认录入修改的确认窗口。
5.显示房屋信息模块
显示房屋信息界面会显示出价格超过200万的房屋总数和这些房屋的基本信息。
6.删除房屋信息模块
删除房屋信息界面和查询房屋信息界面基本一致,删除式是:
在“输入要删除的房屋号:
”的文本框内输入房屋号,然后点击“删除”按钮,然后就会在售房者姓名、中介职工姓名、房屋销售价格三个文本框内显示出所要删除的房屋基本信息,并一并弹出确认删除的窗口。
各模块之间的调用关系如下:
欢迎语主模块录入房屋信息模块查询房屋信息模块修改房屋信息模块删除房屋信息模块
显示房屋信息模块
1.3总体设计
首先将录入信息、查询信息、修改信息、删除信息和显示信息五个功能分别为五个类来实现,每一个累都继承了主窗口类JFRAME,使得窗口可以独自运行。
主界面设计
功能组件:
6个菜单项、1个面板
功能实现:
录入信息、查询信息、删除信息、修改信息、显示信息
实现过程:
对菜单项添加监控,共有6个监控事件,实现菜单项事件为创建对应功能的类对象,实现相应的功能窗口。
1.4类的设计
本程序设计了5个类,分别是录入类、修改类、查询类、删除类和存放房屋信息的对象类。
各类的主要作用如下:
1.HouseManager.java
该文件的类负责创建房屋销售管理信息系统的主窗口,该类包含main方法,程序从该类考试执行。
2.ModifySituation
该类的文件负责创建房屋销售管理信息系统的修改界面。
3.Delete
该类的文件负责创建房屋销售管理信息系统的删除界面。
4.House
该类的文件负责创建房屋销售管理信息系统的存放房屋信息的对象。
5.HouseSituation
该类的文件负责创建房屋销售管理信息系统的录入界面。
6.Inquest
该类的文件负责创建房屋销售管理信息系统的查询界面。
1.5系统知识点
在程序中需要使用的包:
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
importjava.util.Hashtable;
importjava.util.Iterator;
importjava.awt.event.KeyEvent;
外层窗口类:
JFrame类是Java类库提供的顶层窗口类,定义了其子类的时候根据需要给予相应的设置或者重新定义,在外层窗口类中可以设置窗口的大小setSize(x,x);
窗口是否可见setVisible();
窗口是否可以调节setResizable(x);
设置窗口标题栏显示的内容setTitle();
设置在桌面上显示的位置setLocation(x,y)。
面板容器类:
JLable显示结果标签;
Jpanel面板容器用来放置一些组件;
CardLayout()创建CardLayout对象作为布局;
创建按钮Button并使用add()方法加入面板中并为其注册监视器;
ActionListener监视类接口,当单机按钮或者功能键后,系统将调用下面的两个成员方法:
InsertAction内部类,其中定义了成员方法actionPerformed(ActionEvent)进行监视,实现拼接信息功能;
CommandAction内部类,其中定义了成员方法actionPerformed(ActionEvent))监视一些功能按钮,实现显示信息的功能;
组件类:
JTextField创建文本框,允许用户在文本框中输入单行文本;
JTextArea创建文本区,允许用户在文本区中输入多行文本;
Jbutton创建按钮,允许用户单击按钮;
Jlabel创建标签,标签为用户提供提示信息;
简要的设计流程
2系统实现
2.1主窗口功能实现(附上主要代码)
//HouseManager.java创建主窗口
publicclassHouseManagerextendsJFrameimplementsActionListener
publicHouseManager()//HouseManager的构造函数
fileMenu.addSeparator();
//在菜单之间增加分隔线
card=newCardLayout();
//创建布局
con=getContentPane();
//创建容器
pCenter=newJPanel();
pCenter.setLayout(card);
//为容器添加面板
file=newFile("
房屋基本信息.txt"
);
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==录入){
card.show(pCenter,"
录入界面"
}
elseif(e.getSource()==修改){
修改界面"
elseif(e.getSource()==查询){
//"
基本信息查询"
窗口设置为独立窗口,以便于用户进行查询。
房屋信息查询.setVisible(true);
elseif(e.getSource()==删除){
删除界面"
}
elseif(e.getSource()==退出){
System.exit(0);
}
2.2录入功能的实现(附上最要代码)
//HouseSituation.java
publicclassHouseSituationextendsJPanelimplementsActionListener
publicHouseSituation(Filefile)
JPanelpCenter=newJPanel();
pCenter.add(boxH);
setLayout(newBorderLayout());
add(pCenter,BorderLayout.CENTER);
JPanelpSouth=newJPanel();
pSouth.add(录入);
pSouth.add(重置);
add(pSouth,BorderLayout.SOUTH);
validate();
publicvoidactionPerformed(ActionEvente)
try{
inOne=newFileInputStream(file);
inTwo=newObjectInputStream(inOne);
房屋信息表=(Hashtable)inTwo.readObject();
inOne.close();
inTwo.close();
catch(Exceptionee)
{
if(房屋信息表.containsKey(number))
Stringwarning="
该教师基本信息已存在,请到修改界面修改!
"
;
JOptionPane.showMessageDialog(this,warning,"
警告"
JOptionPane.INFORMATION_MESSAGE);
if(ok==JOptionPane.YES_OPTION)
Stringname1=售房者姓名.getText();
Stringname2=中介职工姓名.getText();
Stringmoney=房屋销售价格.getText();
房屋=newHouse();
房屋.setNumber(number);
房屋.setName1(name1);
房屋.setName2(name2);
房屋.setMoney(money);
outOne=newFileOutputStream(file);
outTwo=newObjectOutputStream(outOne);
房屋信息表.put(number,房屋);
outTwo.writeObject(房屋信息表);
outTwo.close();
outOne.close();
房屋号.setText(null);
售房者姓名.setText(null);
中介职工姓名.setText(null);
房屋销售价格.setText(null);
System.out.println(ee);
2.3查询功能的实现(附上主要代码)
//Inquest.java
publicclassInquestextendsJDialogimplementsActionListener
Hashtable房屋信息表=null;
//存放房屋基本信息的散列表。
JTextField房屋号,售房者姓名,中介职工姓名,房屋销售价格;
//显示房屋基本的文本条。
JButton查询;
ButtonGroupgroup=null;
FileInputStreaminOne=null;
ObjectInputStreaminTwo=null;
Filefile=null;
//存放散列表的文件。
publicInquest(JFramef,Filefile)
super(f,"
查询对话框"
false);
//创建无模式对话框。
this.file=file;
......./
boxH.add(Box.createVerticalGlue());
Containercon=getContentPane();
con.add(pCenter,BorderLayout.CENTER);
con.validate();
setVisible(false);
setBounds(100,200,360,270);
addWindowListener(newWindowAdapter()
2.4修改功能的实现(附上主要代码)
//ModifySituation.java
publicclassModifySituationextendsJPanelimplementsActionListener{
//存放房屋基本信息的散列条。
//输入房屋基本信息的文本条。
JButton开始修改,录入修改,重置;
FileOutputStreamoutOne=null;
ObjectOutputStreamoutTwo=null;
//存放散列条的文件
publicModifySituation(Filefile)
Boxbox1=Box.createHorizontalBox();
//创建5个水平Box容器,从左到右排列组件
BoxboxH=Box.createVerticalBox();
//创建一个垂直Box容器,在其中自上向下排列里一个水平Box容器
boxH.add(box1);
boxH.add(box2);
boxH.add(box3);
boxH.add(box4);
//使得垂直Box容器内的组件靠上对齐
//首现到文件中读取Hashtable对象。
//首先在文件中读取hashtable对象。
Stringquestion="
该房屋基本信息已存在,您想修改它的基本信息吗?
JOptionPane.showMessageDialog(this,question,"
JOptionPane.QUESTION_MESSAGE);
;
//弹出确认对话框。
2.5删除功能的实现(附上主要代码)
//Delete.java
publicclassDeleteextendsJPanelimplementsActionListener
//存放房屋基本信息的散列表
//显示房屋基本信息的文本条
JButton删除;
publicDelete(Filefile)
else
{//如果不存在该房屋信息,弹出警告对话框。
Stringwarning="
该房屋号不存在!
JOptionPane.showMessageDialog(this,warning,"
JOptionPane.WARNING_MESSAGE);
else
{//如果输入房屋号是空的,弹出警告对话框。
必须输入房屋号!
3系统测试(截图)
3.1欢迎语主窗口
本界面的主要功能就是在菜单项选择子菜单,实现相应功能。
3.2录入房屋基本信息
3.3查询房屋基本信息
3.4修改房屋基本信息
3.5删除房屋基本信息
3.6显示房屋基本信息
4收获与体会
通过这次课程设计,本人的变成能力得到了很大的提高,我对Java程序设计语言以及数据结构有了更深刻的了解,增强了程序的编写能力,巩固了专业知识,对程序的模块化观念也由模糊逐渐变得清晰了。
由于基础学的不是特别的扎实,所以在做的过程中始终抛开不了课本,但是设计思想和操作基本都是自己所想,做的过程当中,像按钮和组件方面会遇到一些问题,导致在排除错误方面花费很大时间,但最终还是得到解决,
在这次设计过程中,培养了我的自学能力,在遇到困难的时候,能够认真的对待,不放弃,无论是查看各种书籍还是到图书馆中查找资料,想尽一切办法将这个问题解决。
我总结了许多变成经验,这将在以后的学习生活中有很大的帮助。
虽然本次Java课程设计短暂而时间紧凑,而且做得不够完善,但是还是给我带来了浓厚的兴趣,认识到自己的动手能力还需加强,本人以后会继续改进,进一步提高自己。
5参考文献
[1]耿祥义、张跃平《Java2实用教程》(第四版)北京:
清华大学出版社,2012年8月
[2]Java语言程序设计例题解析与实验指导(第二版)中国铁道出版社
6附录
源程序文件名清单:
1.HouseManager.java//主程序
2.ModifySituation//创建房屋信息修改界面
3.Delete//创建房屋信息删除界面
4.House//创建存储房屋信息的对象
5.HouseSituation//创建房屋信息录入界面
6.Inquest//创建房屋信息查询界面