【精品毕设】基于JavaEE的房产评估系统设计与实现(包含源码和论文)

 

摘     要

房地产评估系统对房地产评估信息进行全面现代化管理。但一直以来人们使用传统人工的方式进行评估,这种管理方式存在着许多缺点,如:效率低、计算量大,容易出错。另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

 

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

 

本系统根据用户通过输入位置、面积、用途等房地产评估信息,由系统自行生成相应的评估结果,所以计算量小,准确性高,用户可以方便地查询、打印,还可以方便地对数据进行更新和维护。该系统还有用户界面良好、操作简单、可靠性高等特点。这些优点能够极大地提高评估效率。

 

   根据实际情况,我使用Visual Basic.NET作为数据库前台应用程序开发工具,Microsoft SQL Server2000作为后台数据库管理工具。

 

关键字:房地产评估系统,ADO,VB.NET,SQL Server

 

ABSTRACT

The real estate  take the gauge of the systems to take the gauge of the completely modern management of information proceeding to real estate. But always since then people usage the way of artificial tradition proceeds take the gauge of, this kind of management the way its a lot of weakness, such as: the efficiency is low, calculation have great capacity, and easily come amiss. Another time a long, will produce the large quantity of document with data, this for check to seek, renew with supported to all brought not a few difficulties.

 

Along with calculator science that the continuously increasing of science technique, each realm is gradually mature, and its mighty function is already to have already entered the mankind society for the deep cognition, it of people to erupt to flick more and more important function.

 

This system passes the importation position, area, use etc. the real estate to take the gauge of the information according to the customers, from the valuation that the system is by oneself born cowgirl pan out, therefore compute to measure small, the accuracy is high, and the customer can expediently search, print, can still expediently the logarithms renew with support according to the proceeding. That system returns the useful door interface good, the operation is simple, high etc. characteristics of dependable. These advantages can biggest increase the valuation efficiency.

 

  I use the Visual Basic.NET the conduct and actions database the stage development the tool, Microsoft SQL the Server2000 the conduct and actions the database backstage according to the actual circumstance.

 

 

Keyword: The real estate take the gauge of the system, ADO,VB.NET,SQL Server

 

 

 

目   录

 

 

第一部分:绪论……………………………………………………………………………5

 

第二部分:需求分析………………………………………………………………………7

 

第三部分:总体设计………………………………………………………………………8

 

第四部分:详细设计………………………………………………………………………12

       

第五部分:测试报告………………………………………………………………18

 

第六部分:关键技术分析…………………………………………………………19

 

第七部分:心得体会………………………………………………………………22

 

参考文献……………………………………………………………………………22

 

 

第一部分  绪论

 

现在我国的房地产评估管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。
    我作为一个计算机系的本科生,希望可以在这方面有所贡献。改革的总设计师邓小平同志说过“科学技术是第一生产力”,我希望能用我四年的所学编制出一个实用的程序来帮助房地产评估机构进行更有效的管理。
归纳起来,好处大约有以下几点:
1.可以存储已评估的报告,安全、高效;
2.只需一到二名评估员即可操作系统,节省大量人力,减少计算量,准确性高;
3.可以迅速查到所需信息,还可以把所需的信息打印出来。

我选择Visual Basic.NET作为数据库前台开发工具。Visual Basic.NET (又成Visual Basic 7.0或VB 7.0)是Microsoft公司在Visual Basic 6.0之后推出的最新版本,集成在Visual Studio.net 7.0中,与Visual C++.NET以及 C#组成了“.NET”构架。Visual Basic.NET提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。故而,实现本系统VB.NET是一个相对较好的选择。

    采用Microsoft SQL Server2000作为数据库后台工具。数据库能汇集各种信息以供查询、存储和检索。SQL Server2000的优点在于它是真正的客户机/服务器体系结构。图形化用户界面,使系统管理和数据库管理更加直观、简单。丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。SQL Server与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。

    下面介绍一下ADO技术。

