C語言程序報(bào)告學(xué)生學(xué)籍信息管理系統(tǒng)_第1頁
C語言程序報(bào)告學(xué)生學(xué)籍信息管理系統(tǒng)_第2頁
C語言程序報(bào)告學(xué)生學(xué)籍信息管理系統(tǒng)_第3頁
C語言程序報(bào)告學(xué)生學(xué)籍信息管理系統(tǒng)_第4頁
C語言程序報(bào)告學(xué)生學(xué)籍信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C語言課程設(shè)計(jì)院系:工程學(xué)院姓名:劉若愚班號: 05205235指導(dǎo)教師:王老師2007年 9月C 語言程序設(shè)計(jì)報(bào)告第一部分 題目要求程序設(shè)計(jì)題目:學(xué)生學(xué)籍信息管理系統(tǒng)設(shè)計(jì)【要求】使用下面的數(shù)據(jù),設(shè)計(jì)一個簡單的學(xué)籍信息管理系統(tǒng)。學(xué)生基本信息文件及其內(nèi)容:學(xué)號 姓名 性別 宿舍號碼電話號碼07 張園園女 102學(xué)生成績基本信息文件及其內(nèi)容:學(xué)號 課程編號 課程名稱 學(xué)分 平時(shí)成績 試驗(yàn)成績 卷面成績01 A01大學(xué)物理366788202 B03高等數(shù)學(xué) 478-19001 B03高等數(shù)學(xué) 445-18802 C01VF 3657666功能要求及說明:數(shù)據(jù)錄入功能: 錄入每個學(xué)生的學(xué)號、 課程編號

2、、 課程名稱、 學(xué)分、平時(shí)成績、試驗(yàn)成績、卷面成績共7 個數(shù)據(jù)。綜合成績、實(shí)得分根據(jù)條件自動運(yùn)算。綜合成績的計(jì)算:如果本課程的試驗(yàn)成績?yōu)?1,則表示無試驗(yàn),綜合成績=平時(shí)成績*30%+卷面成績*70%;如果試驗(yàn)成績不為 -1,表示本課程有試驗(yàn),綜合成績=平時(shí)成績*15%+試驗(yàn)成績*15%+卷面成績*70%。實(shí)得學(xué)分的計(jì)算:采用等級學(xué)分制。綜合成績在90-100之間,應(yīng)得學(xué)分= 學(xué)分 *100%;綜合成績在80-90之間,應(yīng)得學(xué)分=-學(xué)分*80%;綜合成績在70-80之間,應(yīng)得學(xué)分=學(xué)分*75%;綜合成績在60-70之間,應(yīng)得學(xué)分=學(xué)分*60%;綜合成績在60 以下,應(yīng)得學(xué)分=學(xué)分 *0%。(

3、2)查詢功能;分為學(xué)生基本情況查詢和成績查詢兩種1學(xué)生基本情況查詢:輸入一個學(xué)生的學(xué)號活姓名, 查出此生的基本信息并顯示輸輸入一個宿舍號碼, 可查詢出本室所有的學(xué)生的基本信息并顯示輸出。成績查詢:輸入一個學(xué)號時(shí),查詢出此生的所有課程情況,格式如下:學(xué)號: 姓名 ;課程編號: 課程名稱: 綜合成績: 實(shí)得學(xué)分:課程編號: 課程名稱 :綜合成績 : 實(shí)得學(xué)分 :課程編號 ; 課程名稱 :綜合成績 : 實(shí)得學(xué)分 :共修: XX 科, 實(shí)得總學(xué)分為: XXX刪除功能:當(dāng)在中刪除一個學(xué)生時(shí),自動地在中刪除此人所有的信息排序功能:能實(shí)現(xiàn)選擇按綜合成績或?qū)嵉脤W(xué)分升序或降序排序并顯示數(shù)據(jù)。第二部分需求分析根據(jù)

