




已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
目錄目錄2一、課程設計的目的與要求31.1課程設計目的:31.2課程設計要求3二、題目說明52.1 程序開發(fā)背景52.2 開發(fā)工具介紹5三、總體設計73.1 系統結構圖73.2模塊流程圖83.2模塊流程圖9四、詳細說明124.1成績添加模塊124.2成績顯示模塊134.3按姓名查找模塊144.4成績排序模塊144.5成績比較模塊15五、遇到的問題和解決方法17六、課程設計總結18七、參考文獻19附錄(源程序代碼)20一、課程設計的目的與要求1.1課程設計目的: 1.為培養(yǎng)學生嚴謹的工作態(tài)度,鍛煉學生編寫文檔的能力。進一步掌握和利用c語言進行程設計的能力;進一步理解和運用結構化程設計的思想和方法;初步掌握開發(fā)一個小型實用系統的基本方法;學會調試一個較長程序的基本方法;學會利用流程圖或n-s圖表示算法;掌握書寫程設計開發(fā)文檔的能力(書寫課程設計報告); 2、熟練掌握c語言課程中所學的理論知識; c語言是在國內外廣泛使用的一種計算機語言。它既有高級語言的特點,又具有匯編語言的特點。它可以作為系統設計語言,編寫工作系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬件的應用程序。因此,它的應用范圍廣泛。學習使用c語言程序的目的是掌握程序設計的思路,學會用計算機語言編寫程序正確處理算法和語法的關系算法是程序的核心、是靈魂,語法是外殼、是工具。通過課程設計,我們要熟練的掌握c語言的算法、語言、函數的調用、循環(huán)的使用、數組的運用等。 3、通過綜合c語言的基本知識來解決實際問題; c語言中與許多的東西,像:數據類型、運算符、表達式、程序設計結構、數組與函數調用。其中c語言最難和最經典的地方就是循環(huán),(while和for的嵌套)運用while,for,switch和if的循環(huán)嵌套,我們可以實現現實中課程信息管理、圖書信息管理、學生信息管理、商品信息管理等。c語言還具有繪圖能力強,可移植性,并具備很強的數據處理能力,因此適于編寫系統軟件,三維,二維圖形和動畫。它是數值計算的高級語言。 4、加強分析和解決問題的能力。通過這次的課程設計,能加強我們對程序設計的思考、設計、分析、理解和解決問題的能力。對于我們初學者來說,主要是學習成長設計的方法,進行程序設計的基本訓練為將來進一步學習打下基礎。課程設計不能之掌握概念,還要動手編程、上機調試運行。只有自己動手,才能學的更多。1.2課程設計要求1.課程設計步驟:(1)對系統進行功能需求分析;(2)設計合理的數據結構和系統框架;(3)編程簡練,程序功能齊全,能正確運行;(4)說明書、流程圖要清楚;(5)課題完成后必須按要求提交課程設計說明書;在課程設計過程中要求學生:重視課程設計環(huán)節(jié),用嚴謹、科學和踏實的工作態(tài)度對待課程設計的每一項任務;按照課程設計的題目要求,獨立地完成各項任務,不允許相互抄襲;按時到機房上機,并接受教師的檢查。認真編寫課程設計報告。課程設計可以由24名同學合作完成一個課題。全體成員應共同協作完成選題,確定設計思想,進行功能模塊劃分,然后由組長為各成員分配任務。整個設計期間,組長負責協調工作。各小組成員明確自己的任務后,應獨立完成各自模塊的設計、編碼和調試,獨立完成課程設計說明書。小組成員要理解同組其他成員設計的模塊,熟練操作本組設計。2. 考核方式和成績評定考核分為兩個部分:(1)程序運行情況:按規(guī)定時間到機房運行程序,由老師檢查運行情況(2)課程設計報告:是否按規(guī)定書寫課程設計要求的各項內容課程設計成績采用百分制:100%=平時(20)上機檢查(30%)+課程設計報告(50%)二、題目說明 2.1 程序開發(fā)背景 計算機已經成為我們學習和工作的得力助手,它被應用于許多領域,之所以如此,主要有以下幾個方面的原因:首先,計算機可以替代人工進行許多繁雜的勞動;其次,計算機可以節(jié)省許多資源;第三計算機可以大大提高人們的工作效率;第四,計算機可以保證文檔的安全通過c語言,我們可以開發(fā)許多新的項目,實現智能操作化,科技化,實現低投入,高產出的良好現象?,F在我國學生成績管理還停留在紙介質層面上,這樣的機制已經不能適應時代的發(fā)展,因為他浪費許多人力物力資源,在信息時代這種管理方法必然將被計算機為基礎的信息管理方法所取代。 2.2 開發(fā)工具介紹 c語言是combined language(組合語言)的中英混合簡稱。是一種計算機程序設計語言。它既具有高級語言的特點,又具有匯編語言的特點。它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬件的應用程序。因此,它的應用范圍廣泛,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到c語言,具體應用比如單片機以及嵌入式系統開發(fā)。早期的c語言主要是用于unix系統。由于c語言的強大功能和各方面的優(yōu)點逐漸為人們認識,到了八十年代,c語言開始進入其它操作系統,并很快在各類大、中、小和微型計算機上得到了廣泛的使用。成為當代最優(yōu)秀的程序設計語言之一。c語言的特點: c語言是一種結構化語言。它層次清晰,便于按模塊化方式組織程序,易于調試和維護。c語言的表現能力和處理能力極強。它不僅具有豐富的運算符和數據類型,便于實現各類復雜的數據結構。它還可以直接訪問內存的物理地址,進行位(bit)一級的操作。由于c語言實現了對硬件的編程操作,因此c語言集高級語言和低級語言的功能于一體。既可用于系統軟件的開發(fā),也適合于應用軟件的開發(fā)。c語言中:main是主函數的函數名,表示這是一個主函數。每一個c源程序都必須有,且只能有一個主函數(main函數)。函數調用語句,printf函數的功能是把要輸出的內容送到顯示器去顯示。printf函數是一個由系統定義的標準函數,可在程序中直接調用。此外,c語言還具有效率高,可移植性強等特點。因此廣泛地移植到了各類各型計算機上,從而形成了多種版本的c語言。優(yōu)點: (1)c語言靈活性好,效率高,可以接觸到軟件開發(fā)比較底層的東西。 (2)微軟的mfc庫博大精深,學會它可以讓隨心所欲地進行編程。 (3)vc是微軟制作的產品,與操作系統的結合更加緊密。 缺點: 對使用者的要求比較高,既要具備豐富的c語言編程經驗,又要具有一定的windows編程基礎,它的過于專業(yè)使得一般的編程愛好者學習起來會有不小的困難。 三、總體設計3.1 系統結構圖學生成績管理系統是為了方便用戶根據需要對學生的各科成績信息進行管理的系統。在如今的現代化信息理念下,一個學生管理系統在國際各大高校的教育機構中是一個必不可少的應用程序,它可以方便的對學生信息進行查詢,比較,排序等功能,大大提高工作效率。學生成績管理系統包括人員信息的錄入,信息查詢,比較,排序等操作。內容比較龐大復雜。通過以上說明,我們可以總結得到如下的系統結構圖;各科最低分學生成績管理增加學生成績顯示學生成績查詢學生成績學生成績統計與排序學生成績比較按姓名查找學生總分學生平均分平均分降序排序各科最高分各科平均分圖3-13.2模塊流程圖3.2.1成績添加和打印模塊開始輸入學號輸入姓名輸入成績打印學生信息圖3-2 3.2.2查看成績模塊查看成績輸入姓名是否相等輸出相關信息結束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函數:功能簡介:向鏈表的末尾添加從鍵盤輸入學生的學號、姓名和成績等信息。 函數參數:結構體指針head,指向存儲學生信息的結構體數組的首地址。 整形變量n,表示學生人數; 整形變量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; 定義結構體指針head,存儲學生信息。利用for循環(huán)依次輸入學生的學號、姓名和成績等信息。4.2成績顯示模塊printscore函數:功能簡介:打印學生的學號、姓名和成績等信息; 函數參數:結構體指針head,指向存儲學生信息的結構體數組的首地址。 整形變量n,表示學生人數; 整形變量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); 定義結構體變量head,儲存學生信息,利用for循環(huán)依次輸出學生的學好、姓名和成績等信息。4.3按姓名查找模塊searchscort函數:功能簡介:按學號查找學生成績并顯示查找結果; 函數參數:結構體指針head,指向存儲學生信息的結構體數組的首地址。 整形變量n,表示學生人數; 整形變量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); 輸入要查找的學生的姓名,進入系統,定義findno,findno=searchname(head,name,n),如果findno=-1,那么這顯示沒有找到,如果findno不等于-1,則說明有,調用printscore函數,輸出要查找的學生的成績。4.4成績排序模塊sortscore函數:功能簡介:用選擇法按平均成績由高到低排序;函數參數:結構體指針head,指向存儲學生信息的結構體數組的首地址。 整形變量n,表示學生人數。圖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是指向學生人數的外循環(huán),k、j是指向學生人數的內循環(huán)。k=i時,如果j指向的數比k指向的那個數大,那么k=j.而k!=i時,i指向的外循環(huán)的數與k指向的內循環(huán)的數相等。實現排序。4.5成績比較模塊readscore函數:功能簡介:結合學生的各科成績,計算每科的平均成績、最高分和最低分。 函數參數:結構體指針head,指向存儲學生信息的結構體數組的首地址。 整形變量n,表示學生人數; 整形變量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; 定義結構體指針p,p是指向考試科目的外循環(huán),定義i,i是指向學生人數的內循環(huán)。利用這兩個循環(huán),對各科成績進行統計與比較,計算出各科成績的總分,繼而計算出各科成績的平均分,以及各科成績的最高分和最低分。五、遇到的問題和解決方法1、for(i=0;in;i+)經常寫成for(i=0,in,i+),導致運行錯誤。解決方法:編程時候需要仔細和耐心。并記住易錯的地方,輸入時不應該太快 然后仔細檢查。2. 對一些課本中的知識不熟悉,導致剛開始編程的時候很難下手。 解決方法:重新掌握不熟悉的知識并收集相關資料,通過課程設計,我們要熟練的掌握c語言的算法、語言、函數的調用、循環(huán)的使用、數組的運用等。 3、由于馬虎經常漏掉、;等等。 解決方法:時刻提醒自己認真仔細一點,病記住易錯、易漏的地方,而且要仔細認真檢查。 4、有些程序太過復雜,違反了kiss規(guī)則。 解決方法:要深刻理解程序的意義,化繁為簡,化難為易5、計算機應用不熟練,截圖是我遇到的最大的問題。 解決方法:提高計算機的操作技術,使快而有效的完成任務。 六、課程設計總結一周的課程設計很快結束了,一開始拿起題目時什么都不懂,真不知道從何下手到后來覺得它很有趣,很想去做并希望能把它做得更好。剛開始錯誤實在太多,改錯誤真的很頭疼,不過當經過一次又一次的調試后,終于弄好了,那時卻是特別的高興。總的來說就是這次的課程讓我學了不少東西,也讓我對編程更有興趣,雖然學的不是很好,不過以后會努力的。課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現,提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程.隨著科學技術發(fā)展的日新日異,當今計算機應用在生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握計算機開發(fā)技術是十分重要的。總的來說,本次課程設計,實在是受益匪淺。雖然課程設計只有短短的幾天,但是我發(fā)現我學到的知識比整整一個學期學到的都多。理論和實踐的相結合是學習最有效的方法。在設計的過程中發(fā)現了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,通過這次課程設計之后,一定把以前所學過的知識重新溫故。回顧起此次課程設計,至今我仍感慨頗多,的確,從從拿到題目到完成整個編程,從理論到實踐,在整整一個星期的日子里,可以學到很多很多的的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。本次c 語言的課程設計讓我對c 語言的學習又有了更深入的了解,也讓我更深刻地領悟到了“實踐出真理”這個道理,在上機實踐過程中學到的知識遠遠超過了在課堂上十幾周學到的,學校組織的這次實習讓我們這些實踐知識匱乏的大學生增添了許多社會經驗,為我們將來走上工作崗位其了不小的鋪墊作用。本次課程設計中遇到了很多以前沒有遇到過的問題,也曾想要放棄,但看到那些同學都在那認真的寫程序,給了我繼續(xù)的信心。在同學的幫助下,我順利的結束了本次課程設計,讓我知道原來憑借自己努力取得的成功會讓自己這么欣慰,也讓我知道了友誼和團結的重要性。七、參考文獻1.visual c+課程設計案例精編 作者:夏崇鐠、任海軍、余健2.c語言程序設計 作者譚浩強3.實用c語言程序設計教程 李金祥等編 中國電力出版社 20104.網址1: /html/95/n-136395.html5.網址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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手機器買賣服務合同范本
- 2025年惠州貨運上崗證模擬考試0題
- 業(yè)務外合同范本
- 2025年景德鎮(zhèn)貨運資格證考試答案
- 供應商代發(fā)合同范本
- 臨時用工解除協議合同范本
- 初設評審合同范本
- 書供貨采購合同范本
- 佛山團購合同范本
- 買車合作合同范本
- 《傳媒法律法規(guī)》課件
- 數據中心供配電系統概述演示
- TSG11-2020鍋爐安全技術規(guī)程(現行)
- 人力資源行業(yè)人力資源管理信息系統實施方案
- 義務教育(音樂)課程標準(2022年版)解讀
- 第三章企業(yè)的生產和成本
- 統編版 高中語文 必修下冊 《祝?!贰读纸填^風雪山神廟》
- 2024年職教高考《機械制圖》考試題庫
- 2024改性瀝青路面施工技術規(guī)范
- 九型人格與親子教育課件
- 2025屆高校畢業(yè)生公開招聘工作人員報名登記表
評論
0/150
提交評論