C語(yǔ)言_學(xué)生信息管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第1頁(yè)
C語(yǔ)言_學(xué)生信息管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第2頁(yè)
C語(yǔ)言_學(xué)生信息管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第3頁(yè)
C語(yǔ)言_學(xué)生信息管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第4頁(yè)
C語(yǔ)言_學(xué)生信息管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、學(xué)生管理系統(tǒng)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)?zāi)康纳蠈W(xué)期學(xué)習(xí)了C語(yǔ)言的內(nèi)容,學(xué)生信息管理系統(tǒng)有助于對(duì)C語(yǔ)言的學(xué)習(xí)的進(jìn)一步鞏固,在本系統(tǒng)可以增強(qiáng)對(duì)指針、數(shù)組、文件、函數(shù)等基本知識(shí)的進(jìn)一步理解。另外學(xué)生管理系統(tǒng)也是學(xué)校常用的基本系統(tǒng)之一,它有助于學(xué)校對(duì)學(xué)生的基本管理。問(wèn)題分析學(xué)生信息管理系統(tǒng)是對(duì)學(xué)生信息的基本管理,它包括:學(xué)生信息的輸入、學(xué)生信息的修改、學(xué)生信息的查詢、學(xué)生信息的刪除、學(xué)生成績(jī)的排序、學(xué)生信息的輸出。使用模塊化編程的方法每項(xiàng)功能有一個(gè)函數(shù)來(lái)完成,對(duì)應(yīng)如下:學(xué)生信息的輸入=void jia(Link i) 學(xué)生信息的修改=void xiu(Link i)學(xué)生信息的查詢=void cha(Link i) 學(xué)

2、生信息的刪除=void shan(Link i)學(xué)生信息的排序=void pai(Link i) 學(xué)生信息的保存=void bao(Link i)為了避免指針的過(guò)于復(fù)雜使用typedef函數(shù)創(chuàng)建了一個(gè)struct的同義字程序如下:typedef struct nodestruct student data;struct node *next;Node,*Link;這是問(wèn)題變得更易于描述、和程序的設(shè)計(jì)。另外本程序運(yùn)用動(dòng)態(tài)存儲(chǔ)、二進(jìn)制進(jìn)行存貯。為了使程序變得更加明了設(shè)計(jì)另外一個(gè)定位Node型的函數(shù)(Node *Locate(Link i,char find,char nameornum))這對(duì)于查

3、詢、刪除、修改中非常重要。輸入密碼開(kāi)始操作程序的設(shè)計(jì)流程如下:學(xué)生信息顯示學(xué)生成績(jī)統(tǒng)計(jì)學(xué)生信息的排序?qū)W生信息的查詢學(xué)生信息的修改學(xué)生信息的輸入 學(xué)生信息的保存學(xué)生信息的刪除0返回菜單,選擇操作主要算法的設(shè)計(jì)主函數(shù)的算法設(shè)計(jì)首先,進(jìn)入設(shè)定密碼(123456),進(jìn)入菜單,然后選擇操作(運(yùn)用swith語(yǔ)句),調(diào)用各子函數(shù),在退出程序時(shí)檢驗(yàn)文件是否保存(設(shè)定全局變量wang若不改變或以保存則為0,否則為1)退出程序。在返回操作中運(yùn)用while語(yǔ)句進(jìn)行控制若選擇0則返回菜單。讀入信息:while(!feof(fp)p=(Node*)malloc(sizeof(Node);if(fread(p,sizeo

4、f(Node),1,fp)從二進(jìn)制文件中讀入信息p-next=NULL;r-next=p;r=p;/count+;fclose(fp);控制保存信息: if(wang=1)getchar();printf(n=提示:資料已經(jīng)改動(dòng),是否將改動(dòng)保存(y/n)n);printf(請(qǐng)輸入你的選擇:);scanf(%c,&ch);if(ch=y|ch=Y)bao(i); printf(n=提示:你已經(jīng)退出系統(tǒng),再見(jiàn)!n);break;各子函數(shù)的算法設(shè)計(jì)一些顯示操作密碼函數(shù)用遞歸的方法設(shè)計(jì),其它顯示操作均用輸出相應(yīng)的內(nèi)容即可遞歸的運(yùn)用:void mima()char mi10; printf(=請(qǐng)輸入密碼

5、:); scanf(%s,mi); if(strcmp(mi,123456)=0) return; else printf(=沒(méi)有記住密碼!請(qǐng)重新輸入n); mima();定位操作函數(shù)Node *Locate(Link i,char find,char nameornum)引入Link型I,字符型的find,namenum運(yùn)用strcmp進(jìn)行比較返回其地址即可。學(xué)生信息的輸入函數(shù)Void jia(Link i)首先,申請(qǐng)空間(p=(Node *)malloc(sizeof(Node);)輸入學(xué)生信息,然后做總分計(jì)算和平均分的計(jì)算 p-data.zong=p-data.ying+p-data.s

6、hu+p-data.c;p-data.ping=p-data.zong/3; 4、 學(xué)生信息的修改 void xiu(Link i)首先選擇修改信息,然后定位(p=Locate(i,find,num);)輸入修改信息;若成功則printf(=修改成功!n);否則調(diào)用報(bào)錯(cuò)函數(shù)wrong();學(xué)生信息的查詢 void cha(Link i)選擇查詢方式printf(=1按學(xué)號(hào)查詢n=2按姓名查詢n); 然后定位,在調(diào)用輸出函數(shù);printf( 查詢結(jié)果n);xian();shuchu();shuchu1(p);xian();6、學(xué)生信息的刪除 void shan(Link i)首先查詢要?jiǎng)h除的學(xué)生

7、信息,然后調(diào)用定位函數(shù)進(jìn)行定位,刪除操作;if(p)r=i;while(r-next!=p)r=r-next;r-next=p-next; free(p);printf(=提示:該學(xué)生已經(jīng)成功刪除!n);學(xué)生信息的排序void pai(Link i)首先選擇排序規(guī)則printf(=1按C語(yǔ)言排序tt=2按數(shù)學(xué)排序n=3按英語(yǔ)排序tt=4按總分排序n);然后新建鏈接(s=(Node*)malloc(sizeof(Node);/新建節(jié)點(diǎn)用于保存信息)然后按照冒泡排序的思想排序: while(rr-next!=NULL&rr-next-data.c=p-data.c) rr=rr-next;/由大到

8、小 if(rr-next=NULL) rr-next=s; else s-next=rr-next; rr-next=s; p=p-next; 學(xué)生信息的保存void bao(Link i)本程序運(yùn)用二進(jìn)制進(jìn)行保存打開(kāi)文件(s.txt)進(jìn)行讀寫(xiě)(fp=fopen(s.txt,wb);)寫(xiě)入保存內(nèi)容 while(p) if(fwrite(p,sizeof(Node),1,fp)=1)p=p-next;count+;elseflag=0;break;學(xué)生成績(jī)的統(tǒng)計(jì)void tong(Link i),先選擇你的分?jǐn)?shù)線:printf(請(qǐng)輸入分?jǐn)?shù)線:);scanf(%d,&n);然后統(tǒng)計(jì)出高于這一分?jǐn)?shù)的

