版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 計(jì)算機(jī)科學(xué)學(xué)院</b></p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 課 程 數(shù)據(jù)結(jié)構(gòu)</p><p> 題 目 重言式判別</p><p> 年 級(jí) &l
2、t;/p><p> 專(zhuān) 業(yè) 軟件工程</p><p> 學(xué) 生 </p><p> 學(xué) 號(hào) </p><p> 指導(dǎo)教師 </p><p> 2012年11月7日</p><p><b&
3、gt; 重言式判別</b></p><p><b> 目的</b></p><p> 鞏固和加深對(duì)數(shù)據(jù)結(jié)構(gòu)的理解,通過(guò)上機(jī)實(shí)驗(yàn)、調(diào)試程序,加深對(duì)課本知識(shí)的理解,最終使學(xué)生能夠熟練應(yīng)用數(shù)據(jù)結(jié)構(gòu)的知識(shí)寫(xiě)程序。</p><p> ?。?)通過(guò)本課程的學(xué)習(xí),能熟練掌握幾種基本數(shù)據(jù)結(jié)構(gòu)的基本操作。</p><p>
4、; ?。?)能針對(duì)給定題目,選擇相應(yīng)的數(shù)據(jù)結(jié)構(gòu),分析并設(shè)計(jì)算法,進(jìn)而給出問(wèn)題的正確求解過(guò)程并編寫(xiě)代碼實(shí)現(xiàn)。</p><p><b> 需求分析</b></p><p> ?。?)邏輯表達(dá)式從終端輸入,長(zhǎng)度不超過(guò)一行。邏輯運(yùn)算符包括“|”,“&”和“~”,</p><p> 分別表示或、與和非,運(yùn)算優(yōu)先程度遞增,但可以有括號(hào)改變,即括
5、號(hào)內(nèi)的運(yùn)算優(yōu)先。邏輯變?cè)獮榇髮?xiě)字母。表達(dá)式中任何地方都可以含有多個(gè)空格符。</p><p> (2)若是重言式或矛盾式,可以只“顯示True forever”或“False forever”,否則顯示“Satisfactible”以及變量名序列,與用戶(hù)交互。若用戶(hù)對(duì)表達(dá)式中變?cè)∫唤M值,程序就求出并顯示邏輯表達(dá)式的值。</p><p><b> ?。?)測(cè)試數(shù)據(jù):</b&
6、gt;</p><p> ①(A|~A)&(B|~B)</p><p> ?、?A&|~A)&C</p><p> ③A|B|C|D|E|~A</p><p><b> ?、蹵&B&C&~B</b></p><p> ⑤(A|B)&(A
7、|~A)</p><p> ?、轆&~B|~A&B</p><p><b> 概要設(shè)計(jì)</b></p><p> 1、數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì) </p><p> //根據(jù)表達(dá)式建立的二叉樹(shù)的結(jié)點(diǎn)定義,由于表達(dá)式的求值類(lèi)似二叉樹(shù)的中序遍歷,故我們可以ijiang表達(dá)式構(gòu)造為一個(gè)二叉樹(shù);</p>
8、<p> typedef struct btdnode{}*bitree;</p><p> //識(shí)別表達(dá)式使用的堆棧定義,它存放的都是樹(shù)的結(jié)構(gòu),鑒于邏輯符號(hào)的優(yōu)先不同,我們需要用到堆棧;</p><p> typedef struct lnode_optr{}sqstack;</p><p><b> 2、算法的設(shè)計(jì)</b>
9、</p><p> 本設(shè)計(jì)從總體上劃分可分為四個(gè)模塊,</p><p> 第一個(gè)模塊為樹(shù)與堆棧的創(chuàng)建。</p><p> void create(bitree &zigen,bitree l,bitree r){};void creatstack(sqstack &st){};void creattree(char s[],bitree &am
10、p;tree){};</p><p> 第二個(gè)模塊為對(duì)樹(shù)與堆棧的操作,包括對(duì)樹(shù)的取值以及堆棧的入棧,出棧操作。</p><p> int value_tree(bitree tree){};void push(sqstack &st,bitree e){};</p><p> void pop(sqstack &st,bitree &e
11、){}</p><p> 第三個(gè)模塊為對(duì)表達(dá)式的邏輯運(yùn)算符的判別。</p><p> char youxianji(char lie,char hang){};void gettop(sqstack &st,bitree &e){};</p><p> 第四個(gè)模塊為于用戶(hù)的交互。</p><p> void user(
12、){};</p><p> 3、抽象數(shù)據(jù)類(lèi)型的 設(shè)計(jì)</p><p> 根據(jù)所設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu)和 函數(shù)接口,設(shè)計(jì)抽象數(shù)據(jù)類(lèi)型。</p><p> ADT Binary Tree{</p><p> 數(shù)據(jù)對(duì)象:D是具有相同特性的數(shù)據(jù)元素的集合。</p><p><b> 二叉樹(shù)數(shù)據(jù)關(guān)系:</b&g
13、t;</p><p> 若D為空集,稱(chēng)BinaryTree 為空二叉樹(shù);</p><p> 否則 關(guān)系 R={H};</p><p> 在D中存在唯一的成為根的數(shù)據(jù)元素root,它在關(guān)系H下無(wú)前驅(qū);</p><p> D中其余元素必可分為兩個(gè)互不相交的子集L和R,每一個(gè)子集都是一棵符合本定義的二叉樹(shù),并分別為root的左子樹(shù)和右子樹(shù)。
14、如果左子樹(shù)L不空,則必存在一個(gè)根結(jié)點(diǎn),它是root的“左后繼”(<root>∈H),如果右子樹(shù)R不空,則必存在一個(gè)根結(jié)點(diǎn)為root的“右后繼”(<root>∈H)。</p><p><b> 基本操作P:</b></p><p><b> {結(jié)構(gòu)初始化}</b></p><p> initBi
15、Tree(&T);</p><p> 操作結(jié)果:構(gòu)造二叉樹(shù)T。</p><p> CreateBiTree(&T,definition);</p><p> 初始條件:definition給出二叉樹(shù)T的定義。</p><p> 操作結(jié)果:按definition構(gòu)造二叉樹(shù)T。</p><p>&l
16、t;b> {銷(xiāo)毀結(jié)構(gòu)}</b></p><p> DestroyBiTree(&T);</p><p> 初始條件:二叉樹(shù)T存在。</p><p> 操作結(jié)果:銷(xiāo)毀二叉樹(shù)T。</p><p><b> {引用型操作}</b></p><p> BiTreeEm
17、pty(T);</p><p> 初始條件:二叉樹(shù)T存在。</p><p> 操作結(jié)果:若二叉樹(shù)為空二叉樹(shù),則返回TRUE,否則返回FALSE。</p><p> 和數(shù)相同,創(chuàng)建二叉樹(shù)的算法取決于它的數(shù)據(jù)元素之間關(guān)系的輸入方式。</p><p><b> Root(T)</b></p><p&
18、gt; 初始條件:二叉樹(shù)T存在。</p><p> 操作結(jié)果:返回T的根。</p><p> Value(T,e)</p><p> 初始條件:二叉樹(shù)T存在,e是T中某個(gè)結(jié)點(diǎn)。</p><p> 操作結(jié)果:返回e的值。</p><p> Parent(T,e);</p><p>
19、初始條件:二叉樹(shù)T存在,e是T中某個(gè)結(jié)點(diǎn)。</p><p> 操作結(jié)果:若e是T的非根結(jié)點(diǎn),則返回它的雙親,否則返回“空”。</p><p> LeftChild(T,e);</p><p> 初始條件:二叉樹(shù)T存在,e是T中某個(gè)結(jié)點(diǎn)。</p><p> 操作結(jié)果:返回T的左孩子,若e無(wú)左孩子,則返回“空”。</p>&
20、lt;p> RightChild(T,e);</p><p> 初始條件:二叉樹(shù)T存在,e是T中某個(gè)結(jié)點(diǎn)。</p><p> 操作結(jié)果:返回T的右孩子,若e無(wú)左孩子,則返回“空”。</p><p><b> }</b></p><p><b> 堆棧數(shù)據(jù)關(guān)系:</b></p&g
21、t;<p> ADT Stack{</p><p> InitStack(&S) </p><p> 操作結(jié)果:構(gòu)造一個(gè)空棧。</p><p> DestroyStack(&S)</p><p> 初始條件:棧S存在。</p><p> 操作結(jié)果:棧S被銷(xiāo)毀。</p
22、><p> GetTop(S,&e)</p><p> 初始條件:棧S已存在且非空。</p><p> 操作結(jié)果:用e返回S的棧頂元素。</p><p> Push(&S,e)</p><p> 初始條件:棧S已存在。</p><p> 操作結(jié)果:插入結(jié)點(diǎn)為e的新
23、的棧頂元素。</p><p> Pop(&S,&e)</p><p> 初始條件:棧S已存在且非空。</p><p> 操作結(jié)果:刪除S的棧頂元素,并用e返回其值。</p><p><b> }</b></p><p><b> 算法思想:</b>
24、;</p><p> 自底向上地根據(jù)運(yùn)算符地優(yōu)先級(jí)來(lái)建立分子樹(shù)函數(shù);當(dāng)邏輯表達(dá)式讀完后-子根root就是一棵完整的二叉樹(shù)。用窮舉法得出所有可能組合,對(duì)二叉樹(shù)進(jìn)行先序遍歷,對(duì)存放在上面的表達(dá)式進(jìn)行求值。并用兩個(gè)棧分別存放運(yùn)算符和變量,來(lái)判別是否為重言式。</p><p><b> 詳細(xì)設(shè)計(jì)</b></p><p> 設(shè)計(jì)抽象數(shù)據(jù)類(lèi)型對(duì)應(yīng)的類(lèi)
25、定義。(如用C實(shí)現(xiàn)則沒(méi)有這項(xiàng))</p><p> typedef struct btdnode</p><p><b> {</b></p><p> char data;</p><p> struct btdnode *lchild; </p><p> struct btdnode
26、 *rchild;</p><p><b> }*bitree;</b></p><p> //識(shí)別表達(dá)式使用的堆棧定義,它存放的都是樹(shù)的結(jié)構(gòu);</p><p> typedef struct lnode_optr</p><p><b> { </b></p>&
27、lt;p> struct btdnode **base; //棧中的元素都是樹(shù)的結(jié)點(diǎn)結(jié)構(gòu);</p><p> struct btdnode **top;</p><p> int stacksize;</p><p><b> }sqstack;</b></p><p> 設(shè)計(jì)每個(gè) 成員函數(shù);<
28、;/p><p> void creatzuhe(int n){//用于產(chǎn)生變量的各種取值組合;</p><p> int i,num=0,j=0,e;</p><p> int temp[bianliang_max];</p><p> for(i=0;i<N;i++)</p><p> zuhe[i]=0
29、;</p><p><b> while(n){</b></p><p><b> e=n%2;</b></p><p><b> num++;</b></p><p> temp[j++]=e;</p><p><b> n=n/2
30、;</b></p><p><b> }</b></p><p><b> j=j-1;</b></p><p> num=N-num;</p><p> while(j>=0){</p><p> e=temp[j--];</p>
31、<p> zuhe[num++]=e;</p><p><b> }</b></p><p><b> }</b></p><p> //自底向上地根據(jù)運(yùn)算符地優(yōu)先級(jí)來(lái)建立分子樹(shù)函數(shù);當(dāng)邏輯表達(dá)式讀完后-子根zigen就是一棵完整的二叉樹(shù)</p><p> int k=0;//建
32、樹(shù)的標(biāo)志,k=1表示第一次建立分子樹(shù),要對(duì)左右孩子的指針域處理</p><p> void create(bitree &zigen,bitree l,bitree r){</p><p> zigen->lchild=l;</p><p> zigen->rchild=r;//分樹(shù)的鏈接</p><p><b
33、> if(l&&r){</b></p><p> if(int(l->data)>=65&&int(l->data)<=90){</p><p> l->lchild=NULL;</p><p> l->rchild=NULL;</p><p>&l
34、t;b> }</b></p><p> if(int(r->data)>=65&&int(r->data)<=90){</p><p> r->lchild=NULL;</p><p> r->rchild=NULL;</p><p><b> }<
35、;/b></p><p><b> }</b></p><p><b> }</b></p><p> //邏輯運(yùn)算符的優(yōu)先級(jí)判別;</p><p> char youxianji(char lie,char hang){</p><p> int i,
36、j;</p><p> char bijiao[7][7]={' ','|','&','~','(',')','#',</p><p> '|','>','<','<','<
37、;','>','>',</p><p> '&','>','>','<','<','>','>',
38、
39、 </p><p> '~','>',
40、9;>','>','<','>','>',</p><p> '(','<','<','<','<','=',' ',</p><p> ')
41、','>','>','>',' ','>','>',</p><p> '#','<','<','<','<',' ','='};</p&
42、gt;<p> for(i=0;i<7;i++)</p><p> if(bijiao[0][i]==lie)</p><p><b> break;</b></p><p> for(j=0;j<7;j++)</p><p> if(bijiao[j][0]==hang)</p
43、><p><b> break;</b></p><p> return bijiao[j][i];</p><p><b> }</b></p><p> //對(duì)操作符棧和變量堆棧的操作;</p><p> void creatstack(sqstack &s
44、t){</p><p> st.base=(bitree*)malloc(stack_size_normal*sizeof(btdnode));</p><p> if(!st.base) exit(0);</p><p> st.top=st.base;</p><p> st.stacksize=stack_size_normal
45、;</p><p><b> }</b></p><p> void push(sqstack &st,bitree e){</p><p> if(st.top-st.base<st.stacksize)</p><p> *st.top++=e;</p><p> el
46、se exit(0);</p><p><b> }</b></p><p> void pop(sqstack &st,bitree &e){</p><p> if(st.top==st.base) exit(0);</p><p> e=*--st.top;</p><p
47、><b> }</b></p><p> void gettop(sqstack &st,bitree &e){//取運(yùn)算符棧的棧頂元素進(jìn)行優(yōu)先級(jí)比較</p><p> if(st.top==st.base) exit(0);</p><p> e=*(st.top-1);</p><p>
48、<b> }</b></p><p> void creattree(char s[],bitree &tree){//重言式的識(shí)別函數(shù);</p><p> sqstack variable; //變量棧;</p><p> sqstack logic; //邏輯運(yùn)算符棧; </p>
49、<p> creatstack(variable);</p><p> creatstack(logic);</p><p> bitree logic_di,variables,logics,e,a,b,theta,kuohao; //定義棧中的元素;</p><p> //theta為最后的二叉樹(shù)的根;</p><p&
50、gt; logic_di=(bitree)malloc(sizeof(btdnode));</p><p> if(!logic_di) exit(0);</p><p> logic_di->data='#';</p><p> push(logic,logic_di);</p><p> while(*s
51、!=NULL){ </p><p> if(int(*s)>=65&&int(*s)<=90){ </p><p> variables=(bitree)malloc(sizeof(btdnode));</p><p> if(!variables) exit(0);</p><p> vari
52、ables->data=*s;</p><p> push(variable,variables);</p><p><b> }</b></p><p> else if(int(*s)>90||int(*s)<65){ </p><p> gettop(logic,e);//取運(yùn)算符棧的棧
53、頂元素進(jìn)行優(yōu)先級(jí)比較</p><p> switch(youxianji(*s,e->data)){</p><p> case '<': //棧頂?shù)倪\(yùn)算符優(yōu)先級(jí)低,邏輯運(yùn)算符進(jìn)棧</p><p> logics=(bitree)malloc(sizeof(btdnode));</p><p> if(!l
54、ogics) exit(0);</p><p> logics->data=*s;</p><p> push(logic,logics);</p><p><b> break;</b></p><p> case '='://脫括號(hào)并接受下一個(gè)字符;</p><p&
55、gt; pop(logic,kuohao);break;</p><p> case '>':pop(logic,theta);//彈出邏輯運(yùn)算符</p><p> pop(variable,a);//彈出變量</p><p><b> b=NULL;</b></p><p> if(th
56、eta->data!='~')</p><p> pop(variable,b);</p><p><b> //建樹(shù)的函數(shù)調(diào)用</b></p><p><b> k=k+1;</b></p><p> create(theta,b,a);</p><
57、;p> push(variable,theta);//將臨時(shí)的根作為新的變量壓入變量棧中;</p><p> if(*s!='#'&&*s!=')') {</p><p> logics=(bitree)malloc(sizeof(btdnode));</p><p> if(!logics) exit
58、(0);</p><p> logics->data=*s;</p><p> push(logic,logics);</p><p><b> }</b></p><p> else s=s-1;</p><p><b> break;</b></p
59、><p><b> }</b></p><p><b> }</b></p><p><b> s++;</b></p><p><b> }</b></p><p> tree=theta;</p><p
60、><b> }</b></p><p> //根據(jù)變量的取值組合并利用邏輯表達(dá)式的性質(zhì)對(duì)樹(shù)進(jìn)行求值 </p><p> int value_tree(bitree tree){</p><p> if(!tree) return 0; //遇到空的結(jié)點(diǎn);</p><p> if(tree->dat
61、a=='('){</p><p> while(tree->data!='(')</p><p> value_tree(tree);</p><p><b> }</b></p><p> else if(tree->data!='|'&&am
62、p;tree->data!='&'&&tree->data!='~'&&tree->data!='('&&tree->data!=')')//找到的是變量;</p><p> return zuhe[int(tree->data)-65];</p>
63、<p> else if(int(tree->data)<65||int(tree->data)>90) //找到的是運(yùn)算符;</p><p> switch(tree->data){</p><p> case '|': return(value_tree(tree->lchild)||value_tr
64、ee(tree->rchild));</p><p> case '&': return(value_tree(tree->lchild)&&value_tree(tree->rchild));</p><p> case '~': return(!value_tree(tree->rchild));<
65、;/p><p><b> }</b></p><p><b> }</b></p><p> //用戶(hù)設(shè)定變量的一種取值;</p><p> void user()</p><p><b> {</b></p><p>&l
66、t;b> int i;</b></p><p> cout<<"請(qǐng)依次輸入你的變?cè)≈?quot;<<endl;</p><p> for(i=65;i<65+N;i++)</p><p><b> {</b></p><p> cout<<
67、char(i)<<" = ";</p><p> cin>>zuhe[i-65];</p><p><b> }</b></p><p><b> }</b></p><p><b> 設(shè)計(jì)主函數(shù)</b></p>
68、<p> void main(){</p><p> char str[str_max],string[str_max],*pstr;</p><p> int loop=20,choice,i=0,choose,sum;</p><p> bitree Tree;</p><p> while(loop)</p&
69、gt;<p><b> {</b></p><p> cout<<"\t\t\t****************************"<<endl;</p><p> cout<<"\t\t\t****************************"<<e
70、ndl;</p><p> cout<<"\t\t\t數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)"<<endl;</p><p> cout<<"\t\t\t設(shè)計(jì)題目:重言式判別"<<endl;</p><p> cout<<"\t\t\t班級(jí):軟工10"<&l
71、t;endl;</p><p> cout<<"\t\t\t姓名:汪國(guó)志"<<endl;</p><p> cout<<"\t\t\t****************************"<<endl;</p><p><b> pstr=str;</b
72、></p><p><b> i=0;</b></p><p> int SUM=0,l; //用于累加變量的每種組合的邏輯表達(dá)式的結(jié)果;可以作為邏//輯表達(dá)式類(lèi)別判別的根據(jù)</p><p> cout<<"請(qǐng)輸入邏輯表達(dá)式的變量的個(gè)數(shù)"<<endl;</p><p
73、><b> cin>>N;</b></p><p> sum=int(pow(2,N)); //變量組合的總數(shù);</p><p> cout<<"請(qǐng)輸入邏輯表達(dá)式的表達(dá)式(或用'|',與用'&'和非用'~')"<<endl;</p>
74、<p> cout<<"(取多變量時(shí)請(qǐng)按A,B,C字母順序來(lái)選?。?quot;<<endl<<endl;;</p><p><b> cin>>str;</b></p><p> //重言式的正確讀取;</p><p> for(;*pstr!=NULL;pstr++
75、)</p><p> if(*pstr!=' ') string[i++]=*pstr;</p><p> string[i]='#';</p><p> string[i+1]='\0';</p><p> creattree(string,Tree);//建立重言式的二叉樹(shù);<
76、/p><p> for(loop=0;loop<sum;loop++){</p><p> creatzuhe(loop);//產(chǎn)生變量取值組合;</p><p> SUM+=value_tree(Tree);</p><p><b> }</b></p><p> string[i]
77、='\0';</p><p> cout<<endl;</p><p> if(SUM==0) cout<<" False forever"<<endl<<endl;;</p><p> if(SUM==sum) cout<<" True Forever
78、"<<endl<<endl;;</p><p> if (SUM>0&&SUM<sum){</p><p> cout<<" Statisfactible"<<endl;</p><p> cout<<endl;</p><
79、p><b> user();</b></p><p> cout<<"邏輯表達(dá)式的值為:"<<value_tree(Tree)<<endl;</p><p><b> }</b></p><p> cout<<"是否繼續(xù)進(jìn)行運(yùn)算?是
80、按1/ 否按0:";</p><p> cin>>choice;</p><p> if(choice==0)</p><p><b> exit(0);</b></p><p><b> loop--;</b></p><p><b>
81、; }</b></p><p><b> }</b></p><p><b> 調(diào)試分析</b></p><p> 在調(diào)試過(guò)程中出現(xiàn)以下問(wèn)題:</p><p> error C2065: 'malloc' : undeclared identifier</
82、p><p> error C2065: 'exit' : undeclared identifier</p><p> 原因是因?yàn)槿鄙倭祟^文件#include<stdlib.h></p><p> 在運(yùn)行過(guò)程中,不能有效地解決()的優(yōu)先級(jí)問(wèn)題</p><p> 解決方法:在對(duì)樹(shù)的遍歷函數(shù)value_tree(b
83、itree tree){}中添加以下語(yǔ)句即可</p><p> if(tree->data=='('){</p><p> while(tree->data!='(')</p><p> value_tree(tree);</p><p><b> }</b></
84、p><p><b> 測(cè)試結(jié)果</b></p><p> 測(cè)試數(shù)據(jù)①(A|~A)&(B|~B)</p><p> 當(dāng)A、B取值為0,0;0,1;1,0;1,1;時(shí)表達(dá)式的值分別為1,1,1,1,為重言式。</p><p> 測(cè)試數(shù)據(jù)②(A&|~A)&C</p><p>
85、 當(dāng)A、C取值為0,0;0,1;1,0;1,1;時(shí)表達(dá)式的值分別為0,0,0,0,為矛盾式。</p><p> 測(cè)試數(shù)據(jù)③A|B|C|D|E|~A</p><p><b> 測(cè)試結(jié)果為重言式。</b></p><p> 測(cè)試數(shù)據(jù)④A&B&C&~B</p><p><b> 測(cè)試
86、結(jié)果為矛盾式。</b></p><p> ⑤(A|B)&(A|~A)</p><p> 測(cè)試結(jié)果為非重言式和矛盾式。</p><p> 測(cè)試數(shù)據(jù)⑥A&~B|~A&B</p><p> 測(cè)試結(jié)果為非重言式和矛盾式。</p><p><b> 用戶(hù)使用說(shuō)明</b
87、></p><p> 從以上六個(gè)測(cè)試用例來(lái)看,結(jié)果正確。但是程序還有一些有待解決的問(wèn)題。比如,表達(dá)式中沒(méi)有解決空格的問(wèn)題,當(dāng)有空格存在,就無(wú)法繼續(xù)下去。另一個(gè)問(wèn)題是表中顯示的大寫(xiě)字母和表達(dá)式中的大寫(xiě)字母不對(duì)應(yīng),只是機(jī)械的按照次序。</p><p> 但總的來(lái)說(shuō)程序已經(jīng)比較完善,書(shū)上的要求也基本符合,并且加入了對(duì)矛盾式的判別。</p><p><b&g
88、t; 課設(shè)總結(jié)</b></p><p> 1,通過(guò)本次試驗(yàn),更加鞏固了我二叉樹(shù)這種數(shù)據(jù)結(jié)構(gòu)的理解,完全掌握了它們的基本操作。</p><p> 2,借助單步調(diào)試功能和數(shù)據(jù)窗口,可以加快找到程序中的錯(cuò)誤點(diǎn),調(diào)試能力有大幅度的提高。</p><p> 3,通過(guò)對(duì)出現(xiàn)的錯(cuò)誤不斷的改正,鞏固了自己的薄弱環(huán)節(jié),加深了對(duì)知識(shí)的理解,動(dòng)手操作能力有了很大的提高
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)--重言式的判別
- 數(shù)據(jù)結(jié)構(gòu)報(bào)告—重言式判別
- 擾動(dòng)模糊命題邏輯及其廣義重言式.pdf
- 模糊模態(tài)命題邏輯及其廣義重言式.pdf
- 修正的Atanassov命題邏輯及其廣義重言式.pdf
- 重言式狀態(tài)詞的歷時(shí)發(fā)菜及語(yǔ)法化考察.pdf
- 區(qū)間值模糊命題邏輯的廣義擬重言式及其真度
- 離散數(shù)學(xué)第1章重言式與蘊(yùn)含式和其它連接詞
- 區(qū)間值模糊命題邏輯的廣義擬重言式及其真度.pdf
- 幾種多值邏輯系統(tǒng)重言式關(guān)系和l4中導(dǎo)出函數(shù)問(wèn)題的研究
- 幾種多值邏輯系統(tǒng)重言式關(guān)系和L4中導(dǎo)出函數(shù)問(wèn)題的研究.pdf
- 課程設(shè)計(jì)-訂單式銷(xiāo)售管理系統(tǒng)課程設(shè)計(jì)
- 化工原理課程設(shè)計(jì)--列管式換熱器課程設(shè)計(jì)
- 鋼結(jié)構(gòu)課程設(shè)計(jì)--輕型門(mén)式鋼架課程設(shè)計(jì)
- 嵌入式課程設(shè)計(jì)
- 嵌入式課程設(shè)計(jì)
- 管殼式換熱器課程設(shè)計(jì)
- 課程設(shè)計(jì)--管殼式換熱器
- 管殼式換熱器課程設(shè)計(jì)
- 管式換熱器課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論