欢迎添加微信互相交流学习哦!

项目源码:https://gitee.com/oklongmm/biye

目    录

摘  要    1
Abstract    2
第一章 前 言    3
第二章 开发技术与开发工具    4
2.1开发技术    4
2.1.1 Swing技术    4
2.1.2 SQL Server 2005 简介与优势    4
2.2开发环境及工具    5
2.2.1 jdk简介    5
2.2.2 Java语言简介    5
2.2.3 Eclipse简介    6
第三章 系统分析    8
3.1系统的调查    8
3.2可行性分析    8
3.2.1 技术可行性分析    9
3.2.2 经济可行性分析    9
3.2.3 营运可行性分析    9
3.3实现的总目标    10
第四章 思路与设计    11
4.1业务流程分析    11
4.2数据库概念与逻辑设计    11
4.2.1 数据库概念设计    12
4.2.2 数据库逻辑设计    13
4.3功能模块的实现    15
第五章 系统详细设计    17
5.1登陆界面与主界面    17
5.2增删改查客户信息    19
5.3用户密码修改    25
第六章 结论    28
6.1本系统的特点    28
6.2存在的问题    28
6.3心得与体会    28
6.4总体评价    28
参考文献:    30
致  谢    31

摘  要
随着社会主义市场经济的建设与发展,人们生活质量的提高,近几年来,我国的房地产迅速崛起,发展也越来也快。但随着房地产如火如荼的发展,导致商品房种类以及数量不断增多,客户需求信息也产生了多样性,所以房地产行业在房屋销售中也出现了很多的问题。如资料管理手段落后、销售工作不规范、客户信息收集不齐全、销售员业绩评估不合理等。这些问题导致房地产销售效率低下,对企业的业绩和发展来说是极其不利的。在日趋激烈的市场竞争环境中,企业必须需要运用先进的信息技术和现代管理思想来提高房地产行业的管理水平、工作效率和服务质量,进一步降低运营成本、提高经济效率,最终提升房地产公司的市场竞争力。
为此,本文研制开发了房屋销售管理系统。该系统有助于收集客户信息,查看房屋信息和销售员信息,查看销售信息,提高了管理员的决策信息,这对于规范房地产市场运作和管理都具有一定的现实意义。
本论文叙述了房屋销售管理系统的基本原理和实现技术,通过Java、Eclipse和SQL Server数据库等软件的强大功能完成了该系统。经过代码的调试与编译,该系统能够在windows XP/windows 7 中正常运行。该系统最大的优点是简单方便,易于操作。

关键词:房屋销售;Java;Eclipse;SQL Server。

Houses Sales Management System
Abstract:
     With the establishment of socialist market economy and development, quality of people's life is improved. In recent years, Chinese real estate industry has risen rapidly and is developing faster and faster. But with real estate development in full swing, the number and variety of the housings, as well as the diversity of customer demand information increased, many problems have also emerged in real estate sales marketing system, such as backward data management, sales not standardized, the lack of complete customer information collection, sales staff performance evaluation unreasonable. Such problems led to low efficiency against real estate sales. These are extremely unfavorable for business performance and development. In the increasingly fierce market competition environment, we need to use advanced information technology and modern management ideas to improve the management level of the real estate industry, efficiency and service quality, further reduce operating costs, improve economic efficiency, and ultimately enhance the real estate company in the market competitiveness. 
     Therefore, we developed a houses sale management system, which helps to collect customers' information, searching houses' and salesmen’ information, sales information, which has some practical significance for operation and management of the real estate market. 
     This paper describes the basic principles and implementation techniques of the houses sales management system, which through the powerful features of Java, Eclipse and SQL server database software. After testing, the system can be operated normally in windows XP / windows 7. The system is simple, easy to operate.

Keywords: houses sales; Java; Eclipse; SQL Server

第一章 前 言
在房屋销售业竞争越来越激烈的今天,房地产企业如何提高服务质量、管理能力显得越来越重要。如果没有一套可靠的管理系统,单凭手工操作,不仅效率低下,而且会极大地影响到企业的工作服务质量。房地产销售管理是一项繁琐、复杂而又精细的工作,它必须具备能够及时搜集客户信息、准确记录销售业绩、查看楼盘信息等基本功能,为用户提供一个方便添加、搜寻、修改客户、销售员、楼盘等相关诸多信息的操作平台。
在信息化时代,日趋激励的市场竞争中,及时准确地攫取有用信息,对企业的发展至关重要。房屋销售管理系统以计算机为工具,把信息技术和管理有机结合起来,不仅使得信息收集及时、迅速、准确,而且操作方便、简洁,把员工从繁琐的工作中解脱出来。
为此,本文研制开发了房地产销售管理信息系统。该系统有助于收集客户信息,查看房屋信息,有效记录销售业绩,提高管理员的决策信息,对于规范房地产市场运作和管理具有一定的现实意义。
另外,房屋销售管理系统还具有传统手工管理所无可比拟的优点。如:检索迅速,查找方便,可靠性大,存储量大,保密性好,寿命长,成本低等。这些优点能极大的提高房屋销售管理的效率。
因此,开发这样一个低成本高效率的管理系统是十分必要的。
 
