數(shù)據(jù)結(jié)構(gòu)大作業(yè)_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)大作業(yè)_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)大作業(yè)_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)大作業(yè)_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)大作業(yè)_第5頁(yè)
已閱讀5頁(yè),還剩12頁(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、-作者xxxx-日期xxxx數(shù)據(jù)結(jié)構(gòu)大作業(yè)【精品文檔】課程設(shè)計(jì)說(shuō)明書(shū)設(shè)計(jì)題目: 學(xué)生管理系統(tǒng)專 業(yè): xxxxxx班級(jí): xxxxxxxxxxxxxxxxxx設(shè) 計(jì) 人: xxxxxxxxxxxxxxx山 東 科 技 大 學(xué)2015年 1 月 3 日山 東 科 技 大 學(xué)課 程 設(shè) 計(jì) 任 務(wù) 書(shū)專業(yè): xxx 班級(jí):xxxxx 學(xué)號(hào):xxxxxxx一、 課程設(shè)計(jì)題目:學(xué)生管理系統(tǒng)二、 設(shè)計(jì)原始資料:1、數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版) 人民郵電出版社2、C+面向?qū)ο蟪绦蛟O(shè)計(jì) 電子工業(yè)出版社3、程序設(shè)計(jì)基礎(chǔ)-基于C語(yǔ)言 科學(xué)出版社三、 設(shè)計(jì)應(yīng)解決下列各主要問(wèn)題:1、 首先輸入所有學(xué)生的信息。2、輸出一個(gè)學(xué)

2、生學(xué)號(hào)后,能查找到此學(xué)生的信息并輸出結(jié)果(采用查找方法實(shí)現(xiàn))3、要求是用結(jié)構(gòu)體,鏈或數(shù)組等實(shí)現(xiàn)上述要求4、先按總成績(jī)高的優(yōu)先輸出,總成績(jī)相同學(xué)號(hào)小的優(yōu)先輸出四、 設(shè)計(jì)說(shuō)明書(shū)應(yīng)附有下列圖紙: 1、功能模塊圖 2、存儲(chǔ)學(xué)生信息流程圖 3、查詢個(gè)人信息流程圖 4、主函數(shù)流程圖 五、命題發(fā)出日期:2015年11月3日設(shè)計(jì)完成日期:2016年1月3日設(shè)計(jì)指導(dǎo)教師(簽章): 系主任(簽章): 課程設(shè)計(jì)成績(jī)?cè)u(píng)定表分類成績(jī)平時(shí)考勤(20%)平時(shí)實(shí)驗(yàn)(30%)綜合實(shí)驗(yàn)(30%)課程設(shè)計(jì)說(shuō)明書(shū)質(zhì)量(20%)總分指導(dǎo)教師(簽章):年月日 學(xué)生管理系統(tǒng) 學(xué)生信息管理者用此程序所要完成的主要工作為:輸入學(xué)生的個(gè)人信息、

3、查找學(xué)生信息、通過(guò)此系統(tǒng)可以方便的進(jìn)行上述工作。每位同學(xué)所包含的信息有:姓名、學(xué)號(hào)、語(yǔ)文成績(jī)、數(shù)學(xué)成績(jī)和英語(yǔ)成績(jī)。1.1 主函數(shù)模塊 本模塊的主要功能是調(diào)用各個(gè)模塊,實(shí)現(xiàn)程序的主要功能。 1.2 排序功能 本模塊的主要功能是根據(jù)用戶的選擇進(jìn)行數(shù)組的創(chuàng)建,并對(duì)輸入數(shù)據(jù)或者隨機(jī)產(chǎn)生的數(shù)據(jù)進(jìn)行排序1.3 輸入子模塊 本模塊的主要功能是通過(guò)鍵盤(pán)錄入學(xué)生信息,并對(duì)用戶輸入數(shù)據(jù)進(jìn)行處理,創(chuàng)建數(shù)組。1.4 系統(tǒng)需求分析開(kāi)發(fā)環(huán)境:Windows XP以上版本操作系統(tǒng)實(shí)用軟件:編寫(xiě)實(shí)驗(yàn)報(bào)告:Microsoft Office Word二、概要設(shè)計(jì)2.1 功能模塊圖 開(kāi)始 退出系統(tǒng)查詢學(xué)生信息輸出有補(bǔ)考的同學(xué)添加學(xué)

