200504061284教師上課隨機(jī)點(diǎn)名_第1頁
200504061284教師上課隨機(jī)點(diǎn)名_第2頁
200504061284教師上課隨機(jī)點(diǎn)名_第3頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、沈陽航空工業(yè)學(xué)院課程設(shè)計(jì)學(xué) 號(hào)班 級(jí)姓 名指導(dǎo)教師年 月 日沈陽航空工業(yè)學(xué)院課程設(shè)計(jì)任務(wù)書機(jī)械與汽車 學(xué)院 機(jī)械設(shè)計(jì)制造及其自動(dòng)化 專業(yè)5406108 班 學(xué)號(hào)200504061284一、課程設(shè)計(jì)題目:教師上課隨機(jī)點(diǎn)名二、課程設(shè)計(jì)工作自2007年7月9日起至2007年7月14日止三、課程設(shè)計(jì)內(nèi)容:運(yùn)用所學(xué)的C語言知識(shí),編制和調(diào)試程序,具有如下功能:教師在每次上課時(shí),需要對(duì)學(xué)生隨機(jī)點(diǎn)名提問。每次只提問1名同學(xué),對(duì)于任何一位同學(xué)的提問次數(shù)不可超過3次。如果所有的同學(xué)都被提問了 3次,則次數(shù)歸 0,重新開始。學(xué)生信息應(yīng)事先保存到文件 myfile.dat 中。學(xué)生共有 4人,名單如下:2001301