第二章 开发技术与开发工具
2.1开发技术
本管理系统开发技术是Swing+SQL Server 2005 实现的。
2.1.1 Swing技术
Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。 工具包中所有的包都是以swing作为名称,例如javax.swing,javax.swing.event
Swing是AWT的扩展,它提供了许多新的图形界面组件。Swing组件以“J”开头,除了拥有与AWT类似的按钮(JButton)、标签(JLabel)、复选框(JCheckBox)、菜单(JMenu)等基本组件外,还增加了一个丰富的高层组件集合,如表格(JTable)、树(JTree)。
Swing 的三个基本构造块:标签、按钮和文本字段;但是现在需要个地方安放它们,并希望用户知道如何处理它们。JFrame 类就是解决这个问题的——它是一个容器,允许程序员把其他组件添加到它里面,把它们组织起来,并把它们呈现给用户。 JFrame 实际上不仅仅让程序员把组件放入其中并呈现给用户。比起它表面上的简单性,它实际上是 Swing 包中最复杂的组件。为了最大程度地简化组件,在独立于操作系统的 Swing 组件与实际运行这些组件的操作系统之间,JFrame 起着桥梁的作用。JFrame 在本机操作系统中是以窗口的形式注册的,这么做之后,就可以得到许多熟悉的注册窗口的特性:最小化/最大化、改变大小、移动。
2.1.2 SQL Server 2005 简介与优势
Microsoft SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。Microsoft SQL Server 2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
Microsoft SQL Server 2005 数据引擎是该企业数据管理解决方案的核心。此外 Microsoft SQL Server 2005 结合了分析、报表、集成和通知功能。这使您的企业可以构建和部署经济有效的 BI 解决方案,帮助您的团队通过记分卡、Dashboard、Web services 和移动设备将数据应用推向业务的各个领域。
与 Microsoft Visual Studio、Microsoft Office System 以及新的开发工具包(包括 Business Intelligence Development Studio)的紧密集成使 Microsoft SQL Server 2005 与众不同。无论您是开发人员、数据库管理员、信息工作者还是决策者,Microsoft SQL Server 2005 都可以为您提供创新的解决方案,帮助您从数据中更多地获益。
2.2开发环境及工具
本系统使用jdk1.6.0_26运行环境
服务器操作系统:Windows
数据库服务器:sql server
开发语言:Java
2.2.1 jdk简介
JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境、Java工具和Java基础类库。JDK是学好Java的第一步。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。
2.2.2 Java语言简介
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
Java语言的特点:
1.简单 :Java与C++语言非常相近,但比C++简单,它抛弃了C++中的一些不是绝对必要的功能,如头文件、预处理文件、指针、结构、运算符重载、多重继承以及自动强迫同型。Java实现了自动的垃圾收集,简化了内存管理的工作。
2. 面向对象 : Java提供了简单的类机制和动态的构架模型。对象中封装了它的状态变量和方法,很好地实现了模块化和信息隐藏;而类则提供了一类对象的原型,通过继承和重载机制,子类可以使用或重新定义父类或超类所提供的方法,从而既实现了代码的复用,又提供了一种动态的解决方案。
3. 多线程:多线程使应用程序可以同时进行不同的操作,处理不同的事件。在多线程机制中,不同的线程处理不同的任务,他们之间互不干涉,不会由于一处等待影响其他部分,这样容易实现网络上的实时交互操作。
4. 分布式:Java是面向网络的语言。通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便的访问其他对象。
5. 跨平台:Java是一种网络语言,为使Java程序能在网络的任何地方运行,Java解释器生成与体系结构无关的字节码结构的文件格式。Java语言环境还提供了用于访问底层操作系统功能的类组成的包,当程序使用这些包时,可以确保它能运行在各种支持Java的平台上。
6. 安全性:用于网络、分布环境下的Java必须要防止病毒的入侵,Java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止了程序员使用欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。
2.2.3 Eclipse简介
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。
Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。
Eclipse 最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT 和PDE。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、Rational Software、Red Hat及Sybase等。Eclipse是一个开发源码项目,它其实是Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。近期还有包括Oracle在内的许多大公司也纷纷加入了该项目,并宣称Eclipse将来能成为可进行任何语言开发的IDE集成者,使用者只需下载各种语言的插件即可。
 