ADO(ActiveX Data Object, Active 数据对象)是Microsoft提供的一种面向对象,与语言无关的数据访问应用编程接口。据大部分资料介绍,它有如下主要特点:
易于使用,可以访问多种数据源,访问速度快,效率高,技术编程接口丰富,低内存支出和占用磁盘空间较少。

ADO模型包括了下列对象:连接(Connection)、命令 (Command)、记录集 (Recordset)、字段 (Field)、参数 (Parameter)、错误 (Error)、属性 (Property)、集合 、事件.它们之间的关系如下图:
 

   

同传统的数据对象层次(DAO和RDO)不同,ADO可以独立创建。因此你可以只创建一个"Connection"对象,但是可以有多个,独立的"Recordset"对象来使用它。我们最常用的主要是Connection、Recordset及Command这三个对象。对于访问一个数据库来说,我们一般先建立一个ADO连接。ADO连接可以直接执行SQL语句来操纵数据库,但如果我们要对数据在应用程序和数据源之间进行存取的话,就需要用到记录集对象。一个ADO连接可以有多个ADO连接,但一个ADO连接一般只能对应一个且必须对应一个ADO连接。另外如果你可进行更高级别的访问的话,还可能要用到命令对象。例如要调用存储过程等。一个记录集包含有一个字段集,一个字段集则包含有多个字段对象。同样一个命令对象也包含一个参数集,一个参数集则包含有多个参数对象。连接对象也有一个错误集并包含有多个错误对象。

 

第二部分  需求分析

 

管理房地产评估信息工作的本身特点及特殊性质,单靠人力,会使从事这项工作的管理人员过度缠身于烦琐的业务中,难免会发生许多错误,难以做到管理的规范化,这不符合管理工作的今后发展趋势。因此,需要开发一种功能全面,操作简单的管理系统软件来辅助作用,人机配合,能够使机器承担部分工作,是管理员逐步摆脱一些无谓的,琐碎的业务,这对充分利用人力资源的主导作用及使管理工作逐步步入规范化轨道有着重要意义。

使用计算机对房地产评估信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高房地产评估信息管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。

 

通过对用户的调查了解,这个程序主要应完成以下的几点要求:

◇评估人员登录系统,评估人员输入评估信息如委托方的信息,房屋资料,房屋状况,房屋分幢成新程度(完损等级)评定表。

◇系统根据用户输入的房屋资料,房屋状况,房屋分幢成新程度(完损等级)评定表自动生成房屋价格。可以把评估结果打印出来。

◇按各种条件统计,归档。

◇随时按组合查询和模糊查询对评估报告查询。

◇只有有权限的人才可以对数据库进行维护。

 

 

第三部分  总体设计

下面将介绍总体设计部分。

数据库设计:

根据人员规模,我们只建立起一个数据库,在此数据库基础上建立起如下表。

 

小型报告表(xxbg)

 

中文名称

字段名

类型

长度

允许空

估价评估编号

gjbgbh

nchar

12

估价师

gjs

nchar

3

委托方

wtf

nchar

27

估价方

gjf

nchar

27

估价日期

gjrq

smalldatetime

4

估价时点

gjsd

smalldatetime

4

估价目的

gjmd

nchar

10

估价方法

gjff

nchar

10

房屋所有权人

syqr

nchar

14

房权证号

fqzz

nchar

2

丘(地)号

qdh

nchar

20

报告有效期

yxq

nchar

9

幢号

zh

nchar

5

结构

jg

nchar

5

房号

fh

nchar

11

房屋总屋数

zcs

smallint

2

所在数层

szcs

nchar

6

建筑面积

jzmj

jzmj

4

设计用途

sjyt

nchar

6

地基基础

djjc1

smallint

2

承重构件

czgj1

smallint

2

非承重墙

fczq1

smallint

2

屋面

wm1

smallint

2

楼地面

ldm1

smallint

2

门窗

mc1

smallint

2

