C語言課程設(shè)計學生成績統(tǒng)計設(shè)計報告_第1頁
C語言課程設(shè)計學生成績統(tǒng)計設(shè)計報告_第2頁
C語言課程設(shè)計學生成績統(tǒng)計設(shè)計報告_第3頁
C語言課程設(shè)計學生成績統(tǒng)計設(shè)計報告_第4頁
C語言課程設(shè)計學生成績統(tǒng)計設(shè)計報告_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

課程設(shè)計2013年11月3日設(shè)計題目:學生成績統(tǒng)計設(shè)計條件:掌握C語言的基本知識,能夠熟練地應(yīng)用順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu),能夠善于應(yīng)用結(jié)構(gòu)體數(shù)組和對文件的輸入輸出。設(shè)計內(nèi)容:【問題描述】學期考試結(jié)束,統(tǒng)計有N個班某班每個人的平均成績,每門課的平均成績,并按個人平均成績從高到低的順序輸出成績,輸出不及格人名單。輸入、輸出格式自定?!緦崿F(xiàn)提示】假設(shè)某班有:30人(姓名自定)考試課程有:高等數(shù)學、物理、外語、C語言、德育5門課程。將所有同學的成績保留在文件中,對文件中的數(shù)據(jù)處理,輸出所要求的內(nèi)容,程序的功能主要包括3方面:輸入成績到文件中輸出成績輸出不及格學生名單成績排序修改記錄刪除記錄插入記錄等主函數(shù)中對3個功能選擇(菜單),調(diào)用對應(yīng)的函數(shù)完成。下達日期:2013年10月完成日期:2013年11月目錄、前言 4\o"CurrentDocument"二、設(shè)計思想 4\o"CurrentDocument"三、設(shè)計過程 4\o"CurrentDocument"四、程序流程圖 7\o"CurrentDocument"五、程序清單 8\o"CurrentDocument"六、總結(jié) 8\o"CurrentDocument"附錄1.用戶文檔 10\o"CurrentDocument"附錄2.技術(shù)文檔 13\o"CurrentDocument"參考文獻 13、前言本課程設(shè)計提供了一個既動手又動腦,自學,查資料,獨立實踐的機會。將課本上的理論知識和實際有機的結(jié)合起來,鍛煉學生實際分析問題和解決問題的能力,提高學生適應(yīng)實際、實踐編程的能力,使對C語言系統(tǒng)編程有一個大致的了解。本課程設(shè)計——學生成績統(tǒng)計,在日常的教學過程中具有較高的應(yīng)用價值。當老師批改完一大批試卷后,需要統(tǒng)計成績得出相應(yīng)結(jié)果時,“學生成績統(tǒng)計”就能夠發(fā)揮其重要作用。設(shè)計這個程序,主要用到結(jié)構(gòu)體數(shù)組和文件兩個知識點,再結(jié)合順序、循環(huán)、選擇、函數(shù) 來實現(xiàn)功能。設(shè)計思想首先編譯預(yù)處理,輸入頭文件;再之全局聲明;對函數(shù)進行定義。再建立一個student結(jié)構(gòu)體,把結(jié)構(gòu)體里面的內(nèi)容寫入一個文件中。然后先把主函數(shù)main()寫好,再把子函數(shù)完善好,最后測試、修改,直到達到最終功能和界面美觀為止。設(shè)計過程1、根據(jù)設(shè)計要求做好分析,把主要框架設(shè)計羅列出來??紤]到此程序主要有3大方面的內(nèi)容,所以主函數(shù)里分為3大模塊,模塊里面再根據(jù)要求執(zhí)行相應(yīng)的內(nèi)容。2、根據(jù)主要的框架,確定沒有問題后,編寫主函數(shù)如下:#include<>#include<>#include<>#defineN3000intsystem(constchar*string);structstudent del入成績到文件中\(zhòng)n");printf("2.輸出成績\n");printf("3.編輯\n");printf("你的選擇(1-3):");do{scanf("%c",&choice);}while(choice=='\n');printf("\n");switch(choice)\n");scanf("%s",&zlq);system("CLS");}}if(zlq=='N'||zlq=='n'){printf("歡迎下次使用.\n");over=1;}if(zlq!='Y'&&zlq!='N'&&zlq!='y'&&zlq!='n'){printf("\n輸入錯誤!將退出~\n");over=1;}}}輸入1后,按enter,會出現(xiàn)如下主菜單:>■F人陳庭美言課程設(shè)計口[物理電子n陳庭£語言課程設(shè)計1口總?cè)诿?1物理電子1除…1_5歡迎進入:學生成績統(tǒng)計制作者:3111008371陳腐L1物理電子(1)班*+*仁仁+*4*+*1*1斗功能選擇*+++<******4*4=1=+=4=L輸入成績到文件中.輸出成績.編輯二****仁仁****仁**仁仁口***仁件?***仁仁口****爾■的選擇(1-3):3、確定好主函數(shù)后,再根據(jù)要求撰寫執(zhí)行“輸入成績到文件中”之后相對應(yīng)的“返回主菜單”程序,檢查是否會出現(xiàn)錯誤。4、待檢查無錯誤之后,開始寫下一步:“輸出成績”程序。輸出程序里面又包含有4個子程序語句,分別為“排序”、“輸出成績”、“輸出不及格名單”、“返回”,查找與之相對應(yīng)的函數(shù)的資料,然后撰寫相應(yīng)程序。5、與第4步相似地進行撰寫“編輯”程序下的“修改”、“刪除”、“插入”、“返回”程序。6、運行程序,看是否出現(xiàn)錯誤,如有錯誤,根據(jù)相關(guān)提示修改錯誤,例如一些字符漏寫或者函數(shù)類型錯誤等等。7、等修改完,再次運行,根據(jù)功能選擇,輸入相應(yīng)數(shù)字,運行看看能否執(zhí)行相應(yīng)要求的功能。輸入一些假設(shè)結(jié)果,驗證程序設(shè)置的正確性。8、完善所有之后,就正式宣告課程設(shè)計結(jié)束,并撰寫設(shè)計報告。四、 程序流程圖輸出菜單是否返回主菜單插入修

