




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、題目:新生報到系統(tǒng)一、課程設計時間 201011第2學期第15周,即6月13日6月17日,共計1周,20學時。二、課程設計內(nèi)容 用c語言編寫軟件完成以下任務:(1) 錄入新生的信息(學號、姓名、來自省份、專業(yè)、高考分數(shù)),并保存到磁盤文件中;(2) 新生報到簽到;(3) 轉(zhuǎn)專業(yè);(4) 查詢統(tǒng)計:可以按專業(yè)或來自省份查詢符合條件的所有學生;(5) 退出。三、課程設計要求1. 程序質(zhì)量:l 貫徹結(jié)構(gòu)化的程序設計思想。l 用戶界面友好,功能明確,操作方便,用戶界面中的菜單至少應包括“新生信息錄入”、“新生報到”、“轉(zhuǎn)專業(yè)”、“查詢統(tǒng)計”等選項。l 代碼應適當縮進,并給出必要的注釋,以增強程序的可讀
2、性。2. 課程設計說明書:課程結(jié)束后,上交課程設計說明書和源程序。課程設計說明書的格式和內(nèi)容參見提供的模板。四、指導教師和學生簽字指導教師:_ 學生簽名:_五、成績六、教師評語沈陽航空航天大學設計用紙 目錄一、需求分析1二、設計分析2三、主要界面截圖9四、技術要點12五、個人總結(jié)14六、參考文獻15七、源程序1626沈陽航空航天大學設計用紙一、需求分析根據(jù)任務書給定的“課程設計內(nèi)容”和“課程設計要求”作如下的需求分析。該系統(tǒng)是一個較典型的數(shù)據(jù)管理系統(tǒng),其使用者被假定為某辦公室的新生報到的管理人員,系統(tǒng)應該具有準確、穩(wěn)定、功能齊全的特點。1.準確性分析:系統(tǒng)管理的數(shù)據(jù)涉及到學院的所有同學,數(shù)據(jù)量
3、較大且是一種基礎性數(shù)據(jù),能夠為其它方面的學生管理工作提供重要參考,所以該程序錄入的信息必須準確,該程序錄入信息后,一定要查詢錄入是否準確,然后才能進行任何步驟,這樣就確保了錄入信息的準確性。 2. 穩(wěn)定性分析:指系統(tǒng)比較健壯,只要是用戶的合理操作,系統(tǒng)都應給出合理正確的回應,而不是出現(xiàn)令用戶感到意外的系統(tǒng)錯誤或系統(tǒng)崩潰。3. 主要功能分析:(1)數(shù)據(jù)輸入:允許用戶輸入學號、姓名、專業(yè)、省份、高考分數(shù)。(2)數(shù)據(jù)保存:對于輸入的數(shù)據(jù),或被修改的數(shù)據(jù)應該保存到某個磁盤文件中,實現(xiàn)永久存儲。文件的具體格式題目未作具體要求,所以可采用隨機文件,也可采用文本文件。不管采用哪種文件形式,文件中的數(shù)據(jù)應有固
4、定的格式,以便于程序自動讀取或人工閱讀。(3)數(shù)據(jù)查詢:用戶輸入查詢條件,系統(tǒng)規(guī)則地在界面顯示查詢結(jié)果,且顯示的數(shù)據(jù)盡量全面。當輸入省份時,可查詢到該學生的學號、姓名、高考成績、到?jīng)]到校、專業(yè);當輸入專業(yè)時,可查詢到匹配的學生名單和信息。二、設計分析本程序主要由五個自定義函數(shù)和一個主函數(shù)組成,其中主函數(shù)以菜單的形式調(diào)用其他函數(shù)來實現(xiàn)要求的所有功能。在這些函數(shù)當中,錄入信息函數(shù)、新生報到函數(shù),轉(zhuǎn)專業(yè)函數(shù)和查詢函數(shù)是程序中較為核心的部分,下面分別進行說明。1、 錄入信息函數(shù):定義一個文件型指針變量fp,用(fp=fopen(stud.dat,wb)=null,若不能打開,輸出(“不能打開文件”)從
5、磁盤文件中讀入新生的信息,并輸入到結(jié)構(gòu)體studi中,再經(jīng)結(jié)構(gòu)體studi和指針fp傳遞到磁盤文件中,實現(xiàn)文件的錄入和保存。2、 新生報到函數(shù):確立循環(huán)次數(shù),再令用戶輸入報到學生的學號,用strcmp( )函數(shù)對用戶輸入學生學號與讀入到結(jié)構(gòu)體studi中成員學號進行比較,若相同,則報到成功(輸出1)。3、 學生轉(zhuǎn)專業(yè)函數(shù): 學生轉(zhuǎn)專業(yè)函數(shù)的功能是對學生信息進行修改,首先輸入修改的學生學號,并且讀取文件信息,判斷學號是否相同,當學號相同時,重新輸入學生信息。并且把信息保存到文件中。4、 查詢統(tǒng)計函數(shù):輸入查詢的專業(yè)或省份,用while循環(huán)實現(xiàn)查詢。輸入i=0,i增至100,就結(jié)束循環(huán)。輸入省份或
6、專業(yè)就可以查詢出符合條件的學生。5、 主函數(shù):輸出菜單,并用switch語句定義了5個分支,實現(xiàn)多功能結(jié)構(gòu)的選擇。除上面介紹的功能之外,程序還具有退出功能,可以在程序的一次運行當中循環(huán)執(zhí)行所有的功能,并根據(jù)需要終止程序的執(zhí)行。1、 程序整體流程圖 圖一 整體結(jié)構(gòu)圖2、錄入學生信息流程圖在學號處加over圖二 錄入學生信息流程圖3新生報到簽到流程圖新 生 報 到定義文件類型指針 定義整形變量 i=0 輸入一個學生的信息 、dao為 1、i自增1i小于100進行循環(huán)關閉文件,并且把學生信息輸出到屏幕上 清 屏 退 出while 圖三 新生報到簽到流程圖4轉(zhuǎn)專業(yè)流程圖 圖四 轉(zhuǎn)專業(yè)流程圖 5查詢統(tǒng)計
7、流程圖圖五 查詢統(tǒng)計流程圖三、主要界面截圖 圖一 程序主界面截圖圖二 錄入學生信息截圖 圖三 新生報到截圖 圖四 轉(zhuǎn)專業(yè)截圖 圖五 按專業(yè)查詢截圖 圖六 按省份查詢截圖 圖七 退出截圖四、技術要點1、結(jié)構(gòu)體的應用定義了結(jié)構(gòu)體用來描述學生的姓名、學號、專業(yè)、省份、高考分數(shù)。具體的定義如下:char sno12; char name10; char home20; char sc20; int bcome; float score;所定義的結(jié)構(gòu)體主要用于定義數(shù)組。2、文件操作包括了文件的寫入和讀取兩個方面。文件的寫入操作,用于保存錄入的學生數(shù)據(jù),也用于保存所修改的數(shù)據(jù)。例如如下程序段用于保存錄入的
8、學生信息:void write() int i=0; file *fp;if(fp=fopen(stud.dat,wb)=null) printf(文件打開失?。?; exit(0);while(tempi.sno!=null) fwrite(&tempi,sizeof(temp),1,fp); i+ ; 3、關于程序詳細說明 (1)學生信息錄入:定義一個文件型指針變量fp,從磁盤文件中讀入新生的信息,并輸入到結(jié)構(gòu)體studi中,再經(jīng)結(jié)構(gòu)體studi和指針fp傳遞到磁盤文件中,實現(xiàn)文件的錄入和保存。(2)新生報到:程序的主要內(nèi)容是根據(jù)錄入的學生信息,先判斷文件是否能打開,如能打開文件,然后通過
9、輸入學生學號,實現(xiàn)新生報到,成功報到,用fwrite儲存在磁盤文件中。(3)轉(zhuǎn)專業(yè):學生轉(zhuǎn)專業(yè)函數(shù)的功能是對學生信息進行修改,首先輸入修改的學生學號,并且讀取文件信息,判斷學號是否相同,當學號相同時,重新輸入學生信息。并且把信息保存到磁盤文件中。(4)查詢:實現(xiàn)從系統(tǒng)中查詢專業(yè)與省份的相關信息,其實質(zhì)是對數(shù)組某個或某些元素的查詢操作。對數(shù)組元素的查詢,用while循環(huán)實現(xiàn)查詢,把查詢的結(jié)果顯示出來,這就實現(xiàn)了查詢功能。(5)退出:只要輸入服務類型5,按回車,然后按任意鍵就可以退出。五、個人總結(jié) 一周的c語言課設結(jié)束了,我學到了很多知識,積累了很多經(jīng)驗,我通過這次課設從新復習了c語言,發(fā)現(xiàn)編程并
10、不是那么簡單,而最難的就要數(shù)調(diào)試了,無論多么小的錯誤都可能是程序運行出錯,我就是因為忘加一個括號,我整整用了一個多點才找出這個錯誤,真讓我哭笑不得,這次c語言課程設計還消除了我對c語言的錯誤認識,以前認為c語言就是簡單的學科,其實不然,通過這次c語課程設計,使我加深了對c語言的了解,也提高了c語言的應用能力。在多次查書翻資料請教老師同學之后,使我能夠完成整個任務.這次課設使我熟練掌握知識的同時還增強了我的動手能力,使我受益終生。此程序的優(yōu)點:儲存數(shù)據(jù)大,查詢功能強大,錄入信息不能更改,保證安全性,且先錄入學生信息,然后一定要查詢看看錄入沒有,然后才可以執(zhí)行任何步驟(1至5都可),保證準確性。缺
11、點:程序中有些沒用的重復語句,程序步驟較復雜,應簡化些。六、參考文獻1. 譚浩強c程序設計北京:清華大學出版社,20052. 劉成等c語言程序設計實驗指導與習題集北京:中國鐵道出版社,20063.袁蒲佳,唐謙等 c語言程序設計 華中科技大學出版社,2007年1月七、源程序#include#include#include#include#define n 100struct stud char sno12; char name10; char home20; char sc20; int bcome; float score;stud tempn;int number=0;/輸入 學生信息/in
12、t input() stud temp; file *fp; printf(輸入學生信息:(輸入結(jié)束在學號處輸over)n);if(fp=fopen(stud.dat,wb)=null) printf(文件打開失敗!); exit(0); while(1) printf(輸入學生學號:); scanf(%s,temp.sno); if(!strcmp(temp.sno,over) fclose(fp);return 0; printf(輸入學生姓名:); scanf(%s,); printf(輸入學生來自省份:); scanf(%s,temp.home); printf(輸入
13、學生專業(yè):); scanf(%s,temp.sc); printf(輸入高考分數(shù):); scanf(%f,&temp.score); temp.bcome=0; fwrite(&temp,sizeof(temp),1,fp); fclose(fp);/void write() int i=0; file *fp;if(fp=fopen(stud.dat,wb)=null) printf(文件打開失敗!); exit(0);while(tempi.sno!=null) fwrite(&tempi,sizeof(temp),1,fp); i+ ;/改變專業(yè)void change() file *f
14、p;printf(輸入新到學生的學生號:);char buffer_no12;char buffer_sc20;scanf(%s,buffer_no); int i=0; if(strcmp(buffer_no,tempi.sno)=0) while(strcmp(buffer_no,tempi.sno)=0)i+; if(i=n)printf(沒有要找的學生信息); elseprintf(you); printf(所換專業(yè):); scanf(%s,&buffer_sc); if(fp=fopen(stud.dat,rb)=null) printf(文件打開失??!); exit(0); fre
15、ad(&tempi,sizeof(stud),1,fp);if(strcmp(buffer_no,tempi.sno)=0)strcpy(tempi.sc,buffer_sc); i=0; fread(&tempi,sizeof(stud),1,fp);if(strcmp(buffer_no,tempi.sno)=0)strcpy(tempi.sc,buffer_sc); if(fp=fopen(stud.dat,wb)=null) printf(文件打開失??!); exit(0); fwrite(&tempi,sizeof(temp),1,fp); printf(專業(yè)轉(zhuǎn)換成功n); /els
16、eprintf(you); printf(所換專業(yè):); scanf(%s,&buffer_sc); int i=0; if(fp=fopen(stud.dat,rb)=null) printf(文件打開失敗!); exit(0); while(strcmp(buffer_no,tempi.sno)!=0) fread(&tempi,sizeof(stud),1,fp);i+; fclose(fp);if(strcmp(buffer_no,tempi.sno)=0)strcpy(tempi.sc,buffer_sc); if(fp=fopen(stud.dat,wb)=null) printf
17、(文件打開失敗!); exit(0); i=0;if(strcmp(buffer_no,tempi.sno)=0&strcmp(tempi.sc,buffer_sc)=0)strcpy(tempi.sc,buffer_sc); while(strcmp(buffer_no,tempi.sno)!=0) fwrite(&tempi,sizeof(temp),1,fp);i+; printf(專業(yè)轉(zhuǎn)換成功n);fclose(fp); /新生報到/void set() file *fp; printf(輸入新到學生的學生號:); char buffer_no20; scanf(%s,buffer_n
18、o); int i=0;if(strcmp(buffer_no,tempi.sno)=0) while(strcmp(buffer_no,tempi.sno)=0)i+; if(i=n)printf(沒有要找的學生信息); else if(fp=fopen(stud.dat,rb)=null) printf(文件打開失?。?; exit(0); fread(&tempi,sizeof(stud),1,fp);if(strcmp(buffer_no,tempi.sno)=0)tempi.bcome=1; i=0; fread(&tempi,sizeof(stud),1,fp);if(strcmp
19、(buffer_no,tempi.sno)=0)tempi.bcome=1; if(fp=fopen(stud.dat,wb)=null) printf(文件打開失敗!); exit(0); fwrite(&tempi,sizeof(temp),1,fp); printf(新生報到成功n); /else int i=0; if(fp=fopen(stud.dat,rb)=null) printf(文件打開失敗!); exit(0); while(strcmp(buffer_no,tempi.sno)!=0) fread(&tempi,sizeof(stud),1,fp);i+; fclose(
20、fp);if(strcmp(buffer_no,tempi.sno)=0)tempi.bcome=1; if(fp=fopen(stud.dat,wb)=null) printf(文件打開失??!); exit(0); i=0;while(strcmp(buffer_no,tempi.sno)!=0) fwrite(&tempi,sizeof(temp),1,fp);i+; printf(新生報到成功n);fclose(fp); /查詢/void showstu()file *fp;int i=0;int m=-1;char a100;printf(輸入查詢條件:1、專業(yè) 2、來自省份:);sc
21、anf(%d,&m);switch(m)case 1:printf(輸入查詢專業(yè):); scanf(%s,a); if(fp=fopen(stud.dat,rb)=null) printf(文件打開失敗!);exit(0); printf(學號 姓名 來自省份 專業(yè) 分數(shù) 到校否n); while(fread(&tempi,sizeof(stud),1,fp)!=0) if(strcmp(tempi.sc,a)=0) printf(%s %s %s %s %.2f %dn,tempi.sno,,tempi.home,tempi.sc,tempi.score,tempi.bcome); i+; fclose(fp); break
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年三片式球閥項目發(fā)展計劃
- 2025年度汽車銷售市場調(diào)研與分析合同
- 2025版商業(yè)綜合體電梯清潔維護協(xié)議
- 2022年江蘇高考英語真題及答案-2
- 2025年度健康食堂牛羊肉綠色采購配送協(xié)議4篇
- 2025年度足療行業(yè)市場調(diào)研分析合同
- 2025年全自動潷水器合作協(xié)議書
- 幼兒園節(jié)奏感與韻律教育方案計劃
- 班級活動與團隊合作訓練計劃
- 跨學科合作項目的設計與實踐計劃
- 硫酸銨廢水MVR蒸發(fā)結(jié)晶
- 原子物理學第五章-多電子原子:泡利原理
- 35kV輸電線路工程旋挖鉆孔專項施工方案
- 開學第一課(七下數(shù)學)
- 固定資產(chǎn)借用登記表
- 行業(yè)會計比較ppt課件(完整版)
- 外固定架--ppt課件
- 飛達及其輔助機構(gòu)
- 法語工程詞匯(路橋、隧道、房建)
- 深圳地鐵三號線正線信號系統(tǒng)
- 高中化學競賽培訓計劃
評論
0/150
提交評論