C語(yǔ)言課程設(shè)計(jì)方案學(xué)生成績(jī)管理系統(tǒng)88_第1頁(yè)
C語(yǔ)言課程設(shè)計(jì)方案學(xué)生成績(jī)管理系統(tǒng)88_第2頁(yè)
已閱讀5頁(yè),還剩30頁(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、蘇州市職業(yè)大學(xué)繼續(xù)教育學(xué)院課程設(shè)計(jì)說(shuō)明書(shū)名稱 C 語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)2012 年 10 月 31 日至 2012 年 11 月 14 日共 2 周院系計(jì)算機(jī)工程系班級(jí) 10Z 計(jì)算機(jī)網(wǎng)絡(luò)學(xué)號(hào) 46姓名錢俊琦系主任李金祥指導(dǎo)教師陸公正目錄1 前言 12 需求分析 12.1 要求 12.2 任務(wù) 12.3 運(yùn)行環(huán)境 12.4 開(kāi)發(fā)工具 13 概要設(shè)計(jì)與詳細(xì)設(shè)計(jì) 23.1 系統(tǒng)流程圖 23.2 杳詢函數(shù)流程圖 34 編碼與實(shí)現(xiàn) 154.1 分析 154.2 具體代碼實(shí)現(xiàn) 165 課程設(shè)計(jì)總結(jié) 30參考文獻(xiàn) 30致謝 301 刖言編寫(xiě)一個(gè)學(xué)生成績(jī)管理系統(tǒng)。先建立一個(gè)有三個(gè)學(xué)生的鏈表,每個(gè)結(jié)點(diǎn)包 含:

2、學(xué)號(hào)、姓名、三門考試成績(jī)(英語(yǔ)、數(shù)學(xué)、計(jì)算機(jī))。要求利用菜單的形 式進(jìn)行管理。2 需求分析2.1 要求(1 1) 用C語(yǔ)言實(shí)現(xiàn)程序設(shè)計(jì);(2 2) 利用結(jié)構(gòu)體進(jìn)行相關(guān)信息處理;(3 3) 畫(huà)出查詢模塊的流程圖;(4 4) 系統(tǒng)的各個(gè)功能模塊要求用函數(shù)的形式實(shí)現(xiàn);(5 5) 界面友好(良好的人機(jī)互交),程序要有注釋。2.2 任務(wù)(1 1) 先建立一個(gè)有三個(gè)學(xué)生的鏈表,每個(gè)結(jié)點(diǎn)包含:學(xué)號(hào)、姓名、 3 3 門考 試成績(jī);(2 2) 輸入姓名查詢?cè)撏瑢W(xué)的信息,并顯示在屏幕上;(3 3) 畫(huà)出所有模塊的流程圖;(4 4) 編寫(xiě)代碼;(5 5) 程序分析與調(diào)試。2.3 運(yùn)行環(huán)境(1)WINDOWS2000

3、/XP系統(tǒng)(2 2)TurboC2.0編譯環(huán)境2.4 開(kāi)發(fā)工具C語(yǔ)言3 概要設(shè)計(jì)與詳細(xì)設(shè)計(jì)3.1 系統(tǒng)流程圖如圖3.1所示。3.2 查詢函數(shù)流程圖i 的1intm;k=OprintfCefrWi入卑之剛目威人o訂少um=O;k=Oo訂8um=oi8um oi fkt;k“oi c=O;m6m*Ik“printf*dt/Leknumek.pintfr%2ftek】 fm】 G;pintfr%2ftek】 fm】 G;printfC%2fA 2fn=kag.printfC%2fA 2fn=kag.IinEkj;1=0break;i”prirfrh6tfi有您腰JW除?4j=4ril;工k“1int

