




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 電子信息學(xué)院課程設(shè)計報告設(shè)計名稱: 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 姓 名: 學(xué) 號: 專業(yè)班級: 2013級軟件工程 班 系 (院): 計算機與通信工程系 設(shè)計時間: 20142015學(xué)年第二學(xué)期 設(shè)計地點: 知行樓 軟件基礎(chǔ)實驗室 成績:指導(dǎo)教師評語: 簽名: 年 月 日 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告 第 26 頁,共 26頁1課程設(shè)計目的1、訓(xùn)練學(xué)生靈活應(yīng)用所學(xué)數(shù)據(jù)結(jié)構(gòu)知識,獨立完成問題分析,結(jié)合數(shù)據(jù)結(jié)構(gòu)理論知識,編寫程序求解指定問題。 2.初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能;3.提高綜合運用所學(xué)的理論知識和方法獨立分析和解決問題的能力;4.訓(xùn)練用系統(tǒng)的觀點和軟件開發(fā)一
2、般規(guī)范進(jìn)行軟件開發(fā),鞏固、深化學(xué)生的理論知識,提高編程水平,并在此過程中培養(yǎng)他們嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和良好的工作作風(fēng)。2課程設(shè)計任務(wù)與要求:任務(wù)學(xué)生成績管理 問題描述:已知某學(xué)生成績表中現(xiàn)有N位同學(xué)的成績(要求各人數(shù)據(jù)不同),如:知識點提示: 在線性表中刪除某個指定元素,并在規(guī)定位置插入一個新元素,要求操作后的結(jié)果按元素(姓名)升序的方式顯示出來。學(xué)號姓名成績01101李平7501202王露7001205張強8501118曹雨90 現(xiàn)需要刪除已轉(zhuǎn)學(xué)的某位同學(xué)的成績,同時添加某位同學(xué)的成績(學(xué)號、姓名、成績自定),插入位置按姓名升序排列。 請根據(jù)所學(xué)過的線性表知識用C/C+編程實現(xiàn)此操作。程序要求:
3、(1)現(xiàn)有N位同學(xué)的數(shù)據(jù)要求從數(shù)據(jù)文件中讀入,不用交互方式錄入;(2)擬刪除同學(xué)的姓名及新添加同學(xué)的數(shù)據(jù)采用交互方式輸入;(3)刪除及插入操作完畢,需將成績表中的所有記錄按姓名升序方式顯示出來;(4)將更新后的成績表保存到另一個數(shù)據(jù)文件中;(5)可以增加功能:如修改某位同學(xué)的成績。要求:1、在處理每個題目時,要求從分析題目的需求入手,按設(shè)計抽象數(shù)據(jù)類型、構(gòu)思算法、通過設(shè)計實現(xiàn)抽象數(shù)據(jù)類型、編制上機程序和上機調(diào)試等若干步驟完成題目,最終寫出完整的分析報告。前期準(zhǔn)備工作完備與否直接影響到后序上機調(diào)試工作的效率。在程序設(shè)計階段應(yīng)盡量利用已有的標(biāo)準(zhǔn)函數(shù),加大代碼的重用率。 2、設(shè)計的題目要求達(dá)到一定工
4、作量(300行以上代碼),并具有一定的深度和難度。3、程序設(shè)計語言推薦使用C/C+,程序書寫規(guī)范,源程序需加必要的注釋;4、每位同學(xué)需提交可獨立運行的程序;5 、每位同學(xué)需獨立提交設(shè)計報告書(每人一份),要求編排格式統(tǒng)一、規(guī)范、內(nèi)容充實,不少于10頁(代碼不算);6、課程設(shè)計實踐作為培養(yǎng)學(xué)生動手能力的一種手段,單獨考核。3課程設(shè)計說明書一 需求分析要求用到數(shù)據(jù)結(jié)構(gòu)課上學(xué)到的線性表的知識,所以就要充分而清晰的理解關(guān)于線性表的知識。要求實現(xiàn)的基本功能很簡單,只有刪除和插入,增加功能也不過是加上修改。這些在數(shù)據(jù)結(jié)構(gòu)課上已經(jīng)講過,只要能夠理解關(guān)于線性表的幾個相關(guān)的基本算法就可以了。問題是將輸入的信息保
5、存入文件和從文件輸出。這里基本是自學(xué)的內(nèi)容,而且要考慮到是否要自行選擇保存的磁盤。綜上,做這個課題,要具備的知識就是線性表的基本算法,文件的保存和讀取算法,必要的C或者C+知識(本次我將使用C實現(xiàn)),以及豐富的程序調(diào)適經(jīng)驗。二 概要設(shè)計 首先由于程序中要有對學(xué)生信息的增加和減少,定義一個全局變量n,在此程序的任意的模塊中均可以使用。宏定義,用LEN來代替開辟地址空間,定義三個結(jié)構(gòu)體變量,學(xué)號num,姓名name,分?jǐn)?shù)marks. 設(shè)計實現(xiàn)主要功能的函數(shù)有:創(chuàng)建學(xué)生信息的子函數(shù)creat();排序的子函數(shù)print();查找的子函數(shù)search();文件保存的子函數(shù)wfile();文件讀取的子函
6、數(shù)frile();插入信息的子函數(shù)insert();修改信息的子函數(shù)xg();刪除轉(zhuǎn)學(xué)學(xué)生的信息的子函數(shù)del();然后在main()函數(shù)中使用一個switch()語句實現(xiàn)對各個子函數(shù)的調(diào)用。為了使用的方便,程序中將設(shè)計三種排序的方式,按照學(xué)號排序funnum(),按照姓名的首字母排序funname(),按照分?jǐn)?shù)排序funmarks()。 在排序子函數(shù)print()中還要用一個switch()語句用于對不同的排序方法的函數(shù)的調(diào)用.為了直觀的看到操作以后的結(jié)果,還要有一個輸出顯示的函數(shù)listall()。程序運行中,為了保持屏幕的清楚和美觀,時刻進(jìn)行清屏也是必要的。抽象數(shù)據(jù)類型線性表的定義如下:
7、ADT List 數(shù)據(jù)對象:D=ai| ai ElemSet,i=1,2,3,n,n0數(shù)據(jù)關(guān)系:R1=<ai-1,ai>| ai-1,ai D,i=1,2,3,,n基本操作:Insert(&L,i,j)初始條件:線性表L已存在,1in+1。操作結(jié)果:在L中第i個位置之前插入新的數(shù)據(jù)元素j,L的長度加1。 Del(&L,i,j)初始條件:線性表L已存在,1in。操作結(jié)果:刪除L的第i個數(shù)據(jù)元素,L的長度減1Xg(&L,i,j)初始條件:線性表L已存在。操作結(jié)果:用新的輸入數(shù)據(jù)項j代替原有的指定要修改的數(shù)據(jù)項i。Search(&L,i,e)初始條件:線性
8、表L已存在。操作結(jié)果:查找指定的某元素i,并將值賦給e,用e 輸出。三 詳細(xì)設(shè)計1)宏定義,定義全局變量、結(jié)構(gòu)體:#define LEN sizeof(struct student)/*宏定義*/static int n;/*n為靜態(tài)全局變量,本文件模塊中各函數(shù)均可使用它*/char numstr100;/*全局變量*/struct student/*定義結(jié)構(gòu)體*/long num;char name10;double marks; stu1000,temp;2)主函數(shù)的算法如下:void main()jm:system("cls");dochoice=getchar();
9、getchar();switch(choice)/*switch語句用于循環(huán)選擇所要的選項*/case '1':creat();goto jm;break;case '2':print();goto jm;break;case '3':search();goto jm;break;case '4':wfile();goto jm;break;case '5':frile();goto jm;break;case '6':insert();goto jm;break;case '7':
10、xg();goto jm;break;case '8':del();goto jm;break;case '0':exit(0); default: /*用戶使用錯誤*/puts("nEnter only selections listed");break;/*結(jié)束switch語句*/while(1);/*結(jié)束while語句*/*結(jié)束main函數(shù)*/3)創(chuàng)建學(xué)生信息的算法如下:creat(void)/*創(chuàng)建學(xué)生成績信息*/while(ch='Y'|ch='y')gets(numstr);/輸入學(xué)號stun.nu
11、m=atoi(numstr);gets();/輸入姓名gets(numstr);/輸入成績stun+.marks=atof(numstr);ch=getchar();getchar();/*用于輸入y或者n*/ 4)排序函數(shù)的算法如下:int print(void)/*排序輸出*/ch=getchar();/*輸入a,b,c的語句*/switch(ch)/*選擇排序的方式*/case 'a':funname();/*調(diào)用按姓名查找的函數(shù)*/getchar();break;case 'b': funmarks();/*調(diào)用按成績查找的函數(shù)*/ge
12、tchar();break;case 'c':funnum();/*調(diào)用按學(xué)號查找的函數(shù)*/getchar();break;funname(void)/*按照姓名排序*/ if(n<1)printf("tt該文件為空!n");elsefor(i=0;i<n;i+)for(j=i+1;j<n;j+)if(strcmp(,)>0)temp=stui;stui=stuj;stuj=temp;funmarks(void)/*按照成績排序*/if(n<1)printf("tt該文件為空!n&q
13、uot;);elsefor(i=0;i<n;i+)for(j=i+1;j<n;j+)if(stui.marks>stuj.marks)temp=stui;stui=stuj;stuj=temp;funnum(void)/*按照學(xué)號排序*/if(n<1)printf("tt該文件為空!n");elsefor(i=0;i<n;i+)for(j=i+1;j<n;j+)if(stui.num>stuj.num)temp=stui;stui=stuj;stuj=temp;5)寫入文件的算法如下:wfile(void)/*寫入文件*/ FILE
14、 *fptr; if(n<1) printf("t文件為空,無法寫操作!n"); else fwrite(stu,sizeof(stu0),n,fptr); fclose(fptr);6)讀取文件的算法如下:frile(void)/*讀出文件*/FILE *fptr;while(fread(&stui,sizeof(stu0),1,fptr)=1)i+;n=i;fclose(fptr);7)查找的算法如下:search(void)/*查找*/flag=0; for(i=0;i<n;i+)if(strcmp(numstr,)=0)|ato
15、l(numstr)=stui.num)printf("%ld",stui.num);printf("%s ",);printf("%.2f ",stui.marks);flag=1; getchar();return 0;8)插入的算法如下:insert(void)/*插入*/ gets(numstr);stun.num=atoi(numstr);gets();gets(numstr);stun+.marks=atof(numstr); funname(); 9)刪除的算法如下:del(void)
16、/*刪除*/ printf("tt請輸入要刪除的學(xué)號:n"); gets(numstr); for(i=0;i<n;i+) if(stui.num=atol(numstr) j=i; flag=1;if(flag=1) for(i=j;i<n;i+) stui=stui+1; n-; 10)修改的算法如下:xg(void)/*修改*/flag=0; char ch; gets(numstr); for(i=0;i<n;i+) if(stui.num=atol(numstr) j=i; flag=1; if(flag=1) switch(ch) case &
17、#39;1': printf("t請輸入修改后的姓名:"); gets(); break; case '2': printf("t請輸入修改后的成績: "); gets(numstr); stuj.marks=atof(numstr);break; case '0': return 0; 11)各個模塊之間的調(diào)用關(guān)系如下:主函數(shù)創(chuàng)建信息瀏覽信息寫入文件讀取文件修改信息刪除信息插入信息查找信息 按姓名排序按學(xué)號排序按成績排序輸出顯示信息求平均分?jǐn)?shù)按姓名排序按姓名排序按姓名排序四 設(shè)計與調(diào)試分析從上面
18、的算法和調(diào)用關(guān)系可以看出,這個程序的基本樣子已經(jīng)非常的清楚,但是真正的程序中還要考慮各種限制條件。例如在查找的過程中,可能不存在要查找的信息,就要給出不存在此信息的提示等。還有就是涉及到返回值得問題和程序中所要用到的變量的問題。在調(diào)試的過程中所遇到的問題很多,其中最難的兩個問題是給出的六個警告錯誤,在5.0的版本下就是兩個使得程序無法運行的錯誤。其中五個是因為在變量的聲明中因為使用了浮點型和雙精度型兩種而造成在某些模塊中兩個變量相互賦值時類型不匹配。另一個是在查找的子函數(shù)中忘記了需要的返回語句,return 1.五 用戶手冊1 本程序可以在vc+5.0和vc+6.0 的環(huán)境下運行。2 在vc中
19、創(chuàng)建一個工程,將源程序復(fù)制到.cpp中,編譯鏈接就可以。3 選擇編譯、運行以后會出現(xiàn)運行界面,選擇相應(yīng)的選項,根據(jù)提示即可進(jìn)行演示。界面如下:4 創(chuàng)建信息就是把最開始要輸入的信息輸入到系統(tǒng)里。5 瀏覽信息就是按照要求的順序瀏覽已經(jīng)輸入的信息。6 保存信息就是把輸入的信息保存如指定的磁盤。7 打開文件就是把保存的信息從磁盤讀取保存的信息。8 插入,修改,刪除分別是對指定的某信息進(jìn)行相應(yīng)的操作。六 測試成果保存完畢,關(guān)機以后下次重新啟動此程序的情況:因為沒有打開文件操作,所以在瀏覽的時候提示為空文件。當(dāng)操作5打開文件以后,再次瀏覽的時候就可以瀏覽到在文件D:data,txt中保存的文件內(nèi)容。七 附
20、錄(源程序清單)/*計算機051班 XXX的課程設(shè)計題目,選題是:學(xué)生成績管理系統(tǒng)*/#include "stdio.h"/*頭文件*/#include "string.h"#include "stdlib.h"#define LEN sizeof(struct student)/*宏定義*/static int n;/*n為靜態(tài)全局變量,本文件模塊中各函數(shù)均可使用它*/char numstr100;/*全局變量*/struct student/*定義結(jié)構(gòu)體*/long num;char name10;double marks; st
21、u1000,temp;creat(void)/*創(chuàng)建學(xué)生成績信息*/char ch='y'while(ch='Y'|ch='y')printf("tt請輸入學(xué)號:");gets(numstr);stun.num=atoi(numstr);printf("tt請輸入姓名:");gets();printf("tt請輸入成績:");gets(numstr);stun+.marks=atof(numstr);printf("tt是否繼續(xù)添加?(y/n)");
22、ch=getchar();/*用于輸入y或者n*/getchar(); printf("tt按任意鍵返回.");getchar();/*按鍵返回的輸入函數(shù)*/return 0; int print(void)/*排序*/int funnum(void);/*函數(shù)聲明*/int funname(void);/*函數(shù)聲明*/int funmarks(void);/*函數(shù)聲明*/char ch;printf("ta.按姓名首字母排序 b.按成績排序 c.按學(xué)號排序n");printf("tt請按鍵選擇");ch=getchar();getc
23、har();/*輸入a,b,c的語句*/switch(ch)/*選擇排序的方式*/case 'a':funname();/*調(diào)用按姓名排序的函數(shù)*/printf("t按任意鍵返回.");getchar();break;case 'b': funmarks();/*調(diào)用按成績排序的函數(shù)*/printf("t按任意鍵返回.");getchar();break;case 'c':funnum();/*調(diào)用按學(xué)號排序的函數(shù)*/printf("t按任意鍵返回.");getchar();break;
24、default:printf("tt對不起選擇錯誤n");printf("t按任意鍵返回.");getchar();break;return 0;funname(void)/*按照姓名排序*/ int i,j; int listall(void);/*函數(shù)聲明*/if(n<1)printf("tt該文件為空!n");elsefor(i=0;i<n;i+)/*按照姓名排序的循環(huán)語句*/for(j=i+1;j<n;j+)if(strcmp(,)>0) /*比較姓名的首字母進(jìn)行相應(yīng)
25、交換操作*/temp=stui;stui=stuj;stuj=temp;listall();/*調(diào)用listall函數(shù)顯示排序以后的信息*/return 0;funmarks(void)/*按照成績排序*/ int i,j; int listall(void);/*函數(shù)聲明*/if(n<1)printf("tt該文件為空!n");elsefor(i=0;i<n;i+)/*按照成績進(jìn)行排序的循環(huán)語句*/for(j=i+1;j<n;j+)if(stui.marks>stuj.marks)/*如果前面的成績大于后面的就進(jìn)行交換*/temp=stui;stu
26、i=stuj;stuj=temp;listall();/*調(diào)用listall函數(shù)顯示盤許以后的信息*/return 0;funnum(void)/*按照學(xué)號排序*/ int i,j; int listall(void);/*函數(shù)聲明*/if(n<1)printf("tt該文件為空!n");elsefor(i=0;i<n;i+)/*按照學(xué)號進(jìn)行排序的循環(huán)語句*/for(j=i+1;j<n;j+)if(stui.num>stuj.num)temp=stui;stui=stuj;stuj=temp;listall();/*調(diào)用listall函數(shù)顯示盤許以后
27、的信息*/return 0;double sub(void)/*求總分?jǐn)?shù)的函數(shù)*/int i;double sub=0;for(i=0;i<n;i+)sub+=stui.marks;return sub;/*把學(xué)生的分?jǐn)?shù)相加,返回總分?jǐn)?shù)sub*/listall(void)/*輸出顯示排序的信息*/int j;double mark;if(n<0)printf("ntt空文件!");printf("t按任意鍵返回.");getchar();elseprintf("t學(xué)號 姓名 成績");for(j=0;j<n;j+)p
28、rintf("nt%ldt",stuj.num);printf("t%st",);printf("t%.2f",stuj.marks);mark=sub()/n;/*調(diào)用求總分?jǐn)?shù)的子函數(shù),除以學(xué)生人數(shù)n求出平均分*/printf("nt平均分是:%.2f",mark);printf("n");return 0; wfile(void)/*寫入文件*/ FILE *fptr; if(n<1) printf("t文件為空,無法寫操作!n"); printf
29、("t按任意鍵返回.");getchar();return 0; printf("t請輸入要保存的路徑及文件名(例如c:stus.txt):"); scanf("%s",numstr);getchar();/*輸入需要保存的磁盤,可以是c,d,e等任意磁盤*/ if(fptr=fopen(numstr,"wb")=NULL) printf("ntt無法打開!%sn",numstr); printf("t按任意鍵返回.");getchar(); else fwrite(stu,
30、sizeof(stu0),n,fptr);/*把信息寫入磁盤的函數(shù)*/ fclose(fptr); printf("tt有%d個記錄保存成功!n",n); printf("t按任意鍵返回.");getchar();return 0;frile(void)/*讀出文件*/FILE *fptr;int i=0; printf("t請輸入要打開的文件(例如c:stus.txt):");scanf("%s",numstr);getchar();if(fptr=fopen(numstr,"rb")=NUL
31、L)printf("ntt不能打開%s!n",numstr);printf("t按任意鍵返回.");getchar();elsewhile(fread(&stui,sizeof(stu0),1,fptr)=1)/*從磁盤讀取數(shù)據(jù)的函數(shù)*/i+;n=i;printf("tt成功打開%d個記錄!n",i);fclose(fptr);printf("t按任意鍵返回.");getchar();return 0;search(void)/*查找*/ int i,flag=0;printf("t請輸入要查詢的
32、關(guān)鍵字。例:姓名、學(xué)號 n");gets(numstr);for(i=0;i<n;i+)if(strcmp(numstr,)=0)|atol(numstr)=stui.num)/*把要查找的信息和存儲的信息進(jìn)行比較,如果相同就找到,并輸出。用|表示可以有姓名或者學(xué)號兩種查找方式。*/printf("t學(xué)號tt姓名tt成績n");printf("t%ldtt",stui.num);printf("t%stt",);printf("t%.2fn",stui.marks
33、);flag=1;printf("t按任意鍵返回."); getchar();return 0;if(flag!=1)/*當(dāng)計數(shù)不為1的時候,查不到所要的信息*/printf("tt不存在這樣的信息!n");printf("t按任意鍵返回.");getchar();return 1;insert(void)/*插入*/ int funnum(void);printf("t請輸入學(xué)號:");gets(numstr);stun.num=atoi(numstr);printf("t請輸入姓名:");g
34、ets();printf("t請輸入成績:");gets(numstr);stun+.marks=atof(numstr); funname();/*調(diào)用按照姓名排序的函數(shù),顯示添加以后所有學(xué)生的信息,并且按照姓名排序的方式輸出*/ printf("t按任意鍵返回."); getchar();return 0;del(void) /*刪除*/ char ch; int i,j,flag; printf("tt請輸入要刪除的學(xué)號:n"); gets(numstr); printf("tt確定?(y/n)n&q
35、uot;); ch=getchar();getchar(); if(ch='y'|ch='Y') for(i=0;i<n;i+) if(stui.num=atol(numstr)/*比較學(xué)號相同時找到相應(yīng)得信息進(jìn)行刪除*/ j=i; flag=1;if(flag=1) printf("t正在刪除,請稍后.n"); for(i=j;i<n;i+) stui=stui+1; printf("tt刪除成功!n"); n-; funname(); printf("t按任意鍵返回.");getchar
36、(); return 0; xg(void)/*修改*/ int i,j,flag=0; char ch; printf("t輸入您要修改的學(xué)號:"); gets(numstr); for(i=0;i<n;i+) if(stui.num=atol(numstr) j=i; flag=1; if(flag=1) printf("t0.退出修改1.姓名2.成績n"); printf("t請輸入您要修改的項:n"); ch=getchar();getchar(); switch(ch)/*循環(huán)語句選擇相應(yīng)的修改選項*/ case
37、39;1': printf("t請輸入修改后的姓名:"); gets();printf("修改成功n"); break; case '2': printf("t請輸入修改后的成績: "); gets(numstr); stuj.marks=atof(numstr);printf("tt修改成功n"); break; case '0': return 0; if(flag!=1) printf("t不存在這樣的信息.n");printf("t按任意鍵返回.");getchar(); return 0; void main() char choice;jm:system("cls");printf("n");p
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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ù)學(xué)教案-分?jǐn)?shù)的再認(rèn)識 北師大版
- 六年級下冊數(shù)學(xué)教案 用不同的知識解答應(yīng)用題 西師大版
- 二年級下冊數(shù)學(xué)教案-5.2 被減數(shù)中間有0的連續(xù)退位減法| 青島版(五四學(xué)制)
- 口腔門診勞動合同(2025年版)
- 一年級下冊數(shù)學(xué)教案-動手做(一)2 北師大版
- 六年級下冊數(shù)學(xué)教案-總復(fù)習(xí)-四則運算的意義和法則|北師大版
- 三年級上冊數(shù)學(xué)教案-用兩步連乘解決實際問題∣蘇教版
- 2024年張緊裝置項目資金申請報告代可行性研究報告
- 2025年華北理工大學(xué)輕工學(xué)院單招職業(yè)傾向性測試題庫帶答案
- 數(shù)學(xué)-廣州市白云區(qū)2025年高三下學(xué)期期初綜合訓(xùn)練試題+答案
- 2024年人教版九年級英語單詞默寫單(微調(diào)版)
- 2024至2030年中國海洋化工產(chǎn)業(yè)發(fā)展動態(tài)及投資前景分析報告
- 22G101三維彩色立體圖集
- 【絕味鴨脖公司的存貨管理問題及完善對策8500字】
- 山東省技能大賽青島選拔賽-世賽選拔項目52樣題(平面設(shè)計技術(shù))
- 防排煙規(guī)范培訓(xùn)
- 2024年江蘇農(nóng)牧科技職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案1套
- 2024年江蘇農(nóng)林職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫新版
- DL-T 1476-2023 電力安全工器具預(yù)防性試驗規(guī)程
- 飛灰處置及資源化綜合利用項目可行性研究報告模板-備案拿地
- 2024年咨詢工程師考試大綱
評論
0/150
提交評論