![學(xué)生管理系統(tǒng)C語言-課設(shè)報(bào)告_第1頁](http://file4.renrendoc.com/view/6543cf2ec6a2fb7aab7f030667bce389/6543cf2ec6a2fb7aab7f030667bce3891.gif)
![學(xué)生管理系統(tǒng)C語言-課設(shè)報(bào)告_第2頁](http://file4.renrendoc.com/view/6543cf2ec6a2fb7aab7f030667bce389/6543cf2ec6a2fb7aab7f030667bce3892.gif)
![學(xué)生管理系統(tǒng)C語言-課設(shè)報(bào)告_第3頁](http://file4.renrendoc.com/view/6543cf2ec6a2fb7aab7f030667bce389/6543cf2ec6a2fb7aab7f030667bce3893.gif)
![學(xué)生管理系統(tǒng)C語言-課設(shè)報(bào)告_第4頁](http://file4.renrendoc.com/view/6543cf2ec6a2fb7aab7f030667bce389/6543cf2ec6a2fb7aab7f030667bce3894.gif)
![學(xué)生管理系統(tǒng)C語言-課設(shè)報(bào)告_第5頁](http://file4.renrendoc.com/view/6543cf2ec6a2fb7aab7f030667bce389/6543cf2ec6a2fb7aab7f030667bce3895.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Page1PAGEPage24PAGE24綜合程序課程設(shè)計(jì)說明書課程設(shè)計(jì)名稱:綜合程序課程設(shè)計(jì)課程設(shè)計(jì)題目:學(xué)生成績管理系統(tǒng)學(xué)院名稱:信息工程學(xué)院專業(yè):電子信息科學(xué)與技術(shù)班級:130431學(xué)號(hào):13043137姓名:歐宏飛評分:教師:陶秋香2016年3月16日綜合程序課程設(shè)計(jì)課程設(shè)計(jì)任務(wù)書2015-2016學(xué)年第二學(xué)期第1周-2周題目學(xué)生成績管理系統(tǒng)內(nèi)容及要求請用C(C++)編寫一系統(tǒng),實(shí)現(xiàn)學(xué)生信息管理,軟件的入口界面應(yīng)包括如下幾個(gè)方面:功能要求:(1)信息維護(hù):要求:學(xué)生信息數(shù)據(jù)要以文件的形式保存,能實(shí)現(xiàn)學(xué)生信息數(shù)據(jù)的維護(hù)。此模塊包括子模塊有:增加學(xué)生信息、刪除學(xué)生信息、修改學(xué)生信息(2)信息查詢:要求:查詢時(shí)可實(shí)現(xiàn)按姓名查詢、按學(xué)號(hào)查詢(3)成績統(tǒng)計(jì):要求:A輸入任意的一個(gè)課程名和一個(gè)分?jǐn)?shù)段,統(tǒng)計(jì)出在此分?jǐn)?shù)段的學(xué)生情況。(4)排序:能對用戶指定的任意課程名,按成績升序或降序排列學(xué)生數(shù)據(jù)并顯示排序結(jié)果進(jìn)度安排第一周分模塊安排任務(wù)完成各個(gè)模塊的設(shè)計(jì)。第二周將各個(gè)模塊統(tǒng)一整合并調(diào)試,直到實(shí)現(xiàn)功能。學(xué)生姓名:歐宏飛指導(dǎo)時(shí)間3月1日至3月16日指導(dǎo)地點(diǎn):綜合樓南506室任務(wù)下達(dá)2016年3月1日任務(wù)完成2016年3月16日考核方式1.評閱□2.答辯□3.實(shí)際操作□4.其它□指導(dǎo)教師陶秋香系(部)主任注:1、此表一組一表二份,課程設(shè)計(jì)小組組長一份;任課教師授課時(shí)自帶一份備查。2、課程設(shè)計(jì)結(jié)束后與“課程設(shè)計(jì)小結(jié)”、“學(xué)生成績單”一并交院教務(wù)存檔。摘要當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代。在各行各業(yè)中離不開信息處理,這正是計(jì)算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計(jì)算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理。使用計(jì)算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。尤其對于復(fù)雜的信息管理,計(jì)算機(jī)能夠充分發(fā)揮它的優(yōu)越性。計(jì)算機(jī)進(jìn)行信息管理與信息管理系統(tǒng)的開發(fā)密切相關(guān),系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。目前隨著個(gè)大高校的擴(kuò)招,在校學(xué)生數(shù)量龐大。擁有一款好的學(xué)習(xí)成績管理系統(tǒng)軟件,對于加強(qiáng)對在校生的成績管理起到積極作用。并且,可以為在校生隨時(shí)查閱自己的成績信息、教師錄入成績、管理員進(jìn)行信息維護(hù)等提供方便,為學(xué)校節(jié)省大量人力資源本系統(tǒng)就是為了管理好學(xué)生成績信息而設(shè)計(jì)的。我們這次設(shè)計(jì)通過分析用戶需求針對性的設(shè)計(jì)了一個(gè)簡易的學(xué)生管理系統(tǒng)來簡單的實(shí)現(xiàn)記錄、添加刪除、排序等功能。關(guān)鍵字:管理、軟件、成績信息TOC\o"1-3"\h\u摘要 3學(xué)生成績管理系統(tǒng) 5一、設(shè)計(jì)要求 5二、設(shè)計(jì)目的 5三、需求分析 61、問題的提出 62、系統(tǒng)的業(yè)務(wù)功能分析 63、數(shù)據(jù)字典 6四、概要設(shè)計(jì) 8五、詳細(xì)設(shè)計(jì) 81)主要數(shù)據(jù)結(jié)構(gòu): 82)模塊功能: 9六、源程序 11七、心得體會(huì) 23八、參考文獻(xiàn): 24學(xué)生成績管理系統(tǒng)一、設(shè)計(jì)要求現(xiàn)有學(xué)生成績信息,內(nèi)容如下姓名學(xué)號(hào)語文數(shù)學(xué)英語政治張明明0167788290李成友0278918880張輝燦0368825687王露0456457767陳東明0567384770….......…請用C(C++)編寫一系統(tǒng),實(shí)現(xiàn)學(xué)生信息管理,軟件的入口界面應(yīng)包括如下幾個(gè)方面:(一)功能要求:(1)信息維護(hù):要求:學(xué)生信息數(shù)據(jù)要以文件的形式保存,能實(shí)現(xiàn)學(xué)生信息數(shù)據(jù)的維護(hù)。此模塊包括子模塊有:增加學(xué)生信息、刪除學(xué)生信息、修改學(xué)生信息(2)信息查詢:要求:查詢時(shí)可實(shí)現(xiàn)按姓名查詢、按學(xué)號(hào)查詢(3)成績統(tǒng)計(jì):要求:A輸入任意的一個(gè)課程名(如數(shù)學(xué))和一個(gè)分?jǐn)?shù)段(如60--70),統(tǒng)計(jì)出在此分?jǐn)?shù)段的學(xué)生情況。(4)排序:能對用戶指定的任意課程名,按成績升序或降序排列學(xué)生數(shù)據(jù)并顯示排序結(jié)果(使用表格的形式顯示排序后的輸出結(jié)果)(使用多種方法排序者,加分)二、設(shè)計(jì)目的1)培養(yǎng)學(xué)生綜合程序設(shè)計(jì)的能力,訓(xùn)練學(xué)生靈活應(yīng)用所學(xué)數(shù)據(jù)結(jié)構(gòu)知識(shí),獨(dú)立完成問題分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)和編程實(shí)現(xiàn)等軟件開發(fā)全過程的綜合實(shí)踐能力。2)鞏固、深化學(xué)生的理論知識(shí),提高編程水平,培養(yǎng)嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和良好的學(xué)習(xí)作風(fēng)。為今后學(xué)習(xí)其他計(jì)算機(jī)課程打下基礎(chǔ)。3)將書本上的理論知識(shí)和工作、生產(chǎn)實(shí)際有機(jī)地結(jié)合起來,從而鍛煉學(xué)生分析問題、解決實(shí)際問題的能力,提高編程序能力和創(chuàng)新意識(shí)。三、需求分析1、問題的提出為了提高高校學(xué)生成績信息的管理效率,方便學(xué)生和教師對學(xué)生成績信息進(jìn)行查詢、方便學(xué)校里面管理員去管理和查詢學(xué)生信息,建立一個(gè)學(xué)生成績管理系統(tǒng),使學(xué)生信息管理工作規(guī)范化,系統(tǒng)化,程序化,避免學(xué)生成績管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢和修改學(xué)生信息是必須而且十分迫切的工作。本次課程設(shè)計(jì)題目為《學(xué)生成績管理系統(tǒng)》,涉及老師對學(xué)生成績的查詢、學(xué)生對學(xué)生成績的查詢、教務(wù)員對學(xué)生成績的增刪改查統(tǒng)計(jì)等內(nèi)容。本功能實(shí)現(xiàn)對學(xué)生信息、教師信息情況信息的管理和統(tǒng)計(jì)、課程信息和成績信息查看及維護(hù)。2、系統(tǒng)的業(yè)務(wù)功能分析學(xué)生成績管理系統(tǒng)應(yīng)當(dāng)將學(xué)生與教務(wù)員區(qū)分開來,因?yàn)樵?、刪、改、統(tǒng)計(jì)的權(quán)限應(yīng)當(dāng)只有教務(wù)員才擁有,學(xué)生只能查詢與自己相關(guān)的記錄,老師查詢自己所授課程的記錄,而教務(wù)員則錄入數(shù)據(jù),進(jìn)行增刪改與統(tǒng)計(jì)。另外,在日常學(xué)習(xí)生活中,為了方便老師和同學(xué)了解情況,需要提供平均分、最高(低)分、排名等供老師和學(xué)生查詢。具體分析:①用戶要能夠查詢自己所學(xué)課程的成績,查看自己不同課程的成績、GPA以及排名,查看個(gè)人信息等。②用戶要實(shí)現(xiàn)對各分?jǐn)?shù)段成績單人數(shù)成績的查詢(排序功能),個(gè)人資料的修改等。3、數(shù)據(jù)字典(1).數(shù)據(jù)流①班級信息,包括班級編號(hào),學(xué)院編號(hào)等信息。②學(xué)生信息,包括學(xué)生編號(hào),學(xué)生姓名,性別,班級,聯(lián)系方式等信息。③課程信息,包括課程號(hào),課程名稱,學(xué)分。(2).數(shù)據(jù)存儲(chǔ)成績表信息,包括學(xué)生編號(hào),課程編號(hào),課程績點(diǎn),課程成績等信息。四、概要設(shè)計(jì)學(xué)生成績管理系統(tǒng)學(xué)生成績管理系統(tǒng)讀取文件1讀取文件2合并兩文件放在文件3把補(bǔ)考的放在文件4退出查找文件中的人信息五、詳細(xì)設(shè)計(jì)1)主要數(shù)據(jù)結(jié)構(gòu):structStudent{charID[20];charName[20];floatMark1;floatMark2;floatMark3; floatMark4;};2)模塊功能:輸入模塊、輸出模板、排序模板、刪除模板、修改模塊、查詢模塊1、生成文件3:實(shí)現(xiàn)對兩個(gè)文件數(shù)據(jù)進(jìn)行合并,生成新文件3.txt;2、查看文件3:顯示文件3里的所有信息;3、生成文件補(bǔ)考文件4:抽取出三科成績中有補(bǔ)考的學(xué)生并保存在一個(gè)新文件4.txt;4、查看文件4:顯示文件4里的所有信息;5、排序后的文件3:對合并后的文件3.txt中的數(shù)據(jù)按總分降序排序(冒泡、插入);6、查找學(xué)生信息:按姓名查找學(xué)生的信息并輸出結(jié)果(順序、折半);3)調(diào)用關(guān)系主函數(shù)可調(diào)用其它函數(shù)圖一、輸出模塊圖二、排序模塊圖三、刪除模塊圖四、修改模塊六、源程序#include"stdio.h"#include"string"/*定義學(xué)生結(jié)構(gòu)體*/structStudent{charID[20];charName[20];floatMark1;floatMark2;floatMark3; floatMark4;};/*聲明學(xué)生數(shù)組及學(xué)生數(shù)量*/structStudentstudents[1000];intnum=0;/*通過學(xué)號(hào)返回?cái)?shù)組下標(biāo)*/intStudent_SearchByIndex(charid[]){inti;for(i=0;i<num;i++){if(strcmp(students[i].ID,id)==0){returni;}}return-1;}/*通過姓名返回?cái)?shù)組下標(biāo)*/intStudent_SearchByName(charname[]){inti;for(i=0;i<num;i++){if(strcmp(students[i].Name,name)==0){returni;}}return-1;}/*顯示單條學(xué)生記錄*/voidStudent_DisplaySingle(intindex){printf("%10s%10s%10s%10s%10s%10s%10s\n","姓名","學(xué)號(hào)","語文成績","數(shù)學(xué)成績","英語成績","政治成績");printf("\n");("%10s%10s%10.2f%10.2f%10.2f%10.2f\n",students[index].Name,students[index].ID,students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Mark4);}/*插入學(xué)生信息*/voidStudent_Insert(){while(1){ printf("請輸入姓名:");scanf("%s",&students[num].Name);getchar(); printf("請輸入學(xué)號(hào):");scanf("%s",&students[num].ID);getchar();printf("請輸入語文成績:");scanf("%f",&students[num].Mark1);getchar();printf("請輸入數(shù)學(xué)成績:");scanf("%f",&students[num].Mark2);getchar();printf("請輸入英語成績:");scanf("%f",&students[num].Mark3);getchar(); printf("請輸入政治成績:");scanf("%f",&students[num].Mark4);getchar();num++;printf("是否繼續(xù)?(y/n)");if(getchar()=='n'){break;}}}/*修改學(xué)生信息*/voidStudent_Modify(){//floatmark1,mark2,mark3;while(1){charid[20];intindex;printf("請輸入要修改的學(xué)生的學(xué)號(hào):");scanf("%s",&id);getchar();index=Student_SearchByIndex(id);if(index==-1){printf("學(xué)生不存在!\n");}else{printf("你要修改的學(xué)生信息為:\n");Student_DisplaySingle(index);printf("--請輸入新值--\n");printf("請輸入姓名:");scanf("%s",&students[index].Name);getchar();printf("請輸入學(xué)號(hào):");scanf("%s",&students[index].ID);getchar();printf("請輸入語文成績:");scanf("%f",&students[index].Mark1);getchar();printf("請輸入數(shù)學(xué)成績:");scanf("%f",&students[index].Mark2);getchar();printf("請輸入英語成績:");scanf("%f",&students[index].Mark3);getchar(); printf("請輸入政治成績:");scanf("%f",&students[index].Mark4);getchar();}printf("是否繼續(xù)?(y/n)");if(getchar()=='n'){break;}}}/*刪除學(xué)生信息*/voidStudent_Delete(){inti;while(1){charid[20];intindex;printf("請輸入要?jiǎng)h除的學(xué)生的學(xué)號(hào):");scanf("%s",&id);getchar();index=Student_SearchByIndex(id);if(index==-1){printf("學(xué)生不存在!\n");}else{printf("你要?jiǎng)h除的學(xué)生信息為:\n");Student_DisplaySingle(index);printf("是否真的要?jiǎng)h除?(y/n)");if(getchar()=='y'){for(i=index;i<num-1;i++){students[i]=students[i+1];//把后邊的對象都向前移動(dòng)}num--;}getchar();}printf("是否繼續(xù)?(y/n)");if(getchar()=='n'){break;}}}/*按姓名查詢*/voidStudent_Select(){while(1){charname[20];intindex;printf("請輸入要查詢的學(xué)生的姓名:");scanf("%s",&name);getchar();index=Student_SearchByName(name);if(index==-1){printf("學(xué)生不存在!\n");}else{printf("你要查詢的學(xué)生信息為:\n");Student_DisplaySingle(index);}printf("是否繼續(xù)?(y/n)");if(getchar()=='n'){break;}}} //按語文成績排序voidStudent_SortMark1(){ inti,j;structStudenttmp;for(i=0;i<num;i++){for(j=1;j<num-i;j++){if(students[j-1].Mark1<students[j].Mark1){tmp=students[j-1];students[j-1]=students[j];students[j]=tmp;}}}}//按數(shù)學(xué)成績排序voidStudent_SortMark2(){ inti,j;structStudenttmp;for(i=0;i<num;i++){for(j=1;j<num-i;j++){if(students[j-1].Mark2<students[j].Mark2){tmp=students[j-1];students[j-1]=students[j];students[j]=tmp;}}}}//按英語成績排序voidStudent_SortMark3(){ inti,j;structStudenttmp;for(i=0;i<num;i++){for(j=1;j<num-i;j++){if(students[j-1].Mark3<students[j].Mark3){tmp=students[j-1];students[j-1]=students[j];students[j]=tmp;}}}}//按政治成績排序voidStudent_SortMark4(){ inti,j;structStudenttmp;for(i=0;i<num;i++){for(j=1;j<num-i;j++){if(students[j-1].Mark4<students[j].Mark4){tmp=students[j-1];students[j-1]=students[j];students[j]=tmp;}}}}/*顯示學(xué)生信息*/voidStudent_Display(){inti;printf("%10s%10s%10s%10s%10s%10s\n","姓名","學(xué)號(hào)","語文","數(shù)學(xué)","英語","政治");printf("\n");for(i=0;i<num;i++){printf("%10s%10s%10.2f%10.2f%10.2f%10.2f\n",students[i].Name,students[i].ID,students[i].Mark1,students[i].Mark2,students[i].Mark3,students[i].Mark4);}}/*將學(xué)生信息從文件讀出*/voidIO_ReadInfo(){FILE*fp;inti;if((fp=fopen("Database.txt","rb"))==NULL){printf("不能打開文件!\n");return;}if(fread(&num,sizeof(int),1,fp)!=1){num=-1;}else{for(i=0;i<num;i++){fread(&students[i],sizeof(structStudent),1,fp);}}fclose(fp);}/*將學(xué)生信息寫入文件*/voidIO_WriteInfo(){FILE*fp;inti;if((fp=fopen("Database.txt","wb"))==NULL){printf("不能打開文件!\n");return;}if(fwrite(&num,sizeof(int),1,fp)!=1){printf("寫入文件錯(cuò)誤!\n");}for(i=0;i<num;i++){if(fwrite(&students[i],sizeof(structStudent),1,fp)!=1){printf("寫入文件錯(cuò)誤!\n");}}fclose(fp);}/*主程序*/voidmain(){intchoice;IO_ReadInfo();while(1){/*主菜單*/printf("\n學(xué)生成績管理系統(tǒng)\n");printf("1.增加學(xué)生記錄\n");printf("2.修改學(xué)生記錄\n");printf("3.刪除學(xué)生記錄\n");printf("4.按姓名查詢學(xué)生記錄\n");printf("5.按成績排序\n");printf("6.退出\n");printf("請選擇(1-6):");scanf("%d",&choice);getchar();switch(choice){case1:Student_Insert();break;case2:Student_Modify();break;case3:Student_Delete();break;case4:Student_Select();break;case5: printf("1.按語文排序\n"); printf("2.按數(shù)學(xué)排序\n"); printf("3.按英語排序\n"); printf("4.按政治排序\n");scanf("%d",&choice);getchar();switch(choice) { case1:Student_SortMark1();Student_Display();break; case2: Student_SortMark2();Student_Display();break; case3:Student_SortMark3();Student_Display();break; case4:Student_SortMark4();Student_Display();break; } break;case6:exit(0);break;}IO_WriteInfo();}}六、測試結(jié)果合并:圖一排序:冒泡排序:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 部編版八年級道德與法治上冊聽課評課記錄《7.2服務(wù)社會(huì)》
- 2024-2025學(xué)年八年級物理全冊1.3站在巨人的肩膀上練習(xí)含解析新版滬科版
- 技術(shù)員年度工作規(guī)劃
- 公司行政部門個(gè)人工作計(jì)劃
- 年度幼兒教師個(gè)人工作計(jì)劃
- 物業(yè)客服部工作計(jì)劃范本
- 可調(diào)單價(jià)合同范本
- 知識(shí)產(chǎn)權(quán)授權(quán)協(xié)議書范本
- 商業(yè)店鋪?zhàn)赓U合同范本
- 紅河衛(wèi)生職業(yè)學(xué)院《物理化學(xué)(II)》2023-2024學(xué)年第二學(xué)期期末試卷
- 蘇北四市(徐州、宿遷、淮安、連云港)2025屆高三第一次調(diào)研考試(一模)生物試卷(含答案)
- 安全生產(chǎn)法律法規(guī)匯編(2025版)
- 監(jiān)察部部長崗位職責(zé)
- 山西省太原市杏花嶺區(qū)年三年級數(shù)學(xué)第一學(xué)期期末考試模擬試題含解析
- 《農(nóng)機(jī)化促進(jìn)法解讀》課件
- 最高法院示范文本發(fā)布版3.4民事起訴狀答辯狀示范文本
- 2023-2024學(xué)年度上期七年級英語期末試題
- 2024年燃?xì)廨啓C(jī)值班員技能鑒定理論知識(shí)考試題庫-下(多選、判斷題)
- 交通法規(guī)課件
- (優(yōu)化版)高中地理新課程標(biāo)準(zhǔn)【2024年修訂版】
- 《Python程序設(shè)計(jì)》課件-1:Python簡介與應(yīng)用領(lǐng)域
評論
0/150
提交評論