![商店管理系统-毕业设计_第1页](http://file4.renrendoc.com/view/a888359478c347ec939b439b645c3745/a888359478c347ec939b439b645c37451.gif)
![商店管理系统-毕业设计_第2页](http://file4.renrendoc.com/view/a888359478c347ec939b439b645c3745/a888359478c347ec939b439b645c37452.gif)
![商店管理系统-毕业设计_第3页](http://file4.renrendoc.com/view/a888359478c347ec939b439b645c3745/a888359478c347ec939b439b645c37453.gif)
![商店管理系统-毕业设计_第4页](http://file4.renrendoc.com/view/a888359478c347ec939b439b645c3745/a888359478c347ec939b439b645c37454.gif)
![商店管理系统-毕业设计_第5页](http://file4.renrendoc.com/view/a888359478c347ec939b439b645c3745/a888359478c347ec939b439b645c37455.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、仅供参考仅供参考 六 系统编码实现该商店管理系统总体上分为前台销售系统和后台管理系统。其中涉及到如下代码。6.1 相关数据库建立该系统涉及商品进销存管理,人员管理等,相应数据库建立语句如下:/* 创建数据库*/create database SuperMarketdbon primary (name=SuperMarketdb,filename=C:Program FilesMicrosoft SQL ServerMSSQLDataSuperMarketdb.mdf, size=100MB, maxsize=200MB,filegrowth=20MB )log on(name=SuperMar
2、ketlog,filename=C:Program FilesMicrosoft SQL ServerMSSQLDataSuperMarketdb.ldf, size=60MB, maxsize=200MB,filegrowth=20MB ) go/* 创建基本表*/use SuperMarketdb go/* 创建交易表*/CREATE TABLE Dealing (DealingID int identity(1,1) Primary key ,DealingDate datetime NOT NULL ,DealingPrice money NOT NULL ,UserName varc
3、har(25) NULL ,MemberCard varchar(20) NULL)GO/* 创建厂商表*/CREATE TABLE Factory (FactoryID varchar(10) Primary key ,FactoryName varchar(50) NOT NULL ,FactoryAddress varchar(250) NULL ,FactoryPhone varchar(50) NULL)GO/* 创建会员表*/CREATE TABLE Member (MemberID varchar(10) Primary key , MemberCard varchar(20)
4、NOT NULL , TotalCost money NOT NULL , RegDate datetime NOT NULL ) GO /* 创建商品信息表*/CREATE TABLE MerchInfo (MerchID int identity(1,1) Primary key , MerchName varchar(50) Unique NOT NULL , MerchPrice money NOT NULL , MerchNum int NOT NULL , CautionNum int NOT NULL , PlanNum int NOT NULL ,BarCode varchar
5、(20) Unique NOT NULL , SalesProPrice money NULL , SalesProDateS datetime NULL , SalesProDateE datetime NULL , AllowAbate int NOT NULL , AllowSale int NOT NULL , FactoryID int NOT NULL , ProvideID int NOT NULL)GO/* 创建供应商表*/CREATE TABLE Provide (ProvideID varchar(10) Primary key , ProvideName varchar(
6、50) NOT NULL , ProvideAddress varchar(250) NULL , ProvidePhone varchar(25) NULL ) GO /* 创建销售表*/CREATE TABLE Sale (SaleID int identity(1,1) Primary key , MerChID int NOT NULL , SaleDate datetime NOT NULL , SaleNum int NOT NULL, SalePrice money NOT NULL)GO/* 创建入库表*/CREATE TABLE Stock (StockID int iden
7、tity(1,1) Primary key , MerchID int NOT NULL , MerchNum int NOT NULL , MerchPrice money NULL , TotalPrice money NULL , PlanDate datetime NULL , StockDate datetime NULL, StockState int NOT NULL)GO/* 创建用户表*/CREATE TABLE User (UserID varchar(10) Primary key ,UserName varchar(25) NOT NULL ,UserPW varcha
8、r(50) NOT NULL , UserStyle int NOT NULL , ) 生成的各种表如下:商品信息表(MerchInfo)字段名字段类型长度主 / 外键字段值约束对应中文名MerchIDint4PNot null商品编号MerchNameVarchar50Not null商品名称MerchPriceMoney4Not null价格MerchNumInt4Not null库存数量CautionNumInt4Not null库存报警数量PlanNumInt4null计划进货数BarCodeVarchar50Not null条形码SalesProPriceMoney4促销价格Sale
9、sProDateSDatetime8促销起日期SalesProDateEDatetime8促销止日期AllowAbateInt4Not null允许打折AllowSaleInt4Not null允许销售FactoryIDVarchar10FNot null厂商编号ProvideIDVarchar10FNot null供货商编号用户表 (User)字段名字段类型长度主 / 外键字段值约束对应中文名UserIDvarchar10PNot null用户编号UserNameVarchar25Not null用户名称UserPWVarchar50Not null用户密码UserStyleInt4Not
10、null用户类型会员表 (Menber)字段名字段类型长度主 / 外键字段值约束对应中文名MemberIDVarchar10PNot null会员编号MemberCardVarchar20Not null会员卡号TotalCostMoney4Not null累积消费金额RegDateDatetime8Not null注册日期销售表 (Sale)字段名字段类型长度主 / 外键字段值约束对应中文名SaleIDVarchar10PNot null销售编号MerChIDVarchar10FNot null商品编号SaleDateDatetime8Not null销售日期SaleNumInt4Not n
11、ull销售数量SalePriceMoney4Not null销售单额交易表 (Dealing)字段名字段类型长度主 / 外键字段值约束对应中文名DealingIDVarchar10PNot null交易编号DealingPriceMoney4Not null交易金额DealingDateMoney4Not null交易日期MemberIDVarchar10会员卡号UserNameVarchar10FNot null用户名称入库纪录表(Stock)字段名字段类型长度主 / 外键字段值约束对应中文名StockIDVarchar10PNot null入库编号MerchIDVarchar10FNot
12、null入库商品编号MerchNumInt4Not null入库数量MerchPriceMoney4Not null单额TotalPriceMoney4Not null总额StockDateDatetime8Datetime入库日期PlanDateDatetime8Datetime计划进货日期StockStateInt4Not null入库状态供货商表(Provide)字段名字段类型长度主 / 外键字段值约束对应中文名ProvideIDvarchar10PNot null供货商编号ProvideNameVarchar50Not null供货商名称ProvideAddressVarchar250
13、供货商地址ProvidePhoneVarchar25供货商电话厂商表 (Provide)字段名字段类型长度主 / 外键字段值约束对应中文名FactoryIDvarchar10PNot null厂商编号FactoryNameVarchar50Not null厂商名称FactoryAddressVarchar250厂商地址FactoryPhoneVarchar25厂商电话6.2 前台销售系统的实现6.2.1 登陆窗口Private Sub Cmdlog_Click()Txtuser.Text = GetMD5(lc)Dim Mcon As ADODB.ConnectionSet Mcon = Ne
14、w ADODB.ConnectionDim sid As StringDim pss As StringDim rsUserId As New ADODB.RecordsetDim bool As Boolean打开数据库的连接If Mcon.State = 0 Then Mcon.Open Provider=sqloledb;Data Source=;InitialCatalog=SuperMarketdb;User Id=sa;Password=kof;Call link打开用户表rsUserId.Open SELECT UserName,UserPW FROM Us
15、er, Mcon, adOpenStatic, adLockBatchOptimisticDo While Not rsUserId.EOFsid = rsUserId!UserNamepss = rsUserId!UserPWbool = False判断登陆If StrComp(sid, Txtuser, 1) = 0 And StrComp(pss, GetMD5(Txtpassword), 1) = 0 Then bool = TrueUnload MeExit DoElseIf sid Txtuser Or pss GetMD5(Txtpassword) Then bool = Fal
16、seEnd IfrsUserId.MoveNextLoopIf bool = True Thenmenu.Show 1Exit SubElseMsgBox 用户名或者密码不正确,请重新输入!, , 提示: Txtuser = Txtpassword = Txtuser.SetFocusExit SubEnd IfEnd Sub6.2.2 条码录入窗口主要函数:Private Sub cmdok_Click()Dim Mcon As ADODB.ConnectionSet Mcon = New ADODB.ConnectionDim rsMerchInfo As New ADODB.Record
17、setDim mid As StringDim mname As StringDim mprice As CurrencyDim mnum As IntegerDim mallowsell As IntegerDim mallowabate As IntegerDim memID As StringDim flag As BooleanStatic i As IntegerDim j As IntegerDim temp1 As IntegerStatic temp2 As IntegerDim temp3 As CurrencyDim flag3 As BooleanDim k As Int
18、egerDim num As IntegerDim mcode As StringStatic total As Currency打开数据库连接Mcon.ConnectionString = Provider=sqloledb;Data Source=49;Initial Catalog=SuperMarketdb;User Id=sa;Password=jszx;Mcon.OpenrsMerchInfo.OpenSELECTMerchID,MerchName,MerchPrice ,MerchNum,BarCode,AllowAbate,AllowSale FROM Me
19、rchInfo, Mcon, adOpenStatic, adLockBatchOptimistic获取记录Do While Not rsMerchInfo.EOFmid = rsMerchInfo!MerchIDmcode = rsMerchInfo!BarCodemname = rsMerchInfo!MerchNamemprice = rsMerchInfo!MerchPrice mnum = rsMerchInfo!MerchNum mallowabate = rsMerchInfo!AllowAbatemallowsell = rsMerchInfo!AllowSale判断商品是否能
20、销售If Text1.Text = Or Text2.Text = ThenMsgBox 请输入商品ID 和商品数量!, , 提示:Text1.SetFocusExit SubEnd IfIf Text2.Text menu.MSHFlexGrid1.Rows And flag = True Then k = (i + 1) - menu.MSHFlexGrid1.Rowsmenu.MSHFlexGrid1.Rows = i + 2menu.Height = menu.Height + 300 * kmenu.MSHFlexGrid1.Height = menu.MSHFlexGrid1.He
21、ight + k * 300menu.Label5.Top = menu.Label5.Top + k * 300menu.Label6.Top = menu.Label6.Top + k * 300menu.Label7.Top = menu.Label7.Top + k * 300menu.Label8.Top = menu.Label8.Top + k * 300menu.Label9.Top = menu.Label9.Top + k * 300menu.Label10.Top = menu.Label10.Top + k * 300menu.Line1.Y1 = menu.Line1
22、.Y1 + k * 300menu.Line1.Y2 = menu.Line1.Y2 + k * 300menu.cmdinput.Top = menu.cmdinput.Top + k * 300End IfIf flag = True Theni = i + 1number = iFor j = 1 To iIf mid = CStr(menu.MSHFlexGrid1.TextMatrix(j, 0) Thenflag3 = Truemenu.MSHFlexGrid1.TextMatrix(j,3)Str(Val(menu.MSHFlexGrid1.TextMatrix(j, 3) +
23、Val(Text2.Text) Exit ForElse: flag3 = FalseEnd IfNext j在网格中显示数据If flag3 = False Thenmenu.MSHFlexGrid1.TextMatrix(i, 0) = midtemp1 = menu.MSHFlexGrid1.TextMatrix(i, 0)menu.MSHFlexGrid1.TextMatrix(i, 1) = mnamemenu.MSHFlexGrid1.TextMatrix(i, 2) = mpricetemp3 = menu.MSHFlexGrid1.TextMatrix(i, 2)menu.MS
24、HFlexGrid1.TextMatrix(i, 3) = Text2.Texttemp2 = menu.MSHFlexGrid1.TextMatrix(i, 3)End If计算总值If flag2 = True And mallowabate = 1 Thentotal = total + mprice * 0.95 * CInt(Text2.Text)ElseIf flag2 = False Or mallowabate = 0 Then total = total + mprice * CInt(Text2.Text)End IfMsgBox totaltemp2 = total +
25、mtotalText1.Text = Text2.Text = Text1.SetFocusMcon.Execute (update MerchInfo set MerchNum= & temp3 & where MerchID = & temp1 & )Else: MsgBox 不存在该产品,请检查是否输入错误!, , 提示: Text1.SetFocusEnd IfrsMerchInfo.Closemenu.Label10.Caption = totalText2.Text = 1End Sub6.2.4 收银窗口6.3 后台管理系统登陆窗口Private Sub cmdOK_Click(
26、) 如果还没有服务器信息If strSQLServer = ThenMsgBox 您必须先设置SQL 服务器信息。, vbInformationcmdServer_Click Exit SubEnd IfIf cboUser.Text = ThenMsgBox 请填写用户名。, vbInformationcboUser.SetFocus cboUser.SetFExit SubEnd IfIf txtPW.Text = ThenMsgBox 请填写密码。, vbInformationtxtPW.SetFocusExit SubEnd IfOn Error GoTo aaaasqlConnect
27、 cnMain, strSQLServer, strSQLUser, strSQLPW, strSQLDBDim rs As New ADODB.Recordset, strMD5 As StringstrMD5 = GetMD5(txtPW.Text)rs.Open Select * From User Where UserStyle1, cnMain, 1, 1 If rs.EOF ThenMsgBox 找不到任何用户!, vbCriticalcnMain.CloseElseDo Until rs.EOFIf StrComp(rs(UserName), cboUser.Text, 1) =
28、 0 And StrComp(rs(UserPW),GetMD5(txtPW.Text), 1) = 0 Then curUserName = rs(UserName) curUserStyle = CLng(rs(UserStyle) cboUser.AddItem curUserName, 0 SaveUserListfrmMain.Icon = Me.IconUnload MefrmMain.ShowExit SubEnd Ifrs.MoveNextLoopEnd IfMsgBox 用户名或密码错误,登陆失败!, vbCriticalcnMain.CloseExit Subaaaa:Ms
29、gBox Err.Description, vbCriticalIf cnMain.State = 1 Then cnMain.CloseEnd Sub后台管理窗口Private Sub MDIForm_Load()读取窗体位置,视图信息If GetINI(Main, Left) = ThenMove (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2ElseMove GetLongINI(Main, Left), GetLongINI(Main, Top), GetLongINI(Main, Width), GetLo
30、ngINI(Main, Height)Dim j As Longj = GetLongINI(Main, WindowState)If j = 2 Then Me.WindowState = 2End IfCanResize = TrueIf GetINI(Main, Guide) = n ThenpicLeft.Visible = FalsemnuGuide.Checked = FalseEnd IfIf GetINI(Main, ToolBar) = n ThenpicTB.Visible = FalsemnuTB.Checked = FalseEnd IfIf GetINI(Main,
31、StateBar) = n ThenpicSB.Visible = FalsemnuSB.Checked = FalseEnd If判断用户类型cmdLeft(6).Enabled = (curUserStyle = 3)tbLeft(6).Enabled = (curUserStyle = 3)mnuLeft(6).Enabled = (curUserStyle = 3)frmWelcome.ShowEnd Sub主要函数Private Sub Form_Load()Me.WindowState = 2imgIcon.Picture = frmMain.cmdLeft(1).Picturel
32、ngCurPageSize = 50加载商品strCurSQL1=SELECTMerchID,MerchName,MerchPrice,BarCode,MerchNum,CautionNum,PlanNum,SalesProPrice,Sale sProDateS,SalesProDateE,AllowAbate,AllowSale,Factory.FactoryName,Provide.ProvideNameFrom MerchInfo, Provide, Factory strCurSQL2 = Where strCurSQL3 = MerchInfo.FactoryID = Factor
33、y.FactoryID And MerchInfo.ProvideID = Provide.ProvideID order by MerchID DescLoadMerchSQL strCurSQL1 & strCurSQL2 & strCurSQL3, 1, lngCurPageSizePublic Function GetMerchState(ByVal Item As ListItem, ByVal MerchNum&, ByVal CautionNum&, ByVal SalesProPrice$, ByVal SalesProDateS$, ByVal SalesProDateE$,
34、 ByVal AllowSale&) As String On Error GoTo aaaaDim d1 As Date, d2 As Date, j1 As Long, j2 As LongIf AllowSale = 0 ThenGetMerchState = 禁止Item.ForeColor = 9372343Item.SmallIcon = 3ElseIf SalesProPrice Thend1 = CDate(SalesProDateS)d2 = CDate(SalesProDateE)j1 = DateDiff(d, Date, d1)j2 = DateDiff(d, Date
35、, d2)If j1 = 0 ThenIf MerchNum = CautionNum ThenGetMerchState = 促 /警 : Item.ForeColor = vbRed: Item.SmallIcon = 2 ElseGetMerchState = 促销 : Item.ForeColor = vbBlue: Item.SmallIcon = 4End IfExit FunctionEnd IfElseIf MerchNum = CautionNum Then GetMerchState = 报警: Item.ForeColor =vbRed: Item.SmallIcon =
36、 2: Exit FunctionEnd IfGetMerchState = Item.ForeColor = 0Item.SmallIcon = 1End IfExit Function aaaa:GetMerchState = End Function七 七 . 测试分析报告编写目的随着科技的进步,软件的规模越来越大,因此现在在软件开发的过程中,人们所面对的问题及其错综复杂。这就造成了人的主观认识不可能完全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无缺。因此在软件生命周期的每个阶段都不可避免地会产生差错。测试就是为了发现程序中的错误而执行程序的过程。测试的目的就是在
37、软件投入生产运行性之前,尽可能多的发现软件中的错误。目前软件测试仍然是保证软件质量的关键步骤,它对软件规格说明,设计和编码的最后复审,也是必不可少的关键步骤。 项目背景此项目是由中国超市自动化应顾客需求,要求开发一套实时,有效, 完善, 安全性好的软件系统。在重庆大学,我们软件开发小组通过课程设计的形式进行开发。定义SQL SERVER系统服务器所使用的数据库管理系统(:DBMS)SQL: 一种用于访问查询数据库的语言事务流:数据进入模块后可能有多种路径进行处理。主键:数据库表中的关键域。值互不相同。外部主键:数据库表中与其他表主键关联的域。ROLLBACK:数据库的错误恢复机制。数据流:数据
38、流程来实现各个项目模块软件工程及其应用软件工程周苏、王文等张海藩程序流程图:程序设计的步骤细分软件工程及其应用软件工程周苏、王文等张海藩天津科学技术出版社1992/1清华大学出版社1990/ 11项目的计划任务书本软件开发小组2011/06/28项目开发计划本软件开发小组2011/06/28需求规格说明书本软件开发小组2011/06/28概要设计说明书本软件开发小组2011/06/28详细设计说明书本软件开发小组2011/06/28测试计划本软件开发小组2011/06/28测试计划执行情况测试项目前台销售模块测试主机接受用户输入的各种条形码信息(主机需要实现条形码扫描的快速录入方法)然后经网络
39、传送给服务器。计算出账单,打印购物单,收钱后开发票。后台进货管理模块测试主机输入货物信息表,输出为打印采购单。并且能够实现相关的查询信息的功能。后台销售管理模块测试接受由服务器程序经网络传送到主机的销售信息的表格,输出销售情况的库存信息,以及各个商品的销售排行榜,支持销售查询功能。后台库存管理模块测试实现查询,插入,更改,删除商品信息的功能。后台人员管理模块测试实现会员信息,用户管理信息的查询,插入,更改,删除功能。测试机构和人员测试机构 本软件开发小组测试人员 本软件开发小组测试结果数据录入模块测试控制本次测试针对数据录入模块的测试,我们采用文档输入方式进行数据录入。针对错误信息,我们给出提
40、示输入本项测试所用到的输入数据类型有:a, 服务器错误,登录名密码正确b, 服务器正确,登录名密码错误c, 服务器正确,登录名密码正确,数据库不存在d, 服务器正确,登录名密码正确,数据库存在e, 服务器正确,登录名密码正确,数据库存在,表已建立f,服务器正确,登录名密码正确,数据库存在,表没有建好输出a,输出:连接服务器错误b,输出:用户名或密码错误c,输出:创建数据库成功d,输出:数据库已存在e,输出:新建测试用例成功f,输出:测试用例已存在过程本系统测试采用边输入数据,边记录结果的方式,依次测试系统的各个输入测试要求直到输入完成前台销售模块测试控制由于本次测试只针对前台销售模块,所以我们
41、采用人工输入数据方式,顺序记录测试结果的数据记录方法输入本项测试所用到的输入数据类型有:a,条形码正确,数量合适b,条形码错误,数量合适c,条形码正确但是不允许出售,数量合适d,条形码正确可以出售,数量过多输出a,输出:添加到购物单b,输出:条形码不存在c,输出:该商品不允许出售d,输出:该商品数量不足过程本系统测试采用边输入数据,边记录结果的方式,依次测试系统的各个输入测试要求直到输入完成软件需求测试结论上述的三种类型的输入,输出测试,软件的能力已到达客户的要求,各项结果均以得到充分的测试。测试结果在两个阶段测试过程中共发现软件缺陷20 个, 经软件开发人员确认的缺陷为20 个,经过改正的代
42、码消除了所有以确认的软件缺陷并通过了回归测试。因测试条件所限,未能进行软件的确认测试和系统测试。五 评估和建议软件评估软件编码规范化评估经过回归测试,未残留的软件编码规范性缺陷。软件代码文本注释率约为42%,代码注释充分,有利与代码的理解和维护。软件动态测试评估被测软件单元的总数:使用的测试用例个数:达到软件测试出口准则的软件单元数,通过率:通过单元和集成测试得知:软件代码逻辑清晰、结构合理、程序单元间接口关系一致,运行稳定。改进建议建议在软件开发项目中全面实施软件工程化,加强软件开发的管理工作。建议进一步加强软件需求规格说明、软件设计文档编制以及编写代码的规范化。 特别是应该将系统中的硬件研
43、制和软件研制分别管理,软件文档编制的种类和规格按照相关标准执行。尽早开展软件测试工作。在软件研制计划安排上给软件测试留有必要的时间,在资源配置上给软件测试必要的支撑。建议结合系统联试,开展软件的确认和系统测试。八 项目总结项目基本情况和传统管理模式相比较,使用本系统,毫无疑问会大大提高超市的运作效率,辅助提高超市的决策水平,管理水平,为降低经营成本,提高效益,减少差错,节省人力,减少顾客购物时间,增加客流量,提高顾客满意度,增强超市扩张能力, 提供有效的技术保障。传统的商店管理,主要以人工为主,不但费时费力,风险也不小。21 世纪,商店销售的竞争也进入到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度家庭装修施工人员健康体检与防护协议
- 军训当教官申请书
- 2024年12月事业单位行政职业能力测试每日一练(1219)资料分析笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 2025至2030年中国透明圆笔筒数据监测研究报告
- 农村阳台加长施工合同范本
- 养生服务会员合同范本
- 校外住宿申请书范文
- 2025年大半圆头方颈螺栓项目可行性研究报告
- 2025年婴儿催生包项目可行性研究报告
- 2025年单相发电电焊两用机项目可行性研究报告
- 2025年“春训”学习心得体会例文(3篇)
- 咯血病人介入术后护理
- 2025年春新外研版(三起)英语三年级下册课件 Unit4第1课时Startup
- 人教版(2025新版)七年级下册数学第七章 相交线与平行线 单元测试卷(含答案)
- 春节节后复工全员安全意识提升及安全知识培训
- 道路运输企业主要负责人和安全生产管理人员安全考核试题库(含参考答案)
- 贵州省贵阳市2023-2024学年高一上学期期末考试 物理 含解析
- 冷库验证方案
- 行政事业单位会计实操
- 中国燃气建设工程竣工验收暂行规定
- 春尺蠖测报办法
评论
0/150
提交评论