第三章 系统分析
系统分析的主要任务是将在系统详细调查中所得到的文档资料集中到一起,对组织内部整体管理状况和信息处理过程进行分析。它侧重于从业务全过程的角度进行分析。分析的主要内容是:业务和数据的流程是否通畅,是否合理;数据、业务过程和实现管理功能之间的关系;老系统管理模式改革和新系统管理方法的实现是否具有可行性等等。系统分析的目的是将用户的需求及其解决方法确定下来,这些需要确定的结果包括:开发者关于现有组织管理状况的了解;用户对信息系统功能的需求;数据和业务流程;管理功能和管理数据指标体系;新系统拟改动和新增的管理模型等等。系统分析所确定的内容是今后系统设计、系统实现的基础。
在系统分析阶段中,主要分以下几个方面分析:系统的可行性调查、可行性分析、详细分析调查、系统的逻辑方案构思。
3.1系统的调查
通过在互联网上搜集资料,查看相关的专业书籍,并结合自己了解的实际情况,来分析以往管理系统的现状、需求及存在的一些实际问题:
(1) 在信息化时代,日趋激励的市场竞争中,现在的房屋销售管理系统没有完全科学化、规范化、处理速度较慢,难以进行有效的信息反馈。
(2) 房地产公司领导对员工信息不能得到及时反馈、业绩得不到准确的评估;销售员对客户信息得不到及时搜集和统计。由此造成严重信息脱节,从而影响房地产销售效率。
(3) 部门之间信息交流少,信息渠道单一,不利于协调工作,容易出错。
因此,我想通过建立房屋销售管理系统,使房屋销售管理工作科学化、规范化、程序化,促使提高信息处理的速度和正确性,使房地产公司的信息流程和流向清晰化、合理化、一体化,第一时间把握市场需求信息,以提高整个房地产公司销售业绩。
3.2可行性分析
可行性分析是通过对项目的主要内容和配套条件,如市场需求、资源供应、建设规模、工艺路线、设备选型、环境影响、资金筹措、盈利能力等,从技术、经济、工程等方面进行调查研究和分析比较,并对项目建成以后可能取得的财务、经济效益及社会环境影响进行预测,从而提出该项目是否值得投资和如何进行建设的咨询意见,为项目决策提供依据的一种综合性的系统分析方法。可行性分析应具有预见性、公正性、可靠性、科学性的特点。
可行性分析的任务是明确应用项目的开发的必要性和可行性。必要性来自实现开发任务的迫切性,而可行性则取决于实现应用系统的资源和条件。这项工作需建立在初步调查的基础上。通过系统的调查,本系统可行性分析可从技术可行性、经济可行性、营运可行性三个方面去分析。
3.2.1 技术可行性分析
本系统采用Windows 7作为操作平台。数据库选用Microsoft SQL Server 2005,通过测试,该数据库系统在Windows XP和 Windows 7上都能运行,并能提供数据库之间的数据复制功能,这样的话就可代替现有系统单据数据的手工传递工作,降低出错率,提高数据的可用性。本系统的应用软件开发平台选用Eclipse。
3.2.2 经济可行性分析
 采用新的房屋销售管理系统可取代传统的手工单据传递工作,这样的话就可以减少人工的开支,不但节省了金钱,而且可大大提高信息量的获取,缩短信息处理的周期,提高房屋、客户信息的利用率,使销售质量更上一个心的台阶。
3.2.3 营运可行性分析
本管理系统操作原理简易,易于分析和理解,对用户只需通过简单的培训就可以使用,系统上手较快,营运的环境要求不高。
系统的设计还应该以“标准性、安全性、兼容性、高效性、保密性、可维护性”这几个方面为标准,这样就可以在当前的应用基础上,为以后系统的扩展和升级留有充分的余地。软件开发应该能在较长时间内满足房地产市场的发展需要。所以新系统还需要满足以下的几个标准:
(1) 标准性:在系统的软硬件选型上,都应该采用工业化标准,这样做既可以保证系统的运行质量,又可以分享在此标准上的每一次技术进步。
(2) 可靠性:由于房屋销售信息的重要性,系统的软硬件应有良好的质量保障,确保不会由于软硬件故障造成系统运行终止,从而使用户蒙受不必要的损失。
(3) 安全性:登录模块应采用用户名和密码分开检测,这样的话可以防止SQL的注入;在实际运行中也可以考虑IP过虑,数据库应该定期备份。
(4) 兼容性:理论上系统的所有软硬件都应有良好的的兼容性,只有这样,才能保证系统软硬件的可互换性。
(5) 高效性:由于在实际应用中,因为房屋销售每次处理的信息量都比较大,因此系统应该对信息的处理能力,响应能力是快速而且有效的,开发人员在软件编制过程中应充分考虑到这一点。
(6) 可维护性:系统软件设计时应采用结构化的模块设计,以便于开发和维护,这样的话,也有利于根据实际情况随时进行功能模块调整和维护。
3.3实现的总目标
目标:系统可以实现对房地产销售系统等基本信息进行管理,如销售员业绩管理,客户信息管理;以及对房地产销售员工的基本信息和客户基本信息进行管理和维护。
 
