信息科學(xué)與技術(shù)學(xué)院程序設(shè)計基礎(chǔ)課程設(shè)計報告題目名稱:學(xué)生考勤管理系統(tǒng)學(xué)生姓名:郭晨晨學(xué)號:2專業(yè)班級:13級計科(3)班指導(dǎo)教師:郭理2013年6月6日目錄1.課程設(shè)計題目與要求課題目的和要求設(shè)計目的:要求實現(xiàn)---“學(xué)生考勤管理程序”記錄學(xué)生的缺課情況,它包括:缺課日期、第幾節(jié)課、課程名稱、學(xué)生姓名、缺課種類(遲到、早退、請假及逃課)。設(shè)計要求:錄入學(xué)生的缺課記錄;2.改正某個學(xué)生的缺課記錄;3.查問某個學(xué)生的缺課情況;4.統(tǒng)計某段時間內(nèi),某門課逃課學(xué)生姓名及逃課次數(shù)學(xué)生信息管理系統(tǒng)c,按逃課次數(shù)由多到少排序;5.統(tǒng)計某段時間內(nèi),有學(xué)生逃課的課程及逃課人次,按逃課人次由多到少排序;系統(tǒng)以菜單方式工作。課題意義程序?qū)嵺`是本科生重要教學(xué)環(huán)節(jié)之一。經(jīng)過程序?qū)嵺`,加強學(xué)生的計算機應(yīng)用技術(shù),使學(xué)生考證、牢固和充分所學(xué)的理論知識,加深對有關(guān)內(nèi)容的理解,拓寬知識面,培養(yǎng)學(xué)生的創(chuàng)新精神和實踐能力學(xué)生考勤管理程序能夠大大減緩學(xué)生考勤人員的工作量,方便了平時上課學(xué)生的出勤率的管理。2總體設(shè)計功能模塊設(shè)計根據(jù)解析整個系統(tǒng)主要區(qū)分為7個功能模塊,分別履行要求中的功能。數(shù)據(jù)管理中能夠?qū)W(xué)生的基本信息、課程的基本信息、學(xué)生缺課的查問、增添、刪除和改正。
查問管理經(jīng)過根據(jù)學(xué)生姓名,課程姓名時間段兒等信息,查問單個學(xué)生的缺課記錄,單科課的逃課記錄,單個學(xué)生的逃課記錄。功能模塊圖如圖1所示:圖1功能模塊圖系統(tǒng)設(shè)計方案這個程序是過程性語言設(shè)計的。運用多種條件語句,主體采用的是鏈表指針。系統(tǒng)的設(shè)計采用了數(shù)組語句、選擇語句和循環(huán)語句,在需要辦理大量同類數(shù)據(jù)時,這樣就使程序書寫更為簡短。程序使用了布爾函數(shù)。選擇語句多采用if多分支選擇構(gòu)造與語句。首先計算表達(dá)式,然后在caes子句中尋找值相等的常量表達(dá)式,并以此為入口符號,由此開始次序履行。循環(huán)語句采用了for語句等、do-while語句,for語句用于已知循環(huán)次數(shù)的循環(huán)構(gòu)造,括號中的三個量分別用來表示循環(huán)變量初值、循環(huán)終值和循環(huán)增量。do-while語句先循環(huán)后判斷,Break語句在語句中,保證多分支情況的正確履行學(xué)生信息管理系統(tǒng)c,在循環(huán)語句中,強制終止本層循環(huán)。保留和讀取函數(shù)是典型的函數(shù)功能,一個程序是由若干個函數(shù)組成的,保留和讀取函數(shù)是和其他函數(shù)互相調(diào)用的。詳盡設(shè)計數(shù)據(jù)構(gòu)造設(shè)計{[50];;};這是定義了一個xueke構(gòu)造體,用來寄存一個學(xué)科名及其相應(yīng)的逃課人數(shù);{[50];;;[50];;;;;*next;};這是定義了一個的構(gòu)造體,用來寄存一個學(xué)生的考勤記錄,其中有,字符數(shù)組name[50],[50],分別寄存學(xué)生名字,缺課課程名字;int型變量,,,,,分別來寄存,缺課節(jié)次,遲到次數(shù),早退次數(shù),請假次數(shù),逃課次數(shù)long型變量time,記錄時間。
主模塊設(shè)計要成立的學(xué)生人數(shù),學(xué)生基本信息(包括缺課時間、學(xué)生姓名、課程名稱、節(jié)次、遲到次數(shù)、早退次數(shù)、請假次數(shù)、逃課次數(shù))可用creat()函數(shù)如圖1.圖1根據(jù)要改正的學(xué)生姓名以及科目名稱找到相應(yīng)的信息,再選擇要改正的項目開始[50];e[50];intk;("請輸入要改正的學(xué)生姓名與學(xué)科名稱:");scanf("%s%s",,);*p1,*p2;p2=(*)(LEN);p1=head;(,p1->name)!=0&&(p1-p1=p1->next;>next!=NULL)&&(,p1->)!(,p1->name)==0&&(,p1->)==0顯示改正菜單選擇改正項目并完成改正結(jié)束進(jìn)行單項改正如圖2圖2根據(jù)人名能夠查出該學(xué)生的所有缺課記錄如圖3圖3根據(jù)學(xué)科名稱和時間范圍查出所有在該范圍內(nèi)逃課的學(xué)生以及次數(shù)如圖4圖4根據(jù)要查問的學(xué)科名稱實時間段查出在改時間段內(nèi)該門課上逃課的人數(shù)如圖5圖5能夠載入實現(xiàn)積蓄在目前文件夾中txt文件中所積蓄的數(shù)據(jù)如圖6開始*p1=NULL,*p2=NULL,*head=NULL;[100];inti=0,n=0;翻開文件!feof(fp1)將文件里的數(shù)據(jù)存入構(gòu)造體數(shù)組經(jīng)過構(gòu)造體數(shù)組建立鏈表結(jié)束圖6進(jìn)入系統(tǒng)界面,次序的達(dá)成各項操作,進(jìn)行數(shù)據(jù)的輸入,信息的保留調(diào)用相應(yīng)的函數(shù)翻開相應(yīng)的地點,查問各項信息。
如圖7圖74.運行結(jié)果運行開始菜單圖1開始菜單主菜單圖2主菜單成立學(xué)生缺課記錄圖2成立學(xué)生缺課記錄積蓄學(xué)生逃課記錄圖3積蓄學(xué)生逃課記錄5.課程設(shè)計總結(jié)課程設(shè)計順利達(dá)成,題目所要求的功能基本實現(xiàn),能夠?qū)W(xué)生的缺課信息進(jìn)行增添,改正,刪除以及查問的顯示。可是這個程序還不夠完善,比方不能往目前文件夾中的txt文件中增添記錄。結(jié)束語整個系統(tǒng)的設(shè)計過程關(guān)于我來說是個學(xué)習(xí)、探索的過程,經(jīng)過借鑒識人,學(xué)習(xí)設(shè)計程序,在整個設(shè)計過程中,出現(xiàn)過好多的問題,好多繁瑣的東西都需要反復(fù)的改正,主假如因為前期的學(xué)習(xí)不仔細(xì),對系統(tǒng)的需求解析的要求認(rèn)識不清楚,使得在后邊的工作中不得不經(jīng)常頻頻討教別人去改正。使我意會到設(shè)置中每一步的重要性。所以在解析一個問題時,我們需要站在一個有遠(yuǎn)見的高度。經(jīng)過此次設(shè)計,我對C++語言編程有了深刻的認(rèn)識,積累了使用軟件工程的思想來開發(fā)軟件的經(jīng)驗,更重要的是學(xué)會了在對待問題時應(yīng)當(dāng)考慮到哪些方面和怎么解決問題。雖然時間緊迫但我學(xué)會了不少,感覺自己知識的困窮,希望在日后積極學(xué)習(xí)并嘗試努力中能做出完善的系統(tǒng)。參照文件譚浩強.C++語言程序設(shè)計.清華大學(xué)出版社求是科技.++信息系統(tǒng)開發(fā).人民郵電出版社附錄:源代碼#;a[i].=0;}>>;p1=head;for(i=0;itime&&p1->)a[i].+=p1->;p1=p1->next;}p1=head;}for(j=0;j0){=a[i+1].;a[i+1].=a[i].;a[i].=;(,a[i+1].);(a[i+1].,a[i].);(a[i].,);}}for(i=0;=[i].;p1->=[i].;(p1->,[i].);p1->=[i].;(p1->name,[i].name);p1->=[i].;p1->time=[i].time;p1->=[i].;p2->next=p1;p2=p1;p1=(*)(LEN);}p2->next=NULL;(head);}(*head){*p1;p1=head;fp1=fopen("","wb+");while(p1!=NULL){(p1,LEN,1,fp1);p1=p1->next;}(fp1);cout