外装饰

wzc1

smallint

2

内装饰

nzc1

smallint

2

顶棚

dp1

smallint

2

细木装修

xmzx1

smallint

2

水卫

sw1

smallint

2

电气照明

dgzm1

smallint

2

采暖

cn1

smallint

2

 

 

 

 

估价师档案表(gjsda)

 

中文名称

字段名

类型

长度

允许空

估价师编号

gisid

nchar

3

 

姓名

name

nchar

4

 

资格

zg

nchar

10

职称

zc

nchar

10

密码

password

nchar

7

 

设计用途表(sjyt)

 

中文名称

字段名

类型

长度

允许空

设计用途

name

nchar

6

 

价格表(jg)

 

中文名称

字段名

类型

长度

允许空

价格

name

nchar

5

 

估价目的表(gjmd)

 

中文名称

字段名

类型

长度

允许空

估价目的

name

nchar

10

 

估价依据表(gjyj)

 

中文名称

字段名

类型

长度

允许空

估价依据

name

nchar

100

 

估价原则表(gjyz)

 

中文名称

字段名

类型

长度

允许空

估价原则

name

nchar

30

 

建筑物表(jzw)

 

中文名称

字段名

类型

长度

允许空

编号

Id

bigint

8

 

估价报告编号

gjbgBH

nchar

12

 

估价方法

Gjff

nchar

10

 

面积

Mj

float

8

 

小型报告估价师表(xxbggjs)

 

中文名称

字段名

类型

长度

允许空

估价师编号

gjsId

nchar

12

 

估价报告编号

gjbgBH

nchar

12

 

 

 

房地产表(fdc)

 

中文名称

字段名

类型

长度

允许空

估价报告编号

gjbgBH

nchar

12

 

估价方法

Gjff

nchar

10

 

面积

Mj

float

8

 

建筑

jz

float

8

 

 

以上几张表均属于基本表。

 

程序设计:

将房地产评估系统设计成五个大模块,如图所示:

 

 

 

1.评估报告模块:评估人员将获得的评估信息输入系统,评估信息依次输入到房屋资料,房屋状况,房屋分幢成新程度(完损等级)评定表,估价对象概况栏,根据以上信息自动完成估价结果和估价分析与计算。这样就形成了评估报告。根据需要也可以把评估报告通过打印机打印出来。也可以查询已创建的评估报告。查询按房屋所有权人,房权证号,房屋坐落,估价时点,丘(地)号,设计用途,幢号,估价目的,房号,估价人名等条件来查询。条件不必全输入,只要输入某一项也能进行查询。查询结束后在下面的窗口显示结果,用户可以双击结果进行查看。

2.维护模块:完成对系统数据和数据库的维护,如用户名、密码的更新,归档评估报告,刷新系统数据等操作。

3.统计模块:根据时间,估价人员,估价目的,设计用途等条件进行统计。把统计结果显示到下面的窗口中。

 

 程序数据流图:

 

第五部分  详细设计

下面是详细设计部分。

1.评估报告模块

    该模块是完成对评估信息的输入、查询、并以此生成评估报告。此模块主要包括2个窗口,新建评估报告窗口、查询条件窗口。

新建评估报告主要功能是根据用户输入的信息计算出房屋价格。信息输入主要是通过TextBox控件和ComboBox控件完成。首先要输入委托方的基本信息。委托方的名称,估价方名称,房屋坐落位置,房屋所有权人房权证号,丘(地)号,报告有效期这些信息是通过TextBox控件输入。估价日期,估价时点,估价目的,估价方法是通过ComboBox控件输入。然后,输入的是房屋状况信息。幢号,房号,房屋总层数,所在层数,建筑面积(平方米)是通过TextBox控件输入,而结构和设计用途是通过ComboBox控件输入。

