學生成績管理系統(tǒng)--課程設(shè)計報告_第1頁
學生成績管理系統(tǒng)--課程設(shè)計報告_第2頁
學生成績管理系統(tǒng)--課程設(shè)計報告_第3頁
學生成績管理系統(tǒng)--課程設(shè)計報告_第4頁
學生成績管理系統(tǒng)--課程設(shè)計報告_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù) 據(jù) 結(jié) 構(gòu)課 程 設(shè) 計 報 告課題名稱學生成績管理系統(tǒng) 姓名 學院 系科班級 指導老師 日期2013年1月17日 目錄一、問題描述 3二、基本要求 3三、設(shè)計目的4四、概念設(shè)計4五、詳細設(shè)計 5n 1主要數(shù)據(jù)結(jié)構(gòu) 5n 2模塊功能 5n 3調(diào)用關(guān)系 5六、源程序5七、測試結(jié)果12八、心得體會15九、參考文獻16學生成績管理系統(tǒng)一、 問題描述現(xiàn)有學生成績信息文件1(1.txt),內(nèi)容如下姓名    學號   語文  數(shù)學   英語     張明明  01

2、0;    67    78      82李成友  02     78    91      88張輝燦  03     68    82      56王露   04   &#

3、160; 56    45      77陳東明  05     67    38      47.      .      .     .       學生成績信息文件2(2.txt),內(nèi)

4、容如下:姓名    學號   語文  數(shù)學   英語     陳果   31     57    68     82李華明  32     88    90      68張明東  33  

5、   48    42      56李明國  34     50    45      87陳道亮  35     47    58      77.      .  

6、    .     .       二、 基本要求試編寫一管理系統(tǒng),要求如下:1) 實現(xiàn)對兩個文件數(shù)據(jù)進行合并,生成新文件3.txt2) 抽取出三科成績中有補考的學生并保存在一個新文件4.txt3) 對合并后的文件3.txt中的數(shù)據(jù)按總分降序排序(至少采用兩種排序方法實現(xiàn))4) 輸入一個學生姓名后,能查找到此學生的信息并輸出結(jié)果(至少采用兩種查找方法實現(xiàn))5) 要求使用結(jié)構(gòu)體和數(shù)組實現(xiàn)上述要求.三、 設(shè)計目的1)培養(yǎng)學生綜合程序設(shè)計的能力,訓練學生靈活應(yīng)用所學數(shù)據(jù)結(jié)

7、構(gòu)知識,獨立完成問題分析、總體設(shè)計、詳細設(shè)計和編程實現(xiàn)等軟件開發(fā)全過程的綜合實踐能力。2)鞏固、深化學生的理論知識,提高編程水平,培養(yǎng)嚴謹?shù)目茖W態(tài)度和良好的學習作風。為今后學習其他計算機課程打下基礎(chǔ)。3)將書本上的理論知識和工作、生產(chǎn)實際有機地結(jié)合起來,從而鍛煉學生分析問題、解決實際問題的能力,提高編程序能力和創(chuàng)新意識。四、 概要設(shè)計學生成績管理系統(tǒng)讀取文件1讀取文件2合并兩文件放在文件3把補考的放在文件4退出查找文件中的人信息五、 詳細設(shè)計1)主要數(shù)據(jù)結(jié)構(gòu):struct student char name6;int num;long int chi;long int math;long in

8、t eng;long int sum;2)模塊功能:合并模板、提取模板、排序模板、查詢模板、模塊功能1、生成文件3:實現(xiàn)對兩個文件數(shù)據(jù)進行合并,生成新文件3.txt;2、查看文件3:顯示文件3里的所有信息;3、生成文件補考文件4:抽取出三科成績中有補考的學生并保存在一個新文件4.txt; 4、查看文件4:顯示文件4里的所有信息;5、排序后的文件3:對合并后的文件3.txt中的數(shù)據(jù)按總分降序排序(冒泡、插入); 6、查找學生信息:按姓名查找學生的信息并輸出結(jié)果(順序、折半);3)調(diào)用關(guān)系主函數(shù)可調(diào)用其它函數(shù)六、 源程序#include<stdio.h>#include<stdl

9、ib.h>struct student char name6;int num;long int chi;long int math;long int eng;long int sum;struct student stu1100,stu2100,stu3100,stu4100,t,tmp;FILE *fp;int i,j;void creat1() /對1.txt的成績進行讀取 int i; for(i=1;i<=5;i+) fscanf(fp,"%s %d %ld %ld %ld",,&stu1i.num,&stu1i.ch

10、i,&stu1i.math,&stu1i.eng); printf("n1.txt中學生的成績?nèi)缦?n");printf("姓名 學號 語文 數(shù)學 英語n");for(i=1;i<=5;i+) printf("%s %d %ld %ld %ldn",,stu1i.num,stu1i.chi,stu1i.math,stu1i.eng);void creat2() /對2.txt的成績進行讀取 int i; for(j=1;j<=5;j+) fscanf(fp,"%s %d %ld

11、 %ld %ld",,&stu2j.num,&stu2j.chi,&stu2j.math,&stu2j.eng); printf("n2.txt中學生的成績?nèi)缦?n"); printf("姓名 學號 語文 數(shù)學 英語n"); for(j=1;j<=5;j+) printf("%s %d %ld %ld %ldn",,stu2j.num,stu2j.chi,stu2j.math,stu2j.eng);void hb() /把合并后的成績賦值到新的結(jié)構(gòu)

