基于java商品房产销售管理系统设计

获取项目源文件,学习交流联系Q:1415736481,可指导毕设,课设

商品房销售中的客户信息管理系统设计报告

1 课程设计任务概述

1.1 商品房销售中的客户信息管理系统简介

在现代商品房销售中,客户信息关系到销量,因此该系统十分适合于一般小型楼盘管理客户信息,方便销售人员及时查看客户资料。

商品房销售中的客户信息管理系统主要包括用户管理、客户信息管理等基本功能。实现用户信息的增删及客户信息的修改、查询、删除、添加等几个方面的功能。

首先管理员拥有最高权限,可以实现对客户的所有功能,并且可以添加、删除管理员和销售人员,而销售人员只享有一般权限,可以查看用户信息。用一个登录界面同时实现了管理员和销售人员的登录,大大简化了系统设计。

  

  1.2 设计任务与要求

 

编写一个商品房销售中的客户信息管理系统。客户信息包括客户编号、客户姓名、客户号码。具体实现的功能:能过实现增加客户信息、删除客户信息、查询客户信息、 修改客户信息等。

  

   1.3 开发环境以及工具

 

系统编程基于JAVA Swing的图形用户界面开发,数据信息连接后台为Mysql数据库。系统运行环境为运行Windows7的PC机,具有JDK1.7以上Java编译环境,Eclipse编辑环境,以及Mysql数据库环境。

 

2 系统分析与建模

2.1 系统功能分析

本系统主要实现客户信息的管理,包括客户信息的添加、修改、查询和删除,及一些辅助项目的管理,如登录系统用户管理和销售人员管理。整个系统模块划分如图2-1所示:

基于java商品房产销售管理系统设计_第1张图片

图2-1 系统模块划分

2.2 用例图及用例说明

2.2.1客户管理用例描述

(1)添加客户信息用例描述

添加客户信息,是商品房客户信息管理系统的一项基本服务。在商品房客户信息管理系统的建模过程中,将这一行为抽象为一个用例。在不考虑软件的具体实现细节基础上,给出如下的用例描述。

 

Use Case 名称

添加客户

执行者

管理员

前置条件

管理员通过系统验证后,成功登录管理系统

事件流

A.输入管理员的用户名;

   若输入不正确,则提示“输入的口令不正确,请重新输入!!!”

   输入正确,则提示“请您输入您的密码!”

B.输入密码;

   若输入不正确,则提示“输入的口令不正确,请重新输入!!!”

   成功登录系统后,显示管理员界面;

C.输入要添加客户的编号;

   若客户已存在,提示“添加失败”

   若管理员可以正常添加,提示“添加成功”

D. 管理员点击“确定”,客户增加一条客户信息;

E. 添加完成,点击“退出”,退出系统。

后置条件

管理员成功添加客户信息,商品房客户信息管理系统保存添加记录并修改数据库中的信息。

 

  1. 删除客户信息用例描述

删除客户信息,是商品房客户信息管理系统的一项基本服务。在商品房客户信息管理系统的建模过程中,将这一行为抽象为一个用例。在不考虑软件的具体实现细节基础上,给出如下的用例描述。

Use Case 名称

删除客户

执行者

管理员

前置条件

管理员通过系统验证后,成功登录管理系统

事件流

A.输入管理员的用户名;

   若输入不正确,则提示“输入的口令不正确,请重新输入!!!”

   输入正确,则提示“请您输入您的密码!”

B.输入密码;

   若输入不正确,则提示“输入的口令不正确,请重新输入!!!”

   成功登录系统后,显示管理员界面;

C.输入要添加客户的编号;

   若客户存在,提示“删除成功”

   若客户不存在,提示“删除失败”

D. 管理员点击“确定”,客户删除一条客户信息;

E. 删除完成,点击“退出”,退出系统。

后置条件

管理员成功删除客户信息,商品房客户信息管理系统保存删除记录并修改数据库中的信息。

 

  1. 查询客户信息用例描述

查询客户信息,是商品房客户信息管理系统的一项基本服务。在商品房客户信息管理系统的建模过程中,将这一行为抽象为一个用例。在不考虑软件的具体实现细节基础上,给出如下的用例描述。

Use Case 名称

查询客户

执行者

管理员

前置条件

管理员通过系统验证后,成功登录管理系统

事件流

A.输入管理员的用户名;

   若输入不正确,则提示“输入的口令不正确,请重新输入!!!”

   输入正确,则提示“请您输入您的密码!”