4、題目要求, 由于學(xué)生信息是存放在文件中, 所以應(yīng)該提供文件的輸入、輸出等操作;在程序中要瀏覽學(xué)生的信息,應(yīng)提供顯示、查找、排序等操作;另外還應(yīng)該提供鍵盤式選擇菜單實(shí)現(xiàn)功能選擇。第三部分 總體設(shè)計(jì)根據(jù)上面的需求分析,可以將這個系統(tǒng)的設(shè)計(jì)分為以下幾個模塊:學(xué)生成績管理系統(tǒng)第四部分詳細(xì)設(shè)計(jì)主函數(shù) 主函數(shù)設(shè)計(jì)一般要簡單,只提供輸入,處理和輸出部分的函數(shù)調(diào)用。其中各功能模塊用菜單方式選擇。程序#include<> void menu() int n,w;doputs("tt*MENU*nn");puts("t ");puts("t "

5、;);puts("t ");puts("nntt*n");/ 對選擇的數(shù)字作判斷/ 瀏覽模塊/ 輸入模塊/ 查找模塊/ 瀏覽模塊/ 輸入模塊/ 查找模塊 /printf("Choice your number(1-7): bbbb");scanf("%d",&n);if(n<1|n>7)w=1;getchar();else w=0;while (w=1);switch(n)case 1: browse();break;case 2: enter();break;case 3: search();

6、break;case 4: browse2();break;case 5: enter2();break;case 6: search2();break;case 7: exit(0);break;/ 退出 /main() menu();2各功能模塊設(shè)計(jì)輸入模塊:先采用結(jié)構(gòu)體數(shù)組存儲數(shù)據(jù)struct a int xuehao;char name15;char sex10;int shushenum;int telenum;a10;struct bint xuehao;int kechenghao;char kechengming15;int xuefen;int pingshichengji;

7、int shiyanchengji;int juanmianchengji;int zonghechengji;int shidechengji;b10;a10.b10 中每個數(shù)組元素對應(yīng)一個學(xué)生void jisuan()int i, n,n1, n2, n3,n4;for(i=0;i<10;i+)if (bi.shiyanchengji=-1)bi.zonghechengji=bi.pingshichengji*+bi.juanmianchengji*;break;if (bi.shiyanchengji!=-1)bi.zonghechengji=bi.pingshichengji*+

8、bi.juanmianchengji*+bi.shiyanchengji*;break;if(bi.zonghechengji>90&&bi.zonghechengji<100 )n4=bi.xuefen;bi.shidechengji=(n4)*(1);break;else if (bi.zonghechengji>80&&bi.zonghechengji<90) n3=bi.xuefen;bi.shidechengji=(n3)*;break;else if(bi.zonghechengji>70&&bi.zon

9、ghechengji<80) n2=bi.xuefen;bi.shidechengji=(n2)*;break;else if(bi.zonghechengji>60&bi.zonghechengji<70) n1=bi.xuefen;bi.shidechengji=(n1)*;break;else if (bi.zonghechengji<60)n=bi.xuefen;bi.shidechengji=n*0;break; 此簡單程序計(jì)算綜合成績與實(shí)得學(xué)分【程序】enter() int i,n;printf("How many chengjijiben

10、xinxi datas(0-%d):",10);scanf("%d",&n);printf("n Enter data now nn");for(i=0;i<n;i+)printf("nInput %dth chengjijibenxinxi record.n”,i+1);input(i);調(diào)用輸入函數(shù)if(i!=0) save(n);調(diào)用保存函數(shù)printf_back();一個任務(wù)結(jié)束時(shí)讓用戶選擇是瀏覽還是返瀏覽模塊:該模塊的功能是顯示所有學(xué)生記錄信息。browse()瀏覽全部模塊 int i,j,n;n=load()

11、;力口載t己錄printf_face();調(diào)用顯示數(shù)據(jù)結(jié)構(gòu)項(xiàng)目函數(shù)for(i=0;i<n;i+) if(i%10=0) printf("nnPass any key to contiune");目的是分屏顯示getch(); puts("nn");printf_one(i);printf("n");調(diào)用顯示一個記錄的函數(shù)printf("tThere are %d record.n",n);printf("nPass any key to back");getch(); 按任意鍵menu()

