學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)報(bào)告[內(nèi)含C語(yǔ)言程序]_第1頁(yè)
學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)報(bào)告[內(nèi)含C語(yǔ)言程序]_第2頁(yè)
學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)報(bào)告[內(nèi)含C語(yǔ)言程序]_第3頁(yè)
學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)報(bào)告[內(nèi)含C語(yǔ)言程序]_第4頁(yè)
學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)報(bào)告[內(nèi)含C語(yǔ)言程序]_第5頁(yè)
已閱讀5頁(yè),還剩8頁(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)介

1、高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告題目學(xué)生學(xué)籍信息管理系統(tǒng)設(shè)計(jì)專業(yè)自動(dòng)化班級(jí)自動(dòng)142學(xué)號(hào)姓名呂澤帥指導(dǎo)教師楊莉日期2015年7月1日山東工商學(xué)院信電學(xué)院1、程序基本功能要求(1)、需求分析學(xué)生基本信息、學(xué)生成績(jī)基本信息要存入文件當(dāng)中, 因而要提供文件的輸入 輸出操作;查詢功能要求提供查找和顯示操作; 刪除功能要求實(shí)現(xiàn)刪除操作;排 序功能要求實(shí)現(xiàn)排序操作;另外還應(yīng)該提供鍵盤式選擇菜單以實(shí)現(xiàn)功能選擇。(2)、總體設(shè)計(jì)整個(gè)系統(tǒng)可以設(shè)計(jì)為數(shù)據(jù)錄入模塊、數(shù)據(jù)查詢模塊、數(shù)據(jù)刪除模塊和數(shù)據(jù)排 序模塊。(3)、詳細(xì)設(shè)計(jì)設(shè)計(jì)學(xué)生基本信息和學(xué)生成績(jī)基本信息結(jié)構(gòu)體數(shù)組。2、總體設(shè)計(jì)(1)數(shù)據(jù)錄入模塊學(xué)生基本信息文件可以

2、在磁盤建立,采用寫文件方式錄入學(xué)生成績(jī)基本信 息。綜合成績(jī)和實(shí)得學(xué)分通過(guò)計(jì)算得到。(2)通過(guò)學(xué)號(hào)刪除模塊通過(guò)菜單選擇刪除學(xué)生的功能,輸入要?jiǎng)h除學(xué)生的學(xué)號(hào),則在 A.TXT查找該 生信息,刪除之。注意:C語(yǔ)言中沒有直接刪除信息的函數(shù),需要自己實(shí)現(xiàn),可 以采取讀出數(shù)據(jù),判斷數(shù)據(jù)(如果不刪除,則進(jìn)入緩沖區(qū),否則刪除),寫入數(shù)據(jù)(把緩沖區(qū)中的數(shù)據(jù)寫入文件)的步驟進(jìn)行。(3)通過(guò)姓名刪除模塊通過(guò)菜單選擇刪除學(xué)生的功能,輸入要?jiǎng)h除學(xué)生的姓名,先在 A.TXT中得到 該生的學(xué)號(hào),刪除該生信息,再刪除該學(xué)號(hào)對(duì)應(yīng)的信息。注意:C語(yǔ)言中沒有直接刪除信息的函數(shù),需要自己實(shí)現(xiàn),可以采取讀出數(shù)據(jù),判斷數(shù)據(jù)(如果不刪除,

3、 則進(jìn)入緩沖區(qū),否則刪除),寫入數(shù)據(jù)(把緩沖區(qū)中的數(shù)據(jù)寫入文件)的步驟進(jìn) 行。(4)排序模塊通過(guò)菜單選擇排序依據(jù),采用排序算法(冒泡、插入、選擇等)對(duì)數(shù)據(jù)進(jìn)行 排序并輸出結(jié)果。(5)查詢模塊通過(guò)菜單選擇查詢功能,通過(guò)菜單輸入所要查找的學(xué)生的姓名,按照基本查 找算法查找A.TXT,查找對(duì)應(yīng)的姓名,再查找該學(xué)生的課程情況,并統(tǒng)計(jì)各類成 績(jī)和實(shí)得總成績(jī),輸出結(jié)果。(6)成績(jī)?yōu)g覽模塊通過(guò)菜單選擇對(duì)所有學(xué)生成績(jī)進(jìn)行輸出顯示。(7)結(jié)束模塊通過(guò)菜單選擇結(jié)束改程序。3、詳細(xì)設(shè)計(jì)(各模塊程序設(shè)計(jì)組成框圖、流程圖)(1)總流程圖主函數(shù)界面根據(jù)提示操作學(xué)生成績(jī)排序調(diào)用Stude nt_SortBy 函數(shù)alGad

