人員信息管理系統(tǒng)課程設(shè)計(jì)_第1頁(yè)
人員信息管理系統(tǒng)課程設(shè)計(jì)_第2頁(yè)
人員信息管理系統(tǒng)課程設(shè)計(jì)_第3頁(yè)
人員信息管理系統(tǒng)課程設(shè)計(jì)_第4頁(yè)
人員信息管理系統(tǒng)課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

課程設(shè)計(jì)報(bào)告課程: 人員信息管理系學(xué)號(hào):姓名:班級(jí):教師:徐州師范大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院《課程設(shè)計(jì)指導(dǎo)書》一、 課程設(shè)計(jì)的目的(1)熟練掌握C++語(yǔ)言的基本知識(shí)和技能;(2)掌握面向關(guān)于象程序設(shè)計(jì)的基本思路和方法;(3)能夠利用所學(xué)的基本知識(shí)和技能,解決簡(jiǎn)單的面向關(guān)于象程序設(shè)計(jì)問(wèn)題。(4)制作“人員信息管理系統(tǒng)。二、 設(shè)計(jì)名稱人員信息管理系三、 設(shè)計(jì)要求(1)(部門(必需經(jīng)過(guò)計(jì)算得到)等等其他信息;根據(jù)人員信息表,建立只含有姓名和年齡的信息簡(jiǎn)表();使用繼承的方法構(gòu)造3個(gè)類(10個(gè)人員信息;編寫同名isplay()成員函數(shù),用來(lái)輸出數(shù)組的內(nèi)容;(5)按不同類別輸出人員信息,比如按系輸出教師信息(可選功能);;抽取并且計(jì)算人員的平均年齡;檢索(查找)指定信息(參考系統(tǒng)界面如下:1—增加一位人員(教師、學(xué)生)記錄2—顯示全部人員記錄計(jì)算人員平均年齡刪除一個(gè)人員記錄按崗位(部門)可選)6—按姓名檢索一切信息7—結(jié)束程序運(yùn)行四、設(shè)計(jì)進(jìn)程(1)分析題目(2)建立Time,people類,以及People類的兩個(gè)繼承類Teacher,Stuent類(3)定義People類的成員函數(shù):People(); //構(gòu)造函數(shù),默認(rèn)現(xiàn)今是2011virtual voi從文件錄入virtual voi//從鍵盤錄入virtual voi//添加人員virtualvoiispla(; /顯示人員信息virtualvoiisplaypart(char//按部門輸virtualvoicheckname(char//按姓名檢索virtualvoicheckyea(int; /按年齡檢virtualintaverag(; /計(jì)算平均年virtualvoiel(charn[])=0; //按姓名刪除virtualvoiel(int); //按位置刪除(4)建立main函數(shù)(5)優(yōu)化界面五、設(shè)計(jì)細(xì)則將具體日期year,month,ay成員數(shù)據(jù)定義為Time.類外訣別實(shí)現(xiàn)各個(gè)類的具體實(shí)現(xiàn),將PeopleTeacher,Stuent類的虛基類。(3)設(shè)計(jì)main()函數(shù)。定義類的關(guān)于象Teacherteacher1,Stuentstuent1,用case語(yǔ)句選擇關(guān)于類關(guān)于象的相關(guān)操作。定義People六、說(shuō)明在選擇類關(guān)于象操作編號(hào)時(shí),如果輸入的字符不合法,跳出并且再次輸入,直至輸入合法.姓名姓名學(xué)號(hào)班級(jí)1071姓名分?jǐn)?shù)性別班級(jí)在本項(xiàng)目中的分工趙軻90男1071課題組成員王文聞85男1071管昌舉85男1071People類,兩個(gè)繼優(yōu)化程序成員函數(shù)的具體實(shí)件操作Time面優(yōu)化課程名稱人員信息管理系統(tǒng)課程性綜合性質(zhì)設(shè)計(jì)時(shí)間20110901日—-2011年0914日設(shè)計(jì)名稱人員信息管理系統(tǒng)設(shè)計(jì)要求設(shè)計(jì)思路與設(shè)計(jì)進(jìn)程

(1)崗位(部門)、參加工作時(shí)間和年齡(必需經(jīng)過(guò)計(jì)算得到)等;(;使用繼承的方法構(gòu)造3(師類和學(xué)生類——派生類)使用相應(yīng)的關(guān)于象放置10個(gè)人員信息;(4)編寫同名isplay()用來(lái)輸出數(shù)組的內(nèi)容;(5)按不同類別輸出人員信息,比如按系輸出教師信息(功能;(6),運(yùn)算符時(shí),需要滿足這個(gè)要求;(7)抽取并且計(jì)算人員的平均年齡;(8)查找)指定信息(如按姓名檢索、按年齡檢索;(9)顯示年齡分布的圖形;參考系統(tǒng)界面如下:1-增加一位人員(教師、學(xué)生)記錄2—顯示全部人員記錄3—計(jì)算人員平均年齡4—?jiǎng)h除一個(gè)人員記錄5—按崗位(部門)輸出人員信息(可選)6—按姓名檢索一切信息7—結(jié)束程序運(yùn)行(1)分析題目(2)Time,peoplePeopleTeacher,Stuent(3)定義People類的成員函數(shù):Peopl(; /構(gòu)造函數(shù),默認(rèn)現(xiàn)今是2011年virtualvoiA1()=0;//從文件錄入virtualvoiA2()=0;//從鍵盤錄入virtualvoiA()=0;//添加人員virtualvoiisplay(); //顯示人員信息virtualvoiisplaypart(charp[]); //按部門輸virtualvoicheckname(charn); /按姓名檢索virtualvoicheckyear(int); //按年齡檢索virtualintaverage; /計(jì)算平均年齡virtualvoiel(charn[])=0;//按姓名刪除virtualvoie(int; /按位置刪除(4)建立main函數(shù)(5)優(yōu)化界面計(jì)劃:9月1日-9月2日,分析人員信息管理系統(tǒng)的需求并且抽象出people,time,及兩個(gè)繼承類;9月3日,小組成員構(gòu)想大體思路并且明確分工;9499(969月10日,一切程序代碼匯總,進(jìn)行調(diào)試與運(yùn)行,記錄存在的問(wèn)題;9119149月15日,書寫課程設(shè)計(jì)指導(dǎo)書;計(jì)劃與進(jìn)度 9月16日,上交課程設(shè)計(jì)相關(guān)材料。進(jìn)度:91929月3日-9月4日,小組成員構(gòu)想大體思路并且明確分工;95911數(shù)據(jù)處理方式9月8日小組成員察看進(jìn)度;9129月13日,分析運(yùn)行結(jié)果,查找錯(cuò)誤,完備程序,優(yōu)化界面;9月14日,書寫課程設(shè)計(jì)指導(dǎo)書;9月16日,上交課程設(shè)計(jì)相關(guān)材料。任課教意 見(jiàn)說(shuō) 明設(shè)計(jì)名稱:人員信息管理系統(tǒng) 日期:2010年9月1 日設(shè)計(jì)內(nèi)容:函數(shù)申明與定義設(shè)計(jì)目的與要求:目的:關(guān)于C++實(shí)例化應(yīng)用。要求:(1),(部門和年齡(必需經(jīng)過(guò)計(jì)算得到)等等其他信息;根據(jù)人員信息表,建立只含有姓名和年齡的信息簡(jiǎn)表(可選功能;使用繼承的方法構(gòu)造3派生類10個(gè)人員信息;(4)編寫同名isplay()成員函數(shù),用來(lái)輸出數(shù)組的內(nèi)容;比如按系輸出教師信息(可選功能;.,也會(huì)因不小心引抽取并且計(jì)算人員的平均年齡;(8檢索(指定信息(如按姓名檢索、按年齡檢索;(9)顯示年齡分布的圖形;:1—增加一位人員(教師、學(xué)生)2-顯示全部人員記錄3—計(jì)算人員平均年齡4-刪除一個(gè)人員記錄5—按崗位(部門)輸出人員信息(可選)6—按姓名檢索一切信息7—結(jié)束程序運(yùn)行設(shè)計(jì)環(huán)境或器材、原理與說(shuō)明:設(shè)計(jì)環(huán)境:VC6.0操作環(huán)境原理:類的構(gòu)造與使用設(shè)計(jì)進(jìn)程(步驟)或程序代碼:#inclue<iostream>#inclue〈string>#inclue<fstream.h〉#inclue〈stlib.h>#efinemaxnum2000 //fstreamiofile;//Time類建立,用以記錄日期,囊括年月日classTime{public:intyear,month,ay;private:;//infor類建立,用以記錄人員信息,囊括姓名,性別,出生日期,編號(hào),工作崗位,工作時(shí)間,年齡等classinfor{public:intyear;charname[30];charcharcharTimebirthtime;Timeworktime;frienistrea&operator(istream&inpuinfo&; /運(yùn)算符重載,能為友元frienostream&〈(ostream&output,infor&T); //運(yùn)算符重載,<〈frienintoperator-(Time&&運(yùn)算符重載private:};//People類建立用以提供各種功能操作,是虛基classPeople //虛基類{public:People(); 構(gòu)造函數(shù),默認(rèn)現(xiàn)今是2011virtualvoiA1()=0; //讀取文件信息virtual voi從鍵盤錄入virtual voi//添加人員virtualvoiispla(; /顯示人員信息virtualvoiisplaypart(charp[]); 按部門輸virtualvoicheckname(charn; /按姓名檢索virtualvoicheckyear(int//按年齡檢索virtualintaverage(); //計(jì)算平均年齡virtualvoiel(char//按姓名刪除virtualvoiel(int//按位置刪除protecte:inforata[maxnum];Timenow;intlength; 記錄人員總數(shù)};//Teacher類建立PeopleclassTeacher:virtualpublicPeople{public:voiA1();voiA2();voiA();voiispla(;voiel(inti);voiel(char;//Stuent類建立,公有繼承PeopleclassStuent:virtualpublicPeople{public:voiA1();voiA2();voiA();voiisplay();voiel(inti);voiel(char[;};//People類的具體實(shí)現(xiàn)People::People() 構(gòu)造函{length=0;2011now。month=1;now。ay=1;}voiPeople::isplay()//isplay函數(shù){inti;for(i=0;i<length;i++)cout<〈ata[i];}voiPeople::isplaypart(charp[]) //isplaypart函數(shù){inti,c;for(i=0;i<length;i++)if(strcmp(ata[i]。workpart,p)==0){cout<〈”請(qǐng)選擇輸出:1-姓名2-性別3—編號(hào)4-工作崗位5-出生日期6-工作時(shí)間7—年齡8-返回”<<enl;while(cin>>c){switch(c){case:cout<〈”姓名:”<<ata[i]。name<<enl;break;case2:〈”性別<ata[i].sex<<enl;break;caseata[i].numenl;break;case4:cout〈<"工作地點(diǎn):”〈ata[i]。workpart<〈enl;break;case:cou〈〈ata[.birthtimyear〈"<at[。birthtime。month"ata[i].birthtime。"<<enl;break;case6:cout〈<"工作時(shí)間:”<<ata[i]。worktime。year<〈""<<ata[].worktim。mont〈""<<at[。worktim。a〈enl;break;case7:cout<”年齡:〈ata[。yea<enl;brea;case8:gotoloop;efault:cout<〈”操作錯(cuò)誤!"〈<enl;}}loop:; //返回}}voiPeople::checkname(char//checkname函數(shù){inti;for(i=0;i<length;i++)if(strcmp(ata[i].name,n)==0)cout〈ata[i];}voiPeople::checkyear(int//checkyear函數(shù){inti;for(i=0;i〈if(ata[。year==m)cout<<ata[i];}//計(jì)算平均年齡intPeople::average(){inti,sum=0;for(i=0;i<length;i++)sum+=ata[i].year;returnsum/length;}//按編號(hào)刪除人員信息voiPeople::el(int{intj;if(i〈1||i>length)cout<<”不存在第”<〈i<<"個(gè)元素"<<enl;for(j=i;j<length;j++)ata[j-1]=ata[j];length—-;}//從文件中讀取數(shù)據(jù)voi{iofile.open(”Stuent_information。txt”,ios::in|ios::binary);while(iofile.seekg(ios::cur){iofil。seekg(lengt*sizeo(at[length]),iosbe;iofile.rea((char*&atlengt],sizeo(ata[lengt];length++;}People:el(length);cout〈<”添加人員信息成功"〈<enl;iofile.close();}//從鍵盤錄入信息voi{charc;。txt,ios::ou|ios::binar;o{cin>>ata[length];at[lengtyear=no—ata[length].birthtim;iofile.writ((cha*)&at[length,sizeo(at[lengt);cout<<"〈enl;length++;cout<<"contine(Y|N)?”;cin>>c;}while('y'==c||’Y’==c);iofile。close();}//添加人員信息voiStuent::A(){iofile.open("Stuent_information.txt”,ios::app|ios:out|ios::binary);cin〉>ata[length];ata[length].year=now-ata[length]。birthtime;iofile.write(char*)&ata[length],sizeof(ata[length]));cout<〈"添加人員信息成功”<〈enl;length++;iofile。close();}//顯示信息voiStuent:isplay(){***<en;if(length==0)cout<<〈intfor(i=0;i<length;i++)cout〈ata[i];}//按姓名刪除函數(shù)voiStuent::el(charn[]){inti,j,k;for(i=0;i<length;i++)i(strcmp(ata[。{k=i+1;break;}if(k〈1)cout<<"不存在姓名〈的人員信息for(j=k;j〈length;j++)ata[j—1]=ata[j];length——;cout<〈”刪除成功"<<enl;}//按編號(hào)刪除voiStuent:el(inti){intj;if(i<1||i>length)cout<”不存在第〈<i<for(j=i;j<length;j++)ata[j—1]=ata[j];length-—;cout<〈”刪除成功"<〈enl;}//讀取文件voiTeacher::A1(){iofile.open(”Teacher_information。txt”,ios::in|ios::binary);while(iofile.seekg(sizeof(ata[length]),ios::cur)){i(iofile.seekg(lengt*sizeof(ata[lengt),io::be))iofil。rea(char*)&ata[lengt,sizeof(ata[lengt);elsebreak;length++;}People::el(length);cout〈<"iofile.clos(;}//從鍵盤錄入信息voiTeacher:A2(){charcc;iofile。open("Teacher_information。txt”,ios:in|ios::out|ios::binary);o{cin>>at[lengt;at[length].year=nw

ata[leng。birthtim;iofile.wrecha*)&ata[length,sizeof(ata[lenh<enl;length++;cou〈)"cc;}while(’y’==cc||'Y==cciofile.coe;}/添加人員信息voiTeache:A(){iofieopen(”Teacher_informatotxt”,sapp|ios::otios::binary);cin〉ata[lengh;ata[length].year=now-tlength].birthtime;iofiewrit(char*)&at[lengt,sizeof(ata[len]enl;iofie}/顯示函數(shù)voiTeache:ispla(){cout<〈"*********************教師信息************************”<〈enl;if(0==length)intifor(i=0i;cout<<at[;}/刪除人員信息函數(shù),按姓名voi{

:el(charn[])intij,;for(i0i<length;i++)i(strcm(atai{

.name,n)==0)k=i+1;break;}k1)cout<<"不存在姓名"〈<n〈"的人員信息";for(j=k;j<length;j++)ata[j-1]=ata[j];length-—;cout〈<"刪除人員信息成功"〈enl;}//刪除人員信息函數(shù)voi{intj;if(i<1||i〉length)cout<〈”不存在第"〈<i<〈”個(gè)元素”;for(j=i;j<length;j++)ata[—1]=ata[;length--;cout〈<"刪除成功”<〈enl;}//運(yùn)算符重載函數(shù),〉>istream&〉(istream&input,infor&T){inty,m,;cou〈請(qǐng)輸入姓名(以空格作為結(jié)束的標(biāo)志:〈input.getline(T。name,20,'cout〈請(qǐng)輸入性別(〈input.getline(T.se,10,';cout<”編號(hào)(以空格作為結(jié)束的標(biāo)志<<enl;input.getline(T。num,20,cout〈〈”工作崗位(以空格作為結(jié)束的標(biāo)志):"〈<enl;input。getline(T.workpart,20,’');cout〈<”請(qǐng)輸入出生日期:"〈<enl;input>〉y>〉m>〉;T。birthtime.year=y;if(m〉=1&&m<=12){}else{}

T.birthtime。month=m;T.birthtime.month=1;T.birthtime。ay=(〉=1&&<=30)?:1;cout<〈"參加工作時(shí)間:"〈<enl;input>〉〉T。worktime。month=(m〉=1&&m〈=12)?m:1;T.worktime。ay=(〉=1&&〈=30)?:1;returninput;}//運(yùn)算符重載函數(shù),<<ostream&operator〈(ostream&output,infor&T){cout<;output〈<T。name<〈enl;cout<〈”性別:”;output〈<T。sex〈<enl;cout<<”編號(hào):”;output<〈。num<<enl;cout〈〈cout〈;〈year<<"〈〈〈birthtime.ay<<enl;cout<〈參加工作時(shí)間:”;output〈<T。worktime.year<<"”<<T。worktime。month<<"”〈<T。worktime。ay〈enl;cout〈〈”年齡:";output〈<T。year〈enl;returnoutput;}//運(yùn)算符-重載intoperator—(Time&t1,Time&t2){return(t1。year-t2.year);}//菜單函數(shù)voishowcaian(){cout〈"****************歡迎使用人員信息管理系統(tǒng)********************”<<enl;cout〈<”* 0—讀取文件信息 *"〈enl;〈<"* 1-錄入全部人(教師學(xué)生信息 〈enl;cout<* —增加一位人(教師學(xué)生信息 *〈cout<〈"* 3—顯示全部人員信息 "<<enl;cout〈<”* 4-計(jì)算人員平均年齡 *”〈enl;cout〈<”* 5-刪除一個(gè)人員信息 *"<〈enl;cou〈* —按部門輸出人員信息可選) *〈cout〈<"* 7—按姓名或年齡檢索一切信息 *"<<enl;cout〈"* 8—顯示菜單目錄 *”<<enl;cout〈"* 9結(jié)束運(yùn)行 〈en;cout<〈"************************************************************"<〈enl;}//主函數(shù)int{Teacherteacher1; Stuentstuent1;People*p1=&teacher1;People*p2=&stuent1;intc,k,l,i;charshowcaian;for(;;){cout<<”請(qǐng)選擇操作:";cin>>c;switch(c){case0:{〈enl;

}case{}case{

cout〈<"**********正在讀取教師信息************”<p1->A1;cout******正在讀取學(xué)生信息p2->A1();break;cout<<”**********輸入教師信息************”<<enl;p1—>A2();cout<〈”**********輸入學(xué)生信息************"<<enl;p2—〉A(chǔ)2();break;cout<〈”*****1-教師操作 2—學(xué)生操作cin>〉k;if(k==1)p1-〉A(chǔ)();elseif(2==k)p2-〉A(chǔ)();elsecout〈<"操作錯(cuò)誤"〈enl;}case{}case{

p1—〉isplay();p2〉cout<〈"*****1-教師操作 學(xué)生操作*****"<〈cin〉if(k==1)cout〈p1〉elseif(k==2)cou〈<<p—>averag()<<en;elsecout<<"操作錯(cuò)誤”〈<enl;}case5:

break;{cout<〈"*****1—教師操作cin>〉k;if(k==1)2—學(xué)生操作*****"<〈enl;{cout<<”1-按姓名刪除cin〉l;if(l==1)2-按位置刪除"<〈enl;{〈<enl;

cou〈<"請(qǐng)輸入要?jiǎng)h除人員的姓名(以空格作為結(jié)束的標(biāo)志ci。getline(nam,2,’p1-〉el(nam);}elseif(l==2){}else}

cout〈〈”請(qǐng)輸入要?jiǎng)h除人的位置:"<<enl;cin〉>i;p1—〉el(i);cout<<”操作錯(cuò)誤”〈enl;elseif(k==2){cout〈<”1—按姓名刪除 2—按位置刪除cin>>l;if(l==1){〈<enl;

cout<〈”請(qǐng)輸入要?jiǎng)h除人員的姓名(以空格作為結(jié)束的標(biāo)志cin.getline(nam,20,’’);p2->el(nam);}elseif(l==2){}else

}else

cou〈cini;p2〉el(;co

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論