學生成績管理系統(tǒng)實驗報告.doc
《學生成績管理系統(tǒng)實驗報告.doc》由會員分享,可在線閱讀,更多相關《學生成績管理系統(tǒng)實驗報告.doc(17頁珍藏版)》請在裝配圖網(wǎng)上搜索。
C語言集中上機實習報告院 系: 光電工程學院班 級: 02111507姓 名: 指導教師: 謝競博題目: 學生成績管理系統(tǒng) 2016年 12月8日完成實驗報告的正文有七部分,分別是:題目名稱:設計思路:包括總體設計和每個模塊的算法最初程序代碼:調試過程(寫明調試過程中出現(xiàn)的所有語法錯誤和邏輯錯誤,這是評定成績的主要依據(jù))最終程序代碼:測試結果:(截圖)心得體會:下面以一個簡單的題目為例:一、題目:學生成績管理系統(tǒng)二、思路:先定義學生人數(shù)和學號和學生姓名和各科成績變量,再調用函數(shù),最后再輸出,系統(tǒng)基本完善。三、最初程序代碼:#include #include #include #define NUMOFSTU 10 /* 定義學生人數(shù) */#define NUMOFCOURSE2 /* 定義考試科目 */struct studentint number; /* 每個學生的學號 */charname10; /* 每個學生的姓名 */int scoreNUMOFCOURSE; /* 每個學生M門功課的成績 */floatsum; /* 每個學生的總成績 */floataverage; /* 每個學生的平均成績 */;typedef struct student STU;void PrintScore(STU pt, int n);void InputStudent(STU pt,int n);void Total(STU pt,int n);void Sort(STU pt,int n);int SearchByNumber(STU pt, int n,int number_to_search); int SearchByName(STU pt, int n,char name_to_search); char Menu(void);四、調試過程:出現(xiàn)的提示如下:1.執(zhí)行 cl.exe 時出錯.執(zhí)行結果:經(jīng)過對整個程序的排錯,發(fā)現(xiàn)在過程中,缺少一個結束語。將輸出那行改正為:在后面添加 結果正確。2. H:C語言學生成績管理系統(tǒng).cpp(135) : error C2143: syntax error : missing ; before 執(zhí)行 cl.exe 時出錯.執(zhí)行結果:經(jīng)過排查,發(fā)現(xiàn)在if(ptj.sum ptk.sum)k=j; (k!=i) temp = ptk;ptk = pti;自定義變量時,缺少if條件語句,結果導致整個自定義變量發(fā)生改變在k=j; (k!=i)前面添加if條件語句結果正確3.調試過程中,在使用按姓名查詢時,出現(xiàn)經(jīng)排查,發(fā)現(xiàn)在int SearchByNumber(STU pt, int n,int number_to_search) int i; for (i=0; in; i+)if (pti.number = number_to_search)return i;return i; 返回按姓名查詢時,返回值確定錯誤,誤將返回-1寫成i導致返回值全部為查詢方式將i改為-1之后,調試正常五、最終程序為:#include #include #include #define NUMOFSTU 10 /* 定義學生人數(shù) */#define NUMOFCOURSE2 /* 定義考試科目 */struct studentint number; /* 每個學生的學號 */charname10; /* 每個學生的姓名 */int scoreNUMOFCOURSE; /* 每個學生M門功課的成績 */floatsum; /* 每個學生的總成績 */floataverage; /* 每個學生的平均成績 */;typedef struct student STU;void PrintScore(STU pt, int n);void InputStudent(STU pt,int n);void Total(STU pt,int n);void Sort(STU pt,int n);int SearchByNumber(STU pt, int n,int number_to_search); int SearchByName(STU pt, int n,char name_to_search); char Menu(void); /*函數(shù)功能:打印學生的信息,此子程序即可以打印全部學生成績的信息, 也可以打印個別幾個學生的信息函數(shù)參數(shù):結構體數(shù)組的指針pt,表示要打印的學生的起始地址 整型參數(shù)n,表示要打印n個學生成績函數(shù)返回值:無*/void PrintScore(STU pt, int n) int i,j;char string100=0,tempNUMOFCOURSE;strcat(string, Number ); /* 建立表頭 */strcat(string, Name );for (i=1; i=NUMOFCOURSE; i+)strcat(string, Score);itoa(i,temp, 10);strcat(string, temp);strcat(string, );strcat(string,sum);strcat(string, average);printf(%s,string); /* 打印表頭 */for (i=0; in; i+) /* 打印n個學生的信息 */ printf(nNo.%3d%8s,pti.number, pti.name); for(j=0;jNUMOFCOURSE;j+)printf(%7d,pti.scorej); printf(%8.2f%8.2fn,pti.sum,pti.average); /* 函數(shù)功能:從鍵盤獲得學生的信息子程序 函數(shù)參數(shù):結構體數(shù)組的指針pt,表示要輸入的學生信息頭 整型變量n,表示要輸入的元素的個數(shù) 函數(shù)返回值:無 */void InputStudent(STU pt,int n) int i,j; for(i=0; in; i+)printf(n 輸入學號:);scanf(%d,&pti.number);printf(n 輸入名字:);scanf(%s,pti.name); for(j=0; jNUMOFCOURSE; j+)if (j)printf(n 輸入高數(shù)分數(shù)score2:);elseprintf(n 輸入英語分數(shù)score1:);scanf(%d,&pti.scorej); /* 函數(shù)功能:計算每個學生的M門功課的總成績和平均成績子模塊函數(shù)參數(shù):結構體數(shù)組的指針pt,表示要輸入的學生信息頭 整型變量n,表示要處理的元素的個數(shù)函數(shù)返回值:無*/void Total(STU pt,int n) int i,j;for (i=0; in; i+) pti.sum = 0; for(j=0;jNUMOFCOURSE;j+) pti.sum = pti.sum + pti.scorej; pti.average = pti.sum/NUMOFCOURSE;/* 函數(shù)功能:用選擇法按總成績由高到低排序函數(shù)參數(shù):結構體數(shù)組的指針pt,表示要輸入的學生信息頭 整型變量n,表示要處理的元素的個數(shù) 函數(shù)返回值:無*/void Sort(STU pt,int n) int i,j,k;STU temp;for(i=0; in-1; i+)k = i;for(j=i; j ptk.sum)k=j;if(k!=i) temp = ptk;ptk = pti;pti = temp; /* 函數(shù)功能:用順序查找法按學號查找函數(shù)參數(shù):結構體數(shù)組首地址pt, 整型變量n,表示數(shù)組長度, 整型變量 number_to_search,表示要查找的學號函數(shù)返回值:如果找到學號,則返回對應下標,否則返回-1*/int SearchByNumber(STU pt, int n,int number_to_search) int i; for (i=0; in; i+)if (pti.number = number_to_search)return i;return -1;/* 函數(shù)功能:用順序查找法按學號查找函數(shù)參數(shù):結構體數(shù)組首地址pt, 整型變量n,表示數(shù)組長度, 字符數(shù)組首地址, name_to_search,用來指向要查找的姓名函數(shù)返回值:如果找到姓名,則返回對應下標,否則返回-1*/int SearchByName(STU pt, int n,char name_to_search) int i; for (i=0; in; i+)if (strcmp(pti.name , name_to_search)=0)return i;return -1;/* 函數(shù)功能:查找并顯示查找結果子模塊,可按姓名和學號分別查找,找到,顯示該元素的信息,如果沒查到,也有相應的提示函數(shù)參數(shù):結構體數(shù)組的指針pt,表示要輸入的學生信息頭 整型變量n,表示要處理的元素的個數(shù)函數(shù)返回值:無 */void Find(STU stu,int n)int number,k,choose;char name25;doprintf(請選擇:1-按學號查詢, 2-按姓名查詢:);scanf(%d,&choose);while(!(choose=1 |choose =2);if(choose = 1)printf(請輸入學號:);scanf(%d,&number);k = SearchByNumber(stu,n,number);elseprintf(請輸入姓名:);scanf(%s,name);k = SearchByName(stu,n, name);if(k=-1)printf(n沒有找到對應學生,請重新輸入 !n);elsePrintScore(stu+k, 1);/*函數(shù)功能:菜單子模塊,顯示菜單功能并獲得鍵盤選擇函數(shù)參數(shù):無 函數(shù)返回值:輸入的鍵盤ASCII碼 */char Menu(void)printf(n 1.輸入學生信息n);printf( 2.列出成績總表n);printf( 3.按平均分排序n);printf( 4.分類查找n);printf( 5.退出n);return getchar();int main() /* 主程序 */printf(n*歡迎使用學生成績管理系統(tǒng)*n);char ch;STU stuNUMOFSTU;int n;while(1)ch = Menu(); /* 顯示菜單 */ switch(ch) case1:printf(請輸入學生人數(shù):); scanf(%d,&n);InputStudent(stu,n); /* 調用輸入模塊 */ Total( stu,n ); break; case2:PrintScore(stu, n); /* 調用列表模塊 */ break; case3:Sort(stu,n); /* 調用排序模塊 */ printf(n 分類結果n); PrintScore(stu, n); /* 顯示排序結果 */ break; case4:Find(stu,n); /*調用查找模塊*/ break;case5:exit(0); /* 退回到DOS */ break; default:break; printf(n按任意鍵返回主菜單); getchar(); return 0;六、測試結果:1.輸入自定義變量之后,程序正常2.使用列出成績總表,程序正常3.按平均分排序,程序使用正常4.分類查找,按學號按姓名查詢均正常心得體會:C語言在實際生活中用處很大,可以利用基本的知識編寫簡單程序,提高我們的做事效率注意函數(shù)應用,在適當?shù)牡胤接貌煌暮瘮?shù),得到的結果也會不同注意輸出函數(shù)的用法,注意數(shù)據(jù)類型的區(qū)別。仔細認真,程序的完整性一定要注意- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 學生 成績管理系統(tǒng) 實驗 報告
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
相關資源
更多
正為您匹配相似的精品文檔
相關搜索
鏈接地址:http://appdesigncorp.com/p-6523692.html