資源描述:
《C語言課設(shè)實(shí)習(xí)報(bào)告.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、C語言課程設(shè)計(jì)實(shí)習(xí)報(bào)告目錄一、程序分析與設(shè)計(jì)1二、流程圖2三、源程序清單6四、調(diào)試過程9五、程序有待改進(jìn)的地方10六、本次實(shí)習(xí)的收獲和建議10附錄11一、程序分析與設(shè)計(jì)1、先用記事本編輯文件stu1.dat存儲(chǔ)一個(gè)班學(xué)習(xí)成績(jī)。然后在C環(huán)境下,建立一個(gè)學(xué)生信息的結(jié)構(gòu)體,用r方式打開上述文件,再用fscanf讀入、用printf在屏幕上顯示文件內(nèi)容。2、利用循環(huán)使每個(gè)學(xué)生的三門功課的成績(jī)相加,然后再把和除以三就得到了平均成績(jī)。接著用冒泡法利用平均分的高低排出名次。最后用fprintf將每個(gè)學(xué)生的信息寫入到stu2.dat文
2、件。3.計(jì)算各科成績(jī)的分?jǐn)?shù)段時(shí),用到for循環(huán)if條件,事先定義各分?jǐn)?shù)段人數(shù)變量,并賦值為0.如果符合各分?jǐn)?shù)段符合if條件變量++自增。再用fprintf將分?jǐn)?shù)段的信息寫入到stu2.dat文件。4.在屏幕上打印學(xué)生的成績(jī),用printf函數(shù)for循環(huán)即可打出每個(gè)學(xué)生的成績(jī)。格式對(duì)齊用換行t制表符。5.打印不及格學(xué)生的信息,不及格應(yīng)滿足stu[i].score<60。Printf打出stu[i].num,stu[i].name即學(xué)號(hào),姓名。第二次調(diào)用printf分別打出stu[i].score[0],stu[i]
3、.score[1],stu[i].score[2]相應(yīng)的不及格成績(jī)。6.在屏幕上打印優(yōu)等學(xué)生。首先分析優(yōu)等生需要的條件,有四種并列關(guān)系的條件都可。A均成績(jī)>=90B均成績(jī)>=85且至少一科為100C均分>=85且至少有兩科>=95D均分排名前三名。滿足著四個(gè)條件中的任一個(gè)且每門功課及格以上,即為優(yōu)秀。即可表示為:(滿足A
4、
5、滿足B
6、
7、滿足C
8、
9、滿足D)&&(各科成績(jī)>=60)A即為stu[i].aver>=90B即為stu[i].aver>=85&&(stu[i].score[0]==100
10、
11、stu[i].score
12、[1]==100
13、
14、stu[i].score[2]==100)C即為stu[i].aver>=85&&(a
15、
16、b
17、
18、c)a為英語C語言都>=95即為(stu[i].score[0]>=95&&stu[i].score[1]>=95)b為英語高數(shù)都>=95即為(stu[i].score[0]>=95&&stu[i].score[2]>=95)c為C語言高數(shù)都>=95即為(stu[i].score[1]>=95&&stu[i].score[2]>=95)D即為stu[i].rank<=3各科成績(jī)>=60即可表示為(stu[
19、i].score[0]>=60&&stu[i].score[1]>=60&&stu[i].score[2]>=60)用邏輯運(yùn)算符&&及
20、
21、ifelseif語句即可實(shí)現(xiàn)程序。二、流程圖voidmain()//主函數(shù)voidduwenjian()//讀入文件函數(shù)voidxiewenjian()//向文件寫出函數(shù)voidgekepingjun()//求各科平均分voidpingjunScore()//每學(xué)生三門功課平均分voidRankStudent()//學(xué)生排名voidfengshuduan()//各科分?jǐn)?shù)段voidPr
22、int()//向屏幕打印學(xué)生成績(jī)條voidprintbujige()//向屏幕打印不及格學(xué)生信息voidprintyoudenStudent()//向屏幕打印優(yōu)等生信息各個(gè)函數(shù)流程圖如下:設(shè)計(jì)思路數(shù)函主讀入文件各學(xué)生平均分各科平均分排名算分?jǐn)?shù)段寫文件屏幕上打印學(xué)生成績(jī)打印不及格信息打印優(yōu)等生Ifelseif語句菜單程序語句ElseifIfelseI結(jié)果運(yùn)行voidmain()voidduwenjian()主函數(shù)讀入文件結(jié)束voidxiewenjian()寫文件voidgekepingjun()求各科平均分函數(shù)voidp
23、ingjunScore()三門功課平均分定義變量開始循環(huán)算平均分結(jié)束voidRankStudent()學(xué)生排名voidfengshuduan()各分?jǐn)?shù)段人數(shù)結(jié)束結(jié)束相比較小排名加1voidprintbujige()打印不及格信息voidPrint()打印各科成績(jī)開始結(jié)束結(jié)束voidprintyoudenStudent()優(yōu)等生If語句的嵌套三、源程序清單#include#include#defineN15structstudent{intnum;charname[20];intsc
24、ore[3];floataver;intrank;}stu[N];intE1=0,E2=0,E3=0,E4=0,E5=0,C1=0,C2=0,C3=0,C4=0,C5=0,M1=0,M2=0,M3=0,M4=0,M5=0;floataverEnglish=0,averClanguage=0,averMath=0;voidduwen