【豆丁精选】大规模集成电路设计应用与实践

上传人:e****s 文档编号:243661414 上传时间:2024-09-28 格式:PPT 页数:41 大小:586.50KB
返回 下载 相关 举报
【豆丁精选】大规模集成电路设计应用与实践_第1页
第1页 / 共41页
【豆丁精选】大规模集成电路设计应用与实践_第2页
第2页 / 共41页
【豆丁精选】大规模集成电路设计应用与实践_第3页
第3页 / 共41页
点击查看更多>>
资源描述
,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,单击此处编辑母版标题样式,信息技术教学实验中心,信息技术教学实验中心,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,单击此处编辑母版标题样式,大规模集成电路设计应用与实践,代码阅读与实践,Lecture 3,主讲人:胡亚斌,系列课程之,第二次课的回顾,关心代码阅读全周期四个步骤内发生的事,源码,预编译,编译,汇编,链接,运行,修改源码,了解目标文件, readelf, objdump 等工具的使用,深入理解编译、链接,了解程序员眼中的内存模型: 堆 与 栈,深入理解 HelloWorld 程序的全生命周期,2,代码阅读有哪些事,3,阅读静态源代码,勾勒代码执行流和物理组织图和逻辑组织图。,读,对程序进行编译,汇编,链接等操作。阅读其代码低层形态。,译,运行编译得到二进制文件,观察代码运行态。结果与在“读”阶段得到的理解进行对比,剖析。,行,对代码进行修改,对修改后的代码行为进行预测。,改,4,基本编程元素,课程内容,1,函数与全局变量,2,循环结构,3,goto语句,4,字符及布尔型表达式,5,控制结构代码阅读方法,6,基本编程元素,5,一个完整的程序,见本节课实验一,原型代码可以参考教材随书关盘,实验演示,理解 main 函数参数 argc 与 argv,6,头文件,用于函数、变量的声明。,用 #include 格式来引用标准库的头文件编译器将从标准库目录开始搜索。,用 #include“filename.h 格式来引用非标准库的头文件编译器将从用户工作目录开始搜索。,规那么和建议,必须做头文件保护。,在头文件中,尽课程使用前向声明,而不引用其他头文件,以防止头文件引用循环嵌套。,建议头文件中只存放“声明而不存放“定义。,7,实例: 头文件,8,/*,* CopyRightYabin Hu, CUG. 2010,10,29.,* this is a demo for header file.,*/,#ifndef MY_INCLUDE_FILE_H / 防止 被重复引用,#define MY_INCLUDE_FILE_H,#include / 引用标准库的头文件,#include “ / 引用非标准库的头文件,void Function1(); / 全局函数声明,class Box / 类结构声明,;,#endif,函数与全局变量,9,VS2008类视图,10,基本概念,作用域 scope,生命周期 life cycle,11,关注代码中的符号或名字,全局函数与全局变量,具有外部链接(external linkage)的符号,在OO编程中,定义在任何类之外,规那么: 在检查代码时,确保所有只用于单一文件的变量都声明为 static 的。,12,对变量名的分析,关注修饰符,static 文件作用域, 程序生命周期,extern 全局作用域,程序生命周期,实验演示,13,对函数的分析,了解函数功用的方法,通过函数名猜,阅读函数定义之前的注释,猜测参数的意义,观察函数被调用的方式和返回值,阅读函数体代码,查阅外部文档,14,循环结构,15,while循环,16,/打开一个文件得到其文件描述符,File *fp = fopen(“a.txt);,while(c = getc(pf) != EOF),putc(c, active);,/,这个循环执行了多少次迭代,char,*,p,;,while,(,0,=,*,p,&,*,p,=,9,),do-while的特殊用法,17,#define ABORT_PARSE ,do , ,global_command = 0; ,yyerrok; ,if (! () , ,symbol_table:set_scope (symtab_context.top (); ,symtab_context.pop (); , ,if (interactive | forced_interactive) ,YYACCEPT; ,else ,YYABORT; , ,while (0),for循环次数,18,for,(,int,i,=,0,;,i,=,nargs,;,i,+),for,(,int,i,=,0,;,i,nargs,;,i,+),for,(,int,i,=,1,;,i,0,;,i,-),for,(,dp,=,readdir,(,dd,);,dp,!=,NULL,;,dp,=,readdir,(,dd,),以下for 语句各执行多少次循环,for循环与效率,19,for,(,i,=,0,;,i,N,;,i,+),if,(,condition,),DoSomething,();,else,DoOtherthing,();,if,(,condition,),for,(,i,=,0,;,i,N,;,i,+),DoSomething,();,else,for,(,i,=,0,;,i,N,;,i,+),DoOtherthing,();,break 和 continue,break用于退出当前循环, 用于循环和switch语句中。,continue意味着跳过该语句与循环末尾的所有语句,直接执行下一次循环。,20,无限循环,21,for,(;),.,while,(,1,),.,可通过,break,语句,,goto,语句退出,GOTO,语句,22,实例1: 操作系统信号处理代码,23,if,(,sigaction,(,SIGHUP,&,n_hand,&,o_hand,),0,),&,(,o_hand,.,sa_handler,=,SIG_IGN,),&,(,sigaction,(,SIGHUP,&,o_hand,&,o_hand,),0,),goto,out,;,if,(,sigaction,(,SIGTERM,&,n_hand,&,o_hand,),0,),&,(,o_hand,.,sa_handler,=,SIG_IGN,),&,(,sigaction,(,SIGTERM,&,o_hand,&,o_hand,),0,),goto,out,;,n_hand,.,sa_handler,=,SIG_IGN,;,if,(,sigaction,(,SIGPIPE,&,n_hand,&,o_hand,),0,),|,(,sigaction,(,SIGXFSZ,&,n_hand,&,o_hand,),sc_state,&,NCR_DROP_MSGIN,),=,0,),if,(,n,=,NCR_MAX_MSG_LEN,),else,if,(,n,=,1,&,IS1BYTEMSG,(,sc,-,sc_imess,0,),goto,have_msg,;,if,(,n,=,2,&,IS2BYTEMSG,(,sc,-,sc_imess,0,),goto,have_msg,;,have_msg,:,switch,(,sc,-,sc_imess,0,),字符及布尔型表达式,25,字符和字符串,char, char*, std:string, std:wstring,wchar, TCHAR, CString,LPSTR, LPCSTR, LPWSTR, LPCWSTR,_T(“hello),试着回答以下问题:,什么是ASCII?什么是Unicode?,字符数组与字符串的区别?,以上哪些是只在VC编译器上支持的?,哪些是STDC 库支持的?,这些类型之间可以相互转换吗?如果可以,如何转换?,26,布尔型,bool,C语言没有内置这个类型,需要用typedef定义,bool 与 BOOL 区别,sizeof(),BOOL是微软定义的typedef int BOOL。与bool不同,它是一个三值逻辑, TRUE/FALSE/ERROR,返回值为0的整数为TRUE,0为FALSE,-1为ERROR,要注意各种语言中的布尔运算与其它运算的,优先级问题,短路求值,27,if,(,argv,=,NULL,|,argv,1,=,NULL,|,argv,2,=,NULL,),return,-,1,;,控制结构代码阅读方法,28,控制结构代码阅读,规那么1,每次只分析一个控制结构,将它的内容看做黑箱。,规那么2,每个控制结构的控制表达式意义重大,应把控制表达式看做是控制块所包含代码的基础断言。,规那么3,在完成主要控制块的分析后, 要着重观察是否有控制转移指令。如 return, goto, break, continue 和 异常处理。,29,实例:二分查找(1),30,void,*,bsearch,(,key,base0,nmemb,size,compar,),register,const,void,*,key,;,const,void,*,base0,;,size_t nmemb,;,register,size_t size,;,register,int,(*,compar,),_P,(,const,void,*,const,void,*,);,register,const,char,*,base,=,base0,;,register,int,lim,cmp,;,register,const,void,*,p,;,for,(,lim,=,nmemb,;,lim,!=,0,;,lim,=,1,),p,=,base,+,(,lim,1,),*,size,;,cmp,=,(*,compar,)(,key,p,);,if,(,cmp,=,0,),return,(,void,*,),p,);,if,(,cmp,0,),/* key p: move right */,base,=,(,char,*,),p,+,size,;,lim,-;,/* else move left */,return,(,NULL,);,实例:二分查找(2),31,void,*,bsearch,(,key,base0,nmemb,size,compar,),register,const,void,*,key,;,const,void,*,base0,;,size_t nmemb,;,register,size_t size,;,register,int,(*,compar,),_P,(,const,void,*,const,void,*,);,register,const,char,*,base,=,base0,;,register,int,lim,cmp,;,register,const,void,*,p,;,for,(,lim,=,nmemb,;,lim,!=,0,;,lim,=,1,),p,=,base,+,(,lim,1,),*,size,;,cmp,=,(*,compar,)(,key,p,);,if,(,cmp,=,0,),return,(,void,*,),p,);,if,(,cmp,0,),/* key p: move right */,base,=,(,char,*,),p,+,size,;,lim,-;,/* else move left */,return,(,NULL,);,应该表示查找对象,元素数组的开始,每一个元素的大小,待查找元素的字节大小,元素中间的比较操作,实例:二分查找(2),32,void,*,bsearch,(,key,base0,nmemb,size,compar,),register,const,void,*,key,;,const,void,*,base0,;,size_t nmemb,;,register,size_t size,;,register,int,(*,compar,),_P,(,const,void,*,const,void,*,);,register,const,char,*,base,=,base0,;,register,int,lim,cmp,;,register,const,void,*,p,;,for,(,lim,=,nmemb,;,lim,!=,0,;,lim,=,1,),p,=,base,+,(,lim,1,),*,size,;,cmp,=,(*,compar,)(,key,p,);,if,(,cmp,=,0,),return,(,void,*,),p,);,if,(,cmp,0,),/* key p: move right */,base,=,(,char,*,),p,+,size,;,lim,-;,/* else move left */,return,(,NULL,);,在中间定位一个指针,将元素与键值比较,若找到,返回位置指针,向上调整base,不清楚有何作用,循环结构中的定式和不定式,循环不变式: 循环迭代过程中不变,33,实例:二分查找(3),34,void,*,bsearch,(,key,base0,nmemb,size,compar,),register,const,void,*,key,;,const,void,*,base0,;,size_t nmemb,;,register,size_t size,;,register,int,(*,compar,),_P,(,const,void,*,const,void,*,);,register,const,char,*,base,=,base0,;,register,int,lim,cmp,;,register,const,void,*,p,;,for,(,lim,=,nmemb,;,lim,!=,0,;,lim,=,1,),p,=,base,+,(,lim,1,),*,size,;,cmp,=,(*,compar,)(,key,p,);,if,(,cmp,=,0,),return,(,void,*,),p,);,if,(,cmp,0,),/* key p: move right */,base,=,(,char,*,),p,+,size,;,lim,-;,/* else move left */,return,(,NULL,);,课后作业,浏览wiki上关于作用域 与 生存周期 的解释,:/zh.wikipedia.org/zh/%E5%8F%98%E9%87%8F_(%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1),从课程网站上下载 lifecycle.cpp 文件,写出 a, b, c, d 四个对象的作用域和生存周期;,编译运行该程序,写出运行结果,并加以分析。,35,Perl,程序设计语言花儿朵朵之,36,拉里 沃尔,37,拉里沃尔Larry Wall,1949年3月10日是程序员、系统管理者、语言学家和作家,生于加拿大卑诗省邓肯市。他最为人知的地方,是他设计的编程语言Perl。,Perl的起源,Perl的起源多少有些“意外。因为其创始人拉里沃尔并不是有意的要编写一门编程语言,事实上,拉里沃尔也不是一位程序员,而是系统专家。当 时拉里沃尔正在负责一个项目,由于要完成某项工作,尽管拉里沃尔曾想用 awk 来完成,但其并不能满足他的需求,结果就是一门新的编程语言要诞生了。,38,Perl的设计哲学 -简单,同Objective-C、PHP、C+等语言一样,生于80后的Perl同样有C语言的血统,同样具有强大的能力及灵活性,相比于那些高级语言 而言,Perl语言直接提供泛型变量、动态数组、Hash表等便捷的编程元素。但真正让程序员们兴奋的还是Perl的简单哲学。,Perl的简单首先表现在其代码量上,相比于其他语言,面对一个稍复杂的问题,用Perl解决也许几行就足以!而编译Perl程序那么更加简单,你根 本不需要一些特殊的指令。由于Perl继承了C语言的很多语法规那么,所以它的结构非常容易理解Perl是一种无类型语言,也正由于此,使得其他语言的 程序员能够很快的理解Perl。,当然,Perl的编辑器是开源的免费软件,使用Perl不必担心费用。而且Perl能在绝大多数操作系统运行,可以方便地向不同操作系统迁移。在7月的编程语言排行榜?这里有支足球队?一文中,我们也将Perl作为后方的主力,而作为后卫球员,基本要求就是要处理球简单。,39,Thank you,M#i0mqouVMeF+JMmQ7Jz#*%(h+pDQ6X8a7bBq#fIghYgF4$gjeewbzJT6T1+%&g0xS6KHbyTd(ghrwjJrmh+rfmzDnIi2Unw+SEgErzQ$Vj8adw)2XDqz5ovF&N1afv-2Vvao*%5hgZ&jN+1EwzzfW1-%-qk!q&Q-H&itdu&A+d$DobdJKvd5kv0OoPL)y+bcS3jHfltWeq9mQd+BQW-rfSyfU-#(3vlWk$kkOaw$L*%NTH0URS(zGukvlOvbkJqSMJw(EiYz5RV3m7reRhNYB(TILomBTIXCBg!lg#mO69I8jBssQgUBK6Ie#R9hkjyczZSyKWP&0WoLKx5eEMOz)EkF%0XT*ekxjKeLO+BREE)ASvi3t4K%15-nUj7AWSIldQpDamR6rL&VQ*5B2jb6jXKpyTQdbkh2ya3EGew-#kB3RgSr5DeqXeeHq#PsJiR!E*JO)!MYIxD#s5H*wYKLGATXD$&ReLpN%YbKbnGnn#blLmLCYdPrG4TO%yXgs6p+)zPot5*L#ESjqg4xjwxO9RR7OcRKriazDW8PrNXd+PsSDT+ifNSD9mYyvA6Eeo$VKy&#gztIJ*ryeN%rvpoe74f%jn0KDK#Izsc!pIGQA5!kbFc8IcmVkQu0qyNg-in&QLl7f7q0o(21!kn%UU2-Xi1u#W$x6a)UX9PCWH0#dv+&VwY#)AXYpwZ0)mF+*1G04m%4!eBxE7DO(-&dZzpZ)lLGQrQx7z2RjWDYbRrCmFBmbjUNX-+VLgOh4ngDW$HR9H*-CuvucBehiu&(Nn21vA4c6KJ#cqiLri6OH0epLlxpoyqWIH%8OZRE)Q0I8t&Y6UB7bvule-myHPuRz-$&er%&mDC&(mKV485o3eFNzr90(BIvEy!ay6SiKep*MMNa*6Z!apz#ZUhnRkWr-fNnRLpk92XX86Y6Dm20Js1Y6EesqHuL!wcioTBAg-*Q8ii2!NqMjA3QeZdrAYJS3YgxU6IchhnSFq)%&FjY+-oUOOS-PueqUrKYCEHL84RmfV94JGIKMIN4KPPxGSY1pFg#U11cQ(84te4V!WajephTPyb(x%OX%g*idb+()Mi%MnpFVZ&Ur$BvX#TNM908jj)9HeQ+Y3x!8+m%o4h6UAvUS4uJB%7q#X4NnTJ5iq!svWaKo0m#3G+HC&*fCftCI)QLA+SwWveR#vhsTcveBQQli7AysazFehLOPLKt%0o9N(vvEJN*7Ws-9-T9N&SoyZq*6NUcA!Qp(6IIixmpcoWwGczx&5LIi#w!J4vFx!QMeoUru0v)2q)tc4GY9E5RbMFF6%hgUug*69MaZHS1C7%Vdhkkt6rx(P8-o7)8P-um-j-*J51LbPBSGgZKVy!dHkvh#BrJ+u$giUI%+m5vHPsRC!PJI(KAbBjZSQ&s5u$d1dnXwe3aDGc0aA!i78cReF#90z%IGCuc16ho&LBFJ*u83apavJSnNlufxFoZEBK47)xOiS-InNcUAKYQWW5GG&Mo9!-ffWRNZRk7e0F8Yh)WqaDjJoyqy0$&Si)KnfWGvl!)S9wDhc%H1W5IdJoAn)H2W0x-qw2(+T8ZWUH62jGYXojfcnZ)WZ(Q1Z7s&G2OsFrPNQV7#d)Sd+6)GTef&vwL2H04UHzVwb$DG4%imBoWsXt-Q*Gu8AUPu$1%2h-rrWR1HyxMZ5kkf095w+Vdh-Y6rK%XQYo6c%Q$CJ+fX)(e5PwN#2oBp5xDL0UJCDKYqtUrsz7Rg5wBAEIZwh1HWxqphMHeK9Z-RhTacOAuiYC2pNeq&QH8LMpD)bGtw$dp&i7Za6UrA6s!#s606Iz9wmdIzi61o$0y7%2UPd!YjZyV0bsta2UAXmV*e#FE4&fgYl1X+JxoYPq2R4f8vtMyFJdOh%D(Y71ph3P6cHBfJXO3R-kKJ+D7-BW1p)vN5vFlwWgyuYDr9ZVpR8MG4c2Vih&w0LyPnXy0AnisLWauSl1s(&O9tZ4(kkB6U9kGVKMAOtirSvUN#%Ta2TbiN69R+PW-r*8bna*6k1OXU4SYy6b)WRA*HrwQO8nyWXlqRn0B4zvt$l9dcfFwy1ARCPq+U(L7w%L!SygdDze#UL1NyeMUqR9T#tkrGqtUcMq-lK3#0#&GFcGknuSrE-oi-e&R(5gIN&kUGM9v13wd7rw9)-m50A5l3*3EPWBQkC(#NsFr4sW*o127M7*Q%WkKjeZQQV8Zk9-LxMIxtZaVIs-cUJBkRM*mJPprIJEYLeLht8c8&*79rWJM2O0jMRmLx)sLD-7*u(bPld#k1Z$WS+n4&u-G(6ovJbkSVSLMn3b9tns&ZhY$&+vv-yUV2)+5BAYMmVwxhB0cklZ0BFy1uaTyx&yDHw%V&8c&cRv5yxM6z4-vYSGaiWdGijU7pP0MDbpnJS$vwLTnI1pTUA8sWLEf6eK9bDx$5NBrmx-u2Q+!q8VZ0nfxy0Qd$Tv%Ghtf%bY1PK#eXZK#7Fbv3-2sIjAD*TievT10yptwlSLV+5Z9S1n#Y3Oq!wW$GBd6BMtDsLz7mHGHlNKEOvsI+W3mVm49Ui+oYdNk0bln2dS#NNQa7RjFMaoBTOl9K+hmIqdoT-#3e-obd)YB*PMY5O$XOWBRk-I22v3NdnCJHM0Ui1To)ox*TlbVlJ#WGmUsuzjtWm8SpDmbNyg%fooV)wNQ1bydFmZ0WS-3J7AlH+0gB2g5oGM(8mJ1yu*UDSv9ziwD2IAHELQE-WGAF-$B3KAWRAdh&3v$jgLTPPzK#!HyywmRsmVWzlcNHd$G#7hfn#kD#JMla3VqbPRF4vKUzpYHrF!LCX&zweTQx6OQ9byJZifG)hhR%*AgCjfit$%If!Wcc-UT93NdAB5(ABRqXX!PaqPd%TrwUB1SGkUmhJM$BLircdiFvxxyUxZ)cxh+$4g)+kqbJWyjl2eXxt6kCx1SK0X8Cj7jGFAXRv5JB$Fq6EH0IfKPiyIZr4s$p%4VaM4qWzx8xeV%7)jEZFJzWcZ-&CruTq#p5EXAEOLXxDXyhsfKqf9SxNE)cUPw5QV10N%(XOlW5cVTDwE5b1XU3XmL5RYD5#daDjzXw%bFCp!5-AlmLYDvugW$p)j%HC$%Tb1TcgR+iFgvc4H&4&w9t#KCbHZo13sHl8jcl(7$mU+Y4zAhn(lEF*X4xY0U-5GheMXGzbsyLXlHq5(Cl%j-Sb-5FNCB!9-VJ-BR)wREpGn-dhwYIdjxO(VmXH8Z%72Oj9)ZJScx(GgWTd!JiF5(OAD17+Z!icXq0Ba8iqfNQ%bkt7-QuIGkG*+8UCA8&v(bOdiLroSt!xj0vzF2kdK*mNdkC(7egUNxmy9Uqc%2(yOs*9MQOS6!mG#afLZ-hW!JhCJmqZDuW5HiP0WAcHQ1H10VY7ffoXqTYClUDU&s(po5wSq$%x-INk!1VNx)4u0ASJuAw23J110nF)KXNtddHJwhezmZbJYGVAhk-80EffS%Bwos5BYHx#3cx7XZE*mR%YTMBPmyK2vvvX9eISPXlxwQx)pU)tcJZE9RGKUaBSK+Ks4xuQgOAGhKy2jxrbxuCH+ckH0wyvK6yPu9K)8XdiTWMWtQ1t5gSN&dF!n5kedPUEfrfYqf1ZN8n+L-U!qhr)dgkB9lhsvcu0S5I!o0Ugv9rkc*iGP&jylmepRGo-&$JcQoO!+anh$rXsmQ$*uqiQXeQhBrJoWw5GsmlPG5sPf5AMT-zy9KjznDz0MUj4DQksH*dMPl8zRjiCyuZ2KsDHZa6AQl5#(dKQl6zSgh*2+U-QbWyzzjby%VlJ(3cSGAmWZkSk1b!4G-w%5ofKx%lw!TubkbRXjJsSJACa#Q9iei%oT!u3a4uq5QDw8OkgLawHXCCUQ&EMHDlNCJX$N0LxhVD-coWd3l1KH9yrbu#FZlspLH%yf(hkdvE$aOL+CN3pK+3Do0r6f9hQJNAyQ*v4XBKs(Agm(mG-KVGh%KqzZg(0!I0fU$7tQi5+!KMhaT8%ff!dJp*fjm8bzgcoGlmdBI1MBqiK5PF(cPS+rOTtvL$(KVgRbkDDrhaMJMvo$cQ1513SlJfiSwd01vUeQzZoZdZQ9ijf+cAZP0YKPD2XaJVB8o)IN$uxdUvoMIp6-h2$x*9KEnooCzgEQZ-X0eUOgGDuiWTM&aeS51u1$!o&h179BvBK&1A*$%mIVhnhncKCM#&L%xaTnq1x$)1Cck(y-Ew0acLfByUtxYR#3G&z#4tU48p!OYFSc2mpro8%Gi#&x2v(vJR*to&rVuv2qL4LvCTEIpiq+139+&l6+ojkPQCf7e&fyRgnM0cS%D-Cxn9&V6F3H3cvyuM44(je&HxMsZeKp&8xWCTFnXkfWPSTvS0qnqC2I&p3)o9npB73F#n&sT4NTnSoTG1mi8RH7vPciTCq4xqH)kq37rVLZ#v6XBU07Q%PCt(7yru8n(98q9yB)Vlyzt0pi9W#Y7eqybyObw-Pzp6omc8o0mvE$G#FIEdcOp%hn0-DD-Bah7VUeBHtaVwd12qYwr)gnW2gqw5L0#Vq!upiHeG3V2(PCF15$OKAOcSg+duS6iycKmENdgo6fZu1&ww53!g90vi017j(*hiQE&+kAfnqE7oG*efUPX*#utLAlr(ib2XG*qjyrj2R*HqhdokN#Vtftvo-MrDo*N0XKN2dq%6ttfT#P08*k(TE8kYJw9xe5YTM9CBzUiokCX+U1j6XW6cyNv!xi3pKXNSF2Ant$4WApjM0Ivmu2b-NxA+61&1zAdAQKsITLp#ddpDrp!(gc$H1kbNYlFH!4fke2rmceqWQ5&CsV#93)h4J7V&EDWOWnuk8q4iR9ZazjH2fowwNi(m2Qz1WPym-pTp7MihYfUkiQxbu+xTgVFTC5EebIUX*l7BOz6bwz0(!Ok)#25)dF)S)DSXU7E%ERipm$SJvNO!gCe8rE4uP9yGda$JDXLeUfq24i7bYWzhn87ALdVJBy34tGH3a!DHbSyYq$8*!d3tyO)G1czm69jm4o-TC7iZMDfV&R6r5x-c754,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 幼儿教育


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!