版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、大連民族學(xué)院計(jì)算機(jī)科學(xué)與工程學(xué)院實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)題目: 學(xué)生成績(jī)管理程序 課程名稱: 程序設(shè)計(jì)基礎(chǔ)實(shí)習(xí) 實(shí)驗(yàn)類型:演示性驗(yàn)證性操作性設(shè)計(jì)性綜合性專業(yè):班級(jí):學(xué)生姓名:學(xué)號(hào):實(shí)驗(yàn)日期: 2015年3月30日 實(shí)驗(yàn)地點(diǎn):計(jì)算機(jī)學(xué)院綜合試驗(yàn)中心(F-307) 實(shí)驗(yàn)學(xué)時(shí): 實(shí)驗(yàn)成績(jī):指導(dǎo)教師簽字: 2015 年 3月 30日一、教學(xué)目的與要求:本實(shí)習(xí)的目的就是要達(dá)到能夠靈活運(yùn)用程序設(shè)計(jì)基礎(chǔ)所講授內(nèi)容,能夠針對(duì)一個(gè)需求比較明確的小型問題,設(shè)計(jì)合理的解決方案,并能夠用編程語言轉(zhuǎn)化為程序以解決實(shí)際問題。進(jìn)一步掌握開發(fā)一個(gè)小型實(shí)用軟件系統(tǒng)的基本步驟和方法、初步培養(yǎng)良好的編程習(xí)慣、掌握調(diào)試代碼的基本方法。具體目標(biāo)要
2、求:1)學(xué)生應(yīng)該熟練掌握條件分支、循環(huán)控制等語句,掌握函數(shù)的定義與調(diào)用,能以結(jié)構(gòu)體的形式(struct)表示事物對(duì)象,并以數(shù)組的形式組織數(shù)據(jù),部分同學(xué)可以嘗試用指針、文件等知識(shí);2)學(xué)生能夠以比較規(guī)范的方式書寫代碼,能夠了解一些程序在工程上的要求以及為何這樣要求;3)學(xué)生能獨(dú)立調(diào)試、跟蹤代碼,并能解決常見的編譯錯(cuò)誤和運(yùn)行錯(cuò)誤。二 功能分析1、讀/寫功能:在程序開始時(shí)讀取數(shù)據(jù)文件中的數(shù)據(jù)至程序,在程序選擇正常退出時(shí)將程序中的數(shù)據(jù)寫回?cái)?shù)據(jù)文件;2、瀏覽功能:實(shí)現(xiàn)所有數(shù)據(jù)的顯示即可;3、查找功能:分為按照學(xué)號(hào)查找(結(jié)果唯一)和按照姓名查找(結(jié)果不唯一)兩個(gè)子功能;4、增加功能:首先輸入要增加的記錄的
3、學(xué)號(hào),然后判斷此學(xué)號(hào)是否已經(jīng)存在,如果存在,則不增加,否則增加記錄(放在所有記錄之后即可);5、刪除功能:首先輸入要?jiǎng)h除的記錄的學(xué)號(hào),然后判斷此學(xué)號(hào)是否已經(jīng)存在,如果存在才刪除此條記錄(即數(shù)組數(shù)據(jù)的刪除);6、修改功能:首先輸入要修改的記錄的學(xué)號(hào),然后判斷此學(xué)號(hào)是否已經(jīng)存在,如果存在,則對(duì)記錄的信息項(xiàng)進(jìn)行修改;三數(shù)據(jù)需求(1)學(xué)生信息包括:學(xué)號(hào)、學(xué)生姓名、班級(jí)。(2)課程信息包括:成績(jī)數(shù)學(xué)、外語、物理、程序、思修、中傳,共6門四代碼說明/頭文件包含#include #include #include #include #define SrcFile score_141-4.txt/常量定義/成
4、績(jī)分別為:數(shù)學(xué)、外語、物理、程序、思修、中傳,共6門typedef structchar no11;/學(xué)號(hào)char name30;/姓名char clname10;/班級(jí)名稱int score6;/6門課程的分?jǐn)?shù)int sum;/本學(xué)期總分StScore;/函數(shù)原型聲明void mainMenu();/主菜單int readFunc(StScore stS);/從文件中讀數(shù)據(jù)至數(shù)組int saveFunc(StScore stS, int n);/將程序中的數(shù)據(jù)寫回到數(shù)據(jù)文件中void displayAll(StScore stS, int n);/顯示功能(顯示所有記錄)void searc
5、hFunc(StScore stS, int n);/查找功能int searchByNo(StScore stS, int n);/按學(xué)號(hào)查找/void displaySingleRecord(StScore stS, int index);/顯示單條記錄int searchByName(StScore stS, int n);/按姓名查找int delFunc(StScore stS, int n);/刪除功能int addFunc(StScore stS, int n);/添加功能int modifyFunc(StScore stS, int n);/修改功能/函數(shù)說明:程序的主函數(shù)in
6、t main()StScore stS300;/用于存儲(chǔ)數(shù)據(jù)的數(shù)組int size;/數(shù)組中記錄的數(shù)目char x;size = readFunc(stS);if(size = -1)printf(讀取文件錯(cuò)誤!n);return 1;char sel;/菜單選項(xiàng)/char no11;/輸入的學(xué)號(hào)變量/char name20;/int ret;/返回值while(1)mainMenu();printf(請(qǐng)輸入您的選項(xiàng): n);fflush(stdin);sel = getche();putchar(n);switch(sel)case 1:/添加記錄addFunc(stS, size);siz
7、e+;break;case 2:/刪除記錄delFunc(stS, size);size-;break;case 3:/修改記錄modifyFunc(stS, size);break;case 4:/查找記錄printf(請(qǐng)選擇:1-按學(xué)號(hào)查找,2-按姓名查找n);x = getche(); putchar(n);switch(x)case 1: searchByNo(stS, size);break;case 2: searchByName(stS, size);break;break;case 5:/顯示記錄displayAll(stS, size);break;case 0:/退出程序s
8、aveFunc(stS, size);return 0;default:printf(輸入錯(cuò)誤!n);break;return 0;/*函數(shù)說明:從文件中讀數(shù)據(jù)至數(shù)組參數(shù):stS:StScore *類型,指向要操作的學(xué)生記錄數(shù)組的指針。返回值:如果讀取成功,則返回stS數(shù)組中的記錄數(shù)目;如果讀取失敗,則返回-1。算法描述:0、SrcFile文件中數(shù)據(jù)格式如下:2013250612 李宣廷 網(wǎng)絡(luò)141 69 82 78 81 61 87;1、從SrcFile中讀取至StScore類型的數(shù)組stS;2、如果文件操作失敗,則返回-1,否則每讀取一條,計(jì)數(shù)器+1,讀取結(jié)束后,返回該計(jì)數(shù)器的值。*/in
9、t readFunc(StScore stS)int i, j;FILE *fp;fp = fopen(SrcFile, r);/只讀形式打開文件if(fp = NULL)return -1;for(i=0; !feof(fp); i+)if(fscanf(fp, %s%s%s, stSi.no, stS, stSi.clname) = EOF)break;stSi.sum = 0;for(j=0; j6; j+)fscanf(fp, %d, &stSi.scorej);stSi.sum += stSi.scorej;fclose(fp);return i;/*函數(shù)說明:把程序中的
10、數(shù)據(jù)寫回?cái)?shù)據(jù)文件參數(shù):stS:StScore *類型,指向要操作的學(xué)生記錄數(shù)組的指針。n:int類型,表明參數(shù)stS數(shù)組的大小返回值:如果寫成功,則返回1,否則返回0。算法描述:將數(shù)組stS中的數(shù)據(jù)全部寫回*/int saveFunc(StScore stS, int n)int i, j;FILE *fp;fp = fopen(SrcFile, w);/只寫形式打開文件if(fp = NULL)return -1;for(i=0; in; i+)fprintf(fp, %s %s %s , stSi.no, stS, stSi.clname);for(j=0; j6; j+)fp
11、rintf(fp, %d , stSi.scorej);fclose(fp);return i;/函數(shù)說明:主菜單程序void mainMenu()printf(-1. 添加記錄 -n);printf(-2. 刪除記錄 -n);printf(-3. 修改記錄 -n);printf(-4. 查找記錄 -n);printf(-5. 顯示記錄 -n);printf(-0. 退出程序 -n);/*函數(shù)說明:完成顯示功能(顯示所有記錄)參數(shù)說明:stS:StScore *類型,指向要操作的學(xué)生記錄數(shù)組的指針n:int類型,表明參數(shù)stS數(shù)組的大小返回值說明:無返回值算法描述:先顯示表頭,之后顯示學(xué)號(hào)、姓
12、名、班級(jí),接著通過循環(huán)顯示成績(jī)數(shù)組、顯示總分,最后每輸出一條記錄換一行。*/void displayAll(StScore stS, int n)int i, j;printf(學(xué)號(hào)tt姓名t班級(jí)t數(shù)學(xué) 外語 物理 程序 思修 中傳 總分tn);printf(-n);for(i=0; in; i+)printf(%st%st%st, stSi.no, stS, stSi.clname);for(j=0; j6; j+)printf(%d , stSi.scorej);printf(%dn, stSi.sum);int addFunc(StScore stS, int n) /添加記
13、錄功能int i;char sno10;FILE *fp;printf(請(qǐng)輸入要添加的學(xué)號(hào):n); gets(sno);for(i=0;in;i+)if(strcmp(sno,stSi.no)=0) /判斷學(xué)號(hào)是否存在,字符串比較不能直接用等號(hào),要用strcmp()函數(shù)。printf(此學(xué)號(hào)已存在!n);break; strcpy(stSn.no,sno); /拷貝字符串。printf(此學(xué)號(hào)已添加!n); printf(請(qǐng)輸入姓名:n);gets(stS); printf(請(qǐng)輸入班級(jí):n);gets(stSn.clname);printf(請(qǐng)輸入數(shù)學(xué)、外語、物理、程序、思修、中傳
14、:n); scanf(%d %d %d %d %d %d,&stSn.score0,&stSn.score1,&stSn.score2,&stSn.score3,&stSn.score4,&stSn.score5);/stSn.sum=stSn.score0+stSn.score1+stSn.score2+stSn.score3+stSn.score4+stSn.score5; fp = fopen(SrcFile, at); /在文件原有內(nèi)容后追加內(nèi)容。if(fp=NULL)printf(文件不存在!);return -1;fprintf(fp, %s %s %s %d %d %d %d %
15、d %d,stSn.no,stS,stSn.clname,stSn.score0,stSn.score1,stSn.score2,stSn.score3,stSn.score4,stSn.score5);fclose(fp);printf(記錄添加成功!n);return 0;int searchByNo(StScore stS, int n)/按學(xué)號(hào)查找信息記錄int x=0;char sno10; printf(請(qǐng)輸入學(xué)號(hào):n); gets(sno);for(int i=0;in;i+)if(strcmp(sno,stSi.no)=0) /判斷學(xué)號(hào)是否存在printf(%s %
16、s %s %d %d %d %d %d %dn,stSi.no,stS,stSi.clname,stSi.score0,stSi.score1,stSi.score2,stSi.score3,stSi.score4,stSi.score5);x+;return 0;if(x=0)printf(此學(xué)號(hào)不存在);return 0;int searchByName(StScore stS, int n)/按姓名查找信息記錄char sname20;int a=0; printf(請(qǐng)輸入姓名:n); gets(sname);for(int i=0;in;i+)if(strcmp(sname
17、,stS)=0) /判斷學(xué)號(hào)是否存在printf(%s %s %s %d %d %d %d %d %dn,stSi.no,stS,stSi.clname,stSi.score0,stSi.score1,stSi.score2,stSi.score3,stSi.score4,stSi.score5); a+;if(a=0)printf(此姓名不存在!n);return 0;int delFunc(StScore stS, int n)/按學(xué)號(hào)刪除信息int weizhi=-1,i,j;FILE *fp; char sno10; printf(請(qǐng)輸入要?jiǎng)h除的學(xué)號(hào):n); g
18、ets(sno);for(i=0;in;i+)if(strcmp(sno,stSi.no)=0) /判斷學(xué)號(hào)是否存在/printf(%s %s %s %d %d %d %d %d %dn,stSi.no,stS,stSi.clname,stSi.score0,stSi.score1,stSi.score2,stSi.score3,stSi.score4,stSi.score5);weizhi=i;break;if(weizhi=-1)printf(此學(xué)號(hào)不存在!n); elseprintf(刪除成功!n);for(i=weizhi;in-1;i+)strcpy(stSi.no,st
19、Si+1.no); strcpy(stS,stSi+1.name); strcpy(stSi.clname,stSi+1.clname); stSi.score0=stSi+1.score0; stSi.score1=stSi+1.score1; stSi.score2=stSi+1.score2; stSi.score3=stSi+1.score3; stSi.score4=stSi+1.score4; stSi.score5=stSi+1.score5;fp = fopen(SrcFile, w);/只寫形式打開文件if(fp = NULL)return -1;for(i=0; in-1; i+)fprintf(fp, %s %s %s , stSi.no, stS, stSi.clname);for(j=0; j6; j+)fprintf(fp, %d , stSi.scorej);fclose(fp);return 0;int modifyFunc(StScore stS, int n)/修改成績(jī) int x=0,j;FILE *fp;ch
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 文學(xué)視角下園林植物的文化寓意探析
- 石河子大學(xué)《土壤肥料學(xué)》2022-2023學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《人事測(cè)評(píng)》2021-2022學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《地籍測(cè)量》2023-2024學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《現(xiàn)場(chǎng)總線控制系統(tǒng)》2022-2023學(xué)年期末試卷
- 沈陽理工大學(xué)《汽車檢測(cè)與診斷技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《計(jì)算機(jī)程序設(shè)計(jì)》2022-2023學(xué)年期末試卷
- 沈陽理工大學(xué)《工程制圖A》2021-2022學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《大學(xué)生健康教育》2021-2022學(xué)年第一學(xué)期期末試卷
- 光合同化物的下運(yùn)途徑
- 人教新課標(biāo)四年級(jí)上冊(cè)數(shù)學(xué)《06用“五入”法求商》說課稿
- 人教版二年級(jí)數(shù)學(xué)上冊(cè)第六單元《表內(nèi)乘法(二)》說課稿(含14課時(shí))
- CJT 482-2015 城市軌道交通橋梁球型鋼支座
- 我國(guó)不銹鋼管行業(yè)現(xiàn)狀分析
- 2024年關(guān)于印發(fā)全國(guó)社會(huì)心理服務(wù)體系建設(shè)試點(diǎn)5篇
- 維修水池合同協(xié)議書
- 2024年中級(jí)經(jīng)濟(jì)師考試題庫含答案(完整版)
- 高效餐飲服務(wù)承諾
- 2024年05月浙江嘉興職業(yè)技術(shù)學(xué)院海鹽學(xué)院招考聘用高層次緊缺人才45人筆試歷年高頻考點(diǎn)(難、易錯(cuò)點(diǎn))附帶答案詳解
- FZ∕T 73037-2019 針織運(yùn)動(dòng)襪行業(yè)標(biāo)準(zhǔn)
- 食品風(fēng)味研究專題智慧樹知到期末考試答案章節(jié)答案2024年中國(guó)農(nóng)業(yè)大學(xué)
評(píng)論
0/150
提交評(píng)論