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

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、沈 陽(yáng) 航 空 工 業(yè) 學(xué) 院 課程設(shè)計(jì)學(xué) 號(hào) 班 級(jí) 姓 名 指導(dǎo)教師 2007年 9 月 15 日沈 陽(yáng) 航 院 設(shè) 計(jì) 用 紙沈陽(yáng)航空工業(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語(yǔ)言編寫軟件完成以下內(nèi)容: 有5位教師(參見文件file22_1.txt)同時(shí)講同一門課,而學(xué)習(xí)此課程的學(xué)生(參見文件file22_2.txt)可以自由選取上課教師,但每個(gè)學(xué)生只能選1個(gè)老師。請(qǐng)模擬這個(gè)“選教師”系統(tǒng)。功能應(yīng)包

2、括以下方面: 學(xué)生選辣椒室(包括改選)。 查詢某位教師的學(xué)生人數(shù)。 查詢某位學(xué)生所選的教師。 學(xué)生人數(shù)越多,表示該教師越受歡迎。請(qǐng)按照學(xué)生人數(shù)降序打印教師名單。 說(shuō)明:file22_1.txt中數(shù)據(jù)的排列順序是:教師號(hào),姓名,學(xué)生人數(shù);file22_2.txt中數(shù)據(jù)的排列順序是:學(xué)號(hào),姓名,教師。3、 課程設(shè)計(jì)要求 1.程序質(zhì)量: 觀測(cè)結(jié)構(gòu)化的程序設(shè)計(jì)思想。 用戶界面友好,功能明確,操作方面。 用戶界面中的菜單至少應(yīng)該包括“選教師”、“查詢教師情況”、“查詢學(xué)生情況”、“降序打印教師名單”、“退出”5選項(xiàng)。 2課程設(shè)計(jì)說(shuō)明書: 課程結(jié)束后,上交課程設(shè)計(jì)說(shuō)明書和源程序。課程設(shè)計(jì)說(shuō)明書的格式和內(nèi)容

3、參見提供的摸板。指導(dǎo)教師: 學(xué)生簽名: 目錄一、需求分析1二、程序流程圖2三、核心技術(shù)的實(shí)現(xiàn)說(shuō)明及相應(yīng)程序段6四、個(gè)人總結(jié)12五、參考文獻(xiàn)12六、源程序1214一、需求分析經(jīng)過(guò)我對(duì)c語(yǔ)言的所知還有本程序的題目可知分析,整個(gè)程序的設(shè)計(jì)實(shí)現(xiàn)大致分為五大模塊,其中每一個(gè)模塊對(duì)應(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í)選擇

4、該老師的人數(shù)若沒(méi)有選擇該老師的學(xué)生則現(xiàn)實(shí)人數(shù)為0;3、查詢學(xué)生所選的老師:該過(guò)程首先寫入學(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é)生所選擇老師的姓名,而對(duì)老師則有老師的 姓名和選擇該老師的學(xué)生人數(shù),在程序當(dāng)中,將學(xué)生和老師的記錄類型定義為結(jié)構(gòu)體類型,可以對(duì)文件中的資料進(jìn)行讀取,并顯示和改選。尤其在實(shí)行資料的全部進(jìn)程中都是主要按現(xiàn)實(shí)文件夾1中的內(nèi)容

5、為主。而且數(shù)據(jù)處于文件中樂(lè)意永久保存,保證每次運(yùn)行程序都可以采用原來(lái)的數(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;i<

6、size;i+) 寫入文件 輸出成功界面 返回圖1學(xué)生選擇教師。 if(fp=fopen(“d:file22_2.txt”,“r”)=null)是 否輸入學(xué)生學(xué)號(hào) 文件 打不 for(i=0;i<size;i+) 開 if(stui.number=a) k+=1 輸出結(jié)果 if(fp=fopen(“d: file22_1.txt”,“r”)=null是 否 文件 輸入老師號(hào)碼 打不 for(i=0;i<size;i+) 開 讀入文件 if(teai.number=a) teai.yxjs=1;k+=1 輸出結(jié)果 圖2查詢某位教師的學(xué)生人數(shù)。 圖3某位學(xué)生所選的教師。if(fp=fo

7、pen(“d:file22_2.txt”,“r”)=null)是 否輸入學(xué)生學(xué)號(hào) 文件 打不 for(i=0;i<size;i+) 開 if(stui.number=a) k+=1 輸出結(jié)果if(fp=fopen("d;file22_1.txt","r")=null)是 否 輸入教師號(hào)碼 for(i=0;i<size;i+)文件 打不 讀入文件開 for(j=0;j<size;j+)for(i=0;i<size-1;i+) teai.yxjs>teai+1.yxjs 真 假 teai.yxjs teai+1.yxjs 輸出結(jié)

8、果 圖4學(xué)生人數(shù)越多,表示該教師越受歡迎。請(qǐng)按照學(xué)生人數(shù)降序打印教師名單。三、核心技術(shù)的實(shí)現(xiàn)說(shuō)明及相應(yīng)程序段本程序主要由四個(gè)自定義函數(shù)和一個(gè)主函數(shù)組成,其中主函數(shù)以菜單的形式調(diào)用其他函數(shù)來(lái)實(shí)現(xiàn)要求的所有功能。對(duì)于這些函數(shù),下面分別進(jìn)行說(shuō)明。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_

9、student; printf("請(qǐng)輸入你的學(xué)號(hào):n"); scanf("%ld",&num_student) ; printf("請(qǐng)選老師:n"); scanf("%ld",&num_teacher); for(i=0;i<size;i+) if(num_student=student_listi.num_s) break; for(j=0;j<5;j+) if(num_teacher=teacher_listj.num_t) strcpy(student_listi.teacher,

10、teacher_); teacher_listj.count+; break; if(teacher=fopen("g:file22_1.txt","w")=null) printf("找不到這個(gè)文件,請(qǐng)確認(rèn)文件輸入是不否錯(cuò)誤n"); return;for(i=0;i<5;i+)fprintf(teacher,"%4d %10s %4dn",teacher_listi.num_t,teacher_,teacher_listi.count);if(student=fope

11、n("g:file22_2.txt","w")=null) printf("找不到這個(gè)文件,請(qǐng)確認(rèn)文件輸入是不否錯(cuò)誤n");return;for(i=0;i<size;i+)fprintf(student,"%10ld %10s %10sn",student_listi.num_s,student_,student_listi.teacher); fclose(teacher); fclose(student);2、查詢選擇老師的人數(shù) 首先應(yīng)該學(xué)生選擇老師,然后把所選擇的信息寫入file2

12、2_1的文件里面。void search_t() int i; char name20; printf("請(qǐng)輸入你想查詢老師的姓名:n") ; scanf("%s",name); for(i=0;i<5;i+) if(strcmp(name,teacher_)=0) break; if(i>5) printf("對(duì)不起,沒(méi)有這個(gè)老師n"); printf("%10dn",teacher_listi.count);3、查詢學(xué)生所選則的老師首先應(yīng)該讀取老師的文件夾里的內(nèi)容然后在搜索老師的

13、信息,最后就是把老師的所有信息輸出到屏幕上,程序如下void search_s() int i; long num_student; printf("請(qǐng)輸入你的學(xué)號(hào):n"); scanf("%ld",&num_student); for(i=0;i<size;i+) if(num_student=student_listi.num_s) break; if(i>size) printf("the student not exsited"); printf("%10sn",student_list

14、i.teacher);void print() int i,j; char temp20; for(i=0;i<5;i+) for(j=0;j<5-i;j+) if(teacher_listj.count<teacher_listj+1.count) strcpy(temp,teacher_); strcpy(teacher_,teacher_listj+1.name); strcpy(teacher_listj+1.name,temp); printf("按降序打印教師名單n"); for(i=0;i<5;i

15、+) printf("%10sn",teacher_);printf("n");四、個(gè)人總結(jié) 這個(gè)學(xué)期一開學(xué)就有c語(yǔ)言的課程設(shè)計(jì),因?yàn)榉偶贈(zèng)]怎么看過(guò),這周做課設(shè),而且需要獨(dú)立完成。 對(duì)我來(lái)說(shuō)有點(diǎn)困難,當(dāng)要開始設(shè)計(jì)的時(shí)候, 文件的操作很吃力,在整個(gè)課程設(shè)計(jì)完成后,總的感覺(jué)是收獲非常大。 自己一邊編程序一邊在電腦里輸入,經(jīng)過(guò)幾天的編程,差不多編完了,然后一運(yùn)行竟然20多點(diǎn)錯(cuò)誤,當(dāng)時(shí)是非常失望,但后來(lái)經(jīng)過(guò)細(xì)細(xì)的檢查修改,后來(lái)綜于把程序做的一點(diǎn)問(wèn)題沒(méi)有,這個(gè)是非常重要的過(guò)程,在改錯(cuò)的過(guò)程中懂了不少對(duì)c語(yǔ)言的知識(shí),我覺(jué)得開這門課程設(shè)計(jì)

