毕业设计论文基于JAVA的理财系统设计.doc

上传人:sccc 文档编号:4864545 上传时间:2023-05-20 格式:DOC 页数:21 大小:368.02KB
返回 下载 相关 举报
毕业设计论文基于JAVA的理财系统设计.doc_第1页
第1页 / 共21页
毕业设计论文基于JAVA的理财系统设计.doc_第2页
第2页 / 共21页
毕业设计论文基于JAVA的理财系统设计.doc_第3页
第3页 / 共21页
毕业设计论文基于JAVA的理财系统设计.doc_第4页
第4页 / 共21页
毕业设计论文基于JAVA的理财系统设计.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《毕业设计论文基于JAVA的理财系统设计.doc》由会员分享,可在线阅读,更多相关《毕业设计论文基于JAVA的理财系统设计.doc(21页珍藏版)》请在三一办公上搜索。

1、基于JAVA的理财系统设计摘 要全球经济的蓬勃发展带来了金融理财领域的巨大变革和创新,新的金融工具和理财观点不断产生,迅速地刷新着家庭与个人传统的理财观念。改革开放以来,我国社会经济的发展和居民收入水平得到了很大的提高,家庭理财活动已成为居民生活的重要内容。人们迫切需要一个能充分利用计算机优势,并可以管理家庭财务的软件平台,利用这个平台使得个人的财务有了明晰的收支情况的系统。家庭理财系统采用VS2005作为开发工具,采用SQL SERVER 2000开发后台数据库。主要包含了用户登录模块、用户管理模块、数据库备份模块、收入模块、支出模块、密码管理模块、帐目统计模块、报表输出模块以及查询模块。用

2、户能够通过这些模块所提供的功能,完成相应的操作,满足家庭内部对家庭理财需求。关键词:家庭理财;收入;支出;查询;VS2005;数据库;模块Design and Implementation of Family Financial Management SystemAbstractThe flourish development of the global economy has brought great transform and innovation of financial transactions, new financial instruments and financial per

3、spectives are evolving rapidly to surpass the traditional family and personal financial management concepts in China. Since the 1980s last century, with the development of Chinas economy, Chinese peoples income level has been greatly improved. Family financial management has become an important part

4、 of Chinese peoples life. There was an urgent need to use all the advantages of the computer, which can manage family finances system, which can clearly reflect individuals financial conditions.This system uses VS2005 as a development tool, SQL Server 2000 database development background. It contain

5、s the user landing module, user information management module, database backup module, income module, output management module, user password management module, accounts statistics module, report forms export module and inquire module. System users can be satisfied by the system, which can meet the

6、internal management of the family financial management needs through these modules and the functions in the system. Key words: Family Financial Management; Income; Payout; Inquire; VS2005; Database; Module目 录论文总页数:20页1 引言11.1 课题背景11.2 国内外研究的现状11.3 本课题研究的意义11.4 本课题的研究方法12 可行性研究22.1 技术可行性22.2 经济可行性22.

7、3 操作上的可行性33 系统需求分析33.1 系统功能需求分析33.2 数据流图43.3 系统数据库表设计53.3.1 用户表(UserInfo)53.3.2 用户信息表(UserMessage)53.3.3 收入类型表 (ClassInputChashTable)53.3.4 支出类型表(ClassOutputChashTable)53.3.5 收入表(InputChashTable)63.3.6 成员登录信息表(MemberName)63.3.7 支出表(OutputChashTable)64 系统功能的设计与实现64.1 系统登录界面的设计74.1.1 登录界面74.1.2 登录功能的实

8、现74.2 用户信息管理模块的设计84.3 密码管理模块的设计94.4 数据库备份模块的设计104.5 收入模块的设计114.5.1 添加收入记录124.5.2 删除收入记录124.6 支出模块的设计134.6.1 添加支出记录144.6.2 删除支出记录144.7 帐目统计模块的设计144.8 查询模块的设计154.9 报表输出模块的设计175 系统测试结果17结 论18参考文献181 引言1.1 课题背景家庭理财系统,即Family Conduct Financial Transactions System。它利用计算机技术技术,使家庭理财逐步信息化,从而形成由家庭成员与计算机共同构成服务

