數(shù)據(jù)結(jié)構(gòu)大作業(yè)_第1頁
數(shù)據(jù)結(jié)構(gòu)大作業(yè)_第2頁
數(shù)據(jù)結(jié)構(gòu)大作業(yè)_第3頁
數(shù)據(jù)結(jié)構(gòu)大作業(yè)_第4頁
數(shù)據(jù)結(jié)構(gòu)大作業(yè)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、山東科技大學(xué)學(xué)生課程設(shè)計課程設(shè)計說明書設(shè)計題目:學(xué)生管理系統(tǒng)專業(yè):xxxxxx班級:xxxxxxxxxxxxxxxxxx設(shè)計人:xxxxxxxxxxxxxxx山東科技大學(xué)2015年1月3日山東科技大學(xué)學(xué)生課程設(shè)計山東科技大學(xué)課程設(shè)計任務(wù)書專業(yè):xxx班級:xxxxx號:xxxxxxx一、課程設(shè)計題目:學(xué)生管理系統(tǒng)二、設(shè)計原始資料:1、數(shù)據(jù)結(jié)構(gòu)(C語言版)人民郵電出版社2、C+面向?qū)ο蟪绦蛟O(shè)計電子工業(yè)出版社3、程序設(shè)計基礎(chǔ)-基于C語言科學(xué)出版社三、設(shè)計應(yīng)解決下列各主要問題:1、首先輸入所有學(xué)生的信息。2、 輸出一個學(xué)生學(xué)號后,能查找到此學(xué)生的信息并輸出結(jié)果(采用查找方法實現(xiàn))3、 要求是用結(jié)構(gòu)體