B.输入密码;

   若输入不正确,则提示“输入的口令不正确,请重新输入!!!”

   成功登录系统后,显示管理员界面;

C.输入要查询客户的编号;

   若客户存在,提示“客户存在”

   若客户不存在,提示“客户不存在”

D. 管理员点击“确定”,显示出客户信息;

E. 查询完成,点击“退出”,退出系统。

后置条件

管理员成功查询客户信息,商品房客户信息管理系统保存查询记录。

 

  1. 修改客户信息用例描述

修改客户信息,是商品房客户信息管理系统的一项基本服务。在商品房客户信息管理系统的建模过程中,将这一行为抽象为一个用例。在不考虑软件的具体实现细节基础上,给出如下的用例描述。

Use Case 名称

修改客户

执行者

管理员

前置条件

管理员通过系统验证后,成功登录管理系统

事件流

A.输入管理员的用户名;

   若输入不正确,则提示“输入的口令不正确,请重新输入!!!”

   输入正确,则提示“请您输入您的密码!”

B.输入密码;

   若输入不正确,则提示“输入的口令不正确,请重新输入!!!”

   成功登录系统后,显示管理员界面;

C.输入要修改客户的编号;

   若客户存在,提示“更新成功”

   若客户不存在,提示“更新失败”

D. 管理员点击“确定”,修改客户信息;

E. 查询完成,点击“退出”,退出系统。

后置条件

管理员成功查询客户信息,商品房客户信息管理系统保存查询记录。

2.2.2 客户信息管理整体用例图

根据客户信息管理描述,画出商品房客户信息管理系统整体用例图,见图2-1

基于java商品房产销售管理系统设计_第2张图片

图2-2 商品房销售中的客户信息管理系统用例图

3 系统设计

3.1 系统类图

图3-1 系统类图

3.2 系统状态图

      基于java商品房产销售管理系统设计_第3张图片

图3-2 系统状态图

 

3.3 系统时序图

3.3.1 用户登录时序图

基于java商品房产销售管理系统设计_第4张图片

图3-3 用户登录时序图

3.3.2 用户操作时序图

基于java商品房产销售管理系统设计_第5张图片

图3-4 用户操作时序图

3.4 系统框架设计

本系统主要采用MVC模式。以下为系统文件结构图。

基于java商品房产销售管理系统设计_第6张图片

图3-5 系统文件结构

3.5 数据库设计

本系统运行需要与后台数据库进行数据库访问,本系统采用mysql数据进行数据库读取访问。因此需要在建立数据库(customermanagerment),并在数据库内建立3张表,以下为数据库中表信息。

 

表3-1 数据库中表信息

序号

表名

主要表字段名

  1.  

customer (客户表)

客户编号、客户姓名、客户号码

   2

manager(管理员表)

工号、姓名、登录密码

   3

sales(销售人员表)

工号、姓名、登录密码

3.5.1 客户表

客户的设计是为了对客户信息进行操作用的。客户编号是唯一确定客户信息记录的,其他字段是客户的一些基本信息。表的具体结构设计如表3-2所示:

 

表3-2 客户表表结构

字段名称

数据类型及长度

可否为空

约束条件

说明

id

varchar(20)

NO

主键

客户编号

name

varchar(20)

YES

 

客户姓名

phone

varchar(11)

YES

 

客户号码

3.5.2 管理员表

系统管理员信息表,该表的设计用于记录管理人员的信息,方便对管理员的管理,表中包括管理员工号和管理员的登录密码,表的具体结构设计如表3-3所示:

 

表3-3 管理员表表结构

字段名称

数据类型及长度

可否为空

约束条件

说明

id

Varchar(20)

NO

主键

管理员工号

name

Varchar(4)

YES

 

管理员姓名

password

Varchar(20)

YES

      

管理员密码

3.5.3 销售人员表

销售人员信息表的设计是为了对销售人员信息进行管理,其中工号是唯一的。主要是为了唯一区分销售人员的信息。工号和密码还可以用于系统的登录。其他字段都是销售人员的一些基本信息。表的具体结构设计如表3-4所示:

 

表3-4 销售人员表表结构

字段名称

数据类型及长度

可否为空

约束条件

说明

id

Varchar(20)

NO

主键

销售人员工号

name

Varchar(4)

YES

 

销售人员姓名

password

Varchar(20)

YES

      

销售人员密码

3.6 系统UI界面设计

3.6.1 登录模块界面设计

