




已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
目錄目錄2一、課程設(shè)計的目的與要求31.1課程設(shè)計目的:31.2課程設(shè)計要求3二、題目說明52.1 程序開發(fā)背景52.2 開發(fā)工具介紹5三、總體設(shè)計73.1 系統(tǒng)結(jié)構(gòu)圖73.2模塊流程圖83.2模塊流程圖9四、詳細說明124.1成績添加模塊124.2成績顯示模塊134.3按姓名查找模塊144.4成績排序模塊144.5成績比較模塊15五、遇到的問題和解決方法17六、課程設(shè)計總結(jié)18七、參考文獻19附錄(源程序代碼)20一、課程設(shè)計的目的與要求1.1課程設(shè)計目的: 1.為培養(yǎng)學生嚴謹?shù)墓ぷ鲬B(tài)度,鍛煉學生編寫文檔的能力。進一步掌握和利用c語言進行程設(shè)計的能力;進一步理解和運用結(jié)構(gòu)化程設(shè)計的思想和方法;初步掌握開發(fā)一個小型實用系統(tǒng)的基本方法;學會調(diào)試一個較長程序的基本方法;學會利用流程圖或n-s圖表示算法;掌握書寫程設(shè)計開發(fā)文檔的能力(書寫課程設(shè)計報告); 2、熟練掌握c語言課程中所學的理論知識; c語言是在國內(nèi)外廣泛使用的一種計算機語言。它既有高級語言的特點,又具有匯編語言的特點。它可以作為系統(tǒng)設(shè)計語言,編寫工作系統(tǒng)應用程序,也可以作為應用程序設(shè)計語言,編寫不依賴計算機硬件的應用程序。因此,它的應用范圍廣泛。學習使用c語言程序的目的是掌握程序設(shè)計的思路,學會用計算機語言編寫程序正確處理算法和語法的關(guān)系算法是程序的核心、是靈魂,語法是外殼、是工具。通過課程設(shè)計,我們要熟練的掌握c語言的算法、語言、函數(shù)的調(diào)用、循環(huán)的使用、數(shù)組的運用等。 3、通過綜合c語言的基本知識來解決實際問題; c語言中與許多的東西,像:數(shù)據(jù)類型、運算符、表達式、程序設(shè)計結(jié)構(gòu)、數(shù)組與函數(shù)調(diào)用。其中c語言最難和最經(jīng)典的地方就是循環(huán),(while和for的嵌套)運用while,for,switch和if的循環(huán)嵌套,我們可以實現(xiàn)現(xiàn)實中課程信息管理、圖書信息管理、學生信息管理、商品信息管理等。c語言還具有繪圖能力強,可移植性,并具備很強的數(shù)據(jù)處理能力,因此適于編寫系統(tǒng)軟件,三維,二維圖形和動畫。它是數(shù)值計算的高級語言。 4、加強分析和解決問題的能力。通過這次的課程設(shè)計,能加強我們對程序設(shè)計的思考、設(shè)計、分析、理解和解決問題的能力。對于我們初學者來說,主要是學習成長設(shè)計的方法,進行程序設(shè)計的基本訓練為將來進一步學習打下基礎(chǔ)。課程設(shè)計不能之掌握概念,還要動手編程、上機調(diào)試運行。只有自己動手,才能學的更多。1.2課程設(shè)計要求1.課程設(shè)計步驟:(1)對系統(tǒng)進行功能需求分析;(2)設(shè)計合理的數(shù)據(jù)結(jié)構(gòu)和系統(tǒng)框架;(3)編程簡練,程序功能齊全,能正確運行;(4)說明書、流程圖要清楚;(5)課題完成后必須按要求提交課程設(shè)計說明書;在課程設(shè)計過程中要求學生:重視課程設(shè)計環(huán)節(jié),用嚴謹、科學和踏實的工作態(tài)度對待課程設(shè)計的每一項任務;按照課程設(shè)計的題目要求,獨立地完成各項任務,不允許相互抄襲;按時到機房上機,并接受教師的檢查。認真編寫課程設(shè)計報告。課程設(shè)計可以由24名同學合作完成一個課題。全體成員應共同協(xié)作完成選題,確定設(shè)計思想,進行功能模塊劃分,然后由組長為各成員分配任務。整個設(shè)計期間,組長負責協(xié)調(diào)工作。各小組成員明確自己的任務后,應獨立完成各自模塊的設(shè)計、編碼和調(diào)試,獨立完成課程設(shè)計說明書。小組成員要理解同組其他成員設(shè)計的模塊,熟練操作本組設(shè)計。2. 考核方式和成績評定考核分為兩個部分:(1)程序運行情況:按規(guī)定時間到機房運行程序,由老師檢查運行情況(2)課程設(shè)計報告:是否按規(guī)定書寫課程設(shè)計要求的各項內(nèi)容課程設(shè)計成績采用百分制:100%=平時(20)上機檢查(30%)+課程設(shè)計報告(50%)二、題目說明 2.1 程序開發(fā)背景 計算機已經(jīng)成為我們學習和工作的得力助手,它被應用于許多領(lǐng)域,之所以如此,主要有以下幾個方面的原因:首先,計算機可以替代人工進行許多繁雜的勞動;其次,計算機可以節(jié)省許多資源;第三計算機可以大大提高人們的工作效率;第四,計算機可以保證文檔的安全通過c語言,我們可以開發(fā)許多新的項目,實現(xiàn)智能操作化,科技化,實現(xiàn)低投入,高產(chǎn)出的良好現(xiàn)象?,F(xiàn)在我國學生成績管理還停留在紙介質(zhì)層面上,這樣的機制已經(jīng)不能適應時代的發(fā)展,因為他浪費許多人力物力資源,在信息時代這種管理方法必然將被計算機為基礎(chǔ)的信息管理方法所取代。 2.2 開發(fā)工具介紹 c語言是combined language(組合語言)的中英混合簡稱。是一種計算機程序設(shè)計語言。它既具有高級語言的特點,又具有匯編語言的特點。它可以作為工作系統(tǒng)設(shè)計語言,編寫系統(tǒng)應用程序,也可以作為應用程序設(shè)計語言,編寫不依賴計算機硬件的應用程序。因此,它的應用范圍廣泛,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到c語言,具體應用比如單片機以及嵌入式系統(tǒng)開發(fā)。早期的c語言主要是用于unix系統(tǒng)。由于c語言的強大功能和各方面的優(yōu)點逐漸為人們認識,到了八十年代,c語言開始進入其它操作系統(tǒng),并很快在各類大、中、小和微型計算機上得到了廣泛的使用。成為當代最優(yōu)秀的程序設(shè)計語言之一。c語言的特點: c語言是一種結(jié)構(gòu)化語言。它層次清晰,便于按模塊化方式組織程序,易于調(diào)試和維護。c語言的表現(xiàn)能力和處理能力極強。它不僅具有豐富的運算符和數(shù)據(jù)類型,便于實現(xiàn)各類復雜的數(shù)據(jù)結(jié)構(gòu)。它還可以直接訪問內(nèi)存的物理地址,進行位(bit)一級的操作。由于c語言實現(xiàn)了對硬件的編程操作,因此c語言集高級語言和低級語言的功能于一體。既可用于系統(tǒng)軟件的開發(fā),也適合于應用軟件的開發(fā)。c語言中:main是主函數(shù)的函數(shù)名,表示這是一個主函數(shù)。每一個c源程序都必須有,且只能有一個主函數(shù)(main函數(shù))。函數(shù)調(diào)用語句,printf函數(shù)的功能是把要輸出的內(nèi)容送到顯示器去顯示。printf函數(shù)是一個由系統(tǒng)定義的標準函數(shù),可在程序中直接調(diào)用。此外,c語言還具有效率高,可移植性強等特點。因此廣泛地移植到了各類各型計算機上,從而形成了多種版本的c語言。優(yōu)點: (1)c語言靈活性好,效率高,可以接觸到軟件開發(fā)比較底層的東西。 (2)微軟的mfc庫博大精深,學會它可以讓隨心所欲地進行編程。 (3)vc是微軟制作的產(chǎn)品,與操作系統(tǒng)的結(jié)合更加緊密。 缺點: 對使用者的要求比較高,既要具備豐富的c語言編程經(jīng)驗,又要具有一定的windows編程基礎(chǔ),它的過于專業(yè)使得一般的編程愛好者學習起來會有不小的困難。 三、總體設(shè)計3.1 系統(tǒng)結(jié)構(gòu)圖學生成績管理系統(tǒng)是為了方便用戶根據(jù)需要對學生的各科成績信息進行管理的系統(tǒng)。在如今的現(xiàn)代化信息理念下,一個學生管理系統(tǒng)在國際各大高校的教育機構(gòu)中是一個必不可少的應用程序,它可以方便的對學生信息進行查詢,比較,排序等功能,大大提高工作效率。學生成績管理系統(tǒng)包括人員信息的錄入,信息查詢,比較,排序等操作。內(nèi)容比較龐大復雜。通過以上說明,我們可以總結(jié)得到如下的系統(tǒng)結(jié)構(gòu)圖;各科最低分學生成績管理增加學生成績顯示學生成績查詢學生成績學生成績統(tǒng)計與排序?qū)W生成績比較按姓名查找學生總分學生平均分平均分降序排序各科最高分各科平均分圖3-13.2模塊流程圖3.2.1成績添加和打印模塊開始輸入學號輸入姓名輸入成績打印學生信息圖3-2 3.2.2查看成績模塊查看成績輸入姓名是否相等輸出相關(guān)信息結(jié)束yn圖3-33.2.3成績排序模塊學生成績利用for循環(huán)i=0;in-1;i+j=i;javerage(head+k)-average) if(head+j)-average(head+k)-average) k=j;if(k!=i)temp=*(head+k)*(head+k)=*(head+i)*(head+i)=temp圖 3-43.2.4成績比較模塊開始for(p=head;phead+m;p+)for(i=0;iscoreip-scorekp-scoreiscorek)p-max=p-scoreip-min=p-scorei輸出最大值最小值開始for(p=head;phead+m;p+)for(i=0;iscoreip-scorekp-scoreiscorek)開始for(p=head;phead+m;p+)for(i=0;in;i+)是輸出最大值最小值圖3-5四、詳細說明4.1成績添加模塊appendscore函數(shù):功能簡介:向鏈表的末尾添加從鍵盤輸入學生的學號、姓名和成績等信息。 函數(shù)參數(shù):結(jié)構(gòu)體指針head,指向存儲學生信息的結(jié)構(gòu)體數(shù)組的首地址。 整形變量n,表示學生人數(shù); 整形變量m,表示考試科目。 圖4-1int appendscore(stu *head,int n,int m) int j; stu *p; char ch; for(p=head+n;pnumber); printf(input name:); scanf(%s,p-name); for(j=0;jscore+j); n+; printf(do you want to append a new node(y/n)?); scanf(%c,&ch); if(ch=n|ch=n) return n; 定義結(jié)構(gòu)體指針head,存儲學生信息。利用for循環(huán)依次輸入學生的學號、姓名和成績等信息。4.2成績顯示模塊printscore函數(shù):功能簡介:打印學生的學號、姓名和成績等信息; 函數(shù)參數(shù):結(jié)構(gòu)體指針head,指向存儲學生信息的結(jié)構(gòu)體數(shù)組的首地址。 整形變量n,表示學生人數(shù); 整形變量m,表示考試科目。圖4-2void printscore(stu *head,int n,int m) stu *p; int i; char str100=0,temp4; strcat(str,number name); for(i=1;i=m;i+) strcat(str,score); itoa(i,temp,10); strcat(str, ); strcat(str, average); printf(%s,str); for(p=head;pnumber,p-name); for(i=0;iscorei); printf(%9.2fn,p-average); 定義結(jié)構(gòu)體變量head,儲存學生信息,利用for循環(huán)依次輸出學生的學好、姓名和成績等信息。4.3按姓名查找模塊searchscort函數(shù):功能簡介:按學號查找學生成績并顯示查找結(jié)果; 函數(shù)參數(shù):結(jié)構(gòu)體指針head,指向存儲學生信息的結(jié)構(gòu)體數(shù)組的首地址。 整形變量n,表示學生人數(shù); 整形變量m,表示考試科目。圖4-3void searchscore(stu *head,int n,int m) int name,findno; printf(please input the name you want to search:); scanf(%c,&name); findno=searchname(head,name,n); if(findno=-1) printf(nnot found!n); else printscore(head+findno,1,m); 輸入要查找的學生的姓名,進入系統(tǒng),定義findno,findno=searchname(head,name,n),如果findno=-1,那么這顯示沒有找到,如果findno不等于-1,則說明有,調(diào)用printscore函數(shù),輸出要查找的學生的成績。4.4成績排序模塊sortscore函數(shù):功能簡介:用選擇法按平均成績由高到低排序;函數(shù)參數(shù):結(jié)構(gòu)體指針head,指向存儲學生信息的結(jié)構(gòu)體數(shù)組的首地址。 整形變量n,表示學生人數(shù)。圖4-4void sortscore(stu *head,int n) int i,j,k; stu temp; for(i=0;in-1;i+) k=i; for(j=i;javerage(head+k)-average) k=j; if(k!=i) temp=*(head+k); *(head+k)=*(head+i); *(head+i)=temp; 定義i、j、k,i是指向?qū)W生人數(shù)的外循環(huán),k、j是指向?qū)W生人數(shù)的內(nèi)循環(huán)。k=i時,如果j指向的數(shù)比k指向的那個數(shù)大,那么k=j.而k!=i時,i指向的外循環(huán)的數(shù)與k指向的內(nèi)循環(huán)的數(shù)相等。實現(xiàn)排序。4.5成績比較模塊readscore函數(shù):功能簡介:結(jié)合學生的各科成績,計算每科的平均成績、最高分和最低分。 函數(shù)參數(shù):結(jié)構(gòu)體指針head,指向存儲學生信息的結(jié)構(gòu)體數(shù)組的首地址。 整形變量n,表示學生人數(shù); 整形變量m,表示考試科目。 圖4-5void readscore(stu *head,int n,int m) stu *p; int i,k; for(p=head;psum1=0; for(i=0;isum1=p-sum1+p-scorei; p-average1=(float)p-sum1/n; k=0; i=1; if(p-scoreip-scorek) k=i; p-max=p-scorei; 定義結(jié)構(gòu)體指針p,p是指向考試科目的外循環(huán),定義i,i是指向?qū)W生人數(shù)的內(nèi)循環(huán)。利用這兩個循環(huán),對各科成績進行統(tǒng)計與比較,計算出各科成績的總分,繼而計算出各科成績的平均分,以及各科成績的最高分和最低分。五、遇到的問題和解決方法1、for(i=0;in;i+)經(jīng)常寫成for(i=0,in,i+),導致運行錯誤。解決方法:編程時候需要仔細和耐心。并記住易錯的地方,輸入時不應該太快 然后仔細檢查。2. 對一些課本中的知識不熟悉,導致剛開始編程的時候很難下手。 解決方法:重新掌握不熟悉的知識并收集相關(guān)資料,通過課程設(shè)計,我們要熟練的掌握c語言的算法、語言、函數(shù)的調(diào)用、循環(huán)的使用、數(shù)組的運用等。 3、由于馬虎經(jīng)常漏掉、;等等。 解決方法:時刻提醒自己認真仔細一點,病記住易錯、易漏的地方,而且要仔細認真檢查。 4、有些程序太過復雜,違反了kiss規(guī)則。 解決方法:要深刻理解程序的意義,化繁為簡,化難為易5、計算機應用不熟練,截圖是我遇到的最大的問題。 解決方法:提高計算機的操作技術(shù),使快而有效的完成任務。 六、課程設(shè)計總結(jié)一周的課程設(shè)計很快結(jié)束了,一開始拿起題目時什么都不懂,真不知道從何下手到后來覺得它很有趣,很想去做并希望能把它做得更好。剛開始錯誤實在太多,改錯誤真的很頭疼,不過當經(jīng)過一次又一次的調(diào)試后,終于弄好了,那時卻是特別的高興??偟膩碚f就是這次的課程讓我學了不少東西,也讓我對編程更有興趣,雖然學的不是很好,不過以后會努力的。課程設(shè)計是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程.隨著科學技術(shù)發(fā)展的日新日異,當今計算機應用在生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握計算機開發(fā)技術(shù)是十分重要的??偟膩碚f,本次課程設(shè)計,實在是受益匪淺。雖然課程設(shè)計只有短短的幾天,但是我發(fā)現(xiàn)我學到的知識比整整一個學期學到的都多。理論和實踐的相結(jié)合是學習最有效的方法。在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,通過這次課程設(shè)計之后,一定把以前所學過的知識重新溫故。回顧起此次課程設(shè)計,至今我仍感慨頗多,的確,從從拿到題目到完成整個編程,從理論到實踐,在整整一個星期的日子里,可以學到很多很多的的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。本次c 語言的課程設(shè)計讓我對c 語言的學習又有了更深入的了解,也讓我更深刻地領(lǐng)悟到了“實踐出真理”這個道理,在上機實踐過程中學到的知識遠遠超過了在課堂上十幾周學到的,學校組織的這次實習讓我們這些實踐知識匱乏的大學生增添了許多社會經(jīng)驗,為我們將來走上工作崗位其了不小的鋪墊作用。本次課程設(shè)計中遇到了很多以前沒有遇到過的問題,也曾想要放棄,但看到那些同學都在那認真的寫程序,給了我繼續(xù)的信心。在同學的幫助下,我順利的結(jié)束了本次課程設(shè)計,讓我知道原來憑借自己努力取得的成功會讓自己這么欣慰,也讓我知道了友誼和團結(jié)的重要性。七、參考文獻1.visual c+課程設(shè)計案例精編 作者:夏崇鐠、任海軍、余健2.c語言程序設(shè)計 作者譚浩強3.實用c語言程序設(shè)計教程 李金祥等編 中國電力出版社 20104.網(wǎng)址1: /html/95/n-136395.html5.網(wǎng)址2: 附錄(源程序代碼)#include#include#include#include#define stu_num 10#define course_num 4struct student int number; char name10; int score4; int sum; int sum1; int max; int min; float average; float average1;typedef struct student stu;int appendscore(stu *head,int n,int m) int j; stu *p; char ch; for(p=head+n;pnumber); printf(input name:); scanf(%s,p-name); for(j=0;jscore+j); n+; printf(do you want to append a new node(y/n)?); scanf(%c,&ch); if(ch=n|ch=n) return n; void printscore(stu *head,int n,int m) stu *p; int i; char str100=0,temp4; strcat(str,number name); for(i=1;i=m;i+) strcat(str,score); itoa(i,temp,10); strcat(str, ); strcat(str, average); printf(%s,str); for(p=head;pnumber,p-name); for(i=0;iscorei); printf(%9.2fn,p-average); void totalscore(stu *head,int n,int m) stu *p; int i; for(p=head;psum=0; for(i=0;isum=p-sum+p-scorei; p-average=(float)p-sum/m; void sortscore(stu *head,int n) int i,j,k; stu temp; for(i=0;in-1;i+) k=i; for(j=i;javerage(head+k)-average) k=j; if(k!=i) temp=*(head+k); *(head+k)=*(head+i); *(head+i)=temp; void readscore(stu *head,int n,int m) stu *p; int i,k; for(p=head;psum1=0; for(i=0;isum1=p-sum1+p-scorei; p-average1=(float)p-sum1/n; k=0; i=1; if(p-scoreip-scorek) k=i; p-max=p-scorei; int searchname(stu *head,char name,int n) int i; for(i=0;inumber=name) return i; return -1;void searchscore(stu *head,int n,int m) int name,findno; printf(please input the name you want to search:); scanf(%c,&name); findno=searchname(head,n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 水利水保合同協(xié)議
- 投入資金合同協(xié)議
- 招聘總工合同協(xié)議
- 洗車合作協(xié)議合同
- 弱電保養(yǎng)合同協(xié)議
- 水電維護合同協(xié)議
- 招標貸款合同協(xié)議
- 租房開店合同協(xié)議
- 童裝訂貨合同協(xié)議
- 月結(jié)業(yè)務合同協(xié)議
- 2025陜煤集團榆林化學限責任公司招聘596人高頻重點模擬試卷提升(共500題附帶答案詳解)
- DB23-T 3919-2024 大跨鋼結(jié)構(gòu)技術(shù)標準
- 【計量指南】中國森林生態(tài)系統(tǒng)碳儲量-生物量方程
- 2024年上海奉賢區(qū)招錄儲備人才筆試真題
- 2025河南中煙許昌卷煙廠招聘10人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年中國國新基金管理有限公司招聘筆試參考題庫含答案解析
- 2025年福建泉州發(fā)展集團有限公司招聘筆試參考題庫含答案解析
- CNAS-TRL-022:2023《實驗室風險管理指南》
- 2024年河南輕工職業(yè)學院高職單招語文歷年參考題庫含答案解析
- 第19課 資本主義國家的新變化 說課稿-2024-2025學年高一統(tǒng)編版2019必修中外歷史綱要下冊
- 即時通訊系統(tǒng)建設(shè)方案
評論
0/150
提交評論