9、于家庭的人机信息财务管理系统。随着计算机发展,家庭理财系统已经成为很多家庭财务管理的一个重要途径。计算机的最大优点在于利用它能够高效准确地进行财务信息管理。使用计算机进行信息财务管理,不仅提高了工作效率,而且大大的提高了其安全性。1.2 国内外研究的现状家庭理财系统在国外很多地方使用已经相当的普遍,而且国外的家庭理财系统功能相当强大,比如系统里包含有股票的预测、基金的分析等等。在我们国内,尤其是在近几年,伴随着计算机的高速普及,家庭理财系统的使用范围逐步扩大,从最早的简单使用纸笔记录家庭、个人财务的收支情况,到现在用计算机对财务的收支、查询、汇总等等。巨大的市场需求也促使了很多公司加大了对家庭

10、理财系统的研究。1.3 本课题研究的意义多年以来人们都使用传统的人工方式记录和管理家庭或自己财务情况。这种管理和记录方式不仅不便于长期保存,也存在着不可避免的缺点,如效率太低、保密性太差。时间一长,伴随着居民收入水平的提高和居民各种消费和收入的多样性,家庭理财所需要管理的信息就会越来越多,就会产生大量的文件和数据,这样就会对查阅、更新、保存等方面都产生不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已逐渐被人们认识并掌握。如果使用计算机对家庭理财信息进行管理具有传统的手工管理所没法比拟的优点。例如:统计方便、查找容易、可靠性高、保密性好、更新方便等。这些优点能够极大地提高家

11、庭理财信息管理的效率,大大降低居民在信息管理精力上的投入,使企业获得更大的利润空间。因此,开发一个能够管理家庭内部各种财务信息的家庭理财管理系统是一件十分必要的事情。1.4 本课题的研究方法家庭理财系统的用户群体是家庭内部成员,用户类型单一,因此将本系统设计成一个相对封闭的单机运行系统结合居民管理信息方面的具体需求,利用VS2005作为前台开发工具,使用SQL SERVER 2000作为数据库。结合数据库原理及应用、软件工程开发方法,在经过深入地学习之后,开发了这套家庭理财管理系统。下面将具体介绍系统的开发过程:2 可行性研究2.1 技术可行性本系统的开发利用VS2005作为开发工具。VS20

12、05是一个具有完善开发工具的平台。VS2005提供的工具适合各种水平层次无论是初学者还是有经验的团队,并适合各种不同的开发需求。降低了开发的复杂度,其提供给开发者更加简便动态的.Net Framework基础解决方案,其中包括了windows应用程序开发、office嵌入开发、Web应用开发、移动应用程序开发。改进了团队交流方式,VS2005为团队开发提供通道和完整的开发周期工具,从而增加了团队内部的交流与协作的效率。通过学习,熟悉和掌握VB.NET的使用方法,使用VS2005作为开发工具将使整个系统的模块化设计变得更加简便。系统采用SQL SERVER 2000作为开发数据库。SQL SER

13、VER 2000是一种客户机/服务器结构的关系数据库管理系统。SQL SERVER 2000提供了许多易于使用的图形化工具和向导,其中最常用的是服务管理器、企业管理器和查询分析器。它们为创建和管理数据库带来了很大的方便。在技术难度方面,有指导老师的指导、周围同学的热心帮助,加上对很多相关文献的参考,能够解决开发过程中所遇到的困难。2.2 经济可行性如今,随着计算机的大量普及,各种软件的开发成本越来越低,价格也越来越底。本系统也是这样,开发成本较低,只是需要一台配置一般的计算机,该系统运行时占计算机的资源也不多,但并不会因为开发成本低而造成系统功能性能的下降。相反,随着计算机技术的发展,各种实用

14、软件的性能日渐提高。家庭理财管理系统廉价的开发成本,却能够为居民带来相当大的实惠和方便。主要表现在:(1)本系统可以说是一个拥有多种实用功能的家庭理财管理信息系统,它集成了家庭成员管理、收入管理、支出管理、密码管理等多种功能,具有较强的实用性和方便性。(2)本系统的运行可以大大提高居民管理财务的效率,减少不必要的人力和物力。(3)本系统还具有查询和统计功能,能够查询到用户在一段特定时间内收入和支出的情况,特别是支出情况,有时往往会让用户在月底吓一跳,大大超出预算,还弄不清钱都花到哪里了?有了家庭理财系统,不仅使用户对口袋里钱的去向一目了然,而且可以渐渐悟到一些心得,摸清哪些花费是必要的,哪些“