下面输入的是用于计算房屋价格的信息。首先要计算成新程度,成新程度由结构部分,装修部分,设备部分组成。结构部分是由地基基础,承重构件,非承重墙,屋面,楼地面组成。装饰部分是由门窗,外装饰,内装饰,顶棚,细木装修组成。设备部分是由水卫,电气照明,采暖,组成。

结构部分的合计是由用户输入的地基基础值,承重构件值,非承重墙值,屋面值,楼地面值计算。其他部分的计算类似。

公式如下,

结构部分的合计=(地基基础值+承重构件值+非承重墙值+屋面值,+楼地面值)*权重1

装修部分的合计=(门窗值+外装饰值+内装饰值+顶棚值+细木装修值)*权重2

设备部分的合计=(水卫值+外装饰值+电气照明值+采暖值)*权重3

注:权重值加起来必须等于1。

成新程度就是把结构部分的合计,装修部分的合计,设备部分的合计加起来的值。

下面要计算房屋价格。房屋价格是根据估价分析与计算里的重置价,房屋价格调节系数,其它调节系数(包括环境,装修设备,楼层,营业房)计算。

公式如下,

    房屋价格=重置价*成新系数(成新程度/10)*(1+其它调节系数合计)*(1+房屋价格调节系数)*面积

系统计算后在自动在估价分析与计算,估价结果里显示出相应的信息。

查询条件功能是根据用户输入的信息在现有的报告当中查询并显示在窗口上。

此功能是通过调用SQL语句当中的Select命令来实现。首先用open方法跟数据库建立连接,连接完成以后用select命令处理结果。

部分代码:

srchStr = "SELECT TOP 100 PERCENT Xxbg.gjbgBH,Gjsda.Name, Xxbg.Gjsd,  Xxbg.Syqr, Xxbg.Fqzh, Xxbg.Qdh, Xxbg.Zh, Xxbg.Fh,Xxbg.Fwzl, Xxbg.Gd " & _

"FROM Xxbg INNER JOIN gjsda ON Xxbg.gjs = gjsda.gjsID WHERE (" & _

"(Gjsda.Name LIKE '%" & cmoGjs.Text.Trim & "%') AND " & _

"(Xxbg.Gjsd BETWEEN '" & datGjsd1.Value & "' AND '" & datGjsd2.Value & "') AND " & _ "(Xxbg.Syqr LIKE '%" & txtSyqr.Text.Trim & "%') AND " & _

"(Xxbg.Fqzh LIKE '%" & txtFqzh.Text.Trim & "%') AND " & _

"(Xxbg.Qdh Like '%" & txtQdh.Text.Trim & "%') And " & _

"(Xxbg.Zh Like '%" & txtZh.Text.Trim & "%') And " & _

"(Xxbg.Fh Like '%" & txtFh.Text.Trim & "%') AND " & _

"(Xxbg.Gjmd LIKE '%" & cmoGjmd.Text.Trim & "%') AND " & _

"(Xxbg.Sjyt LIKE '%" & cmoSjyt.Text.Trim & "%') AND " & _

"(Xxbg.Fwzl Like '%" & txtFwzl.Text.Trim & "%')) " & _

"ORDER BY xxbg.gjsd DESC,Xxbg.gjs"

  1. “估价分析与计算”和“估价结果”文本框与其他文本框不同,自动生成其内容。“估价分析与计算”文本框中的内容根据重置价、成新系数、计算方法的不同其内容自动变换。“估价结果”文本框中的内容根据所选择时间点和所计算出的价格,显示不同的文本内容。
  • 部分代码如下

自动生成“估价分析与计算”和“估价结果”的TextBox内容的源代码