4、e sea和 語(yǔ)錄入信息 調(diào) 用_Student_?)函 nsert 函 Stu 數(shù) 進(jìn)行錄一StUdent_Delete對(duì)所要?jiǎng)h除學(xué)生的學(xué)號(hào)進(jìn)行輸入,然后在A.txt中查找此學(xué)生的信息并顯示, 后詢問(wèn)是否確認(rèn)刪除,刪除后詢問(wèn)是否繼續(xù)進(jìn)行刪除操作。通過(guò)姓名刪 除調(diào)用Name_Delet函數(shù)e該數(shù)數(shù)是錄/通過(guò)學(xué)號(hào)明調(diào) dinwgmfejD j,e并使函數(shù)f錄入句判斷是否繼續(xù)錄入。de nt_Displa函數(shù),該函數(shù)是通過(guò)學(xué)號(hào)數(shù)學(xué)生成績(jī)查 詢調(diào)用Stude nt_Se句對(duì)學(xué)生基數(shù)本信所有成績(jī)?yōu)g 覽調(diào)用display函數(shù)除函數(shù),首先利用 seanf函數(shù) .Name_Delete函數(shù),該函數(shù)是通過(guò)姓名

5、刪除學(xué)生信息函數(shù),首先利用scanf函數(shù)對(duì)所要?jiǎng)h除學(xué)生的姓名進(jìn)行輸入,然后在A.txt中查找此學(xué)生的信息并顯示,最后詢問(wèn)是否確認(rèn)刪除,刪除后詢問(wèn)是否繼續(xù)進(jìn)行刪除操作。 .Student_SortBytotalGrade和 Student_Display 函數(shù),分別是按綜合成績(jī)值排序和顯示學(xué)生信息函數(shù),先對(duì)學(xué)生綜合成績(jī)進(jìn)行排序再將其顯示。 .Student_Select函數(shù),該函數(shù)是學(xué)生成績(jī)查詢函數(shù),先用 scanf函數(shù)輸入 所要查詢學(xué)生的姓名,然后在A.txt中查找到該學(xué)生信息并顯示出來(lái),最后詢問(wèn) 是否繼續(xù)輸入。 .display函數(shù),該函數(shù)是所有學(xué)生成績(jī)?yōu)g覽函數(shù),通過(guò)調(diào)用A.txt將其中所有

6、存在的學(xué)生成績(jī)信息輸出。4、程序運(yùn)行結(jié)果(1) 主界面(2) 學(xué)生成績(jī)錄入界面(3) 通過(guò)學(xué)號(hào)學(xué)生刪除界面(4) 通過(guò)姓名學(xué)生刪除界面(5) 學(xué)生成績(jī)排序(6) 學(xué)生成績(jī)查詢(7) 所有學(xué)生成績(jī)?yōu)g覽(8) 退出5、源程序代碼*/*各模塊分工已注明,未注明模塊為小組成員共同負(fù)責(zé)#in clude #include /* 定義學(xué)生結(jié)構(gòu)體 */ struct Studentchar ID20;/ char Name20;/ char sex5;/char domNum;/ int tel;/ 電話 char courseNo;/ char courseName20;/ float creditHou

7、r;/ double triGrade; / double experiGrade; / double examGrade; / double totalGrade; /學(xué)號(hào)姓名 性別 宿舍號(hào)口號(hào)課程編號(hào)課程名稱 學(xué)分 平時(shí)成績(jī) 占 20%實(shí)驗(yàn)成績(jī) 占 10%卷面成績(jī) 占 70% 綜合成績(jī);/* 聲明學(xué)生數(shù)組及學(xué)生數(shù)量 */struct Student students1000; int num=0;/* 求綜合成績(jī)值 */double tot(struct Student stu)return stu.triGrade*0.2+stu.experiGrade*0.1+stu.examGrad

8、e*0.7; /* 通過(guò)學(xué)號(hào)返回?cái)?shù)組下標(biāo),本模塊由呂澤帥負(fù)責(zé) */ int Student_SearchByIndex(char id) int i;for (i=0;inum;i+)if (strcmp(studentsi.ID,id)=0)return i;return -1;/* 通過(guò)姓名返回?cái)?shù)組下標(biāo),本模塊由呂澤帥負(fù)責(zé)*/int Student_SearchByName(char name)int i;for (i=0;i=60)printf( 該學(xué)生所得學(xué)分為 : %.1f,studentsnum.creditHour);else printf( 該學(xué)生所得學(xué)分為 : 0); stu

9、dentsnum.totalGrade=tot(studentsnum); num+;printf( 是否繼續(xù) ?(y/n);if (getchar()=n)break;/* 通過(guò)學(xué)號(hào)查找刪除學(xué)生信息,本模塊由呂澤帥負(fù)責(zé) */ void Student_Delete()int i;while(1)char id20;int index;printf( 請(qǐng)輸入要?jiǎng)h除的學(xué)生的學(xué)號(hào) :);scanf(%s,&id);getchar();index=Student_SearchByIndex(id);if (index=-1)printf( 學(xué)生不存在 !n);elseprintf(你要?jiǎng)h除的學(xué)生信息

10、為 :n);Student_DisplaySingle(index);printf(是否真的要?jiǎng)h除 ?(y/n);if (getchar()=y)for (i=index;inum-1;i+)把后邊的對(duì)象都向前移動(dòng)studentsi=studentsi+1;/num-;getchar();printf( 是否繼續(xù) ?(y/n);if (getchar()=n)break;/* 通過(guò)姓名查找刪除學(xué)生信息,本模塊由呂澤帥負(fù)責(zé) */ void Name_Delete()int i=0;while(1)char name20;int index;printf( 請(qǐng)輸入要?jiǎng)h除的學(xué)生的姓名 :);scan