15、意外开支”是可以避免的,哪笔开支是可继续评估其必要性的。由此,可以得出,本系统在经济上是绝对具有可行性。2.3 操作上的可行性由于本系统管理的对象比较明确,就是对于收入支出的一些管理,主要就是对数据库的操作,且每个数据库内容具有较强的关联性,设计的过程也不复杂。因此,整个软件的使用非常简便。任何一个普通的计算机用户都能很快的熟悉整个软件的使用。并且本系统所耗费的资源非常小,任何家庭成员只需要在一般的电脑上面,就能够使用这个软件,简单、方便、快捷的实现对财务信息进行管理。3 系统需求分析3.1 系统功能需求分析家庭理财管理系统是针对用户要求用计算机,对自己的财务的收入、支出以及相关的各种信息,进

16、行记录、修改、添加、删除而设计的一种现代化管理软件。通过需求分析,本系统需要具有以下功能:(1)由于一项新的软件在被使用之前,对于使用者来说是陌生和崭新的,所以要求系统具有良好的人机界面。(2)能够家庭理财管理系统的各项功能,能成功的对用户各种信息进行管理。(3)查询、修改、删除、添加数据方便,数据的稳定性和可靠性好。具体说来,要求本系统具有以下几个功能模块:用户登录模块、用户管理模块、数据库备份模块、收入模块、支出模块、密码管理模块、账目统计模块、报表输出模块以及查询模块。系统整体的简单关系图如下所示:密码管理模块账目管理模块报表输出模块查询模块家庭理财信息系统用户登录模块用户管理模块数据库

17、备份模块收入模块支出模块图1 家庭理财管理系统模块划分图各模块具体的需求描述如下:(1)用户登录模块用户登录:验证用户的信息是否合法,以及验证用户是否为系统的合法用户。(2)用户管理模块在系统中主要包括添加用户。(3)数据库备份模块主要对数据库里的数据进行备份。(4)收入模块主要实现对收入记录的添加、删除、修改。(5)支出模块主要实现对收入记录的添加、删除、修改。(6)密码管理模块在系统中主要包括用户修改密码。(7)账目统计模块主要对总收入、总支出、余额管理。(8)报表输出模块主要实现对收入、支出记录的输出及打印。(9)查询模块主要实现对收入、支出记录按时间按类型查询等。3.2 数据流图根据系

18、统中收入、支出模块内对收入记录、支出记录具体操作和功能之间的关系,可以得出如下图2所示的数据流图:用户添加、修改、删除两表信息添加、修改、删除的结果数据库收入表、支出表图2 数据流图3.3 系统数据库表设计本系统是一个关于家庭理财信息的管理系统,主要包括收入、支出的管理。所以,所设计数据库表的时候设计了用户表、用户信息表、收入类型表、支出类型表、收入表、支出表、用户登录表用来存储对应的信息。3.3.1 用户表(UserInfo)表1角色表字段名称数据类型字段说明键引用UserIDint用户IDUserNumvarchar用户编号UserNamevarchar用户名3.3.2 用户信息表(Use

19、rMessage)表2用户信息表字段名称数据类型字段说明键引用UserIDvarchar用户IDUserAddressvarchar用户地址Birthdaydatetime用户生日WorkAddressvarchar工作地址WorkPhonenumeric工作电话UserNamevarchar用户名3.3.3 收入类型表 (ClassInputChashTable)表3收入类型表字段名称数据类型字段说明键引用ClassIDnumeric支出类型编号ClassNamevarchar支出类型名称3.3.4 支出类型表(ClassOutputChashTable)表4支出类型表字段名称数据类型字段说

20、明键引用ClsaaIDnumeric分类IDClassNamevarchar分类名称第 17 页 共 20 页3.3.5 收入表(InputChashTable)表5收入表字段名称数据类型字段说明键引用UserIDvarchar编号IDint编号InputNamevarchar收入者InputComesFromnumeric收入来源InputChashvarchar收入金额InputFormsvarchar收入类型InputContentvarchar备注InputDateTimedatetime时间ClassIDnumeric收入类型编号3.3.6 成员登录信息表(MemberName)表6

