c語言程序設計報告_第1頁
c語言程序設計報告_第2頁
c語言程序設計報告_第3頁
c語言程序設計報告_第4頁
c語言程序設計報告_第5頁
免費預覽已結束,剩余8頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、C語言課程設計報告題目:成績管理系統專業年級:自動化一班學號:姓名: 指導教師:葉念渝2015年12月17日一 . 設計內容( 1)輸入功能:由鍵盤輸入20 個學生(姓名)的某門課程的學習成績1099分(也可超過)。( 2)運算功能:將分數由低到高排序(用直接排序法和冒泡法),并顯示學生姓名和對應的分數。( 3)檢索功能:用線性搜索法檢索某個學生的成績(輸入姓名,顯示成績)。( 4)查詢功能:對分搜索法檢索某個學生的成績(輸入姓名,顯示成績)。二 . 設計要求(1) 可以輸入若干名學生信息(包括姓名/ 成績等);(2) 在源代碼中將若干名同學的信息輸出;(3) 在源代碼中能夠將若干名同學的成績

2、排序(升序/降序均可);(4) 可以根據不同的查詢條件(線性/對分搜索)來查詢到相關學生的信息;三 . 設計思路首先進入軟件界面, 以菜單為提示的成績管理系統. 分別建立輸入學生信息函數輸入學生信息, 建立排序函數實現排序功能, 建立查找函數實現查找功能. 通過建立數組在函數運行中進行同步調換實現各信息間分聯系, 達到信息相對應的目的, 在主函數中分別調用各功能函數完成程序目的.四 . 程序設計流程圖1.學生信息輸入函數重新輸入i=0;i<N;i+請重新輸入Scorei>1&&Scorei<100輸入學生姓名+呈序入口輸入學生成績no2.直接排序法流程圖_ y