改刪

除輸出不及格名單輸出成績排

序根據(jù)菜單輸入choice的值選擇程序結(jié)束開始返

回返

回編輯輸入輸出五、程序清單各函數(shù)的功能和實現(xiàn):1、輸入某班的所有學生的成績。輸入信息包括:班級,姓名,高等數(shù)學、物理、外語、C語言、德育5門課程成績并寫入文件“stud”中;可用函數(shù)voidinput(structstudentstu口)來實現(xiàn)。2、輸出模塊:函數(shù)voidprint()里嵌套4個函數(shù)用于排序、輸出成績、輸出不及格名單、返回;排序:函數(shù)voidlist(structstudentstu口)只是實現(xiàn)排序個功能,需要輸出名單得需再次選擇選項“2”。輸出:輸出學生的信息以及成績 voidprint(structstudentstu口):通過輸入班級來查看某個班的相關(guān)情況。輸出平均分不及格的名單:用函數(shù)voidprinot(structstudentstu口)來實現(xiàn)輸出所以平均分不及格的學生的班級及姓名。返回:返回到主界面。3、編輯模塊:函數(shù)voidbian()中應(yīng)用4個函數(shù)加于循環(huán)選擇,可以進行選擇修改、刪除、插入、返回;修改:在函數(shù)voidchanges(structstudentstu口)里面輸入需要修改的學生的班級、姓名以及成績,就可以對某班某個學生的成績進行修改。刪除:用函數(shù)voiddel(structstudentstu口)實現(xiàn)。刪除某班某個學生的成績。插入:用函數(shù)voidser(structstudentstu口)實現(xiàn)。實現(xiàn)在某班中插入某些同學的相關(guān)信息。4、判斷是否返回主菜單:用判斷語言if。六、總結(jié)回顧起此次C語言課程設(shè)計,我感慨頗多,從拿到題目到完成整個編程、調(diào)試到撰寫報告,從理論到實際,在將近一個月的時間里,我學到了很多知識,攻破了以前的一些知識盲點。在這之中,我不僅可以鞏固了以前學習的知識,而且學習到了很多在書本上所沒有學到過的知識,拓寬了知識面。通過此次課程設(shè)計,我懂得了理論和實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實際相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程中,算是困難重重吧。在編寫時,遇到不少問題,低級錯誤是主要的問題。特別在整合時,問題更多。比如因float誤用作int而導(dǎo)致的錯誤,花費了我好長的時間。由其得到,錯誤或許就出在最根本處。由于本課題中的很多知識點都沒有學過,要自己去翻看書里后面幾章的內(nèi)容去熟悉理解,并且通過查找課外的相關(guān)資料。小到一個術(shù)語,大到一個函數(shù)、一個邏輯關(guān)系,都需要在這過程中理解。開始設(shè)計出來的程序存在著很多錯誤,修改了很多次都沒有出現(xiàn)可觀的跡象,詢問了周圍的同學研究了之后才得到解決。設(shè)計出來的菜單也不是預(yù)想的那樣,而是整個窗口出現(xiàn)混亂。解決這個問題就是調(diào)整。一個系統(tǒng)的菜單和信息的提示語句是非常重要的。如果沒有這些用戶根本不知道怎么用你設(shè)計的這個系統(tǒng),在設(shè)計的調(diào)試過程中也無法順利地完成調(diào)試工作。有了一個清晰明了的菜單和一些提示信息之后,調(diào)試過程完成得非常順利。在本次實習過程中碰到的編譯、連接的錯誤主要有:1、定義變量時:變量不容易聯(lián)系起來,經(jīng)常會寫錯變量名,但是在錯誤信息的提示下一般還是很容易找到。但是在寫各個函數(shù)時,發(fā)現(xiàn)一個變量名,只要不是全局變量就可以無數(shù)次定義,只要分開在不同的函數(shù)中就可以了。不過需要注意的是在定義的時候有些函數(shù)使用同樣的變量名而表示不同的作用,因而使用要很小心,定義及定義的位置要特別留意。在編寫程序時要安靜,才不會出現(xiàn)低級錯誤。2、語法錯誤:語法錯誤在通過書本參考下能夠修改,并且在上機的錯誤提示中得到修改,但是由于書本是C語言,不是C++的。所以在使用時要注意在主函數(shù)和一些定義變量跟聲明函數(shù)時有些不同,這不是語法的錯誤,而是作為一個程序員必須要注意到的,要體會兩種語言的區(qū)別,由于平時看書不仔細、沒有經(jīng)過仔細的思考造成的。如沒有注意具體數(shù)據(jù)使用是有一定的范圍限定。在本次調(diào)試過程中我還碰到了一些以前上機過程中從未碰到過的錯誤。邏輯上的錯誤機器不易檢查出來,這時需要對數(shù)據(jù)結(jié)果進行分析。這種錯誤的查找是最難的,需要編程序的人有相當?shù)哪托暮图毿娜グ褑栴}找出來。這也是本次程序編輯過程中碰到的最大的難題。因此我使用的是一個一個函數(shù)的檢查,并通過調(diào)試修改。通過此次課程設(shè)計,我還得到了一些有用的教訓(xùn):寫程序時必須要細心,不能輸錯一個字符標點,就連全角半角也得注意。在修改時要有耐心,編譯出錯后必須逐個錯誤去改正,絕不能心急浮躁,否則修改之后還會有新的錯誤。在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。通過這次課程設(shè)計之后,我一定把以前所學過的知識重新溫故。剛開始做的時候,一點感覺都沒有,到后來就越有感覺了,開始慢慢懂了!曾記得有個同學說過“有問題找百度”,這次剛好派上用場了,在做程序設(shè)計的過程中,不懂的就上網(wǎng)搜索,真的學到挺多東西的!我想接下來的日子也得好好補補C語言,好為以后的課程打下基礎(chǔ)。做課程設(shè)計的日子是辛苦的,但是當完成一項工程后,那種欣喜是油然而生的。連續(xù)奮戰(zhàn)了幾個星期,尤其在臨近上交期限的時候,我連續(xù)幾晚待在電腦前,一待就是幾個小時,敲擊著代碼,測試著每個語句,然后上網(wǎng)查找資料,看書里的內(nèi)容。這種生活雖然很累,很枯燥,但是感覺世界很安靜,鍵盤的聲響是一種心里知識的書寫。尤其是最后的這段期間,說起一件有趣的事情,大家為了老師交代的格式和字數(shù)拼命查找資料而且為了趕在驗收日期前做好,一天除了上課睡覺之外,吃完飯就開工了。昨晚宿舍還集體為了測試程序而到11點都還沒人洗澡,然后就是集體晚睡了。這都是此次課程設(shè)計過程中發(fā)生的趣事。不過這種生活也是很難得,難得因為這樣的一件事大家能夠那么集中地做事情。挺難得的一段經(jīng)歷,C語言,以后要再翻出來看看,而且,要努力準備下次的二級C考試。附錄1.用戶文檔?調(diào)試與測試主要程序運行結(jié)果:?運行開始?選擇1輸入成績你的過抨口⑴二1諭入班皺:1舊多開一口在封。T、洋」|:a請輸入:i位學d_的信息:姓十、課程:總?cè)莴H學、物埋、外語、⑶百吉、德自的M,崎:a12663799b57897745c5S7857口口輸入完成后WHffA:%:的也懺口一:內(nèi):1愉入班北「1止卜田干一“士[考IT?■學二』吉輸入:;應(yīng)學生IYJ信息二姓右、訴程二高等郭?,學、判L里、.奸詔、門話占、德白伯J陰壬:a125S87

b578977

cE87867占自S6行吉堆.工一丫$者乩T代志是,叫,弋志不足-)選擇Y返回(輸入丫或丫都可以)?選擇2,輸出我知過久:學「Ib以結(jié)緣計巾HF各:3±LJ-':":'S371 |底庭 1j-4^1341Fh,-r<:1)J!11工勺能選擇 51-愉凡述苛利文件中?2.?rh,'I',一績?nèi)腚卦b國的選擇以一可:21-.對儂汝過竹排.序1.箱I中取砥3,福出小M格自皿4-返聲LL軍甲選擇1對成績進行排序后,再選擇2輸出成績遞繳國次H羽亍密出回.返抨」2.3.4.1%-格中序筆kr7rr名而入班別m±僵軍工嵯茗鄧年均分La.66序號姓名平均分b 61.林。序號姓名平均分;c 5S.W0l高等數(shù)學

