課程設(shè)計說明書學生信息管理系統(tǒng)設(shè)計_第1頁
課程設(shè)計說明書學生信息管理系統(tǒng)設(shè)計_第2頁
課程設(shè)計說明書學生信息管理系統(tǒng)設(shè)計_第3頁
課程設(shè)計說明書學生信息管理系統(tǒng)設(shè)計_第4頁
課程設(shè)計說明書學生信息管理系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘 要c是一種通用的程序設(shè)計語言,c語言在很多方面繼承和發(fā)展了以往許多高級程序設(shè)計語言的成功經(jīng)驗和特色,具有書寫格式自由、數(shù)據(jù)類型豐富、語句功能強大、執(zhí)行速度快和存儲控制能力強等優(yōu)點。學生信息管理系統(tǒng)設(shè)計是關(guān)于對學生各種信息管理來設(shè)計的一個系統(tǒng)。整個系統(tǒng)從符合操作簡便、界面友好、靈活、實用、安全的要求出發(fā),完成學生信息管理的全過程,包括創(chuàng)建學生信息、查找學生信息、修改學生信息、插入學生信息、刪除學生信息、按平均分或者總分排序、統(tǒng)計學生信息等工作。本課程主要介紹了本課題的開發(fā)背景,所要完成的功能和開發(fā)的過程。重點說明了系統(tǒng)的設(shè)計思路、總體設(shè)計、各個功能模塊的設(shè)計與實現(xiàn)方法。關(guān)鍵詞:學生管理系統(tǒng),

2、c語言,數(shù)據(jù)結(jié)構(gòu),wintc目錄摘 要11課題背景的介紹31.1 課題背景31.2 目的32需求分析42.1 數(shù)據(jù)需求分析42.2 功能需求分析43系統(tǒng)總體設(shè)計53.1 系統(tǒng)模塊劃分53.2 系統(tǒng)模塊結(jié)構(gòu)圖54系統(tǒng)詳細設(shè)計64.1 系統(tǒng)主界面設(shè)計64.2初始化學生信息64.3查找學生信息74.4刪除學生信息94.5更新學生信息114.6排序134.7統(tǒng)計學生信息164.8插入學生信息175系統(tǒng)連編與運行196總 結(jié)207參考文獻211 課題背景的介紹1.1 課題背景隨著網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,各種行業(yè)紛紛應(yīng)用網(wǎng)絡(luò)技術(shù)操作和管理。當然學校是一個很大的管理系統(tǒng),隨著學生的大量增加,其管理難度也越來越大

3、,如何對學生的個人信息進行更好的管理,這就是我們研究這個課題的目的。在計算機迅速發(fā)展的今天,將計算機這一信息處理器應(yīng)用于學生的個人信息管理已是勢必所然,而且這也將學生信息管理帶來前所未有的改變。采用計算機對學生的信息管理是信息科學化和現(xiàn)代化的重要標志,它也給各大高校帶來了明顯的社會效益。主要體現(xiàn)在:極大地提高了管理工作人員的工作效率,大大地減少了以往的資料室所存在的各種弊端,同時也加強和規(guī)范學習對于學生信息的管理。為了能夠更好的來實現(xiàn)對學生信息的管理,通過對學生信息管理日常工作的詳細調(diào)查,搜集了大量的資料,從系統(tǒng)結(jié)構(gòu)的組織,功能的實現(xiàn),技術(shù)的要求以及可行性等多方面進行考慮,認為本課題是一個適應(yīng)

4、現(xiàn)今學校學生個人信息管理需求的計算機信息管理系統(tǒng),具有一定的實際開發(fā)價值和使用價值。1.2 目的本課題運用c語言進行開發(fā),c語言能夠簡單的進行編譯一些程序,來實現(xiàn)對一些問題的解決。它雖然比較簡單的處理一些問題,但卻有更高的效率。它能夠被大多數(shù)用戶所接受,因為它能夠呈現(xiàn)出清晰的界面,是人們能夠很好的理解。能在一些方面給人們更好的服務(wù),成為人們的好幫手。經(jīng)過這一個學期對數(shù)據(jù)結(jié)構(gòu)的學習,我們都學到了不少東西,可能有些學的還不夠理想,但無論如何這些知識都為我們的下一步學習打下了堅實的基礎(chǔ)。做這么一個課程設(shè)計,一方面是為了檢查我們一個學期以來的學習成果,另一方面也是為了讓我們進一步的掌握和運用它,同時也

