

下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、蘇州市職業大學繼續教育學院課程設計說明書名稱 C 語言程序設計課程設計2012 年 10 月 31 日至 2012 年 11 月 14 日共 2 周院系計算機工程系班級 10Z 計算機網絡學號 46姓名錢俊琦系主任李金祥指導教師陸公正目錄1 前言 12 需求分析 12.1 要求 12.2 任務 12.3 運行環境 12.4 開發工具 13 概要設計與詳細設計 23.1 系統流程圖 23.2 杳詢函數流程圖 34 編碼與實現 154.1 分析 154.2 具體代碼實現 165 課程設計總結 30參考文獻 30致謝 301 刖言編寫一個學生成績管理系統。先建立一個有三個學生的鏈表,每個結點包 含:
2、學號、姓名、三門考試成績(英語、數學、計算機)。要求利用菜單的形 式進行管理。2 需求分析2.1 要求(1 1) 用C語言實現程序設計;(2 2) 利用結構體進行相關信息處理;(3 3) 畫出查詢模塊的流程圖;(4 4) 系統的各個功能模塊要求用函數的形式實現;(5 5) 界面友好(良好的人機互交),程序要有注釋。2.2 任務(1 1) 先建立一個有三個學生的鏈表,每個結點包含:學號、姓名、 3 3 門考 試成績;(2 2) 輸入姓名查詢該同學的信息,并顯示在屏幕上;(3 3) 畫出所有模塊的流程圖;(4 4) 編寫代碼;(5 5) 程序分析與調試。2.3 運行環境(1)WINDOWS2000
3、/XP系統(2 2)TurboC2.0編譯環境2.4 開發工具C語言3 概要設計與詳細設計3.1 系統流程圖如圖3.1所示。3.2 查詢函數流程圖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 編碼與實現4.1 分析在程序的開頭部分定義結構體類型和全局的結構體數組,用來存 放和提取學生的信息。struct student /學生數據 int num 。struct score f9。char name20。float ave。float sum。用輸入函數 seanf 來輸入學生的信息放在程序中,在這個函數用 void 語句就能實現。void luru(struet student a )。 /錄入函數void paixu(struet student a)。 /排序函數void eharu(struet student a)。 /插入函數v
5、oid del(struet student a)。 /刪除函數void display(struet student a)。 /顯示函數void eprint(struct student a,int m)。/查詢輸出函數void ehaxun1(struet student a)。 /學號查詢函數void ehaxun2(struet student a)。 /姓名查詢函數void eharu(struet student a)paixu(struct student a調用 paixu(struetstudent a) struet student a。 /存檔函數在 main 函數中用
6、 int 函數定義,然后再運用 printf ()函數就可以提 取學生的成績了。而后可以根據不同的函數來刪除、修改學生的成績信息。 最終程序結束,完成學生成績信息的錄入、修改、刪除以及查詢。 4.2 具體代碼實現#include#include #include struct score /各科成績float s。struct student /學生數據int num。struct score f9。char name20。float ave。float i=0 。/統計個數struct student stu99。void luru(struct student a )。 /
7、錄入函數void paixu(struct student a)。 /排序函數void charu(struct student a)。 /插入函數void del(struct student a)。 /刪除函數void display(struct student a)。 /顯示函數void cprint(struct student a,int m)。/ 查詢輸出函數 void chaxun1(structstudent a)。 /學號查詢函數 void chaxun2(struct student a)。 /姓名查詢函數 void save(struct student a)。 /存檔
8、函數 void main() / 主函數開始int x,y 。for(y=0。y99。y+)/將所有成績清空for(x=0 。 x6。 x+)stuy.fx.s=NULLH*n) 。printf(ttt 歡迎使用 n)。 printf(nttt 學生成績管理系統 nn)*n) 。printf(請選擇功能: nnO.退出n1.錄入新學生成績數據n2.顯示學生 成績數據n3.按總成績排序n4插入學生成績數據n5刪除學生成績數 據n6.按學生學號查詢n7.按學生姓名查詢n8.儲存為 TXT 文件nn)*doscanf(%d,&number)。printf(n-n)。sw
9、itch (number)case 0:break。 /退出case 1:luru(stu)b break。/錄入新學生成績數據 case 2:display(stu。printf(printf(H*菜單printf(nn)break。顯示學生成績數據 case 3:paixu(stu)。 break。 /按總成績排序case 4:charu(stu。) break。/插入學生成績數據case 5:del(stu)。break。/刪除學生成績數據 n case 6:chaxun1(stu。 )break。 /按學生學號查詢 case 7:chaxun2(stu。) break。 /按學生姓名查
10、詢 case 8:save(stu。) break。 /儲存為 TXT 文件while(number!=0) 。 printf(謝謝使用!)。 printf(n) 。void luru(struct student a) /錄入函數int k。char b。float sum=0。printf( 請輸入科目數 (最多 6 科):)。 scanf(%d,&m) 。printf( 請輸入學生信息 n)。doprintf( 學號:)。scanf(%d,&ai.num) 。 printf( 姓名:)。scanf(%s,)。for(k=0 。 km。 k+)pr
11、intf(請輸入第%d 科目成績:,k+1)。float temp。scanf(%f,&temp)。ai.fk.s = temp 。/計算總分ai.sum=0 。for(k=0 。 km。 k+)ai.sum=ai.sum+ai.fk.s 。/計算平均分ai.ave=0 。ai.ave=ai.sum/m。i+。printf( 是否繼續錄入學生數據 ?n(Y/N) 。fflush(stdin) 。 /刷新標準輸入緩沖區scanf(%c,&b)。while(b=Y|b=y) 。display(a)。void display(struct student a) /顯示函數int k,
12、m。system(cls)。 /清屏printf(學號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(請選擇功能:nO.退出t1.錄入t2.顯示t3.排序t4.插入t5.刪除 t6.學號查詢 7.姓名查詢t8.存檔nn)。void
13、 paixu(struct student a) /排序函數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( 按總分排序后的學生數據如下 n) display(a)。void charu(struct student a) /插入函數int j,k,m,x 。struct student temp。for(x=0。x6。x+)temp.fx.s=0 。/將 temp 中的所有成績清除 printf( 請輸入
14、成績數目 :)。 scanf(%d,&m) 。printf ( 請輸入學生信息 n) 。 printf ( 學號: ) 。 scanf (%d,&temp.num) 。printf( 姓名:)。 scanf(%s,)。for(k=0 。 km。 k+)printf(請輸入第%d 科目成績:,k+1)。 float tt。scanf(%f,&tt) 。 temp.fk.s = tt。/計算總分temp.sum=0。for(k=0。km。k+)temp.sum=temp.sum+temp.fk.s。/計算平均分 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) /刪除函數int k,j 。printf( 請輸入要刪除的學生學號: )。 scanf(%d,&k) 。for(j=0 。 ji 。 j+)if(k=aj.num) / 記錄要刪除的學生的位置break。if(ji)for(k=j。ki-1。k+) aj=aj+1。i- 。printf( 刪除后的學生數據 n)。display(a)。elseprintf(ntt 沒有您要刪除的學生數據 nn-) 。printf(n 請選擇功能:nO.退出t1
16、.錄入t2.顯示t3.排序t4.插入t5.刪 除t6.學號查詢 7.姓名查詢t8.存檔nn)。void cpri nt(struct stude nt a,i nt m) 查詢輸出函數int o。system(cls)。 /清屏printf(學號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 請選擇功能:nO.退出t1.錄入t2.顯示t3.排序t4.插入t5.刪 除t6.學號查詢 7.姓名查詢t8.存檔nn)。void chaxu n1(struct stude nt a)/學號查詢函數int m,t。printf( 請輸入要查詢的學號 :)。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 沒有查到您要找的學生資料 n)。printf(n-n) 。printf(n
18、請選擇功能:n0.退出t1.錄入t2.顯示t3.排序t4.插入t5.刪 除t6.學號查詢 7.姓名查詢t8.存檔nn)。void chaxu n2(struct stude nt a)/姓名查詢函數int m。char t20。printf( 請輸入要查詢的姓名 :)。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 沒有查到您要找的學生資料 n)。printf(n-n) 。printf(n
19、 請選擇功能:n0.退出t1.錄入t2.顯示t3.排序t4.插入t5.刪 除t6.學號查詢 7.姓名查詢t8.存檔nn)。void save(struct stude nt a)/存 檔函數int k,m。FILE * fpFile 。fpFile = fopen(student.txt, w) 。fprintf(fpFile,學號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 請選擇功能:n0.退出t1.錄入t2.顯示t3.排序t4.插入t5.刪 除t6.學號查詢 7.姓名查詢t8.存檔nn)。結果如圖所示uments andSettingsAdministratorSDebugCpp 1 .exe* 口 X歡迎使用學生成績管理系統菜單”istr據數據YTHJHJ-*!/丄績數數數詢詢牛成績螯i躋先成幾成號名 E學專 1H 生學姓T
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電梯維保合同附加協議
- 電機代理銷售合同協議
- 電子車間主任合同協議
- 電腦上門維修合同協議
- 電鍍產品收購合同協議
- 特種物資出售合同協議
- 電線電路維保合同協議
- 電梯維保合同變更協議
- 農業植保員考試的內容設置與變化趨勢試題及答案
- 足球裁判員考試深度解析試題及答案
- 2024年永康市第一人民醫院高層次衛技人才招聘筆試歷年參考題庫頻考點附帶答案
- 2025年重慶市建筑安全員《A證》考試題庫及答案
- 國家安全教育大學生讀本教案第六章 堅持以經濟安全為基礎
- 美歐金融信用坍塌對人民幣國際化的影響
- 2025年沈陽國有資產托管中心有限公司、沈陽鴻翼企業管理有限公司、沈陽三昇企業管理有限公司招聘筆試參考題庫附帶答案詳解
- 尿酸高的中醫治療
- 湖北武漢市2025屆高三第一次調研測試數學試卷含解析
- 俄羅斯文化、飲食與習俗特色宣傳
- 租房合同范本下載(可直接打印)
- 人力資源專員招聘合同模板
- 貴州省遵義市鳳岡縣二中2025屆高三最后一卷英語試卷含解析
評論
0/150
提交評論