第四章 思路与设计
制定房屋销售管理项目开发的计划,包括业务流程分析,数据库逻辑设计。
4.1业务流程分析
业务流程分析如图4-1所示:
 
图4-1  业务流程分析图
4.2数据库概念与逻辑设计
本系统数据库是SQL Server 2005,根据的数据库添加的类和对象,以其英文件单命名,如客户信息,以Client为类名,客户信息对象姓名、年龄分别以name和 age命名。表中的字段也是如此,以英文件单词单来描述其意思,如email(邮箱)。总之,命名的原则是:简洁而意思清楚,不产生异义,代码编写人员易懂,能提高程序开发效率。在进行数据库设计这一过程是是根据各方面的要求和考虑然后才设计了现在的这个数据库模型。根据实际房屋销售管理系统的业务运行和需求,将信息分为如下模块:客户信息、房屋信息、销售员信息、销售信息、密码修改等。
4.2.1 数据库概念设计
根据模块的构造,设计规划出的实体有:客户信息实体、房屋信息实体、销售员信息实体、销售信息实体。
客户信息实体ER图 如图4-2所示:
 
图4-2 客户信息实体ER图

房屋信息实体ER图 如图4-3所示:

图4-3 房屋信息实体ER图

销售员信息实体ER图 如图4-4所示:

图4-4 销售员信息实体ER图

销售信息实体ER图 如图4-5所示:

图4-5 销售信息实体ER图
4.2.2 数据库逻辑设计
据库的概念结构设计完毕后,现在可以将上面的数据库概念结构转化为某种数据库系统所支持的实际数据库模型,也就是数据库的逻辑结构。
房屋销售管理系统数据库中各个表格的设计结果如下面几个表所示。每个表表示在数据库中的一个数据表。

客户相关信息 如表4-6所示:
字段名    字段类型    字段宽度    备注
姓    名    VARCHAR    10    主索引,不允许空
性    别    VARCHAR    6    默认为0
年    龄    INT    3    默认为0
电    话    INT    18    默认为0
邮    箱    VARCHAR    30    默认为0
备    注    VARCHAR    50    默认为0
表4-6 客户信息数据表

房屋相关信息 如表4-7所示:
字段名    字段类型    字段宽度    备注
房屋名称    VARCHAR    15    主索引,不允许空
房屋类别    VARCHAR    15    默认为0
单元房间号    VARCHART    10    默认为0
单    价    INT    6    默认为0
面    积    INT    6    默认为0
销售人员    VARCHART    10    默认为0
联系电话    INT    12    默认为0
表4-7 房屋信息数据表

销售员相关信息 如表4-8所示:
字段名    字段类型    字段宽度    备注
姓    名    VARCHAR    10    主索引,不允许空
性    别    VARCHAR    3    默认为0
年    龄    INT    3    默认为0
电    话    INT    15    默认为0
邮    箱    VARCHAR    30    默认为0
表4-8 销售员信息数据表

销售相关信息 如表4-9所示:
字段名    字段类型    字段宽度    备注
销售员    VARCHAR    10    主索引,不允许空
房屋名称    VARCHAR    15    默认为0
单元房间号    VARCHAR    10    默认为0
销售价格    INT    6    默认为0
表4-9 销售信息数据表

修改密码基本信息 如表4-10所示:
字段名    字段类型    字段宽度    索引
旧密码    VARCHAR    25    
新密码    VARCHAR    25    
确认密码    VARCHAR    25    
表4-10 密码修改信息数据表

建立好的数据库列表 如图4-11所示:
 
图4-11 数据库列表截图
4.3功能模块的实现
功能模块是指数据说明、可执行语句等程序元素的集合,它是指单独命名的可通过名字来访问的过程、函数、子程序或宏调用。功能模块化是将程序划分成若干个功能模块,每个功能模块完成了一个子功能,再把这些功能模块总起来组成一个整体。以满足所要求的整个系统的功能。

本系统包括以下几个功能模块:
    登陆界面:输入管理账号和密码
    主页面:主页面包括客户信息、房屋信息、销售员信息、
    销售信息、密码修改、退出系统。
    客户信息管理:客户信息录入,客户基本信息修改、查找、删除。
    房屋信息管理:房屋信息录入,房屋基本信息修改、查找、删除。
    销售员信息管理:销售员信息录入,销售员基本信息修改、查找、删除。
    销售信息管理:销售信息录入,销售基本信息修改、查找、删除。
    修改密码:旧密码认证,输入新密码与确认新密码。