5、讓我們認清自己的不足之處和薄弱環(huán)節(jié),加以彌補和加強。2 需求分析隨著學校規(guī)模的發(fā)展擴大,學校要向著大型化,規(guī)?;l(fā)展,而對于學生信息管理系統(tǒng)有關(guān)的信息隨之增加。在這種情況下單靠人工來處理學生的信息不但顯得大不從心,而且極容易出錯。因此,需要開發(fā)學生管理系統(tǒng),該系統(tǒng)可以實現(xiàn)由計算機代替人工執(zhí)行一系列復(fù)雜而繁瑣的操作,使得學校管理人員可以輕松快捷的完成學生信息管理的任務(wù)。2.1 數(shù)據(jù)需求分析本系統(tǒng)的主要數(shù)據(jù)是學生信息。學生信息包括:學生學號,姓名,性別,語文成績,數(shù)學成績,英語成績,平均成績,總成績等。2.2 功能需求分析本系統(tǒng)主要實現(xiàn)對學生成績信息進行管理,需要實現(xiàn)以下幾個方面的管理功能:(1)

6、創(chuàng)建學生信息:錄入學生的信息。(2)查找學生信息:按學號、姓名查找。(3)刪除學生信息;按學號、姓名刪除。(4)更新學生信息:找到要修改的學號,修改相應(yīng)信息。(5)排序?qū)W生信息:按某科目或者總分排序。(6)統(tǒng)計學生信息:統(tǒng)計及格和優(yōu)秀人數(shù)。(7)插入學生信息:插入一個新的學生。3 系統(tǒng)總體設(shè)計3.1 系統(tǒng)模塊劃分本系統(tǒng)主要是對學生信息的管理,包括了有關(guān)學生信息的創(chuàng)建、查詢、刪除、更新、排序、統(tǒng)計、插入等功能。整個系統(tǒng)分為以下幾個模塊。1、歡迎界面模塊 本模塊提供歡迎界面的信息輸出模式。2、創(chuàng)建模塊本模塊用于創(chuàng)建學生的信息,包括學生的學號、姓名、性別、語文成績、數(shù)學成績、英語成績、平均成績、總成

7、績。3、查詢模塊 本模塊用于查詢學生的信息,按學號或姓名查詢等。4、刪除模塊 本模塊用于刪除學生的信息,按學號或姓名刪除等。5、更新本模塊 用于根據(jù)輸入要查詢的學號來修改其相應(yīng)的信息。6、排序模塊 本模塊將學生成績按平均分或者總分排序。7、統(tǒng)計模塊 本模塊用于統(tǒng)計各科目及格和優(yōu)秀的人數(shù)。3.2 系統(tǒng)模塊結(jié)構(gòu)圖學生信息管理系統(tǒng)更新信息排序刪除信息按學號刪除根據(jù)學號更新按平均分排序統(tǒng)計信息查詢信息按學號查找按姓名查找按姓名刪除按總分排序及格人數(shù)優(yōu)秀人數(shù)根據(jù)系統(tǒng)功能設(shè)計,對應(yīng)的系統(tǒng)模塊結(jié)構(gòu)圖如圖1所示:圖1 系統(tǒng)模塊結(jié)構(gòu)圖4 系統(tǒng)詳細設(shè)計4.1 系統(tǒng)主界面設(shè)計統(tǒng)過對該系統(tǒng)設(shè)計的了解與討論,同時也為了

