

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 第1章 課題概述</b></p><p><b> 1.1 課題的目的</b></p><p> 課程設(shè)計(jì)題目:考勤管理</p><p> 了解并掌握中小型綜合應(yīng)用程序的一般設(shè)計(jì)方法,具備初步的獨(dú)立分析和設(shè)計(jì)能力;</p><p> 初步掌握軟件開(kāi)發(fā)過(guò)程的問(wèn)題分
2、析、系統(tǒng)設(shè)計(jì)、程序編碼、測(cè)試等基本方法和技能;</p><p> 提高綜合運(yùn)用所學(xué)的理論知識(shí)和方法獨(dú)立分析和解決問(wèn)題的能力;</p><p> 訓(xùn)練用系統(tǒng)的觀點(diǎn)和軟件開(kāi)發(fā)一般規(guī)范進(jìn)行軟件開(kāi)發(fā),培養(yǎng)軟件工作者所應(yīng)具備的科學(xué)的工作方法和作風(fēng);</p><p> 課題的代碼要求達(dá)到一定工作量,并具有一定的深度和難度;</p><p> 根據(jù)
3、課題程序的分析和設(shè)計(jì)過(guò)程,撰寫(xiě)課程設(shè)計(jì)報(bào)告。</p><p><b> 1.2 課題的要求</b></p><p> 錄入學(xué)生的缺課記錄; </p><p> 修改某個(gè)學(xué)生的缺課記錄;</p><p> 查詢(xún)某個(gè)學(xué)生的缺課情況; </p><p> 統(tǒng)計(jì)某段時(shí)間內(nèi),曠課學(xué)生姓名及曠課次數(shù)
4、,按曠課次數(shù)由多到少排序;</p><p> 統(tǒng)計(jì)某段時(shí)間內(nèi),有學(xué)生曠課的課程及曠課人次,按曠課人次由多到少排序; </p><p><b> 系統(tǒng)以菜單方式工作</b></p><p><b> 第2章 設(shè)計(jì)思路</b></p><p><b> 2.1 模塊設(shè)計(jì) &
5、lt;/b></p><p> 學(xué)生考勤管理系統(tǒng)包含五個(gè)大的功能,分別是:錄入學(xué)生缺課信息、修改學(xué)生缺課信息、查詢(xún)某個(gè)學(xué)生的缺課情況、統(tǒng)計(jì)某段時(shí)間內(nèi)(以天為單位),曠課學(xué)生姓名及曠課節(jié)數(shù)和統(tǒng)計(jì)某段時(shí)間內(nèi),有學(xué)生曠課的課程及曠課人次。學(xué)生的缺課信息主要包含學(xué)號(hào),缺課日期,第幾節(jié)課、課程名稱(chēng),學(xué)生姓名,缺課類(lèi)型。</p><p> 在程序開(kāi)始時(shí),系統(tǒng)提供相應(yīng)的菜單供用戶進(jìn)行相應(yīng)的選擇
6、操作。</p><p> 本程序包括基類(lèi)class student學(xué)生信息課程類(lèi),以及派生類(lèi)class records:public student實(shí)現(xiàn)學(xué)生信息和考勤情況操作的類(lèi)。這兩個(gè)類(lèi) 是所有函數(shù)進(jìn)行操作的基礎(chǔ)。</p><p> void records::input()為學(xué)生考勤系統(tǒng)的錄入模塊,在錄入學(xué)生缺課信息時(shí)根據(jù)系統(tǒng)提示逐一輸入。每輸入完一條信息,系統(tǒng)會(huì)提示是否繼續(xù)輸入,
7、用戶可以選擇繼續(xù)或返回主菜單。</p><p> void records::edt()為學(xué)生考勤系統(tǒng)的修改模塊,在修改學(xué)生缺課信息時(shí),用戶首先輸入要修改的學(xué)生姓名,系統(tǒng)會(huì)檢索如果系統(tǒng)中有該學(xué)生的相關(guān)信息則系統(tǒng)首先會(huì)提示用戶修改該學(xué)生的那一部分信息,用戶可自行選擇。如果系統(tǒng)中沒(méi)有該學(xué)生的相關(guān)信息,則系統(tǒng)會(huì)給相關(guān)提示,用戶可以選擇繼續(xù)輸入要修改的學(xué)生姓名或選擇退出返回主菜單。</p><p&g
8、t; void records::search()為學(xué)生考勤系統(tǒng)的學(xué)生查詢(xún)模塊,在查詢(xún)學(xué)生缺課信息時(shí),用戶先輸入要查詢(xún)的學(xué)生學(xué)號(hào),系統(tǒng)檢索判斷是否存在該學(xué)生,若存在則輸出查詢(xún)到的該學(xué)生的信息。</p><p> void records::pri1()為學(xué)生考勤系統(tǒng)的統(tǒng)計(jì)曠課學(xué)生模塊,統(tǒng)計(jì)某段時(shí)間內(nèi),曠課學(xué)生姓名及曠課次數(shù)時(shí),用戶先輸入要查詢(xún)的時(shí)間間隔,系統(tǒng)自動(dòng)檢索在該時(shí)間段內(nèi)的學(xué)生缺課信息并按曠課次數(shù)由多到
9、少排序。</p><p> void records::pri2()為學(xué)生考勤系統(tǒng)的統(tǒng)計(jì)曠課課程模塊,統(tǒng)計(jì)某段時(shí)間內(nèi),有學(xué)生曠課的課程及曠課人次,用戶先輸入要查詢(xún)的時(shí)間間隔,系統(tǒng)自動(dòng)檢索在該時(shí)間段內(nèi)的有學(xué)生曠課的課程并按曠課人次由多到少排序。</p><p><b> 2.2 程序流程圖</b></p><p> 整個(gè)程序的流程如圖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 類(lèi)的實(shí)現(xiàn)</b></p>&l
11、t;p><b> 1、學(xué)生信息課程類(lèi)</b></p><p> 學(xué)生信息類(lèi)包括學(xué)生的學(xué)號(hào)、姓名、課程、缺課節(jié)數(shù)、缺課類(lèi)型、缺課時(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];//定義缺課課程名稱(chēng),學(xué)生名稱(chēng)</p><p> int snum ,cno,type,time; //定義學(xué)生學(xué)號(hào),缺課節(jié)次,缺課類(lèi)型,時(shí)間</p><p><b> };</b></p><p> 2、實(shí)現(xiàn)學(xué)生信息和考勤情況操作的類(lèi)</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、學(xué)生考勤系統(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<<"請(qǐng)輸入學(xué)生的缺課時(shí)間: ";</p><p><b> cin>>t1;</b>&l
20、t;/p><p> cout<<"請(qǐng)輸入學(xué)生的學(xué)號(hào): ";</p><p><b> cin>>t2;</b></p><p> cout<<"請(qǐng)輸入學(xué)生的姓名: ";</p><p><b> cin>>t3;<
21、/b></p><p> cout<<"請(qǐng)輸入學(xué)生的缺課課程: ";</p><p><b> cin>>t4;</b></p><p> cout<<"請(qǐng)輸入學(xué)生的缺課節(jié)次: ";</p><p><b> cin>
22、;>t5;</b></p><p> cout<<"請(qǐng)輸入學(xué)生的缺課類(lèi)別(1.遲到 2.早退 3.請(qǐng)假 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、學(xué)生考勤系統(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<<"有您要查詢(xún)的學(xué)生"; break;}</p><p><b> }</b><
25、;/p><p> if(!flag)</p><p> {cout<<"查無(wú)此學(xué)生!"<<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<<"請(qǐng)輸入要修改的項(xiàng)目:\n(1.缺課時(shí)間 2.學(xué)生學(xué)號(hào) 3.學(xué)生姓名 4.缺課科目 5.缺課節(jié)次 6.缺課類(lèi)型
27、)"<<endl;</p><p><b> cin>>km;</b></p><p> switch(km)</p><p><b> {</b></p><p> case 1:cout<<"請(qǐng)輸入學(xué)生缺課時(shí)間: ";
28、cin>>t1;break;</p><p> case 2:cout<<"請(qǐng)輸入修改的學(xué)生學(xué)號(hào): "; cin>>t2;break;</p><p> case 3:cout<<"請(qǐng)輸入修改的學(xué)生姓名: "; cin>>t3; break;</p>
29、<p> case 4:cout<<"請(qǐng)輸入修改的缺課課程: "; cin>>t4 ;break;</p><p> case 5:cout<<"輸入修改的缺課課程節(jié)次: "; cin>>t5;break;</p><p> case 6:cout<<"請(qǐng)
30、輸入缺課類(lèi)型(1.遲到 2.早退 3.請(qǐng)假 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、學(xué)生查詢(xún)模塊</b></p><p> void records::search()//學(xué)生查詢(xún)模塊</p><p> {cout<<"請(qǐng)輸入要查詢(xún)的學(xué)生學(xué)號(hào): ";</p><p&
32、gt; int tnum,flag=1;</p><p> cin>>tnum;</p><p> for(int i=0;i<n;i++) //查找學(xué)號(hào)</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<<"時(shí)間\t\t學(xué)號(hào) \t姓名\t缺課課程\t節(jié)次\t類(lèi)別"<<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<<"請(qǐng)假"<<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;沒(méi)有查到該學(xué)生的缺課記錄!"<<endl;</p><p><b> }</b></p><p><b> 6、學(xué)生排序</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<<"-----請(qǐng)先輸入數(shù)據(jù)
40、保存在進(jìn)行此次操作-----"<<endl;</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b></p><p> {cout<<"請(qǐng)輸入要查詢(xún)
41、的時(shí)間段: "<<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<<"該段時(shí)間內(nèi)沒(méi)有曠課的學(xué)生!"<<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<<"該段時(shí)間內(nèi)沒(méi)有曠課的學(xué)生!"<<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<<"曠課學(xué)生姓名\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<<"-----請(qǐng)先輸入數(shù)據(jù)保存在進(jìn)行此次操作-----"<<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<<"請(qǐng)輸入要查詢(xún)的時(shí)間段: "<<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;該段時(shí)間內(nèi)沒(méi)有學(xué)生曠課!"<<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<<"曠課課程名稱(chēng)\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章 程序測(cè)試</b></p><p><b> 錄入學(xué)生缺課信息:</b></p><p> 圖 4-1錄入學(xué)生缺課信息</p><p> 2、修改某個(gè)學(xué)生的缺課記錄:</p><p> 圖 4-2 修改某個(gè)學(xué)生缺課信息</p><p>
63、 3、查詢(xún)某個(gè)學(xué)生的缺課情況。</p><p> 圖 4-3查詢(xún)某個(gè)學(xué)生的缺課情況</p><p> 4、 輸入數(shù)據(jù),統(tǒng)計(jì)某段時(shí)間內(nèi),曠課學(xué)生姓名及曠課次數(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)生考勤管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)-學(xué)生考勤管理系統(tǒng)
- 學(xué)生考勤管理系統(tǒng)課程設(shè)計(jì)報(bào)告1
- 考勤管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生考勤系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)報(bào)告
- 學(xué)生考勤系統(tǒng)c語(yǔ)言課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)學(xué)生考勤系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)學(xué)生考勤系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---學(xué)生考勤系統(tǒng)
- ic卡考勤管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)報(bào)告-學(xué)生考勤管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 人事考勤管理系統(tǒng)c++課程設(shè)計(jì)
- 課程設(shè)計(jì)---考勤管理系統(tǒng)報(bào)告書(shū)
- oracle課程設(shè)計(jì)學(xué)生考勤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 考勤管理課程設(shè)計(jì)報(bào)告
- 學(xué)生管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生管理系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)
- 軟件工程課程設(shè)計(jì)---學(xué)生考勤系
- ic卡考勤管理系統(tǒng)--數(shù)據(jù)庫(kù)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論