退出:退出主页面后返回登陆界面。
 
系统功能模块图 如图4-12所示:
 
图4-12 系统功能模块图

第五章 系统详细设计
详细设计是软件工程中软件开发的一个步骤,就是对概要设计的一个细化,就是详细设计每个模块实现算法,所需的局部结构。详细设计的主要任务是设计每个模块的实现算法、所需的局部数据结构。详细设计的目标有两个:实现模块功能的算法要逻辑上正确和算法描述要简明易懂。
5.1登陆界面与主界面
在登陆界面中有登陆口令限制,也就是说,只有输入正确的登陆用户名和密码,才可能进入系统管理的菜单界面(默认用户名:admin,默认密码为:123)。
登陆界面图 如图5-1所示:
 
如图5-1登陆界面图
登陆界面主要程序代码如下:
    private void jButton0ActionActionPerformed(ActionEvent event) {
        UserDao userDao = new UserDao();
        User user = userDao.getUser(tf_userName.getText(),
        tf_passWord.getText());
        if (user.getId() > 0) {
            Index frame = new Index();
            frame.setVisible(true);
            frame.setUsername(tf_userName.getText());
            Login.this.dispose();
            System.out.print(user.getId());
        } else {
            JOptionPane.showMessageDialog(getContentPane(), 
            "账户或密码错误!",
            "信息提示框", JOptionPane.INFORMATION_MESSAGE);
            tf_userName.setText("");
            tf_passWord.setText("");
        }
    }
用户正确登录后出现如图的主界面,图左侧显示房屋销售管理系统的相关功能模块,提供用户操作界面。
主界面图 如图5-2所示:
 
图5-2主界面图
主界面主要程序代码如下:
     public Index() {
        JPanel jpanel = new JPanel();
        this.setContentPane(jpanel);
        GridLayout gird = new GridLayout(3, 0);
        jpanel.setLayout(gird);
        ImageIcon img = new ImageIcon("src/main.jpg");
        JLabel imgLabel = new JLabel(img);
        this.getLayeredPane().
        add(imgLabel,newInteger(Integer.MIN_VALUE));
        imgLabel.setBounds(0,0,img.getIconWidth(),img.getIconHeight());
        this.getLayeredPane().setLayout(null);
        this.setResizable(false);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        jpanel.setOpaque(false);
        initComponents();
        this.setLocationRelativeTo(null);
        //开始计时器
        startTimer();
    }
    
    private void startTimer(){
        timer=new Timer();
        timer.schedule(new TimerTask() {
            public void run() {
                SimpleDateFormat sdf = new SimpleDateFormat
                ("yyyy年MM月dd日  HH时mm分ss秒");
                String dates = sdf.format(new Date());
                timelabel.setText("当前时间:"+dates);
            }
        }, 0, 1000);
    }
5.2增删改查客户信息
用户成功登录系统后可以点击左侧功能模块操作相关信息,即可以在左侧管理功能菜单中的客户信息模块中操作客户的基本信息。其中包括添加、查询、修改、删除这些功能键。

点击客户信息会出现如图5-3所示:
 
图5-3 客户信息管理图
由于本模块中各个功能操作类似,为此,以查看客户信息为例,对房屋销售管理系统中客户信息模块做一个演示操作。在这个子模块中包括有添加、修改、删除、查询功能,提供了一个非常简便操作界面,使得管理员可以及时了解更新客户信息情况。
添加客户信息:单击添加,弹出添加客户信息页面,填好信息单击提交即可返回客户信息页面并显示出新添加的信息如图5-4、5-5所示:
 
图5-4 添加客户信息图
 
图5-5 添加客户信息后显示图
添加客户信息主要程序代码如下:
    private void jButton0ActionActionPerformed(ActionEvent event) {
        ClientDao clientDao = new ClientDao();
        if (jFormattedTextField0.getText().equals("")
                || jFormattedTextField1.getText().equals("")
                || jFormattedTextField2.getText().equals("")
                || jFormattedTextField3.getText().equals("")
                || jFormattedTextField4.getText().equals("")
                || jFormattedTextField5.getText().equals("")
                || jFormattedTextField6.getText().equals("")) {
            JOptionPane.showMessageDialog(getContentPane(), 
            "请将信息填写完整!",
            "信息提示框", JOptionPane.INFORMATION_MESSAGE);
        } else {
            clientDao.addClient(jFormattedTextField0.getText(),
                    jFormattedTextField1.getText(), jFormattedTextField2
                            .getText(), jFormattedTextField3.getText(),
                    jFormattedTextField4.getText(), jFormattedTextField5
                            .getText(), jFormattedTextField6.getText());
            JOptionPane.showMessageDialog(getContentPane(), 
            "添加成功!", "信息提示框",
            JOptionPane.INFORMATION_MESSAGE);
            AddClient.this.dispose();
            IndexClient frame = new IndexClient();
            frame.setVisible(true);
        }
    }