8、廣大使用者的方便與快捷。我們最后設(shè)計了這樣的一個界面。首先要讓使用者明白怎樣使用此系統(tǒng)。這就需要通過界面來給他們一個清晰而明白的空間。而我們設(shè)計的這個界面恰好符合了這一要求。通過調(diào)用界面函數(shù)來使使用者能夠很方便的進行查詢、刪除、更新等操作。界面函數(shù)如下:void jm() printf( *n *nn); printf( 歡迎進入學生信息管理系統(tǒng)nnn); printf( 1: 查詢 2: 刪除 3: 更新n); printf( 4: 排序 5: 統(tǒng)計 6: 插入nnn ); printf( 制作者:付利娟n); printf( 和培培n); printf( 陳珊珊n); printf( 帕提

9、古麗n); printf( *n *nn); 4.2初始化學生信息學生信息管理系統(tǒng)的主界面提供進入系統(tǒng)其他功能模塊的方法,使用戶能方便地調(diào)用查詢、 刪除、更新、排序、統(tǒng)計、插入。其代碼如下:/* 初始化順序表 */seqlist seqlistinit( )seqlist l;int i,n;scanf(%d,&n); l.length=n; for(i=0;in;i+) scanf (%d,&l.datai.xh); scanf(%s,l.); scanf(%s,l.datai.sex); scanf(%d,&l.datai.chinese); scanf(%d,&l.d

10、atai.math); scanf(%d,&l.datai.english); scanf(%d,&l.datai.ave); scanf(%d,&l.datai.all);return l; 4.3查找學生信息在初始化線性表后,在界面上輸入1進入查詢模塊,選擇你要進行的操作:按姓名查找或按學號查找。其代碼如下:chazhao(seqlist l) int i=0,a,y; char name10; printf( 1;按姓名查找n 2;按學號查找n); printf(請選擇;n); scanf(%d,&a); if (a=1) printf(請輸入你要查找的名字;n); scanf(%s,n

11、ame); while(i=l.length-1)&(strcmp(name,l.)!=0) i+; if(i=l.length printf(沒有這個學生!n); else printf(學號 姓名 性別 語文 數(shù)學 英語 平均 總分n); printf(%d ,l.datai.xh); printf(%s ,l.); printf(%s ,l.datai.sex); printf(%d ,l.datai.chinese); printf(%d ,l.datai.math); printf(%d ,l.datai.english); printf(%d

12、 ,l.datai.ave); printf(%d n,l.datai.all); else if(a=2) printf(請輸入你要查找的學號;n); scanf(%d,&y); while(i=l.length-1)&(l.datai.xh!=y) i+; if(i=l.length) printf(沒有這個學生!n); else printf(%d ,l.datai.xh); printf(%s ,l.); printf(%s ,l.datai.sex); printf(%d ,l.datai.chinese); printf(%d ,l.datai.math); p

13、rintf(%d ,l.datai.english); printf(%d ,l.datai.ave); printf(%d n,l.datai.all); else if (a=0) jm();4.4刪除學生信息 在初始化線性表后,在界面上輸入2進入刪除模塊,選擇你要進行的操作:根據(jù)學號刪除或根據(jù)姓名刪除。其代碼如下: seqlist delete(seqlist l) int i=0; int a,y; char name10; printf( 1;根據(jù)學號刪除信息n 2;根據(jù)姓名刪除信息n); printf (請選擇;n); scanf(%d,&a); if (a=1) printf (

14、請輸入你要刪除的學號;n); scanf(%d,&y); while(i=l.length-1)&(l.datai.xh!=y) i+; if(i=l.length)printf(feifa shanchu!n); else if(i=l.length-1) l.length-; else for(;il.length;i+) l.datai.xh=l.datai+1.xh; strcpy( l.,l.datai+1.name); strcpy( l.datai.sex,l.datai+1.sex); l.datai.chinese=l.datai+1.chinese;l.

15、datai.math=l.datai+1.math; l.datai.english=l.datai+1.english; l.datai.ave=l.datai+1.ave; l.datai.all=l.datai+1.all; l.length-; return l; else if (a=2) printf(請輸入你要刪除的名字n); scanf (%s,name); while(i=l.length-1)&(strcmp(name,l.)!=0) i+; if(i=l.length) printf(feifa shanchu!n); else if(i=l.leng

16、th-1) l.length-; else for(;il.length;i+) l.datai.xh=l.datai+1.xh; strcpy( l.,l.datai+1.name); strcpy( l.datai.sex,l.datai+1.sex); l.datai.chinese=l.datai+1.chinese; l.datai.math=l.datai+1.math; l.datai.english=l.datai+1.english; l.datai.ave=l.datai+1.ave; l.datai.all=l.datai+1.all; l.lengt

17、h-; return l; else if (a=0)jm(); 4.5更新學生信息由于學生人員的不斷更新,針對其相應(yīng)的學生信息系統(tǒng)也要有相應(yīng)的改變,這樣會比較方便對信息的查詢,刪除,和統(tǒng)計等其他操作。同時也方便了校領(lǐng)導(dǎo)以及其他工作人員操作的方便。/*更新學號為a的學生的成績*/update(seqlist l,int m) int i=0,n,a; printf(1;語文 2;數(shù)學 3;英語n); printf (輸入你想修改的科目;n); scanf(%d,&a); if (a=1) printf(輸入你要修改的學生的語文成績:n,n); scanf(%d,&n); while (l.da

18、tai.xh!=m)&(il.length) i+; if(i=l.length) printf(沒有該學生n); else l.datai.chinese=n; printf(%d ,l.datai.xh); printf(%s ,l.); printf(%s ,l.datai.sex); printf(%d ,l.datai.chinese); printf(%d ,l.datai.math); printf(%d ,l.datai.english); printf(%d ,l.datai.ave); printf(%d n,l.datai.all); else if

19、(a=2) printf(輸入你要修改的學生的數(shù)學成績:n,n); scanf(%d,&n); while (l.datai.xh!=m)&(il.length) i+; if(i=l.length) printf(沒有該學生n); else l.datai.math=n; printf(%d ,l.datai.xh); printf(%s ,l.); printf(%s ,l.datai.sex); printf(%d ,l.datai.chinese); printf(%d ,l.datai.math); printf(%d ,l.datai.english); pri

20、ntf(%d ,l.datai.ave); printf(%d n,l.datai.all); else if (a=3) printf(輸入你要修改的學生的英語成績:n,n); scanf(%d,&n); while (l.datai.xh!=m)&(il.length) i+; if(i=l.length) printf(沒有該學生n); else l.datai.english=n; printf(%d ,l.datai.xh); printf(%s ,l.); printf(%s ,l.datai.sex); printf(%d ,l.datai.chinese);

21、 printf(%d ,l.datai.math); printf(%d ,l.datai.english); printf(%d ,l.datai.ave); printf(%d n,l.datai.all); else if(a=0) jm();4.6排序當面對如此多的學生信息時,如果要更加明了的觀察和分析學生的成績信息時,排序是必然的,因為當你根據(jù)實際情況對一個字段進行排序后,能夠清楚直觀的篩選所要的信息,比如說:評獎學金,三好學生,優(yōu)秀干部,優(yōu)秀團員等一些評選活動。/*根據(jù)選擇的情況排序*/paixu(seqlist l) int i,j,y,m,n,h,t,k,a;char p10,

22、r10; printf(1;平均成績 2;總分n);printf(請輸入你要排序的種類的:n);scanf(%d,&a); if (a=1) for(j=0;jl.length-1;j+) for(i=0;il.datai+1.ave) y=l.datai.xh; l.datai.xh=l.datai+1.xh; l.datai+1.xh=y; /*學號*/ strcpy(p10,l.); strcpy(l.,l.datai+1.name); strcpy(l.datai+1.name,p10);/*名字*/strcpy(r10,l.datai.sex)

23、; strcpy(l.datai.sex,l.datai+1.sex); strcpy(l.datai+1.sex,r10); /*性別*/m=l.datai.chinese; l.datai.chinese=l.datai+1.chinese; l.datai+1.chinese=m; /*語文*/n=l.datai.math; l.datai.math=l.datai+1.math; l.datai+1.math=n; /*數(shù)學*/ k=l.datai.english; l.datai.english=l.datai+1.english; l.datai+1.english=k; /*英語

24、*/t=l.datai.ave; l.datai.ave=l.datai+1.ave; l.datai+1.ave=t; /*平均*/h=l.datai.all; l.datai.all=l.datai+1.all; l.datai+1.all=h; /*總分*/ for(i=0;il.length;i+) printf(%d ,l.datai.xh); printf(%s ,l.); printf(%s ,l.datai.sex); printf(%d ,l.datai.chinese); printf(%d ,l.datai.math); printf(%d ,l.da

25、tai.english); printf(%d ,l.datai.ave); printf(%d n,l.datai.all); else if(a=2) for(j=0;jl.length-1;j+) for(i=0;il.datai+1.all) y=l.datai.xh; l.datai.xh=l.datai+1.xh; l.datai+1.xh=y; /*學號*/ strcpy(p10,l.); strcpy(l.,l.datai+1.name); strcpy(l.datai+1.name,p10);/*名字*/strcpy(r10,l.dat

26、ai.sex); strcpy(l.datai.sex,l.datai+1.sex); strcpy(l.datai+1.sex,r10); /*性別*/ m=l.datai.chinese; l.datai.chinese=l.datai+1.chinese; l.datai+1.chinese=m; /*語文*/n=l.datai.math; l.datai.math=l.datai+1.math; l.datai+1.math=n; /*數(shù)學*/ k=l.datai.english; l.datai.english=l.datai+1.english; l.datai+1.english

27、=k; /*英語*/ t=l.datai.ave; l.datai.ave=l.datai+1.ave; l.datai+1.ave=t; /*平均*/h=l.datai.all; l.datai.all=l.datai+1.all; l.datai+1.all=h; /*總分*/ for(i=0;il.length;i+) printf(%d ,l.datai.xh); printf(%s ,l.); printf(%s ,l.datai.sex); printf(%d ,l.datai.chinese); printf(%d ,l.datai.math); printf

28、(%d ,l.datai.english); printf(%d ,l.datai.ave);待添加的隱藏文字內(nèi)容3 printf(%d n,l.datai.all); else if(a=0) jm();4.7統(tǒng)計學生信息 過去的人工統(tǒng)計既浪費時間而且錯誤率很高,這不僅影響了學校的工作效率,而且還影響了整個學生工作的開展。比如具體的說:統(tǒng)計男生,女生,以及各個年級段的學生的人數(shù),通過此系統(tǒng)能夠簡單方便并且迅速的統(tǒng)計出來,在時間這方面已經(jīng)節(jié)約很多了,這也大大提高了學校的辦事效率和質(zhì)量。/*統(tǒng)計學生信息*/tongji(seqlist l) int i=0,j=0,k,m=0; printf(1

29、.語文 2.數(shù)學 3.英語n); printf(請輸入你要統(tǒng)計的科目:n);scanf(%d,&k); if(k=1) while(il.length) if(l.datai.chinese80) i+;m+; else i+;printf(語文不及格人數(shù)為:%d個n,j);printf(語文優(yōu)秀人數(shù)為:%d個n,m); else if(k=2) while(il.length)if(l.datai.math80) i+; m+; else i+; printf(數(shù)學不及格人數(shù)為:%d個n,j); printf(數(shù)學優(yōu)秀人數(shù)為:%d個n,m); else if(k=3) while(il.le

30、ngth) if(l.datai.english80) i+; m+; else i+; printf(英語不及格人數(shù)為:%d個n,j); printf(英語優(yōu)秀人數(shù)為:%d個n,m); else if(k=0) jm();4.8插入學生信息對一個完善的學生信息來說,插入也是一個不可缺少的模塊。能夠不斷地更新,追加信息,當完成插入信息以后,對其信息等各方面的管理統(tǒng)計都有一個很好的把握,同時也方便了學校其他方面工作的開展。/*在第i個位置插入學生信息*/seqlist insert (seqlist l,int i) int j,xh,chinese,math,english,ave,all; char name10,sex10; if(il.length+1) printf(非法插入n);else printf(請輸入你要插入的學生的信息:n); scanf (%d,&xh); scanf(%s,name); scanf(%s,sex); scanf(%d,&chinese); scanf(%d,&math); scanf(%d,&english); scanf(%d,&ave); scanf(%d,&all); while(i!=l.length+1) for

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論