版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 第1章 課題概述</b></p><p><b> 1.1 課題的目的</b></p><p> 課程設(shè)計題目:考勤管理</p><p> 了解并掌握中小型綜合應用程序的一般設(shè)計方法,具備初步的獨立分析和設(shè)計能力;</p><p> 初步掌握軟件開發(fā)過程的問題分
2、析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能;</p><p> 提高綜合運用所學的理論知識和方法獨立分析和解決問題的能力;</p><p> 訓練用系統(tǒng)的觀點和軟件開發(fā)一般規(guī)范進行軟件開發(fā),培養(yǎng)軟件工作者所應具備的科學的工作方法和作風;</p><p> 課題的代碼要求達到一定工作量,并具有一定的深度和難度;</p><p> 根據(jù)
3、課題程序的分析和設(shè)計過程,撰寫課程設(shè)計報告。</p><p><b> 1.2 課題的要求</b></p><p> 錄入學生的缺課記錄; </p><p> 修改某個學生的缺課記錄;</p><p> 查詢某個學生的缺課情況; </p><p> 統(tǒng)計某段時間內(nèi),曠課學生姓名及曠課次數(shù)
4、,按曠課次數(shù)由多到少排序;</p><p> 統(tǒng)計某段時間內(nèi),有學生曠課的課程及曠課人次,按曠課人次由多到少排序; </p><p><b> 系統(tǒng)以菜單方式工作</b></p><p><b> 第2章 設(shè)計思路</b></p><p><b> 2.1 模塊設(shè)計 &
5、lt;/b></p><p> 學生考勤管理系統(tǒng)包含五個大的功能,分別是:錄入學生缺課信息、修改學生缺課信息、查詢某個學生的缺課情況、統(tǒng)計某段時間內(nèi)(以天為單位),曠課學生姓名及曠課節(jié)數(shù)和統(tǒng)計某段時間內(nèi),有學生曠課的課程及曠課人次。學生的缺課信息主要包含學號,缺課日期,第幾節(jié)課、課程名稱,學生姓名,缺課類型。</p><p> 在程序開始時,系統(tǒng)提供相應的菜單供用戶進行相應的選擇
6、操作。</p><p> 本程序包括基類class student學生信息課程類,以及派生類class records:public student實現(xiàn)學生信息和考勤情況操作的類。這兩個類 是所有函數(shù)進行操作的基礎(chǔ)。</p><p> void records::input()為學生考勤系統(tǒng)的錄入模塊,在錄入學生缺課信息時根據(jù)系統(tǒng)提示逐一輸入。每輸入完一條信息,系統(tǒng)會提示是否繼續(xù)輸入,
7、用戶可以選擇繼續(xù)或返回主菜單。</p><p> void records::edt()為學生考勤系統(tǒng)的修改模塊,在修改學生缺課信息時,用戶首先輸入要修改的學生姓名,系統(tǒng)會檢索如果系統(tǒng)中有該學生的相關(guān)信息則系統(tǒng)首先會提示用戶修改該學生的那一部分信息,用戶可自行選擇。如果系統(tǒng)中沒有該學生的相關(guān)信息,則系統(tǒng)會給相關(guān)提示,用戶可以選擇繼續(xù)輸入要修改的學生姓名或選擇退出返回主菜單。</p><p&g
8、t; void records::search()為學生考勤系統(tǒng)的學生查詢模塊,在查詢學生缺課信息時,用戶先輸入要查詢的學生學號,系統(tǒng)檢索判斷是否存在該學生,若存在則輸出查詢到的該學生的信息。</p><p> void records::pri1()為學生考勤系統(tǒng)的統(tǒng)計曠課學生模塊,統(tǒng)計某段時間內(nèi),曠課學生姓名及曠課次數(shù)時,用戶先輸入要查詢的時間間隔,系統(tǒng)自動檢索在該時間段內(nèi)的學生缺課信息并按曠課次數(shù)由多到
9、少排序。</p><p> void records::pri2()為學生考勤系統(tǒng)的統(tǒng)計曠課課程模塊,統(tǒng)計某段時間內(nèi),有學生曠課的課程及曠課人次,用戶先輸入要查詢的時間間隔,系統(tǒng)自動檢索在該時間段內(nèi)的有學生曠課的課程并按曠課人次由多到少排序。</p><p><b> 2.2 程序流程圖</b></p><p> 整個程序的流程如圖2-1
10、所示。</p><p> 圖2-1 程序流程圖</p><p><b> 第3章 程序?qū)崿F(xiàn)</b></p><p> 3.1程序中各函數(shù)分析</p><p> 表3-1 程序中的函數(shù)列表</p><p><b> 3.2 類的實現(xiàn)</b></p>&l
11、t;p><b> 1、學生信息課程類</b></p><p> 學生信息類包括學生的學號、姓名、課程、缺課節(jié)數(shù)、缺課類型、缺課時間。</p><p> class student </p><p><b> {</b></p><p><b> public:</b&
12、gt;</p><p> void set(int t,int b, char* s,char* c,int cno,int type)</p><p><b> { </b></p><p> strcpy(cname,c);</p><p> strcpy(sname,s);</p><
13、p> this->snum=b;</p><p> this->cno=cno;</p><p> this->type=type;</p><p> this->time=t;</p><p><b> } </b></p><p> char cnam
14、e[100],sname[100];//定義缺課課程名稱,學生名稱</p><p> int snum ,cno,type,time; //定義學生學號,缺課節(jié)次,缺課類型,時間</p><p><b> };</b></p><p> 2、實現(xiàn)學生信息和考勤情況操作的類</p><p> class recor
15、ds:public student </p><p><b> {</b></p><p><b> public:</b></p><p><b> records()</b></p><p> {r=new student[max];}</p><
16、;p> void input();</p><p> void wt(int &i);</p><p> void rd(); // 信息以文件的形式讀出</p><p> void pri1();</p><p> void pri2();</p><p> void search
17、();</p><p> void edt();</p><p> void wdt(int &n);</p><p> student *r;</p><p> static int n;</p><p><b> };</b></p><p> i
18、nt records::n=0;</p><p> 3、學生考勤系統(tǒng)的錄入模塊</p><p> void records::input() // </p><p><b> { </b></p><p> for(int i=0;i<100;i++)</p><p><
19、b> { </b></p><p> int t1,t2,t5,t6;</p><p> char t3[100],t4[100];</p><p> cout<<"請輸入學生的缺課時間: ";</p><p><b> cin>>t1;</b>&l
20、t;/p><p> cout<<"請輸入學生的學號: ";</p><p><b> cin>>t2;</b></p><p> cout<<"請輸入學生的姓名: ";</p><p><b> cin>>t3;<
21、/b></p><p> cout<<"請輸入學生的缺課課程: ";</p><p><b> cin>>t4;</b></p><p> cout<<"請輸入學生的缺課節(jié)次: ";</p><p><b> cin>
22、;>t5;</b></p><p> cout<<"請輸入學生的缺課類別(1.遲到 2.早退 3.請假 4.曠課): ";</p><p><b> cin>>t6;</b></p><p> records::n++;</p><p> cout&l
23、t;<endl;</p><p> r[i].set(t1,t2,t3,t4,t5,t6);</p><p><b> }</b></p><p><b> }</b></p><p> 4、學生考勤系統(tǒng)修改模塊</p><p> void records::
24、edt() // </p><p> { for(i=0;i<n;i++)</p><p> {if(r[i].snum==tnum)</p><p> { cout<<"有您要查詢的學生"; break;}</p><p><b> }</b><
25、;/p><p> if(!flag)</p><p> {cout<<"查無此學生!"<<endl;return ;}</p><p> t1=r[i].time;</p><p> t2=r[i].snum;</p><p> strcpy(t3,r[i]
26、.sname);</p><p> strcpy(t4,r[i].cname);</p><p> t5=r[i].cno;</p><p> t6=r[i].type;</p><p> cout<<"請輸入要修改的項目:\n(1.缺課時間 2.學生學號 3.學生姓名 4.缺課科目 5.缺課節(jié)次 6.缺課類型
27、)"<<endl;</p><p><b> cin>>km;</b></p><p> switch(km)</p><p><b> {</b></p><p> case 1:cout<<"請輸入學生缺課時間: ";
28、cin>>t1;break;</p><p> case 2:cout<<"請輸入修改的學生學號: "; cin>>t2;break;</p><p> case 3:cout<<"請輸入修改的學生姓名: "; cin>>t3; break;</p>
29、<p> case 4:cout<<"請輸入修改的缺課課程: "; cin>>t4 ;break;</p><p> case 5:cout<<"輸入修改的缺課課程節(jié)次: "; cin>>t5;break;</p><p> case 6:cout<<"請
30、輸入缺課類型(1.遲到 2.早退 3.請假 4.曠課): ";</p><p> cin>>t6;break;</p><p><b> }</b></p><p> r[i].set(t1,t2,t3,t4,t5,t6);</p><p> else return;</p&g
31、t;<p><b> }</b></p><p><b> 5、學生查詢模塊</b></p><p> void records::search()//學生查詢模塊</p><p> {cout<<"請輸入要查詢的學生學號: ";</p><p&
32、gt; int tnum,flag=1;</p><p> cin>>tnum;</p><p> for(int i=0;i<n;i++) //查找學號</p><p> {if(r[i].snum==tnum)</p><p> { flag=0;</p><p><
33、b> if(!flag)</b></p><p><b> { </b></p><p> cout<<"時間\t\t學號 \t姓名\t缺課課程\t節(jié)次\t類別"<<endl;</p><p> cout<<r[i].time<<"\t&
34、quot;;</p><p> cout<<r[i].snum<<"\t"; </p><p> cout<<r[i].sname<<"\t";</p><p> cout<<r[i].cname<<"\t\t";</p&g
35、t;<p> cout<<r[i].cno<<"\t";</p><p> switch(r[i].type)</p><p> {case 1:cout<<"遲到"<<endl;break;</p><p> case 2:cout<<&qu
36、ot;早退"<<endl;break;</p><p> case 3:cout<<"請假"<<endl;break;</p><p> case 4:cout<<"曠課"<<endl;break;</p><p><b> }</b&
37、gt;</p><p><b> } </b></p><p><b> }</b></p><p><b> }</b></p><p><b> if(flag)</b></p><p> cout<<&q
38、uot;沒有查到該學生的缺課記錄!"<<endl;</p><p><b> }</b></p><p><b> 6、學生排序</b></p><p> void records::pri1() </p><p><b> { </b>&l
39、t;/p><p><b> if(n==0)</b></p><p><b> {</b></p><p> cout<<" ------文件記錄為空----"<<endl;</p><p> cout<<"-----請先輸入數(shù)據(jù)
40、保存在進行此次操作-----"<<endl;</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b></p><p> {cout<<"請輸入要查詢
41、的時間段: "<<endl;</p><p> int time1,time2;</p><p> char *str[20];</p><p> int num=0;</p><p> cin>>time1>>time2;</p><p> for(int i=
42、0;i<n;i++) </p><p> {if( r[i].time>time2 )</p><p> {cout<<"該段時間內(nèi)沒有曠課的學生!"<<endl;return;}</p><p> if(time1<=r[i].time && r[i].time<
43、;=time2 )</p><p> { if( r[i].type==4)</p><p> {str[num]=r[i].sname;num++;}</p><p><b> }</b></p><p><b> }</b></p><p> if(
44、 r[i-1].time<time1 )</p><p> {cout<<"該段時間內(nèi)沒有曠課的學生!"<<endl;return;}</p><p> int m=num;</p><p><b> int j;</b></p><p> char *s[20
45、];</p><p> int *c=new int [m];</p><p><b> c[0]=1;</b></p><p> s[0]=str[0];</p><p><b> int flag;</b></p><p><b> int k=1;&
46、lt;/b></p><p> for( i=1;i<m;i++)</p><p><b> {flag=0;</b></p><p> for( j=0;j<k;j++)</p><p> {if(!(strcmp(str[i],s[j])))</p><p>
47、{c[j]++;flag=1;}</p><p><b> }</b></p><p><b> if(!flag)</b></p><p> {s[k]=str[i];c[k++]=1;}</p><p><b> }</b></p>
48、<p> for(i=1;i<k;i++)</p><p> for( j=i;j>0;j--)</p><p> {if(c[j]>c[j-1])</p><p> {int tmp=c[j];</p><p> c[j]=c[j-1];</p><p> c[j-1]=t
49、mp;</p><p> char* stmp=s[j];</p><p> s[j]=s[j-1];</p><p> s[j-1]=stmp;</p><p><b> }</b></p><p><b> }</b></p><p>
50、 cout<<"曠課學生姓名\t曠課次數(shù)"<<endl;</p><p> for(i=0;i<k;i++)</p><p> cout<<s[i]<<"\t\t"<<c[i]<<endl;</p><p><b> }</b&
51、gt;</p><p><b> } 7、曠課排序</b></p><p> void records::pri2() </p><p><b> { </b></p><p><b> if(n==0)</b></p><p><b
52、> {</b></p><p> cout<<" ------文件記錄為空----"<<endl;</p><p> cout<<"-----請先輸入數(shù)據(jù)保存在進行此次操作-----"<<endl;</p><p><b> return;&l
53、t;/b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> cout<<"請輸入要查詢的時間段: "<<endl;</p&g
54、t;<p> cin>>time1>>time2;</p><p> for(int i=0;i<n;i++) </p><p><b> {</b></p><p> if(time1<=r[i].time && r[i].time<=time2 )<
55、/p><p> {if(r[i].type==4)</p><p> {str[num]=r[i].cname; num++;}</p><p><b> }</b></p><p><b> else</b></p><p> {cout<<&q
56、uot;該段時間內(nèi)沒有學生曠課!"<<endl;return;}</p><p><b> }</b></p><p> for( i=1;i<m;i++)</p><p><b> {flag=0;</b></p><p> for( j=0;j<
57、k;j++)</p><p><b> {</b></p><p> if(!(strcmp(str[i],s[j])))</p><p> {c[j]++;flag=1;}</p><p><b> }</b></p><p><b> if(!
58、flag)</b></p><p> {s[k]=str[i];c[k++]=1;}</p><p><b> }</b></p><p> for(i=1;i<k;i++)</p><p> for( j=i;j>0;j--)</p><p> {if(
59、c[j]>c[j-1])</p><p><b> {</b></p><p> int tmp=c[j];</p><p> c[j]=c[j-1];</p><p> c[j-1]=tmp;</p><p> char* stmp=s[j];</p><p&
60、gt; s[j]=s[j-1];</p><p> s[j-1]=stmp;</p><p><b> }</b></p><p><b> }</b></p><p> cout<<"曠課課程名稱\t曠課人數(shù)"<<endl;</p>
61、<p> for(i=0;i<k;i++)</p><p> cout<<s[i]<<"\t\t"<<c[i]<<endl;</p><p><b> }</b></p><p><b> }</b></p>&l
62、t;p><b> 第4章 程序測試</b></p><p><b> 錄入學生缺課信息:</b></p><p> 圖 4-1錄入學生缺課信息</p><p> 2、修改某個學生的缺課記錄:</p><p> 圖 4-2 修改某個學生缺課信息</p><p>
63、 3、查詢某個學生的缺課情況。</p><p> 圖 4-3查詢某個學生的缺課情況</p><p> 4、 輸入數(shù)據(jù),統(tǒng)計某段時間內(nèi),曠課學生姓名及曠課次數(shù),按曠課次數(shù)由多到少排序</p><p> 1 20130608 1 2 4 張三 高數(shù)</p><p> 2 20130610 2
64、 3 4 李四 大物</p><p> 3 20130613 2 4 1 李四 高數(shù)</p><p> 4 20130616 3 5 4 王五 毛概</p><p> 5 20130618 2 6 4 李四 毛概</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學生考勤管理系統(tǒng)課程設(shè)計報告
- c++課程設(shè)計-學生考勤管理系統(tǒng)
- 學生考勤管理系統(tǒng)課程設(shè)計報告1
- 考勤管理系統(tǒng)課程設(shè)計
- 學生考勤系統(tǒng)設(shè)計課程設(shè)計報告
- 學生考勤系統(tǒng)c語言課程設(shè)計
- c語言課程設(shè)計學生考勤系統(tǒng)
- c語言課程設(shè)計學生考勤系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計---學生考勤系統(tǒng)
- ic卡考勤管理系統(tǒng)課程設(shè)計
- c++課程設(shè)計報告-學生考勤管理系統(tǒng)的設(shè)計與實現(xiàn)
- 人事考勤管理系統(tǒng)c++課程設(shè)計
- 課程設(shè)計---考勤管理系統(tǒng)報告書
- oracle課程設(shè)計學生考勤系統(tǒng)的設(shè)計與實現(xiàn)
- 考勤管理課程設(shè)計報告
- 學生管理系統(tǒng)課程設(shè)計
- 學生管理系統(tǒng)課程設(shè)計
- 學生管理系統(tǒng)設(shè)計課程設(shè)計
- 軟件工程課程設(shè)計---學生考勤系
- ic卡考勤管理系統(tǒng)--數(shù)據(jù)庫課程設(shè)計
評論
0/150
提交評論