客户信息的删除:单击列表中的一行再点击删除按键,会提示删除成功,并显示 删除后的列表,视图如图5-6、5-7所示:
 
图5-6 删除客户信息提示图
 
图5-7 删除客户信息后显示图
删除客户信息主要程序代码如下:
    public void actionPerformed(ActionEvent event) {
                    TableModel model = jTable0.getModel();
                    ClientDao dao = new ClientDao();
                    int row = jTable0.getSelectedRow();
                    if (row < 0) {
                        JOptionPane.showMessageDialog(getParent(),
                                "没有选择要刪除的数据!", "信息提示框",
                                JOptionPane.INFORMATION_MESSAGE);
                        return;
                    } else {
                    String column = model.getValueAt(row, 0).toString();
                        dao.deleteClient(Integer.parseInt(column));
                        JOptionPane.showMessageDialog(getParent(), 
                        "数据删除成功!",
                        "信息提示框", JOptionPane.INFORMATION_MESSAGE);
                        IndexClient.this.dispose();
                        IndexClient frame = new IndexClient();
                        frame.setVisible(true);
                        repaint();
                    }
            }
客户信息的修改:双击要修改的信息格,修改好后单击任一其它的方格再单击修改,修改成功。视图如图5-8、5-9所示:
 
图5-8 客户信息修改图(1)
 
图5-9 客户信息修改图(2)
 修改客户信息主要程序代码如下:
     public void actionPerformed(ActionEvent event) {
                    TableModel model = jTable0.getModel();
                    int row = jTable0.getSelectedRow();
                    ClientDao dao = new ClientDao();
                    Client client = new Client();
                    if (row < 0) {
                        JOptionPane.showMessageDialog(getParent(),
                                "没有选择要修改的数据!", "信息提示框",
                                JOptionPane.INFORMATION_MESSAGE);
                        return;
                    } else {
                        try {
                    String column = model.getValueAt(row, 0).toString();
                            client.setId(Integer.parseInt(column));
                            column = model.getValueAt(row, 1).toString();
                            client.setName(column);
                            column = model.getValueAt(row, 2).toString();
                            client.setSex(column);
                            column = model.getValueAt(row, 3).toString();
                            client.setAge(column);
                            column = model.getValueAt(row, 4).toString();
                            client.setPhone(column);
                            column = model.getValueAt(row, 5).toString();
                            client.setEmail(column);
                            column = model.getValueAt(row, 6).toString();
                            client.setAddress(column);
                            column = model.getValueAt(row, 7).toString();
                            client.setRemark(column);
                            dao.updateClient(client);
                            JOptionPane.showMessageDialog(getParent(), 
                            "修改成功!",
                          "信息提示框", JOptionPane.INFORMATION_MESSAGE);
                            IndexClient.this.dispose();
                            IndexClient frame = new IndexClient();
                            frame.setVisible(true);
                            repaint();
                        } catch (Exception ee) {
                            ee.printStackTrace();
                        }
                }
          }
客户信息的查询:客户的信息查询是以姓名为搜索关键字的,在姓名框输入姓名再单击查询,即显示所要查询的客户信息。视图如图5-10所示:
 
图5-10 客户信息查询图
查询客户信息主要程序代码如下:
     public void actionPerformed(ActionEvent event) {
                    TableModel model = jTable0.getModel();
                    ClientDao dao = new ClientDao();
                    String[] Name = { "姓名" };
                    comboBox = new JComboBox(Name);
                    ((DefaultTableModel) model).setRowCount(0);
                    String joinDate = jFormattedTextField0.getText();
                    String condition=comboBox.
                    getSelectedItem().toString();
                    if (joinDate.equals("")) {
                        JOptionPane.showMessageDialog(getParent(), 
                    "没有填写查询条件!",
                    "信息提示框", JOptionPane.INFORMATION_MESSAGE);
                        return;
                    }
                if (condition.equals("姓名")) {
                        Client client = dao.selectClientByName(joinDate);
                    if (client != null) {
                        ((DefaultTableModel) model).addRow(new Object[] {
                                client.getId(), client.getName(),
                                client.getSex(), client.getAge(),
                                client.getPhone(), client.getEmail(),
                                client.getAddress(), client.getRemark() });
                            System.out.print("00");
                        }
                    }
            }
