![C語言課程設(shè)計(jì)方案學(xué)生成績管理系統(tǒng)88_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/21/be249654-f8f5-4a8c-9b6e-b01bd452f24a/be249654-f8f5-4a8c-9b6e-b01bd452f24a1.gif)
![C語言課程設(shè)計(jì)方案學(xué)生成績管理系統(tǒng)88_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/21/be249654-f8f5-4a8c-9b6e-b01bd452f24a/be249654-f8f5-4a8c-9b6e-b01bd452f24a2.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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ì)說明書名稱 C 語言程序設(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 開發(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 刖言編寫一個(gè)學(xué)生成績管理系統(tǒng)。先建立一個(gè)有三個(gè)學(xué)生的鏈表,每個(gè)結(jié)點(diǎn)包 含:
2、學(xué)號(hào)、姓名、三門考試成績(英語、數(shù)學(xué)、計(jì)算機(jī))。要求利用菜單的形 式進(jìn)行管理。2 需求分析2.1 要求(1 1) 用C語言實(shí)現(xiàn)程序設(shè)計(jì);(2 2) 利用結(jié)構(gòu)體進(jìn)行相關(guān)信息處理;(3 3) 畫出查詢模塊的流程圖;(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 門考 試成績;(2 2) 輸入姓名查詢?cè)撏瑢W(xué)的信息,并顯示在屏幕上;(3 3) 畫出所有模塊的流程圖;(4 4) 編寫代碼;(5 5) 程序分析與調(diào)試。2.3 運(yùn)行環(huán)境(1)WINDOWS2000
3、/XP系統(tǒng)(2 2)TurboC2.0編譯環(huán)境2.4 開發(fā)工具C語言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 分析在程序的開頭部分定義結(jié)構(gòu)體類型和全局的結(jié)構(gòu)體數(shù)組,用來存 放和提取學(xué)生的信息。struct student /學(xué)生數(shù)據(jù) int num 。struct score f9。char name20。float ave。float sum。用輸入函數(shù) seanf 來輸入學(xué)生的信息放在程序中,在這個(gè)函數(shù)用 void 語句就能實(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ù)不同的函數(shù)來刪除、修改學(xué)生的成績信息。 最終程序結(jié)束,完成學(xué)生成績信息的錄入、修改、刪除以及查詢。 4.2 具體代碼實(shí)現(xiàn)#include#include #include struct score /各科成績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ù)開始int x,y 。for(y=0。y99。y+)/將所有成績清空for(x=0 。 x6。 x+)stuy.fx.s=NULLH*n) 。printf(ttt 歡迎使用 n)。 printf(nttt 學(xué)生成績管理系統(tǒng) nn)*n) 。printf(請(qǐng)選擇功能: nnO.退出n1.錄入新學(xué)生成績數(shù)據(jù)n2.顯示學(xué)生 成績數(shù)據(jù)n3.按總成績排序n4插入學(xué)生成績數(shù)據(jù)n5刪除學(xué)生成績數(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é)生成績數(shù)據(jù) case 2:display(stu。printf(printf(H*菜單printf(nn)break。顯示學(xué)生成績數(shù)據(jù) case 3:paixu(stu)。 break。 /按總成績排序case 4:charu(stu。) break。/插入學(xué)生成績數(shù)據(jù)case 5:del(stu)。break。/刪除學(xué)生成績數(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 科目成績:,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 中的所有成績清除 printf( 請(qǐng)輸入
14、成績數(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 科目成績:,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 沒有您要?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 沒有查到您要找的學(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 沒有查到您要找的學(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é)生成績管理系統(tǒng)菜單”istr據(jù)數(shù)據(jù)YTHJHJ-*!/丄績數(shù)數(shù)數(shù)詢?cè)兣3煽凃黫躋先成幾成號(hào)名 E學(xué)專 1H 生學(xué)姓T
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023八年級(jí)歷史上冊(cè) 第五單元 從國共合作到國共對(duì)立第17課 中國工農(nóng)紅軍長征說課稿 新人教版
- 3 歡歡喜喜慶國慶(說課稿)-2024-2025學(xué)年統(tǒng)編版道德與法治二年級(jí)上冊(cè)
- Module 3 Unit 1 What are you doing?(說課稿)-2024-2025學(xué)年外研版(三起)英語四年級(jí)上冊(cè)
- 11《趙州橋》說課稿-2023-2024學(xué)年統(tǒng)編版語文三年級(jí)下冊(cè)
- 1學(xué)會(huì)尊重(說課稿)-2023-2024學(xué)年道德與法治六年級(jí)下冊(cè)統(tǒng)編版001
- Unit 3 Festivals and Customs Extended reading 說課稿-2024-2025學(xué)年高中英語譯林版(2020)必修第二冊(cè)
- 2023九年級(jí)物理下冊(cè) 專題六 材料、信息和能源B 能源學(xué)說課稿 (新版)新人教版
- 2023二年級(jí)數(shù)學(xué)下冊(cè) 六 田園小衛(wèi)士-萬以內(nèi)的加減法(二)我學(xué)會(huì)了嗎說課稿 青島版六三制
- 2024-2025學(xué)年高中化學(xué) 專題五 電化學(xué)問題研究 5.1 原電池說課稿 蘇教版選修6
- 《10 身邊的新聞?wù){(diào)查》(說課稿)-2023-2024學(xué)年三年級(jí)上冊(cè)綜合實(shí)踐活動(dòng)吉美版
- 簡(jiǎn)易勞務(wù)合同電子版
- 明代文學(xué)緒論
- 通用稅務(wù)自查情況說明報(bào)告(7篇)
- 體育賽事的策劃、組織與實(shí)施 體育賽事利益相關(guān)者
- 分析化學(xué)(高職)PPT完整版全套教學(xué)課件
- 晚熟的人(莫言諾獎(jiǎng)后首部作品)
- m拱頂儲(chǔ)罐設(shè)計(jì)計(jì)算書
- 2023外貿(mào)業(yè)務(wù)協(xié)調(diào)期中試卷
- 新人教鄂教版(2017)五年級(jí)下冊(cè)科學(xué)全冊(cè)教學(xué)課件
- GB/T 29361-2012電子物證文件一致性檢驗(yàn)規(guī)程
- GB/T 16475-1996變形鋁及鋁合金狀態(tài)代號(hào)
評(píng)論
0/150
提交評(píng)論