數(shù)據(jù)結(jié)構(gòu)學(xué)籍管理系統(tǒng)方案_第1頁
數(shù)據(jù)結(jié)構(gòu)學(xué)籍管理系統(tǒng)方案_第2頁
數(shù)據(jù)結(jié)構(gòu)學(xué)籍管理系統(tǒng)方案_第3頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、一、設(shè)計(jì)目的2二、設(shè)計(jì)容3三、設(shè)計(jì)要求4四、設(shè)計(jì)過程4算法思想分析4J算法描述與實(shí)現(xiàn)53.系統(tǒng)測試7五、設(shè)計(jì)總結(jié)11參考文獻(xiàn)12附錄13一. 設(shè)計(jì)目的1. 了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計(jì)方法,具備初步的獨(dú)立分析和設(shè)計(jì)能 力;2初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測試等基本方 法和技能;喙3.提高綜合運(yùn)用所學(xué)的理論知識和方法獨(dú)立分析和解決問題的能力;4訓(xùn)練用系統(tǒng)的觀點(diǎn)和軟件開發(fā)一般規(guī)進(jìn)行軟件開發(fā),培養(yǎng)軟件工作者所應(yīng) 具備的科學(xué)的工作方法和作風(fēng)。二. 設(shè)計(jì)容2. 1開發(fā)環(huán)境ml ml . A » HI In I操作系統(tǒng):Windows 7開發(fā)工具:Microsoft Vi

2、sual C+ 6. 0開發(fā)語言:C+2. 2功能簡介:本程序采用C+編寫,用于管理學(xué)生信息,基本功能有 批量 添加學(xué)生信息,單個添加學(xué)生信息,按學(xué)號查找學(xué)生,按查找 學(xué)生,按學(xué)號刪除學(xué)生信息,排序輸出全部學(xué)生信息以及退出 功能。程序流程:開始排序輸出按學(xué)號刪除添加信息按姓需查找按學(xué)號查找批M添加結(jié)朿ml ml . A » HI In I三. 設(shè)計(jì)要求1)程序設(shè)計(jì)要求: 采用交互工作方式,設(shè)計(jì)功能菜單; 建立數(shù)據(jù)文件,數(shù)據(jù)包含學(xué)生的自然信息和成績信息(設(shè)計(jì)幾門課以及 總成績); 對如下關(guān)鍵字:、學(xué)號、各科成績進(jìn)行排序(冒泡、選擇、插入排序等任 選一種)O2)用二分查找實(shí)現(xiàn)如下查詢:

3、按查詢 按學(xué)號查詢3)用堆排序找出總成績排名的前5名學(xué)生4)輸出任一查詢結(jié)果(可以連續(xù)操作)四. 設(shè)計(jì)過程1算法思想分析根據(jù)設(shè)計(jì)要求,首先定義三個數(shù)組,分別存放學(xué)號、 成績.typedef struct stud /學(xué)生信息結(jié)構(gòu)long num;char name20;float score;Stud;ml ml . A » HI In I然后編寫函數(shù),實(shí)現(xiàn)添加、查找、刪除、排序、退出 功能,對數(shù)組元素進(jìn)行操作。2 算法描述與實(shí)現(xiàn)添加信息:定義添加信息函數(shù),將輸入的信息添加到數(shù)組中:void inser(long b)Node *lastcurrent,*p;current二head

4、;while(current!二NULL&&b>current->student. num) last二current;current二current->next ;查找學(xué)生:void searchname (char *s)/按查找Node *p二head;int flag二0;printf (,fn 學(xué)號成績:n");wh訂e(p!=NULL)if (strcmp(p->student name,s)二二0)printf (,r%ld %s %fnn, p->student. num, p->studeiH.namet p-&g

5、t; student score);flag=l;p二p->next;continue;else p=p->next;if(!flag) printf(H沒有找到相關(guān)信息”);void find(long b)/按查找Node *pzzhead;while(p!=NULL&&b!=p->student. num) p二p->next;if(!p) printf("No foundnu);else printf (,rn 學(xué)號成績n");printf (,r%ld %s %fnn, p->student. num, p->s

6、, p-> student score);輸出信息:void print ()Node *p=head;printf (nn 學(xué)號成績:n");while(p!二NULL)printf ("%ld %s %f n'f, p->student, num, p->student. rmine, p->student. score);p=p->next;ml ml . A » HI In Iprintf("n");3系統(tǒng)測試1菜單用戶運(yùn)行程序后,顯示如下所示菜單,用戶根據(jù)菜單提示進(jìn)行 操作(

7、如圖2. l)o*E:跋據(jù)結(jié)構(gòu)伴尙Debug,學(xué)無苣湮ex學(xué)生信息管理系統(tǒng)*來*舅興*決M良豪MXJt來*眞弄鬢(眞M良眞典菜 亡卩 MXKX具只興具只農(nóng)生生生 學(xué)學(xué)學(xué) 加杳55 溢名新 >妊入亠一s亠一豆一o、0曰心息息-辜分一號號數(shù)一息息岀 亠一 一口三口厶刖序 iff 找除序 沓翟圖2.12.批量添加用戶選擇批量添加學(xué)生信息功能進(jìn)行批量添加,可連續(xù)添加, 按0結(jié)束添加操作(如圖2. 2)oI饕J毛妙篩1請軸入字號:M41B4B424 腎錨入姓名、分澈暇殿勇 1酗 瞬郭悴ml ml . A » HI In I情輸入學(xué)號:陽1 B4O402 繩入姓名.分?jǐn)?shù)汪近 8(4情揃入學(xué)

8、號:»41040403 誡入姓名、分?jǐn)?shù):趙六 70輸入學(xué)號:04 JL 040494 減入姓名.分?jǐn)?shù):陳七 60.21圖2.23 按學(xué)號查找學(xué)生將學(xué)生信息錄入之后,若想查找某個學(xué)生,用戶可選擇按學(xué) 號查找學(xué)生信息(圖2.3)。添名新棊人生生生加?xùn)说?0 自.j 自.j 自!.一- 亠一£_£一一二齧按號號數(shù)辜分蘭£=足刖 生生序 學(xué)學(xué)排 找除序 查聖041040424號clAn蟲2覘勇鑒5圖2.3裝訂4.按查找學(xué)生將學(xué)生信息錄入之后,若想查找某個學(xué)生,用戶可選擇按查 找學(xué)生信息(圖2.4)O*關(guān)*)(*推*壞)0)0壞玲壞壞X-WWWWWX-WWX-XO