登录界面主要用于用户输入有效用户名与密码进行登录的。登录界面设计效果如图所示:

基于java商品房产销售管理系统设计_第7张图片

图3-6 系统登录界面

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.6.2 系统主界面设计

基于java商品房产销售管理系统设计_第8张图片

基于java商品房产销售管理系统设计_第9张图片

图3-7 系统主界面

 

3.6.3 添加客户信息界面

基于java商品房产销售管理系统设计_第10张图片

图3-8 添加信息界面

 

3.6.4 删除客户信息界面

基于java商品房产销售管理系统设计_第11张图片

图3-9 删除信息界面

3.6.5 查询客户信息界面

基于java商品房产销售管理系统设计_第12张图片

图3-10 查询信息界面

3.6.6 修改客户信息界面

基于java商品房产销售管理系统设计_第13张图片

图3-11 修改信息界面

 

4 系统实现

4.1 登录模块

功能描述:用户输入用户名与密码,登录时系统进行用户合法性验证,验证合法后方可进入到系统主界面。

protected void logon(ActionEvent e)

   {

      if (usertextField.getText().trim().length() == 0 ||

          userpasswordField.getPassword().length == 0)

      {

          javax.swing.JOptionPane.showMessageDialog(null, "用户&密码不允许为空", "系统提示", javax.swing.JOptionPane.ERROR_MESSAGE);

            return;

      }

     

      ISalesDao ssi = new SalesDaoImp();

      IManagerDao mdi = new ManagerDaoImp();

     

      String name = usertextField.getText().trim();

      String password = String.valueOf(userpasswordField.getPassword());         

        

      Manager m = new Manager();

      m.setName(name);

      m.setPassWord(password);

        

      Sales sale=new Sales();

      sale.setName(name);

      sale.setPassWord(password);

      System.out.println(m.getName());

      System.out.println(m.getPassWord());

       

      if (mdi.isExist(m))

      {

          ManagerMainUI frame = new ManagerMainUI();

            this.setVisible(false);

            if (managermainui == null)

          {

             managermainui = new ManagerMainUI();

          }

         

          managermainui.setVisible(true);

           

        }

       else if (ssi.isExist(sale))

        {

          SaleMainUI frame = new SaleMainUI();

            this.setVisible(false);

            if (salemainui == null)

          {

             salemainui = new SaleMainUI();

          }

         

          salemainui.setVisible(true);

        }

        else

        {

            javax.swing.JOptionPane.showMessageDialog(null, "输入的用户名或者密码错误,请重试!", "系统提示", javax.swing.JOptionPane.ERROR_MESSAGE);

            usertextField.setText(null);

            userpasswordField.setText(null);

            usertextField.requestFocus();

            return;

        }

     

   }

}

4.2 系统管理模块

4.2.1 登出系统

       //登出

      if (lu == null)

{

          lu = new LogonUI();

      }

     

      this.setVisible(false);

      lu.setVisible(true);

 

4.2.2 退出系统

//退出

this.setVisible(false);

 

4.3 操作管理模块

4.3.1 增加客户信息

功能描述:通过用户输入相应的信息,系统进行有效性检查,提示相应信息,合法后进行数据库插入操作。

核心代码:

public void process()

   {

      String id=textField_id.getText().trim().toString();

      String name=textField_name.getText().trim().toString();

      String phone=textField_phone.getText().trim().toString();

    

       Customer c=new Customer();

       c.setId(id);

       c.setName(name);

       c.setPhone(phone);

    

        int result = csi.addCustomer(c);

      if(result > 0)

      {

         javax.swing.JOptionPane.showMessageDialog(null, "添加成功!", "系统提示", javax.swing.JOptionPane.INFORMATION_MESSAGE);

         this.setVisible(false);

         return;

      }

      else

      {

         javax.swing.JOptionPane.showMessageDialog(null, "添加失败!", "系统提示", javax.swing.JOptionPane.ERROR_MESSAGE);

          return;

      }

   }

 

4.3.2 删除客户信息

功能描述:查询出数据,选择要删除的数据库,系统进行是否要删除的判断,进行数据库删除操作。

核心代码:

