(完整word版)成績統(tǒng)計(jì)系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(word文檔良心出品)_第1頁
(完整word版)成績統(tǒng)計(jì)系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(word文檔良心出品)_第2頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

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

3、分?jǐn)?shù)初始化函數(shù):Node* Ini t();直接插入法:float* Sort();print!廣沾輸入第驗(yàn)L-MultipleiMultipkxIprinrtT 成功數(shù)?_retiirnAradt.+iAradlej IA( (rad nSi Agf ., 洛陽理工學(xué)院課程設(shè)計(jì)報(bào)告4相同名次處理:int Del_Same(); 打印函數(shù) void Display。 ;5.詳細(xì)設(shè)計(jì)1.聲明一個(gè)結(jié)構(gòu)體:typedef struct Stude nt Node;2.錄入數(shù)據(jù)將復(fù)制形式修改為指針訪問形式,計(jì)算成績總和寫入到sum中3.打印,按名次從第一名到最后一名。4.下直接插值排序法洛陽理工學(xué)院課

4、程設(shè)計(jì)報(bào)告5會用到哨兵,nSize 表示 grade中實(shí)際元素的個(gè)數(shù)。5.處理相同成績的名次將 sumn中的不重復(fù)的元素放到 graden中,函數(shù)返回 grade中實(shí)際元素的個(gè) 數(shù)。測試數(shù)據(jù):姓名語 文數(shù)學(xué)英 語物理黃54535251趙98979695李1009999986.測試與調(diào)試1、輸入數(shù)據(jù):USERSADM1NISTRATORD.,J =回請駄第兒兀名寶生的信息; 請籥入姓名:請輸入學(xué)號:0?錄入第1/4門課程成績汚4錄入第2/4門課程成績汚3錄入第3/4門課程成績:盟 錄人第4/4門課程咸績:1請敷遞會冬名學(xué)生的信息:請騎姓名:趙請輸入學(xué)號二胴洛陽理工學(xué)院課程設(shè)計(jì)報(bào)告62.打印成績

5、C:USERSADMINSTKATORDESICrOFVZZDebugzzzzxe錄入第4門課程成績:鶉 錄入第3/4門課程成績:肝 錄入第4/4門課程成績:弼 成功!嘖龍據(jù)錄人完畢!=-打E卩名次信息-一“7.源程序清單#in elude #in elude #in elude #in elude #in elude #define n 3/*學(xué)生數(shù) */#define m 4/*課程數(shù) */using n amespaee std;/- 聲明一個(gè)結(jié)構(gòu)-struet Stude ntchar m_Name20;un sig ned int m_ID;名nunu姓李趙IrtIrt1 1 - -

6、 n n=8=8 5 5= =9 9 9 9一-績0名1 1 9 9 5 5洛陽理工學(xué)院課程設(shè)計(jì)報(bào)告7float m_Scorem;;typedef struct Stude nt Node;/-函數(shù)聲明-Node* Init(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*

7、 Asum,int nSum,float* Agrade,int n GreadeSize);/-函數(shù)實(shí)現(xiàn)-/-錄入數(shù)據(jù)-Node* Init(Node* stu,const int cN,float* Asum,int nSum)char n ame20;un sig ned int id;float scorem;int i,j;for(i=0;i n;+i)printf(請輸入第d/%d 名學(xué)生的信息:n ”,i+1,n);printf(請輸入姓名:”);洛陽理工學(xué)院課程設(shè)計(jì)報(bào)告8sea nf(%s, name);printf(n請輸入學(xué)號:”);sea nf(%d,&id);f

8、or(j=0;jm_Name, name);/修改成指針訪問形式(stu+i)- mD=id;for(j=0;jm_Scorej=scorej;/- 計(jì)算成績總和寫入到sum中-*(Asum+i)=O.O;for(j=0;jm_Scorej);/for( n)洛陽理工學(xué)院課程設(shè)計(jì)報(bào)告9printf(”成功! 數(shù)據(jù)錄入完畢!”);return stu;void Display(Node* stu,int nN,float* Asum,int nSum,float* Agrade,int nGreadeSize)/打印。按名次從第一名到最后一名。coutendl=e ndl;cout=打印名次信息

9、=e ndl;cout=e ndl;cout名次=學(xué)號=姓名=總分=名科成績=e ndl;for(i nt i=0;i nGreadeSize;+i)for(i nt j=O;j n;+j)if(Asumj=Agradei)coutsetw(10)lefti+1名次。setw(10)leftstuj.mD學(xué)號。setw(10)leftstuj.m_Name姓名。setw(10)leftAsumj;/總分。for(i nt k=0;km;+k)coutsetw(10)leftstuj.m_Scorek;名科成績。洛陽理工學(xué)院課程設(shè)計(jì)報(bào)告10coute ndl;float* Sort(float*

10、 Agrade,int nSize)/練習(xí)一下直接插值排序法。會用到 ”哨兵”。nSize 表示 grade中實(shí)際元素的個(gè)數(shù)。for(i nt i=1;i =0;)if(AgradenSizeAgradej)從大到小的順序。一定要注意,是拿”哨兵”來與之比較才對的。Agradej+1=Agradej;j-;elsebreak;/for內(nèi)Agradej+1=Agrade nSize;/從哨兵中取出這個(gè)值來洛陽理工學(xué)院課程設(shè)計(jì)報(bào)告11/for 外retur n Agrade;int Del_Same(float* Asum,i nt n Sum,float* Agrade,i nt n Gread

11、e)/將 sumn中的不重復(fù)的元素放到graden中,函數(shù)返回 grade中實(shí)際元素的個(gè)數(shù)。int Find;/有無重復(fù)的標(biāo)記:1 為有,0 為無。int nElem=1;/gread中的實(shí)際元素個(gè)數(shù)。Agrade0=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)洛陽理工學(xué)院課程設(shè)計(jì)報(bào)告12Agrade n Elem=Asumi;n Elem+;/for(最外)return n E

12、lem;/-void mai n()Node Stu n;Node* pStu;pStu=Stu; 聲明 n 個(gè) Student 對象的一個(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);洛陽理工學(xué)院課程設(shè)計(jì)報(bào)告13八、心得體會這次我抽到的題目很簡單,但是這是指用基礎(chǔ)的 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. 人人文庫網(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論