4、m;m=0cprint(a.m);m 4 編碼與實(shí)現(xiàn)4.1 分析在程序的開(kāi)頭部分定義結(jié)構(gòu)體類型和全局的結(jié)構(gòu)體數(shù)組,用來(lái)存 放和提取學(xué)生的信息。struct student /學(xué)生數(shù)據(jù) int num 。struct score f9。char name20。float ave。float sum。用輸入函數(shù) seanf 來(lái)輸入學(xué)生的信息放在程序中,在這個(gè)函數(shù)用 void 語(yǔ)句就能實(shí)現(xiàn)。void luru(struet student a )。 /錄入函數(shù)void paixu(struet student a)。 /排序函數(shù)void eharu(struet student a)。 /插入函數(shù)v

5、oid del(struet student a)。 /刪除函數(shù)void display(struet student a)。 /顯示函數(shù)void eprint(struct student a,int m)。/查詢輸出函數(shù)void ehaxun1(struet student a)。 /學(xué)號(hào)查詢函數(shù)void ehaxun2(struet student a)。 /姓名查詢函數(shù)void eharu(struet student a)paixu(struct student a調(diào)用 paixu(struetstudent a) struet student a。 /存檔函數(shù)在 main 函數(shù)中用

6、 int 函數(shù)定義,然后再運(yùn)用 printf ()函數(shù)就可以提 取學(xué)生的成績(jī)了。而后可以根據(jù)不同的函數(shù)來(lái)刪除、修改學(xué)生的成績(jī)信息。 最終程序結(jié)束,完成學(xué)生成績(jī)信息的錄入、修改、刪除以及查詢。 4.2 具體代碼實(shí)現(xiàn)#include#include #include struct score /各科成績(jī)float s。struct student /學(xué)生數(shù)據(jù)int num。struct score f9。char name20。float ave。float i=0 。/統(tǒng)計(jì)個(gè)數(shù)struct student stu99。void luru(struct student a )。 /

7、錄入函數(shù)void paixu(struct student a)。 /排序函數(shù)void charu(struct student a)。 /插入函數(shù)void del(struct student a)。 /刪除函數(shù)void display(struct student a)。 /顯示函數(shù)void cprint(struct student a,int m)。/ 查詢輸出函數(shù) void chaxun1(structstudent a)。 /學(xué)號(hào)查詢函數(shù) void chaxun2(struct student a)。 /姓名查詢函數(shù) void save(struct student a)。 /存檔

8、函數(shù) void main() / 主函數(shù)開(kāi)始int x,y 。for(y=0。y99。y+)/將所有成績(jī)清空f(shuō)or(x=0 。 x6。 x+)stuy.fx.s=NULLH*n) 。printf(ttt 歡迎使用 n)。 printf(nttt 學(xué)生成績(jī)管理系統(tǒng) nn)*n) 。printf(請(qǐng)選擇功能: nnO.退出n1.錄入新學(xué)生成績(jī)數(shù)據(jù)n2.顯示學(xué)生 成績(jī)數(shù)據(jù)n3.按總成績(jī)排序n4插入學(xué)生成績(jī)數(shù)據(jù)n5刪除學(xué)生成績(jī)數(shù) 據(jù)n6.按學(xué)生學(xué)號(hào)查詢n7.按學(xué)生姓名查詢n8.儲(chǔ)存為 TXT 文件nn)*doscanf(%d,&number)。printf(n-n)。sw