4、生信息 功能模塊圖 (1)存儲(chǔ)學(xué)生信息功能,定義結(jié)構(gòu)體student,用scanf和cin函數(shù)進(jìn)行輸入。流程圖如圖 存儲(chǔ)學(xué)生信息流程圖: 程序開(kāi)始 初始化存入結(jié)構(gòu)體數(shù)組中 inYN 結(jié)束 存儲(chǔ)學(xué)生信息流程圖 相應(yīng)代碼設(shè)計(jì):typedef struct Achar a20;/學(xué)生姓名 int num;/學(xué)生學(xué)號(hào)int chscore,mascore,enscore;/學(xué)生的語(yǔ)文數(shù)學(xué)英語(yǔ)成績(jī) Student; /存儲(chǔ)學(xué)生個(gè)人信息的結(jié)構(gòu)體typedef structStudent *elem;int length; SqList;(2) 查找有補(bǔ)考的同學(xué),并按成績(jī)降序排列輸出。流程圖如圖查找有補(bǔ)考同

5、學(xué)信息功能流程圖: 開(kāi)始用sort函數(shù)排序,再進(jìn)行判斷輸出信息L.elemi.chscore60|L.elemi.mascore60|L.elemi.enscore60 Y 結(jié)束沒(méi)有補(bǔ)考的同學(xué) N 查找有補(bǔ)考同學(xué)信息功能流程圖 (3) 將學(xué)生按照學(xué)號(hào)的升冪排序,為后續(xù)查詢學(xué)生用二分查找提供條件。流程圖如圖sort函數(shù)排序流程圖: 開(kāi)始調(diào)用sort函數(shù) in? N Ya.num b.num? N 結(jié)束 Y 交換 sort函數(shù)排序流程圖(4) 查找學(xué)生個(gè)人信息,根據(jù)用戶輸入的學(xué)號(hào)進(jìn)行查找。查找方法為二分查找。(5) 主函數(shù)流程圖如圖主函數(shù)流程圖: 開(kāi)始 結(jié)束二分查找 i p?輸出有補(bǔ)考的同學(xué)Sca

6、nf和cin函數(shù)in?CreatList(L,m);構(gòu)造一個(gè)學(xué)生系統(tǒng)N YNYNY 主函數(shù)流程圖 2.2 各模塊函數(shù) bool cmp (const Student &a,const Student &b);/按照總成績(jī)進(jìn)行排序bool cmpp (const Student &a,const Student &b);/按照學(xué)號(hào)進(jìn)行排序void CreatList(SqList &L,int n);/建立數(shù)組void Sesrch_Bin(SqList &L,int n);/進(jìn)行二分查找三、詳細(xì)設(shè)計(jì)3.1 輸入學(xué)生信息程序運(yùn)行后,創(chuàng)建一個(gè)student結(jié)構(gòu)體,多組情況,每組輸入兩個(gè)整數(shù)分別表示

7、學(xué)生的總數(shù)和查詢數(shù)量。 調(diào)用sort()函數(shù),首先將學(xué)生按成績(jī)排序,運(yùn)用for循環(huán)和if(L.elemi.chscore60|L.elemi.mascore60|L.elemi.enscore60)語(yǔ)句輸出,如果總成績(jī)相同,學(xué)號(hào)小的在前面。3.3 排序調(diào)用sort()函數(shù)對(duì)Student按照學(xué)號(hào)升序進(jìn)行排序,此函數(shù)中采用了冒泡排序的方法,此方法只有在前一個(gè)學(xué)生的學(xué)號(hào)大于后一個(gè)學(xué)生的學(xué)號(hào)時(shí),才會(huì)需要一個(gè)輔助空間用作暫存記錄,空間復(fù)雜度低,并且穩(wěn)定。 3.4 查詢學(xué)生信息運(yùn)用for循環(huán)函數(shù),輸入要查詢學(xué)生的學(xué)號(hào),對(duì)已經(jīng)排序的student進(jìn)行二分查找,low=high時(shí)遍歷,如果nu=smid.n

