版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 數(shù)據(jù)結(jié)構(gòu)</b></p><p><b> 課程設(shè)計說明書</b></p><p> 題目: 停車場問題 </p><p> 院 系: 計算機(jī)科學(xué)與工程學(xué)院 </p><p> 專業(yè)班級:
2、 計算機(jī)08-4班 </p><p> 學(xué) 號: </p><p> 學(xué)生姓名: </p><p> 指導(dǎo)教師: </p><p> 2010年 02 月 24 日</p>
3、;<p> 課程設(shè)計(論文)任務(wù)書</p><p> 計算機(jī)科學(xué)與工程 學(xué)院 計算機(jī)軟件教研室</p><p> 2009年 12月 29 日
4、 </p><p><b> 目 錄</b></p><p><b> 1 問題描述1</b></p><p><b> 2 需求分析1</b></p><p&
5、gt;<b> 3 總體設(shè)計2</b></p><p> 3.1 棧和隊列在使用前的數(shù)據(jù)類型定義及各自的結(jié)點類型</p><p><b> 2</b></p><p><b> 4 總結(jié)12</b></p><p><b> 參考文獻(xiàn)12</b&
6、gt;</p><p><b> 1 問題描述</b></p><p> 利用棧和隊列實現(xiàn)車的停放,等候以及結(jié)算;在執(zhí)行時使用菜單方式實現(xiàn),選擇需要的停車服務(wù),執(zhí)行后可以顯示打印結(jié)果。</p><p> 設(shè)停車場內(nèi)只有一個可停放N輛汽車的狹長通道,且只有一個大門可供汽車進(jìn)出。汽車在停車場內(nèi)車輛到達(dá)時間的先后順序,依次由北向南排列(大門在最
7、南端,最先到達(dá)的第一輛車停放在車場的最北端),若車場內(nèi)已停滿N輛汽車,則后的汽車只能在門外的便道上等候,一旦有車開走,則排在便道上的第一輛車即可開入;當(dāng)停車場內(nèi)某輛車要離開時,在它之后進(jìn)入的車輛必須先退出車場為它讓路,待該輛車開出大門外,其它車輛再按原次序進(jìn)入車場,每輛停放在車場的車在它離開停車場時必須按它停留的時間長短交納費用。</p><p> 以棧模擬停車場,以隊列模擬車場外的便道,按照從終端讀入的輸入的
8、數(shù)據(jù)序列進(jìn)行模擬管理。每一組輸入數(shù)據(jù)包括三個數(shù)據(jù)項:汽車“到達(dá)”或“離去”的信息,汽車牌照號碼以及到達(dá)或離去的時刻。對每一組輸入數(shù)據(jù)進(jìn)行操作后的輸出信息為:若是車輛到達(dá),則輸出汽車在停車場或便道上的停車位置;若是車輛離去,則輸出汽車在停車場內(nèi)停留的時間和應(yīng)交納的費用(在便道上停留的時間不收費)。棧以順序結(jié)構(gòu)實現(xiàn),隊列以鏈表結(jié)構(gòu)實現(xiàn)。</p><p><b> 2 需求分析</b></
9、p><p> 根據(jù)問題要求,我認(rèn)為,雖然本程序?qū)τ诂F(xiàn)實生活中的用處不是很現(xiàn)實,但是可以豐富我們對棧和隊列的理解,也可以讓我們學(xué)會用棧和隊列來模擬現(xiàn)實中的問題,本程序要實現(xiàn)的功能有:</p><p> 用順序結(jié)構(gòu)棧和鏈表結(jié)構(gòu)隊列來模擬停車場和過道:為了能用棧模擬停車場和用隊列隊列模擬過道,首先得為棧和鏈?zhǔn)疥犃卸x結(jié)點,然后為棧和隊列中各函數(shù)的實現(xiàn)包括初始化棧和隊列還有棧的判斷棧空判斷棧滿來提
10、示不能出車和什么時候過道上的車進(jìn)入停車場,以入棧出棧來模擬車輛的出入停車場,以判斷隊列是否為空來提示過道是否有車來進(jìn)入停車場和入隊來模擬車等候在過道上出隊來讓過道上的車進(jìn)入停車場,還有取隊列首個元素來模擬排在隊首的車進(jìn)入停車場。</p><p> 停車函數(shù):當(dāng)選擇是停放車輛時,則先檢查停車場有沒有滿,如果沒滿就會調(diào)用停車函數(shù),把車的信息輸入到棧內(nèi),表示該車已進(jìn)入停車場,并輸出本車在停車場內(nèi)的具體位置。</
11、p><p> 等候函數(shù):在選擇停放車輛時,但停車場已滿,則只能調(diào)用等候函數(shù)。將車輛的輸入信息存入隊列中,表示該車需要在過道內(nèi)等候,并輸出本車在過道內(nèi)的具體位置。</p><p> 車輛出站函數(shù):當(dāng)選擇車輛出站時,則要輸出汽車在停車場內(nèi)停留的時間和應(yīng)交納的費用,其中不包括車在過道內(nèi)等候所用的時間。</p><p><b> 3 總體設(shè)計</b>
12、</p><p> 3.1棧和隊列在使用前的數(shù)據(jù)類型定義及各自的結(jié)點類型</p><p> 在設(shè)計程序時,為了能更簡單地得到用戶輸入的準(zhǔn)確的時間,我定義了一個時間數(shù)據(jù)類型,其中包括小時信息和分鐘信息。</p><p> typedef struct{ //定義時間類型用來存儲車輛進(jìn)出站時間</p><p><b> i
13、nt hour;</b></p><p> int minute;</p><p><b> }time;</b></p><p> typedef struct //定義汽車數(shù)據(jù)類型用來存儲棧和隊列中元素值</p><p><b> {</b></p><
14、;p> char name[8];</p><p> char Carnum[6];</p><p><b> time ti;</b></p><p><b> }Car;</b></p><p> typedef struct //定義棧結(jié)點類型模擬停車場</p>
15、;<p><b> {</b></p><p> Car data[MAXSIZE];</p><p><b> int top;</b></p><p> }SeqStack,*pSeqStack;</p><p> typedef struct node{ //定義
16、結(jié)點</p><p><b> Car data;</b></p><p> struct node *next;</p><p> }Qnode,*PQnode;</p><p> typedef struct { //定義鏈?zhǔn)疥犃薪Y(jié)點類型模擬通道</p><p> PQnod
17、e front,rear; </p><p> }LinkQueue,*PLinkQueue;</p><p> 程序在執(zhí)行時,用到的主要函數(shù)有:</p><p> pSeqStack InitStack() //初始化棧</p><p> int StackEmpty(pSeqStack S) //判???lt;
18、/p><p> int StackFull(pSeqStack S) //判棧滿</p><p> int Push(pSeqStack S,char name[],char num[],time arriveti) //入棧</p><p> { //Car x;</p><p> if(S->top == MA
19、XSIZE-1)</p><p><b> {</b></p><p> //cout<<"棧已滿!"<<endl;</p><p><b> return 0;</b></p><p><b> }</b></p>
20、;<p><b> else</b></p><p><b> { </b></p><p> S->top++; </p><p> strcpy(S->data[S->top].name,name);</p><p> strcpy(S->da
21、ta[S->top].Carnum,num);</p><p> S->data[S->top].ti.hour=arriveti.hour;</p><p> S->data[S->top].ti.minute=arriveti.minute;</p><p><b> return 1;</b></
22、p><p><b> }</b></p><p><b> }</b></p><p> int Pop(pSeqStack S) //出棧</p><p><b> { </b></p><p> if(StackEmpty(S))<
23、;/p><p><b> {</b></p><p><b> return 0;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> { <
24、/b></p><p> S->top--; //**此出棧只是將top指針下移了位置,而原本的top所指結(jié)點不考慮了</p><p><b> return 1;</b></p><p><b> }</b></p><p><b> }</b>&
25、lt;/p><p> PLinkQueue InitQueue() //初始化隊列</p><p> int QueueEmpty(PLinkQueue Q) //判隊空</p><p> int InQueue(PLinkQueue Q,char num[],char name[]) //入隊列</p><p><b
26、> { </b></p><p><b> PQnode p;</b></p><p> p=(PQnode)malloc(sizeof(Qnode));</p><p><b> if( !p)</b></p><p><b> {</b>&l
27、t;/p><p> cout<<"內(nèi)存溢出!"<<endl; //**“溢出”即已經(jīng)沒有空間可分配給此結(jié)點了</p><p><b> return 0;</b></p><p><b> }</b></p><p> strcpy(p->
28、data.Carnum,num);</p><p> strcpy(p->data.name,name);</p><p> p->next=NULL;</p><p> if(QueueEmpty(Q))</p><p> Q->front=Q->rear=p;</p><p><
29、;b> else{</b></p><p> Q->rear->next=p;</p><p> Q->rear=p;</p><p><b> }</b></p><p><b> return 1;</b></p><p>&
30、lt;b> }</b></p><p> int OutQueue(PLinkQueue Q) //出隊</p><p><b> {</b></p><p><b> PQnode p;</b></p><p> p=(PQnode)malloc(sizeof(Qn
31、ode));</p><p><b> if(!p)</b></p><p><b> {</b></p><p> cout<<"內(nèi)存溢出!"<<endl;</p><p><b> return 0;</b></p&
32、gt;<p><b> }</b></p><p> p=Q->front;</p><p> Q->front =Q->front->next;</p><p><b> free(p);</b></p><p> if(!Q->front)&
33、lt;/p><p> Q->rear=NULL;</p><p><b> return 1;</b></p><p><b> }</b></p><p> int CountQueue(PLinkQueue Q) //計算隊列中車輛個數(shù),顯示通道中車輛停放位置</p>
34、<p><b> {</b></p><p> int count=0;</p><p><b> PQnode p;</b></p><p> p=Q->front;</p><p> while(p!=NULL)</p><p><b&g
35、t; {</b></p><p><b> count++;</b></p><p> p=p->next;</p><p><b> }</b></p><p> return count;</p><p><b> }</b&
36、gt;</p><p> int DeleteQueue(PLinkQueue Q,char num[],char name[]) //取隊頭元素,為后來的進(jìn)棧找元素</p><p><b> {</b></p><p> int count=0;</p><p><b> PQnode p;<
37、;/b></p><p> p=Q->front;</p><p> while(p!=NULL)</p><p><b> {</b></p><p><b> count++;</b></p><p> p=p->next;</p>
38、<p><b> }</b></p><p> return count;</p><p><b> }</b></p><p> int InsertCar(pSeqStack S,char name[],char num[],time arriveti) //單個車輛入站</p>
39、<p><b> {</b></p><p> Push(S,name,num,arriveti);</p><p> cout<<"當(dāng)前車輛停放在停車場第"<<S->top+1<<"位"<<endl;</p><p><b&g
40、t; return 1;</b></p><p><b> }</b></p><p> 圖1 單個車輛進(jìn)站</p><p> double ExitCar(pSeqStack S,PLinkQueue Q,char name[],char num[],time leaveti) //車輛出站/</p>
41、<p><b> {</b></p><p> int i,position,flag=0;</p><p> //char num[6]; //要出站的車的車牌號</p><p> for(i=0;i<S->top+1;i++)</p><p>&
42、lt;b> {</b></p><p> if(strcmp(S->data[i].Carnum,num)==0) //**strcmp()結(jié)果0為true,1為false,而在while()條件判斷時1為true,0為false, 即:將車牌號不匹配的車入棧n,出棧s,取車牌號匹配的計算費用
43、 </p><p><b> {</b></p><p> position=i;</p><p><b> flag=1;</b></p><p><b> }</b></p><p><b> }<
44、/b></p><p> if(! flag)</p><p><b> {</b></p><p> cout<<"沒有此輛車"<<endl;</p><p><b> }</b></p><p> pSeqSta
45、ck S1;</p><p> S1=InitStack(); //臨時棧,存放在要出站車輛之后進(jìn)入車場的車輛</p><p><b> if(!S1)</b></p><p><b> {</b></p><p> cout<<"車輛出站失敗!"&
46、lt;<endl;</p><p><b> exit(1);</b></p><p><b> }</b></p><p> for(i=S->top;i>position;i--)</p><p><b> {</b></p><
47、;p> Pop(S);/*車場出車*/</p><p> Push(S1,S->data[S->top].name,S->data[S->top].Carnum,S->data[S->top].ti);/*臨時棧入車*/</p><p><b> }</b></p><p> double ac
48、count=0;</p><p> account=((leaveti.hour-S->data[S->top].ti.hour)*60+(leaveti.minute-S->data[S->top].ti.minute))*price;</p><p> Pop(S);/*所指定的車輛出站*/</p><p> while(S1-&g
49、t;top!=-1)</p><p><b> {</b></p><p> Push(S,S1->data[S1->top].name,S1->data[S->top].Carnum,S1->data[S1->top].ti);/*車場入車*/</p><p> Pop(S1);/*臨時棧出車*/&l
50、t;/p><p><b> }</b></p><p> if(Q->rear!=NULL&&Q->front!=NULL)/*通道內(nèi)有車*/</p><p><b> {</b></p><p> DeleteQueue(Q,num,name);</p>
51、<p> Push(S,name,num,leaveti);</p><p> //cout<<"通道車輛進(jìn)站成功!"<<endl;</p><p><b> }</b></p><p> return account;</p><p><b>
52、 }</b></p><p><b> 圖2 車輛結(jié)算</b></p><p> int Waiting(PLinkQueue Q,char name[],char num[]) //等候停放</p><p><b> {</b></p><p> InQueue(Q,n
53、ame,num);</p><p> cout<<"當(dāng)前車輛停放在通道第"<<CountQueue(Q)<<"位"<<endl;</p><p><b> return 1;</b></p><p><b> }</b></
54、p><p><b> 圖3 等候停放</b></p><p> void Show(pSeqStack S,PLinkQueue Q) //車站內(nèi)信息顯示</p><p><b> {</b></p><p><b> int i;</b></p>&
55、lt;p> if(S->top==-1)</p><p><b> {</b></p><p> cout<<"車場為空!"<<endl;</p><p><b> }</b></p><p> cout<<"當(dāng)
56、前車場內(nèi)車輛信息是:"<<endl;</p><p> cout<<"車牌號:"<<ends<<"車主姓名:"<<ends<<"到達(dá)時間:"<<endl;</p><p> for(i=0;i<S->top+1;i++)&
57、lt;/p><p><b> {</b></p><p> cout<<S->data[i].Carnum<<ends<<S->data[i].name<<ends<<S->data[i].ti.hour<<" : "<<S->data[i]
58、.ti.minute<<endl;</p><p><b> }</b></p><p> if(Q->rear!=NULL&&Q->front!=NULL)</p><p><b> {</b></p><p> ///Q->front=Q-&
59、gt;front->next;</p><p> ///Q->rear=Q->rear;</p><p> cout<<"通道內(nèi)車輛信息:"<<endl;</p><p> cout<<"車主姓名:"<<ends<<"車牌號:&quo
60、t;<<endl;</p><p> cout<<Q->front->data.name<<ends<<Q->front->data.Carnum<<endl;</p><p> Q->front=Q->front->next;</p><p><b>
61、; }</b></p><p><b> }</b></p><p> 圖4 車站內(nèi)信息顯示</p><p> void main()</p><p><b> {</b></p><p> char name[8],num[6];</p>
62、;<p> time arriveti,leaveti; //定義兩個時間變量</p><p> int select;</p><p> pSeqStack S; //定義棧作為停車場</p><p> S=InitStack();</p><p> PLinkQueue Q; //定義鏈
63、隊列作為通道</p><p> Q=InitQueue();</p><p> cout<<"=========================快樂家園停車場========================"<<endl;</p><p> cout<<endl;</p><p>
64、<b> while (1)</b></p><p><b> {</b></p><p> cout<<"1、停放車輛:"<<endl;</p><p> cout<<"2、輸出車場內(nèi)車輛信息:"<<endl;</p&g
65、t;<p> cout<<"3、車輛結(jié)算:"<<endl;</p><p> cout<<"0、退出程序。"<<endl;</p><p> cout<<endl;</p><p> cout<<"請選擇要執(zhí)行的操作:&qu
66、ot;<<endl;</p><p> cin>>select;</p><p> switch(select)</p><p><b> {</b></p><p> case 0:exit(0);</p><p><b> break;</b&
67、gt;</p><p><b> case 1:</b></p><p> cout<<"請輸入到達(dá)車輛的信息:"<<endl;</p><p> cout<<"請輸入車主姓名:"<<endl;</p><p> cin>
68、;>name;</p><p> cout<<"請輸入車牌號:"<<endl;</p><p><b> cin>>num;</b></p><p> cout<<"請輸入車的到達(dá)時間的小時信息(0-23):"<<endl;</
69、p><p> cin>>arriveti.hour;</p><p> cout<<"請輸入車的到達(dá)時間的分鐘信息(0-59):"<<endl;</p><p> cin>>arriveti.minute;</p><p> if(StackFull(S))</p&
70、gt;<p> Waiting(Q,name,num);</p><p><b> else</b></p><p> InsertCar(S,name,num,arriveti);</p><p> cout<<endl;</p><p><b> break;</b
71、></p><p><b> case 2:</b></p><p> cout<<"當(dāng)前車場信息:"<<endl;</p><p> Show(S,Q);</p><p> cout<<endl;</p><p><b&
72、gt; break;</b></p><p><b> case 3:</b></p><p> double money;</p><p> if(StackEmpty(S))</p><p><b> {</b></p><p> cout<
73、<"對不起,停車場還沒車停放"<<endl;</p><p><b> money=0;</b></p><p><b> }</b></p><p><b> else{</b></p><p> cout<<&quo
74、t;請輸入車主姓名:"<<endl;</p><p> cin>>name;</p><p> cout<<"請輸入車牌號\n";</p><p><b> cin>>num;</b></p><p> cout<<&quo
75、t;請輸入車輛離開時間的小時信息(0-23)\n";</p><p> cin>>leaveti.hour;</p><p> cout<<"請輸入車輛離開時間的分鐘信息(0-59)\n";</p><p> cin>>leaveti.minute;</p><p>
76、money=ExitCar(S,Q,name,num,leaveti);</p><p> cout<<"你停車的總時間為"<<money/price<<"分鐘"<<endl;</p><p> cout<<"你所需交納的停車費用為"<<money<
77、<"元"<<endl;</p><p><b> };</b></p><p><b> break;</b></p><p><b> default:</b></p><p> cout<<"輸入錯誤,請重
78、新選擇!"<<endl;</p><p><b> break;</b></p><p> }//end switch</p><p> }//end while </p><p> }//end main()</p><p><b> 4 總結(jié)</
79、b></p><p> 通過這次課程設(shè)計,我對于編寫程序有了更新的認(rèn)識,更多的感觸。首先是要把C語言這門課學(xué)好,作為編程的基礎(chǔ),應(yīng)用是很廣泛的。就像在處理停車場問題時,因為大概有半年時間沒有學(xué)C了,好多函數(shù)都不怎么會用了,于是只好又花時間把能用到的知識點好好地看了一遍,while循環(huán)的循環(huán)條件,字符串string相關(guān)函數(shù)的使用方法。其實,在處理停車場問題時,更重要的還是在數(shù)據(jù)結(jié)構(gòu)書上的棧和隊列的應(yīng)用。為了
80、更順利的應(yīng)用這兩個知識點,我又把書上棧和隊列的相關(guān)代碼理解了一遍。還有就是在設(shè)計中處理時間記錄上,我定義了一個時間time數(shù)據(jù)類型,來記錄時和分鐘信息。在設(shè)計程序時,要考慮到好多問題,當(dāng)車場停放已滿時,需要將下一輛要停放的車放在通道內(nèi),等候停放;而先進(jìn)入停車場內(nèi)的車,在出站時需要將在它之后進(jìn)入的車退出來,等車輛出站后,再按原順序進(jìn)入站,此時就需要定義一個臨時的棧,來存放之后進(jìn)入的車,等原來停放在車場的車都進(jìn)入后,通道上的第一輛車要進(jìn)入車
81、場,并把出站的車的離開時間作為由通道進(jìn)入停車場的到達(dá)時間。而在處理結(jié)算算法時,牽涉到元素在各存儲位置的轉(zhuǎn)移,需要考慮到程序的健壯性,技術(shù)要求更高了。</p><p> 然后,認(rèn)識到程序需要經(jīng)常編寫,經(jīng)常練。在調(diào)程序時可能會出現(xiàn)不少的錯誤提示,這時就需要你靜下心來慢慢分析,一個錯誤一個錯誤的過,還有在不懂的地方,需要研究或詢問別人,千萬不能就模糊地過去了!有跟自己的想法不同的,可用自己的方法試著調(diào)一下。</
82、p><p> 分析數(shù)據(jù)結(jié)構(gòu)這門課,它是培養(yǎng)我們編程思維的一種很好的方法,我們要想把編程學(xué)好,需要把思維培養(yǎng)到能很自然的把問題轉(zhuǎn)換為學(xué)過的知識的水平。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]秦鋒.數(shù)據(jù)結(jié)構(gòu)(C語言版).合肥:中國科大出版社,2007</p><p> [2]溫秀梅,丁學(xué)均.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-停車場管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--停車場管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--模擬停車場管理問題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計停車場管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-停車場管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---停車場仿真
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--停車場管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計停車場管理報告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--停車場管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---停車場管理系統(tǒng)
- 停車場管理-數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-- 停車場管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告---停車場管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--停車場管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計《停車場管理系統(tǒng)》
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計——停車場管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--停車場管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告---停車場管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--停車場管理系統(tǒng) (2)
- 停車場管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告
評論
0/150
提交評論