2、1001杜永寧20013011002王傳華20013011003殷泳20013011004楊柳青所謂點(diǎn)名,是指計(jì)算器將某位同學(xué)的姓名和學(xué)號(hào)打印到屏幕上,則表示該同學(xué)被點(diǎn)名1次。四、課程設(shè)計(jì)要求:程序質(zhì)量:貫徹結(jié)構(gòu)化程序設(shè)計(jì)思想。用戶界面友好,功能明確,操作方便;可以加以其它功能或修飾。用戶界面中的菜單至少應(yīng)包括“開始點(diǎn)名”、“顯示所有同學(xué)點(diǎn)名情況”、“保存點(diǎn)名”、“退出” 4項(xiàng)。代碼應(yīng)適當(dāng)縮進(jìn),并給出必要的注釋,以增強(qiáng)程序的可讀性。課程設(shè)計(jì)說明書:課程結(jié)束后,上交課程設(shè)計(jì)說明書(打印稿和電子稿),其內(nèi)容如下:封面需求分析(分析題目的要課程設(shè)計(jì)任務(wù)書求)目錄程序流程圖(總體流程圖和主要功能模塊流

3、程圖)核心技術(shù)的實(shí)現(xiàn)說明及相應(yīng)程序段個(gè)人總結(jié)參考資料源程序及適當(dāng)?shù)淖⑨?指導(dǎo)教師:學(xué)生簽名:目錄一、程序設(shè)計(jì)題目 1二、需求分析1三、程序流程圖 2四、核心技術(shù)的實(shí)現(xiàn)方法、程序段及注釋5五、 個(gè)人總結(jié) 7六、 參考文獻(xiàn) 8七、 完整源程序代碼 8一、程序設(shè)計(jì)題目教師上課隨機(jī)點(diǎn)名,具體要求如下:1、開始點(diǎn)名2、顯示所有同學(xué)點(diǎn)名情況3、保存點(diǎn)名4、退出注:每個(gè)學(xué)生數(shù)據(jù)至少應(yīng)該包括學(xué)號(hào)、姓名、被點(diǎn)到的次數(shù),學(xué)生數(shù)據(jù)要保存在you.txt文件中。二、需求分析經(jīng)過對(duì)程序設(shè)計(jì)題目的嚴(yán)格分析大體得知,整個(gè)程序的設(shè)計(jì)實(shí)現(xiàn)分為四個(gè)模塊,其中每一個(gè)模塊對(duì)應(yīng)一個(gè)函 數(shù),他們的功能分別是:教師開始點(diǎn)名函數(shù)(start

4、(),顯示點(diǎn)名情況函數(shù)(display。),保存點(diǎn)名記錄函數(shù)(save(), 退出點(diǎn)名系統(tǒng)函數(shù)(exit(O)。所有函數(shù)的實(shí)現(xiàn)嚴(yán)格按照題 目的要求。1、教師開始點(diǎn)名函數(shù)實(shí)現(xiàn)的功能是隨機(jī)抽取結(jié)構(gòu)體數(shù)組里存儲(chǔ)的一個(gè)學(xué)生信息,并打印到計(jì)算機(jī)屏幕上,稱之 為一次點(diǎn)名,連續(xù)調(diào)用就是多次隨機(jī)點(diǎn)名。根據(jù)學(xué)生是否 在席的情況,教師選擇“確認(rèn)”使學(xué)生被點(diǎn)到的次數(shù)加一, 選擇“取消”則表示此次點(diǎn)名無效。2、顯示點(diǎn)名情況函數(shù)實(shí)現(xiàn)的功能是將學(xué)生學(xué)號(hào)和姓名 連并被點(diǎn)到的次數(shù)打印到用戶屏幕上;3、 保存點(diǎn)名記錄函數(shù)實(shí)現(xiàn)的功能是將點(diǎn)名完畢后的存 儲(chǔ)于計(jì)算機(jī)內(nèi)存的學(xué)生數(shù)據(jù)傳遞到一個(gè)程序自動(dòng)新建的外存文件里面,這個(gè)文件的文件名

5、及路徑是D:you.txt ;4、 退出點(diǎn)名系統(tǒng)函數(shù)該函數(shù)實(shí)現(xiàn)的功能是結(jié)束本次點(diǎn) 名,退出點(diǎn)名系統(tǒng);每一個(gè)學(xué)生記錄都包含學(xué)號(hào)、姓名,以及被點(diǎn)到的次 數(shù),學(xué)生信息的類型定義為結(jié)構(gòu)體數(shù)組類型, 系統(tǒng)剛開始 調(diào)用的學(xué)生信息均來自于 D:myfile.dat , D:myfile.dat 中的被點(diǎn)到的次數(shù)均為零,并將點(diǎn)完名的 學(xué)生信息保存到D:you.txt 中。三、程序流程1、 程序總體框圖輸出菜單項(xiàng)圖1.程序總體框圖2、具體功能框圖(1)教師開始點(diǎn)名函數(shù)start();圖2.教師開始點(diǎn)名函數(shù)start()(2)顯示點(diǎn)名情況函數(shù)display。;0=>k輸出“ stuk.num ”,“stuk

6、.namek+1=>k直到k<8圖3.顯示點(diǎn)名情況函數(shù)display()D:you程序打開txt0=>i輸出“文件打開失?。 ?名把stu里存儲(chǔ)的點(diǎn)信息保存you.txti+1=>i直到i<4關(guān)閉D:you.txt 文件輸出“保存點(diǎn)名成功!”圖4保存點(diǎn)名記錄函數(shù)save()(4)退出點(diǎn)名系統(tǒng)函數(shù)exit(O);此函數(shù)為c語言標(biāo)準(zhǔn)庫函數(shù),只需在源程序開頭加一個(gè)#in cludevco nio.h>申明即可調(diào)用。四、核心技術(shù)的實(shí)現(xiàn)方法、程序段及注釋本程序主要由三個(gè)自定義函數(shù)、一個(gè)標(biāo)準(zhǔn)庫函數(shù)和一個(gè)主函數(shù)組成,其中主函數(shù)以菜單的形式調(diào)用其他函數(shù)來 實(shí)現(xiàn)要求的所有功能

7、。,其中三個(gè)自定義的函數(shù)是程序中 較為核心的部分,下面分別進(jìn)行說明。1、教師開始點(diǎn)名函數(shù)start()此函數(shù)首先是從結(jié)構(gòu)體數(shù)組 stu的四個(gè)成員里面隨 機(jī)抽取一個(gè)成員并打印到計(jì)算機(jī)屏幕上。這里要用到 rand()這個(gè)標(biāo)準(zhǔn)庫函數(shù),rand() % n(n是整數(shù))可產(chǎn)生0到 n-1之間的一個(gè)隨機(jī)整數(shù),如果誰被抽到了一次,在其點(diǎn) 名次數(shù)小于3次的情況下,被點(diǎn)到的次數(shù)就加一。待所有 的同學(xué)被點(diǎn)到三次后,則將被點(diǎn)到的次數(shù)都?xì)w零。具體的 程序段如下:void start() /*開始點(diǎn)名 */int i,j;i=rand()%8; /*產(chǎn)生一個(gè)0-7范圍內(nèi)的一個(gè)隨機(jī)整數(shù)*/printf("n 選

8、擇“確認(rèn)點(diǎn)名”或“取消點(diǎn)名”");prin tf("n%s%s",stui. nu m,stui. name);if(stui.t<3)switch(getch()/*實(shí)現(xiàn)確認(rèn)或者取消一次點(diǎn)名的功能*/確認(rèn)成功!");stui.t+;break;取消成功!");break;出錯(cuò)!");case'1': prin tf("ncase'2': prin tf("ndefault: prin tf("n if(stu0.t=3)&&(stu1.t=3)&am

9、p;&(stu2.t=3)&&(stu3.t=3)for(j=0;j<8;j+)stuj.t=0; /*所有的學(xué)生被點(diǎn)了三次后,點(diǎn)名次數(shù)重新歸零*/2、顯示點(diǎn)名情況函數(shù)display。該函數(shù)的核心功能是將教師點(diǎn)名過程中每個(gè)同學(xué)被 點(diǎn)到的次數(shù)連同他本人的學(xué)號(hào)及姓名一起打印到計(jì)算機(jī) 屏幕上顯示,以便判斷某位同學(xué)被點(diǎn)到次數(shù)是否超過了三 次,如果哪位同學(xué)被隨機(jī)抽取的次數(shù)超過了三次,則這位同學(xué)被點(diǎn)到的次數(shù)就不會(huì)再增加了。具體程序段如下:void display() /*將點(diǎn)名情況顯示到屏幕上*/int k;for(k=0;k<8;k+)prin tf("n%

10、s %s %d次",stuk. num,stuk. name,stuk.t);3、保存點(diǎn)名記錄函數(shù)save()教師點(diǎn)名完畢以后將點(diǎn)名的結(jié)果要保存起來,save() 函數(shù)就是要實(shí)現(xiàn)這個(gè)功能的。此函數(shù)需要先定義一個(gè)文件 指針,然后用“ w+ ”的形式為讀寫新建一個(gè)名為you.txt 的文本文檔,然后將計(jì)算機(jī)內(nèi)存中(即結(jié)構(gòu)體數(shù)組stu中)存儲(chǔ)的點(diǎn)名結(jié)果傳遞到計(jì)算機(jī)外存D:you.txt文本文檔中。此文檔保存在根目錄下。具體的程序段如下:void save() /*將點(diǎn)名完畢后的內(nèi)存點(diǎn)名信息保存到外存 D:you.txt 文本文檔中*/int i;FILE *fp1;if(fp仁 fope

11、n( "D:you.txt","w+")=NULL)printf("文件打開失敗!");else for(i=0;i<8;i+)fprin tf(fp1,"%s %s %d次n",stui. nu m,stui. name,stui.t);fclose(fp1);printf("n保存點(diǎn)名成功!");4、主函數(shù)main()主函數(shù)的功能主要是將保存學(xué)生點(diǎn)名原始數(shù)據(jù)的外存文件myfile.dat中的學(xué)生信息傳遞到內(nèi)存結(jié)構(gòu)體數(shù)組stu中,并調(diào)用各個(gè)自定義的函數(shù),四個(gè)菜單項(xiàng)功能主要 是憑switc

12、h語句來實(shí)現(xiàn)的,并加一個(gè)goto循環(huán),以實(shí) 現(xiàn)連續(xù)多次點(diǎn)名。注意:myfile.dat應(yīng)預(yù)先保存到下,才能成功地將外存數(shù)據(jù)傳遞到內(nèi)存結(jié)構(gòu)體數(shù)組中。五、個(gè)人總結(jié)本次的C語言課程設(shè)計(jì)時(shí)間短,工作強(qiáng)度大,通過這次 學(xué)習(xí)對(duì)我的邏輯思維能力,學(xué)習(xí)效率很有益處,是一次難 得的鍛煉機(jī)會(huì)。由于課設(shè)的題目富有挑戰(zhàn)性,大大開拓了 我過去學(xué)習(xí)C語言那種相對(duì)局限的認(rèn)知能力,并大致掌握 了如何實(shí)現(xiàn)軟件設(shè)計(jì)中將各個(gè)功能模塊化這一重要設(shè)計(jì) 知識(shí)。這次課設(shè)讓我大體掌握了 Visual C+的基本功能, 突破了那種以往以TC環(huán)境為主要設(shè)計(jì)媒介的思想束縛。 通過一周的課設(shè)使我的 VC功能大大增強(qiáng),設(shè)計(jì)起來得心 應(yīng)手,待全部源代碼

13、設(shè)計(jì)完畢后不禁有一種意猶未盡、行 云流水的暢感,我決定以后繼續(xù)進(jìn)修VC+,熟悉它的每 一項(xiàng)功能,達(dá)到一個(gè)初級(jí)程序編程員的水平。課設(shè)的上機(jī)期間,輔導(dǎo)老師也給予了我們莫大的幫助,攻克了設(shè)計(jì)過程中一個(gè)又一個(gè)問題, 核心問題的成功 有很大一部分來自于教師的熱心輔導(dǎo), 在此我深切的感謝 你們,感謝你們那種無私的奉獻(xiàn)。六、參考文獻(xiàn)1譚浩強(qiáng).C程序設(shè)計(jì).北京:清華大學(xué)出版社,2005 2劉成等.C語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與習(xí)題集.北京: 中國鐵道出版社,2006七、完整源程序代碼#i nclude<stdio.h>#i ncludevstri ng.h>#i nclude<stdlib.

14、h>#in clude<c oni o.h>struct stude ntchar num20; /* 存儲(chǔ)學(xué)生學(xué)號(hào)*/char name30; /*存儲(chǔ)學(xué)生姓名*/int t; /*點(diǎn)名次數(shù)*/stu8;void start() /* 開始點(diǎn)名 */int i,j;i=rand()%8; /*產(chǎn)生一個(gè)0-7范圍內(nèi)的一個(gè)隨機(jī)整數(shù)*/printf("nxuan zhe“que ren dian ming ” huo “que xiaodian mi ng ” ");prin tf("n%s%s",stui. nu m,stui. name

15、);if(stui.t<3)switch(getch()/*實(shí)現(xiàn)確認(rèn)或者取消一次點(diǎn)名的功能*/case'1':prin tf("nquerenche nggon g!");stui.t+;break;case'2': prin tf("nque xiao che ng gon g!");break;default: prin tf("nchu cuo!");if(stu0.t=3)&&(stu1.t=3)&&(stu2.t=3)&&(stu3.t=3

16、)for(j=0;j<8;j+)stuj.t=0; /*所有的學(xué)生被點(diǎn)了三次后,點(diǎn)名次數(shù)重新歸零*/void display。/*將點(diǎn)名情況顯示到屏幕上*/int k;for(k=0;k<8;k+)prin tf("n%s%s %d次",stuk. num,stuk. name,stuk.t);void save() /*將點(diǎn)名完畢后的內(nèi)存點(diǎn)名信息保存到外存D:you.txt文本文檔中*/int i;FILE *fp1;if(fp仁 fope n( "D:you.txt","w+")=NULL)prin tf("

17、we n jia n da kai shi bai!");else for(i=0;i<8;i+)fprin tf(fp1,"%s%s %d次n",stui. nu m,stui. name,stui.t);fclose(fp1);prin tf("nbao chun dia n ming che ng gon g!");mai n() FILE *fp2;int i;printf('*n");printf(" a.kai shi dianming (l.que ren qu xiao2.que xiao)nn

18、");prin tf("b.xia n shi suo you xue she ng dia n ming qingkua ngnn ”);prin tf("c.bao cun dia n mingnn ”);prin tf("d.tui chu dia n ming xi tongnn ”);printf("*n");prin tf(" qing xua n zhe yi ge cai dan xia ng:");if(fp2=fope n( "D:myfile.dat","w+")=NULL)prin tf("da kai wen jia n shi bai!");else for(i=0;i<8;i+)fscan f(fp2,"%s %s%d&qu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論