


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于VC+设计的图书管理系统选 题 依 据Microsoft Visual C+提供了良好的集成开发环境,已成为软件开发的主流平台,这学期开了这门课程对以后的学习和工作都会有很大的帮助。在选择 题目上,考虑到在学校中经常接触到图书管理系统,借书还书等,因此在设计 思路上比较明确。所以选择图书管理系统作为该课程设计的题目。开 发 思 路首先要选择一个合适的数据库,常用的有SQL Server、Oracle、Access等,图书仓库管理系统属于比较小的数据库,而且Access数据库在计算机上的应用比较普及,是开发小型数据库系统的比较理想的选择,所以,在本系统中选择Access数据库。其次要实现以下
2、基本功能,图书基本信息管理模块,借书管理模块,还书 管理模块。基本信息管理包括查询、添加、删除图书资料。在程序设计上因为 过程清晰所以不用设计到算法,按步骤分别实现即可。最后,开发思路是先学习MFC和Access相关的操作,把大致的框架建立起来再逐步实现以上功能。填表日期: 面向对象程序设计中期报告题目基于VC+设计的图书管理系统工 作 进 展通过前段时间对 MFC的学习,图书管理系统的框架已经完成,主窗口已经 能调用各个子窗口,如图书资料维护、借书管理、还书管理。所需要的Access表也已经添加到各个子窗口,如管理员的密码表、图书基本资料表、借书表等。 功能实现上已经可以删除图书基本资料,但
3、是在插入新的数据时会有错误。另 夕卜,查询功能还没有实现。工 作 难 占八、1对VC6.0不熟悉导致了在书写代码时不规范。2.MFC的函数以前没有接触过,函数相互调用的次数频繁,经常出现写错位置的情况。3难点还是在对数据库的操作上,尤其是插入数据时。因为Access数据库的表后台是通过指针维护,在写入新的数据资料时会出现一个失败错误,根据网上搜 的资料来看是指针超出范围,也使用函数去判断指针是否指到表的开头或者结 尾,但还是不行。目前正在逐步调试,看看指针具体指到那一块。后 期 工 作1. 继续学习C+,基础知识熟练才能有更好的运用2. 多了解MFC的机制,多查找资料学习标准的函数库,才能增强
4、分析函数的能 力3. 对数据库操作不熟悉是最大的困难,所以要多找找经典代码,参考经典做法来 实现这个项目的设计。填表日期: 面向对象程序设计课程报告基于VC+设计的图书管理系统一、选题背景Microsoft Visual C+提供了良好的集成开发环境,已成为软件开发的主流 平台,这学期开了这门课程对以后的学习和工作都会有很大的帮助。在学校中 遇到最多的系统就是图书管理,所以选择这个题目作为本次课程设计题目。而 且,本次设计的图书管理系统采用了 Microsoft Access作为后台数据库,使系统 具有良好的操作性和可移植性。运用数据库后加深了对Visual Studio C+系统的理解和认识
5、,而且对以后项目设计等都有很好的帮助。二、系统说明该程序实现了图书管理系统的全部功能。系统总共可以分成三大部分,第 一部分是登录界面,管理员可以选择更改密码。登录进去后主界面分成三大模块:图书信息维护、借书管理和还书管理。在图书信息维护这一模块中管理员 可以选择查询、编辑、增加和删除图书信息。在借书管理模块中是可以执行查 询和借书的管理。与此类似,还书模块是实现查询和还书的功能。需要说明的是该程序使用了 Microsoft Access数据库,所以数据库中建立了 五个表格,分别是管理员登录帐号表、图书基本信息表、学生信息表、借书表 和还书表。表格设计的所含的内容如下图所示:管理员登录帐号字段名
6、称数据类型卜 Account文本帐号Password文皋密码学生信宜 =_字段名称文据类酉StuID学生编号StuName学生姓名Length允许借书期限Press文本出版社PressDate文本出版日期_借书字段名称数摇类型lEookID文玉图书编号BookName文本图书名字StuID文本学生编号StuName文皋学生名字BorrovDate文本借书日期Length文本允许借书期限字段名称騷据类理StuID文本学生編号StuNane文本学生姓名BookID文本图书编号BookRane文本图书名称ReturnDate文本还书日期BorrowDate文本借书日期Length文本允许借书期限每个
7、表格对应的功能模块清晰明了,比如在登录时需要链接到管理员登录 帐号表,查询用户输入的密码是否与后台数据即表格中的内容一致。该系统各功能模块功能分明,可移植性强。当然该系统也有很多不足之 处,很多细节方面考虑不周。实现环境:硬件要求:一般在 586以上的处理器、16MB以上内存、 100MB以上的硬盘。软件要求: Windows 95/98或 Windows NT3.51以上版本。开发工具:Microsoft Visual Studio C+ 6.0三、系统设计程序设计流程图主要画了四个,分别如下所示:第一个是总体系统的流程 图,第二个是图书基本信息维护、第三个是借书的流程图、第四个是还书的流
8、程图,分别如下面的框图所示:> 登陆界面忘记密码修改密码登录取消1r11V图书信息 管理借书还书退出图1图书管理系统总体设计流程图F面分别是上图中的三个字模块:图书信息管理、借书和还书图书信息管理主界面11FT1rF查询编辑增加删除退出用户输入N息录是 否存在取消确定返回上一级 主菜单显 示 之 前Y检查是 否合法NY是否删 除成功向数据库中添加或修改提示信息显示之前一条记录显示对应的记录图3借书的程序设计流程图图4还书的程序设计流程图四、系统实现下面根据运行系统时分别选择的主要功能说明并附上主要代码,代码是以 截图的方式来保持程序的格式。4.1登录界面 登录界面如下图所示,主要分成两个
9、部分,上面一部分的功能是登录系统,下 面一部分帮助是修改密码和联系图书系统的维护人员。用户选择登录系统如果密码或用户名输入错误有如下提示信息,如果输入正确则直接进入到图书 管理系统主界面,如4.2小节所示。实现代码如下:void CLoglnDlg:0n0k()/ TubO: Add your control notification handler code hereCAriminDatd nrecord;CString H_sql;UpdateData(TRUE);iF(m LoginHaneUsEviptyO| |r LoginPassword,lsEnpty()<firKMess
10、ageBoxC1用户名和密码均不能为空“);m_sql=''Select * From 管士里员豊录帐号 where rtccouni:=" n sql-n sql*m LoginHame*;ri_sql=m_sql+"And Password=bi;n sql-n sql*LoglnPassNOtd+,'1"m recora.Open(ftFXDBUSEDEFAULT TVPE,m sql);iF(m_record.GetRecordCountt)=fl)< _ fifxMessageBoxf用户名不存在或者密码借误?”);>
11、else<CMpDl|g Dialog;Dialog. DoMlDdal(); CLoglnDlg::0nCancel);用户选择帮助功能选择忘记密码按钮,会给用户一个联系电话找系统维护人员来在后台数据库修 改。选择修改密码的界面如下所示,如果对密码的合法性检查通过之后,就会显示 修改成功的提示信息。我把密码从 admin更改为123。在数据库中对应表中的记录如下图:&管畦员登录帐召Account kPassword tleiqiuyan123修改密码合法性是检查用户名是否正确,旧密码是否输入正确,两次新密码输 入是否一致。运行截图如下:图书管醪铤实现代码如下:f请删撇入的两次新
12、溯是否一劉uoid CChAngePswDlq:OnOK() H FObO: Add extra ualidation here CAdminData m record;CString m_5ql;llpdateData(TRUE);if (m_Account -】占Empty 011 m OldPsu. lsEmpti/() | | m HewPsw. IsEmpty () | | n ConfNewPsw,IsEnpty()< _AfxMessageBoxC1用户名和密码均不能为空"J ;>elseiF(rt NewPsw. Compare (pi ConFNewPs
13、w) !=0)< - -ftfxMessageeoxC'1请核对输入的两次新密码是否,”);elsem n m in msql="Select * From 管理员登录帐号 where Account-1' sqi»ni_5qi+"';5ql=(i_sql+'"And Password="sqlBm_sql+" ,+in_01dPsw*,T'";record.Open(AFM_DB_USE_DEFAULT¥PE.n_sq丄);if(mrecord.GetRecordCf
14、lunt()=fl)<Af xMessageBox (“旧密码错误或用户名不存在?“);>else<m_record.Edit();n record.n Pa5sword=n NewPsw; m_recDrd.Update();AFxMessageBoxC喜您?修改密码成功¥n请使用新密码登录外); CDialog::OnCancel();4.2图书管理系统主界面图书管理系统主界面如下所示: 每一个按钮下添加对应的函数调用对应的子系统,实现代码如下: 图书信息管理界面uvid CMyDlg;;OnBooklnFo()/ TODO: Add your control
15、notification handler code here CEtooklnfoDlg dialog;didloq.RoModal();>1void CHi/Dlg: :OnBorrov()</ IODO: Add taur control notification handler code here CEtarrowDlq dialoq;dialog.DoModal();void CNyDlg:0nReturn()</ TODD: Add yoiur control notification handler code hereCReturnDig dialog; dial
16、og.DoModal();>4.3图书信息用户选择图书信息进入的界面如下,显示的数据记录是Access数据库中的记录。国书基本信息维巴图书基本信息图书名字|现1弋数宇信号处理图书编号阿而T丽作者|何亠述目咸出版社|晴华大学出版社出版口期 阿乔图书信息维护上一剝下一亲I _歸_ II 18加I輪辑.删除|一 |乩° |退出|默认的图书基本信息是灰色的,表示当前是查看的状态。这些是在程序初始化 中实现的,该子系统可以选择增加、编辑、删除、查询。我在程序中定义了一 个变量m_Button可以取0、1、2、3等,0为初始状态,其余代表做出了以上四 个选择。初始化的代码如下:BOOL C
17、BooklnFoDlg: :OninltI>iaiog()<CDidlog:DnJnitDialogO :if (?m_Record,Open()"厂幵燈居库对应的表AFxMessageBox( 1图书基本估息衰打开失畋?”);if (mRecnrd UsB0F()&& mRecord. IsE0F() )/空表,显示刁丘<mBookNane =RBODklD =mftuthor =;n Press =; mPressDate =UpdateDatafFALSE);else<iftOecora UsBOF(J)/当前指在文件的开始m_Recor
18、d.MoueHext();>if (m_RecftrdJsEOF()/当前指在文件的最后n_RecordMdvePr eu();r Button=S;DlgButton();DlgUalueO; UpdateData(FALSE);return TRUE;>Digvalue这个函数在该系统中使用很多次,实现对编辑框对应的变量赋值,以便下一步显示,在后面的函数使用到该函数时就不再一一说明,其代码如下:BDOL CBuuklnf uDlg; :DLgUdluff()ni_BookNarit?" m_HpcutJd - n_BaokNamt; n BookID= m Recar
19、ri,n BookID; m_ftuthor= m Records Author; m_Press" m_Recurd.m_Pre5S;n PressDate= m Record,m PressDdte; UpdateData(FALSE);return TRUE;类似的,DlgButton是去控制主界面上的按钮是否选择和编辑框是否可以编辑 的,这个函数在借书和还书这两个子系统中也用到很多次,在介绍另外两个子 系统时就不再赘述说明,DlgButton以初始化为代表,实现代码如下:BOQL CBooklnfoDlg:DlgHutton()CWhd «pUnd;switch (
20、m Button)case 0: /pUhd = GetDlgJten(IDC BUTTON ConF); pU)d->EnableUindou(FALSE);pWhd = GetDlgJten(IDC BUTTON Cdncel); pUnd->EndbleUindou(FALSE);plid = GettlgIten(IDC BUTTON_Add);pVhd - >Emable Mndowf TRUE);plid = Get»lgIten(IDC BUTTON Edit); pund->EnableUindou(TRUE);pVJnd = GetDlgIt
21、em(IDC_BUTTON_Delete):p Un d->Emable Window(TRUE);pVJnd = GetDlgtem(IDC_BUTTON_Query); pl*id->EnableWindou(TRUEJ ;pVJhd = GetDlgItem(IDC BUTTON MouePre); pi*id->EnableWindDbf(TRUE);pUhd = GetDlgItem(IDC_BUTTON_MoueNext); plAid->EndbleWindOu(TRUE;plhid = GetDlgIteni(IDC_EDIT_BookNaiie); p
22、kfrid->EnableWindoif(FALSE) ;_pUnd = GetDlgteni(IDC_EDlT_Bool(ID); pWhd->EndbleWindou(FALSE):一pHhd = GetDlgIten(IDC_EDIT_Author);pUhd->EnableWindou(FAL5E):一pUhd = Get»lgll:eii(IDC_EDlT Press); pid->EnableUindow(FAL3E):一pUhd = GetDlgl teii(IDC_EDlT_HressDal:e); pWnd->EnableWindow(
23、FfiLSE) break;选择上一条和下一条实现代码如下,另外两个子系统的上一条和下一条也是如此实现的void CBooklnfoDlg:OnBUTTOI*louePre()"TODD: Add your control notification handler cod? here iF(m Record.IsBOF()fifxMessageBax ("当前已是第一条记录t");elsem Record.MoueP'reu();;DlgUalueO;uuid CHooklnoDig:;OnBurTDMMoupNeKt()</ rODfl: Add
24、our control natification nandler codt nert if(m_Record.IsEOF(J)fifxMessageHox严当前己是最后一条记录捫); elsem_Hecord.MoueHext();DlqUalueO ;在此说明,因为查询、编辑、增加都是在最后选择确定时实现的,在这里就先 列出了这个公共的代码实现如下,下面再介绍各部分功能时只附上选择对应按 钮的函数。选择确定时的代码如下:void CBookInFoDly:0nBUTT0NConF()/ IODO: Add jour control notification handler code here
25、 cstring m strFiltK-"" ,m_sql;UpdatpData(IRUE);switch (mButton)<case 1:if ( CheckE mpty ( ) »TIUE)<n_Record.AddNew();m Record .m_BaokNdme"ri_BoakHarie;m_Record.m_BookD=m_BookD ; nuecftrd .n_ftuLhai*-n_fluthat* ; m_Record.m_Press=m Press ; m_Rec ord .m_Pe£5Date"n_P
26、t,essDate ;n_Record _llpdate();匸血Closet );"因为添加亮新记录更新后目劭料序, "不肓齟示刚才添加的.囁#旨冋耐才添加的CString;_sql1=''Select * From 图书基本信息 where BookID =" n_wq 1 m_書 ql1 *"*n*m_BookID+'' “; (i£Recora7flpen(fiFXDB USE DEFAULT TVPE,nisqL1);elseAFKMessageBDxCT増加记录失败汕); break;case 2 :
27、|if(CheckEnptp()=TRUE)<m_Record.Edit();UpdateData(FALSE);m_Recftrd .m_BookNanie=m_BoflkHaie;n Recordjr BookD=n BooktD ;n_Record.m_fiuthDr=m_ftuthor;n Record jr Press=ni Press ; m_Recora .m_PtjessDate=m_Pres5Date ;h Record.Update():elseAfxNessagpBoxC*辑记录失败卯J; break;case 5:iF(?n BookID, IsEnpt()&am
28、p;&(!(n BnokNane . IsEnpt()sql"Select * from 图书基本信息 uhere BookID-11; sql=n sql+ BookID*;sql=m_sql*" AND BookNane11 ,+ii_BookHane+;Record.Clflsef);Record.Open(AFX_Da_USE_DEFAULl_TVPE,n_sql);iF(n Record,GetRecordCount()=BJAFKMessageBflxC 无此项记录?,J;elseAfxNessageBoxC'图书名字和图书编号均不能为空时);
29、m Record.MouePrev();break;>DlgUaluef);n)_Button-B;/Zt话框恢复®默认状态DigBiittonQ;图书信息查询在选择查询后,此时用户可以输入图书名字和图书编号查询。如果选择取消则 回到之前显示的图书记录,选择确定后开始查询。查询到对应的记录后会显示出来,否则显示对应的报错信息。且可以再次选择查询或者增加、编辑等按 钮。查询界面和查询成功时如下所示:查询不到记录时则显示“无此记录的”提示如下图:!无此项记录!查询的代码实现如下,m_Button值为5如前所述代表选择的是查询记录:uoi-d CDaokEflFoDlg :QnBUt
30、TDNQupr ()</ TDl>0: Add aur contrHol natiicatiDn hantHtr code hp"n BookName= m EJooklD" " m fluthor= m Press-n PressDate- ;UpdattDatd(FALSE); n ButtonDlgButton();图书信息编辑:此时用户可以修改图书的信息,若用户选择取消则显示之前显示的记录界面, 选择确定则执行4.3中已经说明的函数。用户选择编辑的实现代码,m_Button值为2如前所述代表选择的是编辑记录:void CBnOklnFoDlg:
31、zDnBUTTDNEdltf)<m_Button-2;DlgButtonf);图书信息增加选择增加的界面如下所示,用户输入要增加的信息,若用户选择取消则显示之 前显示的记录,选择确定则执行4.3中已经说明的函数。在数据库对应的表中的新增的记录为:二3圄节狂雇侏总Book ID-tBookName -Authoi"-Press-Pi*e ssDate -978711510762(Visual匚+-卖丄束蒔曲向丽错人民邮电由版彳2010. 10978730205968-Visual匚课帀伍:燮良清华大学出版肾2002. 1978730208599;97873020907C+-程宇坦
32、计谭浩飆 面向对銀技术-廿玲:青华大学出皈彳 佶半大学由版#2004- 62013978730217565现代数宇信号匸何于述淸华大学出皈2009. 5testTestttsttesttest选择增加按钮的函数如下,如前一小节所述,m_Button为1代表新增void CBooklnfuDlg::0neUTT0NAdd()/ TODO: Add pour control notification handler code herein_Hutl:on=1;m DookNaiw ''''n_RookID =Author = ,l"in Press -n_
33、PrFS5Date UpdateDatj(FfiLSE);DlgButtonf);删除记录选择删除之后则直接删除,显示数据库中剩余第一条记录,实现代码如下:uoid CBooklnfoDlg:OnBUTTOHDelete()</ T0D0: Add your control notification handler code here mrtecDrd.Delete();i?(m Record.IsE0F()&&fi Record ,IsB0F()<AFxMessageBox(-当前表中已经没有数据;naookHant n BooklD =n fluthdr ,n,
34、;mPress =n_Pr,essDat(? '''>else<AfxMessagpflOKf 删除成功 f);mRecora.Close();m_RecDrd tDpen();if(n_Record切吓"重殖询,如果扌誑文件税下移记如果扌誑文件结尾上移记> r»_Record ,HoueNeMt();else if (ni Record. lsE0F()n Record.MouePreu();>DlgUalueO; llpdateData(FALSE);4.4借书借书的主界面如下,默认显示的是对应的借书表中的记录:上一条和下
35、一条的实现比较简单,与图书信息维护中的类似,只是对应表的指 向不一样,所以这里就不再截图。增加借书记录有新的用户借书时选择借书,默认的把借书日期显示出来。如果选择取消则显 示之前显示记录界面,如果输入图书编号和学生编号并且选择“确定”,这时 候需要去“图书基本信息”和“学生信息”两个表中去查看有没有这本书或者学生存在没有对应的记录时:Test学生纭号Test皆书日期空 图书信息图书塢号不存在!Z013/12/29圍书管翳统借书失败!确走團书编 学生梱惜书管理上Y|下一糸|查询|即编 律|退出允许惜书期限输入正确时的运行结果如下所示:对应的数据库中的记录为:_j倍书BookID”BookName
36、<StuID-StuNaaie-BorrowDate -Lengtht9787302035997C-程呼设计0Q1Leiaiuyan978730217565现代鼓字信号处理001现代数字信号E97873020907閒向对象技术与Vfsua: 001leiQiuyanl2013/12/2929787302065997O-桂宇设计002leiqiuyanE3查询借书记录这里图书名称和学生姓名不是必须输入,查询成功和失败的运行结果如下:理书編号而元勿9皿学生编号翻学生姓名聊日卑网丽吓月船管U1 元此顶勰阵主在此说明因为借书管理的“查询”和“借书”都是通过选择“确定”实现对数据库的操作,定义了一
37、个变量 m_Butt0*1, 2)来判断选择的“查询”还是“借书”。实现代码如下所示void CBorrowDlg:;OnBUTTONConf()</ IODO: Add your control notification handler code her?CString m strFliter*"":CString n sql=""llpdateData(TRUE);占ltch(n Button)case 1:if(CheckEmptytJ=-IRUE)/ 能为空値if(Filt»B()-TRUE)/A的图书编号和学生编号要分别在表中存
38、在<mBorrouRec.AddNtu();mBorrouRec.m_BookID=n BookID ;m_BDrrDURtc .iTi_EionUNafneam_BaokHarit;m BorrouRec.m_StuID=i_StuD;m BorrowRec.m StuNaiia"ni StUName ;m eorrowRec .m_Length=ni Length ;m BorrouRFC .m Dorf onDat0"iii_BDrrDWDate;meorrowRec.Update(>sql='"Jsql""Selec
39、t » from 楷书 where RQphlD-" sql=in_sql+n_Book 10+;sql-FlZql*,F AHD_StuID- 1 F,ID+ ":BorrouRec.Close();BorrowRec,Open(fiFX_DB_USE_DEFAULT_TVPE,n_sql);elseAFxMessageBoxC'ffi书失败,”);break;case 2:if(CheckEnpty()=TRUE)/不肓幼空值<n_sql=,M,;H_sql-"Select * from 借书 where BookID=":
40、n_sql=ni_sql+*n_Book ID*;m_sql=m sql+,' nND 3tuID='"+n StuID+""” ; m_BBrrflwRec.Close();n_BorrDwRec,flpen(AFX_DR_USE DEFfiULT_rYPE,n_sql); if(m_BflrrowRec.CetRecordCount()=0)<AfwUessageBaxi*1 无此项记录,");break; default:;DlgValue();DlgButton();4.5还书主界面如下图所示:增加还书记录有新的用户还书时选
41、择还书,默认的把借书日期显示出来。如果选择还书后又 选择取消则显示之前显示记录界面,如果输入图书编号和学生编号并且选择“确定”,这时候需要去“借书”表中去查看有没有这条借书记录。还书成功 如下图:在数据库中对应的记录为:_J连站BookID973730205965497873020907BookNace*StuID*StuNaae 甲BorrowDate ReturnDate Length呼Vi sua 1 C一课理设计与5 001leiqiu>!anl2013/12/232013, 12/232面向对象袪术与门sual >001leiQiu5panl2013/1/292013/1
42、2/292如果输入不正确时运行结果如下所示:囲书基本信患亟书编号|nxa/3Dzuyur学生编号片厂惜书日期九许惜书期限个月迂书管理上住I 下祭I| 查询| 还书|因书名称学主姓名还书日朗ZU13/12jir9图书管理袤统确走查询还书记录查询成功时则显示对应的记录,失败显示提示信息,运行结果分别如下所示:与借书类似,查询和借书都是通过选择“确定”实现对数据库的操作,定义了 一个变量 m_Button<1,2)来判断选择的“查询”还是“借书”。实现代码如 下所示:void CReturnDlg:zOnBUTTONConff)/ TODD: Add your control notification handler co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外语能力考核综合复习技巧试题及答案
- 把握审计考场节奏试题及答案
- 内部审计管理框架试题及答案
- 护理报告书写与分析试题及答案
- 中级会计复习过程中常见的误区与对策分析试题及答案
- 2024年初级审计师考试教学大纲试题及答案
- 2025年建造师考试中的实际案例及试题及答案
- 2025年中级会计考试阶段性目标试题及答案
- 2024年外语期末复习重点试题及答案
- 中级审计师考试疑难解答试题及答案
- 00510秘书实务-自考整合版
- 护理研究中的偏倚及控制
- 小学生的龋齿预防ppt课件
- [复习]边坡客土吹附施工方案
- 门禁一卡通系统解决方案
- 冲压试题库及答案文档
- 煤矿机电运输专业质量标准化管理制度
- 华为保密制度范文
- 冻库温度记录表
- 工程款支付审核记录表
- 成套开关柜GGD样本
评论
0/150
提交评论