3、es輸入完畢退出子程序子程序入口N輸入完畢退出子程序i=0;sCoremax<scorejY3.冒泡排序法流程圖如果a=s如果a=005.對分搜索法流程圖N是否繼續輸入完畢運出子程序輸出“查無此人”Y俞出姓名和成績ii=0;i<N-j;i+4.線性搜索法流外a!=l=(a+b)/2子程序入口 調用排序函數對a<=b Y五.設計及調劑制t程市*腳簿圜凱小(D .輸入人的姓名時%什么要用工魅典組?因為思了多個人的名字所以我 們要建立一個名字的二維數組(2) .在輸入函數中我開始用的是if語句定義輸入范圍結果只提示一次錯誤。后來我加了一個do-while循環,就可以一直執行下去了。

4、(3) .在冒泡排序法中沒有理解strcpy函數的用法把字符串復制到字符串中去 了,真正用法是將字符串復制的字符數組中去。(4) .將直接排序法和冒泡排序法弄混了,平時直接習慣有冒泡法,后來只有 從書上一步一步的分析其數值的變化。終于本質上的理解了兩種排序的作用是如 何實現的。冒泡法是每比較一輪產生一個最小(大)的數放在第一個位置,而直 接排序法是找出數值最小(大)的小標與第一個調換。(5) .在設計主函數時我用的是switch函數調用分函數,在進行搜索時我沒加循 環結果只能查找一個人的不能進行查多個人和判斷是否能查到此人。后來我在搜索法中加了個while循環問題就解決了。(6) .在調試過程

5、中我遇到的主要問題是輸出姓名時第一個人的名字輸出不出來,后來我一句句的看源程序,也不知道為什么。我問班上同學才知道我用的是 gets(namei);輸入字符串占用了一個字符所以輸出第一姓名時名字數輸不出來, 我把它改成 scanf("%s",&namei);就可以輸出了。從這件事中我明白了要學會多思考即使你是參考書上的也要每一步弄懂,不然一個小的細節就會導致程序出問題,我還是對這兩種輸入字符串函數沒有本質的了解。( 7) .程序有許多小問題都是在自己一遍遍調試下更正了,比如程序差東西、有問題等,做好一個程序編程還是要自己慢慢探索,理解每一個函數語句。六心得體會與感受

6、C 語言課程設計總有兩周時間,在第一次上課老師交給我們任務不知從何下手到最后將整套學生管理系統的程序準確無誤的編出來,對我來說無疑又是一大進步, 在這段時間里我遇到了不少的問題。產生了許多的疑問,但是隨著自己的追隨問題的根源,不斷的溫習書本上的知識,反復進行上機的操作,思路一步一步的清晰起來了,所遇到的一些問題也逐漸得到就解決,本不是那么情愿做的程序到因為解決了一些問題所產生的成就感反到激起了我興趣。于是借著心中的那一股勁,反復的程序進行摸索,把以前很多沒學好的地方都撿了起來,還學會了很多新的知識。這一切都源于老師對我們的嚴格要求,還有自己的刻苦專研才有了這樣的成果。如果老師要求沒有那么嚴格,

7、或者是自己不去努力是做不出來學生管理系統的。在設計的過程中,在我印象中最深刻的挺多的。冒泡和直接排序法的比較,在二維數組的比較時也遇到了一些問題,主要是對二維數組的概念不清楚,性質不了解, 所以在運用時就有一些錯誤。當然在設計過程中因為輸入法的錯誤、函數層次不清晰變量名重復定義,也花了很多時間去解決。所以在這次編程過程中,不僅僅只是完成作業而已,更多的是要用一種肯專研的學習態度,養成一個良好學習習慣。作為一個合格的編程人員不僅僅要有專業知識,還要有一個良好的編程習慣和一顆仔細的心,更需要一種負責認真編程態度。七源程序#include <>#include <>#defi

8、ne N 5入函數績排序輸出(直接排序法)void sort1(char nameN8,int score)int i,j,max,temp1;char temp2100;for(i=0;i<N-1;i+)max=i;for (j=i+1;j<N;j+)if(scoremax<scorej) max=j;temp1=scorei;scorei=scoremax;scoremax=temp1;strcpy(temp2,namei);績排序輸出(冒泡法)void sort2(char nameN8,int score)int i,j,t;char h100;for(j=0;j&l

9、t;N;j+)for(i=0;i<N-j;i+)if(scorei>scorei+1)t=scorei;scorei=scorei+1;scorei+1=t;strcpy(h,namei);strcpy(namei,namei+1);strcpy(namei+1,h);printf("The sorted result:n");for(i=0;i<N;i+)printf(" 姓名: %10s 成績: %3dn",namei,scorei);性搜索法檢索學生的成績void search1(char nameN8,int score)分搜索

10、法檢索學生的成績void search2(int score,char nameN8)int a,b,c,i;char d;while(1)a=0;b=N-1;printf(" 請輸入學生成績:");scanf("%d",&c);getchar();while(a<=b)i=(a+b)/2;if(scorei=c)break;if(scorei<c)a=i+1;if(scorei>c)b=i-1;if(scorei!=c)printf(" 無此成績n");elseprintf(" 姓名 :%10s

11、成績: %3dn",namei,scorei);printf(" 繼續查詢嗎Y/N:");d=getchar();if(d='y')|(d='Y')continue;elsebreak;void main()int scoreN;char nameN8;int a,b;printf("*n");printf("*n");printf("*n");printf("*n");printf("*n");printf("* 5.*n");b=1;while(b=1)學生成績管理系統1 .輸入學生信息2 .直接排序法3 .冒泡排序法4 .線性搜索法對分搜索法菜單界面2 .信息輸入界面3 .直接排序法排序界面4 .冒泡排序法排序界面法序一二一卻he4名名啻5.線性搜索法(輸入姓名查找成績)k績 7成 名 法悔就

溫馨提示

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

評論

0/150

提交評論