商品房销售系统课程设计报告.docx

上传人:b****6 文档编号:3727922 上传时间:2022-11-24 格式:DOCX 页数:22 大小:327.24KB
下载 相关 举报
商品房销售系统课程设计报告.docx_第1页
第1页 / 共22页
商品房销售系统课程设计报告.docx_第2页
第2页 / 共22页
商品房销售系统课程设计报告.docx_第3页
第3页 / 共22页
商品房销售系统课程设计报告.docx_第4页
第4页 / 共22页
商品房销售系统课程设计报告.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

商品房销售系统课程设计报告.docx

《商品房销售系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《商品房销售系统课程设计报告.docx(22页珍藏版)》请在冰豆网上搜索。

商品房销售系统课程设计报告.docx

商品房销售系统课程设计报告

********大学

 

课程设计报告

 

课程设计名称:

软件综合课程设计

课程设计题目:

商品房销售管理系统

 

院(系):

计算机学院

专业:

计算机科学与技术

班级:

学号:

姓名:

指导教师:

完成日期:

 

第1章需求分析1

1.1课题背景1

1.2系统功能1

1.3采用的工具2

第2章概要设计3

2.1数据库E-R图3

2.1.1房屋实体的E-R图3

2.1.2业主实体的E-R图4

2.1.3用户实体E-R图4

2.1.4各实体间的关系5

2.2系统的功能模块分析5

第3章详细设计7

3.1数据库表的建立7

3.2功能模块的设计9

3.2.1主程序设计9

3.2.2查询及销售功能模块程序设计10

3.2.3管理功能模块程序设计10

第4章调试分析12

调试过程中遇到的错误及解决方法12

第5章用户手册13

参考文献17

附录(程序清单)18

第1章需求分析

1.1课题背景

在科学技术迅猛发展的现代化社会,人类的各种物质需求不断增加。

相应的,人们对住房的需求也迅速增长。

而且对住房的质量和周围的环境也有很高的要求。

而相对于村镇来说,城市里的各种设施更能满足于人们的各种生活和工作需要。

有需求就会有相应的供应,所以导致现在的村镇都朝着城市化发展。

很明显的表现就是住房的集中化和大型化。

随着住房的大量兴建,住房的销售和统一管理就成为了一个不可忽视的问题。

而当今社会也是一个高度发展的信息化社会。

电脑及网络等信息技术的应用很好的帮助了人们解决诸如此类的比较复杂的管理问题。

于是针对住房的销售和管理,就产生了一系列的商品房销售管理系统。

一个好的销售管理系统能让管理者轻松的进行管理。

如:

检索迅速、查找方便。

再者,管理系统可靠性高、存储量大、成本低等。

所以,商品房销售管理系统对于现代化住房的销售管理有着很重要的意义。

1.2系统功能

本系统功能需求如下:

(1)要针对某住宅小区房屋信息建立合理的数据结构

建立数据结构主要用到的是mysql来建立相应的数据信息表,本系统则建立了三个信息表。

包括房屋信息表,业主信息表,用户信息表。

(2)可按多种方式对房屋进行查询(楼号、房号、户型等)

该功能主要是对房屋的信息进行查询,可满足用户的管理,也可以满足客户购房时的选择需要。

查询方式有多种,可以按照输入的单个信息进行查询,也可以输入多个信息同时查询。

(3)实现售房功能

该功能主要为客户设计,在查询功能里面查询出适合的房屋之后就可点击购买,然后填写业主信息,确认之后即可完成购买。

(4)业主信息管理

业主信息管理功能主要是对购完房的客户即业主进行管理。

管理方式主要是查询业主信息,修改业主信息,或者删除业主。

1.3采用的工具

本系统的开发所用到的开发环境平台是NavicatforMysql和Netbeans两款软件。

NavicatforMySQL是一款强大的MySQL数据库管理和开发工具,它为专业开发者提供了一套强大的足够尖端的工具。

NavicatforMySQL基于Windows平台,为MySQL量身订作,提供类似于MySQL的用管理界面工具。

所以NavicatforMySQL的作用是建立相关的数据表项。

NetBeans包括开源的开发环境和应用平台,NetBeansIDE可以使开发人员利用Java平台能够快速创建Web、企业、桌面以及移动的应用程序,且NetBeans对于初学者而言易学易上手。

所以本系统采用Netbeans进行软件的后台开发。

第2章概要设计

2.1数据库E-R图

本系统主要有住房,业主和用户三个实体,每个实体包含不同的属性。

下面分别介绍各个实体的E-R图。

2.1.1房屋实体的E-R图

房屋主要有楼号、楼层号、房号等属性,具体关系如图2.1所示。

 

图2.1房屋E-R图

 

2.1.2业主实体的E-R图

业主主要有姓名、性别、年龄等属性,具体关系如图2.2所示。

 

