![C語言學生成績管理系統(tǒng)設(shè)計_第1頁](http://file4.renrendoc.com/view/d0bf02c858f3c6806027eda41db1f085/d0bf02c858f3c6806027eda41db1f0851.gif)
![C語言學生成績管理系統(tǒng)設(shè)計_第2頁](http://file4.renrendoc.com/view/d0bf02c858f3c6806027eda41db1f085/d0bf02c858f3c6806027eda41db1f0852.gif)
![C語言學生成績管理系統(tǒng)設(shè)計_第3頁](http://file4.renrendoc.com/view/d0bf02c858f3c6806027eda41db1f085/d0bf02c858f3c6806027eda41db1f0853.gif)
![C語言學生成績管理系統(tǒng)設(shè)計_第4頁](http://file4.renrendoc.com/view/d0bf02c858f3c6806027eda41db1f085/d0bf02c858f3c6806027eda41db1f0854.gif)
![C語言學生成績管理系統(tǒng)設(shè)計_第5頁](http://file4.renrendoc.com/view/d0bf02c858f3c6806027eda41db1f085/d0bf02c858f3c6806027eda41db1f0855.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
實用標準沈陽航空航天大學課程設(shè)計報告大作業(yè)名稱:C語言課程設(shè)計大作業(yè)題目:學生成績管理系統(tǒng)設(shè)計院(系):計算機學院專 業(yè):計算機科學與技術(shù)班 級:學 號:姓 名:指導(dǎo)教師:完成日期:2016年12月24日文案大全實用標準目 錄第1章 概要設(shè)計 11.1題目的內(nèi)容與要求 11.2總體結(jié)構(gòu) 1第2章 詳細設(shè)計 22.1主模塊 22.2輸入模塊 32.3顯示模塊 32.4修改模塊 42.5刪除模塊 42.6查詢模塊 52.7統(tǒng)計模塊 6第3章 調(diào)試分析 7第4章 使用說明 8參考文獻 12附 錄(程序清單) 13文案大全實用標準第1章 概要設(shè)計1.1題目的內(nèi)容與要求內(nèi)容:學生成績信息包括:姓名、學號、語文、數(shù)學、英語。實現(xiàn)的主要功能有:)信息維護。包括學生成績的輸入、按學號刪除、按學號修改等。信息查詢。輸入學號或姓名,顯示出該生三個科目的成績,計算出三科總分并顯示,按總分將所有學生成績排序,顯示出該生的名次。)成績統(tǒng)計。先輸入任意一個科目,接著選擇a或b來分別顯示平均分或統(tǒng)計分數(shù)段學生,若選擇a,則直接顯示出該科目的平均分;若選擇b,則提示用戶輸入一個分數(shù)段,顯示所有該科目屬于該分數(shù)段內(nèi)的學生信息,并給出學生總數(shù)。要求:)系統(tǒng)以菜單方式工作。在不同的界面為用戶給出具體提示。)系統(tǒng)利用C語言實現(xiàn),源程序要有適當?shù)淖⑨?。)采用VC環(huán)境進行運行調(diào)試。1.2總體結(jié)構(gòu)本程序主要分為七個模塊( 功能模塊圖見圖 1.1):結(jié)構(gòu)體模塊,輸入模塊,顯示模塊,修改模塊,刪除模塊,查詢模塊,統(tǒng)計模塊。結(jié)構(gòu)體模塊:建立一個結(jié)構(gòu)體模塊,為鏈表存信息用。輸入模塊:鍵盤輸入每個學生的信息,并保存在文件中。顯示模塊:顯示全部學生的具體信息。修改模塊:修改某個學生的成績信息。刪除模塊:刪除某個學生的全部信息。查詢模塊:查詢某個學生的具體信息。統(tǒng)計模塊:通過功能選擇,統(tǒng)計并顯示某一科目的平均分或某分數(shù)段學生的具體信息。文案大全實用標準學生成績管理系統(tǒng)主輸顯修刪查統(tǒng)模入示改除詢計塊模模模模模模塊塊塊塊塊塊圖1.1功能模塊圖第2章詳細設(shè)計2.1主模塊控制整個程序的運行,控制菜單操作,通過主函數(shù)模塊分別調(diào)用各個模塊,實現(xiàn)各項功能,流程如圖 2.1所示。開始顯示主菜單YN NY
選0退出選1-6執(zhí)行具體功能顯示結(jié)果結(jié)束圖2.1 主模塊流程圖文案大全實用標準注釋:顯示主菜單;選擇不同序號執(zhí)行不同功能;2.2輸入模塊輸入所有學生信息并保存,流程如圖 2.2所示。input()printf("輸入學號:");printf("輸入姓名:");printf("第%d門成績的分數(shù): ",j+1);計算總分、平均分printf("\n\n信息保存成功 !恭喜!!\n\n");結(jié)束圖2.2 輸入模塊流程圖注釋:循環(huán)輸入每個學生的信息;保存所有信息2.3顯示模塊顯示所有學生的具體信息,流程圖如 2.3所示。Print()顯示信息圖2.3 顯示模塊流程圖結(jié)束文案大全實用標準注釋:選擇號好功能;顯示全部學生的具體信息。2.4修改模塊修改某個學生各個科目的成績,流程圖如 2.4所示。xiugai()printf("\n 請輸入要修改的同學的學號 :");printf("\n 請輸入要修改學生修改后的的信息 \n");printf("\n修改成功!恭喜!!\n");Y是否繼續(xù)修改?N結(jié)束圖2.4 修改模塊流程圖注釋:輸入要修改學生的學號;輸入要修改的科目信息;修改成功,是否要繼續(xù)修改。是,繼續(xù);否,回到主菜單。2.5刪除模塊文案大全實用標準按學號刪除某學生的全部信息,流程圖如圖 2.5所示。文案大全實用標準shanchu()printf("\n 請輸入要刪除的同學的學號 :");printf("\n該同學信息如下 :\n");Y是否刪除?Yprintf("\n 刪除成N功!恭喜!!\n");是否繼續(xù)刪除?N結(jié)束圖2.5 刪除模塊流程圖注釋:輸入要刪除的學生的學號;顯示該生信息,是否刪除。是,刪除;否,是否繼續(xù)操作。是否繼續(xù)刪除。是,重復(fù)上述操作;否,退出回到主菜單。2.6查詢模塊輸入要查詢學生的學號,顯示該生具體信息,流程圖如圖2.6所示。chaxun()printf("\n 請輸入學生學號 :");顯示該生具體信息是否繼續(xù)查詢?
YN
圖2.6 查詢模塊流程圖結(jié)束文案大全實用標準注釋:輸入要查詢的學生的學號;顯示該生的具體信息;是否繼續(xù)查詢。是,繼續(xù)查詢下一位;否,回到主菜單。2.7統(tǒng)計模塊通過選擇不同功能,顯示某個科目的平均分或某分數(shù)段學生的具體信息,流程圖如圖2.7所示。tongji()printf("\n輸入一個科目:");case‘a(chǎn)’: case‘b’:選擇功能a或b計算該科目平printf("\n 請輸入分數(shù)均分段:__空格__\n");printf("\n\n 該科目的平顯示屬于該分數(shù)段均成績?yōu)椋?.2f\n",ave);的學生;學生總數(shù)是否繼續(xù)查詢其他科目? YN結(jié)束圖2.7 統(tǒng)計模塊流程圖注釋:通過菜單選擇科目;通過菜單選擇a或b功能,分別顯示該科目平均分或某分數(shù)段學生信息;是否繼續(xù)查詢?是,繼續(xù);否,回到主菜單。文案大全實用標準第3章 調(diào)試分析在這次課程設(shè)計中,程序編寫的過程中遇到了很多問題,主要是函數(shù)實現(xiàn)方面問題較多。問題1:查詢函數(shù)chaxun()中,會造成數(shù)據(jù)混亂,原因是 for循環(huán)中某行代碼運用錯誤,如下:for(i=0;i<n;i++){if(stu[i].num==x){k=i;/* 找到要查詢的同學學號 ,并用k記下其下標*/}OutputOneStudent(k);}將OutputOneStudent(k);拿出后,查詢功能正常實現(xiàn)。正確編寫如下:for(i=0;i<n;i++){if(stu[i].num==x){k=i;/* 找到要查詢的同學學號,并用k記下其下標*/}}OutputOneStudent(k);問題2:統(tǒng)計函數(shù)tongji(),功能實現(xiàn)完后不能回到主菜單。解決方法是,把功能函數(shù)gongneng()其中的while循環(huán)刪掉。文案大全實用標準第4章 使用說明運行截圖如下:輸入成績信息顯示文案大全實用標準修改信息刪除信息文案大全實用標準查詢信息6.1統(tǒng)計信息---- 科目平均分文案大全實用標準6.2統(tǒng)計信息---- 科目某分數(shù)段學生信息退出系統(tǒng)文案大全實用標準參考文獻王敬華,《C語言程序設(shè)計教程(第二版)》,清華大學出版社,2009年8月譚浩強,《C語言程序設(shè)計教程(第二版)》,清華大學出版社,1999年12月譚浩強,《C語言程序設(shè)計題解與上機指導(dǎo)》,清華大學出版社,2000年11月田淑清,《C語言程序設(shè)計輔導(dǎo)與習題集》,中國鐵道出版社,2000年1月張榮梅、梁曉林,《VisualC++實用教程》,冶金工業(yè)出版社,2004年附 錄(程序清單)程序代碼:#include<stdio.h>#include<string.h>#include<stdlib.h>#defineN3structstudent{intnum; // 學號charname[20]; // 姓名floatscore[3]; // 三門課成績floatsum; // 總分floataver; // 平均分}stu[N];voidmenu();//主菜單功能voidinput();//輸入信息到結(jié)構(gòu)體中voidsave(intx);//保存stud.dat文件函數(shù)voidprint();//輸出顯示所有學生信息voidSaveAllStudent(intn);//保存全部學生信息voidxiugai(intn);//按學號修改成績intshanchu(intn);//按學號刪除voidOutputOneStudent(inti);//查詢一個學生的信息文案大全實用標準voidchaxun(intn); // 按學號查詢成績voidtongji(); // 統(tǒng)計科目信息voidgongneng(intx); //a 或b功能分別顯示科目平均分或分數(shù)段學生信息intmain(){printf("***********************************************************\n");printf("**\n");printf("* Hwadee &學生成績管理系統(tǒng)&Hwadee *\n");printf("**\n");printf("******************************************************\n\n\n");printf("**************** ●●歡迎使用●●*******************\n");while(1){menu();}return0;}/*主菜單***********************************************************/voidmenu(){intchoice;intn=N;printf("\n 請選擇功能:\n");printf("\n1:輸入成績\n2:顯示信息\n3:修改成績\n4:刪除信息\n5:查詢成績\n6:成績統(tǒng)計\n0:退出系統(tǒng)\n\n");printf("\n 請選擇序號:\n");scanf("%d",&choice);文案大全實用標準switch(choice){case1:input();save(N);break;case2:print();break;case3:xiugai(n);break;case4:shanchu(n);break;case5:chaxun(n);break;case6:tongji();break;case0:printf("\n 謝謝使用,再見!\n\n");exit(-1);break;default:printf(" 輸入錯誤!\n");break;}}/*寫入函數(shù)****************************************************/voidinput(){inti,j;printf("\n 輸入信息\n");for(i=0;i<N;i++){printf(" 輸入學號:");scanf("%d",&stu[i].num);printf(" 輸入姓名:");文案大全實用標準scanf("%s",&stu[i].name);for(j=0;j<N;j++){printf(" 第%d門成績的分數(shù):",j+1);scanf("%f",&stu[i].score[j]);}stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];stu[i].aver=stu[i].sum/3;printf("\n");}}/*寫入文件***********************************************************/voidsave(intx){FILE*fp;/*定義文件指針用于向文件讀入數(shù)據(jù)*/inti;if((fp=fopen("student.dat","rb+"))==NULL)/* 以二進制讀,寫方式打開文件*/{printf("cannotopenfile\n");exit(1);}for(i=0;i<N;i++){if(fwrite(&stu[i],sizeof(structstudent),1,fp)!=1){printf("filewriteerror\n");}}fclose(fp);printf("\n\n 信息保存成功!恭喜!!\n\n");}/*顯示全部學生信息**************************************************/voidprint(){inti;printf(" 學號 姓名 語文 數(shù)學 英語 總分 平均分文案大全實用標準\n");for(i=0;i<N;i++)printf("%d %s %.2f %.2f %.2f %.2f %.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].aver);}/*保存全部學生信息******************************************8*/voidSaveAllStudent(intn){FILE*fp;if((fp=fopen("student.dat","wb"))==NULL){printf(" 文件打開失敗!\n");exit(1);}fwrite(stu,sizeof(structstudent),n,fp);fclose(fp);}/*修改學生信息************************************************/voidxiugai(intn){structstudenttemp;intk=-1,x,i;charc1='y';while(c1=='y'){printf("\n 請輸入要修改的同學的學號 :");scanf("%d",&x);for(i=0;i<n;i++){if(x==stu[i].num){k=i;/* 找到要修改的同學學號,并用 k記下其下標*/文案大全實用標準break;}}if(k<0){printf("\n 輸入學號有誤,請重新輸入 !");}else{printf("\n 請輸入要修改學生修改后的的信息 \n");printf(" 語文(空格)數(shù)學(空格)英語 \t\n");scanf("%f%f%f",&temp.score[0],&temp.score[1],&temp.score[2]);temp.sum=(temp.score[0]+temp.score[1]+temp.score[2]);temp.aver=(temp.score[0]+temp.score[1]+temp.score[2])/3;stu[k].score[0]=temp.score[0];/*修改該學生信息*/stu[k].score[1]=temp.score[1];stu[k].score[2]=temp.score[2];stu[k].sum=temp.sum;stu[k].aver=temp.aver;printf("\n 修改成功!恭喜!!\n");break;}SaveAllStudent(k);printf("\n 繼續(xù)修改操作嗎?");printf("\n 繼續(xù)修改請按y;不進行修改請按 n\n");getchar();c1=getchar();}printf("\n 按任意鍵繼續(xù)!\n");getchar();}/*刪除學生信息*************************************************/intshanchu(intn)文案大全實用標準{inti,k=-1,x;charc1='y',c2;while(c1=='y'){c2='n';printf("\n 請輸入要刪除的同學的學號 :");scanf("%d",&x);for(i=0;i<n;i++){if(x==stu[i].num){k=i;/* 找到要刪除的同學學號,并用 k記下其下標*/break;}}if(k<0){printf("\n 輸入學號有誤,請重新輸入 !");}else{printf("\n 該同學信息如下:\n");OutputOneStudent(k);printf("\n\n 確定刪除?\n");printf(" 確定進行刪除請按 y;不進行刪除請按 n\n");getchar();c2=getchar();if(c2=='y'){for(i=k;i<n;i++){stu[i]=stu[i+1];}n--;/* 學生人數(shù)減1*/文案大全實用標準printf("\n 刪除成功!恭喜!!\n");}elseprintf("\n 取消刪除!\n");printf("\n 繼續(xù)刪除操作嗎?");printf("\n 繼續(xù)刪除請按y;不進行刪除請按 n\n");getchar();c1=getchar();}}save(n);printf("\n 按任意鍵繼續(xù)!\n");getchar();return(n);}/*查詢一個學生信息********************************************/voidOutputOneStudent(inti){printf(" 學號:%d 姓名:%s\n",stu[i].num,stu[i].name);printf(" 語文:%.1f 數(shù)學:%.1f 英語:%.1f 總分:%.1f 平均分:%.2f\n",stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].aver);}/*按學號查詢學生信息**************************************/voidchaxun(intn){inti,j,k,x;charc='y';while(c=='y'){k=-1;printf("\n 請輸入學生學號:");文案大全實用標準scanf("%d",&x);if(x>3||x<1){break;}for(i=0;i<n;i++){if(stu[i].num==x){k=i;/* 找到要查詢的同學學號,并用k記下其下標*/}}OutputOneStudent(k);stu[x-1].num=1;// 該生排名for(j=0;j<3;j++){if(stu[j].sum>stu[x-1].sum)stu[x-1].num++;}printf("\n 該生排名為第%d名。\n",stu[x-1].num);printf("\n\n 繼續(xù)查詢其他學生信息嗎 ?");printf("\n 繼續(xù)查詢請按y;不進行查詢請按 n\n");getchar();c=getchar();}printf("\n 按任意鍵繼續(xù)!\n");getchar();}/*學生信息統(tǒng)計操作**********************************************/voidtongji(){charc='y';while(c=='y'){intx;文案大全實用標準printf("\n 輸入一個科目:");printf("\n\n1 :語文\n2:數(shù)學\n3:英語\n0:退出");printf("\n\n 請選擇序號:");scanf("%d",&x);if(x>0&&x<6){switch(x){case1:gongneng(x);break;case2:gongneng(x);break;case3:gongneng(x);break;case0:exit(-1);break;default:printf(" 輸入錯誤!\n");}}printf("\n\n 繼續(xù)查詢其他科目信息嗎 ?");printf("\n 繼續(xù)查詢請按y;不進行查詢請按 n\n");getchar();c=getchar();}}/*選擇a或b來分別顯示該科平均分或統(tǒng)計分數(shù)段學生 ****************/voidgongneng(intx){printf("\n\n 請選擇功能:\n");printf("\na :顯示該科目平均分\nb:統(tǒng)計分數(shù)段學生
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GGFG-PAB-Exatecan-TFA-生命科學試劑-MCE-7805
- 2025年度私教健身中心教練團隊合作協(xié)議
- 2025年度水產(chǎn)養(yǎng)殖技術(shù)支持租地合同
- 二零二五年度私人酒店健身教練用工協(xié)議
- 材料采購合同
- 食堂操作間衛(wèi)生與消毒措施
- 河道清淤施工方案6篇
- 個人不服勞動合同糾紛仲裁起訴狀范本
- 上海簡易離婚合同模板
- 上海市商品住宅銷售合同模板
- 長沙醫(yī)學院《無機化學》2021-2022學年第一學期期末試卷
- eras婦科腫瘤圍手術(shù)期管理指南解讀
- GB/T 750-2024水泥壓蒸安定性試驗方法
- 初一到初三英語單詞表2182個帶音標打印版
- 《人力資源管理》全套教學課件
- 【課件】2024-2025學年高一上學期英語開學第一課課件
- 年度重點工作計劃
- 《經(jīng)濟思想史》全套教學課件
- 環(huán)境衛(wèi)生學及消毒滅菌效果監(jiān)測
- 對合同條款有異議函
- 中醫(yī)館工作細則
評論
0/150
提交評論