16、課非常有用,以后更對(duì)c語(yǔ)言感興趣,有了學(xué)好c語(yǔ)言的新動(dòng)力。這次c語(yǔ)言課程設(shè)計(jì)結(jié)束了,以后很多地方會(huì)用上c語(yǔ)言,我相信通過(guò)這次設(shè)計(jì)打下了堅(jiān)實(shí)的基礎(chǔ)。五、參考文獻(xiàn)1 譚浩強(qiáng)c程序設(shè)計(jì)北京:清華大學(xué)出版社,20052 劉成等c語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與習(xí)題集北京:中國(guó)鐵道出版社,2006六、源程序#include"stdio.h"#include"stdlib.h"#include"string.h"#define size 10struct teacher int num_t; char name20; int count; teacher_

17、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è)文件,請(qǐng)確認(rèn)文件輸入是不否錯(cuò)誤n"); exit(0);if(student=fopen("g:file22_2.txt","r")=nu

18、ll) printf("找不到這個(gè)文件,請(qǐng)確認(rèn)文件輸入是不否錯(cuò)誤n"); exit(0);for(i=0;i<5;i+)fscanf(teacher,"%d%s%d",&teacher_listi.num_t,teacher_,&teacher_listi.count);for(i=0;i<size;i+)fscanf(student,"%ld%s%s",&student_listi.num_s,student_,student_listi.teacher);

