![C語(yǔ)言實(shí)訓(xùn)報(bào)告—學(xué)生成績(jī)管理系統(tǒng)(文件實(shí)現(xiàn))_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-8/22/8511330b-1e40-4b2e-8a50-48cbf941e686/8511330b-1e40-4b2e-8a50-48cbf941e6861.gif)
![C語(yǔ)言實(shí)訓(xùn)報(bào)告—學(xué)生成績(jī)管理系統(tǒng)(文件實(shí)現(xiàn))_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-8/22/8511330b-1e40-4b2e-8a50-48cbf941e686/8511330b-1e40-4b2e-8a50-48cbf941e6862.gif)
![C語(yǔ)言實(shí)訓(xùn)報(bào)告—學(xué)生成績(jī)管理系統(tǒng)(文件實(shí)現(xiàn))_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-8/22/8511330b-1e40-4b2e-8a50-48cbf941e686/8511330b-1e40-4b2e-8a50-48cbf941e6863.gif)
![C語(yǔ)言實(shí)訓(xùn)報(bào)告—學(xué)生成績(jī)管理系統(tǒng)(文件實(shí)現(xiàn))_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-8/22/8511330b-1e40-4b2e-8a50-48cbf941e686/8511330b-1e40-4b2e-8a50-48cbf941e6864.gif)
![C語(yǔ)言實(shí)訓(xùn)報(bào)告—學(xué)生成績(jī)管理系統(tǒng)(文件實(shí)現(xiàn))_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-8/22/8511330b-1e40-4b2e-8a50-48cbf941e686/8511330b-1e40-4b2e-8a50-48cbf941e6865.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、c語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)報(bào)告題 目:學(xué)生成績(jī)管理系統(tǒng)院 系:專 業(yè):姓 名:學(xué) 號(hào):指導(dǎo)教師: 曰 期:2017年9月9日1 問(wèn)題定義12 12.1 12.2 函數(shù)預(yù)覽23 系統(tǒng)實(shí)現(xiàn)33.1 功能模塊33.2 全部代碼124系統(tǒng)維護(hù)194.1調(diào)試和an式195歸納總結(jié)195.1開發(fā)經(jīng)驗(yàn)205. 2實(shí)訓(xùn)中遇到的問(wèn)題及解決方法205.3 設(shè)計(jì)中的不足之處205.4 感想和心得體會(huì)206參考斐料20課程設(shè)計(jì)環(huán)節(jié)是應(yīng)用型本科院校非常重要的一個(gè)教學(xué)環(huán)節(jié),是學(xué)完一門課 后應(yīng)用本課知識(shí)及以前的知識(shí)積累而進(jìn)行的綜合性、開放性的訓(xùn)練。通過(guò)課程 設(shè)計(jì),不僅能夠使學(xué)生得到系統(tǒng)的技能訓(xùn)練,鞏固和加強(qiáng)所學(xué)得專業(yè)理論知識(shí), 而
2、且能夠培養(yǎng)學(xué)生工程意識(shí)、創(chuàng)新能力、團(tuán)隊(duì)精神等綜合素質(zhì),培養(yǎng)學(xué)生的設(shè) 計(jì)能力和解決實(shí)際問(wèn)題的能力。c語(yǔ)言由于其強(qiáng)大的功能,豐富的表達(dá)能力,高效的代碼,良好的移植性 和靈活性,自1972年問(wèn)世以來(lái),經(jīng)久不衰,即使現(xiàn)在出現(xiàn)了面向?qū)ο蟮某绦蛟O(shè) 計(jì)方法和開發(fā)工具,但它仍然是人們學(xué)習(xí)程序設(shè)計(jì)的首選語(yǔ)言,用它訓(xùn)練和提 高編程技術(shù),以及開發(fā)應(yīng)用程序等。我們通過(guò)c語(yǔ)言程序設(shè)計(jì)這門課程的學(xué)習(xí),已經(jīng)能編寫解決小問(wèn)題的 程序,對(duì)程序的開發(fā)也有了初步的認(rèn)識(shí),還掌握了 c語(yǔ)言的基本語(yǔ)法,這一過(guò) 程確確實(shí)實(shí)令我們感到欣喜,有點(diǎn)計(jì)算機(jī)可以完成自我任務(wù)的成就感。但是, 對(duì)于程序設(shè)計(jì)而言,學(xué)習(xí)c的步伐不應(yīng)該停留于此。我們最終的目
3、的應(yīng)該是掌 握開發(fā)大型綜合程序的方法,即遵循軟件工程的開發(fā)步驟和結(jié)構(gòu)化程序設(shè)計(jì)思 想,用c語(yǔ)言開發(fā)出解決復(fù)雜問(wèn)題的大型綜合程序??墒菍?duì)于多數(shù)學(xué)生來(lái)說(shuō), 學(xué)習(xí)了 c語(yǔ)言后,除了應(yīng)付各種考試之外,別無(wú)它用,對(duì)turbo c語(yǔ)言豐富的 函數(shù)知之甚少,加上dos環(huán)境所限,因而對(duì)c語(yǔ)言興趣不大,也感到c語(yǔ)言 比較難以掌握。本實(shí)訓(xùn)就是為了讓學(xué)生在學(xué)完c語(yǔ)言后進(jìn)一步了解c語(yǔ)言的知識(shí),掌握c 語(yǔ)言在軟件開發(fā)方面的使用方法,希望通過(guò)此次實(shí)訓(xùn),不僅能提高學(xué)生學(xué)習(xí)c 語(yǔ)言的興趣,更為今后學(xué)習(xí)其它專業(yè)知識(shí)及開發(fā)程序打下堅(jiān)實(shí)的基礎(chǔ)。本指導(dǎo)書中有些內(nèi)容借鑒了互聯(lián)網(wǎng)上相關(guān)程序的設(shè)計(jì)思想,在此對(duì)相關(guān)者 表示衷心的感謝。由于時(shí)
4、間、經(jīng)驗(yàn)及水平的原因,不當(dāng)、不足之處,請(qǐng)大家提出寶貴意見。編者桂林電子科技大學(xué)信息科技學(xué)院學(xué)生成績(jī)管理系統(tǒng)本題目設(shè)計(jì)目的是訓(xùn)練學(xué)生的基本編程能力,了解管理學(xué)生成績(jī)信息系統(tǒng) 的設(shè)計(jì)開發(fā)流程,熟悉c語(yǔ)言的文件各種基本實(shí)現(xiàn)和操作。本程序中涉及結(jié)構(gòu) 體、文件讀寫、宏等方面的知識(shí)。通過(guò)本程序的訓(xùn)練和制作,使學(xué)生能對(duì)c語(yǔ) 言的文件操作等方面有一個(gè)更深刻的了解,掌握利用結(jié)構(gòu)體存儲(chǔ)實(shí)現(xiàn)對(duì)學(xué)生成 績(jī)管理的原理,為進(jìn)一步開發(fā)出高質(zhì)量的管理信息系統(tǒng)以及之后的其他編程方 面知識(shí)的學(xué)習(xí)和理解打下堅(jiān)實(shí)的基礎(chǔ)。創(chuàng)建一個(gè)學(xué)生成績(jī)管理系統(tǒng)。假設(shè)系統(tǒng)中每個(gè)學(xué)生記錄只包括學(xué)號(hào)、姓名、平時(shí)成績(jī)、期末成績(jī)、總評(píng)成績(jī)、總分、平均分、名次
5、等信息。程序的運(yùn)行效果如上圖圖所示,選擇任意菜單后,實(shí)現(xiàn)相應(yīng)功能。具體結(jié)構(gòu)體設(shè)定請(qǐng)見以后。程序初始主界面截圖如下:*歡迎使用*科工京常酎2饕察檐普科*十差績(jī) 和和成績(jī)雪十分 : 總.嘉郡 選 錄生查查生生春翻 記單號(hào)等看于列文你 單人算學(xué)姓算聶出出入導(dǎo)抿幽 il 23,4.5.i6,i7.i8,|0.請(qǐng)?jiān)趩?wèn)題定義階段要考慮題目的可行性和需求分析,接下來(lái)進(jìn)入開發(fā)階段, 完成系統(tǒng)設(shè)計(jì)和系統(tǒng)實(shí)現(xiàn)的任務(wù)。2、系統(tǒng)設(shè)計(jì)2. 1總體設(shè)計(jì)本管理系統(tǒng)的程序主要由c語(yǔ)言編寫,考慮到各方面的維護(hù)和需求實(shí)現(xiàn)考 慮,程序代碼總體上采用模塊化編程方式設(shè)計(jì)以及編寫。即將一個(gè)大的功能需 求分作幾個(gè)小模塊來(lái)配合實(shí)現(xiàn),為了降低
6、添加和維護(hù)功能和需求的成本和時(shí)間。2.2函數(shù)預(yù)覽1)主函數(shù)int main()調(diào)用其他不同功能2)主菜單函數(shù)int menu(uoid)輸出顯示界面3)新建信息函數(shù)1 (手寫輸入)uni ri rpaid rlatafntii a. int h】手動(dòng)輸入學(xué)生的成績(jī)信息,包括學(xué)號(hào)、姓名、平時(shí)成績(jī)、總評(píng)成績(jī)4)新建信息函數(shù)2 (文件輸入)void read datal(stu stu ,int n,int a,int b)通過(guò)文件導(dǎo)入學(xué)生成績(jī)信息5)計(jì)算成績(jī)函數(shù) void total_nark(stu stu9int n9int a9int b)計(jì)算學(xué)生試卷分?jǐn)?shù)的總評(píng)成績(jī)6)查詢成績(jī)函數(shù)
7、1 (按學(xué)號(hào))uoid sortb|num(stu stu ,int n)按學(xué)號(hào)查詢學(xué)生試卷的總評(píng)成績(jī)7)查詢成績(jī)函數(shù)2 (按姓名)void sortbj|nane(stu stu ,int n)按學(xué)號(hào)查詢學(xué)生試卷的總評(píng)成績(jī)8)計(jì)算成績(jī)函數(shù)1 (計(jì)算總成績(jī)的及格率和優(yōu)秀率)uoid count_pass(stu stu ,int n)計(jì)算全班學(xué)生總評(píng)成績(jī)的及格率和優(yōu)秀率,并按優(yōu)良中差輸出學(xué)生人數(shù)9)計(jì)算成績(jī)函數(shù)2 (計(jì)算總成績(jī)的平均分和標(biāo)準(zhǔn)差)uoid count_auerage(stu stu ,int 計(jì)算學(xué)生總評(píng)成績(jī)的平均分和標(biāo)準(zhǔn)差10)輸出成績(jī)函數(shù)void show data(stu
8、stu,int n)輸出全班學(xué)生的所有成績(jī),包括學(xué)號(hào)、姓名、總評(píng)成績(jī)11)導(dǎo)出成績(jī)函數(shù)uoid write_data(stu stu,int n) f.將學(xué)生所有成績(jī)的列表導(dǎo)出到文本score.txt中3、系統(tǒng)實(shí)現(xiàn)3.1功能模快(附代碼)int main()stu stusize;int n,azb; char ch;int oh;* *nl()printf(httt* 歡迎使用 * nh);printf(httt*學(xué)生試卷分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)* nm);* *nl()while (1)ch = menu(); switch (ch) case 1:printf(請(qǐng)輸入學(xué)生人數(shù) n(n=%d):, s
9、ize);scanf(,%d, &n);printf(“請(qǐng)輸入學(xué)生平時(shí)成績(jī)與期末成績(jī)所占總評(píng)成績(jī)的的比例(用整數(shù)表 示,滿分100分):n);scanf(,%d%d/&a,&b);printf(以下有兩種輸入試卷分?jǐn)?shù)的方式:.手動(dòng)輸入試卷分?jǐn)?shù)t2.從 student.txt文件中導(dǎo)入試卷分?jǐn)?shù)*卷);scanf(,%d,&oh);switch (oh)case 1:read_data(stu/n/a,b);break;case 2:read_datal(stu,n,a,b);break;default:printf(輸入菜單序號(hào)錯(cuò)誤!);)break;case 2:total_mark(stu/
10、nza/b);break;case 3:sortbynum(stu,n);break;case 4:sortbyname(stu,n);break;case 5: count_pass(stu,n);break;case 6: count_average(stu,n);break;case 7:show_data(stu,n);break;case 8:write_data(stu,n);break;case 0:p rintf(tt* * *n).printf(ttt* 感謝使用 * n);printf(ttt*學(xué)生試卷分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)* n);p ri ntf (htt* * *n,1), e
11、xit(o);default:printf(輸入菜單序號(hào)錯(cuò)誤!);)return 0;2)主菜單函數(shù)率差日成年 總詢?cè)兗捌?建查查生生看 1 記r-fs丁列文 單人娃晨暴出出 菜按ttwsdm l 123456780/*函數(shù)功能:顯示菜單并獲得用戶鍵盤輸入的選項(xiàng)*/int menu(void)int itemselected;printf(n【菜單】n);printf(l.輸入記錄n);printf(2.計(jì)算學(xué)生總評(píng)成績(jī)n);printf(”3.按學(xué)號(hào)查詢成績(jī)n);printf(”4.按姓名查詢成績(jī)n);printf(15計(jì)算學(xué)生及格率和優(yōu)秀率n);printf(”6 .計(jì)算學(xué)生平均分和標(biāo)準(zhǔn)差
12、n);printf(7 成績(jī)列表n“);printf(”8.導(dǎo)出文件n“);print。退出 n“);printf(請(qǐng)輸入你的選擇:);scanf(%dz &itemselected); /* 讀入用戶輸入 */ return itemselected;3)限定功能模塊小你的舉瑤:1認(rèn)學(xué)生大蹶n(n=100):30m人卓生平時(shí)成績(jī)與期末成績(jī)所占總評(píng)成績(jī)的的比例(用整數(shù)表示,滿分100分):限定(或者說(shuō)確定)學(xué)生的人數(shù)和總評(píng)成績(jī)的計(jì)算方式printf(請(qǐng)輸入學(xué)生人數(shù) n(n=%d):z size);scanf(%d, &n);printf。請(qǐng)輸入學(xué)生平時(shí)成績(jī)與期末成績(jī)所占總評(píng)成績(jī)的的比例(用整數(shù)
13、表 示,滿分100分):n);scanf(%d%d,&a,&b);4 )新建成績(jī)函數(shù)1 (手動(dòng)輸入)隅簿豁耀蠲輸績(jī)所占總評(píng)成績(jī)的的比例(用整數(shù)表示滿分1。分):的方式:2.以student. txt文件中導(dǎo)入試卷分?jǐn)?shù)*1請(qǐng)輸入學(xué)生的美號(hào)、姓名、平時(shí)成績(jī)和期末成績(jī)(逗號(hào)隔開):1651500101,位,23,561651500102,級(jí),33,67/*函數(shù)功能:手動(dòng)輸入分?jǐn)?shù)*/ void read_data(stu stu,int njnt ajnt b) int i=0;printf(”請(qǐng)輸入學(xué)生的學(xué)號(hào)、姓名、平時(shí)成績(jī)和期末成績(jī)(逗號(hào)隔開):n); for(i=0;in;i+)scanf(%l
14、d, %s, %d, %d,&stui.num/&/&stui.score0/&stui.scorei);stui.score2=stui.score0*a/100+stui.scorel*b/100;)5 )新建成績(jī)函數(shù)2 (文件輸入):1 n(n績(jī)績(jī)績(jī)績(jī) .成成成成成成成成成1 o 754026612518/*函數(shù)功能:從文本student.txt中導(dǎo)入試卷分?jǐn)?shù)*/ void read_datal(stu stu,int njnt ajnt b)(int i;file *fp;if(fp=fopen(student.txt,/,r,)=null)(printf(打開文件
15、student.txt 失??! n“); exit(o);)for(i=0; !feof(fp);i+)(fscanf(fp/,%ld,&stui.num);fscanf(fp/,%s,/);fscanf(fp/,%d,&stui.score0);fscanf(fp/,%d,&stui.scorel);)fclose(fp);濤熟人你的選擇:2 學(xué)生:165158101 學(xué)生:1651500102e:1651500103學(xué)生:16515001q4亡 165158105學(xué)生:1651500106亡 165158107學(xué)生:1651500108 學(xué)生門65158109 學(xué)生:16
16、51500110 1651500111 學(xué)生:1651500112 學(xué)生門65158113 學(xué)生:1651500114 學(xué)生門65158u5 學(xué)生:1651500116 :165150011t 粹:1651500118 豐豐:1651500119 輝:1651500120 宇豐:1651500121 輝:1651500122 豐豐:165150012? 學(xué)率:1651500124 宇生:1651500125 ms: 1651500126忘.1爵:t :0;10i。1 o wi a2|91:2:8爵融國(guó) -1651509101a69516100162d553u1651509103c432516s
17、1316ad0h21651591。5e1376165150b1mfs6881651509107g5889165150b1mhioe1651509169i25311651500110j5fi1651509111k9884165150b112l72681651509113h84xq165-i50b11hn3175165150911502218165150b116psa1651509117q%363165150b11br9,311651509119s9471651500120t12x91651509121u24xq1651588122u83心1651509123u587九xm7a76/*函數(shù)功能:計(jì)
18、算學(xué)生試卷分?jǐn)?shù)的總評(píng)成績(jī)*/void total_mark(stu stu,int njnt ajnt b) int i;for(i=0;in;i+)stui.score2=stuij.score0*a/100+stui.scorel*ba00;printf( 學(xué) 生 :ldt 姓 名 :%st 總 評(píng) 成績(jī):%dn,stum,num,,stui.score2);)7)查詢成績(jī)函數(shù)1 (按學(xué)號(hào))l 2|3,|4,|5.|6.|7,&10.請(qǐng)子單a黑千姓寒聶出出入入:1菜按7msm料號(hào)swi績(jī) 和和 成率分 總詢?cè)兗捌缴?:3學(xué) c。 苗10 選找00 的查15 你要65號(hào):
19、1651500108:h平時(shí)成績(jī):100期末成績(jī):76總評(píng)成績(jī):11/*函數(shù)功能:按學(xué)號(hào)查詢學(xué)生試卷的總評(píng)成績(jī)*/void sortbynum(stu stu,int n) for(i=0;in;i+)(if(stui.num=number)printf(學(xué)號(hào):ldt姓名:st平時(shí)成績(jī):dt期末成績(jī):dt總評(píng)成 :%dn,/stui.num//stui.score0/stui.scorel,stui.score2);return;)printf(“抱歉,沒(méi)有找到! n); )8)查詢成績(jī)函數(shù)2 (按姓名)單人i黑子姓一懸暴出出人入:1 ilz.7.&0.請(qǐng)績(jī) 和
20、和 績(jī)率分總及平 堇查杳不 i記學(xué)直十差秀準(zhǔn)士生姓 :笑2 蓄10 選戰(zhàn)00 的查15 你要65姓名名:b期末成績(jī):34 忌評(píng)成績(jī):5/*函數(shù)功能:按姓名查詢學(xué)生試卷的總評(píng)成績(jī)*/void sortbyname(stu stujnt n)(char named10;int i;printf(請(qǐng)輸入要查找的學(xué)生姓名:);scanf(,%s,named);9)計(jì)算成績(jī)函數(shù)1 (計(jì)算總成績(jī)的及格率和優(yōu)秀率)o o o :o o 中0.0. - fc-0:0重 二良器 數(shù)績(jī)績(jī) 天成成格:0評(píng)評(píng) 一 日總/*函數(shù)功能:計(jì)算全班學(xué)生總評(píng)成績(jī)的及格率和優(yōu)秀率,并按優(yōu)良中差輸出學(xué)生人 數(shù)*/void coun
21、t_pass(stu stu,int n)int i,pass_num,t4;float passrate;memset 化 0,sizeof(t);for(i=0;in;i+)if(stui.score260) t0+;else if(stui.score2=75) tl+;else if(stui.score2=85) t2+;else if(stui.score2=100) t3+;pass_num=tl+t2+t3;passrate=(float)(tl+t2+t3)/n;printf(及格人數(shù):%dn,pass_num);printf(優(yōu):%dt 良:dt 中:%dt 差:print
22、f(總評(píng)成績(jī)及格率:%.2fn,passrate);printf(總評(píng)成績(jī)優(yōu)秀率:%.2fn,/(float)t3/n);10)計(jì)算成績(jī)函數(shù)2 (計(jì)算總成績(jī)的平均分和標(biāo)準(zhǔn)差)率差8i成績(jī).十分 恿詢?cè)兗?錄組查查生一記生目評(píng)成績(jī)標(biāo)準(zhǔn)差;2. 83645.的平單a黑十姓要墾出出人成菜按輸評(píng)l zi3,i4.i5,i6,i7.i8.10.請(qǐng)總/*函數(shù)功能:計(jì)算學(xué)生總評(píng)成績(jī)的平均分和標(biāo)準(zhǔn)差*/void count_average(stu stu,int n)int i;double sum=0,aver/temp=0/standard;for(i=0;in;i+)sum=stui.score2+su
23、m;aver=(float)sum/n;for(i=0;in;i+)temp=(stui.score2-aver)*(stui.score2-aver)+temp;11)輸出成績(jī)函數(shù)績(jī) 和和 績(jī)績(jī)率分 以成格 總及 星查查生 i記學(xué)魚-t1 o754026612518842559912績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)成成成成成成成成成見責(zé)責(zé)責(zé)責(zé)責(zé)責(zé)責(zé)責(zé)責(zé)成成成成成成成成成成評(píng)評(píng)評(píng)評(píng)評(píng)評(píng)評(píng)評(píng)評(píng)評(píng)評(píng)評(píng)評(píng)評(píng)評(píng)評(píng)評(píng) 、 苞總總百息總總息訪總總總息國(guó)總總總區(qū)總總 ?4452689618489 5 83 3 1 9 9 532 4- 788 7 3586 4 718637 4 4-績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)
24、績(jī)績(jī)成成成成成成成成成成成成成成成成成成成成成tmmv tttv tttv tttv tmmv tttv tttv tttv tmmv tttv tttv tttv tmmv tttv tttv tttv tmo 053 36305882 4 1283 4 4-2 4- 6540155124978 no 2449912績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī)績(jī) 成成成成成成成成成成成成成成成成成成成成成寸寸寸寸寸寸寸寸寸寸寸寸寸 m m m rr m m m m rr m m m m rr m m m m rr m m 豐平平平豐平平平豐平平平豐平平平平abcdefghijkl mnopqrc
25、0tu名名名名名名名名名名名名名名名名名名名名工 二一二一二一二一二一二二二 二一二一二一二二二 二一二一二一二二二 二一二一二一 7aaaaaaaaaaaa全一567890ooooooooollllllllll 24k一 1x 1x 1x 1 1x 1x 1x 1x 1 1x 1x 1x 1x 1 1x 1x 1x 1x 1 1x i-00000000000000000000 ooooooooooooooooooo ox/單a最干姓一易,出出人:147*5555555555555555555 5a 史 件 1111111111111111111 爾5555555555555555555 5之
26、3 6666666666666666666 6.1.e 1 111111111111111111 開一菜按輸號(hào)號(hào)號(hào)號(hào)號(hào)號(hào)號(hào)號(hào)號(hào)號(hào)號(hào)號(hào)號(hào)號(hào)號(hào)號(hào)號(hào)號(hào)號(hào)a1lz& 生氏 %乙&/*函數(shù)功能:輸出全班學(xué)生的所有成績(jī)*/void show_data(stu stu,int n)int i;for(i=0;in;i+)printf(學(xué)號(hào):ldt姓名:%st平時(shí)成績(jī):dt期末成績(jī):dt總評(píng)成 績(jī):%dn=stui.num,,stui.score0lstui.scorellstui.score2);)人你儕色足:2交件g imicl*v|,姓含平時(shí)成績(jī). 64助于應(yīng)緯和豆講成績(jī)1651500
27、102b3451(61500103c2541661500104d42016150010517621651500106y896歧0w?gs31008961!61500108m7611165150010913121(61500110j5851651500111x24101(6150011216881651500112i492枝n?541661so011501821651500116p8351(61500117q6351651500118k319161500119s7g1651500120749i歧0121u4921661500122v4381651500123t751(61500124x73?16
28、s1so0125t644161500126235?/*函數(shù)功能:將學(xué)生所有成績(jī)的列表導(dǎo)出到文本score.txt中*/void write_data(stu stu,int n)(file *fp;int i;3、系統(tǒng)實(shí)現(xiàn)3. 1全部實(shí)現(xiàn)代碼#include #include #include #include #include #define size 100typedef struct studentlong num;char name10;int score3;stu;int menu(void);void read_data(stu stujnt njnt azint b);void
29、read_datal(stu stufint nzint ajnt b);void totalmark(stu stuzint njnt ajnt b);void sortbynum(stu stujnt n);void sortbyname(stu stufint n);void count_pass(stu stuzint n);void count_average(stu stujnt n);void show_data(stu stujnt n);void write_data(stu stuzint n);stu stu size;int n,a,b;char ch;int oh;p
30、rintf(mtt*);printf(wttt* 歡迎使用 * nm);printf(mttt*學(xué)生試卷分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)* nm););while (1)(ch = menu();switch (ch)(case 1:printf(請(qǐng)輸入學(xué)生人數(shù) n(n=%d):; size);scanf(%dmf &n);printf(”請(qǐng)輸入學(xué)生平時(shí)成績(jī)與期末成績(jī)所占總評(píng)成績(jī)的的比例(用整數(shù)表示,滿分100分):n);scanf(%d%d,&a,&b);printf(以下有兩種輸入試卷分?jǐn)?shù)的方式:n*l.手動(dòng)輸入試卷分?jǐn)?shù)t2.從student.txt文件中導(dǎo)入試卷分?jǐn)?shù)*n)scanf(%d,&oh);swit
31、ch (oh)(case 1:read_data(stu/n/a,b);break;case 2:read_datal(stu/n/a/b);break;default:p ri n tf (輸入菜單序號(hào)錯(cuò)誤!);break;case 2:total_mark(stu/n/a/b);break;case 3:sortbynum(stu/n);break;case 4:sortbyname(stuzn);break;case 5: count_pass(stuzn);break;case 6: count_average(stufn);break;case 7:show_data(stuzn);
32、break;case 8:write_data(stu/n);break;case 0:);printf(wttt* 感謝使用 * nw);printf(-ttt*學(xué)生試卷分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)* nm);printf(,ftt*);exit(o);default:printf(,輸入菜單序號(hào)錯(cuò)誤!,);return 0;/*函數(shù)功能:顯示菜單并獲得用戶鍵盤輸入的選項(xiàng)vint menu(void)int itemselected;printf(wn【菜單】n)p r i n tf (t .輸入記錄n )printf(“2.計(jì)算學(xué)生總評(píng)成績(jī)n)printf(3 .按學(xué)號(hào)查詢成績(jī)n)printf(4按姓名查
33、詢成績(jī)n)printf(5.計(jì)算學(xué)生及格率和優(yōu)秀率n)printf(6.計(jì)算學(xué)生平均分和標(biāo)準(zhǔn)差n)printf(7.成績(jī)列表 n)printf(8.導(dǎo)出文件 n)printf(o 退出n)printf(請(qǐng)輸入你的選擇)scanf(%d, &itemselected); /* 讀入用戶輸入 */return itemselected;/*函數(shù)功能:手動(dòng)輸入分?jǐn)?shù)vvoid read_data(stu stuzint n,int a,int b)(int i=0;printf(請(qǐng)輸入學(xué)生的學(xué)號(hào)、姓名、平時(shí)成績(jī)和期末成績(jī)(逗號(hào)隔開):n)for(i=0;in;i + +)(scanf(%ld , %s
34、 , %d , %d/&stui.num,&,&stui.score0f&stui.scorel);stui.score2=stui.score0*a/100+stui.scorel*b/l00;)/*函數(shù)功能:從文本student.txt中導(dǎo)入試卷分?jǐn)?shù)*/void read_datal(stu stu,int njnt a,int b)(int i;file *fp;if(fp=fopen(student.txt,r) = = null)(printf(打開文件 student.txt 失敗! n) exit(0);)for(i=0;!feof(fp);i + +)(fsc
35、anf(fp,%ldz&stui.num);fscanf(fp,%s,stu );fscanf(fp,%d,&stui.score0);fscanf(fp,%d,&stui.scorel);fclose(fp);for(i=0;in;i + +)stui.score2=stui.score0*a/100+stui.scorel*b/l 00;)/*函數(shù)功能:計(jì)算學(xué)生試卷分?jǐn)?shù)的總評(píng)成績(jī)vvoid total_mark(stu stu,int n,int ajnt b)(int i;for(i = 0;in;i + +)(stui.score2=stui.score0*a/100+st
36、ui.scorel*b/l 00;printf(學(xué)生:ldt姓名:st總評(píng)成:%dn,stui.num,,stui.score2);)/*函數(shù)功能:按學(xué)號(hào)查詢學(xué)生試卷的總評(píng)成績(jī)vvoid sortbynum(stu stujnt n)int number;i;p ri n tf (請(qǐng)輸入要查找的學(xué)生學(xué)號(hào):)scanf(%d,&number);for(i=0;in;i + +)(if(stui.num = = number)(printf(學(xué)號(hào):ldt姓名:st平時(shí)成績(jī):dt期末成績(jī):dt總評(píng)成績(jī):dn,stui.num,,stui.scoreolstui.s
37、corellstui.score2);return;)printf(抱歉沒(méi)有找到! nn);/*函數(shù)功能:按姓名查詢學(xué)生試卷的總評(píng)成績(jī)vvoid sortbyname(stu stufint n)char named10;int i;printf(請(qǐng)輸入要查找的學(xué)生姓名:);scanf(%s,named);for(i=0;in;i + +)(if(strcmp(named/) = =o)(printf(學(xué)號(hào)%ldt姓名%st平時(shí)成績(jī):dt期末成 績(jī):%dt總評(píng)成績(jī):dn,stui.num,,stui.scoreolstui.scorellstui.score
38、2);return;)printf(抱歉沒(méi)有找到! n);/*函數(shù)功能:計(jì)算全班學(xué)生總評(píng)成績(jī)的及格率和優(yōu)秀率,并按優(yōu)良中差輸出學(xué) 生人數(shù)*/void count_pass(stu stu,int n)int i,pass_num,t4;float passrate;memset(t,0,sizeof(t);for(i = 0;in;i + +)(if(stui.score260) t0 + +;else if(stui.score2 =75) tl + +;else if(stui.score2 =85) t2 + +;else if(stui.score2 = 100) t3 + +;pas
39、s_num =tl +t2 +t3;passrate=(float)(tl+t2+t3)/n;printf(及格人數(shù):%dnm,pass_num);printf(優(yōu):dt 良:dt 中:dt差:drt,t3lt2ltllt0);printf(總評(píng)成績(jī)及格率:%.2fn,passrate);printf(總評(píng)成績(jī)優(yōu)秀率:%.2fnz(float)t3/n);)/*函數(shù)功能:計(jì)算學(xué)生總評(píng)成績(jī)的平均分和標(biāo)準(zhǔn)差*/void count_average(stu stu,int n)int i;double sum=o/aver/temp=o/standard;for(i=0;in;i + +)(sum=
40、stui.score2 + sum;)aver=(float)sum/n;for(i=0;in;i + +) (temp=(stui.score2-aver)*(stui.score2-aver)+temp;)standard=sqrt(temp/n);printf(總評(píng)成績(jī)平均分:總評(píng)成績(jī)標(biāo)準(zhǔn)差:%.2lfn,aver,standard);/*函數(shù)功能:輸出全班學(xué)生的所有成績(jī)vvoid show_data(stu stu,int n)(int i;for(i = 0;in;i + +)printf(學(xué)號(hào):ldt姓名:st平時(shí)成績(jī):dt期末成績(jī):dt總評(píng)成績(jī):dn,stui.num,stui.
41、name,stui.scoreolstui.scorellstui.score2);)/*函數(shù)功能:將學(xué)生所有成績(jī)的列表導(dǎo)出到文本score.txt中*/void write_data(stu stu,int n)(file *fp;int i;if(fp=fopen(score.txt,w,)= = null)(printf(打開文件失??! n);exit(o);)fprintf(fp,以下各項(xiàng)分別對(duì)應(yīng)學(xué)號(hào)、姓名、平時(shí)成績(jī)、期末成績(jī)和總評(píng)成績(jī):n)for(i = 0;in;i + +)fprintf(fp/%ldt%st%dt%dt%dn,/stui.num/stui.na me,stui.
42、score0,stui.scorel,stui.score2);)fclose (fp);4、系統(tǒng)維護(hù)經(jīng)測(cè)試與調(diào)試確認(rèn)軟件無(wú)錯(cuò)時(shí),開發(fā)就告一段落,這時(shí)可以交付軟件供用 戶使用,但是在軟件的使用過(guò)程中還會(huì)面臨更加漫長(zhǎng)的工作,即軟件維護(hù)。一 般維護(hù)的工作有:更改使用中發(fā)現(xiàn)的錯(cuò)誤;為適應(yīng)實(shí)際環(huán)境而對(duì)程序進(jìn)行修改; 為滿足新的需求而對(duì)程序作必要的改進(jìn)等等,一個(gè)好的程序不僅是通過(guò)好的編 程技術(shù)實(shí)現(xiàn),還要通過(guò)好的編程風(fēng)格和設(shè)計(jì)方式來(lái)達(dá)到最低成本的代碼維護(hù)和 新需求的實(shí)現(xiàn)。4.1調(diào)試和測(cè)試一般情況下,為解決一個(gè)問(wèn)題所編寫的程序代碼較長(zhǎng),可能包括幾百條甚 至成千上萬(wàn)條語(yǔ)句。在檢查并排除所有語(yǔ)法錯(cuò)誤后,還會(huì)有不易發(fā)現(xiàn)的邏輯錯(cuò) 誤,因此要對(duì)程序進(jìn)行認(rèn)真仔細(xì)的測(cè)試與調(diào)試。通常情況下語(yǔ)法錯(cuò)誤造成的編譯錯(cuò)誤可以在運(yùn)行時(shí)期前解決修改,比如多重指針的解除引用賦值造成的編譯錯(cuò)誤可以通過(guò)添加對(duì)應(yīng)的括號(hào)來(lái)實(shí)現(xiàn)等。但一 些錯(cuò)誤比如說(shuō)邏輯錯(cuò)誤和運(yùn)行時(shí)錯(cuò)誤就得等到程序運(yùn)行時(shí)檢查或者崩潰時(shí)候才 能知曉,比如空指針引用和浮點(diǎn)變量存儲(chǔ)除法結(jié)果但忘記整數(shù)除法的例外情況。 但
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年馬拉松比賽合作協(xié)議書
- 人教版地理八年級(jí)下冊(cè)6.4《祖國(guó)的首都-北京》聽課評(píng)課記錄2
- 【部編版】七年級(jí)歷史上冊(cè) 《中國(guó)早期人類的代表-北京人》公開課聽課評(píng)課記錄
- 豬欄承包協(xié)議書(2篇)
- 生產(chǎn)工人中介合同(2篇)
- 人教版數(shù)學(xué)九年級(jí)上冊(cè)《構(gòu)建知識(shí)體系級(jí)習(xí)題訓(xùn)練》聽評(píng)課記錄1
- 北師大版道德與法治九年級(jí)上冊(cè)4.1《經(jīng)濟(jì)發(fā)展新階段》聽課評(píng)課記錄
- 八年級(jí)思想讀本《5.1奉法者強(qiáng)則國(guó)強(qiáng)》聽課評(píng)課記錄
- 五年級(jí)上冊(cè)數(shù)學(xué)聽評(píng)課記錄《4.2 認(rèn)識(shí)底和高》(3)-北師大版
- 湘教版數(shù)學(xué)八年級(jí)上冊(cè)2.3《等腰(邊)三角形的判定》聽評(píng)課記錄
- 城市隧道工程施工質(zhì)量驗(yàn)收規(guī)范
- 2025年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招高職單招英語(yǔ)2016-2024年參考題庫(kù)含答案解析
- 五 100以內(nèi)的筆算加、減法2.筆算減法 第1課時(shí) 筆算減法課件2024-2025人教版一年級(jí)數(shù)學(xué)下冊(cè)
- 2025江蘇太倉(cāng)水務(wù)集團(tuán)招聘18人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024-2025學(xué)年人教新版高二(上)英語(yǔ)寒假作業(yè)(五)
- 2025年八省聯(lián)考陜西高考生物試卷真題答案詳解(精校打印)
- 2025脫貧攻堅(jiān)工作計(jì)劃
- 借款人解除合同通知書(2024年版)
- 《血小板及其功能》課件
- 江蘇省泰州市靖江市2024屆九年級(jí)下學(xué)期中考一模數(shù)學(xué)試卷(含答案)
- 沐足店長(zhǎng)合同范例
評(píng)論
0/150
提交評(píng)論