學(xué)生管理系統(tǒng)C語(yǔ)言-課設(shè)報(bào)告_第1頁(yè)
學(xué)生管理系統(tǒng)C語(yǔ)言-課設(shè)報(bào)告_第2頁(yè)
學(xué)生管理系統(tǒng)C語(yǔ)言-課設(shè)報(bào)告_第3頁(yè)
學(xué)生管理系統(tǒng)C語(yǔ)言-課設(shè)報(bào)告_第4頁(yè)
學(xué)生管理系統(tǒng)C語(yǔ)言-課設(shè)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Page1PAGEPage24PAGE24綜合程序課程設(shè)計(jì)說(shuō)明書課程設(shè)計(jì)名稱:綜合程序課程設(shè)計(jì)課程設(shè)計(jì)題目:學(xué)生成績(jī)管理系統(tǒng)學(xué)院名稱:信息工程學(xué)院專業(yè):電子信息科學(xué)與技術(shù)班級(jí):130431學(xué)號(hào):13043137姓名:歐宏飛評(píng)分:教師:陶秋香2016年3月16日綜合程序課程設(shè)計(jì)課程設(shè)計(jì)任務(wù)書2015-2016學(xué)年第二學(xué)期第1周-2周題目學(xué)生成績(jī)管理系統(tǒng)內(nèi)容及要求請(qǐng)用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)成績(jī)統(tǒng)計(jì):要求:A輸入任意的一個(gè)課程名和一個(gè)分?jǐn)?shù)段,統(tǒng)計(jì)出在此分?jǐn)?shù)段的學(xué)生情況。(4)排序:能對(duì)用戶指定的任意課程名,按成績(jī)升序或降序排列學(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.評(píng)閱□2.答辯□3.實(shí)際操作□4.其它□指導(dǎo)教師陶秋香系(部)主任注:1、此表一組一表二份,課程設(shè)計(jì)小組組長(zhǎng)一份;任課教師授課時(shí)自帶一份備查。2、課程設(shè)計(jì)結(jié)束后與“課程設(shè)計(jì)小結(jié)”、“學(xué)生成績(jī)單”一并交院教務(wù)存檔。摘要當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代。在各行各業(yè)中離不開(kāi)信息處理,這正是計(jì)算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計(jì)算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理。使用計(jì)算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。尤其對(duì)于復(fù)雜的信息管理,計(jì)算機(jī)能夠充分發(fā)揮它的優(yōu)越性。計(jì)算機(jī)進(jìn)行信息管理與信息管理系統(tǒng)的開(kāi)發(fā)密切相關(guān),系統(tǒng)的開(kāi)發(fā)是系統(tǒng)管理的前提。目前隨著個(gè)大高校的擴(kuò)招,在校學(xué)生數(shù)量龐大。擁有一款好的學(xué)習(xí)成績(jī)管理系統(tǒng)軟件,對(duì)于加強(qiáng)對(duì)在校生的成績(jī)管理起到積極作用。并且,可以為在校生隨時(shí)查閱自己的成績(jī)信息、教師錄入成績(jī)、管理員進(jìn)行信息維護(hù)等提供方便,為學(xué)校節(jié)省大量人力資源本系統(tǒng)就是為了管理好學(xué)生成績(jī)信息而設(shè)計(jì)的。我們這次設(shè)計(jì)通過(guò)分析用戶需求針對(duì)性的設(shè)計(jì)了一個(gè)簡(jiǎn)易的學(xué)生管理系統(tǒng)來(lái)簡(jiǎn)單的實(shí)現(xiàn)記錄、添加刪除、排序等功能。關(guān)鍵字:管理、軟件、成績(jī)信息TOC\o"1-3"\h\u摘要 3學(xué)生成績(jī)管理系統(tǒng) 5一、設(shè)計(jì)要求 5二、設(shè)計(jì)目的 5三、需求分析 61、問(wèn)題的提出 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é)生成績(jī)管理系統(tǒng)一、設(shè)計(jì)要求現(xiàn)有學(xué)生成績(jī)信息,內(nèi)容如下姓名學(xué)號(hào)語(yǔ)文數(shù)學(xué)英語(yǔ)政治張明明0167788290李成友0278918880張輝燦0368825687王露0456457767陳東明0567384770….......…請(qǐng)用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)成績(jī)統(tǒng)計(jì):要求:A輸入任意的一個(gè)課程名(如數(shù)學(xué))和一個(gè)分?jǐn)?shù)段(如60--70),統(tǒng)計(jì)出在此分?jǐn)?shù)段的學(xué)生情況。(4)排序:能對(duì)用戶指定的任意課程名,按成績(jī)升序或降序排列學(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ú)立完成問(wèn)題分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)和編程實(shí)現(xiàn)等軟件開(kāi)發(fā)全過(guò)程的綜合實(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é)合起來(lái),從而鍛煉學(xué)生分析問(wèn)題、解決實(shí)際問(wèn)題的能力,提高編程序能力和創(chuàng)新意識(shí)。三、需求分析1、問(wèn)題的提出為了提高高校學(xué)生成績(jī)信息的管理效率,方便學(xué)生和教師對(duì)學(xué)生成績(jī)信息進(jìn)行查詢、方便學(xué)校里面管理員去管理和查詢學(xué)生信息,建立一個(gè)學(xué)生成績(jī)管理系統(tǒng),使學(xué)生信息管理工作規(guī)范化,系統(tǒng)化,程序化,避免學(xué)生成績(jī)管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢和修改學(xué)生信息是必須而且十分迫切的工作。本次課程設(shè)計(jì)題目為《學(xué)生成績(jī)管理系統(tǒng)》,涉及老師對(duì)學(xué)生成績(jī)的查詢、學(xué)生對(duì)學(xué)生成績(jī)的查詢、教務(wù)員對(duì)學(xué)生成績(jī)的增刪改查統(tǒng)計(jì)等內(nèi)容。本功能實(shí)現(xiàn)對(duì)學(xué)生信息、教師信息情況信息的管理和統(tǒng)計(jì)、課程信息和成績(jī)信息查看及維護(hù)。2、系統(tǒng)的業(yè)務(wù)功能分析學(xué)生成績(jī)管理系統(tǒng)應(yīng)當(dāng)將學(xué)生與教務(wù)員區(qū)分開(kāi)來(lái),因?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é)課程的成績(jī),查看自己不同課程的成績(jī)、GPA以及排名,查看個(gè)人信息等。②用戶要實(shí)現(xiàn)對(duì)各分?jǐn)?shù)段成績(jī)單人數(shù)成績(jī)的查詢(排序功能),個(gè)人資料的修改等。3、數(shù)據(jù)字典(1).數(shù)據(jù)流①班級(jí)信息,包括班級(jí)編號(hào),學(xué)院編號(hào)等信息。②學(xué)生信息,包括學(xué)生編號(hào),學(xué)生姓名,性別,班級(jí),聯(lián)系方式等信息。③課程信息,包括課程號(hào),課程名稱,學(xué)分。(2).數(shù)據(jù)存儲(chǔ)成績(jī)表信息,包括學(xué)生編號(hào),課程編號(hào),課程績(jī)點(diǎn),課程成績(jī)等信息。四、概要設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)學(xué)生成績(jī)管理系統(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)對(duì)兩個(gè)文件數(shù)據(jù)進(jìn)行合并,生成新文件3.txt;2、查看文件3:顯示文件3里的所有信息;3、生成文件補(bǔ)考文件4:抽取出三科成績(jī)中有補(bǔ)考的學(xué)生并保存在一個(gè)新文件4.txt;4、查看文件4:顯示文件4里的所有信息;5、排序后的文件3:對(duì)合并后的文件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;/*通過(guò)學(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;}/*通過(guò)姓名返回?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)","語(yǔ)文成績(jī)","數(shù)學(xué)成績(jī)","英語(yǔ)成績(jī)","政治成績(jī)");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("請(qǐng)輸入姓名:");scanf("%s",&students[num].Name);getchar(); printf("請(qǐng)輸入學(xué)號(hào):");scanf("%s",&students[num].ID);getchar();printf("請(qǐng)輸入語(yǔ)文成績(jī):");scanf("%f",&students[num].Mark1);getchar();printf("請(qǐng)輸入數(shù)學(xué)成績(jī):");scanf("%f",&students[num].Mark2);getchar();printf("請(qǐng)輸入英語(yǔ)成績(jī):");scanf("%f",&students[num].Mark3);getchar(); printf("請(qǐng)輸入政治成績(jī):");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("請(qǐng)輸入要修改的學(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("--請(qǐng)輸入新值--\n");printf("請(qǐng)輸入姓名:");scanf("%s",&students[index].Name);getchar();printf("請(qǐng)輸入學(xué)號(hào):");scanf("%s",&students[index].ID);getchar();printf("請(qǐng)輸入語(yǔ)文成績(jī):");scanf("%f",&students[index].Mark1);getchar();printf("請(qǐng)輸入數(shù)學(xué)成績(jī):");scanf("%f",&students[index].Mark2);getchar();printf("請(qǐng)輸入英語(yǔ)成績(jī):");scanf("%f",&students[index].Mark3);getchar(); printf("請(qǐng)輸入政治成績(jī):");scanf("%f",&students[index].Mark4);getchar();}printf("是否繼續(xù)?(y/n)");if(getchar()=='n'){break;}}}/*刪除學(xué)生信息*/voidStudent_Delete(){inti;while(1){charid[20];intindex;printf("請(qǐng)輸入要?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];//把后邊的對(duì)象都向前移動(dòng)}num--;}getchar();}printf("是否繼續(xù)?(y/n)");if(getchar()=='n'){break;}}}/*按姓名查詢*/voidStudent_Select(){while(1){charname[20];intindex;printf("請(qǐng)輸入要查詢的學(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;}}} //按語(yǔ)文成績(jī)排序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é)成績(jī)排序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;}}}}//按英語(yǔ)成績(jī)排序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;}}}}//按政治成績(jī)排序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)","語(yǔ)文","數(shù)學(xué)","英語(yǔ)","政治");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("不能打開(kāi)文件!\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("不能打開(kāi)文件!\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é)生成績(jī)管理系統(tǒng)\n");printf("1.增加學(xué)生記錄\n");printf("2.修改學(xué)生記錄\n");printf("3.刪除學(xué)生記錄\n");printf("4.按姓名查詢學(xué)生記錄\n");printf("5.按成績(jī)排序\n");printf("6.退出\n");printf("請(qǐng)選擇(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.按語(yǔ)文排序\n"); printf("2.按數(shù)學(xué)排序\n"); printf("3.按英語(yǔ)排序\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();}}六、測(cè)試結(jié)果合并:圖一排序:冒泡排序:

溫馨提示

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

評(píng)論

0/150

提交評(píng)論