學(xué)生考勤管理系統(tǒng)課程設(shè)計(jì)_第1頁
學(xué)生考勤管理系統(tǒng)課程設(shè)計(jì)_第2頁
學(xué)生考勤管理系統(tǒng)課程設(shè)計(jì)_第3頁
學(xué)生考勤管理系統(tǒng)課程設(shè)計(jì)_第4頁
學(xué)生考勤管理系統(tǒng)課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第1章 課題概述1.1 課題的目的課程設(shè)計(jì)題目:考勤管理(1) 了解并掌握中小型綜合應(yīng)用程序的一般設(shè)計(jì)方法,具備初步的獨(dú)立分析和設(shè)計(jì)能力;(2) 初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測試等基本方法和技能;(3) 提高綜合運(yùn)用所學(xué)的理論知識(shí)和方法獨(dú)立分析和解決問題的能力;(4) 訓(xùn)練用系統(tǒng)的觀點(diǎn)和軟件開發(fā)一般規(guī)范進(jìn)行軟件開發(fā),培養(yǎng)軟件工作者所應(yīng)具備的科學(xué)的工作方法和作風(fēng);(5) 課題的代碼要求達(dá)到一定工作量,并具有一定的深度和難度;(6) 根據(jù)課題程序的分析和設(shè)計(jì)過程,撰寫課程設(shè)計(jì)報(bào)告。1.2 課題的要求(1) 錄入學(xué)生的缺課記錄; (2) 修改某個(gè)學(xué)生的缺課記錄;(3) 查詢某

2、個(gè)學(xué)生的缺課情況; (4) 統(tǒng)計(jì)某段時(shí)間內(nèi),曠課學(xué)生姓名及曠課次數(shù),按曠課次數(shù)由多到少排序;(5) 統(tǒng)計(jì)某段時(shí)間內(nèi),有學(xué)生曠課的課程及曠課人次,按曠課人次由多到少排序;  (6) 系統(tǒng)以菜單方式工作第2章 設(shè)計(jì)思路2.1模塊設(shè)計(jì)學(xué)生考勤管理系統(tǒng)包含五個(gè)大的功能,分別是:錄入學(xué)生缺課信息、修改學(xué)生缺課信息、查詢某個(gè)學(xué)生的缺課情況、統(tǒng)計(jì)某段時(shí)間內(nèi)(以天為單位),曠課學(xué)生姓名及曠課節(jié)數(shù)和統(tǒng)計(jì)某段時(shí)間內(nèi),有學(xué)生曠課的課程及曠課人次。學(xué)生的缺課信息主要包含學(xué)號,缺課日期,第幾節(jié)課、課程名稱,學(xué)生姓名,缺課類型。在程序開始時(shí),系統(tǒng)提供相應(yīng)的菜單供用戶進(jìn)行相應(yīng)的選擇操作。本程序包括基類class

3、student學(xué)生信息課程類,以及派生類class records:public student實(shí)現(xiàn)學(xué)生信息和考勤情況操作的類。這兩個(gè)類 是所有函數(shù)進(jìn)行操作的基礎(chǔ)。Records(派生類)student *rtatic int nvoid records()void input()void wt(int &i)void rd()void pri1()void pri2()void search()void edt()void wdt(int &n)Student(基類)char cname100char sname100int snum int cnoint typeint t

4、imevoid set()void records:input()為學(xué)生考勤系統(tǒng)的錄入模塊,在錄入學(xué)生缺課信息時(shí)根據(jù)系統(tǒng)提示逐一輸入。每輸入完一條信息,系統(tǒng)會(huì)提示是否繼續(xù)輸入,用戶可以選擇繼續(xù)或返回主菜單。void records:edt()為學(xué)生考勤系統(tǒng)的修改模塊,在修改學(xué)生缺課信息時(shí),用戶首先輸入要修改的學(xué)生姓名,系統(tǒng)會(huì)檢索如果系統(tǒng)中有該學(xué)生的相關(guān)信息則系統(tǒng)首先會(huì)提示用戶修改該學(xué)生的那一部分信息,用戶可自行選擇。如果系統(tǒng)中沒有該學(xué)生的相關(guān)信息,則系統(tǒng)會(huì)給相關(guān)提示,用戶可以選擇繼續(xù)輸入要修改的學(xué)生姓名或選擇退出返回主菜單。void records:search()為學(xué)生考勤系統(tǒng)的學(xué)生查詢模塊

