




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、沈 陽 航 空 航 天 大 學 課程設計 學 號: 班 級: 姓 名: 指 導 教 師: 2011年 3 月 11日沈陽航空航天大學課程設計任務書系:動力與能源工程學院 專業:飛行器動力工程 班級:學號:題目:教師工作量管理系統一、課程設計時間201011第2學期第1周,即3月7日3月11日,共計1周,20學時。二、課程設計內容用C語言編寫軟件完成以下任務:計算每個老師在一個學期中所教課程的總工作量(教師的信息為:教師號、姓名、所授課程、班級數目、理論課時、實驗課時、單個教學任務總課時)。(1)輸入教師教學信息,包括教師號、姓名、所授課程、班級數目、理論課時、實驗課時。(2)插入教師授課信息。
2、(3)教師工作量計算: 計算單個教學任務總課時。計算原則如下表:班級數目單個教學任務總課時21.5*(理論課時+實驗課時)32*(理論課時+實驗課時)>=42.5*(理論課時+實驗課時) 計算一個教師一個學期總的教學工作量??偟慕虒W工作量等于所有單個教學任務總課時之和。(4)完整的教師信息顯示。三、課程設計要求程序質量:1貫徹結構化程序設計思想。2用戶界面友好,功能明確,操作方便;可以加以其它功能或修飾。3用戶界面中的菜單至少應包括“輸入教師信息”、“插入授課信息”、“工作量計算與顯示”、“退出”4項。4代碼應適當縮進,并給出必要的注釋,以增強程序的可讀性。課程設計說明書:²
3、課程結束后,上交課程設計說明書和源程序。課程設計說明書的內容參見提供的模板。四、指導教師和學生簽字指導教師:_ 學生簽名:_五、成績六、教師評語沈陽航空航天大學設計用紙目錄一、需求分析1二、設計分析2三、主要界面截圖4四、技術要點6五、個人總結9六、參考文獻10七、源程序1117一、需求分析根據任務書給定的“課程設計內容”和“課程設計要求”作如下的需求分析。該系統主要適用于學校教務處的工作人員統計教師的課程量,系統首先應功能齊全,操作簡便,還應該具有安全、穩定的特點。1. 安全性分析系統管理的數據涉及到學院的所有教師,數據量較大且是一種基礎性數據,能夠為其它方面的學生管理工作提供重要參考,所以
4、要通過設置密碼等手段確保數據不能被隨意的刪減和修改。2. 穩定性分析指系統比較健壯,只要是用戶的合理操作,系統都應給出合理正確的回應,而不是出現令用戶感到意外的系統錯誤或系統崩潰。3. 主要功能分析(1)數據輸入:在使用系統時,操作人員需要根據系統提示,按要求輸入教師的個人信息以及教師的授課信息。若輸入出現錯誤,操作人員可以根正,但必要是需要退出系統后重新進入系統輸入。(2)數據保存:對于輸入的數據,或被修改的數據以及統計結果應該保存到某個磁盤文件中,實現永久存儲。文件的具體格式題目未作具體要求,所以可采用隨機文件,也可采用文本文件。不管采用哪種文件形式,文件中的數據應有固定的格式,以便于程序
5、自動讀取或人工閱讀。二、設計分析主要有6個功能模塊,每個模塊對應一個C語言自定義函數。這些函數原型及其功能簡述如下:1、程序總體結構圖(傳統流程圖或N-S框圖)圖1程序總體結構圖2、主要功能模塊框圖(傳統流程圖或N-S框圖)(1)輸入教師信息模塊輸入教師號pi.jsh=tea.jsh輸入教師姓名strcpy(,)輸入該名教師所授課程數目pi.a=tea.a圖2輸入教師信息模塊(2)插入授課信息模塊輸入課程題目strcpy(wj.kctm,kc.kctm)輸入該課程的班級數目wj.bjsm=kc.bjsm輸入該課程理論課時數目wj.llks=kc.llks輸入該課程
6、實驗課時數目wj.syks=kc.syks 圖3插入授課信息模塊(3)教師工作量計算模塊圖4教師工作量計算模塊三、主要界面截圖圖1 程序主界面圖2 錯誤提示界面圖3 退出系統界面圖4 教師信息輸入界面(輸入系統校驗數據)圖5 信息輸出界面四、技術要點1、結構體的應用定義了結構體用來描述教師的姓名、教師號、所授課程、班級數目、理論課時、實驗課時。具體的定義如下:struct kcxxchar kctm15;int bjsm;int llks;int syks;struct teacherint jsh;char name15;int a;struct kcxx shouke5;struct te
7、acher tea100; struct teacher *p;float sum100;/*存放教師的工作量*/所定義的結構體主要用于定義數組。2、文件操作此程序的文件操作主要是對教師信息及其授課信息的保存,將系統使用的數據及統計結果錄入磁盤文件中以便查閱。具體的程序如下:void save(float *sum,int n,int *b)int z,i;FILE *fp, *fc, *fq;printf("請確認信息,如需文件保存請輸入1并回車,無需保存輸入2并回車。n");/*教師信息及統計結果的保存*/scanf("%d",&z);if(
8、z=1)if(fp=fopen("teacher_xx","wb")=NULL)printf("文件打開失敗n");printf("未保存n");else fc=fopen("kechen_xx","wb");fq=fopen("teacher_gzl","wb");for(i=1;i<=n;i+)if(fwrite(&teai,sizeof(struct teacher),1,fp)!=1)printf("文件
9、輸出失敗n");elsefwrite(&sumi,4,1,fq);fclose(fp);fclose(fc);fclose(fq);printf("保存成功n");elseprintf("未保存n");3、教師教學任務的算法教師教學任務的計算是根據教學計算原則計算的。首先自定義函數計算單課時的教學任務,然后在主函數中循環調用該函數計算出所有課時的任務量,最后將其求和即可。具體程序如下:自定義函數部分:float dan(int bjs,int llks,int syks)float dgks;if(bjs>=4)dgks=(llk
10、s+syks)*2.5;elseif(bjs>=3)dgks=2*(llks+syks);elsedgks=(llks+syks)*1.5;return dgks; 主函數調用部分: case 3:/*計算*/if(cd1=1)&&(cd2=2)for(e=1;e<=n;e+)for(f=1;f<=be;f+)/*e指定的是人數,f指定的是課程數*/c=pe.shoukef.bjsm;af=dan(c,pe.shoukef.llks,pe.shoukef.syks);sume=0;for(f=1;f<=be;f+)sume+=af;printf(&quo
11、t;第 %d 位教師的工作量=%.2fn",e,sume);五、個人總結經過一周的課程設計后,我對C語言有了更加深入的認識。以前我們學習C語言只是僅限于書本的理論認識,上機調試一些簡單的程序,對于把書中的知識真正運用到現實中去,去解決生活中的問題還未有過。這次的課程設計讓我們切身感覺到了理論知識的實際作用,那些生活中的許多現象也不再那么神奇。由于C語言學了有些時日,所以在設計過程中參考了一些資料。面對這樣陌生的課題,剛開始也是茫然一片,思路很混亂,不知道從何處開始。經過一段時間的思考,我確定了編程思路,先解決程序的各分支問題,然后再將各部分的程序組合在一起從而完成程序的設計。當然,這
12、也不是順利的,編程需要無數次的修改,有時候還要完全推翻之前的模塊設計重新開始,有時候也會因為出現一點小錯誤而無法通過編譯時對著電腦苦思冥想。不過付出終是有回報的,自己編寫的程序基本完成了所需要的功能,至于程序的一些優化和修飾就感覺簡單多了。雖然變好了程序,獲得了運行的結果,但是我也自知其中存在許多的不足之處,比如程序過于冗長,運行過程中界面有些混亂,容易讓操作人員產生誤解,某些功能不太完善。當然也有其有點所在,如程序結構清晰,有明確的操作提示等??傊涍^幾天的課程設計,我對C語言有了更加濃厚的興趣,它是一件非常有用的工具,學好它對我們以后的工作大有裨益。六、參考文獻1, 譚浩強C程序設計北京
13、:清華大學出版社,2005七、源程序(所書寫的全部源程序,排版要規范)#include <stdio.h>#include<stdlib.h>#include <string.h>/*定義全局變量以指代教師的個人信息和其授課信息*/struct kcxxchar kctm15;int bjsm;int llks;int syks;struct teacherint jsh;char name15;int a;struct kcxx shouke5;struct teacher tea100;struct teacher *p;float sum100;/*存
14、放教師的工作量*/*主函數開始*/void main()int i,j,b10,n,c,e,f,l=0;int cd1,cd2,cd3,cd4;float a10;p=tea;/*申明函數部分*/void shuru1(int i);void shuru2(int i,int j);float dan(int bjs,int llks,int syks);void shuchu(int *b,int n,float *sum);void save(float *sum,int n,int *b);/*輸出界面*/printf("*nn");printf(" n&q
15、uot;);printf(" 歡迎進入教師工作量管理系統 nnn");printf("*nnn");while(1)/*輸出系統菜單*/printf(" 系統菜單n");printf(" *n");printf(" * . 輸入教師信息 *n");printf(" * . 插入授課信息 *n");printf(" . 教師工作量計算 n");printf(" . 輸出統計結果 n");printf(" * . 保存教師信息及統
16、計結果 *n");printf(" * . 退出 *n");printf(" *nn");printf(" 說明:請按菜單序號依次執行,且必須首先執行前三項,重復輸入將覆蓋之前的輸入信息。nn");printf(" 請選擇需要執行的菜單項:nn");scanf("%d",&l);switch(l)case 1:printf(" 請輸入所需統計的教師人數,且人數小于一百n");scanf("%d",&n);for(i=1;i<
17、=n;i+)printf("請輸入第 %d 位教師信息n",i);shuru1(i);/*輸入教師信息*/bi=pi.a;/*b表示的是教師所授課程的數目,i指定第幾位教師*/if(i=n)break;cd1=1;printf("輸入結束,請進入下一項n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<&l
18、t;<<<<<<<<<<<<<<<<<<<<<<<<<<<<n");break;case 2:if(cd1=1)printf("請對應輸入教師的授課信息n");for(i=1;i<=n;i+)printf("請輸入第 %d 位教師的課程信息n",i);for(j=1;j<=bi;j+)shuru2(i,j);/*輸入課程信息*/if(j=bi)break;printf
19、("請輸入下一課程信息!n");if(i=n)break;cd2=2;printf("輸入結束,請進入下一項n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<&l
20、t;<<<<<<<<<<n");elseprintf(" o()o 請先輸入教師信息!n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
21、<<<<<<<<<<<<<<nn");break;case 3:if(cd1=1)&&(cd2=2)for(e=1;e<=n;e+)for(f=1;f<=be;f+)c=pe.shoukef.bjsm;af=dan(c,pe.shoukef.llks,pe.shoukef.syks);sume=0;for(f=1;f<=be;f+)sume+=af;printf("第 %d 位教師的工作量=%.2fn",e,sume);cd3=3;printf(&
22、quot;計算完成,請進入下一項n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<n");el
23、seprintf(" o()o請先輸入教師信息及其授課信息!n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
24、<<nnn");break;case 4:if(cd1=1)&&(cd2=2)&&(cd3=3)shuchu(b,n,sum);/*調用輸出函數,輸出完整的教師信息*/cd4=4;printf("輸出完成,請進入下一項n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<&l
25、t;<<<<<<<<<<<<<<<<<<<<<<<<<<<<n");elseprintf(" o()o請先完善輸入信息!n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<&
26、lt;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<nnn");break;case 5:if(cd1=1)&&(cd2=2)&&(cd3=3) save(sum,n,b);elseprintf(" o()o請先完善信息并運算!n<<<<<<<<<<<<<<&l
27、t;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<nnn");break;case 6:printf(" 程序結束*謝謝使用n");printf(" _ _ _ _ _ nnnn&q
28、uot;);exit(0);default: printf("輸入錯誤,請輸入菜單中存在的序號!n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<&l
29、t;<<<<<<n ");/*輸入教師信息*/void shuru1(int i)struct teacherint jsh;char name20;int a;tea;printf("請輸入教師號:n");scanf("%d",&tea.jsh);pi.jsh=tea.jsh;printf("請輸入教師姓名:n");scanf("%s",&);strcpy(,);printf("請輸入該名教師所授
30、課程數目,且課程數目小于6:n");scanf("%d",&tea.a);pi.a=tea.a;/*輸入課程信息*/void shuru2 (int j)struct kcxxchar kctm20;int bjsm;nt llks;int syks;kc; printf("請輸入課程題目:n");scanf("%s",&kc.kctm);strcpy(pi.shoukej.kctm,kc.kctm);printf("請輸入該課程的班級數目:n");scanf("%d"
31、,&kc.bjsm);pi.shoukej.bjsm=kc.bjsm;printf("請輸入該課程理論課時數目:n");scanf("%d",&kc.llks);pi.shoukej.llks=kc.llks;printf("請輸入該課程實驗課時數目:n");scanf("%d",&kc.syks);pi.shoukej.syks=kc.syks;/*單個教學任務總課時計算*/float dan(int bjs,int llks,int syks)float dgks;if(bjs>=4)dgks=(llks+syks)*2.5;elseif(bjs>=3)dgks=2*(llks+syks);elsedgks
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 應急人財物管理制度
- 律師黨支部管理制度
- 微消防日常管理制度
- 心理矯正室管理制度
- 快遞員日常管理制度
- 急救與治療管理制度
- 總店長門店管理制度
- 情景劇皮膚管理制度
- 戰備食品庫管理制度
- 房產項目部管理制度
- 信息用戶管理制度
- 緊固件行業生產安全標準化建設考核試卷
- 2025年成都香城悅動置業有限公司招聘題庫帶答案分析
- 培訓學員生活管理制度
- 廣東省廣州市增城區2023-2024學年八年級下學期期末數學試題(含答案)
- 廣東省廣州市番禺區2022-2023學年三年級下學期數學期末試卷(含答案)
- 分包安全生產管理制度
- 南充中考理綜試題及答案
- 廠區衛生清潔管理制度
- 養老項目商業計劃書
- 2025年新高考1卷(新課標Ⅰ)數學試卷
評論
0/150
提交評論