9、OW)(菜單 *壞壞*址*)0*壞)(*其*壞壞系*)0*)0)0)<*其*)(-)(*其13 5主生生 羞S于 加查的 添會 莠人 批按錄請選#輸入要學(xué)號 姓龜成績;41040401 張三 90.000000Prcsc any Loy Cont inuc 、8 息息息- / / ?- 亠=2一一口=一二白心息出 fi 生生序 *排 找?guī)?W1 號號數(shù) 華分 按按按圖2.45.添加信息用戶可以在批量添加后在單個添加學(xué)生信息(圖2.5)。yl /r f 4 “ 士>zx“2y興興興13 5生生生 學(xué)圣亍 加查的 添名新 SA 批按錄®-E-5、0 自宀自3白3 一一2 4

10、6回息息出 生生序 學(xué)學(xué)排 找除丹 査 - 號號數(shù)一 睪分一請選擇功能汚輸人新學(xué)號:tJ41M4W4M6請輸入姓名、分?jǐn)?shù);耿殿勇1 Q亍74104040141040403弓 成績:Z 90000000* 亦 000000圖2. 56按學(xué)號刪除學(xué)生信息用戶可根據(jù)情況對已添加的學(xué)生信息進(jìn)行刪除,通過學(xué)號刪除(圖 2.6)o卄“一菜單裝息息岀.三S一一5用生生序iB找除序號號數(shù)螯分按按挨、0 息自心自心-亠亙一亙一 口生生生斗i-T-加查的添名新莠入第錄13 5學(xué)號41040401410404034104040441040424難務(wù) 成績:張三 90.000000趙六 000090 陳七 60.00

11、0000 耿虞勇 100.000000圖2.67 排序輸出程序可以將已添加的學(xué)生按照成績的降序排列輸出(圖2.7).息息出生生序棧障杏聖號號數(shù)睪分按按按自4 自QJ/nlj丿/ 丿亠二5一一5二 口生生生加查的添名新SA批按錄請選擇功能=6裝2.圖操作結(jié)束后按0退出程序(圖2.8)o1T學(xué)生信息管理系統(tǒng)13 5批按錄0|善入添幕加?xùn)说膶W(xué)學(xué)學(xué)生生生亠一亙一亙一 口按按按辜分號呂數(shù)WI撈除序生生序息息岀請選擇功能油* The End! *Press any key to continue圖2.8五. 設(shè)計(jì)總結(jié)通過一周的課程設(shè)計(jì),我從中受益匪淺,使得我對數(shù)據(jù)結(jié)構(gòu)這門 課有了更深一步的認(rèn)識。在設(shè)計(jì)過程

12、中,我們發(fā)現(xiàn)問題,解決問題, 一同探討問題,在老師的幫助下把問題一一解決。在解決問題的過 程中得到了成長,在與同學(xué)的合作過程中,我獲益良多,提髙了自 己的團(tuán)隊(duì)合作能力和實(shí)際動手能力,在親自動手的同時提升自己, 鍛煉自己。通過這次設(shè)計(jì),我深深的感受到了做系統(tǒng)是一件十分復(fù)雜周密的 事情,不能有半點(diǎn)的疏忽,需要一個人有周密的思考能力,分析問 題、處理問題的能力,還要有足夠的耐心。春葆等編 黃國瑜葉乃菁編 仕華等編清華大學(xué)清華大學(xué)機(jī)械工業(yè)參考文獻(xiàn)數(shù)據(jù)結(jié)構(gòu)程序設(shè)計(jì)題典數(shù)據(jù)結(jié)構(gòu)(C語言版)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)附錄:源代碼#includestdio. h>#includestring h>:#inc