Private Sub chgFXJSandGJJG()

        Dim sStr, sStr1, s1, s2 As String, i As Short

        sStr = "根据估价依据和有关因素,估价对象的房地产重置价确定为" & _

            Format(Val(txtCbfCzj.Text), "0.00#") & "元/平方米,成新系数为" & Format(Val(lblCx.Text) / 10, "0.00#")

        sStr1 = vbCrLf & Trim(cmoJzdy.Text) & vbCrLf & "=" & Format(Val(txtCbfCzj.Text), "0.00#") & "×" & Format(Val(lblCx.Text) / 10, "0.00") & "×(1"

        If Val(txtCbftjxsV1.Text) <> 0 Then

            sStr = sStr & "," & Trim(txtCbftjxs1.Text) & "调节系数" & IIf(Val(txtCbftjxsV1.Text) > 0, "+", "") & Trim(txtCbftjxsV1.Text) & "%"

            sStr1 = sStr1 & IIf(Val(txtCbftjxsV1.Text) > 0, "+", "") & Trim(txtCbftjxsV1.Text) & "%"

        End If

……………………………………

        s1 = Format(Val(lblCbfScjz.Text), "#,###,###,###,##0.00")

        s2 = rmbDaXie(Val(Trim(lblCbfScjz.Text)))

        sStr1 = sStr1 & "×" & Format(Val(txtJzmj.Text), "#,###,###,###,##0.00#") & vbCrLf & "=" & _

            s1 & "(元)。" & vbCrLf & "大写人民币" & s2 & "。"

        txtFxJs1.Text = sStr & sStr1

        txtGjJg.Text = "估价对象在估价时点" & Format(datGjsd.Value, "yyyy年MM月dd日") & "的" & Trim(cmoJzdy.Text) & "评估为" & s1 & "元," & vbCrLf & "大写人民币" & s2 & "。"

 

2.统计模块

根据用户输入的信息在数据库中查找,找到以后显示在窗体上。

用open方法跟数据库建立连接,连接完成以后用select命令处理结果。

部分代码:

With tbl

            .Open("gjsda", serverDB, ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockReadOnly)

            Do While Not .EOF

                chkGjry.Items.Add(CStr(.Fields("name").Value).Trim)

                .MoveNext()

            Loop

            .Close()

 

            .Open("gjmd", serverDB, ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockReadOnly)

            Do While Not .EOF

                chkGjmd.Items.Add(CStr(.Fields("name").Value).Trim)

                .MoveNext()

            Loop

            .Close()

 

            .Open("sjyt", serverDB, ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockReadOnly)

            Do While Not .EOF

                chkSjyt.Items.Add(CStr(.Fields("name").Value).Trim)

                .MoveNext()

            Loop

            .Close()

        End With

 

        Me.Top += 20

 

    End Sub

 

    Private Sub cmdExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdExit.Click

        Me.Close()

    End Sub

 

    Private Sub cmdStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart.Click

        Dim sGjry, sGjmd, sSjyt As String

        Dim i As Short

        Dim tJs, tGje, tSfe As Long

        Dim tJzmj As Single

 

        sGjry = " like '%' "

        If chkGjry.CheckedItems.Count <> 0 Then

            sGjry = " in ("

            For i = 0 To chkGjry.CheckedItems.Count - 1

                sGjry = sGjry & "'" & Trim(chkGjry.CheckedItems(i)) & "',"

            Next

            Mid(sGjry, Len(sGjry), 1) = ")"

        End If

        sGjmd = " like '%' "

        If chkGjmd.CheckedItems.Count <> 0 Then

            sGjmd = " in ("

            For i = 0 To chkGjmd.CheckedItems.Count - 1

                sGjmd = sGjmd & "'" & Trim(chkGjmd.CheckedItems(i)) & "',"

            Next

            Mid(sGjmd, Len(sGjmd), 1) = ")"

        End If

        sSjyt = " like '%' "

        If chkSjyt.CheckedItems.Count <> 0 Then

            sSjyt = " in ("

            For i = 0 To chkSjyt.CheckedItems.Count - 1

                sSjyt = sSjyt & "'" & Trim(chkSjyt.CheckedItems(i)) & "',"

            Next

            Mid(sSjyt, Len(sSjyt), 1) = ")"

        End If

 

        Dim sStr As String = "SELECT " & _

                     "Count(xxbg.gjbgBH) AS vJs, " & _

                     "Sum(Xxbg.Jzmj) AS vJzmj, " & _

                     "Sum(xxbg.Fdcjz) AS vGje, " & _

                     "Sum(xxbg.Gjfwf) AS vSfe, " & _

                     "Xxbg.Gjmd " & _

                     "FROM xxbg INNER JOIN gjsda ON Xxbg.gjs = gjsda.gjsID WHERE (" & _

                     "(Xxbg.Gjrq Between '" & datGjrq1.Value & "' And '" & datGjrq2.Value & "') AND " & _

                     "(Xxbg.Gjmd" & sGjmd & ") AND " & _

                     "(gjsda.name" & sGjry & ") AND " & _

                     "(Xxbg.Sjyt" & sSjyt & ")) " & _

                     "GROUP BY Xxbg.Gjmd"

 

        On Error Resume Next