9、itch (number)case 0:break。 /退出case 1:luru(stu)b break。/錄入新學(xué)生成績(jī)數(shù)據(jù) case 2:display(stu。printf(printf(H*菜單printf(nn)break。顯示學(xué)生成績(jī)數(shù)據(jù) case 3:paixu(stu)。 break。 /按總成績(jī)排序case 4:charu(stu。) break。/插入學(xué)生成績(jī)數(shù)據(jù)case 5:del(stu)。break。/刪除學(xué)生成績(jī)數(shù)據(jù) n case 6:chaxun1(stu。 )break。 /按學(xué)生學(xué)號(hào)查詢 case 7:chaxun2(stu。) break。 /按學(xué)生姓名查

10、詢 case 8:save(stu。) break。 /儲(chǔ)存為 TXT 文件while(number!=0) 。 printf(謝謝使用!)。 printf(n) 。void luru(struct student a) /錄入函數(shù)int k。char b。float sum=0。printf( 請(qǐng)輸入科目數(shù) (最多 6 科):)。 scanf(%d,&m) 。printf( 請(qǐng)輸入學(xué)生信息 n)。doprintf( 學(xué)號(hào):)。scanf(%d,&ai.num) 。 printf( 姓名:)。scanf(%s,)。for(k=0 。 km。 k+)pr

11、intf(請(qǐng)輸入第%d 科目成績(jī):,k+1)。float temp。scanf(%f,&temp)。ai.fk.s = temp 。/計(jì)算總分ai.sum=0 。for(k=0 。 km。 k+)ai.sum=ai.sum+ai.fk.s 。/計(jì)算平均分ai.ave=0 。ai.ave=ai.sum/m。i+。printf( 是否繼續(xù)錄入學(xué)生數(shù)據(jù) ?n(Y/N) 。fflush(stdin) 。 /刷新標(biāo)準(zhǔn)輸入緩沖區(qū)scanf(%c,&b)。while(b=Y|b=y) 。display(a)。void display(struct student a) /顯示函數(shù)int k,

12、m。system(cls)。 /清屏printf(學(xué)號(hào)t 姓名t 第 1 科t 第 2 科t 第 3 科t 第 4 科t 第 5 科t 第 6 科t總分t 平均分n)。printf(n-nn)。for(k=0。ki。k+)printf(%dt%st,ak.num,) 。for(m=0。 m6。 m+)printf(%.2ft,ak.fm.s) 。printf(%.2ft%.2fn,ak.sum,ak.ave) 。printf(n-nn) 。printf(請(qǐng)選擇功能:nO.退出t1.錄入t2.顯示t3.排序t4.插入t5.刪除 t6.學(xué)號(hào)查詢 7.姓名查詢t8.存檔nn)。void

13、 paixu(struct student a) /排序函數(shù)int j,k 。struct student temp。for(k=0 。 ki 。 k+)for(j=0 。 ji-k 。 j+)if(aj.aveaj+1.ave)temp=aj 。aj=aj+1。aj+1=temp。printf( 按總分排序后的學(xué)生數(shù)據(jù)如下 n) display(a)。void charu(struct student a) /插入函數(shù)int j,k,m,x 。struct student temp。for(x=0。x6。x+)temp.fx.s=0 。/將 temp 中的所有成績(jī)清除 printf( 請(qǐng)輸入

14、成績(jī)數(shù)目 :)。 scanf(%d,&m) 。printf ( 請(qǐng)輸入學(xué)生信息 n) 。 printf ( 學(xué)號(hào): ) 。 scanf (%d,&temp.num) 。printf( 姓名:)。 scanf(%s,)。for(k=0 。 km。 k+)printf(請(qǐng)輸入第%d 科目成績(jī):,k+1)。 float tt。scanf(%f,&tt) 。 temp.fk.s = tt。/計(jì)算總分temp.sum=0。for(k=0。km。k+)temp.sum=temp.sum+temp.fk.s。/計(jì)算平均分 temp.ave=temp.sum/m。fo

15、r(j=0 。 jj 。 k-)ak=ak-1。i+。aj=temp。display(a)。void del(struct student a) /刪除函數(shù)int k,j 。printf( 請(qǐng)輸入要?jiǎng)h除的學(xué)生學(xué)號(hào): )。 scanf(%d,&k) 。for(j=0 。 ji 。 j+)if(k=aj.num) / 記錄要?jiǎng)h除的學(xué)生的位置break。if(ji)for(k=j。ki-1。k+) aj=aj+1。i- 。printf( 刪除后的學(xué)生數(shù)據(jù) n)。display(a)。elseprintf(ntt 沒(méi)有您要?jiǎng)h除的學(xué)生數(shù)據(jù) nn-) 。printf(n 請(qǐng)選擇功能:nO.退出t1

16、.錄入t2.顯示t3.排序t4.插入t5.刪 除t6.學(xué)號(hào)查詢 7.姓名查詢t8.存檔nn)。void cpri nt(struct stude nt a,i nt m) 查詢輸出函數(shù)int o。system(cls)。 /清屏printf(學(xué)號(hào)t 姓名t 第 1 科t 第 2 科t 第 3 科t 第 4 科t 第 5 科t 第 6 科t 總分t 平均分n)。printf(n-nn) 。printf(%dt%st,am.num,) 。for(o=0。 o6。 o+)printf(%.2ft,am.fo.s) 。printf(%.2ft%.2fn,am.sum,am.ave) 。p

17、rintf(n-nn)。printf(n 請(qǐng)選擇功能:nO.退出t1.錄入t2.顯示t3.排序t4.插入t5.刪 除t6.學(xué)號(hào)查詢 7.姓名查詢t8.存檔nn)。void chaxu n1(struct stude nt a)/學(xué)號(hào)查詢函數(shù)int m,t。printf( 請(qǐng)輸入要查詢的學(xué)號(hào) :)。scanf(%d,&t) 。for(m=0。 m=i。 m+)if(am.num=t)cprint(a,m)。break。if(m=i&am.num!=t)system(cls)。 /清屏printf(ntt 沒(méi)有查到您要找的學(xué)生資料 n)。printf(n-n) 。printf(n

18、請(qǐng)選擇功能:n0.退出t1.錄入t2.顯示t3.排序t4.插入t5.刪 除t6.學(xué)號(hào)查詢 7.姓名查詢t8.存檔nn)。void chaxu n2(struct stude nt a)/姓名查詢函數(shù)int m。char t20。printf( 請(qǐng)輸入要查詢的姓名 :)。scanf(%s,t)。for(m=0。m=i。m+)if(strcmp(,t)=0)cprint(a,m)。break。if(m=i&(strcmp(,t)!=0)system(cls)。 /清屏printf(ntt 沒(méi)有查到您要找的學(xué)生資料 n)。printf(n-n) 。printf(n

19、 請(qǐng)選擇功能:n0.退出t1.錄入t2.顯示t3.排序t4.插入t5.刪 除t6.學(xué)號(hào)查詢 7.姓名查詢t8.存檔nn)。void save(struct stude nt a)/存 檔函數(shù)int k,m。FILE * fpFile 。fpFile = fopen(student.txt, w) 。fprintf(fpFile,學(xué)號(hào)t 姓名t 第 1 科t 第 2 科t 第 3 科t 第 4 科t 第 5 科 t 第 6科t 總分t 平均分n)。fprintf(fpFile,n-nn) 。for(k=0 。 ki。 k+)fprintf(fpFile,%dt%st,ak.num,

20、) 。for(m=0 。 m6。 m+)fprintf(fpFile,%.2ft,ak.fm.s) 。fprintf(fpFile,%.2ft%.2fn,ak.sum,ak.ave) 。fprintf(fpFile,n-nn) 。fclose(fpFile)。printf(”已存到根目錄 student.txt 文件)。printf(n-n)。printf(n 請(qǐng)選擇功能:n0.退出t1.錄入t2.顯示t3.排序t4.插入t5.刪 除t6.學(xué)號(hào)查詢 7.姓名查詢t8.存檔nn)。結(jié)果如圖所示uments andSettingsAdministratorSDebugCpp 1 .exe* 口 X歡迎使用學(xué)生成績(jī)管理系統(tǒng)菜單”istr據(jù)數(shù)據(jù)YTHJHJ-*!/丄績(jī)數(shù)數(shù)數(shù)詢?cè)兣3煽?jī)螯i躋先成幾成號(hào)名 E學(xué)專 1H 生學(xué)姓T

溫馨提示

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