9、人數(shù); 10、學(xué)生信息的顯示void xianshi(Link i)直接調(diào)用輸出函數(shù)即可:printf( 顯示信息n);xian();shuchu();printf(n);while(p)shuchu1(p);p=p-next;xian();上機(jī)調(diào)試過(guò)程在調(diào)試過(guò)程中出現(xiàn)了,幾十條的錯(cuò)誤!特別是在排序這一函數(shù)調(diào)試了無(wú)數(shù)次,主要是指針與動(dòng)態(tài)存貯問(wèn)題,和建立新的鏈接,過(guò)程中理解不夠深刻。在調(diào)試排序這一功能時(shí)最為復(fù)雜,在新建鏈接時(shí)有 i-next=ii-next;把排序好的順序復(fù)制給新的鏈表,在調(diào)試過(guò)程中有很大的麻煩,注:具體調(diào)試過(guò)程,麻煩在編程時(shí),沒(méi)有認(rèn)真記錄,現(xiàn)在想不起來(lái)了個(gè)人心得通過(guò)C語(yǔ)言編程的

10、能力有了提高,特別是在指針、數(shù)組、函數(shù)和結(jié)構(gòu)體方面有了很大提高,另外還學(xué)習(xí)了課本沒(méi)有講到的知識(shí),學(xué)會(huì)了使用模塊化編程的簡(jiǎn)單方法,另外在對(duì)話框的編程要求美觀、方面也有了體會(huì)。指針是C語(yǔ)言的靈魂,也是本程序的靈魂,它在本程序中既有“穿針引線”的作用(利用指針傳值),也起到了對(duì)數(shù)據(jù)進(jìn)行分析、存貯、讀取等重要的作用,本程序在使用指針過(guò)程中對(duì)指針進(jìn)行了簡(jiǎn)化也是一個(gè)“亮點(diǎn)”,它使程序變得通俗易懂,也降低了程序的難度。以后要對(duì)這種方法進(jìn)行深刻的體會(huì)。數(shù)組在程序中有著很重要的作用,對(duì)數(shù)據(jù)的貯存、輸入、讀取起著很重要的作用,本程序幾乎所有數(shù)據(jù)都以數(shù)組進(jìn)行輸入、貯存、讀取方便了對(duì)數(shù)據(jù)的處理和輸入,數(shù)組的的使用在本

11、程序中有很大的好處。函數(shù)是實(shí)現(xiàn)模塊化編程的基礎(chǔ),它使程序變得方面易懂,對(duì)修改起了很大作用,也降低了編程的難度,一個(gè)函數(shù)就是一個(gè)功能,它使各個(gè)功能之間有了一定的獨(dú)立性,一個(gè)函數(shù)的錯(cuò)誤,不會(huì)導(dǎo)致整個(gè)程序的失?。ㄖ骱瘮?shù)除外),對(duì)函數(shù)的良好應(yīng)用時(shí)在本程序中又以深刻的體會(huì)。也有了很大提高。結(jié)構(gòu)體的使用,為本程序提供了很大方面,也提高了本程序的可讀性,結(jié)構(gòu)數(shù)組方面了對(duì)數(shù)據(jù)的管理。文件的讀取與存貯使數(shù)據(jù)可以保存下來(lái),這也是在學(xué)校的學(xué)習(xí)過(guò)程中沒(méi)有掌握的內(nèi)容,在開(kāi)始時(shí)遇到了不小的困難。typedef struct nodestruct student data;struct node *next;Node,*Link;以上程序時(shí)在課本中沒(méi)有基礎(chǔ)的知識(shí),(它用使用網(wǎng)上的程序中的一段)也是是本程序變得好寫(xiě)的關(guān)鍵所在,它把復(fù)雜的指針問(wèn)題,變得簡(jiǎn)單。另外、感覺(jué)到在學(xué)校編的程序時(shí)那樣的簡(jiǎn)短(都不足1k)、自己需要在編程方面進(jìn)一步提高,也提高了自己對(duì)編程的興趣,使自己對(duì)編程有了更深的理解,體會(huì)到編程的樂(lè)趣。參考書(shū)目1、C語(yǔ)言程序設(shè)計(jì) 何欽銘 顏暉 高等教育

溫馨提示

  • 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)論