21、成员登录信息表字段名称数据类型字段说明键引用IDint编号UserPasswordchar密码PassNamenumeric登录名3.3.7 支出表(OutputChashTable)表7支出表字段名称数据类型字段说明键引用UserIDvarchar编号IDint编号OutputNamevarchar支出用途OutputChashnumeric支出金额UserNamevarchar支出者OutputContentvarchar备注OutputDateTimedatetime时间ClassIDnumeric支出类型编号4 系统功能的设计与实现本系统主要包括对登录模块的设计、用户管理模块的设计、用

22、户密码管理模块的设计、数据库备份管理模块的设计、收入模块的设计、支出模块的设计、帐目统计模块的设计、查询模块的设计以及报表输出模块的设计。具体如下:4.1 系统登录界面的设计4.1.1 登录界面系统登录界面也是本家庭理财管理系统的第一个界面,其界面如下:图3 登录界面此界面是用户进入系统首先需要经过的界面,用户在正确地输入自己的用户名和密码后,便可进入系统的主界面,用户可以通过这个界面进入主页面与其它模块进行接触,对系统内的各个财务等多种信息进行修改、添加、删除、查询等操作。4.1.2 登录功能的实现当用户输入完用户名和密码以后,系统会触发一个验证用户输入的用户名称、密码是否正确的事件。只有当