5.3用户密码修改
修改密码:旧密码认证,输入新密码与确认新密码。视图如图5-11所示:
 
图5-11 用户密码修改图
 修改用户密码主要程序代码如下:
     private void jButton0ActionActionPerformed(ActionEvent event) {
        UserDao dao = new UserDao();
        // 原密码
        String oldPwd = jTextField0.getText();
        // 新密码
        String newPwd = jTextField1.getText();
       if (oldPwd != null && oldPwd.trim() != "") {// 防止输入空格
            if (jTextField1.getText().equals(jTextField2.getText())) {
            if(dao.getUser(this.getUsername(),
            oldPwd).getUserName() !=  null) {// 验证用户名密码成功
                    dao.alterPwd(this.getUsername(), newPwd);
                    JOptionPane.showMessageDialog(getContentPane(), 
                    "密码更改成功");
                    Index frame = new Index();
                    frame.setVisible(true);
                    IndexAlterCode.this.dispose();
                } else {
                    JOptionPane.showMessageDialog(getContentPane(),
                    "密码输入错误!");
                    jTextField0.setText(null);
                    jTextField1.setText(null);
                    jTextField2.setText(null);
                }
            } else {
                JOptionPane.showMessageDialog(getContentPane(), 
                "再次输入不一致");
                jTextField0.setText(null);
                jTextField1.setText(null);
                jTextField2.setText(null);
            }
        } else {
            JOptionPane.showMessageDialog(getContentPane(), 
           "请输入密码");
        }
}
 
第六章 结论
6.1本系统的特点
本系统通过Java、Eclipse和SQL Server数据库等软件的强大功能完成,经过测试,该系统能够在windows XP/linux 中正常运行。
1.    程序变量规范:变量统一使用英文单词描述,除首单词字母大写,其余单词字母小写。简洁而意思清楚,不产生异义,代码编写人员易懂,能提高程序开发效率。
2.    文件编码规范:在程序段中所使用的变量要求使用英文命名,严禁使用int a=0;String str=”***”之类的随意命名。
3.    界面设计规范:总体简介、协调,美观大方,不花哨。
4.    用户操作简单快捷。
6.2存在的问题
由于做的比较仓促,所以本管理系统还存在一些问题与不足,比如页面不够美观,需要进一步的修改与美化;通过不断的改善,系统优化了不少,但要达到理想的状态还是有一定的差距的,如部分功能程序代码过于冗长,不够精简,部分数据库表的设计存在一定的冗余,也要有进一步的优化设计。
6.3心得与体会
通过这次毕业设计,使我明白了自己原有的知识面还比较欠缺的。在实际的应用中,自己要学习的东西还很多很多,此次的系统开发过程,不仅是对我学过的理论知识的一次实践应用,更是对我处理问题、解决实际问题能力的培养和锻炼。通过这次毕业设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中我们都应该不断的学习,努力提高自己知识和综合素质,这样才能进步。
6.4总体评价
房屋销售管理系统经过了简单测试,其功能符合用户的基本需求,实现了管理员登陆,销售员信息、客户信息的修改、添加、删除等功能。系统使用简洁明快的界面风格设计,具备了友好性,灵活性和可靠性,实现了预期目标和功能。
在本系统开发中,我主要完成以下几个方面的工作:
1、阅读了大量相关的专业文献,对数据库的技术原理有了比较详细和深入的认识,对房屋销售管理系统进行了可行性分析和功能需求分析。
2、将JAVA技术结合起来运用到系统的开发中。
3、设计数据库,数据库设计的质量直接影响到后期的工作量。
4、开发并测试了整套系统的各项功能,并对出现的问题进行了纠正。

参考文献:
[1]    明日科技,Java项目案例分析,1,清华大学出版社,2012
[2]    相洁, 吕进来,软件开发环境与工具,1,电子工业出版社,2012
[3]    李伟、王国辉,Java典型模块与项目实战大全,1,电子工业出版社,2012
[4]    代永亮,Java程序设计基础,2,人民邮电出版社,2012
[5]    匡泰、王岩,Java面向对象程序设计与应用开发教程,1,大连理工大学出版社,2011
[6]    窦万峰,软件工程及实践,1,电子工业出版社,2011
[7]    娄不夜,Java程序设计,2,清华大学出版社,2010
[8]    聂庆亮,Java应用开发指南,1,清华大学出版社,2010
[9]    周汉平,数据库设计及其应用程序开发,1,清华大学出版社,2010
[10]    钱银中, 简勇,Java程序设计,1,清华大学出版社,2009
[11]    赵英良,软件开发技术基础,1,机械工业出版社,2009
[12]    王衍,数据库应用基础,1,电子工业出版社,2009
[13]    北京比特赛斯威图书服务事业部,Java数据库应用程序设计,机械工业出版社,2008
[14]    王灏,马军,Java完全自学手册,1,机械工业出版社,2007
[15]    董迎红、张杰敏,Java语言程序设计实用教程,1,中国林业出版社,2006
[16]    袁海燕、王文涛,Java实用程序设计100例,1,人民邮电出版社,2005