2、,鏈或數(shù)組等實現(xiàn)上述要求4、 先按總成績高的優(yōu)先輸出,總成績相同學(xué)號小的優(yōu)先輸出四、設(shè)計說明書應(yīng)附有下列圖紙:1、功能模塊圖2、存儲學(xué)生信息流程圖3、查詢個人信息流程圖4、主函數(shù)流程圖五、命題發(fā)出日期:2015年11月3日設(shè)計完成日期:2016年1月3日設(shè)計指導(dǎo)教師(簽章):系主任(簽章):山東科技大學(xué)學(xué)生課程設(shè)計課程設(shè)計成績評定表分類成績平時考勤(20%平時實驗(30%綜合實驗(30%課程設(shè)計說明書質(zhì)量(20%總分指導(dǎo)教師(簽章):年月日山東科技大學(xué)學(xué)生課程設(shè)計學(xué)生管理系統(tǒng)1 .需求分析說明學(xué)生信息管理者用此程序所要完成的主要工作為:輸入學(xué)生的個人信息查找學(xué)生信息、通過此系統(tǒng)可以方便的進(jìn)行上

3、述工作。每位同學(xué)所包含的信息有:姓名、學(xué)號、語文成績、數(shù)學(xué)成績和英語成1.1 主函數(shù)模塊本模塊的主要功能是調(diào)用各個模塊,實現(xiàn)程序的主要功能1.2 排序功能本模塊的主要功能是根據(jù)用戶的選擇進(jìn)行數(shù)組的創(chuàng)建,并對輸入數(shù)據(jù)或者隨機(jī)產(chǎn)生的數(shù)據(jù)進(jìn)行排序1.3 輸入子模塊本模塊的主要功能是通過鍵盤錄入學(xué)生信息,并對用戶輸入數(shù)據(jù)進(jìn)行處理,創(chuàng)建數(shù)組。1.4 系統(tǒng)需求分析開發(fā)環(huán)境:WindowsXP以上版本操作系統(tǒng)實用軟件:編寫實驗報告:MicrosoftOfficeWord編譯工具:visualC+6.0二、概要設(shè)計2.1 功能模塊圖山東科技大學(xué)學(xué)生課程設(shè)計開始功能模塊圖2.2 各模塊的算法設(shè)計說明(1)存儲學(xué)

4、生信息功能,定義結(jié)構(gòu)體student,用scanf和cin函數(shù)進(jìn)行輸入。流程圖如圖2.1.1存儲學(xué)生信息流程圖:山東科技大學(xué)學(xué)生課程設(shè)計存儲學(xué)生信息流程圖相應(yīng)代碼設(shè)計:typedefstructA(chara20;/學(xué)生姓名intnum;/學(xué)生學(xué)號intchscore,mascore,enscore;/學(xué)生的語文數(shù)學(xué)英語成績Student;/存儲學(xué)生個人信息的結(jié)構(gòu)體typedefstruct(Student*elem;intlength;SqList;(2)查找有補(bǔ)考的同學(xué),并按成績降序排列輸出。流程圖如圖2.1.2查找有補(bǔ)考同學(xué)信息功能流程圖:結(jié)束6山東科技大學(xué)學(xué)生課程設(shè)計查找有補(bǔ)考同學(xué)信息

5、功能流程圖(3)將學(xué)生按照學(xué)號的升哥排序,為后續(xù)查詢學(xué)生用二分查找提供條件。流程圖如圖2,1.3sort函數(shù)排序流程圖:sort函數(shù)排序流程圖(4)查找學(xué)生個人信息,根據(jù)用戶輸入的學(xué)號進(jìn)行查找。查找方法為二分查找。(5)主函數(shù)流程圖如圖3.1.4主函數(shù)流程圖:山東科技大學(xué)學(xué)生課程設(shè)計主函數(shù)流程圖按照總成績進(jìn)行排序按照學(xué)號進(jìn)行排序2.2各模塊函數(shù)boolcmp(constStudent&a,constStudent&b);/boolcmpp(constStudent&a,constStudent&b);/voidCreatList(SqList&L,int

6、n);/建立數(shù)組voidSesrch_Bin(SqList&L,intn);/進(jìn)行二分查找三、詳細(xì)設(shè)計3.1 輸入學(xué)生信息山東科技大學(xué)學(xué)生課程設(shè)計程序運(yùn)行后,創(chuàng)建一個student結(jié)構(gòu)體,多組情況,每組輸入兩個整數(shù)分別表示學(xué)生的總數(shù)和查詢數(shù)量。3.2 輸出有補(bǔ)考學(xué)生的全部信息調(diào)用sort()函數(shù),首先將學(xué)生按成績排序,運(yùn)用for循環(huán)和if(L.elemi.chscore<60|L.elemi.mascore<60|L.elemi.enscore<60)語句輸出,如果總成績相同,學(xué)號小的在前面。3.3 排序調(diào)用sort()函數(shù)對Student按照學(xué)號升序進(jìn)行排序,此函數(shù)

7、中采用了冒泡排序的方法,此方法只有在前一個學(xué)生的學(xué)號大于后一個學(xué)生的學(xué)號時,才會需要一個輔助空間用作暫存記錄,空間復(fù)雜度低,并且穩(wěn)定。3.4 查詢學(xué)生信息運(yùn)用for循環(huán)函數(shù),輸入要查詢學(xué)生的學(xué)號,對已經(jīng)排序的student進(jìn)行二分查找,low<=high時遍歷,如果nu=smid.no時找到輸出學(xué)生的信息語句:printf("%s%d%d%d%dn",L.elemi.a,L.elemi.num,L.elemi.chscore,L.elemi.mascore,L.elemi.enscore);如果沒有輸出printf("NOTFOUND'n"

8、);3.5 退出程序主函數(shù)中while()等待輸入,用戶只要在運(yùn)行的頁面中輸入ctrl+z,即可退出系統(tǒng)。四、運(yùn)行結(jié)果及分析山東科技大學(xué)學(xué)生課程設(shè)計本程序需用二分法,其余方法超時,在輸入輸出時注意用標(biāo)準(zhǔn)語言輸入,注意格式。在運(yùn)行框內(nèi)輸入Zhangyi201501909090Zhanger201502808080Zhangsan201404707070Zhangsi201504606060Zhangwu201505505050wcr1124100100100loushangdashen12346060602015012015032015051201506輸出結(jié)果為下圖:10山東科技大學(xué)學(xué)生課程設(shè)

9、計£Jiangxi2U15019W9的9BahangcF2015B290808Bshankson2B1404707870Gumgsi201504606060hanguu201505505050ncr11241WH1»MLuuslidindctshurkEhanguu2曰15甌201501ZJiangxi201501201503HOTFOUND2O1S0SEhan咖u201505909090IOTPOUND01505IOJPOUND五.總結(jié)通過這次課程設(shè)計,我學(xué)會了很多,首先,我對自身的知識掌握度加大了,以前只是單純的課本掌握,現(xiàn)在通過編寫,修改,測試程序,對課程設(shè)計中的一些

10、知識更加了解了。其次,對于一些比較死板的知識,通過運(yùn)用,對它提高了很大的興趣,而且,自己設(shè)計的程序能夠運(yùn)行出來,自己非常有自豪感,滿足感??偟恼f來,努力還是很有成效的,鍛煉了整體的能力,并且通過一次次的調(diào)試來讀懂程序,程序更加完善。數(shù)據(jù)結(jié)構(gòu)在編程語言中是一門相當(dāng)有技術(shù)含量的語言,學(xué)會并能夠掌握它,對以后的生活幫助很大。附:主要算法的源代碼#include<cstdio>#include<cstring>#include<string>11山東科技大學(xué)學(xué)生課程設(shè)計#include<algorithm>#include<iostream>

11、usingnamespacestd;typedefintStatus;# defineOK1# defineERROR0# defineOVERFLOW-2# defineMAXSIZE2001typedefstructchara20;intnum;intchscore,mascore,enscore;Student;typedefstructStudent*elem;intlength;SqList;boolcmp(constStudent&a,constStudent&b)intsum1=a.chscore+a.mascore+a.enscore;intsum2=b.chs

12、core+b.mascore+b.enscore;if(sum1=sum2)returna.num<b.num;else12山東科技大學(xué)學(xué)生課程設(shè)計returnsuml>sum2;)boolcmpp(constStudent&a,constStudent&b)returna.num<b.num;)voidCreatList(SqList&L,intn)L.elem=newStudentMAXSIZE;for(inti=0;i<n;i+)scanf("%s",L.elemi.a);cin>>L.elemi.num&g

13、t;>L.elemi.chscore>>L.elemi.mascore>>L.elemi.enscore;)L.length=n;)voidSesrch_Bin(SqList&L,intn)intlow=0,high=L.length-1,mid;while(low<=high)mid=(low+high)/2;if(num=L.elemmid.num)returnmid;elseif(num<L.elemmid.num)high=mid-1;13山東科技大學(xué)學(xué)生課程設(shè)計elselow=mid+1;)return0;)intmain()(int

14、m,n,a;SqListL;scanf("%d%d",&m,&n);CreatList(L,m);sort(L.elem,L.elem+n,cmp);for(inti=0;i<m;i+)(if(L.elemi.chscore<60|L.elemi.mascore<60|L.elemi.enscore<60)printf("%s%d%d%d%dn",L.elemi.a,L.elemi.num,L.elemi.chscore,L.elemi.mascore,L.elemi.enscore);)sort(L.elem,L.elem+n,cmpp);for(i

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論