C語言課程設(shè)計(jì)報(bào)告選擇教師管理系統(tǒng)_第1頁
C語言課程設(shè)計(jì)報(bào)告選擇教師管理系統(tǒng)_第2頁
C語言課程設(shè)計(jì)報(bào)告選擇教師管理系統(tǒng)_第3頁
C語言課程設(shè)計(jì)報(bào)告選擇教師管理系統(tǒng)_第4頁
C語言課程設(shè)計(jì)報(bào)告選擇教師管理系統(tǒng)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論