12、;browse2() 該瀏覽模塊的功能是顯示所有學(xué)生的成績基本信息 int i,j,n;n=load2();printf_face2();for(i=0;i<n;i+) if(i%10=0) printf("nnPass any key to contiune.");getch(); puts("nn");printf_one2(i);printf("n");printf("tThere are %d record.n",n);printf("nPass any key to back")

13、;getch();menu();查找模塊;該模塊的功能是根據(jù)輸入的學(xué)生姓名查找對應(yīng)的記錄,找到以后,增加刪除功能【流程圖】search()查找學(xué)生基本信息的模塊 int i,n,k,w1=1,w2,w3,w4;struct a s;n=load();dodo k=-1;printf("nnEnter number that you want to search! number");scanf("%d",& 輸入要修改的數(shù)據(jù)的學(xué)號printf_face(); 調(diào)用顯示數(shù)據(jù)結(jié)構(gòu)項(xiàng)目函數(shù)for(i=0;i<n;i+) 查找要修改的數(shù)據(jù)if=ai.

14、xuehao)k=i; printf_one(k);break; 調(diào)用顯示一個記錄的函數(shù)if(k=-1)printf("nnNo exist!please");printf("nnAre you againnt 1).Again 2)No and back bbb);scanf("%d",&w1);保證在第一次找的的基礎(chǔ)上再查找找不到時(shí)能退出while(k=-1&&w1=1); 如果 W1 不等于 1 時(shí)直返回search2() 查找學(xué)生成績基本信息的模塊 int i,n,k,w1=1,w2,w3,w4;struct a

15、 s;n=load2();dodo k=-1;printf("nnEnter number that you want to search! number");scanf("%d",&printf_face2();for(i=0;i<n;i+)if=ai.xuehao)k=i; printf_one2(k);break;if(k=-1)printf("nnNo exist!please");printf("nnAre you againnt 1).Again 2)No and back bbb");s

16、canf("%d",&w1);while(k=-1&&w1=1);刪除模塊:該模塊的功能是先顯示所有學(xué)生的信息,考慮到記錄的數(shù)據(jù)較多,建議采用分屏顯示【程序】Void del()排序模塊:該功能模塊的功能是要求將學(xué)生記錄的綜合成績或?qū)嵉梅稚蚧蚪敌蚺判虿@示數(shù)據(jù)。假一殳這里采用選擇法排序。 【流程圖】用選擇法排序保存返回主菜單【程序】Void order()排序模塊int I,j,n;Struct student s;n=load();For(i=0;i<n-1;i+)Save(n);Puts( "nn " );Printf

17、_back();設(shè)計(jì)出的程序如下#include<>void menu() int n,w;doputs("tt*MENU*nn");puts("t ");puts("t ");puts("t ");puts("nntt*n");printf("Choice your number(1-7): bbbb");scanf("%d",&n);if(n<1|n>7)w=1;getchar();else w=0;while (w=1

18、);switch(n)case 1: browse();break;case 2: enter();break;case 3: search();break;case 4: browse2();break;case 5: enter2();break;case 6: search2();break;case 7: exit(0);break; main() menu();struct a int xuehao;char name15;char sex10;int shushenum;int telenum;a10;struct bint xuehao;int kechenghao;char k

19、echengming15;int xuefen;int pingshichengji;int shiyanchengji;int juanmianchengji;int zonghechengji;int shidechengji;b10;void jisuan()int i, n,n1, n2, n3,n4;for(i=0;i<10;i+) if (bi.shiyanchengji=-1)bi.zonghechengji=bi.pingshichengji*+bi.juanmianchengji*;break;if (bi.shiyanchengji!=-1)bi.zonghechen