8、o 時(shí)找到輸出學(xué)生的信息語(yǔ)句:printf(%s %d %d %d %dn,L.elemi.a,L.elemi.num,L.elemi.chscore,L.elemi.mascore,L.elemi.enscore);如果沒(méi)有輸出printf(NOT FOUNDn); 主函數(shù)中while()等待輸入,用戶只要在運(yùn)行的頁(yè)面中輸入ctrl+z,即可退出系統(tǒng)。4、 運(yùn)行結(jié)果及分析本程序需用二分法,其余方法超時(shí),在輸入輸出時(shí)注意用標(biāo)準(zhǔn)語(yǔ)言輸入,注意格式。在運(yùn)行框內(nèi)輸入 Zhangyi 201501 90 90 90Zhanger 201502 80 80 80Zhangsan 201404 70 70

9、 70Zhangsi 201504 60 60 60Zhangwu 201505 50 50 50wcr 1124 100 100 100loushangdashen 1234 60 60 602015012015032015051201506輸出結(jié)果為下圖:五.總結(jié) 通過(guò)這次課程設(shè)計(jì),我學(xué)會(huì)了很多,首先,我對(duì)自身的知識(shí)掌握度加大了,以前只是單純的課本掌握,現(xiàn)在通過(guò)編寫(xiě),修改,測(cè)試程序,對(duì)課程設(shè)計(jì)中的一些知識(shí)更加了解了。其次,對(duì)于一些比較死板的知識(shí),通過(guò)運(yùn)用,對(duì)它提高了很大的興趣,而且,自己設(shè)計(jì)的程序能夠運(yùn)行出來(lái),自己非常有自豪感,滿足感。 總的說(shuō)來(lái),努力還是很有成效的,鍛煉了整體的能力,并且

10、通過(guò)一次次的調(diào)試來(lái)讀懂程序,程序更加完善。數(shù)據(jù)結(jié)構(gòu)在編程語(yǔ)言中是一門(mén)相當(dāng)有技術(shù)含量的語(yǔ)言,學(xué)會(huì)并能夠掌握它,對(duì)以后的生活幫助很大。附:主要算法的源代碼#include#include#include#include#includeusing namespace std;typedef int Status;#define OK 1#define ERROR 0#define OVERFLOW -2#define MAXSIZE 2001typedef structchar a20;int num;int chscore,mascore,enscore; Student;typedef stru

11、ctStudent *elem;int length; SqList;bool cmp (const Student &a,const Student &b)int sum1 = a.chscore + a.mascore + a.enscore;int sum2 = b.chscore + b.mascore + b.enscore;if(sum1 = sum2)return a.num sum2;bool cmpp (const Student &a,const Student &b)return a.num b.num;void CreatList(SqList &L,int n)L.e

12、lem=new StudentMAXSIZE;for(int i=0; iL.elemi.numL.elemi.chscoreL.elemi.mascoreL.elemi.enscore;L.length=n;void Sesrch_Bin(SqList &L,int n)int low=0,high=L.length-1,mid;while(low=high)mid=(low+high)/2;if(num=L.elemmid.num) return mid;else if(numL.elemmid.num) high=mid-1;else low=mid+1;return 0;int main()int m,n,a;SqList L;scanf(%d%d,&m,&n);CreatList(L,m);sort(L.elem,L.elem+n,cmp);for(int i=0; im; i+)if(L.elemi.chscore60|L.elemi.mascore60|L.elemi.enscore60)printf(%s %d %d %d %dn,L.elemi.a,L.elemi.num,L.elemi.chscore,L.elemi.mascore,L.elemi.enscore)

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論