版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024智慧城市交通信號控制系統(tǒng)優(yōu)化合同
- 2025年度橙子包裝設(shè)計(jì)與定制生產(chǎn)合同2篇
- 2025年度環(huán)保設(shè)備銷售與服務(wù)合同4篇
- 2024版人身損害賠償協(xié)議
- 二零二四年外墻清洗專業(yè)團(tuán)隊(duì)服務(wù)合同樣本3篇
- 2024-2025學(xué)年高中地理第一章環(huán)境與環(huán)境問題第一節(jié)我們周圍的環(huán)境課時(shí)分層作業(yè)含解析新人教版選修6
- 二零二五版城市綜合體土方運(yùn)輸與臨時(shí)堆場租賃合同3篇
- 二零二五年度餐飲業(yè)人力資源派遣合同范本3篇
- 2025年特色小鎮(zhèn)物業(yè)經(jīng)營權(quán)及配套設(shè)施合作合同3篇
- 二零二五版科技公司股份交易與稅收籌劃合同3篇
- 上海紐約大學(xué)自主招生面試試題綜合素質(zhì)答案技巧
- 辦公家具項(xiàng)目實(shí)施方案、供貨方案
- 2022年物流服務(wù)師職業(yè)技能競賽理論題庫(含答案)
- ?;钒踩僮饕?guī)程
- 連鎖遺傳和遺傳作圖
- DB63∕T 1885-2020 青海省城鎮(zhèn)老舊小區(qū)綜合改造技術(shù)規(guī)程
- 高邊坡施工危險(xiǎn)源辨識及分析
- 中海地產(chǎn)設(shè)計(jì)管理程序
- 簡譜視唱15942
- 《城鎮(zhèn)燃?xì)庠O(shè)施運(yùn)行、維護(hù)和搶修安全技術(shù)規(guī)程》(CJJ51-2006)
- 項(xiàng)目付款審核流程(visio流程圖)
評論
0/150
提交評論