9W.0

高等數(shù)學

99.0

高等教學物理物理9H.E1物理63_詞外詰U語言德肓70.0 30.0外語U語言德育80_P1 10_^外語匚語言德育EG.。 5*13-030.070.0輸入3,輸出不及格名單對成績進行排序?返回主菜單,選擇3進行編輯你的選擇。7日亙

錄錄錄菜

記記記主

S-余咫回:

修擇選擇1,修改a的成績[! 廷口1吉s灰在侯行啊理電土jl如5篁1后m休丘I日t?ugu星物j?電子?際…前迎進.學性成績統(tǒng)計劑作者;mnofjuavi陳欣:L=L物珥由于⑴班他*01010*0*0*0*0101cH01010toic能選擇*=m=l=l=***>=*=l=t=*=l=**1.輸入成績到文件中1.輸出內(nèi)植=l=H=l=M=M=l=M=M=M=M=l=M=l=M=l=l=M=M=l=M=l=l=M=H=b你的選擇以一巧;一字1-侈「攵i己一我

2-刪除i己尿

jJ擊人記示4.3反回1菜單選捽二1再要修改的班級:1需由誨曲不I華,I的行方,喜淬趙洋,制理,外語,匚語擊.德自小舊立特:cH4GH門口Fin77返回主菜單,選擇2輸出,檢查是否修改成功:1■.對成績ifi行排序3一播出h匕怎3.輸H:不就格名單4-辿d川工球T"用:士I1姓右平均分C小3_1■*I好右半十句儲姓名平均分L字曰-門門高淬樹〒忡理H4.II HH.II臺等省廠產(chǎn)抄岬47.Cj nn.u總于知?『我I」中,1門一門 日產(chǎn)LC而苫irQ

卜:I卜5.卜H.-T-:I.A5.AR德白UI II石之德白min.C Fi5.Cj-訕士濡之門口.C RE一口h石二-T.Q?-刈司-;技迎?丁」非方士.愉H‘山!江W3.輸tt[不及

■1-i丘回1茶T選擇2,刪除b的信息單錄錄錄第王改除人回:2

修?^擇

1234^^.而要進行刪除的班級:1慘遭刪除的學生姓名選擇3,插入d的信息播要插入記錄的班級:1%的學生姓名,及其高等數(shù)學、物理,外語、C語言、德育的成績:7777777777附錄2.技術(shù)文檔?主要函數(shù)1、input()該函數(shù)主要用來創(chuàng)建新數(shù)據(jù)文件,當?shù)谝淮问褂迷摮绦蚧蛘咴瓌?chuàng)建的文件的內(nèi)容無效

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論