23、两个信息全部正确时,用户才能够登录到系统中,否则页面将通过Messagebox控件显示登录时发生的相关错误信息。用户登录成功后,系统将跳转到主界面。首先是与数据库相连,其相关代码为:Dim conn As New SqlClient.SqlConnection conn.ConnectionString = My.Settings.checkConnectionString.ToStringconn.Open()与数据库相连以后,获取用户输入的用户名及密码信息,相关代码为:With comm.Parameters .Add(New SqlClient.SqlParameter(name, Sq

24、lDbType.Char).Value = UsernameTextBox.Text .Add(NewSqlClient.SqlParameter(PassWord,SqlDbType.Decimal).Value = PasswordTextBox.Text .Add(NewSqlClient.SqlParameter(ReturnValue, SqlDbType.Int).Direction= ParameterDirection.ReturnValue End With然后再将获取的信息与信息表里的信息进行比较,做出是否登录的判断,如果用户名和密码不相匹配的话,则无法登录。相关代码为:D

25、im dr As String dr = CStr(comm.ExecuteScalar) If dr Then MessageBox.Show(已经登录了, dr.ToString + 用户号, MessageBoxButtons.OK,MessageBoxIcon.Information, MessageBoxDefaultButton.Button3) flag = True Else flag = False MessageBox.Show(登录失败, 请先登录, MessageBoxButtons.YesNo, MessageBoxIcon.Error, MessageBoxDefa

26、ultButton.Button1) OK.Enabled = False Me.Close() End If4.2 用户信息管理模块的设计添加用户信息页面主要实现对新用户的信息进行添加的功能。因为本系统涉及到对用户的财务信息进行相关的管理,这些信息对于用户来说应该是相当机密相当重要的。所以,本系统添加的用户只能够是家庭内部成员。在以后需要的情况下,可以由已经存在的拥护从数据库中添加新的用户。从下图中,我们可以看到添加用户信息的界面中的各个需要添加的信息项:图4 用户信息管理界面示意图以下是添加新用户的代码:Private Sub InsertTpb() ToolStripComboBox1.

27、Items.Clear() Dim comstr As String = select UserName from UserInfo sqlconstr = New SqlClient.SqlConnection(Constr) Dim dp As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(comstr, sqlconstr) dp.Fill(ds, table) If Not ds Is Nothing Then For i As Integer = 0 To ds.Tables(0).Rows.Count - 1 If

28、ds.Tables(0).Rows.Count = 0 Then Exit For End If ToolStripComboBox1.Items.Add(ds.Tables(0).Rows(i)(0).ToString) Next End IfEnd Sub4.3 密码管理模块的设计在该系统中密码是保护信息的安全性的重要工具,定期的更换密码对于保证用户信息的安全性是非常有好处的,也是非常必要的。在本系统中对于用户密码的修改是很简单的,用户只需要来到密码修改的页面上,输入自己的登录名、原来的用户密码以及新密码,就可以轻松地完成密码修改了。密码修改如下图所示:图5 密码修改界面用户在修改密码时,

29、需要输入用户的登录名、用户原来的密码以及新的密码,当用户输入完以上信息,点击修改按钮之后,系统将会触发一系列的事件。首先系统会将用户登录名和用户原来的密码与数据库中的用户信息做比较,判断是否是该用户在进行操作,如果判断是该用户的话,则将新密码保存到数据库中去,系统便会弹出MessageBox提示用户密码修改成功。如果判断不是该用户的话,系统也会弹出MessageBox提示用户不能修改密码。密码修改功能的相关代码如下:If TextBox7.Text Then With Search .ComstrKou = Update MemberName set MemberName.PassWord=

30、+ TextBox8.Text + where PassName like % + TextBox6.Text + .ConstrKou = Constr End With If Search.initvaled_dataset = 1 Then MessageBox.Show(成功的更改, 海星) TextBox7.Text = TextBox8.Text TextBox8.Text = Else MessageBox.Show(更新失败,你使用不当) End IfEnd If4.4 数据库备份模块的设计数据库备份模块对于用户非常重要,数据库备份模块可以把用户的信息在数据库里再保存一份,为以

31、后发生特殊情况做准备,也可以说是为用户信息的安全又加了一层保险,数据库备份模块界面如下图所示:图6 数据库备份模块界面以下代码的功能是删除原来的文件: gDatabaseName = cmbDatabaseName.Text oBackup = New SQLDMO.Backup oBackupEvent = oBackup oBackup.Database = gDatabaseName gBkupRstrFileName = txtDataFileName.Text oBackup.Files = gBkupRstrFileName进行数据库备份:If Len(Dir(gBkupRstrF

32、ileName) 0 Then Kill(gBkupRstrFileName) End If System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor恢复数据库:Dim oRestore As SQLDMO.Restore gDatabaseName = cmbDatabaseName.Text oRestore = New SQLDMO.Restore oRestoreEvent = oRestore oRestore.Database = gDatabaseName gBkupRstrFile

33、Name = txtDataFileName.Text oRestore.Files = gBkupRstrFileName System.Windows.Forms.Cursor.Current= System.Windows.Forms.Cursors.WaitCursor4.5 收入模块的设计对于该家庭理财系统来说,收入模块是很非常重要的一个模块。因为它能记录用户收入的一切信息,为用户提供一个非常实用且便捷的记录功能。此外,该模块还具有修改、删除、排序、查找等功能。在家庭理财系统中,用户添加收入记录是很频繁的事,那么在系统中收入的记录就会非常多。正因为如此,每条记录的信息就显得尤为重要。

34、添加收入信息记录的内容包括:收入来源、金额、收入日期、收入者、存放方以及相关备注这几项。另外为了用户能够方便的查看收入记录,故将收入来源进行了分类,具体分为三类,分别为工资、股票以及其他。收入模块的界面如下图所示:图7 收入模块4.5.1 添加收入记录以下是添加收入记录的代码,首先找出收入记录中最大的ID号,然后把将要插入的收入记录中的ID号,在最大ID号的基础上加1,然后根据用户输入的收入记录的信息保存到数据库中,并显示在收入界面的右半部分。Public Sub save() Dim id As String With data .Commadstr = select Max(ID)from

35、 InputChashTable .connstring = My.Settings.checkConnectionString.ToString End With id = CType(data.GetMaxID(), String) id = id + 1 data.insert(InputComes, InputChash, InputForms, InputName, InputContant, InputDataTime, id)End Sub4.5.2 删除收入记录在删除记录的时候,只需要让该记录获取焦点,再点击工具栏中的删除图标就可以了。在该记录后的记录的ID号都减1,以下是删除

36、收入记录的相关代码:Public Sub delectItem(ByVal CurrentID As String) With data .connstring = My.Settings.checkConnectionString End With data.delect(CurrentID) End Sub Public Sub delectItem(ByVal CurrentID As String, ByVal name As String) With data .connstring = My.Settings.checkConnectionString End With data.

37、delect(CurrentID, name) End Sub4.6 支出模块的设计4.7 帐目统计模块的设计4.8 查询模块的设计对于家庭理财系统来说,查询功能是非常重要的一个功能。该家庭理财系统查询模块包含四个查询方式,以收入表为例,这四种查询方式分别是按收入类型、按收入时间、按收入者、按收入金额范围进行查询,对应收入表和支出表,并实现对其他相关表单的跨表查询。用户能按多种不同的方式更清楚地了解到自己的财务情况。下图是查询模块的界面示意图:图10 查询模块本系统采用统一的查询模块TheOrderWithSelect进行查询。其中该查询模块里面拥有数据字符串连接属性、填充属性以及数据集属性,

38、相应的dataset数据集属性,通过这些属性实现对ADO.NET的操作。通常情况下,实现查询的流程为:首先对string类型的字符串连接属性进行赋值,该值为my.settings.connectionstring。其中my对象是VS2005中新添加的功能,My提供了常用.NET Framework类与函数的进入点,让常用的功能唾手可得,并减少程序员所编写代码的行数。通过my实现了对系统资源的访问,其中系统资源包含settings,通过settings实现了对系统资源的保存。其次实现对connection对象的初始化,通过connection.open事件将数据库连接打开。再次实现对数据库命令属

39、性初始化,并修改commandstring(数据库命令字符串)。然后实现查询命令,其中查询命令保存在commandstring中,并用command对象初始化DataAdapter,最终实现对数据集属性的填充。其中DataAdapter实现对数据库底层的操作,并返回一张类型为XML的表单,该表单保存了相应的查询结果,并填充dataset数据集。其中dataset数据集包含了多种存贮XML表单的方法,第一种方法为直接填充,其中该表单的名字为”datatable1”,第二种方法为带名字的填充,这样实现了一个dataset数据集可以保存多个数据表单,甚至可以实现添加表但的关联性,模拟出了SQL底层表

40、但实体的情况,只需要修改XML表单就可以实现对数据库无连接的操作。当需要修改数据时,只需提交XML表单便实现了对实体的操作,但是作为存放数据的dataset数据集,仍然有很大的缺陷,不能直接对XML的查询,而是在新建连接的情况下实现对数据集的再次填充,从而损耗了部分系统资源。查询功能核心代码如下:With SelectItem .selectMethodInfo = select ClassName,InputName,InputChash,InputDateTime from InputChashTable, ClassInputChashTable where(InputChashTabl

41、e.ClassID = ClassInputChashTable.ClassID) AND ClassInputChashTable.ClassName= + ComboBox1.Text.Trim + End with4.9 报表输出模块的设计报表输出模块实际上就是对收入表和支出表的记录通过打印的方式输出。将所得到的表的列名,赋值给单元格:Dim xlApp As New Interop.Excel.ApplicationClassDim xlBook As Interop.Excel.WorkbookDim xlSheet As Interop.Excel.WorksheetDim row

42、Index, colIndex As IntegerrowIndex = 1colIndex = 0xlBook = xlApp.Workbooks().AddxlSheet = xlBook.Worksheets(sheet1)Dim Table As New DataTableTable = ds.Tables(0)得到的表所有行,赋值给单元格:Dim Col As DataColumnDim Row As DataRowFor Each Col In Table.Columns colIndex = colIndex + 1 xlApp.Cells(1, colIndex) = Col.

43、ColumnNameNext系统在执行打印时,其实是生成了一张Excel的表,然后再将信息打印出来。Execl表单的申明:Imports Microsoft.Office.CoreImports Microsoft.Office5 系统测试结果本系统的开发使用了VS2005作为开发工具,具有良好的可视化的编程环境。在编程的过程中就可以对所做的模块进行运行,发现错误,以便立即进行改正。经过不断地修改和更正,最终得以完善各个模块的功能。通过进行系统各个子模块的测试和总体的测试,本系统各个模块运行良好,能够完成其对应的功能。要进入系统,系统用户必须通过验证。在登录之后,进入系统主界面。在主界面中,系统用户能够进入用户登录模块、用户管理模块、数据库备份模块、收入模块、支出模块、密码管理模块、帐目统计模块、报表输出模块以及查询模块等九个子模块。在

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号