毕业设计(论文)-书店收银管理系统设计(Delphi设计).doc

上传人:椰子壳 文档编号:3946814 上传时间:2019-10-10 格式:DOC 页数:68 大小:957.50KB
返回 下载 相关 举报
毕业设计(论文)-书店收银管理系统设计(Delphi设计).doc_第1页
第1页 / 共68页
毕业设计(论文)-书店收银管理系统设计(Delphi设计).doc_第2页
第2页 / 共68页
毕业设计(论文)-书店收银管理系统设计(Delphi设计).doc_第3页
第3页 / 共68页
毕业设计(论文)-书店收银管理系统设计(Delphi设计).doc_第4页
第4页 / 共68页
毕业设计(论文)-书店收银管理系统设计(Delphi设计).doc_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《毕业设计(论文)-书店收银管理系统设计(Delphi设计).doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-书店收银管理系统设计(Delphi设计).doc(68页珍藏版)》请在三一文库上搜索。

1、毕业论文 (设计 )用纸 佳木斯大学教务处 第 1 页 1 1 毕毕 业业 论论 文(设文(设 计计) 课题名称 书店收银管理系统 学 院 信息电子技术学院 专 业 计算机科学与技术 班 级 指导教师 郭吉平 常亮 学生姓名 毕业论文 (设计 )用纸 佳木斯大学教务处 第 2 页 佳佳 木木 斯斯 大大 学学 教教 务务 处处 摘 要 随着计算机技术,计算机软件,办公自动化的迅速发展,特别是计算机和计算机应 用的大面积普及,使人们传统的行为方式和观念受到巨大的冲击影响。 作为发展中国家,我国办公自动化、计算机化还相对比较落后,我们不仅需要解决 全球办公自动化发展过程中所遇到的共性问题,而且还要

2、有针对性的解决一些我们国家 特有的问题。 本系统是针对一些中小型的书店和图书超市而开发的,分为系统、进货、销售、查 询、统计、预测统计图、帮助等几个菜单组。其中系统、进货、销售、查询、统计、帮 助为 MIS 管理信息系统必备的模块,而预测统计图则是本系统特有的。各菜单包含子模 块数量如下:分为系统(2 个) 、进货(3 个) 、销售(2 个) 、查询(3 个) 、统计(5 个) 、 预测统计图(1 个) 、帮助(2 个) 。本系统在 Windows 2000+SQL Server 2000 环境下, 采用当今先进的技术 Delphi6.0 开发完成,可以实现一些管理事务。 关键词 Delphi

3、6.0; SQL Server 2000; 数据库 毕业论文 (设计 )用纸 佳木斯大学教务处 第 3 页 Abstract With the swift development of computer, software and OA, especially popularization application of computer make the action method and concept of peoples tradition influence hugely. As the developing country, working via OA and computer f

4、alls behind in out country. we not only need the general character problem run into the settlement of whole working via OA, but also need to solve a series of peculiar problem. This system is developed for some small or medial shops and super book market. It includes some parts such as system config

5、ure, stock, sale, query, stat., forecast chart, help and so on. Among them, system configure, stock, sale, query, stat., help are necessary to MIS, but forecast chart is unique part of this system. The following is the menu account: System configure has 2 submenus Stock has 3 submenus Sale has 2 sub

6、menus Query has 3submenus, Stat. Has 5 submenus Forecast has 1submenu Help has 2submenus. This system run at the windows2000, SQL Server 2000 and developed by advanced technique of Delphi6.0.this system may help to do something about management transaction. Keywords Delphi 6.0 ;SQL Server 2000;DATAB

7、ASE 毕业论文 (设计 )用纸 佳木斯大学教务处 第 4 页 绪论 随着计算机软件技术的迅速发展,特别是计算机的普及应用,通过对计算机软件的 应用已经成为完成工作的主要手段和方法。随着技术的飞速进步,市场竞争的空前加快, 技术、贸易堡垒的消除,面对更多的体制灵活的对手,竞争的空间成倍扩大,竞争的程 度也空前激烈,许多企业已经认识到信息技术的重要性,尤其是中国加入世贸组织的日 益临近,为了与世界各国先进管理体制接轨,如何充分利用计算机软件和技术实现企业 的运营与管理,成为当前大中小型企业急待解决的首要问题。 计算机进入企业管理已有许多年历史,信息技术的发展为企业管理提供了良好的支 持环境。但在

8、我国企业管理中,信息化建设的普及化还远远不够。许多中小型企业,并 没有通过计算机软件对企业进行系统的信息化管理。目前,大多数企业都开发了管理信 息系统(MIS)而大部分都是针对大型企业开发的。这些系统对中小型企业,从经济上和 实用程度上都不适合,所以急需一些适用于中小企业的 MIS 系统出笼。采用现在先进的 Delphi6.0 技术,和 SQL Server 2000 数据库,开发一套功能强大的运行于 Window 98/Windows 2000 的针对中小企业的 MIS 系统已经势在必行。使更多的企业能够通过计算 机,对企业管理实现信息化。从而使办公自动化系统成为基于业务信息源的综合统计处

9、理系统和决策支持系统,使办公自动化面向高层次应用的方向发展。 使用计算机对小型书店进行管理,具有手工管理所无法比拟的优点。例如:数据录 入简单、查找方面、可靠性高、存储量大、保密性好、使用寿命长、成本低等优点。这 些优点能够极大地提高书店管理的效率,也是企业的科学化、正规化管理,与世界接轨 的重要条件之一。 1.1 系统开发背景 随着国内经济的高速发展,商品流通企业的数量与日俱增。市场上的流通商品琳琅 满目、种类繁多。中国加入 WTO 后,跨国公司纷纷开始抢占市场。如何面对来自全球跨 国公司及国内同行之间的激烈竞争。商品流通企业的竞争已不单单是企业规模的竞争, 管理及营销观念的竞争,更是一场现

10、代信息技术的竞争,如果不能掌握先进的信息技术 毕业论文 (设计 )用纸 佳木斯大学教务处 第 5 页 管理工具来应对瞬息万变的市场,企业终将在这场竞争中被淘汰出局。 1.2 系统开发的意义 信息管理系统是集计算机技术、网络技术为一体的信息系统工程,它能够使企业运 行的数据更加准确、及时、全面、详实,同时对各种信息进一步的加工,使企业领导层 生产、经营的决策依据更充分,更具有合理性科学性,并制造出更多的发展机会;另外 也进一步加强企业的科学化、合理化、制度化、规范化管理,为企业的管理水平跨上新 台阶,为企业持久、健康、稳定的发展打下基础。该书店收银管理系统是根据企业的生 产过程,控制产品销售、销

11、售成本等数据。有效的对企业的一系列经营活动进行统一化 管理。 核心任务是如何获得更高利润。 1.3 系统可行性分析 为了找到实现本系统行之有效的解决方案,我们从技术的可行性和实现条件的可行 性这两方面进行论证。 首先我们从技术上进行了分析,随着计算机的普及和数据库技术的高速发展,特别是 信息管理系统(MIS)技术的不断成熟,MIS以由单纯的统计系统过渡到决策支持系统, MIS新型的以数据库为中心的结构体系使企业和政府摆脱了那种需密集人力资源、物力资 源、高成本的操作及管理方式,通过数据库,用户可以很方便的管理MIS资源。而结构化 生命周期开发方法也为我们开发信息管理系统提供了基础。 其次我们还

12、从实现条件的可行性进行了分析,因为当今时代计算机已经普及到每一个 企业,利用数据库来管理自身资源,到一定的程度后,本系统也就有了其使用价值,那 么在系统运行后,就用户方而言,由于用户使用本系统时,不会也不必关心系统内部的 结构及实现方法,即对用户来说是透明的,所以本系统对用户而言,是定位在界面友好、 操作方便、功能齐全的原则上的,用户只需简单的用鼠标点击各个窗体上的按钮,和通 过键盘打字输入信息就能执行相应的功能,就企业管理者而言,关心的是如何得到用户 传送的信息,只要把用户操作后的信息放入数据库或展示出相应的数据,企业的管理者 就可得到所想要得东西,从而在企业的行政管理中做出判断。而以上的这

13、些功能都能在 所选择的开发环境中用所选择的开发工具来实现,所以,本系统的开发是可行的。 毕业论文 (设计 )用纸 佳木斯大学教务处 第 6 页 2 系统开发环境简介 2.1 Windows 2000 Windows2000 作为新一代的网络操作系统家族,无论是在性能上还是可靠性上都有了 质的飞跃。在 Windows2000 中,微软已经针对可能影响可靠性的软硬件和系统管理问题 进行了加强。Windows2000 在三个主要的方面改进了可靠性。首先,对结构进行了修改, 主要目的在保护操作系统的内核和共享内存,因此增强了系统的稳定性。其次,开发了 新的工具可以帮助开发者创建更可靠的代码。第三,Wi

14、ndows2000 包含了新的管理特征可 以提高可靠性。对操作系统来说,用户的主要需求就是系统的可靠性。我们平常提到的 可靠性实际上指的是两个方面的操作系统特性:可靠性和可用性。在提到操作系统的时 候,可靠性指的是指一台服务器如何相容的运行应用程序和服务器尽量少发生错误,可 靠性越高就表示系统发生错误的机会越少;而可用性是指系统可以使用的时间,可用性 越高就表示系统可以使用的时间越长,因为日常维护和意外错误导致的宕机时间就少。 可靠性可以通过减少潜在的系统失败的原因来提高,而可用性则可以通过解决宕机的原 因来解决。简言之,一个可靠的和可用的系统很少失败,在关机后也很容易重新启动 Microso

15、ft sql.Clear; sql.Text:=select count(*) as zs fromt_dl where userid=+#39+trim(edtyhm.Text)+#39; open; 密码校验 close; sql.Clear; sql.Text:=select count(*) as zs from t_dlwhere password=+#39+trim(edtkl.Text)+#39 + and userid=+#39+edtyhm.Text+#39; open; 修改密码 close; sql.Clear; sql.Text:=update t_dl set pas

16、sword=+#39+trim(edtxmm.Text)+#39 + where userid=+#39+trim(frmkl.edtyhm.Text)+#39; execsql; 校验过程是通过对后台表 t_dl(登陆)的操作来完成的。此表的表结构如下 毕业论文 (设计 )用纸 佳木斯大学教务处 第 24 页 字段名数据类型大小 useridchar6 passwordvarchar10 如果用户登陆成功,将进入本系统的主操作界面。 插入图片通过 Additional 中的 Image 控件实现,在 Picture Editor 中点 Load 选择所需 图片,然后点击 ok。 5.2 系统

17、模块设计 系统中包括修改密码和退出两项。 5.2.1 修改密码 修改密码模块,可以使用户在已知原密码的前提下变更新密码。要求用户输入原密 毕业论文 (设计 )用纸 佳木斯大学教务处 第 25 页 码,当原密码录入后系统将对其校验,如果不正确,系统会提示原密码错误,不允许用 户对密码进行修改。如果密码正确,系统要求用输入新密码,并对其做一次确认输入。 新密码与密码确认不同时,也将作出新密码与密码确认不一致的提示。当一切条件允许 时,系统将对用户密码进行修改。 运行时动态设置的 SQL 属性 : close; sql.Clear; sql.Text:=update t_dl set passwor

18、d=+#39+trim(edtxmm.Text)+#39 + where userid=+#39+trim(frmkl.edtyhm.Text)+#39; 5.2.2 退出 选择退出时,系统会提示用户是否真的退出,如果选择是,则退出,反之取消退出。 5.3 进货模块设计 本系统是针对书店等开发的管理系统,所以进货是系统的运作前提。因此,本系统对书 籍进行分类的规划录入,在大类增加,新书增加,原有书籍数量增加等方面,分别作了 设置。进货模块组主要是对表 t_kc(库存)进行操作,表结构如下: 字段名数据类型大小 dmchar7 smvarchar30 pfjfloat8 lsjfloat8 kc

19、slint4 其中的打印功能,为了便于使用,而且不做大量重复性劳动。本系统中的报表打印,将 以万能报表的情况实现。即:每个打印都会调用公共模板,以相同的形式打印出结果。 毕业论文 (设计 )用纸 佳木斯大学教务处 第 26 页 打印模板包括放大、缩小、全屏、上页、下页、打印设置、打印等功能。当用户选择打 印时,报表会自动调用公共模板,进行打印。 5.3.15.3.1 新书入库 新书籍的入库,就是在此模块下来完成的。有货物才能销售,因此这是非常重要的 一个环节。它包括入库、删除和打印等功能。选择入库功能,将弹出新的窗口,允许用 户录入新书。首先要选择此书属于哪一大类,然后在该类下录入。书籍的编号

20、是自动递 加生成的,用户不可以更改。而且本系统对录入的数据进行了严格的限制,如果批发价、 零售价和数量录入了不正确的字符,系统将给予提示,所以用户可以放心录入,不会出 现错误。系统会向 3 个表中插入新书的数据,主要代码如下: sql.Text:=insert into t_kc(dm,sm,pfj,lsj,kcsl) values( +#39+trim(edtdm.Text)+#39+,+#39+trim(edtsm.Text)+#39 +,+float to str(str to float(edtpfj.Text)+, +float to str(str to float(edtlsj.

21、Text)+, +float to str(str to float(edtkcsl.Text)+); sql.Text:=insert into t_xs(dm,xssl) values(+#39+trim(edtdm.Text)+#39 +,0); sql.Text:=insert into t_dz(dm,sm,dzbl) values(+#39+trim(edtdm.Text)+#39 +,+#39+trim(edtsm.Text)+#39+,1); 删除功能也作了特殊设置,如果此书籍被发现已经有出售记录,将不能被删除。即: t_xs(销售)表中有此编号的数据记录。做这样限制的目的是为

22、了使已发生销售情况的书 籍不被错误的删除。打印功能可以通过打印模板,进行打印,在此不做重复介绍。 5.3.2 书籍入库 此模块主要对原有的书籍,进行数量增加时使用。用户可以直接在 Grid 中选中该书 籍进行如库,但代码过多时可能选择不便。因此增加了查询功能,用户可以通过书籍代 毕业论文 (设计 )用纸 佳木斯大学教务处 第 27 页 码和书名对书籍进行查询,这样可以直接找到所需的书籍。 sql.Text:=select * from t_kc where substring(dm,3,5) then sql.Text:=sql.Text+ and dm=+#39+trim(edtdm.Tex

23、t)+#39; if trim(edtsm.Text)=in_ksrq and substring(rq,1,10)=in_ksrq and substring(rq,1,10)+#39+00000+#39; if trim(edtdm.Text) then sql.Text:=sql.Text+ and sm=+#39+trim(edtsm.Text)+#39; 三.销售 系统将对此次销售进行操作。共份三步操作: (1) for i:=1 to StringGrid1.Row-1 do begin with dm.qryjskc do begin close; sql.Clear; sql.

24、Text:=update t_kc set kcsl=kcsl-+StringGrid1.Cells5,i+ where dm=+#39+StringGrid1.Cells1,i+#39; 毕业论文 (设计 )用纸 佳木斯大学教务处 第 51 页 execsql; end; next; end; for i:=1 to StringGrid1.Row-1 do begin with dm.qryzjxs do begin close; sql.Clear; sql.Text:=update t_xs set xssl=xssl+StringGrid1.Cells5,i+ where dm=+#

25、39+StringGrid1.Cells1,i+#39; execsql; end; next; end; /向 t_sj 中插入收据记录 with dm.qrycrsj do begin close; sql.Clear; sql.Text:=insert into t_sj(sjbh,je,rq) values(+#39+trim(edtbh.Text)+#39+, +floattostr(strtofloat(trim(edtysxx.Text)+,+#39+formatdatetime(yyyy-mm- dd,now()+#39+); execsql; end; for i:=1 to

26、 StringGrid1.Row-1 do begin 毕业论文 (设计 )用纸 佳木斯大学教务处 第 52 页 with dm.qryssjl do begin close; sql.Clear; sql.Text:=insert into t_ssjl(dm,sm,sl,sjbh,rq) values(+#39+StringGrid1.Cells1,i+#39+, +#39+StringGrid1.Cells2,i+#39+,+#39+StringGrid1.Cells5,i+#39+, +#39+trim(edtbh.Text)+#39+,+#39+formatdatetime(yyyy

27、-mm-dd,now()+#39+); execsql; end; next; end; edtysxx.Text:=; edtssxj.Text:=; edtzl.Text:=; for i:=1 to StringGrid1.Row-1 do begin for j:=1 to 6 do begin StringGrid1.cellsj,i:=; next; end; next; end; 此次操作完成减少库存数量,增加收据,增加具体销售情况等操作。除完成本次 操作外,还要将收据编号自动增加一位。代码如下: (2) with dm.qrysjbh do begin 毕业论文 (设计 )用纸

28、 佳木斯大学教务处 第 53 页 close; sql.Clear; sql.Text:=select max(sjbh) as zuida from t_sj; open; end; if dm.qrysjbh.IsEmpty then begin edtbh.Text:=0000000001; end else begin bh:=0000000000+inttostr(strtoint(dm.qrysjbhzuida)+1); edtbh.Text:=copy(bh,length(bh)-9,10); end; StringGrid1.cells1,1:=0000000; 最后还要对收据

29、进行打印以下是对收据的打印功能: (3) StringGrid1.Row:=1; StringGrid1.SetFocus; AssignPrn(MyFile); Rewrite(MyFile); Writeln(MyFile,X 书店收银系统); Writeln(MyFile,now(); for k:=1 to stringgrid1.RowCount-1 do begin /stringgrid1.Row:=k; if (stringgrid1.Cells1,k) then Writeln(MyFile,stringgrid1.Cells1,k+ +stringgrid1.Cells2,

30、k+ 毕业论文 (设计 )用纸 佳木斯大学教务处 第 54 页 +stringgrid1.Cells3,k+ +stringgrid1.Cells4,k+ +stringgrid1.Cells5,k+ +stringgrid1.Cells6,k); next; end; System.CloseFile(MyFile); 当此次操作完成后,系统将进行初始化,将界面恢复到初始状态,以便于用户重 新进行销售工作。 四.查询 1.收据编号查询 with dm.qrysjbhcx do begin close; sql.Clear; sql.Text:=select t_ssjl.sjbh,t_ssj

31、l.dm,t_ssjl.sm,t_ssjl.sl,t_ssjl.rq,t_sj.je from t_sj,t_ssjl + where t_ssjl.sjbh=t_sj.sjbh; if trim(edtsjbh.Text) then begin edtje.Text:=dm.qrysjbhcxje; edtsclsh.Text:=dm.qrysjbhcxsjbh; edtrq.Text:=dm.qrysjbhcxrq; end; 2.书籍查询 with dm.qrysjbhcx do begin 毕业论文 (设计 )用纸 佳木斯大学教务处 第 55 页 close; sql.Clear; s

32、ql.Text:=select t_ssjl.sjbh,t_ssjl.dm,t_ssjl.sm,t_ssjl.sl,t_ssjl.rq,t_sj.je from t_sj,t_ssjl + where t_ssjl.sjbh=t_sj.sjbh; if trim(edtsjbh.Text) then begin edtje.Text:=dm.qrysjbhcxje; edtsclsh.Text:=dm.qrysjbhcxsjbh; edtrq.Text:=dm.qrysjbhcxrq; end; 3.库存查询 with dm.qrykccx do begin close; sql.Clear;

33、 sql.Text:=select dm,sm,kcsl from t_kc where substring(dm,3,5) then sql.Text:=sql.Text+ and dm=+#39+trim(edtdm.Text)+#39; if trim(edtsm.Text)+#39+00000+#39; if trim(edtdm.Text) then sql.Text:=sql.Text+ and sm=+#39+trim(edtsm.Text)+#39; open; end; if not dm.qryxd.IsEmpty then begin edtdmxd.Text:=dm.q

34、ryxddm; end else begin edtdmxd.Text:=; end; if (trim(edtdm.Text)=) and (trim(edtsm.Text)=) then begin edtdmxd.Text:=; end; 统计中采用了存储过程,代码如下: with dm.spdbt do begin 毕业论文 (设计 )用纸 佳木斯大学教务处 第 57 页 close; parambyname(in_rq).AsString:=copy(formatdatetime(yyyy-mm- dd,DateTimePicker1.DateTime),1,10); paramby

35、name(in_dm).AsString:=trim(edtdmxd.Text); open; end; 存储过程如下: CREATE PROCEDU in_rq char(10), in_dm char(7) AS create table #temp1(dm char(7) null, sm varchar(30) null, zh int null, yf char(2) ) declare dm char(7) declare sm varchar(30) declare zh int declare yf char(2) /0112 依次循环 select dm=in_dm sele

36、ct sm=sm from t_ssjl where dm=in_dm selectzh=sum(sl) from t_ssjl where substring(rq,1,7)=substring(in_rq,1,4)+-+01 and dm=in_dm select yf=01 insert into #temp1(dm,sm,zh,yf) values(dm,sm,zh,yf) select dm=in_dm select sm=sm from t_ssjl where dm=in_dm select zh=sum(sl) from t_ssjl where select * from #

37、temp1 drop table #temp1 毕业论文 (设计 )用纸 佳木斯大学教务处 第 58 页 GO 毕业论文 (设计 )用纸 佳木斯大学教务处 第 59 页 附录二附录二 程序使用说明书程序使用说明书 当点击运行按钮后,会出现口令窗口需要用户填写,只需在用户名中填 1,在密码中 填 1,点击确定则可进入主界面。然后在主界面中根据各自需求选择能为自己服务的各个 功能。点击功能主模块则会在下拉菜单中出现功能子模块。例如当点击进货时会看到三 个子选项:新书大类,新书入库,书籍入库,根据需要进入相应子选项,根据需要选取 实现什么功能。它包括入库、删除和打印等功能。选择入库功能,将弹出新的窗

38、口,允 许用户录入新书。首先要选择此书属于哪一大类,然后在该类下录入。书籍的编号是自 动递加生成的,用户不可以更改。而且本系统对录入的数据进行了严格的限制,如果批 发价、零售价和数量录入了不正确的字符,系统将给予提示,所以用户可以放心录入, 不会出现错误。除功能也作了特殊设置,如果此书籍被发现已经有出售记录,将不能被 删除。书籍入库增加了查询功能,用户可以通过书籍代码和书名对书籍进行查询,这样 可以直接找到所需的书籍。用户也可通过刷新来清除查询结果。其他功能模块操作类似。 当您选择完毕想退出本系统时,点击系统中的退出按钮。 毕业论文 (设计 )用纸 佳木斯大学教务处 第 60 页 附录三附录三

39、 英文文献英文文献及译文及译文 1Why Data Management? We have already considered hardware and software in some detail. In this chapter, we turn our attention to a third basic computer resource, Data. Many computer applications require that data be stored for subsequent processing. Simply storing the data is not eno

40、ugh, however. A typical computer system, even a small one, can have dozens of disks and tapes, each holding data for dozens of different applications. For any given application, one and only one set of data will do. We must be able to store, locate, and retrieve the specific data needed by a given p

41、rogram. That is the concern of data management. 2Accessing Data Imagine a single diskette containing several programs. For a particular application, only one of those programs will do. How is a given program selected, loaded, and executed? In chapter 6, we learned that the operating system, respondi

42、ng to a users command, reads the disks index, searches it for the requested program name, extracts the programs track and sector address, and issues primitive commands to read it into main memory. Later, following a RUN command, the program is given control of the processor. Accessing data presents

43、a similar problem. A single diskette can hold data for several different applications. For a given application, one and only one set of data will do, and finding the right data is much like finding the right program. There are differences between accessing programs and accessing data, however. When

44、a program is needed, all its instructions must be loaded into memory. Data, on the other hand, are typically processed selectively, a few elements at a time. Thus, it is not enough merely to locate the data; we must be able to distinguish the individual data elements, too. 3Access Methods Imagine pr

45、eparing meeting announcements for a club. You need a set of mailing labels, and each members name and address is recorded on an index card. Probably the easiest way to generate the labels is to copy the data from the first card, turn to the second card and copy it, and 毕业论文 (设计 )用纸 佳木斯大学教务处 第 61 页 s

46、o on, processing the records sequentially, from the beginning of the file to the end. Magazine publishers face the same problem with each new issue, but need mailing labels for tens of thousands of subscribers. Rather than using index cards, they store customer data on disk or magnetic tape, one rec

47、ord per subscriber. The easiest way to ensure that all labels are generated is to process the records in the order in which they are stored, proceeding sequentially from the first record in the file to the last. To simplify handing, the records might be presorted by zip code or a mailing zone, but the basic idea of processing the data in physical order still holds. Processing records in not always acceptable. For example, when a subscriber moves, his or her address must be changed in the file. Searching for that subscribers record sequentially is like looking for a

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1