




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、大連民族學院計算機科學與工程學院實驗報告實驗題目: 學生成績管理程序 課程名稱: 程序設計基礎(chǔ)實習 實驗類型:演示性驗證性操作性設計性綜合性專業(yè):班級:學生姓名:學號:實驗日期: 2015年3月30日 實驗地點:計算機學院綜合試驗中心(F-307) 實驗學時: 實驗成績:指導教師簽字: 2015 年 3月 30日一、教學目的與要求:本實習的目的就是要達到能夠靈活運用程序設計基礎(chǔ)所講授內(nèi)容,能夠針對一個需求比較明確的小型問題,設計合理的解決方案,并能夠用編程語言轉(zhuǎn)化為程序以解決實際問題。進一步掌握開發(fā)一個小型實用軟件系統(tǒng)的基本步驟和方法、初步培養(yǎng)良好的編程習慣、掌握調(diào)試代碼的基本方法。具體目標要
2、求:1)學生應該熟練掌握條件分支、循環(huán)控制等語句,掌握函數(shù)的定義與調(diào)用,能以結(jié)構(gòu)體的形式(struct)表示事物對象,并以數(shù)組的形式組織數(shù)據(jù),部分同學可以嘗試用指針、文件等知識;2)學生能夠以比較規(guī)范的方式書寫代碼,能夠了解一些程序在工程上的要求以及為何這樣要求;3)學生能獨立調(diào)試、跟蹤代碼,并能解決常見的編譯錯誤和運行錯誤。二 功能分析1、讀/寫功能:在程序開始時讀取數(shù)據(jù)文件中的數(shù)據(jù)至程序,在程序選擇正常退出時將程序中的數(shù)據(jù)寫回數(shù)據(jù)文件;2、瀏覽功能:實現(xiàn)所有數(shù)據(jù)的顯示即可;3、查找功能:分為按照學號查找(結(jié)果唯一)和按照姓名查找(結(jié)果不唯一)兩個子功能;4、增加功能:首先輸入要增加的記錄的
3、學號,然后判斷此學號是否已經(jīng)存在,如果存在,則不增加,否則增加記錄(放在所有記錄之后即可);5、刪除功能:首先輸入要刪除的記錄的學號,然后判斷此學號是否已經(jīng)存在,如果存在才刪除此條記錄(即數(shù)組數(shù)據(jù)的刪除);6、修改功能:首先輸入要修改的記錄的學號,然后判斷此學號是否已經(jīng)存在,如果存在,則對記錄的信息項進行修改;三數(shù)據(jù)需求(1)學生信息包括:學號、學生姓名、班級。(2)課程信息包括:成績數(shù)學、外語、物理、程序、思修、中傳,共6門四代碼說明/頭文件包含#include #include #include #include #define SrcFile score_141-4.txt/常量定義/成
4、績分別為:數(shù)學、外語、物理、程序、思修、中傳,共6門typedef structchar no11;/學號char name30;/姓名char clname10;/班級名稱int score6;/6門課程的分數(shù)int sum;/本學期總分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);/按學號查找/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;/用于存儲數(shù)據(jù)的數(shù)組int size;/數(shù)組中記錄的數(shù)目char x;size = readFunc(stS);if(size = -1)printf(讀取文件錯誤!n);return 1;char sel;/菜單選項/char no11;/輸入的學號變量/char name20;/int ret;/返回值while(1)mainMenu();printf(請輸入您的選項: 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(請選擇:1-按學號查找,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(輸入錯誤!n);break;return 0;/*函數(shù)說明:從文件中讀數(shù)據(jù)至數(shù)組參數(shù):stS:StScore *類型,指向要操作的學生記錄數(shù)組的指針。返回值:如果讀取成功,則返回stS數(shù)組中的記錄數(shù)目;如果讀取失敗,則返回-1。算法描述:0、SrcFile文件中數(shù)據(jù)格式如下:2013250612 李宣廷 網(wǎng)絡141 69 82 78 81 61 87;1、從SrcFile中讀取至StScore類型的數(shù)組stS;2、如果文件操作失敗,則返回-1,否則每讀取一條,計數(shù)器+1,讀取結(jié)束后,返回該計數(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ù)寫回數(shù)據(jù)文件參數(shù):stS:StScore *類型,指向要操作的學生記錄數(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 *類型,指向要操作的學生記錄數(shù)組的指針n:int類型,表明參數(shù)stS數(shù)組的大小返回值說明:無返回值算法描述:先顯示表頭,之后顯示學號、姓
12、名、班級,接著通過循環(huán)顯示成績數(shù)組、顯示總分,最后每輸出一條記錄換一行。*/void displayAll(StScore stS, int n)int i, j;printf(學號tt姓名t班級t數(shù)學 外語 物理 程序 思修 中傳 總分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(請輸入要添加的學號:n); gets(sno);for(i=0;in;i+)if(strcmp(sno,stSi.no)=0) /判斷學號是否存在,字符串比較不能直接用等號,要用strcmp()函數(shù)。printf(此學號已存在!n);break; strcpy(stSn.no,sno); /拷貝字符串。printf(此學號已添加!n); printf(請輸入姓名:n);gets(stS); printf(請輸入班級:n);gets(stSn.clname);printf(請輸入數(shù)學、外語、物理、程序、思修、中傳
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)/按學號查找信息記錄int x=0;char sno10; printf(請輸入學號:n); gets(sno);for(int i=0;in;i+)if(strcmp(sno,stSi.no)=0) /判斷學號是否存在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(此學號不存在);return 0;int searchByName(StScore stS, int n)/按姓名查找信息記錄char sname20;int a=0; printf(請輸入姓名:n); gets(sname);for(int i=0;in;i+)if(strcmp(sname
17、,stS)=0) /判斷學號是否存在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)/按學號刪除信息int weizhi=-1,i,j;FILE *fp; char sno10; printf(請輸入要刪除的學號:n); g
18、ets(sno);for(i=0;in;i+)if(strcmp(sno,stSi.no)=0) /判斷學號是否存在/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(此學號不存在!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)/修改成績 int x=0,j;FILE *fp;ch
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 25062:2025 EN Systems and software engineering - Systems and software Quality Requirements and Evaluation (SQuaRE) - Common Industry Format (CIF) for reporting usability
- 2025年度跨境電商物流配送服務合作協(xié)議書4篇
- 廣東電力市場2024年半年報告
- 2025年度體育產(chǎn)業(yè)合伙人投資管理合同模板
- 2025年紡織片梭織機合作協(xié)議書
- 2025年度房地產(chǎn)項目開發(fā)貸款合同范本
- 2025年智能物流運輸車輛節(jié)能減排服務協(xié)議
- 美術(shù)教育的社會責任倡導計劃
- 生物課程教學設計工作坊計劃
- 學生美術(shù)能力測評體系建設計劃
- 全國裝配式建筑職業(yè)技能競賽考試題庫
- 2025屆天津市部分學校高三年級八校聯(lián)考英語試題含解析
- 《妊娠期病毒性肝炎臨床實踐指南》解讀
- 水產(chǎn)品冷凍加工原料處理與加工技術(shù)考核試卷
- 浙教版八年級下冊科學第二章 微粒的模型與符號整章思維導圖
- 全新保密協(xié)議模板公安下載(2024版)
- 初一英語英語閱讀理解專項訓練15篇
- GB/T 4008-2024錳硅合金
- DZ∕T 0447-2023 巖溶塌陷調(diào)查規(guī)范(1:50000)(正式版)
- 2024年天津市中考英語試題卷(含答案)
- 《建筑施工圖設計》課件-建筑施工圖立面圖
評論
0/150
提交評論