![學(xué)生考勤管理系統(tǒng)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/19/4c8881e8-bf72-4538-aada-0cb46daaff09/4c8881e8-bf72-4538-aada-0cb46daaff091.gif)
![學(xué)生考勤管理系統(tǒng)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/19/4c8881e8-bf72-4538-aada-0cb46daaff09/4c8881e8-bf72-4538-aada-0cb46daaff092.gif)
![學(xué)生考勤管理系統(tǒng)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/19/4c8881e8-bf72-4538-aada-0cb46daaff09/4c8881e8-bf72-4538-aada-0cb46daaff093.gif)
![學(xué)生考勤管理系統(tǒng)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/19/4c8881e8-bf72-4538-aada-0cb46daaff09/4c8881e8-bf72-4538-aada-0cb46daaff094.gif)
![學(xué)生考勤管理系統(tǒng)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/19/4c8881e8-bf72-4538-aada-0cb46daaff09/4c8881e8-bf72-4538-aada-0cb46daaff095.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求1設(shè)計(jì)內(nèi)容:學(xué)生考勤管理系統(tǒng)1、問(wèn)題描述學(xué)生信息包括:學(xué)號(hào)、姓名、性別、年齡、班級(jí)等信息??记谛畔ǎ喝闭n日期、第幾節(jié)課、課程名稱、學(xué)生姓名、缺課類型(遲到、早退、請(qǐng)假和曠課)。2、功能要求(1)添加功能:程序能夠添加學(xué)生的記錄和缺課記錄,提供選擇界面供用戶選擇所要添加的類別。添加學(xué)生記錄時(shí),要求學(xué)號(hào)要唯一,如果添加了重復(fù)學(xué)號(hào)的記錄時(shí),則提示數(shù)據(jù)添加重復(fù)并取消添加。(2)查詢功能:可根據(jù)學(xué)號(hào)、姓名等信息對(duì)已添加的學(xué)生記錄進(jìn)行查詢,如果未找到,給出相應(yīng)的提示信息,如果找到,則顯示相應(yīng)的記錄信息。還可以按課程名、學(xué)生姓名對(duì)缺課記錄進(jìn)行查詢。(3)顯
2、示功能:可顯示當(dāng)前系統(tǒng)中所有學(xué)生的記錄和缺課記錄,每條記錄占據(jù)一行。(4)編輯功能:可根據(jù)查詢結(jié)果對(duì)相應(yīng)的記錄進(jìn)行修改,修改時(shí)注意學(xué)號(hào)的唯一性。(5)刪除功能:主要實(shí)現(xiàn)對(duì)已添加的學(xué)生記錄進(jìn)行刪除。如果當(dāng)前系統(tǒng)中沒(méi)有相應(yīng)的記錄,則提示“記錄為空!”并返回操作。(6)統(tǒng)計(jì)功能:能根據(jù)多種參數(shù)進(jìn)行統(tǒng)計(jì)。能按課程名統(tǒng)計(jì)出學(xué)生曠課的信息、還可以按姓名統(tǒng)計(jì)出任一學(xué)生的曠課情況。需要排序。(7)保存功能:可將當(dāng)前系統(tǒng)中各類記錄存入文件中,存入方式任意。(8)讀取功能:可將保存在文件中的信息讀入到當(dāng)前系統(tǒng)中,供用戶進(jìn)行使用。目 錄一、 需求分析1.系統(tǒng)功能流程圖退出主程序初始化程序菜單程序查找刪除修改統(tǒng)計(jì)錄入
3、顯示保存3.輸入輸出的要求1.輸入的要求:通過(guò)主函數(shù)體調(diào)用其他函數(shù)應(yīng)用系統(tǒng)主控界面包括學(xué)生信息錄入,查找等功能模塊。學(xué)生信息錄入功能完成學(xué)生信息和缺課信息的輸入。記錄查詢功能可以對(duì)數(shù)據(jù)各分類的記錄進(jìn)行查詢。2.輸出的要求:1)能夠按編號(hào)、姓名對(duì)學(xué)生的信息進(jìn)行檢索并將檢索結(jié)果顯示在屏幕上。2)可以統(tǒng)計(jì)全部學(xué)生缺課類型,及其缺課次數(shù)。3)如果檢索不到相應(yīng)的信息應(yīng)提示用戶。二、 總體分析系統(tǒng)功能分析能夠從屏幕上讀取一個(gè)學(xué)生的信息和缺課信息并將信息存入到數(shù)據(jù)文件中。能夠?qū)⒅付ǖ男畔奈募袆h除。能夠按編號(hào)、姓名對(duì)學(xué)生的信息進(jìn)行檢索并將檢索結(jié)果顯示在屏幕上??梢越y(tǒng)計(jì)全部學(xué)生缺課次數(shù),及其缺課類型。要求有
4、錯(cuò)誤提示功能。如果檢索不到相應(yīng)的信息應(yīng)提示用戶。 三、詳細(xì)設(shè)計(jì)1.類設(shè)計(jì):類:Person 數(shù)據(jù)成員學(xué)號(hào),姓名,性別,年齡,班級(jí)缺課類型,缺課次數(shù),指針域double num; /學(xué)號(hào) char Name20; /姓名 char sex;/性別 double old;/年齡 long double G;/班級(jí) int Duty; /缺課類型(1-遲到,2-早退,3-請(qǐng)假,4-曠課) double Salary; /缺課次數(shù) Person *next; /指針域 、成員函數(shù)Person() /基類構(gòu)造 next=0; /指針域設(shè)置為空 virtual Person() /基類虛析構(gòu) virtua
5、l void Input()=0; /從鍵盤(pán)輸入數(shù)據(jù) virtual void Input(ifstream& ifs)=0; /從文件輸入數(shù)據(jù) virtual void Output()=0; /向屏幕輸出數(shù)據(jù) virtual void Output(ofstream& ofs)=0; /向文件輸出數(shù)據(jù) virtual double Incoming()=0; /計(jì)算次數(shù) friend class College; 類:Teacher(公共繼承與Person類)數(shù)據(jù)成員:protected: int Hours; /第幾節(jié)課 char B;/遲到日期 char Z;/課程名稱class sc
6、hool成員函數(shù):Tercher()void Input()void Input(ifstream& ifs)void Output(ofstream& ofs)double Incoming()遲到類:class Assistant:virtual public Person數(shù)據(jù)成員:protected: int Allowance; int Hours; /第幾節(jié)課 char B;/早退日期 char Z;/課程名稱 成員函數(shù):Assistant()void Input()void Input(ifstream& ifs)void Output()void Output(ofstream&
7、 ofs)double Incoming()請(qǐng)假類:class Manager:virtual public Person數(shù)據(jù)成員:protected: int Allowance;int Hours; /第幾節(jié)課 char B;/請(qǐng)假日期 char Z;/課程名稱成員函數(shù):Manager()void Input()void Input(ifstream& ifs)void Output()void Output(ofstream& ofs)double Incoming()曠課類:class Teacher_Assistant:public Teacher,public Assistant成
8、員函數(shù):Teacher_Assistant()void Input()void Input(ifstream& ifs)void Output()void Output(ofstream& ofs)double Incoming()學(xué)生類:class College數(shù)據(jù)成員private: Person *PL; void Clear(); int College:Cfind(int ID,Person *p1,Person *p2)成員函數(shù):public: College(); /構(gòu)造 College(); /析構(gòu) void Add(); /退出 void Delete(); /刪除 voi
9、d Modify(); /修改 void Print(); /輸出 void Save(); /信息存盤(pán) void Load(); /信息裝入 void Find(); /查找 void Build(); /導(dǎo)引 void Stat(); /統(tǒng)計(jì)四、 界面設(shè)計(jì)與各功能模塊的實(shí)現(xiàn)1. 界面設(shè)計(jì)1.界面設(shè)計(jì)程序運(yùn)行后會(huì)出現(xiàn)一個(gè)簡(jiǎn)捷的窗口,便于用戶查詢數(shù)據(jù)。2.功能模塊實(shí)現(xiàn)設(shè)計(jì)通過(guò)主窗體調(diào)用其他窗體。應(yīng)用系統(tǒng)主控界面包括學(xué)生信息錄入,查找等功能模塊。學(xué)生信息錄入功能完成學(xué)生信息和成績(jī)的輸入。記錄查詢功能可以對(duì)數(shù)據(jù)各分類的記錄進(jìn)行查詢。具體舉例如下:1) 輸入函數(shù):void Input() coutn
10、um; coutName; coutsex; coutold; coutG; coutHours; Salary=Incoming(); 2)刪除函數(shù)void school:del()student *p,*p2;int num;coutnum;if( !find(&p,num,) )coutSORRY!找不到你要?jiǎng)h除的內(nèi)容!next)-output();p2=p-next;p-next=p2-next;delete p2;school:setkey(1);2. 類的派生之間的示意圖TercherAssitantMannagerTercher_AssitantPerson五、 系統(tǒng)調(diào)試1.首頁(yè)
11、進(jìn)入學(xué)生考勤管理系統(tǒng)主菜單2錄入學(xué)生信息界面:3.顯示學(xué)生信息界面:4.修改學(xué)生信息六、 使用說(shuō)明及心得體會(huì)此次c+課程設(shè)計(jì),在指導(dǎo)教師的精心教導(dǎo)下,我學(xué)會(huì)了如何用C+編寫(xiě)一個(gè)簡(jiǎn)單的應(yīng)用程序。首先要對(duì)程序的設(shè)計(jì)要求有一個(gè)比較明確的認(rèn)識(shí),然后系統(tǒng)分析與系統(tǒng)設(shè)計(jì),最后是代碼設(shè)計(jì)與調(diào)試。程序?qū)崿F(xiàn)上,設(shè)計(jì)了簡(jiǎn)單的查詢界面,將各個(gè)功能集中出來(lái)按照程序編寫(xiě)原則,便于查詢。七、附件源文件代碼:#include 文件操作頭文件#include 字符串流 class Person /人員類(抽象類) protected: double num; /學(xué)號(hào) char Name20; /姓名 char sex;/性別
12、 double old;/年齡 long double G;/班級(jí) int Duty; /缺課類型(1-遲到,2-早退,3-請(qǐng)假,4-曠課) double Salary; /缺課次數(shù) Person *next; /指針域 public: Person() /基類構(gòu)造 next=0; /指針域設(shè)置為空 virtual Person() /基類虛析構(gòu) virtual void Input()=0; /從鍵盤(pán)輸入數(shù)據(jù) virtual void Input(ifstream& ifs)=0; /從文件輸入數(shù)據(jù) virtual void Output()=0; /向屏幕輸出數(shù)據(jù) virtual void
13、 Output(ofstream& ofs)=0; /向文件輸出數(shù)據(jù) virtual double Incoming()=0; /計(jì)算次數(shù) friend class College; ; class Teacher:virtual public Person /遲到類 protected: int Hours; /第幾節(jié)課 char B;/遲到日期 char Z;/課程名稱public: Duty=1; Salary=800; void Input() /鍵盤(pán)補(bǔ)充輸入其它數(shù)據(jù) coutnum; coutName; coutsex; coutold; coutG; coutHours; Sala
14、ry=Incoming(); void Input(ifstream& ifs) ifsnumNamesexoldGDutyHoursSalary; void Output() coutnumtNametsextoldtGtDutytHourstSalarytendl; void Output(ofstream& ofs) ofsnumtNametsextoldtGtDutytHourstSalaryt120) return Salary+(Hours-120)*20; else return Salary; ; class Assistant:virtual public Person /早
15、退 protected: int Allowance; int Hours; /第幾節(jié)課 char B;/早退日期 char Z;/課程名稱 public: Assistant() Duty=2; Salary=650; Allowance=150; void Input() coutnum; coutName; coutsex; coutold; coutG; coutHours; Salary=Incoming(); void Input(ifstream& ifs) ifsnumNamesexoldGDutyHoursSalary; void Output() coutnumtNamet
16、sextoldtGtDutytHourstSalarytendl; void Output(ofstream& ofs) ofsnumtNametsextoldtGtDutytHourstSalaryt70) return Salary+Allowance+(Hours-70)*20; else return Salary+Allowance; ; class Manager:virtual public Person /請(qǐng)假 protected: int Allowance;int Hours; /第幾節(jié)課 char B;/請(qǐng)假日期 char Z;/課程名稱public: Manager()
17、 Duty=3; Salary=750; Allowance=250; void Input() coutnum; coutName; coutsex; coutold; coutG; coutHours; Salary=Incoming(); void Input(ifstream& ifs) ifsnumNamesexoldGDutyHoursSalary; void Output() coutnumtNametsextoldtGtDutytHourstSalarytendl; class College private: Person *PL; void Clear(); int Col
18、lege:Cfind(int ID,Person *p1,Person *p2); public: College(); /構(gòu)造 College(); /析構(gòu) void Add(); /退出 void Delete(); /刪除 void Modify(); /修改 void Print(); /輸出 void Save(); /信息存盤(pán) void Load(); /信息裝入 void Find(); /查找 void Build(); /導(dǎo)引 void Stat(); /統(tǒng)計(jì) ; College:College() /構(gòu)造函數(shù)(創(chuàng)建1個(gè)頭結(jié)點(diǎn)的鏈表) Person *p=new Teache
19、r; PL=p; coutnext; delete p; p=PL; PL=0; void College:Add() /增加 char c; do coutInput(); p-next=pt; break; case 2: pa=new Assistant; pa-Input(); p-next=pa; break; case 3: pm=new Manager; pm-Input(); p-next=pm; break; case 4: pta=new Teacher_Assistant; pta-Input(); p-next=pta; break; default: return;
20、coutc; while(c=y|c=Y); Save(); /查找 void College:Find() double ID; Person *p1; Person *p2; coutID; p1=PL-next; p2=PL; while(p1) if(p1-num=ID) break; /找到 else p2=p1; /繼續(xù)查找 p1=p1-next; if(!p1) cout找不到你所查詢的人!n請(qǐng)確認(rèn)你所查詢的編號(hào)是否出錯(cuò)!n;return; else coutn* 出勤信息表 *n; coutOutput(); /查找缺課結(jié)點(diǎn)(返回1-找到,0-未找到.結(jié)點(diǎn)指針由p1返回,p2為
21、前看指針) int College:Cfind(int ID,Person *p1,Person *p2) *p1=PL-next; *p2=PL; while(*p1) if(*p1)-num=ID) break; /找到 else *p2=*p1; /繼續(xù)查找 *p1=(*p1)-next; return *p1?1:0; void College:Delete() /刪除 coutn* 刪除 *n; int num; Person *p1,*p2; coutnum; if(!Cfind(num,&p1,&p2) coutnext=p1-next; /連接 delete p1; cout正
22、確刪除!n; Save(); void College:Modify() /修改 coutn* 修改 *n; int num; Person *p1,*p2; coutnum; if(!Cfind(num,&p1,&p2) coutOutput(); /輸出原來(lái)的出勤信息(做提示) p1-Input(); /輸入新的出勤信息(更新) cout修改完成!n; Save(); void College:Print() /輸出出勤信息 coutn* 出勤信息表 *n; coutnext; if(!p) coutOutput(); p=p-next; void College:Save() /出勤信息
23、存盤(pán)? ofstream f(Person.dat,ios:out); /打開(kāi)文件 Person *p=PL-next; while(p) p-Output(f); p=p-next; f.close(); /關(guān)閉文件 coutbufbufDuty; if(f) switch(Duty) case 1: p2=new Teacher; break; case 2: p2=new Assistant; break; case 3: p2=new Manager; break; case 4: p2=new Teacher_Assistant; break; default: f.close();
24、 return; p-next=p2; p=p-next; f.seekg(t); p-Input(f); else break; f.close(); void College:Load() /出勤信息錄入 char ah; int c; coutn* 出勤信息錄入 *n; do coutc; for(int i=1;inext)p=p-next; int ch; coutch; Teacher *pt; Assistant *pa; Manager *pm; Teacher_Assistant *pta; switch(ch) case 1: pt=new Teacher; pt-Input(); p-next=pt; break; case 2: pa=new Assistant; pa-Input(); p-next=pa; break; case 3: pm=new Manager; pm-Input(); p-next=pm; break; case 4: pta=new Teacher_Assistant; pta-Input(); p-next=pta; break; default: return; Save(); coutah; while(ah=Y|ah=y); void College:Stat() Person *p1; Person *p2;
溫馨提示
- 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨時(shí)勞動(dòng)合同管理規(guī)定
- 一紙合同定乾坤:離婚孩子撫養(yǎng)權(quán)新規(guī)
- 個(gè)人合同轉(zhuǎn)讓授權(quán)委托書(shū)范文
- 個(gè)人與個(gè)人投資合作合同
- 中外技術(shù)研發(fā)合作合同范本
- 個(gè)人貸款合同模板版
- 個(gè)人與公司間的借款合同范本
- 個(gè)人與企業(yè)土地購(gòu)置合同
- 上海市常用勞務(wù)合同范本
- 個(gè)人房產(chǎn)抵押借款合同
- 2022年中國(guó)電信維護(hù)崗位認(rèn)證動(dòng)力專業(yè)考試題庫(kù)大全-上(單選、多選題)
- 《電氣作業(yè)安全培訓(xùn)》課件
- 水平二(四年級(jí)第一學(xué)期)體育《小足球(18課時(shí))》大單元教學(xué)計(jì)劃
- 《關(guān)于時(shí)間管理》課件
- 醫(yī)藥高等數(shù)學(xué)智慧樹(shù)知到課后章節(jié)答案2023年下浙江中醫(yī)藥大學(xué)
- 城市道路智慧路燈項(xiàng)目 投標(biāo)方案(技術(shù)標(biāo))
- 水泥采購(gòu)?fù)稑?biāo)方案(技術(shù)標(biāo))
- 醫(yī)院招標(biāo)采購(gòu)管理辦法及實(shí)施細(xì)則(試行)
- 初中英語(yǔ)-Unit2 My dream job(writing)教學(xué)設(shè)計(jì)學(xué)情分析教材分析課后反思
- 廣州市勞動(dòng)仲裁申請(qǐng)書(shū)
- 江西省上饒市高三一模理綜化學(xué)試題附參考答案
評(píng)論
0/150
提交評(píng)論