3.维护模块

此模块除完成数据的一般性维护,如系统的初始化,另外还有密码的修改和数据更新。

更改密码:更改系统登陆密码模块的主要功能是更改某个用户密码,以便不让人知道密码。

部分代码:Private Sub savXtsj()

          On Error Resume Next

          Dim i As Integer

          If gjsdaUpdated Then

            With tbl

                .Open("gjsda", serverDB, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)

                For i = 1 To gjsNum

                    .MoveFirst()

                    .Find("gjsid='" & flxGjsda.get_TextMatrix(i, 0).Trim & "'")

                    If .EOF Then

                        .AddNew()

                        .Fields("gjsid").Value = flxGjsda.get_TextMatrix(i, 0).Trim

                    End If

                    .Fields("name").Value = flxGjsda.get_TextMatrix(i, 1).Trim

                    .Fields("zg").Value = flxGjsda.get_TextMatrix(i, 2).Trim

                    .Fields("zc").Value = flxGjsda.get_TextMatrix(i, 3).Trim

                    .Fields("ksh").Value = flxGjsda.get_TextMatrix(i, 4).Trim

                    .Fields("enable").Value = IIf(flxGjsda.get_TextMatrix(i, 6).Trim = "√",0, 1)

                    .Fields("canedit").Value = gjsQx(i - 1).canEdit

                    .Fields("canview").Value = gjsQx(i - 1).canView

                    .Fields("cantotal").Value = gjsQx(i - 1).canTotal

                    .Fields("cangd").Value = gjsQx(i - 1).canGd

                    .Fields("canwh").Value = gjsQx(i - 1).canWh

                    If .Fields("gjsid").Value = currentUser.ID Then

                        currentUser.Name = CStr(.Fields("name").Value).Trim

                        currentUser.Gjzg = CStr(.Fields("zg").Value).Trim

                    End If

                Next

                .Update()

                .Close()

            End With

        End If

归档:归档评估报告模块的主要功能是按不同时间段和不同估价师查找其所有评估报告,然后在找到的结果中再选择所需的评估报告保存到相关目录中。

 

系统数据维护:

系统数据维护模块实现新数据的录入、查询现有数据、删除过期数据等功能。

部分代码:

