版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关于小型零售实体店管理系统的设计与实现摘要:在未来,全面信息化管理是必然的,但因为成本问题,绝大多数小型零售实体店还在使用纸质文件记录和管理。本文通过对当前小型实体零售店寒冬的研究与分析,为了方便小型实体零售店的经营管理,设计了小型实体店经营管理系统。实现系统使用了EclipseJavaLatestReleased编写代码,使用SQLyog设计数据库。本系统实现的功能有商品管理功能,成本管理功能和会员管理功能。关键词:小型实体零售店;信息化管理;会员营销ABSTRACT:Inthefuture,comprehensiveinformationmanagementisinevitable,butbecauseofthecostproblem,thevastmajorityofsmallretailstoresarestillusingpaperdocumentrecordsandmanagement.Inthispaper,throughtheresearchandanalysisofthecurrentsmall-scalephysicalretailstoresinwinter,inordertofacilitatetheoperationandmanagementofsmall-scalephysicalretailstores,theoperationandmanagementsystemofsmall-scalephysicalretailstoresisdesigned.TheimplementationsystemuseseclipseJavalatestreleasedtowritecodeandsqliogtodesigndatabase.Thefunctionsofthissystemincludecommoditymanagement,costmanagementandmembershipmanagement.KEYWORDS:Smallandmedium-sizedphysicalretailstores;Informationmanagement;membermarketing目录1.绪论 [11]3.2系统结构小型实体店经营管理系统应该涉及到商品,顾客和店铺。系统结构如图3-1所示。小型实体店经营管理系统小型实体店经营管理系统商品模块店铺模块会员模块图3-1系统结构图4.系统设计4.1菜单 菜单应有3个按钮:商品模块按钮,店铺模块按钮,会员模块按钮。菜单窗口如图4-1所示。图4-1菜单窗口代码: btn1.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){ newShangPin().spgl();}}); btn2.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){ newCost().cbgl();}}); btn3.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){ newHuiYuan().hygl();}});4.2商品模块商品管理子模块可以让商家管理商品。商品管理子模块应显示出商品表格,字段应有商品名,种类,售价,数量,单位,成本,折扣,额外积分,备注。增加商品按钮,修改商品按钮,删除商品按钮。点击增加商品按钮将弹出商品增加窗口,需要填写商品的各项属性。属性应有:商品名,种类,售价,数量,单位,成本,折扣,额外积分,备注。其中种类、折扣、额外积分和备注不是必填,如果折扣或额外积分为空,它们会被紫东赋值,折扣为“1”,额外积分为“0”。填写完必填内容后,点击确定后自动关闭此窗口,如果没有填完必填内容,将在对应输入框右侧显示必填红字。增加新商品成功后,商品表将插入一条新数据,字段应有:商品ID,商品名,种类,售价,数量,单位,成本,折扣,额外积分,备注。如果选中一个复选框,再点击修改商品按钮,则会弹出修改商品窗口,可以填写商品的一些属性。属性应有:商品名,种类,售价,单位,成本,折扣,额外积分,备注。其中种类、折扣、额外积分和备注可以为空,如果折扣或额外积分为空,它们会被紫东赋值,折扣为“1”,额外积分为“0”。填写完必填内容后,点击确定后自动关闭此窗口,如果没有填完必填内容,将在对应输入框右侧显示必填红字。修改商品属性成功后,商品表中对应数据将被修改。如果选中一个复选框,再点击删除商品按钮,则会弹出确认窗口,点击确认按钮后自动关闭此窗口,商品表中对应数据的“删除FLAG”字段的值修改为“1”,如果点击取消按钮,则自动关闭此窗口,无变化。商品管理窗口如图4-2所示。增加商品窗口如图4-3所示。修改商品窗口如图4-4所示。图4-2商品管理窗口代码://监听选中行 table.getSelectionModel().addListSelectionListener(newListSelectionListener(){ @Override publicvoidvalueChanged(ListSelectionEvente) { intcount=table.getSelectedRow();//获取你选中的行号(记录) for(inti=0;i<9;i++){ data2[i]=table.getValueAt(count,i).toString(); } } });// 增加按钮事件 btna.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){ newAddShangPin().zjsp();}});// 删除按钮事件 btnx.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){ intn=1; gname=data2[1]; if(gname!=null){ n=JOptionPane.showConfirmDialog(null,"你确认删除("+gname+")吗?","确认删除",JOptionPane.YES_NO_OPTION); } if(n==0){ //删除选中行 try{ dao.del1(gname); }catch(SQLExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); }// 刷新 jf.setVisible(false); newShangPin().spgl(); }}}); UpdShangPinupdshangpin=newUpdShangPin();// 修改按钮事件 btnu.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){Stringgoodsid2=data2[0]; goodsid=Integer.parseInt(goodsid2); goodsname=data2[1]; kind=data2[2]; price=data2[3]; goodsnum=data2[4]; units=data2[5]; goodscost=data2[6]; discount=data2[7]; expoint=data2[8]; remarks=data2[9]; ( goodsid, goodsname, kind, price, goodsnum, units, goodscost, discount, expoint, remarks); if(goodsname!=null) { newUpdShangPin().xgsp(); }}});//表 publicvoidtabledata()throwsSQLException{ //表体 List<Goods>list=dao.queryAll(); data=newObject[list.size()][head.length]; for(inti=0;i<list.size();i++){ for(intj=0;j<head.length;j++){ data[i][0]=list.get(i).get_goods_goodsid(); data[i][1]=list.get(i).get_goods_goodsname(); data[i][2]=list.get(i).get_goods_kind(); data[i][3]=list.get(i).get_goods_price(); data[i][4]=list.get(i).get_goods_goodsnum(); data[i][5]=list.get(i).get_goods_units(); data[i][6]=list.get(i).get_goods_goodscost(); data[i][7]=list.get(i).get_goods_discount(); data[i][8]=list.get(i).get_goods_expoint(); data[i][9]=list.get(i).get_goods_remarks(); } } }图4-3增加商品窗口代码:// 确认按钮事件btny.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){ try{ //获得id data(); goodsname=t1.getText(); kind=t2.getText(); Stringprice2=t3.getText(); price=Double.parseDouble(price2); Stringgoodsnum2=t4.getText(); goodsnum=Double.parseDouble(goodsnum2); units=t5.getText(); Stringgoodscost2=t6.getText(); goodscost=Double.parseDouble(goodscost2); Stringdiscount2=t7.getText(); if(discount2==null){ discount=Double.parseDouble(discount2); } else{ discount=1; } Stringexpoint2=t8.getText(); if(expoint2==null){ expoint=Integer.parseInt(expoint2); } else{ expoint=0; } remarks=t9.getText();// System.out.println(goodsid);// System.out.println(discount); inssp(); }catch(SQLExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } //提示消息 ComponentjPanel=null; JOptionPane.showMessageDialog(jPanel,"插入成功","提示消息",JOptionPane.WARNING_MESSAGE);}});//id publicvoiddata()throwsSQLException{ List<Goods>list=dao.queryAll2();// System.out.println("///");// System.out.println(list.size());// System.out.println("///"); inti=list.size()-1; goodsid=list.get(i).get_goods_goodsid(); goodsid=goodsid+1; } //插入数据库 publicvoidinssp()throwsSQLException{ dao.ins1(goodsid,goodsname,kind,price,goodsnum,units,goodscost,discount,expoint,remarks); }图4-4修改商品窗口代码://传值 publicvoidname(intgoodsid2, String goodsname2, String kind2, String price2, String goodsnum2, Stringunits2, Stringgoodscost2, Stringdiscount2, Stringexpoint2, Stringremarks2){ goodsid=goodsid2; goodsname=goodsname2; kind=kind2; price=Double.parseDouble(price2); goodsnum=Double.parseDouble(goodsnum2); units=units2; goodscost=Double.parseDouble(goodscost2); discount=Double.parseDouble(discount2); expoint=Integer.parseInt(expoint2); remarks=remarks2;// System.out.println("/2/");// System.out.println(goodsname);// System.out.println("/2/"); }// 确认按钮事件btny.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){ try{ goodsname=t1.getText(); kind=t2.getText(); Stringprice2=t3.getText(); price=Double.parseDouble(price2); Stringgoodsnum2=t4.getText(); goodsnum=Double.parseDouble(goodsnum2); units=t5.getText(); Stringgoodscost2=t6.getText(); goodscost=Double.parseDouble(goodscost2); Stringdiscount2=t7.getText(); discount=Double.parseDouble(discount2); Stringexpoint2=t8.getText(); expoint=Integer.parseInt(expoint2); remarks=t9.getText();// System.out.println(goodsid); upd(); //关闭 jf.setVisible(false); }catch(SQLExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } //提示消息 ComponentjPanel=null; JOptionPane.showMessageDialog(jPanel,"修改成功","提示消息",JOptionPane.WARNING_MESSAGE);}});//更新数据库 publicvoidupd()throwsSQLException{ dao.upd1(goodsname,kind,price,goodsnum,units,goodscost,discount,expoint,remarks,goodsid); }4.3店铺模块店铺管理子模块是让商家管理成本的记账本。成本管理窗口应显示成本记录表格,字段应有:日期,成本事物,成本。表格每条数据有一个复选框。增加成本按钮,删除成本按钮,修改成本按钮。点击增加成本按钮将弹出增加成本窗口,可以输入日期,输入成本事物、成本,都不可为空。点击确定后自动关闭此窗口,如果没有填完必填内容,将在对应输入框右侧显示必填红字。增加成本成功后,成本记录表将被修改。如果点击取消按钮,则自动关闭此窗口,无变化。如果选中一个复选框,再点击修改按钮,则会弹出成本修改窗口,可以填写成本的属性。属性应有:日期,成本事物,成本。都是必填项,填写内容后,点击确定后自动关闭此窗口,如果没有填完必填内容,将在对应输入框右侧显示必填红字。修改会员属性成功后,会员表中对应数据将被修改。如果点击取消按钮,则自动关闭此窗口,无变化。如果选中一个复选框,再点击删除按钮,则会弹出确认窗口,点击确认按钮后自动关闭此窗口,成本表中对应数据被删除,如果点击取消按钮,则自动关闭此窗口,无变化。成本管理窗口如图4-5所示。增加成本窗口如图4-6所示。修改成本窗口如图4-7所示。图4-5成本管理窗口代码://监听选中行table.getSelectionModel().addListSelectionListener(newListSelectionListener(){ @Override publicvoidvalueChanged(ListSelectionEvente) { intcount=table.getSelectedRow();//获取你选中的行号(记录) for(inti=0;i<4;i++){ data2[i]=table.getValueAt(count,i).toString(); } } });//增加按钮事件btna.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){ newAddCost().zjcb();}});//删除按钮事件btnx.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){ intn=1; costdate=data2[1]; costthing=data2[2]; if(costthing!=null){ n=JOptionPane.showConfirmDialog(null,"你确认删除("+costdate+"的"+costthing+")吗?","确认删除",JOptionPane.YES_NO_OPTION); } if(n==0){ //删除选中行 try{ dao.del2(costdate,costthing); }catch(SQLExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); }//刷新 jf.setVisible(false); newCost().cbgl(); }}});UpdCostupdcost=newUpdCost();//修改按钮事件btnu.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){costdate=data2[1];costthing=data2[2];cost=data2[3];//System.out.println("/1/"+costdate+"/1/");//System.out.println("/2/"+costthing+"/2/");//System.out.println("/3/"+cost+"/3/");( costdate, costthing, cost); if(costdate!=null) { newUpdCost().xgcb(); }}});//表publicvoidtabledata()throwsSQLException{//表体List<Shopcost>list=dao.queryAll3();data=newObject[list.size()][head.length];for(inti=0;i<list.size();i++){for(intj=0;j<head.length;j++){data[i][0]=list.get(i).get_shopcost_costdate();data[i][1]=list.get(i).get_shopcost_costdate();data[i][2]=list.get(i).get_shopcost_costthing();data[i][3]=list.get(i).get_shopcost_cost();}}}图4-6增加成本窗口代码:// 确认按钮事件btny.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){ try{ costdate=t1.getText(); costthing=t2.getText(); Stringcost2=t3.getText(); cost=Double.parseDouble(cost2); ins2(); }catch(SQLExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } //提示消息 ComponentjPanel=null; JOptionPane.showMessageDialog(jPanel,"插入成功","提示消息",JOptionPane.WARNING_MESSAGE);}});//插入数据库 publicvoidins2()throwsSQLException{ dao.ins2(costdate,costthing,cost); }图4-7修改成本窗口代码://传值 publicvoidname( String costdate2, String costthing2, String cost2){ costdate=costdate2; costthing=costthing2; cost=Double.parseDouble(cost2); }// 确认按钮事件btny.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){ try{ costdate2=t1.getText(); costthing=t2.getText(); Stringcost2=t3.getText(); cost=Double.parseDouble(cost2); upd(); //关闭 jf.setVisible(false); }catch(SQLExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } //提示消息 ComponentjPanel=null; JOptionPane.showMessageDialog(jPanel,"修改成功","提示消息",JOptionPane.WARNING_MESSAGE);}});//更新数据库 publicvoidupd()throwsSQLException{ dao.upd2(costdate2,costthing,cost,costdate); }4.4会员模块会员管理子模块可以对会员增加、删除和修改操作。会员管理子模块应显示出会员管理表格,字段应有:姓名,生日,电话,积分,等级,消费额,会员折扣,注册时间,备注。查询按钮,修改按钮,删除按钮。如果选中一个复选框,再点击修改按钮,则会弹出会员修改窗口,可以填写会员的一些属性。属性应有:姓名,生日,电话,积分,等级,消费额,会员折扣,注册时间。都是必填项,填写内容后,点击确定后自动关闭此窗口,如果没有填完必填内容,将在对应输入框右侧显示必填红字。修改会员属性成功后,会员表中对应数据将被修改。如果点击取消按钮,则自动关闭此窗口,无变化。如果选中一个复选框,再点击删除按钮,则会弹出确认窗口,点击确认按钮后自动关闭此窗口,会员表中对应数据的“删除FLAG”字段的值修改为“1”,如果点击取消按钮,则自动关闭此窗口,无变化。会员管理窗口如图4-8所示。增加会员窗口如图4-9所示。修改会员窗口如图4-10所示。图4-8会员管理窗口代码://监听选中行table.getSelectionModel().addListSelectionListener(newListSelectionListener(){ @Override publicvoidvalueChanged(ListSelectionEvente) { intcount=table.getSelectedRow();//获取你选中的行号(记录) for(inti=0;i<9;i++){ data2[i]=table.getValueAt(count,i).toString(); } } });//增加按钮事件btna.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){ newAddHuiYuan().zjhy();}});//删除按钮事件btnx.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){ intn=1; idid=data2[0]; namename=data2[1]; if(namename!=null){ n=JOptionPane.showConfirmDialog(null,"你确认删除("+namename+")吗?","确认删除",JOptionPane.YES_NO_OPTION); } if(n==0){ //删除选中行 try{ intidid2=Integer.parseInt(idid); dao.del2(idid2); }catch(SQLExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); }// 刷新 jf.setVisible(false); newHuiYuan().hygl(); }}});UpdHuiYuanupdhuiyuan=newUpdHuiYuan();//修改按钮事件btnu.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){Stringvipid2=data2[0];vipid=Integer.parseInt(vipid2);vipname=data2[1];birthday=data2[2];Stringphone2=data2[3];phone=Integer.parseInt(phone2);Stringpoint2=data2[4];point=Integer.parseInt(point2);Stringmoney2=data2[5];money=Double.parseDouble(money2);Stringlv2=data2[6];lv=Integer.parseInt(lv2);Stringvipdiscount2=data2[7];vipdiscount=Double.parseDouble(vipdiscount2);signdate=data2[8];remarks=data2[9]; (vipid,vipname,birthday,phone,point,money,lv,vipdiscount,signdate,remarks); if(vipname!=null) { newUpdHuiYuan().xghy(); }}});//表publicvoidtabledata()throwsSQLException{ //表体 List<Vip>list=dao.queryAll4();data=newObject[list.size()][head.length];for(inti=0;i<list.size();i++){for(intj=0;j<head.length;j++){data[i][0]=list.get(i).get_vip_vipid();data[i][1]=list.get(i).get_vip_vipname();data[i][2]=list.get(i).get_vip_birthday();data[i][3]=list.get(i).get_vip_phone();data[i][4]=list.get(i).get_vip_point();data[i][5]=list.get(i).get_vip_money();data[i][6]=list.get(i).get_vip_lv();data[i][7]=list.get(i).get_vip_vipdiscount();data[i][8]=list.get(i).get_vip_signdate();data[i][9]=list.get(i).get_vip_remarks();}}}图4-9增加会员窗口代码:// 确认按钮事件btny.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){ try{ //获得id data();// System.out.println(vipid); vipname=t1.getText(); birthday=t2.getText(); Stringphone2=t3.getText(); phone=Integer.parseInt(phone2); Stringpoint2=t4.getText(); point=Integer.parseInt(point2); Stringmoney2=t5.getText(); money=Double.parseDouble(money2); Stringlv2=t6.getText(); lv=Integer.parseInt(lv2); Stringvipdiscount2=t7.getText(); vipdiscount=Double.parseDouble(vipdiscount2); signdate=t8.getText(); remarks=t9.getText();// System.out.println(goodsid);// System.out.println(discount); inssp(); }catch(SQLExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } //提示消息 ComponentjPanel=null; JOptionPane.showMessageDialog(jPanel,"插入成功","提示消息",JOptionPane.WARNING_MESSAGE);}});//id publicvoiddata()throwsSQLException{ List<Vip>list=dao.queryAll4();// System.out.println("///");// System.out.println(list.size());// System.out.println("///"); inti=list.size()-1; vipid=list.get(i).get_vip_vipid(); vipid=vipid+1; } //插入数据库 publicvoidinssp()throwsSQLException{// System.out.println(vipid); dao.ins3(vipid,vipname,birthday,phone,point,money,lv,vipdiscount,signdate,remarks); }图4-10修改会员窗口代码://传值 publicvoidname(int vipid2, String vipname2, String birthday2, int phone2, int point2, doublemoney2, intlv2, doublevipdiscount2, Stringsigndate2, Stringremarks2){ vipid=vipid2; vipname=vipname2; birthday=birthday2; phone=phone2; point=point2; money=money2; lv=lv2; vipdiscount=vipdiscount2; signdate=signdate2; remarks=remarks2;// System.out.println("/2/");// System.out.println(goodsname);// System.out.println("/2/"); }// 确认按钮事件 btny.addActionListener(newActionListener(){ @Override publicvoidactionPerformed(ActionEvente){ try{ vipname=t1.getText(); birthday=t2.getText(); Stringphone2=t3.getText(); phone=Integer.parseInt(phone2); Stringpoint2=t4.getText(); point=Integer.parseInt(point2); Stringmoney2=t5.getText(); money=Double.parseDouble(money2); Stringlv2=t6.getText(); lv=Integer.parseInt(lv2); Stringvipdiscount2=t7.getText(); vipdiscount=Double.parseDouble(vipdiscount2); signdate=t8.getText(); remarks=t9.getText();// System.out.println(goodsid); upd(); //关闭 jf.setVisible(false); }catch(SQLExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } //提示消息 ComponentjPanel=null; JOptionPane.showMessageDialog(jPanel,"修改成功","提示消息",JOptionPane.WARNING_MESSAGE); } });//更新数据库 publicvoidupd()throwsSQLException{ dao.upd3(vipname,birthday,phone,point,money,lv,vipdiscount,signdate,remarks,vipid); }4.5数据库设计表4-1商品表(goods)列名数据类型字段值约束主/外键备注goodsidintNotnull主键商品IDgoodsnamevarchar(100)Notnull商品名kindvarchar(100)null种类pricedoubleNotnull售价goodsnumdoubleNotnull数量unitsvarchar(100)Notnull单位goodscostdoubleNotnull成本discountdoubleNotnull折扣expointIntNotnull额外积分remarksvarchar(100)null备注delflagtinyint(1)Notnull,default0删除FLAG表4-2店铺成本表(shopcost)列名数据类型字段值约束主/外键备注costdatedateNotnull主键日期costthingvarchar(100)Notnull成本事物costdoubleNotnull成本表4-3会员表(vip)列名数据类型字段值约束主/外键备注vipidintNotnull主键会员IDvipnamevarchar(100)Notnull姓名birthdaydateNotnull生日phoneintNotnull电话pointIntNotnull积分moneydoubleNotnull消费额classintNotnull等级vipdiscountdoubleNotnull会员折扣signdatedatetimeNotnull注册时间remarksvarchar(100)null备注delflagtinyint(1)Notnull,default0删除FLAG参考文献王珊,萨师煊.数据库系统概论(第四版)[M].北京:高等教育出版社,2006.张俊兰,王文发,马乐荣等.软件工程[M].西安:西安电子科技大学出版社,2009.萨师煊,王珊.数据库系统概论(第三版)[M].北京:高等教育出版社,2000.施霞萍等.《Java程序设计教程》[M].北京:机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国科学院广州地球化学研究所科研助理招聘2人备考题库(应用矿物学学科组)完整答案详解
- CN116070918B 一种城市洪涝安全评估及洪涝灾害防治方法 (珠江水利委员会珠江水利科学研究院)
- 2026年服务机器人交互场景分类方法研究
- 护理案例竞赛题目及答案
- 蒙牛乳业2025年业绩预告点评:减值出清轻装上阵行业景气触底回升
- 小学三年级作文起步阶段畏难情绪调查-基于2024年学生写作日记文本分析
- 空间自相关检验方法系统比较与应用
- 品茗雅器:传统茶文化中的茶具选择与使用
- 肿瘤微环境与复发机制
- 2026中国蜡菊精油行业营销动态与盈利前景预测报告
- 铁路工程路基真空预压施工质量验收标准
- 驾驶舱交流障碍对飞行安全的影响
- 肿瘤科MDT课件教学课件
- 强碱岗位安全培训课件
- 青海招警考试真题及答案
- DB11∕T 2271-2024 村庄供水站建设导则
- 医学数据标注培训课件
- 西藏政治-历史-文化常识
- 浙江空调管理办法
- 小学动感中队活动方案
- 猪群周转培训课件
评论
0/150
提交评论