




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要2第一章 设计总说明31.1 选题的意义31.2 开发普洱茶销售系统的必要性31.3 开发工具简介31.3.1 vb简介31.3.2 vb功能特点41.3.3 vb中的基本概念41.3.4sql介绍41.3.5 sql的主要特点5第二章 茶销售系统设计分析52.1系统模块的设计52.2系统数据库设计62.3各数据表的关系8第三章 应用程序设计93.1.系统功能设计93.1.1系统功能流程图103.2登陆模块详细设计103.2.1控件属性列表103.2.2窗口设计效果113.2.3主要实现代码123.3主窗体详细设计143.3.1创建主窗体143.3.2设置frmmain窗口的属性143.3.3创建菜单栏143.3.4创建工具栏15第四章 模块详细设计174.1基本信息的输入和修改174.1.1客户管理174.1.2供应商管理224.1.3产品管理254.2进货信息的管理274.2.1采购单274.2.2采购查询33第五章 总 结35参考文献:36摘 要摘要:本毕业设计是针对目前小型茶叶市场的进货、销售、和库存基本上以手工操作为主要管理手段,信息化程度非常低的情况,而设计的一个商品进销存管理系统。系统的主要功能是对商品的进货、销售和库存进行监控、调配和管理,以实现公司商品进销存管理的信息化、自动化和科学化。前台应用程序界面采用visual basic 6.0开发,系统的后台数据库选用sql server 2000作为开发工具。本毕业设计(论文)以商品进销存管理系统的分析和设计为出发点,详细介绍了开发本系统的各个步骤:系统分析、系统设计、系统实现。在系统分析中先后用数据流图、系统的功能结构图分析了系统所需的各种数据。在系统设计中,详细的展现了系统的各个功能模块。所需的数据库表、表字段以及菜单的设计等。在系统的实现中,给出了实现窗体中相应功能控件的示例和源代码,以及菜单实现的方法。文章的最后则给出了本系统的主要功能运行界面图。关键词:visual basic,库存、入库、出库、供应第- 38 -页 第一章 设计总说明1.1 选题的意义1998年以前,华南茶叶市场内专门经营普洱茶的店铺不过20家,仅占当年茶叶总店铺的3下;1999年则上升到100多家;到目前,有300多家店铺专门经营普洱茶的,占其总店铺的20以上,而且华南茶叶市场内的1500多家商铺中,几乎每家都有普洱茶出售。20年来一直专门经营普洱茶的冼经理分析说,随着人们生活水平的不断提高,广大消费者十分青睐具有保健功效的传统品种普洱茶,其消费群体多是具备相当强的实际消费能力的30岁至40岁之间的社会成功人士。众多专门经营普洱茶的商家都认为,尽管竞争对手不断增多,但是普洱茶这个茶种也日益广泛地得到了社会和行业内的追捧,其市场蛋糕越做越大,生意就自然好做了。可是现今对于针对普洱茶的专项管理系统市面上还基本没有,大多数商家用的都是一些如excel,管家婆这样的软件进行管理,相当的不方便,所以物以稀为贵,我相信这个程序前景相当广阔。1.2 开发普洱茶销售系统的必要性在21世纪的科技时代,科学技术突飞猛进,计算机已经不仅是在科技上应用,而且在生活中也是同样得到了广泛在应用. 普洱茶的销售基本靠人工进行管理,但随着时间的变化,销售规模的扩大,有关销售管理工作和所涉及到的数据量越来越大越来越多,大多数商家不得不靠增加人力,物力,财力来进行销售的管理.但是人工管理效率低,查找麻烦,可靠性不高,保密性低等因素.因此开发出普洱茶销售系统是必要的1.3 开发工具简介本系统的前端开发工具,我选择了visual basic6.0,后台数据库采用sql2000。1.3.1 vb简介 visual意为“可视化的”,指的是一种开发图形用户界面的方法,所以visual basic是基于basic的可视化的程序设计语言。在visual basic中,一方面继承了basic所具有的程序设计语言简单易用的特点,另一方面在其编程系统中采用了面向对象、事件驱动的编程机制,用一种巧妙的方法把windows的编程复杂性封装起来,提供了一种所见即所得的可视化程序设计方法。 1.3.2 vb功能特点 在vb中,应用面向对象的程序设计方法(oop),把程序和数据封装起来视为一个对象,每个对象都是可视的。程序员在设计时只需用现有工具根据界面设计要求,直接在屏幕上“画”出窗口、菜单、按钮、滚动条等不同类型的对象,并为每个对象设置属性。程序员的编程工作仅限于编写相关对象要完成的功能程序,因而程序设计的效率可大大提高。 事件驱动是非常适合图形用户界面的编程方式。在图形用户界面的应用程序中,是由用户的动作即事件掌握着程序运行的流向,每个事件都能驱动一段程序的运行。程序员只要编写响应用户动作的代码,而各个动作之间不一定有联系.1.3.3 vb中的基本概念 对象:面向对象编程(oop)的提法大家一定也很耳熟,虽然visual basic并不是完全的面向对象编程,但也利用了对象编程技术。对象简单地说就是大家经常看到的各种窗口、按钮、文本框甚至打印机等。属性:如同电视有黑白、彩色之分一样,作为对象的windows中的窗口也是有大有小,文本框的位置不可能完全一样,菜单要显示出不同的功能,这些都是由对象的属性决定的。不同对象的属性可能不同。属性一般决定了对象的位置、大小、显示等情况。方法:就是对象能够做的事,如打印机对象就有打印(print)方法、窗口对象支持隐藏(hide)方法、很多对象支持移动(move)方法等。事件:就是对象对用户各种操作的反映情况。如用户用鼠标按一下按钮,就会触发按钮的“按”(click)事件。控件:控件就是visual basic提供的编程用的模块,与对象有直接的联系,如同积木的木块,使用这样的控件,就可以像拼图或堆积木一样“搭”、“拼”你的程序界面。visual basic中使用控件,简化了windows中的窗口、按钮等对象的编程设计。每个控件都有各自的属性、事件及方法。只需修改这些特征你就可以随心所欲地编程了。最重要的是,你可以利用成千上万的各种扩充的控件来快速构造几乎能满足你任何要求的程序。例如,如果你不满意windows简陋的媒体播放器,你就可以使用vb的多媒体控件在1小时以内设计一个完全自己风格的能够播放cd、vcd的多媒体播放器,而功能完全与之相当。1.3.4sql介绍sql(structured query language,译为结构化查询语言)在关系型数据库中的地位就犹如英语在世界上的地位。它是数据库系统的通用语言,利用它,用户可以用几乎同样的语句在不同的数据库系统上执行同样的操作。比如“select * from 数据表名”代表要从某个数据表中取出全部数据,在oracle 9i、sql server 2000、foxpro等关系型数据库中都可以使用这条语句。sql已经被ansi(美国国家标准化组织)确定为数据库系统的工业标准。sql语言按照功能可以分为4大类。n 数据查询语言dql:查询数据。n 数据定义语言ddl:建立、删除和修改数据对象。n 数据操纵语言dml:完成数据操作的命令,包括查询。n 数据控制语言dcl:控制对数据库的访问,服务器的关闭、启动等。1.3.5 sql的主要特点sql语言简单易学、风格统一,利用简单的几个英语单词的组合就可以完成所有的功能。在sqlplus worksheet环境下可以单独使用的sql语句,几乎可以不加修改地嵌入到如vb、pb这样的前端开发平台上利用前端工具的计算能力和sql的数据库操纵能力,可以快速建立数据库应用程序。第二章 茶销售系统设计分析2.1系统模块的设计1、基本信息的输入和修改; 其功能包括商品类别设置、商品设置、商品颜色设置、供应商信息设置、客户信息设置、业务员类别设置、业务员设置、仓库信息设置等。2、进货信息的管理; 其功能包括订货单的录入和修改、入库单的录入和修改以及相关信息的查询,如按照供应商、仓库和业务员等方式的查询。3、销售信息管理; 其功能包括订货单的录入和修改、销售单的录入和修改以及相关信息的查询,如按照客户、仓库和业务员等方式的查询。4、库存信息的管理; 其功能包括转仓单的录入和修改、商品盘点和相关信息的查询,如按照转出、转入等方式的查询。5、财务信息管理,包括应收信息的录入和修改、应付信息的录入和修改等。2.2系统数据库设计设计了一个名称为purchaseandsale的数据库。根据系统功能的需要,在其中总共设计了6个数据表。product数据表主要用于存储企业产品或原材料的基本信息,和根据销售记录和采集记录计算得出的每种商品的库存数量也存放在product数据表的库存字段中。结构如表2.1所示表2.1 product数据表结构字段名数据类型长度是否允许为空说明商品名称nvarchar255否主键产地nvarchar40是商品的产地规格nvarchar50是商品的规格包装nvarchar50是商品的包装单位nchar19是商品的单位库存int4是产品的库存,默认为0user表主要用于存储系统的用户信息,包括用户的名称和系统登陆密码。结构如表2.2所示表2.2user数据结构表字段名数据类型长度是否允许为空说明用户nvarchar10否主键密码nvarchar10是用户密码可为空supplier数据表主要用于存储企业的供应商信息,比如供应商的名称、供应商的地址、联系方式等。结构如表2.3所示表2.3 supplier数据表结构字段名数据类型长度是否允许为空说明供应商简称nvarchar10否主键供应商全称nvarchar100是供应商全称地址nvarchar100是供应商地址邮政编码nchar6是供应商邮政编码电话numeric9是供应商电话传真numeric9是供应商传真联系人nvarchar30是供应商联系人联系人电话numeric9是供应商联系人电话开户银行nvarchar100是供应商开户银行银行帐号numeric13是供应商银行帐号企业网址nvarchar50是供应商网址customer数据表主要用于存储企业的客户信息,比如客户的名称、客户的电话、客户的银行帐号等。结构如表2.4所示表2.4customer数据表结构字段名数据类型长度是否允许为空说明客户简称nvarchar10否主键客户全称nvarchar100是客户单位的全称地址nvarchar100是客户的地址邮政编码nchar6是客户的邮政编码电话numeric9是客户的电话传真numeric9是客户的传真联系人nvarchar30是联系人联系人电话numeric9是客户的联系人电话开户银行nvarchar100是客户开户银行银行帐号numeric13是客户银行帐号企业网址nvarchar50是客户企业网址purchase数据表主要用于存储企业的采购信息,比如采购商品的名称、价格、采购数量,采购日期等。结构如表2.5所示表2.5purchase数据结构表字段名数据类型长度是否允许为空说明商品名称nvarchar255否外键,对应product表数量int4否商品的数量进价money8否商品的进价金额money8是由进价和数量计算得出备注nvarchar220是备注信息供应商nvarchar10否外键,对应supplier表日期smalldatetime4否采购的时间,默认为当天经手人nvarchar10否外键,对应user表票号nvarchar50否采购记录的票号,系统自动生成sale数据表主要用于存储企业销售信息,如商品名称、价格、销售数量、销售日期、经手人等。结构如表2.6所示表2.6sale数据结构表字段名数据类型长度是否允许为空说明商品名称nvarchar255否外键,对应product表数量int4否采购数量单价money8否采购进价金额money8是由数量和进价计算得出备注nvarchar220是备注信息客户nvarchar10否外键,对应customer表日期smalldatetime4否采购时间,默认为当天经手人nvarchar10否外键,对应user表票号nvarchar50否由系统自动生成2.3各数据表的关系 具体关系主要表现在以下方面l 采购单、销售单中的经手人必须是企业中的合法员工,所以要求经手人必须是在user数据表中有相应的记录;l 采购单,销售单中的产品必须在product数据表中有相应的记录。如果采购一种新商品,必须先在product数据表中添加这种商品的信息;l 采购单中的供应商必须是supplier数据表中有相应的记录。如果采购中发展了新的供应商,必须先在supplier数据表中添加这家供应商的信息;l 销售单中的客户必须是customer数据表中有相应的记录。如果销售中发展了新的客户商,必须先在customer数据表中添加这家客户的信息;这些关系可以在sql server中用关系图工具设计和查看,结果如图2.1所示图2.1 purchaseandsale数据库中数据表关系图第三章 应用程序设计3.1.系统功能设计茶销售管理系统充分发挥信息技术的优势,通过集中式的信息数据库,将企业的进、销、存等经营业务有机的结合起来,达到数据共享、降低成本、提高效率、改进服务的目的,进而提升企业的生产效率和管理水平。茶 销 售 管 理 系 统退出系统系统设置基础信息统计查询日常业务库存管理关于系统密码设置客户管理供应商管理销售查询采购查询库存查询产品管理库存盘点 销售单 采购单图3.1系统模块组织结构图3.1.1系统功能流程图图3.2系统功能流程图磁盘过 程文档数据3.2登陆模块详细设计在本系统的登陆中,要求用户从系统已经创建的用户中选择一个用户,然后输入相应的密码。程序在数据库的users数据表中进行查询,如果密码正确,就可以使用该系统,如果用户密码错误,将提示用户重新新输入密码。3.2.1控件属性列表表3.1frmlogin窗口中控件及其属性列表控件种类控件名称属性属性值说明labeliabusernamecaption用户名:设置标签显示字段font黑体,常规,小四设置标签字体lableiabpwdcaption密码:设置标签显示字段font黑体,常规,小四设置标签字体comboboxcmbusernamestyledropdown combo设置组合框式样textboxtxtpwdtext“”设置默认为空commandbuttoncmdokcaption确定设置命令按钮标题commandbuttoncmdcancelcaption取消设置命令按钮标题imageimgsysdateformat图片设置图片格式imageimgsyspicture合适的图片文件指定显示的图片stretchtrue图片可以拉伸3.2.2窗口设计效果图3.3 frmlogin窗口设计效果因为要在窗口的代码中使用ado中的一些对象进行数据库操作,所以必须先引用相对应的库。在vb的菜单栏中依次选择“工程”“引用”菜单,出现如图3.4所示的“引用”对话框。图3.4应用对话框选择“microsoft activex date objects 2.0 library”,这样就可以使用程序代码中的ado中的对象了。3.2.3主要实现代码当系统运行打开frmlogin窗口的时候,需要从数据库的users数据表中查找当前系统中的所有用户,然后将它们添加到cmbusername组和框中,代码如下:dim conn as new adodb.connectiondim rs as new adodb.recordsetdim connstring as stringdim num as integer 用于保存密码输入错误次数private sub form_load() connstring = provider=sqloledb.1;password=ecc;persist security info=true;user id=sa; _ & initial catalog=purchaseandsale;server=(local) 定义连接字符串 if conn.state 1 then 如果数据库未打开,则打开数据库 conn.open (connstring) end if set rs = conn.execute(select * from users) 执行查询操作,结果保存在rs记录集中 with rs .movefirstdo while not .eof 逐条读取用户名称,添加到cmbusername组合框中 doevents cmbusername.additem (!用户) .movenext loop end with cmbusername.listindex = 0 将cmbusername组合框的默认选项设置为第一条 conn.closeend sub根据用户名对库中的user表进行检索,如密码输入错误3次,就提示你无权登陆本系统,并推出系统。private sub cmdok_click() if trim(cmbusername.text) = then 首先要求用户名不能为空 msgbox 用户名不能为空!, vbokonly + vbexclamation, 警告! cmbusername.setfocus 将焦点转移到用户名组合框中 exit sub end if connstring = provider=sqloledb.1;password=ecc;persist security info=true;user id=sa; _ & initial catalog=purchaseandsale;server=(local) if conn.state 1 then 如果数据库没有打开则打开数据库 conn.open (connstring) end if set rs = conn.execute(select * from users where 用户= & trim(cmbusername.text) & ) 在users数据表中检索用户字段值为用户输入的用户名的记录,将结果存放在rs记录集中 if rs.eof then 如果记录为空则说明不存在此条记录,也说明用户名错误 msgbox 没有该用户! & vbcrlf & 请重新输入!, vbokonly + vbexclamation, 提示 cmbusername.setfocus exit sub else 存在此用户名,检查密码 rs.movefirst if rs.fields(密码).value = trim(txtpwd.text) then 密码正确 unload frmlogin 卸载登录窗口 load frmmain 加载主窗口 frmmain.show 显示主窗口 else 密码错误 if num 0 then for i = 0 to 10 初始化给gys(i)赋值 if adokhgl.recordset.fields(i) then gys(i).text = adokhgl.recordset.fields(i) else gys(i).text = end if next i end if sstab1.tab = 0 显示第一个选项卡end sub按条件查询时,将结果的第一条纪录显示在“供应商信息”中,双击cmdfind控件输入如下代码:private sub cmdfind_click() 查询客户信息 adokhgl.commandtype = adcmdtext adokhgl.recordsource = select * from customer where & trim(combo1.text) & _ like & trim(text1.text) & % adokhgl.refresh if adokhgl.recordset.recordcount 0 then adokhgl.recordset.movefirst for i = 0 to 10 将查询结果的第一条记录的字段显示 if adokhgl.recordset.fields(i) then gys(i).text = adokhgl.recordset.fields(i) else gys(i).text = end if next i end ifend sub用户通过4个cmdmd按钮移动纪录时,需要更新“供应商信息”选项卡中的信息,双击cmdmd控件输入如下代码:private sub cmdmd_click(index as integer) select case index case is = 0 移到第一条记录 if not adokhgl.recordset.bof then adokhgl.recordset.movefirst case is = 1 移到上一条记录 if adokhgl.recordset.recordcount 0 then if adokhgl.recordset.bof = false then adokhgl.recordset.moveprevious if adokhgl.recordset.bof = true then adokhgl.recordset.movefirst end if case is = 2 移到下一条记录 if adokhgl.recordset.recordcount 0 then if adokhgl.recordset.eof = false then adokhgl.recordset.movenext if adokhgl.recordset.eof = true then adokhgl.recordset.movelast end if case is = 3 移到最后一条记录 if adokhgl.recordset.recordcount 0 then if adokhgl.recordset.eof = false then adokhgl.recordset.movenext if adokhgl.recordset.eof = true then adokhgl.recordset.movelast end if end select for i = 0 to 10 if adokhgl.recordset.fields(i) then gys(i).text = adokhgl.recordset.fields(i) else gys(i).text = end if next iend sub用户单击“增加”按钮的时候,需要增加记录,而且增加操作必须在“客户信息”选项卡中完成,双击“增加”按钮输入如下代码:private sub cmdadd_click() 允许用户添加新记录 adokhgl.commandtype = adcmdtext adokhgl.recordsource = select * from customer adokhgl.refresh adokhgl.recordset.addnew for i = 0 to 10 设置文本框可用,且初始值为空 gys(i).text = gys(i).enabled = true next i for i = 0 to 3 增加记录时记录不可移动 cmdmd(i).enabled = false next i cmdadd.enabled = false cmdupdate.enabled = true 增加记录时只可保存或退出 cmdrefresh.enabled = false cmddelete.enabled = false sstab1.tab = 0 在“客户信息”选项卡中输入信息 gys(0).setfocus 焦点转移到第一个字段上end sub用户单击“删除”按钮的时候,需要删除记录,而且增加操作必须在“客户信息”选项卡中完成,双击“删除”按钮输入如下代码:private sub cmddelete_click() 删除客户信息 if adokhgl.recordset.recordcount 0 then if msgbox(您确实要删除这条数据吗?, vbyesno + vbquestion, 提示) = vbyes then adokhgl.recordset.delete adokhgl.refresh adokhgl.recordset.movefirst for i = 0 to 3 cmdmd(i).enabled = true next i cmdadd.enabled = true cmdupdate.enabled = true cmddelete.enabled = true cmdrefresh.enabled = true for i = 0 to 10 gys(i).text = adokhgl.recordset.fields(i) next i end if else msgbox (没有要删除的数据!) end ifend sub4.1.2供应商管理供应商管理:基本信息的输入和修改中的一个模块,主要用于对供应商信息的查询和维护。为了方便对多个供应商的管理和比较,所以用tab页的形式实现,即方便对单个供应商信息的查看和编辑,又利于对供应商总体的评价和比较,具体设计如下:在工具箱中拖动一个tab 控件到frmgysgl窗口中,按需求在其中添加相应的lable控件和textbox控件,完成效果如图4.4所示。图4.4供应商管理窗体效果图当打开这个窗口时,需要将各种不同的查询标准添加到combo1的子项中,然后将supplier数据表中的第一条记录的各个字段显示在“供应商信息里”,双击frmgysgl,输入代码dim x, i 定义变量private sub form_load() x = array(供应商简称, 供应商全称, 地址, 邮政编码, 电话, 传真, 联系人) for i = 0 to 6 向combo1添加查询项目列表 combo1.additem (x(i) next i combo1.listindex = 0 adogysgl.refresh if adogysgl.recordset.recordcount 0 then for i = 0 to 10 初始化给gys(i)赋值 if adogysgl.recordset.fields(i) then gys(i).text = adogysgl.recordset.fields(i) else gys(i).text = end if next i end if sstab1.tab = 0 显示第一个选项卡end sub按条件查询时,将结果的第一条纪录显示在“供应商信息”中,双击cmdfind控件输入如下代码:private sub cmdfind_click() 查询供应商信息 adogysgl.commandtype = adcmdtext adogysgl.recordsource = select * from supplier where & trim(combo1.text) & _ like & trim(text1.text) & % adogysgl.refresh if adogysgl.recordset.recordcount 0 then adogysgl.recordset.movefirst for i = 0 to 10 将查询结果的第一条记录的字段显示 if adogysgl.recordset.fields(i) then gys(i).text = adogysgl.recordset.fields(i) else gys(i).text = end if next i end ifend sub用户通过4个cmdmd按钮移动纪录时,需要更新“供应商信息”选项卡中的信息,双击cmdmd控件输入如下代码:private sub cmdmd_click(index as integer) select case index case is = 0 移到第一条记录 if not adogysgl.recordset.bof then adogysgl.recordset.movefirst case is = 1 移到上一条记录 if adogysgl.recordset.recordcount 0 then if adogysgl.recordset.bof = false then adogysgl.recordset.moveprevious if adogysgl.recordset.bof = true then adogysgl.recordset.movefirst end if case is = 2 移到下一条记录 if adogysgl.recordset.recordcount 0 then if adogysgl.recordset.eof = false then adogysgl.recordset.movenext if adogysgl.recordset.eof = true then adogysgl.recordset.movelast end if case is = 3 移到最后一条记录 if adogysgl.recordset.recordcount 0 then if adogysgl.recordset.eof = false then adogysgl.recordset.movenext if adogysgl.recordset.eof = true then adogysgl.recordset.movelast end if end select for i = 0 to 10 if adogysgl.recordset.fields(i) then gys(i).text = adogysgl.recordset.fields(i) else gys(i).text =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安全生产知识竞赛之机械故障排除试题及答案
- 仓储物流入职培训仓库管理与库存控制试题及答案
- 2026年水果种植公司员工薪酬管理制度
- (正式版)DB2327∕T 078-2023 《大兴安岭地区机关办公楼(区) 物业服务规范》
- 4《珍珠鸟》教学设计-统编版语文五年级上册 -
- 宠物店开店知识培训课件
- 第16课《驱遣我们的想象》教学设计-统编版语文九年级下册
- 求职家暴法律知识培训课件
- 2024-2025学年高中历史 第六单元 杰出的科学家 第3课 中国地质力学的奠基人李四光(2)教学说课稿 新人教版选修4
- 第6课 区间限速说课稿-2025-2026学年初中信息技术龙教版2018八年级下册-龙教版2018
- 食堂菜品出品管理方案
- 现网终端问题分析报告
- 中国历史时期疆域变迁
- 第十五章巷道与井筒施工测量
- GB/T 15415-1994炉用高温电视系统测量方法
- GB/T 13384-2008机电产品包装通用技术条件
- FZ/T 07019-2021针织印染面料单位产品能源消耗限额
- 《计算机辅助翻译》课程教学大纲
- 电厂化学运行规程
- 新版香港朗文1A-6B全部单词汇总
- 华南农大农业生态学
评论
0/150
提交评论