版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、沈 陽 航 空 工 業(yè) 學(xué) 院 課程設(shè)計(jì)學(xué) 號(hào) 班 級(jí) 姓 名 指導(dǎo)教師 2007年 9 月 15 日沈陽航空工業(yè)學(xué)院課程設(shè)計(jì)任務(wù)書院系:電子 專業(yè):電子信息工程 班級(jí):6402101學(xué)號(hào):200604021016 題目:選擇教師管理系統(tǒng)1、 課程設(shè)計(jì)時(shí)間 2007年9月10日至2007年9月14日,共計(jì)1周,20學(xué)時(shí)2、 課程設(shè)計(jì)內(nèi)容 用c語言編寫軟件完成以下內(nèi)容: 有5位教師(參見文件file22_1.txt)同時(shí)講同一門課,而學(xué)習(xí)此課程的學(xué)生(參見文件file22_2.txt)可以自由選取上課教師,但每個(gè)學(xué)生只能選1個(gè)老師。請模擬這個(gè)“選教師”系統(tǒng)。功能應(yīng)包括以下方面: 學(xué)生選辣椒室(包
2、括改選)。 查詢某位教師的學(xué)生人數(shù)。 查詢某位學(xué)生所選的教師。 學(xué)生人數(shù)越多,表示該教師越受歡迎。請按照學(xué)生人數(shù)降序打印教師名單。 說明:file22_1.txt中數(shù)據(jù)的排列順序是:教師號(hào),姓名,學(xué)生人數(shù);file22_2.txt中數(shù)據(jù)的排列順序是:學(xué)號(hào),姓名,教師。3、 課程設(shè)計(jì)要求 1.程序質(zhì)量: 觀測結(jié)構(gòu)化的程序設(shè)計(jì)思想。 用戶界面友好,功能明確,操作方面。 用戶界面中的菜單至少應(yīng)該包括“選教師”、“查詢教師情況”、“查詢學(xué)生情況”、“降序打印教師名單”、“退出”5選項(xiàng)。 2課程設(shè)計(jì)說明書: 課程結(jié)束后,上交課程設(shè)計(jì)說明書和源程序。課程設(shè)計(jì)說明書的格式和內(nèi)容參見提供的摸板。指導(dǎo)教師: 學(xué)
3、生簽名: 目錄一、需求分析1二、程序流程圖2三、核心技術(shù)的實(shí)現(xiàn)說明及相應(yīng)程序段6四、個(gè)人總結(jié)12五、參考文獻(xiàn)12六、源程序12一、需求分析經(jīng)過我對c語言的所知還有本程序的題目可知分析,整個(gè)程序的設(shè)計(jì)實(shí)現(xiàn)大致分為五大模塊,其中每一個(gè)模塊對應(yīng)一個(gè)函數(shù),他們的功能分別是:選擇老師、查詢老師所選的學(xué)生人數(shù)、查詢學(xué)生所選的老師、按選擇老師的學(xué)生人數(shù)的降次順序打印老師的名單。這些函數(shù)的實(shí)現(xiàn)嚴(yán)格按照題目的要求,清晰的表達(dá)了題設(shè)的內(nèi)容。1、按課程設(shè)計(jì)需求的內(nèi)容搜索老師的信息而且將選擇的信息輸入到file22_1里面;2、查詢老師的信息:首先輸入老師的姓名,之后在屏幕上現(xiàn)實(shí)選擇該老師的人數(shù)若沒有選擇該老師的學(xué)生
4、則現(xiàn)實(shí)人數(shù)為0;3、查詢學(xué)生所選的老師:該過程首先寫入學(xué)生的學(xué)號(hào),屏幕上就會(huì)顯示該老師的姓名;4、最后一個(gè)程序要求就是在屏幕上輸出所有文件夾的內(nèi)容,并且是按降次的順序現(xiàn)實(shí)file22_1中的內(nèi)容。除上面介紹的功能之外,程序還具有退出功能,可以在程序的一次運(yùn)行當(dāng)中循環(huán)執(zhí)行所有的功能,并根據(jù)需要終止程序的執(zhí)行。每一個(gè)學(xué)生記錄都包含學(xué)號(hào)、姓名,以及該學(xué)生所選擇老師的姓名,而對老師則有老師的 姓名和選擇該老師的學(xué)生人數(shù),在程序當(dāng)中,將學(xué)生和老師的記錄類型定義為結(jié)構(gòu)體類型,可以對文件中的資料進(jìn)行讀取,并顯示和改選。尤其在實(shí)行資料的全部進(jìn)程中都是主要按現(xiàn)實(shí)文件夾1中的內(nèi)容為主。而且數(shù)據(jù)處于文件中樂意永久保
5、存,保證每次運(yùn)行程序都可以采用原來的數(shù)據(jù)。二、程序流程圖1、 程序總體結(jié)構(gòu)圖 程序流程圖 設(shè)置界面函數(shù) 輸入教師和 學(xué)生選擇 查看教師 查看學(xué)生選 教師被選次數(shù)學(xué)生信息 教師 信息 教師情況 降序排列 主函數(shù) if(fp=fopen(“d:fill22_1.txt”,“w”)=null) 是 否 輸出 從鍵盤輸入信息存入文件 文件打不 是否繼續(xù)開 是 否 繼續(xù) 輸入學(xué)生信息并存入文件 輸入 是 否 繼續(xù) 返回 輸入if(fp=fopen(“d:fill22_1.txt”,“r+”)=null) 是 否 選擇要選課的學(xué)生 選擇教師代碼 for(i=0;isize;i+) 寫入文件 輸出成功界面
6、返回圖1學(xué)生選擇教師。 if(fp=fopen(“d:file22_2.txt”,“r”)=null)是 否輸入學(xué)生學(xué)號(hào) 文件 打不 for(i=0;isize;i+) 開 if(stui.number=a) k+=1 輸出結(jié)果 if(fp=fopen(“d: file22_1.txt”,“r”)=null是 否 文件 輸入老師號(hào)碼 打不 for(i=0;isize;i+) 開 讀入文件 if(teai.number=a) teai.yxjs=1;k+=1 輸出結(jié)果 圖2查詢某位教師的學(xué)生人數(shù)。 圖3某位學(xué)生所選的教師。if(fp=fopen(“d:file22_2.txt”,“r”)=nul
7、l)是 否輸入學(xué)生學(xué)號(hào) 文件 打不 for(i=0;isize;i+) 開 if(stui.number=a) k+=1 輸出結(jié)果if(fp=fopen(d;file22_1.txt,r)=null)是 否 輸入教師號(hào)碼 for(i=0;isize;i+)文件 打不 讀入文件開 for(j=0;jsize;j+)for(i=0;iteai+1.yxjs 真 假 teai.yxjs teai+1.yxjs 輸出結(jié)果 圖4學(xué)生人數(shù)越多,表示該教師越受歡迎。請按照學(xué)生人數(shù)降序打印教師名單。三、核心技術(shù)的實(shí)現(xiàn)說明及相應(yīng)程序段本程序主要由四個(gè)自定義函數(shù)和一個(gè)主函數(shù)組成,其中主函數(shù)以菜單的形式調(diào)用其他函數(shù)
8、來實(shí)現(xiàn)要求的所有功能。對于這些函數(shù),下面分別進(jìn)行說明。1、學(xué)生自定義選擇老師 要使文件file22_1.txt顯示,首先應(yīng)確定打開文件,并定義了個(gè)結(jié)構(gòu)體數(shù)組,將該文件中的各個(gè)數(shù)據(jù)賦予結(jié)構(gòu)體數(shù)組的各個(gè)成員,并將輸出的結(jié)果輸入到file22_1的文件里面。具體的程序段如下:void option() file *teacher,*student; int i,j; long int num_teacher,num_student; printf(請輸入你的學(xué)號(hào):n); scanf(%ld,&num_student) ; printf(請選老師:n); scanf(%ld,&num_teacher)
9、; for(i=0;isize;i+) if(num_student=student_listi.num_s) break; for(j=0;j5;j+) if(num_teacher=teacher_listj.num_t) strcpy(student_listi.teacher,teacher_); teacher_listj.count+; break; if(teacher=fopen(g:file22_1.txt,w)=null) printf(找不到這個(gè)文件,請確認(rèn)文件輸入是不否錯(cuò)誤n); return;for(i=0;i5;i+)fprintf(teache
10、r,%4d %10s %4dn,teacher_listi.num_t,teacher_,teacher_listi.count);if(student=fopen(g:file22_2.txt,w)=null) printf(找不到這個(gè)文件,請確認(rèn)文件輸入是不否錯(cuò)誤n);return;for(i=0;isize;i+)fprintf(student,%10ld %10s %10sn,student_listi.num_s,student_,student_listi.teacher); fclose(teacher); fclose(student);
11、2、查詢選擇老師的人數(shù) 首先應(yīng)該學(xué)生選擇老師,然后把所選擇的信息寫入file22_1的文件里面。void search_t() int i; char name20; printf(請輸入你想查詢老師的姓名:n) ; scanf(%s,name); for(i=0;i5) printf(對不起,沒有這個(gè)老師n); printf(%10dn,teacher_listi.count);3、查詢學(xué)生所選則的老師首先應(yīng)該讀取老師的文件夾里的內(nèi)容然后在搜索老師的信息,最后就是把老師的所有信息輸出到屏幕上,程序如下void search_s() int i; long num_student; print
12、f(請輸入你的學(xué)號(hào):n); scanf(%ld,&num_student); for(i=0;isize) printf(the student not exsited); printf(%10sn,student_listi.teacher);void print() int i,j; char temp20; for(i=0;i5;i+) for(j=0;j5-i;j+) if(teacher_listj.countteacher_listj+1.count) strcpy(temp,teacher_); strcpy(teacher_,teache
13、r_listj+1.name); strcpy(teacher_listj+1.name,temp); printf(按降序打印教師名單n); for(i=0;i5;i+) printf(%10sn,teacher_);printf(n);四、個(gè)人總結(jié) 這個(gè)學(xué)期一開學(xué)就有c語言的課程設(shè)計(jì),因?yàn)榉偶贈(zèng)]怎么看過,這周做課設(shè),而且需要獨(dú)立完成。 對我來說有點(diǎn)困難,當(dāng)要開始設(shè)計(jì)的時(shí)候,文件的操作很吃力,在整個(gè)課程設(shè)計(jì)完成后,總的感覺是收獲非常大。 自己一邊編程序一邊在電腦里輸入,經(jīng)過幾天的編程,差不多編完了,然后一運(yùn)行竟然20多點(diǎn)錯(cuò)誤,當(dāng)時(shí)是非常失望,但后來經(jīng)過細(xì)細(xì)的檢查修改,后來
14、綜于把程序做的一點(diǎn)問題沒有,這個(gè)是非常重要的過程,在改錯(cuò)的過程中懂了不少對c語言的知識(shí),我覺得開這門課程設(shè)計(jì)課非常有用,以后更對c語言感興趣,有了學(xué)好c語言的新動(dòng)力。這次c語言課程設(shè)計(jì)結(jié)束了,以后很多地方會(huì)用上c語言,我相信通過這次設(shè)計(jì)打下了堅(jiān)實(shí)的基礎(chǔ)。五、參考文獻(xiàn)1 譚浩強(qiáng)c程序設(shè)計(jì)北京:清華大學(xué)出版社,20052 劉成等c語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與習(xí)題集北京:中國鐵道出版社,2006六、源程序#includestdio.h#includestdlib.h#includestring.h#define size 10struct teacher int num_t; char name20; i
15、nt count; teacher_list5;struct student long int num_s; char name20; char teacher20;student_listsize;void load() int i;file *teacher,*student;if(teacher=fopen(g:file22_1.txt,r)=null) printf(找不到這個(gè)文件,請確認(rèn)文件輸入是不否錯(cuò)誤n); exit(0);if(student=fopen(g:file22_2.txt,r)=null) printf(找不到這個(gè)文件,請確認(rèn)文件輸入是不否錯(cuò)誤n); exit(0)
16、;for(i=0;i5;i+)fscanf(teacher,%d%s%d,&teacher_listi.num_t,teacher_,&teacher_listi.count);for(i=0;isize;i+)fscanf(student,%ld%s%s,&student_listi.num_s,student_,student_listi.teacher); fclose(teacher); fclose(student);void option() file *teacher,*student; int i,j; long int num_teac
17、her,num_student; printf(請輸入你的學(xué)號(hào):n); scanf(%ld,&num_student) ; printf(請選老師:n); scanf(%ld,&num_teacher); for(i=0;isize;i+) if(num_student=student_listi.num_s) break; for(j=0;j5;j+) if(num_teacher=teacher_listj.num_t) strcpy(student_listi.teacher,teacher_); teacher_listj.count+; break; if(tea
18、cher=fopen(g:file22_1.txt,w)=null) printf(找不到這個(gè)文件,請確認(rèn)文件輸入是不否錯(cuò)誤n); return;for(i=0;i5;i+)fprintf(teacher,%4d %10s %4dn,teacher_listi.num_t,teacher_,teacher_listi.count);if(student=fopen(g:file22_2.txt,w)=null) printf(找不到這個(gè)文件,請確認(rèn)文件輸入是不否錯(cuò)誤n);return;for(i=0;isize;i+)fprintf(student,%10ld %10s %
19、10sn,student_listi.num_s,student_,student_listi.teacher); fclose(teacher); fclose(student);void search_t() int i; char name20; printf(請輸入你想查詢老師的姓名:n) ; scanf(%s,name); for(i=0;i5) printf(對不起,沒有這個(gè)老師n); printf(%10dn,teacher_listi.count);void search_s() int i; long num_student; printf(請輸入你的學(xué)號(hào):n); scanf(%ld,&num_student); for(i=0;isize) printf(the student no
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高考物理總復(fù)習(xí)專題二相互作用實(shí)驗(yàn)二探究彈力和彈簧伸長量的關(guān)系練習(xí)含答案
- 江蘇省2015-2015學(xué)年高中英語 Unit3 Amazing people project教案 牛津譯林版必修2
- 八年級(jí)歷史下冊 第12課 欣欣向榮的科教文體事業(yè)教案 北師大版
- 2024年九年級(jí)語文上冊 第二單元 第6課《敬業(yè)與樂業(yè)》說課稿 新人教版
- 2024-2025學(xué)年高中語文 第二單元 珠星碧月彩云中 4 詞三首(一)教案 語文版必修3
- 2023四年級(jí)數(shù)學(xué)下冊 4 小數(shù)的意義和性質(zhì) 3小數(shù)點(diǎn)移動(dòng)引起小數(shù)大小的變化第2課時(shí) 小數(shù)點(diǎn)移動(dòng)引起小數(shù)大小變化的規(guī)律(2)配套教案 新人教版
- 二年級(jí)語文上冊 課文3 9 黃山奇石教案 新人教版
- 2024-2025學(xué)年新教材高中歷史 第八單元 中華民族的抗日戰(zhàn)爭和人民解放戰(zhàn)爭 第24課 全民族浴血奮戰(zhàn)與抗日戰(zhàn)爭的勝利教案3 新人教版必修《中外歷史綱要(上)》
- 變壓器報(bào)停委托書
- 租房電器超過使用年限合同(2篇)
- 股票分析師職業(yè)規(guī)劃
- 2024年公務(wù)員考試江蘇省蘇州市吳江市《行政職業(yè)能力測驗(yàn)》高分沖刺試卷含解析
- 班主任的煩惱如何應(yīng)對學(xué)生問題與家長關(guān)注的挑戰(zhàn)
- 南京市2023-2024學(xué)年八年級(jí)上學(xué)期期末道德與法治試卷(含答案解析)
- 半導(dǎo)體ECP工藝特點(diǎn)
- 幼兒園食品安全專題部署會(huì)
- 第3課《生命的奇跡》課件
- XXX-工廠制造業(yè)績效考核方案(內(nèi)含崗位職責(zé)及KPI指標(biāo))
- 2024高考語文復(fù)習(xí) 文言文閱讀 《史記》 專題練習(xí)( 解析)
- 2024年廣西玉柴機(jī)器集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 人類社會(huì)面臨的物種滅絕與生物多樣性保護(hù)
評論
0/150
提交評論