图2.2业主E-R图

2.1.3用户实体E-R图

用户只有姓名和密码两个属性,关系如图2.3所示。

 

图2.3业主E-R图

 

2.1.4各实体间的关系

在本系统中,各个实体间都有着不同的联系。

其中用户即员工和房屋之间存在管理和被管理的关系。

它们之间的联系类型是n:

n。

因为每个员工可以管理多个房屋,一个房屋可以被多个员工管理。

而业主和房屋之间的管理是购买与被购买。

它们之间的联系类型是1:

n。

因为一个业主可以购买多个房屋。

各实体间的关系如图2.4所示。

n

n

n

1

图2.4实体间的关系图

2.2系统的功能模块分析

本次系统设计的功能菜单主要有两个模块查询及销售,管理。

两个模块再往下细分。

主功能模块图如图2.5所示。

 

图2.5系统功能模块图

此系统各个功能之间相互联系,相互完善。

最后使系统能够正常运行也能满足需求。

下面逐一讲解各个模块的具体功能。

查询及销售模块里面包含住房信息的查询,销售和业主信息的录入。

查询功能能够对楼房的各种信息进行方便快捷的查询,如房屋的面积,单价,朝向,是否已售等。

当有客户需要购房时就可以查询未售的房屋信息,如果客户确定购买所查询的房屋,点击购买即可进入业主信息录入界面。

在输入业主信息之后确定就录入了业主的信息。

管理模块主要是对业主信息进行管理,添加用户及修改密码。

业主信息管理主要是查询业主信息以及对业主信息进行修改。

添加用户即添加售楼员工。

当员工登陆系统之后就可以进入密码修改页进行密码修改。

 

第3章详细设计

3.1数据库表的建立

该系统需建立三个数据库表,分别为:

房屋表、业主表、用户表。

各个表的详细设计情况如下:

(1)房屋信息表如表3.1tabhouse

表3.1tabhouse

属性名称

属性类型

长度

属性含义

Lou

int

20

楼号

Floor

int

20

楼层号

Fang

int

20

房号

Area

int

20

面积

Price

int

20

单价

Type

varchar

30

户型

Face

varchar

30

朝向

Zhuangt

varchar

30

状态

Ownerid

varchar

20

户主编号

该表用来建立房屋的数据信息,在往后与业主信息表联系起来完善系统的主要数据关系。

注1:

该表包含房屋的各个信息,其中楼号,楼层号和房号唯一标识一个房屋,所以用次三个信息作房屋的联合主键。

注2:

表中的ownerid表示户主的编号,若房屋未出售,则该项为空。

 

(2)业主信息表如表3.2tabowner

表3.2tabowner

属性名称

属性类型

长度

属性含义

Name

varchar

30

业主姓名

Sex

varchar

30

性别

Age

int

20

年龄

Tel

varchar

20

电话

Shenf

varchar

20

身份证号

此表是业主的信息表,用来表示业主的各个信息。

其中只有年龄一项是用整形,其余都用varchar类型。

注1:

该表原考虑用业主姓名作主键,但是由于业主姓名有重复的可能,而每个人的身份证号码是唯一的。

一个身份证号码唯一标志一个人,所以用身份证号码作为业主表的主键。

注2:

业主表本来考虑到用楼号、楼层号、房号来做联合主键。

但是有考虑到一个人可能买多套房,所以楼房号码并不能唯一标识一个业主。

故用身份证号码作业主主键。

(3)用户信息表如表3.3tabuser

表3.3tabuser

属性名称

属性类型

长度

属性含义

User

Varchar

30

用户名

Psw

Varchar

20

密码

该表是用户信息表,主要包括用户名和用户密码两项内容。

建立此表主要是用于实现管理员工的信息添加,方便员工使用该系统对房屋信息进行管理。

 

3.2功能模块的设计

根据系统的需求分析,把主界面设计成两个主要的模块:

房屋查询及销售和管理。

3.2.1主程序设计

主程序的功能主要是判断然后让员工进入系统。

再根据员工所选择的操作进行处理。

程序的流程图如图3.1所示。

 

N

Y

 

 

图3.1主程序设计

3.2.2查询及销售功能模块程序设计

该功能模块主要实现房屋的增、删、改、查以及房屋的购买和业主信息的录入。

详细设计如图3.2所示。

 

N

Y

 

图3.2查询及销售功能模块程序设计

3.2.3管理功能模块程序设计

本模块主要完成业主信息的查询、修改、删除、添加用户和用户密码的修改。

具体的程序设计如图3.3所示。

 

N

Y

 

图3.3管理功能模块程序设计

第4章调试分析

调试过程中遇到的错误及解决方法

(1)在最先设计业主表的时候,我想用楼房号作业主表的主键。

但是后来想到某一个人可能买多套房。

这样该数据表就不能满足要求。