基于java的房屋销售管理系统设计(含源文件)相关推荐

  1. 基于java的在线考试系统设计(含源文件)

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 摘 要 本系统是一个基于java的在线考试系统.它的用户由学生.教师和系统管理员组成.学生登陆系 ...

  2. 基于java的论坛管理系统设计(含源文件)

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 摘 要:当今社会正处在网络时代,信息化大潮席卷全球,网络正以前所未有的速度在我国普及开来.论坛以 ...

  3. 基于java的土地档案管理系统设计(含源文件)

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 摘  要     研究土地档案管理关系即为实现一个土地档案管理系统.土地档案管理系统是将现有的历 ...

  4. java输入输出图书管理系统设计_基于JAVA的图书管理系统设计(含源文件).doc

    PAGE 本科毕业设计(论文) 题 目:基于Java的图书管理信息系统的设计和实现 院 系: 计 算 机 科 学 系 专 业: 计 算 机 科 学 与 技 术 姓 名: 陈 平 指导教师: 周 亚 凤 ...

  5. 基于java的社团管理系统设计(含源文件)

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 摘要     随着科学技术的不断发展,人们所需管理的信息逐渐变多,使快速并准确地在信息库里搜索出 ...

  6. 基于java的教学管理系统设计(含源文件)

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 目录 第1章  绪  论    1 1.1 课题背景    1 1.2 国内外现状    1 1 ...

  7. 基于java银行ATM管理系统设计(含源文件)

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 题  目:   银行ATM管理系统 一.    设计目的 银行ATM管理是银行业务流程中十分重要 ...

  8. 基于java的银行ATM系统设计(含源文件)

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 目 录 1 系统分析    1 1.1 设计背景    1 1.2 需求分析    1 1.2. ...

  9. 基于java的学生宿舍管理系统(含源文件)

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 学生宿舍管理系统   摘 要 随着电脑的普及与使用,现在的管理也提升了一个档次,渐渐实现了无纸化 ...

  10. 基于java的学生信息管理系统(含源文件)

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 内容摘要    - 2 - 引言    - 4 - 学生信息管理系统开发的意义和目的    - ...

最新文章

  1. 使用pytorch搭建 RNN线性神经网络
  2. mybatis 实现oracle主键自增的机制
  3. 巴西队被打成了蜂窝煤
  4. capistrano
  5. 类属性、类方法;私有属性、公有属性;私有方法、公有方法;静态属性、静态方法;python的命名规范__xx__\__xx\_xx(自用笔记)
  6. PMCAFF | 产品经理十宗罪(冷静反思篇)
  7. AX5243与AX5043方案对比及应用设计
  8. 基于SpringBoot+Mybatis+Thymeleaf商品信息管理系统
  9. web表单设计:点石成金_如何设计安全的Web表单:验证,清理和控制
  10. linux eth0 目录,教程 | Linux常用命令大全
  11. 什么是数据库并发控制?数据库并发控制的主要方法是?
  12. linux程序运行段错误,Linux下的段错误产生的原因及调试方法
  13. 计算机网络联网方法实验报告,计算机网络技术》实验报告.doc
  14. hive窗口函数入门
  15. 190702每日一句 孤独之前是迷茫,孤独之后是成长
  16. 大数据毕设/课设 - 基于大数据的通用可视化模板
  17. c语言如何将十六进制转化为二进制数,C语言--将十进制整数转化为二进制与十六进制输出...
  18. MyEclipse2020中JSP文件光标乱跳
  19. STM32F4 RTC详解
  20. 时光机················

热门文章

  1. 大学python笔记整理_python 笔记整理
  2. apk系统签名和发布软件签名的理解
  3. 各类电商购物网站商城系统静态网页html制作(含静态网站源码)
  4. mcuisp下载程序
  5. 计算机coreldraw课程PPT,[计算机]CorelDRAW_12基础教程.ppt
  6. C# 反编译-Reflector 反混淆-De4Dot 修改dll/exe代码-reflexil
  7. Excel数据透视表经典教程十三《打印数据透视表/图》
  8. 网络通信基础知识总结
  9. 计算机 高新 会计电算化,会计软件应用(用友软件系列)用友通T3试题汇编(高级会计电算化员级)...
  10. 计算机老师教育叙事,信息技术教育叙事范文10篇 初中