版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 數(shù)據(jù)結(jié)構(gòu)</b></p><p> 課 程 設(shè) 計 報 告</p><p><b> 學(xué)生成績管理系統(tǒng)</b></p><p> 學(xué) 院: 信 息 與 工 程 學(xué) 院 </p><p> 專 業(yè): 計算機科學(xué)與技術(shù) </p>
2、<p><b> 目 錄</b></p><p><b> 第一章 需求分析</b></p><p> 1.1課程設(shè)計題目及要求</p><p> 1.2課程設(shè)計思想及開發(fā)環(huán)境</p><p><b> 第二章 概要設(shè)計</b></p>&
3、lt;p><b> 2.1 總體方案</b></p><p> 2.2 模板功能分析及其外部設(shè)計</p><p> 2.3 主要數(shù)據(jù)結(jié)構(gòu)</p><p><b> 第三章 詳細(xì)設(shè)計</b></p><p> 第四章 調(diào)試與操作說明</p><p><b&
4、gt; 4.1主要模板調(diào)試</b></p><p> 4.2 系統(tǒng)缺陷及原因</p><p> 第五章 課程設(shè)計總結(jié)與體會</p><p><b> 第六章 參考文獻(xiàn)</b></p><p><b> 第一章 需求分析</b></p><p> 1.1
5、課程設(shè)計題目及要求</p><p> 題目:學(xué)生成績管理系統(tǒng)</p><p><b> 學(xué)生成績表:</b></p><p><b> 要求如下:</b></p><p> 1) 實現(xiàn)對兩個文件數(shù)據(jù)進行合并,生成新文件3.txt</p><p> 2)
6、160;抽取出三科成績中有補考的學(xué)生并保存在一個新文件4.txt</p><p> 3) 對合并后的文件3.txt中的數(shù)據(jù)按總分降序排序(至少采用兩種排序方法實現(xiàn))</p><p> 4) 輸入一個學(xué)生姓名后,能查找到此學(xué)生的信息并輸出結(jié)果(至少采用兩種查找方法實現(xiàn))</p><p> 5) 要求使用結(jié)構(gòu)體,鏈或數(shù)組等實現(xiàn)上述要求
7、.</p><p> 1.2課程設(shè)計思想及開發(fā)環(huán)境</p><p> 設(shè)計思想:本課題的實質(zhì)是完成對學(xué)生成績表的合并、提取、排序、查詢等功能,可以首先定義項目的數(shù)據(jù)結(jié)構(gòu),然后將每個功能寫成一個函數(shù)來完成對數(shù)據(jù)的操作,最后完成主函數(shù)以驗證各個函數(shù)功能并得出運行結(jié)果。可將此系統(tǒng)分為如下模塊,合并兩個信息表、從表中提取信息、降序排序模塊、按條件進行查詢、退出系統(tǒng)。</p>&l
8、t;p><b> 編寫語言: C語言</b></p><p> 開發(fā)工具: Visual C++ 6.0</p><p> VC++是微軟公司開發(fā)的一個IDE(集成開發(fā)環(huán)境)。學(xué)習(xí)VC要了解很多Windows平臺的特性并且還要掌握MFC、ATL、COM等的知識, VC基于C,C++語言,主要由是MFC組成,是與系統(tǒng)聯(lián)系非常緊密的編程工具,它兼有高級,和低
9、級語言的雙重性,功能強大,靈活,執(zhí)行效率高,幾乎可說VC在 Windows平臺無所不能。 最大缺點是開發(fā)效率不高。</p><p><b> 第二章概要設(shè)計</b></p><p><b> 2.1 總體方案</b></p><p> 2.2 模板功能分析及其外部設(shè)計</p><p> 合并
10、兩個信息主要是將兩個成績表中的成績信息先讀取,然后寫進新的</p><p> 文本中,從而建立一個新的成績表;提取信息主要是在合并信息之后所得文本中,按要求提取出所需信息,并寫進新的文本中;降序排序主要用兩種方法進行降序排序,分別為冒泡排序和快速排序;查詢信息主要是按條件輸入信息,根據(jù)信息在文本中查詢所對應(yīng)的信息并輸出結(jié)果。</p><p> 程序的外部設(shè)計主要是通過寫一個功能菜單來實
11、現(xiàn)每個功能模板的調(diào)用,從而更好的協(xié)調(diào)各個功能之間的關(guān)系和使用。</p><p> 2.3 主要數(shù)據(jù)結(jié)構(gòu)</p><p> 學(xué)生數(shù)據(jù)是用鏈表存放的,因為學(xué)生的人數(shù)是不定的,若用一個數(shù)組存放數(shù)據(jù)時,有固定長度限制,若太大則可能導(dǎo)致內(nèi)存浪費,太小就不夠用。而鏈表可動態(tài)分配內(nèi)存,根據(jù)需要而開辟內(nèi)存單元,這是本程序的鏈表數(shù)據(jù)結(jié)構(gòu),相關(guān)學(xué)生需要儲存的信息也如下;</p><p&
12、gt; typedef struct </p><p> { char name[8];</p><p> char id[2];</p><p> int chinese;</p><p> int math;</p><p> int english;</p><p>&l
13、t;b> int sum;</b></p><p><b> };student</b></p><p><b> 第三章 詳細(xì)設(shè)計</b></p><p> 本程序分為合并模板、提取模板、排序模板、查詢模板。在合并兩個信息表是,采用Unitedfile()來實現(xiàn),調(diào)用該函數(shù)打開文件1.txt并讀
14、取,再打開3.txt將從1.txt中讀取的信息寫入,完成后關(guān)閉1.txt;然后打開2.txt讀取,并寫入3.txt,完成后輸出并關(guān)閉兩個文本。</p><p> void Unitedfile()//合并1.txt和2.txt為3.txt</p><p> { FILE *fp,*p;</p><p> Student studd; </p>
15、<p> fp=fopen("1.txt","r"); /*以讀的方式打開1.txt*/</p><p> p=fopen("3.txt","w"); /*以寫的方式打開3.txt*/</p><p> while( fscanf(fp,&q
16、uot;%s%s%d%d%d",studd.name,studd.id,&studd.chinese,&studd.math,&studd.english )!=EOF)</p><p><b> {</b></p><p> fprintf(p,"%-6s %-6s %-6d %-6d %-6d\n",st
17、udd.name,studd.id,studd.chinese,studd.math,studd.english );</p><p> printf("%-6s %-6s %-6d %-6d %-6d\n",studd.name,studd.id,studd.chinese,studd.math,studd.english );</p><p> }
18、 /*讀取1.txt的數(shù)據(jù)寫入3.txt,繼續(xù)讀取直結(jié)束*/</p><p> fclose(fp); /*關(guān)閉文件1.txt*/</p><p> fp=fopen("2.txt","r"); /*以寫的方式打
19、開2.txt*/</p><p> while( fscanf(fp,"%s%s%d%d%d",studd.name,studd.id,&studd.chinese,&studd.math,&studd.english )!=EOF)</p><p><b> {</b></p><p> fp
20、rintf(p,"%-6s %-6s %-6d %-6d %-6d\n",studd.name,studd.id,studd.chinese,studd.math,studd.english );</p><p> printf("%-6s %-6s %-6d %-6d %-6d\n",studd.name,studd.id,studd.chinese,s
21、tudd.math,studd.english );</p><p> /*輸出文本3.txt中的信息*/</p><p><b> }</b></p><p> fclose(fp); /*關(guān)閉文件2.txt*/</p><p> fclose(p);
22、 /*關(guān)閉文件3.txt*/</p><p><b> }</b></p><p> 在提取信息模板中,主要是從合成后的3.txt文本中提取,先打開3.txt文本并讀取,再開打4.txt文本并寫入,通過if語句都讀取的信息進行判斷,是否符合,符合的就寫入4.txt文本中,不符合的就跳過,繼續(xù)讀取下一個信息,一次進行,知道文本結(jié)
23、束,輸出文本4.txt的信息,并關(guān)閉兩個文本。</p><p> void findout() /*提取有補考學(xué)生的信息寫入4.txt中*/</p><p><b> {</b></p><p> FILE *fp,*p;</p><p> Student studd;</p&g
24、t;<p> fp=fopen("3.txt","r");</p><p> p=fopen("4.txt","w");</p><p> while( fscanf(fp,"%s%s%d%d%d",studd.name,studd.id,&studd.chine
25、se,&studd.math,&studd.english )!=EOF)</p><p><b> {</b></p><p> if(studd.chinese<60||studd.math<60||studd.english<60)</p><p><b> {</b><
26、/p><p> fprintf(p,"%-6s %-6s %-6d %-6d %-6d\n",studd.name,studd.id,studd.chinese,studd.math,studd.english );</p><p> printf("%-6s %-6s %-6d %-6d %-6d\n",studd.name,stu
27、dd.id,studd.chinese,studd.math,studd.english );</p><p> /*輸出文本4.txt中的信息*/</p><p><b> }</b></p><p><b> }</b></p><p> fclose(fp);</p>&
28、lt;p> fclose(p);</p><p><b> }</b></p><p> 在降序排序模塊中,有兩種排序方法;一種是冒泡排序,一種是快速排序;兩種排序方法都是采用先定義函數(shù)排序方法,然后再后面調(diào)用該函數(shù)進行排順序,在此之前都會將成績信息總分計算出來,然后按總分進行降序排序,然后將排序后的信息寫入到3.txt中,并輸出,最后關(guān)閉文本。</
29、p><p><b> 冒泡排序:</b></p><p> void Bsort(int R[],int n)</p><p><b> {</b></p><p> int t, flag=1; /*當(dāng)flag為0時則停止排序*/</p>
30、<p> for(int j=1;j<n;i++) </p><p><b> { </b></p><p><b> flag=0;</b></p><p> for(int k=n-1;k>=j;k--)</p><p> if(R[k]>R[k-1])&
31、lt;/p><p><b> {</b></p><p><b> t=R[k];</b></p><p> R[k]=R[k-1];</p><p> R[k-1]=t;flag=1;</p><p><b> }</b></p>
32、<p> if(flag==0)</p><p><b> return;</b></p><p><b> } }</b></p><p> void maopao()</p><p> { int i,n;</p><p><b&g
33、t; FILE *fp;</b></p><p> fp=fopen("3.txt","r");</p><p><b> i=0;</b></p><p> while(fscanf(fp,"%s%s%d%d%d",stud[i].name,stud[i].id,
34、&stud[i].chinese,&stud[i].math,&stud[i].english )!=EOF)</p><p><b> {</b></p><p> stud[i].sum=stud[i].english+stud[i].chinese+stud[i].math;</p><p><b>
35、 i++;</b></p><p><b> }</b></p><p> fclose(fp);</p><p><b> n=i-1;</b></p><p> Bsort(stud,n); /*冒泡排序*/</p><
36、p> fp=fopen("3.txt","w"); /*將信息寫入3.txt中*/</p><p> for(int m=0;m<i;m++)</p><p><b> {</b></p><p> fprintf(fp,"%-8s %-8s %-8d
37、 %-8d %-8d %-8d\n",stud[m].name,stud[m].id,stud[m].chinese,stud[m].math,stud[m].english,stud[m].sum );</p><p><b> }</b></p><p> fclose(fp);</p><p><b>
38、};</b></p><p><b> 快速排序:</b></p><p> int Partition(int low,int high)</p><p> { int pivotkey;</p><p> Student temp;</p><p> temp=stu
39、d[low];</p><p> pivotkey=stud[low].sum;</p><p> while(low<high)</p><p> { while(low<high&&stud[high].sum<=pivotkey)--high;</p><p> stud[low]=stud
40、[high];</p><p> while(low<high&&stud[low].sum>=pivotkey)++low;</p><p> stud[high]=stud[low]; }</p><p> stud[low]=temp;</p><p> return low;
41、 }</p><p> void QSort(int low,int high) /*快速排序*/</p><p> { int privotloc;</p><p> if(low<high) {</p><p> privotloc=Partition(low,high);&
42、lt;/p><p> QSort(low,privotloc-1);</p><p> QSort(privotloc+1,high); } }</p><p> void kuaisu() /*讀取文件排序后將結(jié)果寫入3.txt*/</p><p> { int i,low,high;<
43、;/p><p><b> FILE *fp;</b></p><p> fp=fopen("3.txt","r");</p><p><b> i=0;</b></p><p> while(fscanf(fp,"%s%s%d%d%d"
44、,stud[i].name,stud[i].id,&stud[i].chinese,&stud[i].math,&stud[i].english )!=EOF)</p><p> { stud[i].sum=stud[i].english+stud[i].chinese+stud[i].math;</p><p><b> i++; }<
45、;/b></p><p> fclose(fp);low=0; high=i-1;</p><p> QSort(low,high); /*快速排序*/</p><p> fp=fopen("3.txt","w"); /*將排序后的數(shù)據(jù)寫入3.txt中*/</p&
46、gt;<p> for(int j=0;j<i;j++)</p><p> { fprintf(fp,"%-8s %-8s %-8d %-8d %-8d %-8d\n",stud[j].name,stud[j].id,stud[j].chinese,stud[j].math,stud[j].english,stud[j].sum );</p>
47、<p> }fclose(fp); }</p><p> 在查詢模板中,也存在兩種查詢方式;一種是在排序之后查詢,一種是在排序之前的信息中查詢;兩種方法效果相同,都是輸入一個姓名然后根據(jù)信息在信息表中查找改學(xué)生的信息,并輸出信息。</p><p> void autofindoutstudent()/</p><p><b>
48、 {</b></p><p> int n,flag=0,k;</p><p> char Name[30];</p><p><b> n=i-1;</b></p><p> cin>>Name;</p><p> for(k=1;k<=n;k++)<
49、;/p><p><b> {</b></p><p> if(strcmp(stud[k].name,Name)==0)</p><p><b> {</b></p><p><b> flag=1;</b></p><p> cout<&l
50、t;"-------姓名-------學(xué)號-------語文-------數(shù)學(xué)-------英語-------總分--------"<<endl;</p><p> cout<<" "<<stud[k].name<<" "<<stud[k].id<<"
51、; ";</p><p> cout<<stud[k].chinese<<" "<<stud[k].math<<" "<<stud[k].english<<" "<<stud[k].sum<&
52、lt;endl;</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(flag==0)</p><p> cout<<"無此學(xué)
53、生相關(guān)信息"<<endl;</p><p><b> }</b></p><p> 要實現(xiàn)各個功能之間的調(diào)用,在主函數(shù)中使用while、if、case等語句進行調(diào)用是各個功能之間串聯(lián)起來,把各個功能看成單個的事件,利用case語句來對各個事件進行選擇;利用printf輸出語句來形成主菜單界面。</p><p> in
54、t main() </p><p><b> { </b></p><p> int choice; </p><p><b> while(1) </b></p><p><b> { </b></p><p><b> /*主菜
55、單*/</b></p><p> if(sign3==0)</p><p><b> {</b></p><p> printf("*******************************************************************************\n");<
56、/p><p> printf("***************************** 學(xué)生成績管理系統(tǒng) ******************************\n");</p><p> printf("********************* 1. 合并1和2得3 *************
57、****\n"); </p><p> printf("********************* 2. 把3中有成績不及格的放入新文件4中 *****************\n"); </p><p> printf("********************* 3. 把3中成績總分按降序排列 ******
58、***********\n"); </p><p> printf("********************* 4. 輸入姓名,查找該成績信息并輸出結(jié)果 *****************\n");</p><p> printf("********************* 5. 退出系統(tǒng)
59、 *****************\n");</p><p> printf("*******************************************************************************\n");</p><p> printf("請輸入(1-5)選擇要使用的功能:"); &
60、lt;/p><p><b> }</b></p><p><b> sign3=1;</b></p><p> scanf("%d",&choice);</p><p> switch(choice) </p><p> {
61、 </p><p><b> case 1: </b></p><p> Unitedfile();</p><p><b> sign=1;</b></p><p> cout<<"
62、;1和2合并成功!"<<endl;</p><p> cout<<"請選擇下一步操作:"<<endl;</p><p><b> break; </b></p><p><b> case 2: </b></p><p>
63、if(sign==0)</p><p><b> {</b></p><p> cout<<"請執(zhí)行操作1后再執(zhí)行此項操作!"<<endl;</p><p> cout<<"請選擇下一步操作:"<<endl;</p><p>&
64、lt;b> break;</b></p><p><b> }</b></p><p> cout<<"4.txt生成成功!"<<endl;;</p><p> findout();</p><p> cout<<"請選擇下一步
65、操作:"<<endl;</p><p><b> break; </b></p><p><b> case 3:</b></p><p> if(sign==0)</p><p><b> {</b></p><p>
66、cout<<"請執(zhí)行操作1后再執(zhí)行此項操作!"<<endl;</p><p> cout<<"請選擇下一步操作:"<<endl;</p><p><b> break;</b></p><p><b> }</b></p&g
67、t;<p> sortfile();</p><p> cout<<"降序排列成功!"<<endl;</p><p> cout<<"請選擇下一步操作:"<<endl;</p><p><b> sign1=1;</b></p&g
68、t;<p><b> break; </b></p><p><b> case 4:</b></p><p><b> while(1)</b></p><p><b> {</b></p><p><b> char
69、c;</b></p><p> findoutstudent();</p><p> cout<<"繼續(xù)查找或返回主菜單請輸入Y/N:"<<endl;</p><p><b> cin>>c;</b></p><p> if(c=='N&
70、#39;||c=='n')break;</p><p><b> }</b></p><p> system("cls");</p><p><b> sign3=0;</b></p><p><b> break;</b></
71、p><p><b> case 5:</b></p><p><b> exit(0);</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> } &
72、lt;/b></p><p><b> return 0;</b></p><p><b> } </b></p><p> 第四章 調(diào)試與操作說明</p><p><b> 4.1主要模板調(diào)式</b></p><p><b&g
73、t; 菜單顯示圖:</b></p><p> 合并兩個成績表,選擇菜單1,調(diào)試結(jié)果:</p><p> 提取有成績不及格學(xué)生的信息,選擇功能2,調(diào)試結(jié)果:</p><p> 降序排序,將3.txt中學(xué)生成績總分計算出,選擇功能1和功能2,調(diào)試結(jié)果一樣:</p><p><b> 選擇1時:</b>&
74、lt;/p><p><b> 選擇2時:</b></p><p> 排序后,進行查詢功能,都是輸入姓名查找,選擇功能1和功能2,調(diào)試完成后,如果還要繼續(xù)查詢選擇Y,不查詢選擇N退到主菜單:</p><p><b> 選擇1:</b></p><p><b> 選擇2時:</b&g
75、t;</p><p><b> 選擇Y繼續(xù)查詢時:</b></p><p><b> 不查詢退到主菜單。</b></p><p> 退出系統(tǒng),選擇5,調(diào)試之后按任意鍵關(guān)閉界面:</p><p> 4.2 系統(tǒng)缺陷及原因</p><p> 缺陷:該系統(tǒng)功能存在一些缺陷
76、,在第一步到第二步過程中,沒有對成績的總分進行計算,所以在第三部排序時,用第一種方法排序過后,再用第二種繼續(xù)排一次,查看輸出結(jié)構(gòu),在結(jié)果中出現(xiàn)亂碼現(xiàn)像。</p><p> 原因:因為在排序過程中讀取信息的順序是按照沒用總分的樣子讀取,當(dāng)排序過后,成績總分計算出來了,在繼續(xù)第二次排序,讀取存在總分的信息表使得之前都去順序方法變得混亂,有些讀取信息與定義的類型發(fā)生沖突,導(dǎo)致出現(xiàn)亂碼。</p><
77、p> 第五章課程設(shè)計總結(jié)與體會</p><p> 本系統(tǒng)設(shè)計是為了合并兩個信息表,然后對信息表進行排序,從信息中查詢信息。</p><p> 由于C語言學(xué)的不扎實,編程時遇到了很多困難,翻了很久的資料才完成,開始調(diào)試的時候經(jīng)常出現(xiàn)很多的錯誤,經(jīng)常容易煩躁,但是經(jīng)過一段的時間的鍛煉使得我更有信息和勇氣去面對困難,并一步一步的解決困難。當(dāng)整個程序開始運行的時候,是非常有成就感的。整
78、個程序還有很多不足的地方。在程序設(shè)計方面,逐漸感覺到模塊化設(shè)計的重要性,應(yīng)該分析出功能塊,然后對其細(xì)節(jié)中的共性和特性作分析。</p><p> 這次的設(shè)計,讓我大大地感覺到,對于程序設(shè)計中,對語言再熟悉也比不過在設(shè)計中算法和結(jié)構(gòu)分析的真知灼見。當(dāng)然,成功的程序設(shè)計是要建立在熟悉語言的基礎(chǔ)之上的。平時語言的基本功要扎實。而每一次程序設(shè)計的經(jīng)營能大大地增加對語言的熟悉和感知。程序設(shè)計的技能來自多方面,每一次的親自實
79、踐、思考揣摩、刨根問底就會讓自己更加清楚所欠缺的是什么。所以,現(xiàn)在覺得在設(shè)計實踐中作為參考的書冊閱讀和研究遠(yuǎn)遠(yuǎn)比過單純的閱讀,因為它是在最緊迫的時間上填補自己最緊迫的不足。 </p><p><b> 第六章參考文獻(xiàn)</b></p><p> 譚浩強 《C程序設(shè)計(第三版)》,北京:清華大學(xué)出版社</p><p> 李根強 《數(shù)據(jù)結(jié)構(gòu)(C
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(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è)計-學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計----學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計——學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--- 學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--學(xué)生成績管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告--學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告---學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---學(xué)生成績管理系統(tǒng)(部分)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-學(xué)生成績查詢系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---學(xué)生成績管理問題
- 數(shù)據(jù)結(jié)構(gòu)學(xué)生成績管理課程設(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)之學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--學(xué)生成績管理程序的設(shè)計與實現(xiàn)
評論
0/150
提交評論