经过思考之后我想到用业主的身份证号作为业主表的主键。

再在楼房信息表里面加入业主身份证号一项。

这样就能满足一个人可以买多套房的要求。

(2)在使用netbeans进行代码编写的代码不能正常运行。

但是又无法检测出错误。

在询问同学之后才发现,原来是netbeans还未配置好。

正确的做法是要先配置jdk环境变量还要添加jdbc驱动,然后程序方能正常运行。

(3)在做主界面后台代码的编写时,代码编写正确,但是点击“查询及销售“按钮之后没有响应。

在参考了一个其他项目的设计之后发现原来是选择事件的时候选择错误。

我选择的是action一项,而正确的选项应该是mouse一项。

修改之后,点击按钮,正常运行结果。

(4)在运行程序子功能后,需要关闭子窗口。

但是点击关闭之后所有窗口都被关闭了。

最初我以为是在代码段里面修改设置。

但是在询问同学之后发现只需要在窗口设计里面点击属性。

然后把里面的第一栏修改为HIDE即可。

然后关闭子窗口,其他窗口不变。

 

第5章用户手册

本系统的用户需先用用户名和密码登陆主界面,然后再选择相应的操作选项。

登陆界面和主界面如图5.1和5.2所示。

图5.1登陆界面

图5.2系统主界面

1.房屋查询及销售功能,用户可对楼房信息进行添加、修改、查询、删

除并帮助客户购买房屋和录入业主信息等。

(1)添加住房信息时需要填写房屋的各项信息,房屋状态需调到待售状态。

填写完之后点击添加按钮即可完成添加。

操作图如5.3所示。

图5.3房屋信息添加界面

(2)查询功能可以对房屋信息进行多种方式的查询,也可以同时输入几个信息同时查询。

界面如图5.4所示。

图5.4房屋信息查询界面

(3)修改时只需要点击需要修改的项进行修改,完成之后点击修改即可。

时只要选中要删除的那一行,点击删除即可。

由于修改和删除的操作比较简单,就不附上截图说明了。

(4)购买房屋时需要先单击要购买的房屋项,然后点击购买就进入了业主信息填写界面。

业主信息填写界面如图5.5所示。

图5.5业主信息填写界面

2.管理功能主要是对业主信息进行查询、修改、删除,添加用户,密码修改。

(1)要对业主信息进行查询时可以选择姓名查询和楼房号进行查询。

查询界面如图5.6所示。

图5.6业主信息按姓名查询界面

(2)业主信息修改和删除操作计较简单,就不附上示例图片了。

(3)添加用户时需要填写用户姓名和用户密码,点击确认即可。

界面如图5.7所示。

图5.7添加用户界面

(4)密码修改需要先输入旧密码,若旧密码正确,再输入两次新密码。

界面如图5.8所示。

图5.8密码修改界面

参考文献

[1]亮剑.java项目开发案例导航[M].北京:

电子工业出版社,2012.3

[2]java开发实战[M].北京:

清华大学出版社,2013

[3]冯庆东,李根福.JavaWeb程序开发参考手册[M].北京:

机电工业出版社,2013.8

[4]宋波,周传生.Java程序设计基于JDK6和NetBeans实现习题解答与实验指导[M].北京:

清华大学出版社.2013.11

[5]王建华.Java程序设计习题与上机实践[M].北京:

高等教育出版社,2013.2

[6]王珊,萨师煊.数据库系统概论[M].北京:

高等教育出版社,2011.6

[7]张思民.JAVA程序设计实践教程[M].北京:

清华大学出版社,2006.8

[8]姚普选.数据库系统基础与应用[M].西安:

西安电子科技大学出版社,2013.2

[9]邱俊涛.JavaScript核心概念及实践[M].北京:

人民邮电出版社,2013.5

附录(程序清单)

主程序代码:

1.主程序代码