private void deletecustomer()

   {

      String id=textField_id.getText().trim();

      if(!textField_id.equals(""))

      {

         int result=csi.deleteCustomer(id);

          if(result>0)

          {

              javax.swing.JOptionPane.showMessageDialog(null, "删除成功!", "系统提示", javax.swing.JOptionPane.ERROR_MESSAGE);

          }

          else

          {

              javax.swing.JOptionPane.showMessageDialog(null, "删除失败!", "系统提示", javax.swing.JOptionPane.ERROR_MESSAGE);

          }

         

          //System.out.println(textField);

          this.setVisible(false);

      }

      else

      {

            javax.swing.JOptionPane.showMessageDialog(null, "请输入删除信息!", "系统提示", javax.swing.JOptionPane.ERROR_MESSAGE);

            textField_id.setText(null);               

            textField_id.requestFocus();

             return;

      }

     

   }

4.3.3 更新客户信息

功能描述:查询需要更新的记录,进行相应修改后,系统进行数据库有效性检查,提示相应的信息,合法后进行数据库更新操作。

核心代码:

public void modifycustomer()

   {

      String newphone = textField_newcustomer.getText().trim().toString();

      String oldphone = textField_oldcustomer.getText().trim().toString();

      System.out.println(newphone);

  

     

     Customer e = new Customer();

     e.setPhone(newphone);

 

     int result = csi.updateCustomerByPhone(e,oldphone);

      if(result>0)

      {

         javax.swing.JOptionPane.showMessageDialog(null, "更新成功!", "系统提示", javax.swing.JOptionPane.INFORMATION_MESSAGE);

         this.setVisible(false);

         return;

      }

      else

      {

         javax.swing.JOptionPane.showMessageDialog(null, "更新失败!", "系统提示", javax.swing.JOptionPane.ERROR_MESSAGE);

          return;

      }     

   }

4.3.4 查询客户信息

功能描述:检查用户输入的查询条件是否合法,合法后,进行数据库的查询操作。

核心代码:

public void showCustomerInfo()

   {

  

      String customername = textField_name.getText().trim().toString();

     

      String customerphone = csi.getCustomerPhone(customername);

      //System.out.println(customername);

      Customer e=new Customer();

       e.setName(customername);

       e.setPhone(customerphone); 

      

       //textField_phone.setText(customerphone);

      

      if (csi.isExistn(customername))

       {

          javax.swing.JOptionPane.showMessageDialog(null, "客户存在", "系统提示", javax.swing.JOptionPane.INFORMATION_MESSAGE);

           System.out.println(customerphone);

           textField_name.setEnabled(true);

           textField_name.setText(customername);

            textField_phone.setText(customerphone);

 

           return;

       }

       else

       {

          javax.swing.JOptionPane.showMessageDialog(null, "客户不存在", "系统提示", javax.swing.JOptionPane.ERROR_MESSAGE);

    

          return;

         

       }

     

   }

5 系统测试

5.1 用户登录测试

等价类划分:

  1. T1N1:用户名正确 T1N2:用户名错误 T1N3:用户名为空
  2. T1P1:密码正确   T1P2:密码错误   T1P3:密码为空

 

表5-1 用户登录等价类划分

测试用例

等价类

预期结果

测试输出

LT001

T1N1- T1P1

成功登录并进入主界面

成功登录并进入主界面

LT002

T1N1- T1P2

登录失败,并提示

登录失败,并提示

LT003

T1N1- T1P3

登录失败,并提示:密码不能为空

登录失败,并提示:密码不能为空

LT004

T1N2- T1P1

登录失败,并提示

登录失败,并提示

LT005

T1N2- T1P2

登录失败,并提示

登录失败,并提示

LT006

T1N2- T1P3

登录失败,并提示:密码不能为空

登录失败,并提示:密码不能为空

LT007

T1N3- T1P1

登录失败,并提示:用户名不能为空

登录失败,并提示:用户名不能为空

LT008

T1N3- T1P2

登录失败,并提示:用户名不能为空

登录失败,并提示:用户名不能为空

LT009

T1N3- T1P3

登录失败,并提示:用户名不能为空

登录失败,并提示:用户名不能为空

 

5.2 增加客户测试

等价类划分:

  1. T2N1:客户编号不存在   T2N2:客户编号为空   T2N3:客户编号已存在
  2. T2P1:客户姓名不存在   T2P2:客户姓名为空   T2P3:客户姓名已存在

 

 

表5-2 增加客户等价类划分

测试用例

等价类

预期结果

测试输出

AT001

T2N1- T2P1

客户添加成功

客户添加成功

AT002

T2N1- T2P2

客户添加失败,并提示

客户添加失败,并提示

AT003

T2N1- T2P3

客户添加成功