19、 fclose(teacher); fclose(student);void option() file *teacher,*student; int i,j; long int num_teacher,num_student; printf("請(qǐng)輸入你的學(xué)號(hào):n"); scanf("%ld",&num_student) ; printf("請(qǐng)選老師:n"); scanf("%ld",&num_teacher); for(i=0;i<size;i+) if(num_student=studen

20、t_listi.num_s) break; for(j=0;j<5;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è)文件,請(qǐng)確認(rèn)文件輸入是不否錯(cuò)誤n"); return;for(i=0;i<5;i+)fprintf(tea

21、cher,"%4d %10s %4dn",teacher_listi.num_t,teacher_,teacher_listi.count);if(student=fopen("g:file22_2.txt","w")=null) printf("找不到這個(gè)文件,請(qǐng)確認(rèn)文件輸入是不否錯(cuò)誤n");return;for(i=0;i<size;i+)fprintf(student,"%10ld %10s %10sn",student_listi.num_s,student_l

22、,student_listi.teacher); fclose(teacher); fclose(student);void search_t() int i; char name20; printf("請(qǐng)輸入你想查詢老師的姓名:n") ; scanf("%s",name); for(i=0;i<5;i+) if(strcmp(name,teacher_)=0) break; if(i>5) printf("對(duì)不起,沒(méi)有這個(gè)老師n"); printf("%10dn",teacher_listi.count);void search_s() int i; long num_student; printf("請(qǐng)輸入你的學(xué)號(hào):n"); scanf("%ld",&num_student); for(i=0;i<size;i+) if(num_student=student_listi.num_s) break; if(i>size) printf("the student not exsited"); printf("%10s

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論