5、,在查詢學(xué)生缺課信息時(shí),用戶先輸入要查詢的學(xué)生學(xué)號,系統(tǒng)檢索判斷是否存在該學(xué)生,若存在則輸出查詢到的該學(xué)生的信息。void records:pri1()為學(xué)生考勤系統(tǒng)的統(tǒng)計(jì)曠課學(xué)生模塊,統(tǒng)計(jì)某段時(shí)間內(nèi),曠課學(xué)生姓名及曠課次數(shù)時(shí),用戶先輸入要查詢的時(shí)間間隔,系統(tǒng)自動(dòng)檢索在該時(shí)間段內(nèi)的學(xué)生缺課信息并按曠課次數(shù)由多到少排序。void records:pri2()為學(xué)生考勤系統(tǒng)的統(tǒng)計(jì)曠課課程模塊,統(tǒng)計(jì)某段時(shí)間內(nèi),有學(xué)生曠課的課程及曠課人次,用戶先輸入要查詢的時(shí)間間隔,系統(tǒng)自動(dòng)檢索在該時(shí)間段內(nèi)的有學(xué)生曠課的課程并按曠課人次由多到少排序。2.2 程序流程圖整個(gè)程序的流程如圖2-1所示。圖2-1 程序流程圖

6、第3章程序?qū)崿F(xiàn)3.1程序中各函數(shù)分析函數(shù)名函數(shù)功能input()錄用學(xué)生課程考勤信息wt(int &i)信息以文件的形式保存wdt(int &n)修改信息以文件的形式保存pri1()統(tǒng)計(jì)某段時(shí)間內(nèi)曠課學(xué)生姓名及曠課節(jié)數(shù)pri2()統(tǒng)計(jì)某段時(shí)間內(nèi)曠課的課程及曠課人次search()查詢學(xué)生考勤信息edt()修改學(xué)生考勤信息rd()信息以文件的形式讀出表3-1 程序中的函數(shù)列表3.2 類的實(shí)現(xiàn)1、學(xué)生信息課程類學(xué)生信息類包括學(xué)生的學(xué)號、姓名、課程、缺課節(jié)數(shù)、缺課類型、缺課時(shí)間。class student public:void set(int t,int b, char* s,ch

7、ar* c,int cno,int type) strcpy(cname,c);strcpy(sname,s);this->snum=b;this->cno=cno;this->type=type;this->time=t; char cname100,sname100;/定義缺課課程名稱,學(xué)生名稱int snum ,cno,type,time; /定義學(xué)生學(xué)號,缺課節(jié)次,缺課類型,時(shí)間;2、實(shí)現(xiàn)學(xué)生信息和考勤情況操作的類class records:public student public:records()r=new studentmax;void input();

8、void wt(int &i);void rd(); / 信息以文件的形式讀出void pri1();void pri2();void search();void edt();void wdt(int &n); student *r;static int n;int records:n=0;3、學(xué)生考勤系統(tǒng)的錄入模塊void records:input() / for(int i=0;i<100;i+) int t1,t2,t5,t6;char t3100,t4100; cout<<"請輸入學(xué)生的缺課時(shí)間: "cin>>t1;c

9、out<<"請輸入學(xué)生的學(xué)號: "cin>>t2;cout<<"請輸入學(xué)生的姓名: "cin>>t3;cout<<"請輸入學(xué)生的缺課課程: "cin>>t4;cout<<"請輸入學(xué)生的缺課節(jié)次: "cin>>t5;cout<<"請輸入學(xué)生的缺課類別(1.遲到 2.早退 3.請假 4.曠課): "cin>>t6;records:n+; cout<<endl; ri.s

10、et(t1,t2,t3,t4,t5,t6);4、學(xué)生考勤系統(tǒng)修改模塊void records:edt() / for(i=0;i<n;i+)if(ri.snum=tnum) cout<<"有您要查詢的學(xué)生" break;if(!flag)cout<<"查無此學(xué)生!"<<endl;return ;t1=ri.time;t2=ri.snum;strcpy(t3,ri.sname);strcpy(t4,ame);t5=o;t6=ri.type; cout<<"請輸入要修改的項(xiàng)目