客户添加成功

AT004

T2N2- T2P1

客户添加失败,并提示

客户添加失败,并提示

AT005

T2N2- T2P2

客户添加失败,并提示

客户添加失败,并提示

AT006

T2N2- T2P3

客户添加失败,并提示

客户添加失败,并提示

AT007

T2N3- T2P1

客户添加失败,并提示

客户添加失败,并提示

AT008

T2N3- T2P2

客户添加失败,并提示

客户添加失败,并提示

AT009

T2N3- T2P3

客户添加失败,并提示

客户添加失败,并提示

5.3 删除客户测试

等价类划分:

  1. T2N1:客户编号不存在   T2N2:客户编号为空   T2N3:客户编号已存在

表5-3 删除客户等价类划分

测试用例

等价类

预期结果

测试输出

DT001

T2N1

客户删除失败,并提示

客户删除失败,并提示

DT002

T2N2

客户删除失败,并提示

客户删除失败,并提示

DT003

T2N3

客户删除成功

客户删除成功

5.4 查询客户测试

等价类划分:

  1. T2N1:客户编号不存在   T2N2:客户编号为空   T2N3:客户编号已存在

表5-4 查询客户等价类划分

测试用例

等价类

预期结果

测试输出

FT001

T2N1

客户查询失败,并提示

客户查询失败,并提示

FT002

T2N2

客户查询失败,并提示

客户查询失败,并提示

FT003

T2N3

客户查询成功

客户查询成功

5.5 修改客户测试

等价类划分:

  1. T2N1:原客户号码不存在   T2N2:原客户号码为空   T2N3:原客户号码已存在
  2. T2P1:新客户号码不存在   T2P2:新客户号码为空   T2P3:新客户号码已存在

 表5-5 修改客户等价类划分

测试用例

等价类

预期结果

测试输出

MT001

T2N1- T2P1

客户修改失败,并提示

客户修改失败,并提示

MT002

T2N1- T2P2

客户修改失败,并提示

客户修改失败,并提示

MT003

T2N1- T2P3

客户修改失败,并提示

客户修改失败,并提示

MT004

T2N2- T2P1

客户修改失败,并提示

客户修改成功

MT005

T2N2- T2P2

客户修改失败,并提示

客户修改失败,并提示

MT006

T2N2- T2P3

客户修改失败,并提示

客户修改成功

MT007

T2N3- T2P1

客户修改成功

客户修改成功

MT008

T2N3- T2P2

客户添加失败,并提示

客户修改失败

MT009

T2N3- T2P3

客户修改失败,并提示

客户修改失败,并提示

 

 

6 课程设计总结

此次课程设计在陆老师的悉心指导下,并且通过自己不断的摸索和交流学习,最终商品房销售中的客户信息管理系统得以完成。系统充分的运用到了Java程序语言、Mysql数据库、MVC架构等知识,使系统的层次性分明,各模块之间的耦合度降低。

通过陆老师几次课程,对于系统各个模块有了初步了解,完成了基本的客户的处理:增加、删除、修改、查询。在课程设计中,遇到了一些问题,也感觉到自己存在的不足,通过向他人请教以及查阅相关资料,自己感觉收获了很多。此次课程设计,增加了自己对计算机编程方面的渴望,对于系统体系结构有了更深层次的理解,希望在今后的日子里,通过不断向老师学习,拓展自己的知识面,使自我的编程水平得到不断提高。

7 参考文献

[1] 耿祥义,张跃平. 《Java与面向对象程序设计》.第二版.北京:清华大学出版社,2013.

[2] 李春葆,曾平. 数据库原理与应用.第二版.北京:清华大学出版社,2007.

[3] 李钟尉,陈丹丹.java项目开发案例全程实录(第2版) 2011.
[4] 刘长炯.MyEclipse6 Java开发中文教程[M].北京:电子工业出版社 2007.
[5] 印雯. Java语言与面向对象程序设计[M].北京:清华大学出版 2000.
[6] Swing ,David M.Geary.Java2图形设计[M].北京:机械工业出版社 2000.
[7] 王珊,萨师煊. 数据库系统概论(第四版)[M].北京:高等教育出版社 2006.
[8] 郑岩.数据仓库与数据挖掘原理及应用.[M].北京:清华大学出版社 2011
[9] 张海藩.  软件工程导论(第5版).[M] .北京:清华大学出版社 2007

 

 

你可能感兴趣的:(基于java商品房产销售管理系统设计)