12、體數(shù)組stu3a中 int i;for(i=1;i<=5;i+) stu3i=stu1i;for(i=6;i<=6+j;i+) stu3i=stu2i-5; printf("n3.txt中所有學生的成績名單:n");printf("姓名 學號 語文 數(shù)學 英語 總分n"); for(i=1;i<=10;i+) stu3i.sum=stu3i.math+stu3i.eng+stu3i.chi; printf("%s %d %ld %ld %ld %ldn",,stu3i.num,stu3i.chi,

13、stu3i.math,stu3i.eng,stu3i.sum); fprintf(fp,"%s %d %ld %ld %ld %ldn",,stu3i.num,stu3i.chi,stu3i.math,stu3i.eng,stu3i.sum); int extract() /把成績中需要補考的學生成績保存在數(shù)組stu4j中 int j; j=1;for(i=1;i<=10;i+)if(stu3i.math<60|stu3i.eng<60|stu3i.chi<60)stu4j=stu3i;j+;printf("n補考學生成

14、績名單如下:n");printf("姓名 學號 語文 數(shù)學 英語n"); for(i=1;i<j;i+) fprintf(fp,"%5s %3d %4d %4d %4n",,stu4i.num,stu4i.chi,stu4i.math,stu4i.eng); printf("%5s %3d %4d %4d %4dn",,stu4i.num,stu4i.chi,stu4i.math,stu4i.eng);void sort1() /冒泡排序 for(i=1;i<=10;i+)

15、for(j=i+1;j<=10;j+) if(stu3j.sum>stu3i.sum) t=stu3j; stu3j=stu3i; stu3i=t; printf("n按總分由高到低排序(冒泡)后的成績?nèi)缦?n"); printf("姓名 學號 語文 數(shù)學 英語 總分n"); for(i=1;i<=10;i+)printf("%s %d %ld %ld %ld %ldn",,stu3i.num,stu3i.chi,stu3i.math,stu3i.eng,stu3i.sum);void sort2

16、() /插入排序 for(i=2;i<=10;i+) if(stu3i.sum>stu3i-1.sum)tmp=stu3i;stu3i=stu3i-1;for(j=i-1;j>0&&tmp.sum>stu3j.sum;j-)stu3j+1=stu3j;stu3j+1=tmp;printf("n按總分由高到低排序(插入)后的成績?nèi)缦?n"); printf("姓名 學號 語文 數(shù)學 英語 總分n"); for(i=1;i<=10;i+)printf("%s %d %ld %ld %ld %ldn&qu

17、ot;,,stu3i.num,stu3i.chi,stu3i.math,stu3i.eng,stu3i.sum);void search1() /名字查找方式(順序查找) char fname6; printf("n請輸入要查找學生的姓名:"); scanf("%s",&fname); for(i=1;i<=10;i+) if(!strcmp(,fname) printf("n你所查找(名字順序)的學生成績?nèi)缦?n"); printf("姓名 學號 語文 數(shù)學 英語 總分

18、n"); printf("%s %d %ld %ld %ld %ldn",,stu3i.num,stu3i.chi,stu3i.math,stu3i.eng,stu3i.sum); void search2() / 名字查找方式(折半查找) char fname6; int mid,low=1; int high=10; printf("n請輸入要查找的學生的姓名:"); scanf("%s",&fname); while(low<=high) mid=(low+high)/2; if(st

19、rcmp(,fname)=0) break; else if(strcmp(fname,)>0) high=mid; else low=mid; printf("n你所查找(名字折半)的學生成績?nèi)缦?n"); printf("姓名 學號 語文 數(shù)學 英語 總分n"); printf("%s %d %ld %ld %ld %ldn",,stu3mid.num,stu3mid.chi,stu3mid.math,stu3mid.eng,stu3mid.sum);v

20、oid main() char digit;printf("*系統(tǒng)功能菜單* n");printf(" - - n");printf(" * n");printf(" *1. 讀取3.txt的成績(合并) * *2. 讀取4.txt的成績(補考) * n");printf(" * n"); printf(" *3. 按總分排序(冒泡) * *4. 按總分排序(插入) * n");printf(" * n");printf(" *5. 按名字查找

21、(順序) * *6. 按名字查找(折半) * n");printf(" * n");printf(" *7. 退出系統(tǒng) * n");printf(" * n");printf(" - - n");printf("請選擇菜單編號:");scanf("%c",&digit);switch(digit) case '1': fp=fopen("d:1.txt","r+"); creat1(); fclose(

22、fp); fp=fopen("d:2.txt","r+"); creat2(); fclose(fp); fp=fopen("d:3.txt","w"); hb(); fclose(fp); break;case '2': fp=fopen("d:1.txt","r+"); creat1(); fclose(fp); fp=fopen("d:2.txt","r+"); creat2(); fclose(fp); fp=f

23、open("d:3.txt","w"); hb(); fclose(fp); fp=fopen("d:4.txt","w"); extract(); fclose(fp); break;case '3': fp=fopen("d:1.txt","r+"); creat1(); fclose(fp); fp=fopen("d:2.txt","r+"); creat2(); fclose(fp); fp=fopen(&quo

24、t;d:3.txt","w"); hb(); fclose(fp); sort1(); break;case '4': fp=fopen("d:1.txt","r+"); creat1(); fclose(fp); fp=fopen("d:2.txt","r+"); creat2(); fclose(fp); fp=fopen("d:3.txt","w"); hb(); fclose(fp); sort2(); break;case '5': fp=fopen("d:1.txt","r+"); creat1(); fclose(fp); fp=fopen("d:2.txt","r+"); creat2(); fclose(fp); fp=fopen("d:3.txt&qu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論