花店管理系统论文12.docx
《花店管理系统论文12.docx》由会员分享,可在线阅读,更多相关《花店管理系统论文12.docx(40页珍藏版)》请在冰豆网上搜索。
花店管理系统论文12
南京林业大学
课程设计任务书
学院(系):
信息学院计算机科学与技术
专业:
计算机科学与技术
学生姓名:
谢监荣
学号:
070801320
课程设计题目:
房产中介信息管理系统开发
起迄日期:
6月21日~7月2日
课程设计地点:
计算中心
指导教师:
沈丽容
下达任务书日期:
2010年6月20日
课程设计任务书
1.本次课程设计应达到的目的:
数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。
数据库是信息系统的核心和基础,数据库设计质量的好坏直接影响系统中各个处理过程的性能和质量。
本次课程设计的目的是通过数据库设计和应用系统开发实践使学生深刻体会到数据库设计的重要性,使学生掌握数据库用户需求分析方法、概念结构设计、逻辑结构设计和物理结构设计方法,熟练掌握开发一个小型的数据库应用系统的方法。
2.本课程设计课题任务的内容和要求(包括原始数据、技术参数、设计要求等):
课程设计内容:
用一种工具开发房产中介信息管理系统,要求具有以下功能:
1、对系统用户信息进行输入、查询和修改,根据用户类别设置系统使用权限
2、对出售和出租房源信息进行输入、查询和修改。
3、对房屋销售和租赁信息进行输入、查询和修改。
4、按月对营业总额进行统计报表。
5、按区统计房屋销售套数
6、按区统计房屋每平米销售均价
7、按区统计房屋每平米租赁均价
8、按房屋年代统计每平米销售均价
9、按销售年份统计每平米销售均价
10、按租赁年份统计房屋每平米租赁均价
要求对系统业务流程进行分析后,绘制ER图,并根据ER图和数据库规范化设计理论正确地设计数据库逻辑结构,注意保持数据一致性,尽可能地降低数据冗余度。
根据库结构,选择一种合适的DBMS建立物理数据库。
在建立好数据库的基础上,选择一种合适的开发工具来设计和实现系统所有功能。
要求程序运行正确,使用方便,界面美观。
注意:
在开发过程中,数据库和应用程序的名称均应为学号,在登录界面中也要显示学号和姓名。
实习结束后,应提交数据库文件、源程序和论文。
课程设计任务书
3.对本课程设计工作任务及工作量的要求〔包括课程设计计算说明书(论文)、图纸、实物样品等〕:
要求按照计划完成各个功能模块,论文要求包括以下内容:
1、需求分析结果:
进行数据库设计前必须准确分析用户需求,包括用户需要管理的数据以及以数据处理的要求等。
2、概念结构分析结果:
对用户需求进行分析、综合、归纳和抽象,形成一个独立于具体的DBMS的概念模型,并绘制出数据库总体E-R图和局部E-R图,要求总体E-R图能反映系统中所有实体之间的联系情况,局部E-R图能够反映每个实体的所有属性
3、逻辑结构设计结果:
根据E-R图设计数据库中各个关系模式的结构,要求给出每个关系模式的所有属性名称及其主码,若存在外码,则也要指出来。
4、物理结构设计结果:
列出数据库中各个表的物理结构,包括每个表中每个字段的名称、数据类型、宽度、NULL属性、字段含义、主码、外码等,并给出创建每个数据表的SQL语句,并说明在程序中数据库与应用程序的连接方法。
5、系统关键模块详细设计与实现方法:
至少列举一个输入模块、一个查询和修改模块、一个统计报表模块,详细说明这些模块的实现方法。
6、系统测试结果:
对各个功能模块进行测试,说明系统能否正确运行,要求包括测试数据和测试结果的界面。
实验总结,要求对数据库设计方法和开发工具使用方法进行详细总结
4.主要参考文献:
图书按以下格式著录:
[1]何旭洪,余建英编著.PowerBuilder数据库系统开发实例导航.北京:
人民邮电出版社.2003
[2]萨师煊,王珊.数据库系统概论.北京:
高等教育出版社.2000
课程设计任务书
5.本课程设计课题工作进度计划:
起迄日期
工作内容
6月21日~6月25日
6月28日~7月1日
7月2日
完成系统业务流程分析、数据流程分析,设计数据库概念结构和逻辑结构,建立物理数据库,创建系统主界面和登录界面,完成各个输入模块界面设计和程序设计。
完成各个查询和修改模块界面设计和程序设计;完成各个统计报表模块界面设计和程序设计,对系统进行编译发布;撰写实习报告。
提交实习报告和程序。
系(教研组)主任审查意见:
负责人签字:
年月日
南京林业大学
课程设计说明书(论文)
学生姓名:
谢监荣
学号:
070801320
学院(系):
信息科学与技术学院
专业:
计算机科学与技术
题目:
房产中介信息管理系统开发
指导教师:
章春芳职称:
讲师
2010年7月5日
一、系统设计
1.系统需求分析
(1)系统用户维护和管理,主要是用户信息的输入、查询和修改,包含用户名、密码、和用户类型等信息。
(2)基本表信息分析
Ø销售/租赁房源基本信息的登记,包括房产编号、房主/卖主(房东)、卖主联系电话、房产面积、每平米售价/每月租金、所在的区域方位、房产年代、是否已经销售/是否已经出租等。
这里有SHOUSE,RHOUSE表
Ø销售(租赁)房源基本信息的查询,可进行多条件,多选择的查询。
这里有SALE,RENT表
Ø销售(租赁)交易订单信息,包括交易号,房产编号,顾客,顾客电话,交易金额,交易时间(含年、月、日);租赁交易的订单还包含租赁时间长度,开始租赁时间和结束时间。
(3)订单查询分析
Ø销售订单信息包含SALE,SHOUSE表的所有信息。
Ø租赁订单信息包含RENT,RHOUSE表的所有信息。
Ø查询时,以SALE或RENT表的基本信息列出清单,再根据具体需求,实现多表查询。
2.系统功能模块的设计
在系统需求分析的基础上,结合系统设计的目标,可将本系统划分为以下六个模块:
●用户管理:
主要包括用户登录,口令修改,新用户注册,设置用户权限等功能
●房屋出售管理:
主要包括出售房源信息的添加、删除和修改,以及其基本维护;
●房屋出租管理:
主要包括租赁的房源信息添加、删除和修改,以及其基本维护;
●查询与交易模块:
主要包括对出售/租赁房源的综合查询以及实现出售,租赁,另外还包括对买方或租方的信息登记;
●报表模块:
主要实现根据不同需要打印不同的报表;
●关于:
版权信息。
二.数据库设计
1.数据库需求分析
Ø销售(租赁)房源信息:
房产编号、房主/卖主(房东)、卖主联系电话、房产面积、每平米售价(每月租金)、所在的区域方位、房产年代、是否已经销售(是否已经出租)、备注信息。
Ø销售(租赁)交易信息:
房产编号,客户,身份证号,客户电话,交易金额,交易时间(含年、月、日);租赁交易的订单还包含租赁时间长度,开始租赁时间和结束时间。
2.数据库概念结构设计
根据以上数据库需求分析,设计E-R图如下:
(1)销售房源实体E-R图
(2)租赁房源实体E-R图
(3)销售交易实体E-R图
(4)租赁交易实体E-R图
(5)用户实体E-R图:
(6)、实体之间的关系ER图
3.数据库逻辑结构设计
将上面的数据库概念结构转化为ACCESS数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。
具体数据库如下图:
用户表:
销售房源表:
销售记录表:
租赁房源表:
租赁记录表:
三.数据库的链接
应用程序对象的open事件中写以下代码,连接数据库,并在程序执行时先打开登录窗口:
//Profilehouse
SQLCA.DBMS="ODBC"
SQLCA.AutoCommit=False
SQLCA.DBParm="ConnectString='DSN=house'"
connect;
open(login)
4.功能模块创建
全局变量:
intLOGIN_TIME
stringtyper
stringcname
stringghouseid,hid
(1)用户登录界面
相关代码如下
Open事件中:
LOGIN_TIME=0
Environmentenv
intl_ScrWidth,l_ScrHeight
setRedraw(false)
GetEnvironment(env)
l_ScrWidth=PixelsToUnits(env.ScreenWidth,XpixelsToUnits!
)
l_ScrHeight=PixelsToUnits(env.ScreenHeight,XpixelsToUnits!
)
Move((l_ScrWidth-this.width)/2,(l_ScrHeight-this.height)/2)
setRedraw(true)
“确定”按钮的clicked事件:
stringpsw,uname,upwd
inti
typer=trim(ddlb_1.text)
ifddlb_1.text=""then
messagebox("注意","用户类型不能为空!
")
ddlb_1.setfocus()
elseifsle_1.text=""then
messagebox("注意","用户名不能为空!
")
sle_1.setfocus()
elseifsle_2.text=""then
messagebox("注意","密码不能为空!
")
sle_2.setfocus()
else
LOGIN_TIME=LOGIN_TIME+1
uname=trim(sle_1.text)
upwd=trim(sle_2.text)
selectpasswordinto:
psw
fromusers
whereuserid=:
unameandusertype=:
typer;
ifsqlca.sqlcode=0andupwd=pswthen
open(w_main)
close(w_login)
choosecasetyper
case"员工"
m_main.m_系统.m_用户维护.enabled=false
m_main.m_房屋出售.m_出售信息维护.enabled=false
m_main.m_房屋出租.m_租赁信息维护.enabled=false
case"客户"
cname=uname
m_main.m_系统.m_用户维护.enabled=false
m_main.m_房屋出租.enabled=false
m_main.m_房屋出售.enabled=false
m_main.m_报表.enabled=false
endchoose
elseifsqlca.sqlcode=1then
messagebox("信息","连接失败!
!
")
else
//sle_1.text=""
sle_2.text=""
ifLOGIN_TIME>2then
messagebox("警告","输入用户口令的次数太多!
")
close(w_login)
else
messagebox("警告","输入用户口令有误,请重新输入!
")
endif
endif
endif
“取消”按钮clicked事件:
close(w_login)
(二)主界面菜单的设计中主要是m_main的设计,该菜单的结构及代码如下:
1、窗口设计
2、相关代码
Open事件:
stringday,tim
day=string(today())
tim=string(now())
st_5.text=day+""+tim
st_2.text=w_login.sle_1.text
●系统
1)注销:
open(w_login)close(w_main)
2)修改口令:
open(w_update)
3)用户维护:
open(w_user)
4)退出:
close(w_main)
●房屋出售
1)出售房源信息:
open(w_shouse)
2)出售信息维护:
open(w_shouse_weihu)
●房屋出租
1)租赁房源信息:
open(w_rhouse)
2)租赁信息维护:
open(w_rhouse_weihu)
●查询与交易
1)出售房源
a.查询:
open(w_shouse_lookfor)
b.客户购买情况:
open(w_saleinfo)
2)租赁房源
a.查询:
open(w_rhouse_lookfor)
b.客户租赁情况:
open(w_rentinfo)
●报表
1)月营业总额
2)区统计房屋销售数
3)区统计房屋平米销售均价
4)区统计房屋平米租赁均价
5)年代统计平米销售均价
6)年份统计平米销售均价
7)年份统计平米租赁均价
●关于
作者信息:
open(w_authorinfo)
(3)系统模块
1)注销
实现用户的切换,代码如下:
open(w_login)
close(w_main)
2)修改口令
允许每个用户自由的修改自己的密码,界面如下:
代码如下:
“确定”按钮的clicked事件:
stringpsw,typer,uname,upwd
intflag=0
ifsle_1.text=""then
messagebox("注意","原密码不能为空!
")
sle_1.setfocus()
elseifsle_2.text=""then
messagebox("注意","新密码不能为空!
")
sle_2.setfocus()
elseifsle_3.text=""then
messagebox("注意","确认密码不能为空!
")
sle_3.setfocus()
else
ifsle_2.text=sle_3.textthen
updateuserssetpassword=:
sle_2.textwherepassword=:
sle_1.textanduserid=:
w_main.st_2.text;
ifsqlca.sqlcode=0then
flag=messagebox("消息","修改密码成功!
")
sle_1.text=''
sle_2.text=''
sle_3.text=''
ifflag=1then
open(w_main)
close(w_update)
endif
else
messagebox("警告","修改失败!
")
endif
else
messagebox("警告","确认密码不正确!
")
sle_3.text=''
endif
endif
“取消”按钮clicked事件:
close(w_update)
3)用户维护
允许系统管理员对用户进行管理,界面如下:
代码如下:
open事件:
dw_1.settransobject(sqlca)
dw_1.retrieve()
“添加”按钮的clicked事件:
inti
i=dw_1.getrow()
dw_1.insertrow(i)
“删除”按钮的clicked事件:
ints,i
s=messagebox("提示","你正在删除用户,继续吗?
",question!
yesnocancel!
2)
ifs=1then
dw_1.deleterow(0)
i=dw_1.update()
ifi=1then
commitusingsqlca;
else
rollbackusingsqlca;
endif
endif
“保存”按钮的clicked事件:
intk,l
k=dw_1.update()
ifk=1then
commitusingsqlca;
l=messagebox("提示","保存成功!
")
//ifl=1then
open(w_main)
close(w_user)
//endif
else
messagebox("警告","操作不成功!
")
rollbackusingsqlca;
endif
4)退出
close(w_main)
(四)房屋出售模块
1)出售房源信息
用于对待出售房源进行添加、删除和修改,界面设计如下:
代码如下:
Open事件:
iftyper="员工"then
cb_6.enabled=false
endif
dw_1.settransobject(sqlca)
dw_1.retrieve()
st_3.text="1"
st_5.text=string(dw_1.rowcount())
“最前一条”按钮的clicked事件:
dw_1.scrolltorow
(1)
st_3.text="1"
“前一条”按钮的clicked事件:
inti
ifdw_1.getrow()>1then
i=dw_1.scrollpriorrow()
st_3.text=string(i)
else
messagebox("提示","已到头,这是第一记录")
st_3.text="1"
endif
“后一条”按钮的clicked事件:
inti
ifdw_1.getrow()i=dw_1.scrollnextrow()
st_3.text=string(i)
else
st_3.text=string(dw_1.rowcount())
messagebox("提示","已到末尾,这是最后一项记录")
endif
“最后一条”按钮的clicked事件:
inti
i=dw_1.rowcount()
dw_1.scrolltorow(i)
st_3.text=string(i)
“插入”按钮clicked事件:
inti
i=dw_1.getrow()
dw_1.insertrow(i)
“删除”按钮的clicked事件:
intstr
inti
ifcname="员工"then
messagebox("提示","员工无此权限!
")
else
str=messagebox("注意","真的要删除嘛?
",question!
yesnocancel!
2)
ifstr=1then
dw_1.deleterow(0)
i=dw_1.update()
ifi=1then
commitusingsqlca;
st_5.text=string(integer(st_5.text)-1)
else
rollbackusingsqlca;
endif
endif
endif
“确认”按钮的clicked事件:
dw_1.update()
ifdw_1.update()>0then
commitusingsqlca;
st_5.text=string(dw_1.rowcount())
messagebox("提示","修改成功!
")
else
rollbackusingsqlca;
messagebox("警告","修改不成功!
")
endif
“退出”按钮的clicked事件:
intmcount
intupdateornot
mcount=w_shouse.dw_1.modifiedcount()
ifmcount=0then
close(w_shouse)
elseifmcount>0then
updateornot=messagebox("保存修改","您修改了数据窗口中的数据,现在是否保存?
",question!
yesnocancel!
)
ifupdateornot=1then
ifupdate(w_shouse.dw_1,true,false)=1then
w_shouse.dw_1.resetupdate()
commit;
else
rollback;
messagebox("错误!
","数据保存失败!
")
endif
close(w_shouse)
elseifupdateornot=2then
rollback;
close(w_shouse)
endif
endif
2)房源信息维护
用于管理员对出售房源的管理,界面如下:
代码如下:
Open事件:
dw_1.settransobject(sqlca)
dw_1.retrieve()
“确认”按钮clicked事件:
ifupdate(w_shouse_weihu.dw_1,true,false)=1then
w_shouse_weihu.dw_1.resetupdate()
commit;
messagebox("提示","数据修改成功!
")
else
rollback;
messagebox("错误","数据保存失败!
")
endif
“退出”按钮clicked事件:
intmcount
intupdateornot
mcount=w_shouse_weihu.dw_1.modifiedcount()
ifmcount=0then
close(w_shouse_weihu)
elseifmcount>0then
updateornot=messagebox("保存修改","您修改了数据窗口中的数据,现在是否保存?
",question!
yesnocancel!
)
ifupdateornot=1then
ifupdate(w_shouse_weihu.dw_1,true,false)=1then
w_shouse_weihu.dw_1.resetupdate()
commit;
else
rollback;
messagebox("错误","数据保存失败!
")
endif
close(w_shouse_weihu)
elseifupdateornot=2