

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、蘇州市職業(yè)大學繼續(xù)教育學院課程設計說明書名稱 C 語言程序設計課程設計2012 年 10 月 31 日至 2012 年 11 月 14 日共 2 周院系計算機工程系班級 10Z 計算機網(wǎng)絡學號 46姓名錢俊琦系主任李金祥指導教師陸公正目錄1 前言 12 需求分析 12.1 要求 12.2 任務 12.3 運行環(huán)境 12.4 開發(fā)工具 13 概要設計與詳細設計 23.1 系統(tǒng)流程圖 23.2 杳詢函數(shù)流程圖 34 編碼與實現(xiàn) 154.1 分析 154.2 具體代碼實現(xiàn) 165 課程設計總結 30參考文獻 30致謝 301 刖言編寫一個學生成績管理系統(tǒng)。先建立一個有三個學生的鏈表,每個結點包 含:
2、學號、姓名、三門考試成績(英語、數(shù)學、計算機)。要求利用菜單的形 式進行管理。2 需求分析2.1 要求(1 1) 用C語言實現(xiàn)程序設計;(2 2) 利用結構體進行相關信息處理;(3 3) 畫出查詢模塊的流程圖;(4 4) 系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);(5 5) 界面友好(良好的人機互交),程序要有注釋。2.2 任務(1 1) 先建立一個有三個學生的鏈表,每個結點包含:學號、姓名、 3 3 門考 試成績;(2 2) 輸入姓名查詢該同學的信息,并顯示在屏幕上;(3 3) 畫出所有模塊的流程圖;(4 4) 編寫代碼;(5 5) 程序分析與調試。2.3 運行環(huán)境(1)WINDOWS2000
3、/XP系統(tǒng)(2 2)TurboC2.0編譯環(huán)境2.4 開發(fā)工具C語言3 概要設計與詳細設計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 編碼與實現(xiàn)4.1 分析在程序的開頭部分定義結構體類型和全局的結構體數(shù)組,用來存 放和提取學生的信息。struct student /學生數(shù)據(jù) int num 。struct score f9。char name20。float ave。float sum。用輸入函數(shù) seanf 來輸入學生的信息放在程序中,在這個函數(shù)用 void 語句就能實現(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)。 /學號查詢函數(shù)void ehaxun2(struet student a)。 /姓名查詢函數(shù)void eharu(struet student a)paixu(struct student a調用 paixu(struetstudent a) struet student a。 /存檔函數(shù)在 main 函數(shù)中用
6、 int 函數(shù)定義,然后再運用 printf ()函數(shù)就可以提 取學生的成績了。而后可以根據(jù)不同的函數(shù)來刪除、修改學生的成績信息。 最終程序結束,完成學生成績信息的錄入、修改、刪除以及查詢。 4.2 具體代碼實現(xiàn)#include#include #include struct score /各科成績float s。struct student /學生數(shù)據(jù)int num。struct score f9。char name20。float ave。float i=0 。/統(tǒng)計個數(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)。 /學號查詢函數(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 學生成績管理系統(tǒng) nn)*n) 。printf(請選擇功能: nnO.退出n1.錄入新學生成績數(shù)據(jù)n2.顯示學生 成績數(shù)據(jù)n3.按總成績排序n4插入學生成績數(shù)據(jù)n5刪除學生成績數(shù) 據(jù)n6.按學生學號查詢n7.按學生姓名查詢n8.儲存為 TXT 文件nn)*doscanf(%d,&number)。printf(n-n)。sw
9、itch (number)case 0:break。 /退出case 1:luru(stu)b break。/錄入新學生成績數(shù)據(jù) case 2:display(stu。printf(printf(H*菜單printf(nn)break。顯示學生成績數(shù)據(jù) case 3:paixu(stu)。 break。 /按總成績排序case 4:charu(stu。) break。/插入學生成績數(shù)據(jù)case 5:del(stu)。break。/刪除學生成績數(shù)據(jù) 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) /錄入函數(shù)int k。char b。float sum=0。printf( 請輸入科目數(shù) (最多 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( 是否繼續(xù)錄入學生數(shù)據(jù) ?n(Y/N) 。fflush(stdin) 。 /刷新標準輸入緩沖區(qū)scanf(%c,&b)。while(b=Y|b=y) 。display(a)。void display(struct student a) /顯示函數(shù)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) /排序函數(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( 按總分排序后的學生數(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( 請輸入
14、成績數(shù)目 :)。 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) /刪除函數(shù)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( 刪除后的學生數(shù)據(jù) n)。display(a)。elseprintf(ntt 沒有您要刪除的學生數(shù)據(jù) nn-) 。printf(n 請選擇功能:nO.退出t1
16、.錄入t2.顯示t3.排序t4.插入t5.刪 除t6.學號查詢 7.姓名查詢t8.存檔nn)。void cpri nt(struct stude nt a,i nt m) 查詢輸出函數(shù)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)/學號查詢函數(shù)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)/姓名查詢函數(shù)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)/存 檔函數(shù)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歡迎使用學生成績管理系統(tǒng)菜單”istr據(jù)數(shù)據(jù)YTHJHJ-*!/丄績數(shù)數(shù)數(shù)詢詢牛成績螯i躋先成幾成號名 E學專 1H 生學姓T
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山西衛(wèi)生健康職業(yè)學院《金融風險分析師(FRM)專題(雙語)》2023-2024學年第二學期期末試卷
- 浙江金融職業(yè)學院《供變電系統(tǒng)項目設計》2023-2024學年第二學期期末試卷
- 廈門工學院《計算機在林業(yè)中的應用》2023-2024學年第二學期期末試卷
- 湖南鐵道職業(yè)技術學院《生物化學實驗A》2023-2024學年第二學期期末試卷
- 華北理工大學輕工學院《科研寫作》2023-2024學年第二學期期末試卷
- 齊魯醫(yī)藥學院《中外文化比較專題》2023-2024學年第二學期期末試卷
- 重慶對外經(jīng)貿(mào)學院《包裝材料及應用》2023-2024學年第二學期期末試卷
- 醫(yī)院科室年度工作總結
- 母親六十歲生日宴會主持詞(7篇)
- 公司前臺的工作總結
- GB 4706.20-2004家用和類似用途電器的安全滾筒式干衣機的特殊要求
- 血管“斑塊”的風險課件
- mks spectra介紹殘余氣體分析儀
- 腹腔鏡下闌尾切除術護理課件
- 《抖音生活服務服務商合作手冊》
- 語文教學設計(教案目標)
- 中山大學抬頭信紙中山大學橫式便箋紙推薦信模板a
- 無形資產(chǎn)評估完整版課件
- 常暗之廂(7規(guī)則-簡體修正)
- 制冷系統(tǒng)方案的設計pptx課件
- 修心七要原文
評論
0/150
提交評論