成績(jī)統(tǒng)計(jì)系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第1頁(yè)
成績(jī)統(tǒng)計(jì)系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第2頁(yè)
成績(jī)統(tǒng)計(jì)系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第3頁(yè)
成績(jī)統(tǒng)計(jì)系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第4頁(yè)
成績(jī)統(tǒng)計(jì)系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、洛陽(yáng)理工學(xué)院課程設(shè)計(jì)報(bào)告課程名稱數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_設(shè)計(jì)題目 _ 成績(jī)統(tǒng)計(jì)系統(tǒng)_專 業(yè) _ 計(jì)算機(jī)科學(xué)與技術(shù)_課程設(shè)計(jì)任務(wù)書設(shè)計(jì)題目: 給出 n 個(gè)學(xué)生的 m 門考試的成績(jī)表,每個(gè)學(xué)生的信息由學(xué)號(hào)、姓名以及各科成績(jī)組成。對(duì)學(xué)生的考試成績(jī)進(jìn)行有關(guān)統(tǒng)計(jì),并打印統(tǒng)計(jì)表。設(shè)計(jì)內(nèi)容與要求:( 1)按總數(shù)高低次序,打印出名次表,分?jǐn)?shù)相同的為同一名次;( 2)按名次打印出每個(gè)學(xué)生的學(xué)號(hào)、姓名、總分以及各科成績(jī)。課程設(shè)計(jì)評(píng)語(yǔ)成績(jī) :指導(dǎo)教師:_洛陽(yáng)理工學(xué)院 課程設(shè)計(jì)報(bào)告1?問(wèn)題描述給出 n 個(gè)學(xué)生的 m 門考試的成績(jī)表,每個(gè)學(xué)生的信息由學(xué)號(hào)、姓名以及各科成績(jī)組成。對(duì)學(xué)生的考試成績(jī)進(jìn)行有關(guān)統(tǒng)計(jì),并打印統(tǒng)計(jì)表。2.

2、 基本要求(1) 按總數(shù)高低次序,打印出名次表,分?jǐn)?shù)相同的為同一名次;(2) 按名次打印出每個(gè)學(xué)生的學(xué)號(hào)、姓名、總分以及各科成績(jī)。3、數(shù)據(jù)結(jié)構(gòu)類型定義struct Stude ntchar m_Name20;un sig ned int m_ID;float m_Scorem;4?總體設(shè)計(jì)(1 )模塊劃分 :<1> 初始化函數(shù): Node* In it();<2> 直接插入法排序函數(shù): float* Sort();<3> 相同名次處理函數(shù): int Del_Same();<4> 打印函數(shù)void Display 。;1洛陽(yáng)理工學(xué)院 課程設(shè)計(jì)報(bào)告&

3、lt;5> 主函數(shù): void main()2洛陽(yáng)理工學(xué)院 課程設(shè)計(jì)報(bào)告2、組成框圖:歡迎進(jìn)入成績(jī)統(tǒng)計(jì)系統(tǒng)排序處理相同分?jǐn)?shù)3、流程圖<1> 初始化函數(shù): Node* Ini t();<2>直接插入法: float* Sort();A ( rad nSi Agf°.,print! 廣沾輸入第驗(yàn)L-MultipleiMultipkxIprinrtT成功 數(shù) ?_Aradlej I+iretiirnAradt.3洛陽(yáng)理工學(xué)院 課程設(shè)計(jì)報(bào)告<3>相同名次處理: int Del_Same(); <4>打印函數(shù)voidDisplay 。;5.

4、 詳細(xì)設(shè)計(jì)1. 聲明一個(gè)結(jié)構(gòu)體:typedef struct Stude nt Node;2. 錄入數(shù)據(jù)將復(fù)制形式修改為指針訪問(wèn)形式,計(jì)算成績(jī)總和寫入到sum 中3. 打印,按名次從第一名到最后一名。4. 下直接插值排序法4洛陽(yáng)理工學(xué)院 課程設(shè)計(jì)報(bào)告會(huì)用到 "哨兵 ", nSize 表示 grade 中實(shí)際元素的個(gè)數(shù)。5洛陽(yáng)理工學(xué)院 課程設(shè)計(jì)報(bào)告5. 處理相同成績(jī)的名次將 sumn 中的不重復(fù)的元素放到graden 中, 函數(shù)返回 grade 中實(shí)際元素的個(gè)數(shù)。測(cè)試數(shù)據(jù) :姓名語(yǔ)文數(shù)學(xué)英 語(yǔ)物理黃54535251趙98979695李1009999986. 測(cè)試與調(diào)試1、輸入

5、數(shù)據(jù) :*X:D.,請(qǐng)輸入學(xué)號(hào): 07錄入第 1/4 門課程成績(jī)汚4艮入第 2/4 門課程成績(jī)汚3 錄入第 3/4 門課程成績(jī) : 盟 A 人第 4/4 門課程咸績(jī) : E1請(qǐng)輸入學(xué)選施6洛陽(yáng)理工學(xué)院 課程設(shè)計(jì)報(bào)告2.打印成績(jī) 'C : USERSADMINSTKATORDESICrOFVZZDebugzzzzxe'錄入第 2 蟲門課程成 績(jī): 鶉錄入第 3/4門課程成績(jī) : 肝錄入第 4/4門課程成 績(jī): 弼成功!嘖龍據(jù)錄人完畢!=- 打 E 卩名次信息 -一“名績(jī)=名0一9- 9趙=8 5nu1 9 5姓李I(lǐng)rt1 - n7. 源程序清單#in elude <stdi

6、o.h>#in elude <stri ng>#in elude <float.h>#in elude <iostream>#in elude <ioma nip>#define n 3/*學(xué)生數(shù)*/#define m 4/*課程數(shù)*/using n amespaee std;/- 聲明一個(gè)結(jié)構(gòu) -struet Stude nt7洛陽(yáng)理工學(xué)院 課程設(shè)計(jì)報(bào)告char m_Name20;un sig ned int m_ID;float m_Scorem;;typedef struct Stude nt Node;/-函數(shù)聲明 -Node* I

7、nit(Node* stu,const int cN,float* Asum,int nSum);float* Sort(float* Agrade,int nSize);int Del_Same(float* Asum,i nt n Sum,float* Agrade,i nt n Greade);void Display(Student* stu,int nN,float* Asum,int nSum,float* Agrade,int n GreadeSize);/-函數(shù)實(shí)現(xiàn) -/-錄入數(shù)據(jù) -Node* Init(Node* stu,const int cN,float* Asum,i

8、nt nSum)char n ame20;un sig ned int id;float scorem;int i,j;for(i=0;i< n;+i)printf("請(qǐng)輸入第 d/%d 名學(xué)生的信息: n ”,i+1,n);printf ("請(qǐng)輸入姓名 :”);8洛陽(yáng)理工學(xué)院 課程設(shè)計(jì)報(bào)告sea nf("%s", name);printf("n請(qǐng)輸入學(xué)號(hào): ;”)sea nf("%d",&id);for(j=0;j<m;+j)printf("n錄入第%d/%d 門課程成績(jī) :",j+

9、1,m);scan f("%f", &scorej);prin tf("n");/-賦值過(guò)程 -strcpy(stu+i)->m_Name, name);/修改成指針訪問(wèn)形式(stu+i)-> m D=id;for(j=0;j<m;j+)(stu+i)->m_Scorej=scorej;/ -計(jì)算成績(jī)總和寫入到sum 中-*(Asum+i)=O.O;for(j=0;j<m;+j)(*(Asum+i)+=(stu+i)->m_Scorej);/for( n)9洛陽(yáng)理工學(xué)院 課程設(shè)計(jì)報(bào)告printf ( ”成功!數(shù)

10、據(jù)錄入完畢!”);return stu;void Display(Node* stu,int nN,float* Asum,int nSum,float* Agrade,int nGreadeSize)/打印。按名次從第一名到最后一名。cout<<endl<<"= ="<<e ndl;cout<<"=打印名次信息="<<e ndl; cout<<"= "<<e ndl;cout<<" 名次 = 學(xué)號(hào) = 姓名 = 總分 = 名科成