13、lude<stdlib.h>IItypedef structstud/學(xué)生信息結(jié)構(gòu)!long num;Jchar name20:¥float score;Stud;typedef structnodeI!IStud student;線struct node *next; Node; Node *head二NULL;void read (void):jvoidinser (1ong b);IIvoidprint ();Ivoidfind(long b);void searchname(char *s):Node * del (long n); void sort (int

14、flag): void menu ();ivoid main()I char choose; int flag=l; while (flag) menu(): 調(diào)用功能菜單函數(shù)顯示菓單項(xiàng)。 printf ("請選擇功能:"); choose=getchar(); switch(choose)Icase r 1' : read(): /調(diào)用建立鏈表的函數(shù);輸出鏈表信息;print ():printf("nPress any key Continue ");Igetchar ():break;icase r2r: /調(diào)用按學(xué)號查找學(xué)生信息的函數(shù);并輸

15、出查找結(jié)果信息;IIlong c;!printf ("輸入要查找的學(xué)號:");Iscanf("%ld",&c);!find(c):printf (,rnPress any key Continue");禍getchar ():ibreak;icase '3': 調(diào)用按查找學(xué)生信息的函數(shù);并輸出查找結(jié)果信息;Ichar s20:!printf (,r輸入要查找的:");Jscanfs);searchname (s);prin tf (,rn Press any key Con tin ue.");get

16、char ();IIgetchar ();Ibreak;線case r4r:/調(diào)用根據(jù)學(xué)號刪除某個學(xué)生信息的函數(shù);并輸出刪除后的鏈表信I息;Node *h;long n;Iprintf ("輸入要刪除的學(xué)生學(xué)號:");Iscanf (,r%ld*&n);!h=del(n);!if (h=NULL) printf ('rNofindthe student n");else print ();printf (,rn Press any key Continue");getchar ():getchar ();Ibreak;case '

17、5': 調(diào)用插入新的學(xué)生信息的函數(shù);并輸出插入后的鏈表信息; long a;printf (,r輸入新學(xué)號:n,r);scanf (,r%ld,r,&a);inser(a);print ();printf (,rn Press any key Continue");getchar ();getchar ();break;case '6': /調(diào)用按分?jǐn)?shù)降序排序輸出的函數(shù);并輸出排序后的鏈表信息;sort (1);print ();sort(0);printf ('AnPress any key Continue");getchar (

18、);getchar ();break;ml ml . A » HI In Icase 'O': /結(jié)束程序運(yùn)行flag=0;printf (,rn * The End! *n,r):break;default: printf (,rn Wrong Selection !(選擇錯誤,重選)nw);getchar (); void menu() /綜合作業(yè)功能菓單printfC1 n學(xué)生信息管理系統(tǒng)十);printf (,r n * *菜 單*nn ”);printf(w*息 息 出 息信息信息輸 信生信生信序 生學(xué)生學(xué)生排 學(xué)找學(xué)除學(xué)序 加查查刪的降 添號名號新數(shù) 量學(xué)

19、姓學(xué)入分 批按按按錄按0.返回* nn'r); printf ("*1.printf (,r2.printf ("*3.printf (,r4.printf('r* 5. printf (,r6.printf (,r printf (,r* rT); void read (void)long a;printf (,r請輸入學(xué)號:"); scanf (,%ld,&a);!while(a>0)inser(a):;printf ('*請輸入學(xué)號:”);scanf("%ld",&a);Ii IIvoid i

20、nser(long b)!Node *last,*current,*p; current=head; while (current!=NULL&&b>current->student num) 禍last=current;Icurrent=current->next;!Iif (current=NULL i i b<current->student num)printf (,r請輸入、分?jǐn)?shù):”);p= (Node *)malloc(sizeof(Node):?p->student num二b;scanf (,r%s%f, p->stud

21、ent name,&p一student score);IIp->next二NULL;IIif (current=head)Ip->next=head;線head二p;jelsep->next=current;ilast->next=p;iI!else if(b=current->studentnum) printf ("error input a different number:,r): i IIvoid print ()INode *p=head; printf (,fn 學(xué)號成績:n");while(p!二NULL)printf

22、(n%ld %s %fn,r, p->student rmm, p一student neinie, p->student score );p=p->next;printf("n");void find(long b)Node *p=head;while(p!二NULL&&b!=p->student. num)p=p->next;if (!p) printf (,rNo foundn'r):else printf ('An 學(xué)號成績nM);printf (n%ld %s %fn,r, p->student r

23、mm, p一student neinie, p->student score );Ivoid searchname(char *s)IJNode *p=head;Yint flag=0;iprintf (,rn 學(xué)號成績:n");while (p!=NULL)I!if(strcmp(p->student name,s)二二0)線:printf (n%ld %s %fn,r, p->student nu m, p 一student .n amer p->student .score)I八;flag=l;jp=p>next;IIcontinue;I!elsep=p->next;i“、tt:if (!flag) prin

溫馨提示

  • 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

提交評論