11、f(%s,&name);getchar();index=Student_SearchByName(name);if (index=-1)printf( 學(xué)生不存在 !n);elseprintf( 你要?jiǎng)h除的學(xué)生信息為 :n);Student_DisplaySingle(index);printf( 是否真的要?jiǎng)h除 ?(y/n);if (getchar()=y)for (i=index;inum-1;i+)把后邊的對(duì)象都向前移動(dòng)studentsi=studentsi+1;/num-;getchar();printf( 是否繼續(xù) ?(y/n);if (getchar()=n)break;/* 按姓

12、名查詢學(xué)生信息,本模塊由呂澤帥負(fù)責(zé) */void Student_Select()while(1)char name20;int index;printf( 請(qǐng)輸入要查詢的學(xué)生的姓名 :);scanf(%s,&name);getchar();index=Student_SearchByName(name);if (index=-1)printf( 學(xué)生不存在 !n);elseprintf( 你要查詢的學(xué)生信息為 :n); Student_DisplaySingle(index);printf( 是否繼續(xù) ?(y/n);if (getchar()=n)break;/* 按綜合成績(jī)值排序,本模塊由

13、任寶銀負(fù)責(zé) */void Student_SortBytotalGrade()int i,j;struct Student tmp;for (i=0;inum;i+)for (j=1;jnum-i;j+)if (studentsj-1.totalGradestudentsj.totalGrade) tmp=studentsj-1; studentsj-1=studentsj; studentsj=tmp;/* 顯示學(xué)生信息,本模塊由任寶銀和苗振陽(yáng)負(fù)責(zé) */void Student_Display()int i;printf(%10s%10s%10s%10s%10s%10sn, 學(xué)號(hào) , 姓名

14、, 平時(shí)成績(jī) , 實(shí)驗(yàn)成績(jī) , 卷面成績(jī) , 綜合成績(jī) );printf(n);for (i=0;inum;i+)printf(%10s%10s%8.2f%8.2f %8.2f %10.2fn,studentsi.ID,studentsi.Name, studentsi.triGrade,studentsi.experiGrade,studentsi.examGrade,studentsi. totalGrade);/* 將學(xué)生信息從文件讀出 */void IO_ReadInfo()FILE *fp;int i;if (fp=fopen(Database.txt,rb)=NULL)printf

15、( 不能打開文件 !n);return;if (fread(&num,sizeof(int),1,fp)!=1)num=-1;elsefor(i=0;inum;i+)fread(&studentsi,sizeof(struct Student),1,fp);fclose(fp);/* 將學(xué)生信息寫入文件 */void IO_WriteInfo()FILE *fp;int i;if (fp=fopen(Database.txt,wb)=NULL)printf( 不能打開文件 !n);return;if (fwrite(&num,sizeof(int),1,fp)!=1)printf( 寫入文件錯(cuò)

16、誤 !n);for (i=0;inum;i+)if (fwrite(&studentsi,sizeof(struct Student),1,fp)!=1)printf( 寫入文件錯(cuò)誤 !n);fclose(fp);/* 所有信息瀏覽,本模塊由呂澤帥負(fù)責(zé) */void display()int i;char c;printf(%10s%12s%13s%13s%13s%14sn, 學(xué)號(hào) , 姓名 , 平時(shí)成績(jī) , 實(shí)驗(yàn)成績(jī) , 卷 面成績(jī) , 綜合成績(jī) );printf(n);for (i=0;inum;i+)printf(%8s | %10s | %10.2f | %11.2f | %9.2f

17、| %13.2fn,studentsi.ID,studentsi.Name,studentsi.triGrade,studentsi.experiGrade,studentsi.examGrade,studentsi. totalGrade);if(i=num-1) printf( 輸入任意鍵返回 :);c=getchar();break;/* 主程序 */void main()int choice;IO_ReadInfo();while(1)printf(nnnnnnnnnnnnnnnn);printf(ntt 學(xué)生成績(jī)管理系統(tǒng) n);printf(tttt1. 學(xué)生成績(jī)錄入 n);prin

18、tf(tttt2.通過(guò)學(xué)號(hào)學(xué)生刪除 n);printf(tttt3.通過(guò)學(xué)生姓名刪除 n);printf(tttt4.學(xué)生成績(jī)排序 n);printf(tttt5.學(xué)生成績(jī)查詢 n);printf(tttt6.所有學(xué)生成績(jī)?yōu)g覽 n);printf(tttt7.退出 n);printf(ttt 請(qǐng)選擇 (1-7):); scanf(%d,&choice);printf(nnnnnnn);getchar();switch(choice)case 1:Student_Insert();break;case 2:Student_Delete();break;case 3:Name_Delete();break;case 4:Student_SortBy

溫馨提示

  • 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ù)覽,若沒有圖紙預(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)論