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

下載本文檔

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

文檔簡(jiǎn)介

2.3分塊設(shè)計(jì)顯示一系列功能選顯示一系列功能選根據(jù)x的值調(diào)用各功能模塊函數(shù)結(jié)束開始開始輸入學(xué)號(hào)課程編號(hào)課程名稱學(xué)分平時(shí)成績(jī)實(shí)驗(yàn)成績(jī)卷面成績(jī)結(jié)束數(shù)據(jù)輸入開始開始數(shù)據(jù)查詢x=1?Y=1?輸入學(xué)號(hào)輸入宿舍號(hào)輸入學(xué)號(hào)結(jié)束開始開始數(shù)據(jù)刪除結(jié)束輸入學(xué)號(hào)三、程序?qū)崿F(xiàn)⑴利用了組合體的方式定義結(jié)構(gòu)體數(shù)組,提供學(xué)生基本信息,定義如下:typedefstruct{intId;//學(xué)號(hào)charname[10];//姓名charsex[6];//性別introom;//宿舍號(hào)inttel;//電話號(hào)碼}StudentInfo;//定義學(xué)生信息的結(jié)構(gòu)體類型⑵同時(shí)定義了另一結(jié)構(gòu)體數(shù)組,提供學(xué)生成績(jī)基本信息,定義如下:typedefstruct{intId;charcourseNo[10];//課程編號(hào)charcourseName[20];//課程名floata;//課程學(xué)分floatb;//平時(shí)成績(jī)floatc;//實(shí)驗(yàn)成績(jī)floatd;//卷面成績(jī)floate;//綜合成績(jī)floatf;//實(shí)際學(xué)分}MarkInfo;//定義課程信息的結(jié)構(gòu)體類型使用以上結(jié)構(gòu)體數(shù)組,使程序變得思路清晰,設(shè)計(jì)過程也變得相對(duì)簡(jiǎn)單。同時(shí),定義并使用了如下函數(shù),聲明和定義voidReadFile();//讀取文件voidDisplayMainMenu();//顯示主菜單voidDataInput();//數(shù)據(jù)錄入voidDataQuery();//數(shù)據(jù)查詢voidDataDelete();//數(shù)據(jù)刪除voidDataSort();//數(shù)據(jù)排序voidQueryById(int);//按學(xué)號(hào)查詢voidQueryByRoom(int);//按宿舍查詢voidQueryMark(int);//按成績(jī)查詢voidsort1();//按綜合成績(jī)排序voidsort2();//按實(shí)得學(xué)分排序voidmarkput();//成績(jī)輸出StudentInfosi[30];//學(xué)生信息結(jié)構(gòu)數(shù)組MarkInfomi[150];//學(xué)生成績(jī)結(jié)構(gòu)數(shù)組intsp=0;//學(xué)生信息結(jié)構(gòu)數(shù)組中學(xué)生數(shù)intmp=0;//學(xué)生成績(jī)結(jié)構(gòu)數(shù)組中成績(jī)數(shù)***************讀取數(shù)據(jù)、計(jì)算***************在這段功能模塊中,利用指針變量來讀取結(jié)構(gòu)體數(shù)組文件中的相應(yīng)信息,是程序的編寫、閱讀和運(yùn)行變得簡(jiǎn)潔明了。此外,在這段程序中,還對(duì)文件中的數(shù)據(jù)按照題目的具體要求對(duì)綜合成績(jī)和學(xué)分做了自動(dòng)計(jì)算。voidReadFile(){FILE*fp;if((fp=fopen("A.txt","r"))==NULL)printf("cantopenthefile\n");while(!feof(fp)){ fscanf(fp,"%d%s%s%d%d",&si[sp].Id,si[sp].name,&si[sp].sex,&si[sp].room,&si[sp].tel); sp++;}fclose(fp);fp=fopen("B.txt","r");while(!feof(fp)){ fscanf(fp,"%d%s%s%d%d%d%d",&mi[mp].Id,mi[mp].courseNo,mi[mp].courseName,&mi[mp].a,&mi[mp].b,&mi[mp].c,&mi[mp].d); if(mi[mp].c==-1) mi[mp].e=0.3*mi[mp].b+0.7*mi[mp].d; else mi[mp].e=0.15*mi[mp].b+0.15*mi[mp].c+0.7*mi[mp].d; if(mi[mp].e>=90.)mi[mp].f=mi[mp].a; elseif(mi[mp].e>=80.) mi[mp].f=mi[mp].a*0.8; elseif(mi[mp].e>=70.) mi[mp].f=mi[mp].a*0.75; elseif(mi[mp].e>=60.) mi[mp].f=mi[mp].a*0.6; elsemi[mp].f=0; mp++;}fclose(fp);}***************顯示主菜單***************這部分是對(duì)本程序的主要功能做出的展示,體現(xiàn)了本程序的五大功能,簡(jiǎn)潔明白,一目了然。VoidDisplayMainMenu(){printf(“\n1)數(shù)據(jù)錄入\n2)數(shù)據(jù)查詢\n3)數(shù)據(jù)刪除\n4)數(shù)據(jù)排序\n5)程序結(jié)束\n“);}***************數(shù)據(jù)錄入模塊*******************錄入每個(gè)學(xué)生的學(xué)號(hào)、課程編號(hào)、課程名稱、學(xué)分、平時(shí)成績(jī)、實(shí)驗(yàn)成績(jī)、卷面成績(jī)共7個(gè)數(shù)據(jù),即對(duì)關(guān)于學(xué)生成績(jī)基本信息的結(jié)構(gòu)體數(shù)組進(jìn)行輸入,也就是文件B.TXT中的內(nèi)容。voidDataInput(){FILE*fp;inti;printf("學(xué)生的學(xué)號(hào)課程編號(hào)課程名稱學(xué)分平時(shí)成績(jī)實(shí)驗(yàn)成績(jī)卷面成績(jī)\n");while(1){scanf("%d%s%s%d%d%d%d",&mi[mp].Id,mi[mp].courseNo,mi[mp].courseName,&mi[mp].a,&mi[mp].b,&mi[mp].c,&mi[mp].d);if(mi[mp].Id==-1)break;if(mi[mp].c==-1) mi[mp].e=0.3*mi[mp].b+0.7*mi[mp].d; else mi[mp].e=0.15*mi[mp].b+0.15*mi[mp].c+0.7*mi[mp].d; if(mi[mp].e>=90.)mi[mp].f=mi[mp].a; elseif(mi[mp].e>=80.) mi[mp].f=mi[mp].a*0.8; elseif(mi[mp].e>=70.) mi[mp].f=mi[mp].a*0.75; elseif(mi[mp].e>=60.) mi[mp].f=mi[mp].a*0.6; elsemi[mp].f=0; mp++;}fp=fopen("B.txt","r+");for(i=0;i<mp;i++)fprintf(fp,"%d%s%s%d%d%d%d",&mi[i].Id,mi[i].courseNo,mi[i].courseName,&mi[i].a,&mi[mp].b,&mi[i].c,&mi[i].d);fclose(fp);}*******************查詢模塊********************此段程序是為實(shí)現(xiàn)信息查詢功能而設(shè)計(jì)的??傮w來講,分為兩大功能模塊,一是學(xué)生基本信息查詢,二是對(duì)學(xué)生成績(jī)的查詢。在第一種查詢,即對(duì)學(xué)生基本信息的查詢中,又提供了兩種查詢方式,一種是按學(xué)號(hào)對(duì)學(xué)生基本信息進(jìn)行查詢,一種是按宿舍號(hào)碼對(duì)學(xué)生基本信息進(jìn)行查詢。VoidDataQuery(){intx,y,z;printf(“\n1)學(xué)生基本情況查詢\n2)成績(jī)查詢\n”);選擇查詢內(nèi)容scanf(“%d”,&x);if(x==1)//查詢學(xué)生信息{printf(“1)按學(xué)號(hào)查詢2)按宿舍查詢\n”);選擇查詢方式scanf(“%d”,&y);if(y==1){printf(“輸入學(xué)號(hào)\n”);按學(xué)生學(xué)號(hào)查詢scanf(“%d”,&z);QueryById(z);}if(y==2){}if(x==2)//查詢成績(jī)信息查詢學(xué)生成績(jī)(輸入學(xué)號(hào)){printf(“輸入學(xué)號(hào)\n”);scanf(“%d”,&y);QueryMark(y);}}******************刪除模塊*******************此模塊提供了按學(xué)號(hào)實(shí)現(xiàn)刪除學(xué)生信息的功能,當(dāng)在文件A.TXT中刪除一個(gè)學(xué)生時(shí),自動(dòng)地在文件B.TXT中刪除此人所有信息。voidDataDelete(){FILE*fp;intx;inti=0;intk,d;printf("輸入學(xué)號(hào)\n");scanf("%d",&x);while(si[i].Id!=x)i++;if(i<sp-1){for(k=i;k<sp-1;k++){si[k]=si[k+1];}}if(i<sp)sp--;d=0;for(k=0;k<mp;k++){if(mi[k].Id==x)d++;elsemi[k-d]=mi[k];}mp=mp-d;fp=fopen("D:B.txt","r+");for(i=0;i<mp;i++)fprintf(fp,"%d%s%s%d%d%d%d",&mi[i].Id,mi[i].courseNo,mi[i].courseName,&mi[i].a,&mi[i].b,&mi[i].c,&mi[i].d);}***************排序模塊******************利用voidsort1()函數(shù)按計(jì)算所得的綜合成績(jī)進(jìn)行排序。voidsort1(){inti,j;MarkInfot;for(i=mp-1;i>=1;i--){for(j=0;j<i;j++){if(mi[j].e>mi[j+1].e){t=mi[j];mi[j]=mi[j+1];mi[j+1]=t;}}}markput();}四、測(cè)試分析4.1測(cè)試結(jié)果及分析1414退出程序五、總結(jié)這次學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來才能做好

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論