publicclassMainFrameextendsjavax.swing.JFrame{

publicMainFrame(Tabuseruser){

//设置背景图片

((javax.swing.JPanel)this.getContentPane()).setOpaque(false);

//Bluehills.jpg这个图片的位置要跟当前这个类是同一个包下

.URLurl=MainFrame.class.getResource("3.jpg");

javax.swing.ImageIconimg=newjavax.swing.ImageIcon(url);

javax.swing.JLabelbackground=newjavax.swing.JLabel(img);

this.getLayeredPane().add(background,newInteger

(Integer.MIN_VALUE));

background.setBounds(0,0,img.getIconWidth(),

img.getIconHeight());

initComponents();

this.setLocation(250,150);

}

privatevoidjMenuItem4ActionPerformed(java.awt.event.ActionEventevt){

//TODOaddyourhandlingcodehere:

YeZhuinfodyz=newYeZhuinfo();

dyz.setVisible(true);

}

privatevoidjMenuItem5ActionPerformed(java.awt.event.ActionEventevt){

//TODOaddyourhandlingcodehere:

TianJiayhdtj=newTianJiayh();

dtj.setVisible(true);

}

privatevoidjMenuItem6ActionPerformed(java.awt.event.ActionEventevt){

//TODOaddyourhandlingcodehere:

MiMaxdmm=newMiMax();

dmm.setVisible(true);

}

privatevoidjMenu2MouseClicked(java.awt.event.MouseEventevt){

System.exit(0);

}

privatevoidjMenu17MouseClicked(java.awt.event.MouseEventevt){

//TODOaddyourhandlingcodehere:

ChaXunzfdxz=newChaXunzf();

dxz.setVisible(true);

}

2.业主信息管理代码

privatevoidjButton1ActionPerformed(java.awt.event.ActionEventevt){

//TODOaddyourhandlingcodehere:

//查询入口

Stringname=jTextPane1.getText();

intlouh;if((String)jTextPane2.getText()==null||((String)jTextPane2.getText()).trim().length()<1)

{louh=-1;

}

else

louh=Integer.parseInt(jTextPane2.getText());

intfloor;

if((String)jTextPane3.getText()==null||((String)jTextPane3.getText()).trim().length()<1)

{floor=-1;

}

else

floor=Integer.parseInt(jTextPane3.getText());

intfangh;

if((String)jTextPane4.getText()==null||((String)jTextPane4.getText()).trim().length()<1)

{fangh=-1;

}

else

fangh=Integer.parseInt(jTextPane4.getText());

yzcx.setName(name);

yzcx.setLouh(louh);

yzcx.setFloor(floor);

yzcx.setFangh(fangh);

Listli=yzd.findAll(yzcx);

javax.swing.table.DefaultTableModelm=newjavax.swing.table.DefaultTableModel();

//m.addColumn("");

m.addColumn("姓名");

m.addColumn("性别");

m.addColumn("年龄");

m.addColumn("电话");

m.addColumn("身份证号");

m.addColumn("楼号");

m.addColumn("楼层");

m.addColumn("房号");

for(inti=0;i

m.addRow(li.get(i));

jTable1.setModel(m);

}

privatevoidjButton2ActionPerformed(java.awt.event.ActionEventevt){

//TODOaddyourhandlingcodehere:

//修改

introw=jTable1.getSelectedRow();

//得到表格选中列

intcol=jTable1.getSelectedColumn();

System.out.println(row+""+col);

inta=(Integer)jTable1.getValueAt(row,5);

intb=(Integer)jTable1.getValueAt(row,6);

intc=(Integer)jTable1.getValueAt(row,7);

System.out.println(a+""+b+""+c);

Listli=fwd.findByMcode(a,b,c);

fwd.updateID1(a,b,c,null);

yzd.delete((String)li.get(0)[0]);

yz.setName((String)jTable1.getValueAt(row,0));

yz.setSex((String)jTable1.getValueAt(row,1));

if(col==2)

{

inte=Integer.parseInt((String)jTable1.getValueAt(row,2));

yz.setAge(e);

}

else

yz.setAge((Integer)jTable1.getValueAt(row,2));

inte1=Integer.parseInt((String)jTable1.getValueAt(row,3));

yz.setTel(Integer.toString(e1));

yz.setShenf((String)jTable1.getValueAt(row,4));

booleanx=yzd.save(yz);

booleany=fwd.updateID(a,b,c,yz.getShenf());

}

privatevoidjButton3ActionPerformed(java.awt.event.ActionEventevt){

//TODOaddyourhandlingcodehere:

//删除

introw=jTable1.getSelectedRow();

//得到表格选中列

intcol=jTable1.getSelectedColumn();

inta=(Integer)jTable1.getValueAt(row,5);

intb=(Integer)jTable1.getValueAt(row,6);

intc=(Integer)jTable1.getValueAt(row,7);

fwd.updateID1(a,b,c,null);

Strings=(String)jTable1.getValueAt(row,4);

yzd.delete(s);

javax.swing.table.DefaultTableModelm=(javax.swing.table.DefaultTableModel)jTable1.getModel();

//删除表格中显示的数据

m.removeRow(row);

}

课程设计总结:

这是我第一次通过mysql平台运用java编写系统项目。

初次尝试总有很多困难和问题,通过查阅资料和与同学们沟通逐一解决能从中学到很多东西。

本次课程设计,让我了解了做一个数据库开发项目设计的过程。

从系统的需求分析、概念结构设计、后台数据库的设计、前台的开发及软件的布署工作,经历了一个相对比较完整的过程。

不过由于现有知识水平的欠缺,加上又是第一次做数据库的课程设计,所以该系统还有许多不完善的地方,比如一些细节的地方没有做好、用户界面不够美观、出错处理不够好等多方面问题

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1