20、gji=bi.pingshichengji*+bi.juanmianchengji*+bi.shiy anchengji*;break;if(bi.zonghechengji>90&&bi.zonghechengji<100 )n4=bi.xuefen;bi.shidechengji=(n4)*(1);break;else if (bi.zonghechengji>80&&bi.zonghechengji<90) n3=bi.xuefen;bi.shidechengji=(n3)*;break;else if(bi.zonghecheng

21、ji>70&&bi.zonghechengji<80) n2=bi.xuefen;bi.shidechengji=(n2)*;break;else if(bi.zonghechengji>60&bi.zonghechengji<70) n1=bi.xuefen;bi.shidechengji=(n1)*;break;else if (bi.zonghechengji<60)n=bi.xuefen;bi.shidechengji=n*0;break;enter() int i,n;printf("How many chengjiji

22、benxinxi datas(0-%d):",10);scanf("%d",&n);printf("n Enter data now nn");for(i=0;i<n;i+)printf("nInput %dth chengjijibenxinxi record.n",i+1);input(i);if(i!=0) save(n);printf_back(); browse() int i,j,n;n=load();printf_face();for(i=0;i<n;i+) if(i%10=0) print

23、f("nnPass any key to contiune.");getch(); puts("nn");printf_one(i);printf("n");printf("tThere are %d record.n",n);printf("nPass any key to back");getch();menu();search() int i,n,k,w1=1,w2,w3,w4;struct a s;n=load();dodo k=-1;printf("nnEnter numbe

24、r that you want to search! number"); scanf("%d",&printf_face();for(i=0;i<n;i+)if=ai.xuehao)k=i; printf_one(k);break;if(k=-1)printf("nnNo exist!please");printf("nnAre you againnt 1).Again 2)No and back bbb");scanf("%d",&w1);while(k=-1&&w

25、1=1);w4=0;w3=0;if(k!=-1) printf("nnWhat do you want to dont another menu bbb");scanf("%d",&w2);switch(w2) case 2:w3=modify(k);break;case 3: printf("nAre you surent 1).sure 2).No and back bbb");scanf("%d",&w4);if(w4=1) bk.xuehao=0;bk.kechenghao=0;strcpy

26、(bk.kechengming,"xxxx");bk.xuefen=0;bk.pingshichengji=0;bk.shiyanchengji=0;bk.juanmianchengji=0;bk.zonghechengji=0;bk.shidechengji=0;ai.xuehao=0;strcpy(,"xxxx");strcpy( ai.sex,"xxxx");ai.shushenum=0;ai.telenum=0;break;if(w3=1|w4=1)save(n);printf("nnSuccessfu

27、l.");printf("nnWhat do you want to dont 1).Search another2).Back bbb");scanf("%d",&w2); while(w2=1);menu();input (int i) scanf("%d%d%s%d%d%d%d%d%d",&bi.xuehao,&bi.kechenghao,bi.kechengming,&bi.xuefen,&bi.pingshichengji,&bi.shiyanchengji,&

28、;bi.juanmianchengji);jisuan();save(int n) FILE *fp;int i;if(fp=fopen("","wb")=NULL) printf("nCannot open filen");return NULL;for(i=0;i<n;i+)if(ai.xuehao!=0)if(fwrite(&bi,sizeof(struct b),1,fp)!=1)printf("file write errorn");fclose(fp);load() FILE *fp;in

29、t i;if(fp=fopen("","rb")=NULL)printf("nCannot open filen");return NULL;for(i=0;!feof(fp);i+)fread(&bi,sizeof(struct b),1,fp);fclose(fp);return(i-1);printf_face() printf("nt xuehao kechenghao kechengming xuefen pingshichengjishiyanchengji juanmianchengji zonghec

30、hengji shidechengji "); printf_one(int i)printf("%5d%5d%15s%5d%5d%5d%5d%5d%5d",bi.xuehao,bi.kechenghao,bi.kechengming,bi.xuefen,bi.pingshichengji,bi.shiyanchengji,bi.juanmianchengji,bi.zonghechengji,bi.shidechengji);printf_back() int k,w;printf("nntSuccessful.nn");printf(&qu

31、ot;What do you want to donnt 1).Browse all now 2).Back; bbb");scanf("%d",&w);if(w=1) browse();else menu();modify(int i) int c,w1=2;do puts("nmodify by=>nn");puts(" 1).xuehao 2).kechenghao 3).kechengming 4).xuefen5).pingshichengji 6).shiyanchengji 7).juanmiancheng