11、:n(1.缺課時(shí)間 2.學(xué)生學(xué)號 3.學(xué)生姓名 4.缺課科目 5.缺課節(jié)次 6.缺課類型)"<<endl;cin>>km;switch(km)case 1:cout<<"請輸入學(xué)生缺課時(shí)間: " cin>>t1;break;case 2:cout<<"請輸入修改的學(xué)生學(xué)號: " cin>>t2;break;case 3:cout<<"請輸入修改的學(xué)生姓名: " cin>>t3; break;case 4:cout<<&

12、quot;請輸入修改的缺課課程: " cin>>t4 ;break;case 5:cout<<"輸入修改的缺課課程節(jié)次: " cin>>t5;break;case 6:cout<<"請輸入缺課類型(1.遲到 2.早退 3.請假 4.曠課): " cin>>t6;break; ri.set(t1,t2,t3,t4,t5,t6);else return;5、學(xué)生查詢模塊void records:search()/學(xué)生查詢模塊cout<<"請輸入要查詢的學(xué)生學(xué)號: &q

13、uot;int tnum,flag=1;cin>>tnum;for(int i=0;i<n;i+) /查找學(xué)號if(ri.snum=tnum) flag=0;if(!flag) cout<<"時(shí)間tt學(xué)號 t姓名t缺課課程t節(jié)次t類別"<<endl;cout<<ri.time<<"t" cout<<ri.snum<<"t" cout<<ri.sname<<"t" cout<<ame

14、<<"tt" cout<<o<<"t"switch(ri.type)case 1:cout<<"遲到"<<endl;break;case 2:cout<<"早退"<<endl;break; case 3:cout<<"請假"<<endl;break;case 4:cout<<"曠課"<<endl;break; if(flag)cout&

15、lt;<"沒有查到該學(xué)生的缺課記錄!"<<endl;6、學(xué)生排序void records:pri1() if(n=0)cout<<" -文件記錄為空-"<<endl;cout<<"-請先輸入數(shù)據(jù)保存在進(jìn)行此次操作-"<<endl;return;elsecout<<"請輸入要查詢的時(shí)間段: "<<endl;int time1,time2;char *str20;int num=0;cin>>time1>>

16、time2;for(int i=0;i<n;i+) if( ri.time>time2 )cout<<"該段時(shí)間內(nèi)沒有曠課的學(xué)生!"<<endl;return;if(time1<=ri.time && ri.time<=time2 ) if( ri.type=4)strnum=ri.sname;num+;if( ri-1.time<time1 )cout<<"該段時(shí)間內(nèi)沒有曠課的學(xué)生!"<<endl;return;int m=num; int j; char *

17、s20;int *c=new int m;c0=1;s0=str0;int flag;int k=1;for( i=1;i<m;i+)flag=0;for( j=0;j<k;j+)if(!(strcmp(stri,sj)cj+;flag=1;if(!flag)sk=stri;ck+=1;for(i=1;i<k;i+)for( j=i;j>0;j-)if(cj>cj-1)int tmp=cj;cj=cj-1;cj-1=tmp;char* stmp=sj;sj=sj-1;sj-1=stmp;cout<<"曠課學(xué)生姓名t曠課次數(shù)"<

18、<endl;for(i=0;i<k;i+)cout<<si<<"tt"<<ci<<endl; 7、曠課排序void records:pri2() if(n=0)cout<<" -文件記錄為空-"<<endl;cout<<"-請先輸入數(shù)據(jù)保存在進(jìn)行此次操作-"<<endl;return;elsecout<<"請輸入要查詢的時(shí)間段: "<<endl;cin>>time1>>time2;for(int i=0;i<n;i+) if(time1<=ri.time && ri.time<=time2 )if(ri.type=4)strnum=ame;num+;elsecout<<"該段時(shí)間內(nèi)沒有學(xué)生曠課!"<<endl;return;for( i=1;i<m;i+)flag=0;for( j=0;j<

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論