




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、計算機C語言課程設計實習報告計算機C語言課程設計實習報告15/15計算機C語言課程設計實習報告C語言課程設計實習報告班級:地質11102學生姓名:商博文學號:01指導老師:何老師/陳老師/龍日期目錄一、程序剖析與設計1二、流程圖2三、源程序清單9四、調試過程17五、程序有待改良的地方17六、本次實習的收獲和建議18附錄18語言課程設計實習報告一、程序剖析與設計1、一開始拿到這個程序我感覺到它的流程特別清楚,各個功能項之間聯(lián)系其實不十分親密,因此各異很簡單的分紅很多不一樣的部分分別以獨立的函數(shù)體進行書寫和編寫。2、確立每一項要求寫成一個或許分紅多個函數(shù)體進行書寫。并依據要求的先后次序確定函數(shù)體的
2、擺列序次,將最想被調用與被調用次數(shù)最多的函數(shù)體放在最前面,一邊用最簡短的方式書寫程序,盡量少的進行函數(shù)申明。3、在確立了函數(shù)名稱后,先將函數(shù)名稱記錄下來,并確立其功能總計有read(),output(),average(),allaverage(),rrank(),fenshuduan(),nopass(),chengjitiao(),menu(),youdengsheng()等十組函數(shù)。4、確立需要調用的庫函數(shù)并進行申明,設定全局變量SIZE為學生人數(shù)。5、清楚的書寫學生構造體和課程構造體stuSIZE,明確構造體重每一個變量的種類和長度。6、第一書寫讀入輸出函數(shù)read(),將所需數(shù)據依據
3、課程構造體的標準進行讀入用文件格式fscanf。7、寫出函數(shù)向所需數(shù)據的列表進行寫出。8、寫出修業(yè)生均勻成績的函數(shù)average()并求出學生均勻成績三個相加除三取整。9、寫出求各科均勻成績的函數(shù)allaverage()并求出各科均勻成績學生人數(shù)個相加除學生人數(shù)取整。10、排名函數(shù)rrank(),用抽排法寫出排序并用文件種類輸出。11、分數(shù)段函數(shù)fenshuduan()寫出不一樣的分數(shù)段并運用數(shù)組寄存每個分數(shù)段的人數(shù)并用兩種方式寫出。12、判斷出不及格的人nopass()并輸出他/她們的學號,姓名,課程名稱,成績等信息。13、運用比較與循環(huán)寫出查問學生信息的函數(shù)chengjitiao()。14
4、、寫出菜單的輸出函數(shù)menu()。15、運用邏輯運算符寫出優(yōu)等生的求取函數(shù)youdengsheng()。16、寫退出函數(shù)。17、寫出主函數(shù)而且用case語句進行判斷履行主函數(shù)的各個功能。18、整個過程中,均勻數(shù),學生信息,均勻分查問用文件種類的輸出。1二、流程圖Main函數(shù)函數(shù)圖主體假如輸入1則運轉學生信息設置的函數(shù)假如輸入2則運轉求個人均勻分的函數(shù)假如輸入3則均勻分數(shù)段函數(shù)假如輸入4運轉不及格函數(shù)假如輸入0結束2C語言課程設計實習報告Read()函數(shù)此段為讀入函數(shù)的流程圖運用指針讀入文件中的數(shù)據假如指針為空輸出沒法翻開Output函數(shù)此段為寫出文件函數(shù)用指針指向文件夾寫出假如指向空則輸出沒法
5、翻開3average()函數(shù)此段為求每個學生均勻成績的函數(shù)現(xiàn)將每個學生的三科成績相加再將所得數(shù)據除以3獲得均勻分allaverage()函數(shù)此段為求各科均勻成績的函數(shù)現(xiàn)將每門課的全部學生得分相加再除以學生人數(shù)最后獲得每科總均勻分4C語言課程設計實習報告rrank()排名的函數(shù)先運用抽排法確立每一個學生的排名將排名組合到構造體再將海涵排名信息的全部學生信息進行輸出5fenshuduan()分數(shù)段函數(shù)將每個學生的每項成績進行判斷而后將學生的成績分別計數(shù)分別統(tǒng)計出來沒想科目每個分數(shù)段的學生人數(shù)用文件種類進行輸入輸出6C語言課程設計實習報告nopass()不及格人數(shù)統(tǒng)計的函數(shù)先求出不及格的成績并記錄該
6、學生的各項信息對各項信息進行輸出chengjitiao()輸出學生的成績條7menu()打印主菜單youdengsheng()學生成績查問的函數(shù)依據課程要求進行邏輯用語的編寫輸出優(yōu)等生的個人信息8語言課程設計實習報告三、源程序清單#include#include/標準函數(shù)庫調用#defineSIZE40/班里學生40個intenglish5,C5,math5;/保存小數(shù)點5一位floatenglishave;/此變量算英語成績均勻分floatCave;/計算機floatmathave;/數(shù)學structstudent/學生構造體charname10;/寄存姓名intnum;/學號intscor
7、e3;/學分floatave;/均勻分intrank;/排名studSIZE;/構造體有40個structcourse/課程設置構造體charcname20;/寄存課程名稱20表示課程名稱最長有20個字節(jié)cur3=大學英語,C語言設計,高等數(shù)學;/分別賦初值為課程的名稱intcour35=0;/后邊分段計數(shù)的時候分了5個分數(shù)段共有三門課賦初值為零/讀文件函數(shù)voidread()FILE*fp;/文件型指針變量假如寄存地點為空則輸出cantopenfile!并退出if(fp=fopen(e:stud1.txt,r)=NULL)printf(cantopenfile!n);exit(0);for(
8、inti=0;iSIZE;i+)/從0到40讀入每個學生的信息fscanf(fp,%d%s%d%d%d%d,&studi.num,,&studi.score0,&studi.score1,&studi.score2,&studi.score3);/從文件讀守信息fclose(fp);寫出文件函數(shù)voidoutput()9FILE*fp;/文件型指針變量if(fp=fopen(e:stud1.txt,r)=NULL)printf(cantopenfile!n);exit(0);printf(t學生原始成績n);printf(|學號|姓名|英語|C語言|高數(shù)|n);for(in
9、ti=0;iSIZE;i+)fscanf(fp,%d%s%d%d%d,&studi.num,,&studi.score0,&studi.score1,&studi.score2);/從文件讀守信息printf(%6d%12s%6d%6d%6dn,studi.num,,studi.score0,studi.score1,studi.score2,studi.score3);/從程序輸出到文件里修業(yè)生均勻成績函數(shù)voidaverage()inti,j,sum;for(i=0;iSIZE;i+)/從0到39循環(huán)sum=0;for(j=0;j3;j+)/從第一門
10、課到第三門課循環(huán)sum+=studi.scorej;/每門課的成績相加studi.ave=(int)(sum)/3;/八三門課的成績除以3的均勻分/求各科的均勻成績函數(shù)voidallaverage()inti;englishave=0;Cave=0;mathave=0;for(i=0;iSIZE;i+)/循環(huán)人數(shù)10語言課程設計實習報告mathave+=studi.score0;/全部人數(shù)學課成績相加englishave=(englishave+studi.score1);/英語Cave=(Cave+studi.score2);/計算機englishave=englishave/SIZE;/除
11、以人數(shù)獲得均勻分mathave=mathave/SIZE;Cave=Cave/SIZE;排名函數(shù)voidrrank()inti,j;for(i=0;iSIZE;i+)studi.rank=1;/抽排法for(i=0;iSIZE;i+)studi.rank=1;for(j=0;jSIZE;j+)if(studi.avestudj.ave)studi.rank+;/排名if(studi+1.rank=studi.rank)studi+2.rank+;/假如相等再加一個FILE*fp;if(fp=fopen(e:stu2.txt,w)=NULL)printf(cantopenthefile);ret
12、urn;fprintf(fp,tttt學生成績綜合成績n);fprintf(fp,序號tt姓名t高數(shù)t英語t計基t均勻成績t名次n);for(i=0;iSIZE;i+)fprintf(fp,%dt%st%dt%dt%dt%15.2ft%5dn,studi.num,,studi.score0,studi.score1,studi.score2,studi.ave,studi.rank);fclose(fp);11求取個分數(shù)段人數(shù)voidfenshuduan()voidallaverage();allaverage();inti,j;printf(tt各科分數(shù)段及各科均勻成績n
13、);for(i=0;iSIZE;i+)for(j=0;j=90)courj4+;/假如該門課該學生成績大于90則該門課改分數(shù)段人數(shù)加一elseif(studi.scorej=80)courj3+;elseif(studi.scorej=70)courj2+;elseif(studi.scorej=60)courj1+;elsecourj0+;printf(分數(shù)段t高數(shù)t英語t計基n);printf(60t%dt%dt%dn,cour00,cour10,cour20);printf(6069t%dt%dt%dn,cour01,cour11,cour21);printf(7079t%dt%dt%d
14、n,cour02,cour12,cour22);printf(8089t%dt%dt%dn,cour03,cour13,cour23);printf(90100t%dt%dt%dn,cour04,cour14,cour24);printf(均勻成績t%4.1ft%4.1ft%4.1fn,mathave,englishave,Cave);FILE*fp;if(NULL=(fp=fopen(e:stu3.txt,w)printf(cannotopenthefile);return;fprintf(fp,ttt分數(shù)段及均勻分n);fprintf(fp,n);fprintf(fp,分數(shù)段t高數(shù)t大英t
15、計基n);/反斜杠t表示tab反斜杠n表示換行%d表示十進制整數(shù)輸出%f表示十進制實數(shù)輸出%s表示字符串種類輸出f前面的4.1表示共四位數(shù)此中有一位小數(shù)fprintf(fp,60t%dt%dt%dn,cour00,cour10,cour20);fprintf(fp,6069t%dt%dt%dn,cour01,cour11,cour21);fprintf(fp,7079t%dt%dt%dn,cour02,cour12,cour22);fprintf(fp,8089t%dt%dt%dn,cour03,cour13,cour23);fprintf(fp,90100t%dt%dt%dn,cour04,
16、cour14,cour24);fprintf(fp,均勻成績%4.1ft%4.1ft%4.1ftn,mathave,englishave,Cave);fclose(fp);12語言課程設計實習報告不及格學生信息函數(shù)voidnopass()inti,j;printf(t不及格學生名單n);printf(t學號tt姓名tt不及格課程tt不及格分數(shù)n);for(i=0;iSIZE;i+)for(j=0;j3;j+)if(studi.scorej60)/假如該人該門課分數(shù)低于60則輸出一下信息printf(t%5d%10stt%10stt%dn,studi.num,,ame,studi.scorej);查問學生信息函數(shù)voidchengjitiao()inti,n;printf(請輸入學號
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產行業(yè)工作計劃制定
- 游戲活動對幼兒發(fā)展的影響計劃
- 品牌重塑中的領導力作用計劃
- 2025年紡粘法非織造布生產線項目建議書
- 分析企業(yè)強弱勢的管理方式計劃
- 智研咨詢發(fā)布-2025年中國玄武巖纖維行業(yè)現(xiàn)狀、發(fā)展環(huán)境及投資前景分析報告
- 2025年高精度帶材軋機項目合作計劃書
- 古氣候變遷在沉積記錄中的體現(xiàn)方式
- 2025年數(shù)控超精密磨床項目建議書
- 地球的故事之環(huán)境保護讀后感
- 微電網運行與控制策略-深度研究
- 2025南網科研院系統(tǒng)內招聘13人易考易錯模擬試題(共500題)試卷后附參考答案
- 《從零到卓越- 創(chuàng)新與創(chuàng)業(yè)導論》教案
- IEC 62368-1標準解讀-中文
- 15J403-1-樓梯欄桿欄板(一)
- QC課題提高金剛砂地面施工一次合格率
- 2024年江蘇農牧科技職業(yè)學院單招職業(yè)適應性測試題庫附答案
- 唐河縣骨干網評員登記表
- 危險廢物利用和處置方式代碼表
- 井下使用切割機安全技術措施
- unit-2-The-humanities
評論
0/150
提交評論