11、績(jī)="<<e ndl;for(i nt i=0;i< nGreadeSize;+i)for(i nt j=O;j< n;+j)if(Asumj=Agradei)cout<<setw(10)<<left<<i+1名次。<<setw(10)<<left<<stuj.mD學(xué)號(hào)。<<setw(10)<<left<<stuj.m_Name姓名。<<setw(10)<<left<<Asumj;/總分。for(i nt k=0;k&

12、lt;m;+k)cout<<setw(10)<<left<<stuj.m_Scorek;名科成績(jī)。10洛陽(yáng)理工學(xué)院 課程設(shè)計(jì)報(bào)告cout<<e ndl;float* Sort(float* Agrade,int nSize)/練習(xí)一下直接插值排序法。會(huì)用到。”哨兵 ” nSize 表示 grade 中實(shí)際元素的個(gè)數(shù)。for(i nt i=1;i <n Size;+i)Agrade nSize=Agradei;將它放到哨兵里for(i nt j=i_1;j>=0;)if(AgradenSize>Agradej)從大到小的順序。一定

13、要注意,是拿”哨兵 ”來(lái)與之比較才對(duì)的。Agradej+1=Agradej;j-;elsebreak;/for內(nèi)Agradej+1=Agrade nSize;/從哨兵中取出這個(gè)值來(lái)11洛陽(yáng)理工學(xué)院 課程設(shè)計(jì)報(bào)告/for 外retur n Agrade;int Del_Same(float* Asum,i nt n Sum,float* Agrade,i nt n Greade)/將 sumn 中的不重復(fù)的元素放到graden 中 ,函數(shù)返回 grade 中實(shí)際元素的個(gè)數(shù)。int Find;/有無(wú)重復(fù)的標(biāo)記:1 為有, 0 為無(wú)。int nElem=1;/gread中的實(shí)際元素個(gè)數(shù)。Agrade

14、0=Asum0;for(i nt i=0;i <n Sum;+i)/sumfor(i nt j=0;j< nElem;+j)/gradeif(Asumi=Agradej)/判斷兩個(gè)浮點(diǎn)數(shù)相等條件。Fin d=1;break;elseFin d=0;if(Fi nd=0)12洛陽(yáng)理工學(xué)院 課程設(shè)計(jì)報(bào)告Agrade n Elem=Asumi;n Elem+;/for( 最外 )return n Elem;/ -void mai n()Node Stu n;Node* pStu;pStu=Stu; 聲明 n 個(gè) Student 對(duì)象的一個(gè)數(shù)組。float sumn,graden+1;因?yàn)橄朐?grade 中用到直接插值排序法,要用到”哨兵 ”。所以構(gòu)造 n+1.pStu=I nit(pStu, n,sum, n);int n Grade_size;n Grade_size=Del_Same(su m,n, grade ,n+1);float* pGrade=0;pGrade=Sort(grade ,n Grade_size);Display(pStu ,n,sum,n, grade ,n Grade_size);13洛陽(yáng)理工學(xué)院 課程設(shè)計(jì)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論