資源描述:
《200704032039陳德林》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、沈陽航空工業(yè)學院課程設計學號200704032039班級7403202姓名陳德林指導教師王曉巖2009年3月3日沈陽航院設計用紙沈陽航空工業(yè)學院課程設計任務書院系:航空宇航工程學院專業(yè):飛行器制造工程(鈑金與模具方向)班級:7403202學號:200704032039題目:選擇題標準化考試系統(tǒng)一、課程設計時間2008~09第2學期第1周,共計1周,20學時。二、課程設計內容用C語言編寫程序完成以下任務:一些C語言選擇題及其答案,作為考試題庫保存在文件file08.txt中,數據格式為:題號,問題,選項A,選項B,選項C,選項D,答案。請寫程序模擬考試
2、,程序具有如下的功能:(1)試題追加:可隨時增加試題到試題庫中。(2)試題抽取:每次從試題庫中可以隨機抽出N道題(N由鍵盤輸入)。(3)判卷功能:N道題作完后,給出總分(滿分100分)。三、課程設計要求1.程序質量:2貫徹結構化的程序設計思想。2用戶界面友好,功能明確,操作方便。2用戶界面中的菜單至少應包括“試題追加”、“開始考試”、“判卷”、“退出”4項。2代碼應適當縮進,并給出必要的注釋,以增強程序的可讀性。2.課程設計說明書:課程結束后,上交課程設計說明書和源程序。課程設計說明書的格式和內容參見提供的模板。四、指導教師和學生簽字指導教師:___
3、_____學生簽名:________五、說明書成績15沈陽航院設計用紙六、教師評語15沈陽航院設計用紙目錄一、需求分析1二、程序流程圖2三、核心技術的實現說明及相應程序段6四、個人總結12五、參考文獻13六、源程序1315沈陽航院設計用紙一、需求分析根據任務書要求這個程序要實現四個功能:開始考試下一個題開始評卷退出解決本題首先要讀取文件,讀取文件這一步我們可用FILE*fp=fopen()括號里加上文件的位置來實現需求,但是這步又是非常麻煩的一步,稍有不慎很可能就不能打開。所以這是本題的難點。在讀取文件時要做一個循環(huán),這樣就可以實現讀取多個選擇題的目
4、的。再次就是試題追加函數,也是該程序中的一個難點,最后構造一個主菜單的程序,即在用戶界面首頁輸出簡單的操作界面,為了能使用戶在使用更加明了方便,可再構造子菜單。本題應該除了讀取文件還要編輯四個自定義函數,實現上面的四個功能。還有在編寫程序時要盡量考慮到程序明了,方便在沒有編寫正確時修改,這也是非常重要的。15沈陽航院設計用紙二、程序流程圖1、程序總體結構圖圖1程序總體結構圖15沈陽航院設計用紙2、具體功能框圖(1)read()圖2讀取函數流程圖15沈陽航院設計用紙(2)kaoshi()圖3考試函數流程圖(3)tongji()15沈陽航院設計用紙圖4統(tǒng)
5、計函數流程圖(4)xiayi()15沈陽航院設計用紙圖5下一題函數流程圖三、核心技術的實現說明及相應程序段本程序主要由五15沈陽航院設計用紙個自定義函數和一個主函數組成,其中主函數以菜單的形式調用其他函數來實現要求的所有功能。在這些函數當中,main()、add()、xiayi()和tongji()是程序中較為復雜的部分,下面分別進行說明。1、主函數:主函數主要實現程序界面的設計以及功能函數的調用,其中使用getchar()函數從鍵盤得到一個字符,然后用switch()函數判斷這個字符,來分別實現功能函數的調用,程序及運行結果如下:voidmain(
6、){printf("#--*****選擇題標準化考試系統(tǒng)******--#");printf("#--********1、試題追加。**********--#");printf("#--********2、開始考試。**********--#");printf("#--********3’判卷。**************--#");printf("#--********4、退出考試系統(tǒng)。******--#");reads();/*調用讀入函數*/while(1)switch(getchar()){case'1':add();br
7、eak;case'2':kaoshi();case'':xiayi();break;case'3':tongji();break;case'4':exit(0);break;break;}}15沈陽航院設計用紙圖6程序運行主界面2、下一題函數主要技術實現在全局變量’j’的自增上,‘j‘自增再調用考試函數,自然實現下一道題題目的打印和答案的存儲,因為題目只有5道,所以在這里進行一次判斷,來根據判斷進行下一步函數的調取,程序運行結果如下:voidxiayi()/*接著考下一題*/{j++;/*整型變量j自增*/if(j<5)/*當j小于5時就調用考試
8、函數*/kaoshi();else{printf("*****************考試已完成,統(tǒng)計得分。