32、ji 8)zonghechengji 9)shidechengji10).all data 11).cancel and back ");printf("Which you needed: bbbb");scanf("%d",&c);if(c>11|c<1)puts("nChoice error!Please again!");getchar();while(c>11|c<1);do switch(c)case 1:printf("xuehao:");scanf("

33、;%d",&bi.xuehao);break;case 2:printf("kechenghao:");scanf("%d",&bi.kechenghao);break;case 3:printf("kechengming:");scanf("%s",bi.kechengming);break;case 4:printf("xuefen:");scanf("%d",&bi.xuefen);break;case5:printf("pi

34、ngshichengji:");scanf("%d",&bi.pingshichengji);break;case 6:printf("shiyanchengji:");scanf("%d",&bi.shiyanchengji);break;case7:printf("juanmianchengji:");scanf("%d",&bi.juanmianchengji);break;case 8:input(i);break;case 9:menu();break

35、;puts("nNow:n");printf_face();printf_one(i);printf("nAre you surennt 1).Sure 2).No and remodify 3).Backwithout save in this time bbb");scanf("%d",&w1); while(w1=2);return(w1);enter2() int i,n;printf("How many xue sheng ji ben xin xi(0-%d):",10);scanf("

36、;%d",&n);printf("n Enter data now nn");for(i=0;i<n;i+)printf("nInput %dth xue sheng ji ben xin xi record.n",i+1);input2(i);if(i!=0) save2(n);printf_back2();browse2() int i,j,n;n=load2();printf_face2();for(i=0;i<n;i+) if(i%10=0) printf("nnPass any key to contiu

37、ne.");getch(); puts("nn");printf_one2(i);printf("n");printf("tThere are %d record.n",n);printf("nPass any key to back");getch();menu();search2() int i,n,k,w1=1,w2,w3,w4;struct a s;n=load2();dodo k=-1;number");printf("nnEnter number that you want

38、 to search! scanf("%d",&printf_face2();for(i=0;i<n;i+)if=ai.xuehao)k=i; printf_one2(k);break;if(k=-1)printf("nnNo exist!please");printf("nnAre you againnt 1).Again 2)No and back bbb");scanf("%d",&w1);while(k=-1&&w1=1);w4=0;w3=0;if(k!=-1) pri

39、ntf("nnWhat do you want to dont another menu bbb");scanf("%d",&w2);switch(w2) case 2:w3=modify2(k);break;if(w3=1|w4=1)save2(n);printf("nnSuccessful.");printf("nnWhat do you want to dont 1).Search another2).Back bbb");scanf("%d",&w2); while(w2

40、=1);menu();input2 (int i) scanf("%d %s %s %d %d",&ai.xuehao,,ai.sex,&ai.shushenum,ai.telenum );save2(int n) FILE *fp;int i;if(fp=fopen("","wb")=NULL) printf("nCannot open filen");return NULL;for(i=0;i<n;i+)if(ai.xuehao!=0)if(fwrite(&ai,si

41、zeof(struct a),1,fp)!=1)printf("file write errorn");fclose(fp);load2() FILE *fp;int i;if(fp=fopen("","rb")=NULL)printf("nCannot open filen");return NULL;for(i=0;!feof(fp);i+)fread(&ai,sizeof(struct a),1,fp);fclose(fp);return(i-1);printf_face2() printf(&quo

42、t;nt xue sheng ji ben xin xi n");printf_one2(int i)printf("%d%s%s%d%d",ai.xuehao,,ai.sex,ai.shushenum,ai.telenum);printf_back2() int k,w;printf("nntSuccessful.nn");printf("What do you want to donnt 1).Browse all now 2).Back; bbb");scanf("%d",&w);if(w=1) browse2();else menu();modify2(int i) int c,w1=2;do puts("nmodify by=>nn&qu

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論