.Open("xindainfo", serverDB, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)

                If .EOF Then .AddNew()

                .Fields("fgz").Value = txtFgz.Text.Trim

                .Fields("fqzz").Value = txtFqzz.Text.Trim

                .Fields("gjf").Value = txtMc.Text.Trim

                .Fields("gjfe").Value = txtMcE.Text.Trim

                .Fields("fddbr").Value = txtDbr.Text.Trim

                .Fields("zs").Value = txtZs.Text.Trim

                .Fields("zgdj").Value = txtZgdj.Text.Trim

                .Fields("jfl1").Value = Val(txtJfl1.Text.Trim)

                .Fields("jfl2").Value = Val(txtJfl2.Text.Trim)

                .Fields("jfl3").Value = Val(txtJfl3.Text.Trim)

                .Fields("jfl4").Value = Val(txtJfl4.Text.Trim)

                .Fields("jfl5").Value = Val(txtJfl5.Text.Trim)

                .Fields("jfl6").Value = Val(txtJfl6.Text.Trim)

                .Fields("jfl7").Value = Val(txtJfl7.Text.Trim)

                .Fields("tdjfl1").Value = Val(txtTdJfl1.Text.Trim)

                .Fields("tdjfl2").Value = Val(txtTdJfl2.Text.Trim)

                .Fields("tdjfl3").Value = Val(txtTdJfl3.Text.Trim)

                .Fields("tdjfl4").Value = Val(txtTdJfl4.Text.Trim)

                .Fields("tdjfl5").Value = Val(txtTdJfl5.Text.Trim)

                .Fields("tdjfl6").Value = Val(txtTdJfl6.Text.Trim)

                .Fields("tdjfl7").Value = Val(txtTdJfl7.Text.Trim)

                .Update()

                .Close()

 

 

第六部分  测试报告

 

软件测试在开发软件过程中是一个不可缺少的部分。因为在开发软件系统的漫长过程中,面对着极其错综复杂的问题,人的主观认识不可能完美无缺,因此,在软件生命周期的各个阶段都不可避免地产生差错。我们力求在每个阶段结束之前通过严格的技术审查,尽可能早地发现并纠正错误;但是,经验表明审查并不能发现所有的差错,此外在编码过程中还不可避免地会引入一些新的错误。如果在软件投入生产性运行之前,没有发现并纠正软件中的大部分差错,则这些错误迟早会在生产过程中暴露出来,那时不仅仅改正这些错误的代价更高,而且往往会造成很恶劣的后果。测试的目的就是在软件投入生产运行之前,尽可能多地发现并纠正软件中的错误。基于上述的原因,我在编码过程中进行了模块测试,编码结束后进行了系统测试和验收测试。下面将介绍测试方案、测试过程和测试结果。

一.模块测试

1.测试方案

    采用了白盒测试,即按照程序内部的逻辑结构,检验程序中的每条通路是否都按预定要求正常工作。

2.测试过程

检验模块之间的接口。

◇每个被调用模块是否正确接收参数。

◇每个被调用模块是否能调用自己想要调用的模块。

3.测试结果

测试结果表明,每个模块之间的接口都吻合,即被调用模块都能正确接收参数,调用模块能调用自己想要调用的每个模块。

二.系统测试和验收测试

1.测试方案

采用了墨盒测试,即检查程序功能是否能按照规格说明书的规定正常使用,程序是否适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。

2.测试过程

主要检验是否能正确实现每个功能。

◇每个功能是否能按照规格说明书的要求正常使用。功能包括:输入信息功能、查询功能和维护功能。

◇数据库里的记录是否符合要求。

◇用户界面是否友好。

3.测试结果

结果表明,每个功能都能按照规格说明书里的要求正常使用且速度达到了预期的标准。数据库里的记录符合要求,用户界面较友好。

当然,整个系统在测试过程中仍发现了不少的错误,但在指导老师和同组同学的帮助下改正并完善了所发现的错误和不足之处,达到了测试要求。

 

 

第七部分  关键技术分析

 

  • C/S模式

C/S模式是指:服务器检查是否有客户要求服务的请求,在满足客户的请求后将结果返回:客户(可以为一个应用程序或一个服务器)如果需要系统的服务,就发出请求服务的信息,内核将信息传递给服务器,服务器执行相应的操作,并将其结果通过内核返回给客户。

传统的C/S模式下应用系统一般由服务器(Server)和客户端应用程序(Client App)组成。数据一般存放在服务器上,应用程序存放在客户端计算机上。采用C/S模式开发的系统具有信息共享性好、网络的信息传输量小等优点。

二.ADO连接

要先建立连接,一般先用CreateInstance方法创建ADO连接对象,然后就可以用Open方法连接到数据库。它的原型是 Open(BSTR ConnectionString, BSTR UserID, BSTR Password, long Options)。

   创建了ADO连接,我们就可以通过ADO记录集来访问数据库了。同样,在使用记录集之前要先创建对象。然后调用Open方法打开记录集。它不但可以执行普通的SQL语句,还可以调用存储过程等等。

一个记录集通常包含多个字段,通过访问记录,我们可以得到很多有用的信息,如字段名,字段的数据类型,定义的宽度,实际占有的宽度等等。

CursorType参数指的是记录集光标类型,在官方的资料中是这样说明它的取值类型的:
1.adOpenForwardOnly 仅向前游标,默认值。除了只能在记录中向前滚动外,与静态游标相同。当只需要在记录集中单向移动时,使用它可提高性能。
2.adOpenKeyset 键集游标。尽管从您的记录集不能访问其他用户删除的记录,但除无法查看其他用户添加的记录外,键集游标与动态游标相似。仍然可以看见其他用户更改的数据。
3.adOpenDynamic 动态游标。可以看见其他用户所作的添加、更改和删除。允许在记录集中进行所有类型的移动,但不包括提供者不支持的书签操作。
4.adOpenStatic 静态游标。可以用来查找数据或生成报告的记录集合的静态副本。另外,对其他用户所作的添加、更改或删除不可见。
我们现在可不用管这么多,就用默认的adOpenStatic类型吧。
LockType参数,用于指示在什么时候锁定记录:
AdLockReadOnly (默认值)只读 - 不能改变数据。
AdLockPessimistic 保守式锁定(逐个) - 提供者完成确保成功编辑记录所需的工作,通常通过在编辑时立即锁定数据源的记录。
AdLockOptimistic 开放式锁定(逐个) - 提供者使用开放式锁定,只在调用Update 方法时才锁定记录。
AdLockBatchOptimistic 开放式批更新-用于批更新模式(与立即更新模式相对)。
Options参数指的是操作类型:
adCmdText 指示strSQL为命令文本, 即普通的SQL语句。
adCmdTable 指示ADO生成SQL查询以便从在strSQL中命名的表中返回所有行。adCmdTableDirect 指示所作的更改在strSQL中命名的表中返回所有行。
adCmdStoredProc 指示strSQL为存储过程。
 

 

adCmdUnknown 指示strSQL参数中的命令类型为未知 。adCmdFile 指示应从在strSQL中命名的文件中恢复保留(保存的)Recordset。adAsyncExecute 指示应异步执行strSQL.。adAsyncFetch 指示在提取 Initial Fetch Size 属性中指定的初始数量后,应该异步提取所有剩余的行。如果所需的行尚未提取,主要的线程将被堵塞直到行重新可用。adAsyncFetchNonBlocking 指示主要线程在提取期间从未堵塞. 如果所请求的行尚未提取,当前行自动移到文件末尾。

三.窗体之间的数据交换

VB.NET通过ADO解决窗体之间的数据交换。ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,即使你对OLE DB,COM不了解也能轻松对付ADO,因为它非常简单易用,甚至比你以往所接触的ODBC API、DAO、RDO都要容易使用,并不失灵活性。

四.报表的生成

为了让程序设计师轻松地将报表集成到应用程序中,VB.NET将全球最知名的报表生成、浏览软件Crystal Report集成进来,以便提供用户交互式、高品质的报表功能。在这次系统设计里就是利用Crystal Report来设计了小型报告的报表。

 

 

 

 

参考文献

 

[1].Visual Basic .NET学习教程   康晓明  姚小磊  编著  北京大学出版社

2001年11月 第一版

 

[2]. Visual Basic.NET 彻底研究   彭明柳  编著  中国铁道出版社

2003年1月 第一版

 

[3].Visual Basic.NET 标准教程  熊松明  主编  航空工业出版社

2002年12月 第一版

 

[4].Visual Basic.NET实用教程  刘羽  编著  人民邮电出版社

2002年一月 第一版

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值