高校人事管理系統說明書_第1頁
高校人事管理系統說明書_第2頁
高校人事管理系統說明書_第3頁
高校人事管理系統說明書_第4頁
高校人事管理系統說明書_第5頁
已閱讀5頁,還剩25頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

目錄TOC\o"1-1"\h\z\u1問題描述42外形設計52.1系統設計52.2系統類層次結構圖53.1類和對象的設計83.1.1類屬性詳細設計83.1.2類行為詳細設計104系統測試和結果12總結17參考文獻18概括人事系統作為信息化管理系統的一個分支,逐漸成為高校信息化建設的重要組成部分。信息查詢管理系統。實現數據的添加、查找、修改、刪除等操作,對異常信息進行錯誤提示。關鍵字:添加、刪除、修改、讀取、顯示、搜索、計數、保存。前言本設計以計算機與通信學院教師人事管理為背景,設計了一套易于操作的人事管理系統。按照任務書的要求,分步進行設計,最終基本完成了課程設計的要求。由于本人水平有限,有些高要求還沒有實現。人事管理系統是典型的信息管理系統(MIS),其開發主要包括后臺數據庫的建立和維護以及前端應用程序的開發。對于前者,要求建立一個數據一致性和完整性強、數據安全性好的庫。對于后者,要求應用程序功能齊全且易于使用。在本課程設計中,先后使用了TC2.0、VC++6.0等開發工具。最后在VC下進行調試和生成可執行文件。在這個簡單的人事管理程序中,使用了鏈表的動態數據結構。鏈表是最簡單的動態數據結構類型。它是由前后鏈指針連接的幾個有限節點的集合。連接是前一個節點的尾指針指向下一個節點的起始地址,從而形成鏈,所以是鏈的一種。線性動態數據結構。本方案采用動態存儲分配技術,可以有效利用有限的存儲空間。要實現它,必須使用malloc()和free()函數。本程序主要使用鏈表的插入、刪除和查詢。使用鏈表。文本1問題描述編寫一個C++程序,包含高校在職人員(行政人員、教師、普通人員)、離退休人員、再就業人員、臨時工等主要教職工類型,并存儲高校教職工的人事檔案信息。這些人員:編號、性別、年齡、職務、職稱、政治面貌、最高學歷、來院時間等。提供功能強大、安裝部署方便、使用成本低的信息查詢管理系統,為學校全校管理的教職員工提供簡便的操作。實現數據的添加、查找、修改、刪除等操作,對異常信息進行錯誤提示。系統可增刪人員變更,可修改查詢,可存儲操作記錄。2外形設計2.1系統設計編程的基本目標是利用算法對問題的原始數據進行處理,以獲得預期的效果。但這只是編程的基本要求。全面提高程序質量,提高編程效率,使程序具有良好的可讀性、可靠性、可維護性和良好的結構,編寫出好的程序應該是每個程序員追求的目標。為此,我們必須掌握正確的編程方法和技術。而C++語言是一種結構化語言。它層次結構清晰,易于以模塊化方式組織程序,易于調試和維護。因此,采用結構化編程方法,對管理系統進行自上而下、逐步細化、模塊化的設計。

2.1.1系統分析高校人事管理系統需要完成的主要功能有:人員信息錄入,包括:編號、性別、年齡、職務、職稱、政治面貌、最高學歷、任職時間、住院時間等。人員信息查詢,包括:編號、性別、年齡、職務、職稱、政治面貌、最高學歷、任職時間、來院時間等。修改人事信息。增刪功能:可根據學院的變化增刪記錄;保存功能:可以對輸入的數據進行相應的存儲,需要重載插入和提取器才能完成數據的保存和打開。2.2系統類層次結構圖定義兩個類,一個人類,其中包含在職人員(行政人員、教師、普通職員)、退休人員、重新雇用人員和臨時工。員工信息包括序列號、性別、年齡、職位、頭銜、政治派別、最高學歷、入職時間。定義一個學校班級,在其中添加、刪除、修改、搜索、顯示和退出數據。班級人無效getag(intas)整數getage()字符*getname()人*getnext()整數getnum()字符*getparty()字符*getpos()字符*getsex()字符*getstudy()字符*gettechpos()字符*gettime()字符*gettype()無效setnext(人*下一個)班級學校voidadd()//添加新信息boolfind1()//按數字查找boolfind2()//搜索依據無效負載()無效pri()voidprintf(intr)//獲取信息voidprintf1(person*ahead)//輸出信息boolremovedatnum()//刪除信息voidsave()//將文件保存到文件中School()//無參構造函數~School()//析構函數,刪除每個指針!boolupperson()//修改信息類結構圖personpersonSchool系統功能框圖高校人事管理系統高校人事管理系統添加人員信息修改人員信息退出數據裝入查找人員信息刪除人員信息顯示人員信息3詳細設計3.1類和對象的設計班級人schools;//定義對象班級班級學校3.1.1類屬性的詳細設計班級人班級人{私人的:詮釋沒有;//數字字符類型[20];//員工類型字符名稱[20];//字符性[10];//性別年齡;//年齡字符時間[20];//入院時間字符位置[20];//位置字符技術[20];//標題炭黨[20];//聚會字符研究[30];//最高學位人*mynext;//指針語言上市:person(intnnum,charntype[],charnname[],charnsex[],intnage,charntime[],charnpos[],charntechpos[],charnparty[],charnstudy[]){沒有=nnum;strcpy(type,ntype);//將ntype的值復制到typestrcpy(名稱,名稱);strcpy(性別,nsex);年齡=nage;strcpy(時間,ntime);strcpy(pos,npos);strcpy(techpos,ntechpos);strcpy(派對,nparty);strcpy(研究,研究);我的下一個=NULL;}schools;//定義對象班級班級學校{私人的:人*myfirst;intfirstnum;上市:School()//無參構造函數{myfirst=NULL;//空指針}3.1.2類行為的詳細設計班級人無效getag(intas)整數getage()字符*getname()人*getnext()整數getnum()字符*getparty()字符*getpos()字符*getsex()字符*getstudy()字符*gettechpos()字符*gettime()字符*gettype()無效setnext(人*下一個)班級學校voidadd()//添加新信息boolfind1()//按數字查找boolfind2()//搜索依據無效負載()無效pri()voidprintf(intr)//獲取信息voidprintf1(person*ahead)//輸出信息boolremovedatnum()//刪除信息voidsave()//將文件保存到文件中School()//無參構造函數~School()//析構函數,刪除每個指針!boolupperson()//修改信息4系統測試和結果1.運行第一個界面:2.人員增刪人員3.修飾語和詢問者4統計學家和數據存儲5顯示信息和退出界面總結三周的算法和數據結構設計讓我受益匪淺。尤其是對編程的相關知識有更深入的了解。在課程設計中,我們可以將所學的理論知識與實踐相結合,在待開發的項目中逐步成長。雖然我們對使用這些編程語言知識不是很精通,但我相信我們也在成長。發現問題,提出問題,然后解決問題,這樣我們才能彌補自己的不足,找到新的學習方向。在本課程設計中,我設計了一個人事管理系統,基本滿足了人員的增刪、查詢、編輯、保存和統計功能。感覺更方便用戶操作,操作簡單,從而達到更有效的對高校人員進行系統管理的目的,而且速度更快更直接,可以達到用戶想要的效果達到。在本次課程設計中,我一邊設計課程一邊探索,發現要理論與實踐充分結合,達到一個新的水平,不僅需要扎實的基本功,還需要扎實的實踐訓練。這說明學習基礎知識是理論付諸實踐的前提。在這次課程設計中,我對之前的知識進行了很多的鞏固和深化。當然,在此基礎上,我學到了很多新的實用技能。我希望將來學校或學院可以提供更多關于學生的信息。這方面的實訓機會,雖然學生們學到了一點基礎知識,但我覺得這對于計算機專業的學生來說還遠遠不夠。參考[1]魏星,林小茶。C++面向對象編程教程。:清華大學,1996.2004.[2]國豐.C++編程實踐課程。:清華大學,1996.[3]松梅.C++語言教程。中國電子科技大學,1993.[4]嚴龍.C++程序員C++指南。航空航天大學,1992年。[5]王博.面向對象的建模、設計技術和方法。希望計算機公司,1990年。至經過這三周的課程設計,我們收獲了很多課堂上學不到的知識。首先要感受一下學校給我們安排的算法和數據結構設計實踐,然后再感受一下老師對我們的熱情。指導和幫助,他教會了我們如何解決問題,讓我的編程更加順利,我完全掌握了設計程序的方法。我們也感謝許多同學的幫助,他們的幫助對我們來說也是必不可少的。總之,正是在他的幫助下,我才能順利完成程序設計,在這里我想對他說:我很感動!感謝所有幫助過我的老師和同學們!附錄-源程序#include<iostream.h>#include<字符串.h>#include<fstream.h>#include<iomanip.h>班級人{//persons類似于擁有數據成員私人的: 詮釋沒有;字符類型[20]; 字符名稱[20]; 字符性[10]; 年齡; 字符時間1[20]; 字符時間2[20]; 字符位置[20]; 字符技術[20]; 炭黨[20]; 字符研究[30]; 人*mynext;上市://構造函數一person(intnnum,charntype[],charnname[],charnsex[],intnage,charntime1[],charntime2[],charnpos[],charntechpos[],charnparty[],charnstudy[]){沒有=nnum;strcpy(類型,ntype);strcpy(名稱,名稱);strcpy(性別,nsex);strcpy(time1,ntime1);年齡=nage;strcpy(time2,ntime2);strcpy(pos,npos);strcpy(techpos,ntechpos);strcpy(派對,nparty);strcpy(研究,研究);我的下一個=NULL;}//構造函數二person(intnnum,charntype[],charnname[],charnsex[],intnage,charntime1[],charntime2[],charnpos[],charntechpos[],charnparty[],charnstudy[],person*next)/*在一所大學中,主要人員有:在職人員(行政人員、教師、普通職員)、退休人員、再聘用人員和臨時工。現在,需要存儲這些人員的人事檔案信息:編號、性別、年齡、職位、職稱、政治面貌、最高文化程度、在職時間、住院時間。*/{沒有=nnum;strcpy(類型,ntype);strcpy(名稱,名稱);strcpy(性別,nsex);strcpy(time1,ntime1);年齡=nage;strcpy(time2,ntime2);strcpy(pos,npos);strcpy(techpos,ntechpos);strcpy(派對,nparty);strcpy(研究,研究);我的下一個=下一個;}無效setnext(人*下一個){我的下一個=下一個;}人*getnext(){返回我的下一個;}//獲取對象的各個私有數據函數整數getnum(){返回不;}字符*getname(){返回名稱;}字符*getsex(){返回性別;}字符*getpos(){返回位置;}字符*gettechpos(){返回techpos;}字符*gettime1(){返回時間1;}字符*gettime2(){返回時間2;}字符*getparty(){回歸方;}字符*getstudy(){回國學習;}整數getage(){返回年齡;}無效getag(intas){年齡=as;}字符*gettype(){返回類型;}};班級學校{私人的:人*myfirst;intfirstnum;上市:學校(){我的第一個=NULL;}//構造函數,初始化數據School(intnnu,charntyp[],charnnam[],charnse[],intnag,charntim1[],charntim2[],charnpo[],charntechpo[],charnpart[],charnstud[]){我的第一個=新人(nnu,ntyp,nnam,nse,nag,ntim1,ntim2,npo,ntechpo,npart,nstud);}//在末尾插入新的成員函數voidinsertatlast(intnnum,charntype[],charnname[],charnsex[],intnage,charntime1[],charntime2[],charnpos[],charntechpos[],charnparty[],char研究[]){人*下一個=我的第一個;如果(下一個==NULL)我的第一個=新人(nnum,ntype,nname,nsex,nage,ntime1,ntime2,npos,ntechpos,nparty,nstudy);別的{而(下一個->getnext()!=NULL)下一個=下一個->getnext();next->setnext(新人(nnum,ntype,nname,nsex,nage,ntime1,ntime2,npos,ntechpos,nparty,nstudy,next->getnext()));}}//從鍵盤輸入數據并創建相應的對象函數,無效輸入(intr){詮釋;charntype[20],nname[20],nsex[20],ntime1[20],ntime2[20],npos[20],ntechpos[20],nparty[20],nstudy[20];cout<<"請輸入編號為"<<r<<""<<endl;cout<<"輸入員工分類代碼[行政人員、教師、普通人員、離退休人員、再聘用人員、臨時工]:"<<endl;cin>>n型;cout<<"輸入:"<<endl;cin>>nname;cout<<"請輸入性別:"<<endl;cin>>nsex;cout<<"請輸入年齡:"<<endl;肉桂;cout<<"加入工作時間:"<<endl;cin>>ntime1;cout<<"請輸入住院時間:"<<endl;cin>>ntime2;cout<<"輸入標題[無,部門級,處級,地級]:"<<endl;cin>>npos;cout<<"輸入職位[無,初級,中級,高級]:"<<endl;cin>>ntechpos;cout<<"進入入黨[群眾、黨員、黨員]:"<<endl;cin>>nparty;cout<<"進入教育[小學、初中、高中、學院、大學、碩士、博士]:"<<endl;cin>>研究;insertatlast(r,ntype,nname,nsex,nage,ntime1,ntime2,npos,ntechpos,nparty,nstudy);}//從鍵盤輸入數據,并創建對應的對象函數2,無效輸入1(人*提前){cout<<"編號:"<<setiosflags(ios::left)<<""<<ahead->getname()<<endl;cout<<"性別:"<<setiosflags(ios::left)<<""<<ahead->getsex()<<endl;cout<<"年齡:"<<setiosflags(ios::left)<<""<<ahead->getage()<<endl;cout<<"員工類型:"<<setiosflags(ios::left)<<""<<ahead->gettype()<<endl;cout<<"位置:"<<setiosflags(ios::left)<<""<<ahead->getpos()<<endl;cout<<"標題:"<<setiosflags(ios::left)<<""<<ahead->gettechpos()<<endl;cout<<"教育:"<<setiosflags(ios::left)<<""<<ahead->getstudy()<<endl;cout<<"政治:"<<setiosflags(ios::left)<<""<<ahead->getparty()<<endl;cout<<"到醫院的時間:"<<setiosflags(ios::left)<<""<<ahead->gettime1()<<endl;cout<<"工作時間:"<<setiosflags(ios::left)<<ahead->gettime2()<<endl;}//輸出數據函數二無效pri(){人*ahead=myfirst;cout<<"人數、性別、年齡、員工類型、職稱、學歷、政治面貌而(提前!=NULL){cout<<setiosflags(ios::left)<<setw(4)<<ahead->getnum()<<setiosflags(ios::left)<<setw(6)<<ahead->getname()<<setiosflags(ios::left)<<setw(5)<<ahead->getsex()<<setiosflags(ios::left)<<setw(4)<<ahead->getage()<<setiosflags(ios::left)<<setw(10)<<ahead->gettype()<<setiosflags(ios::left)<<setw(6)<<ahead->getpos()<<setiosflags(ios::left)<<setw(6)<<ahead->gettechpos()<<setiosflags(ios::left)<<setw(6)<<ahead->getstudy()<<setiosflags(ios::left)<<setw(9)<<ahead->getparty()<<setiosflags(ios::left)<<setw(12)<<ahead->gettime1()<<ahead->gettime2()<<endl;前進=前進->getnext();}}//添加員工功能無效添加(){整數i,a,b;人*p1=我的第一個;如果(p1==NULL){cout<<"請輸入號碼:";辛>>我;輸入(一);}別的{如果(p1->getnext()==NULL){a=p1->getnum()+1;輸入(一);}別的{而(p1->getnext()!=NULL){p1=p1->getnext();}b=p1->getnum()+1;輸入(b);}}}//刪除人員函數bool刪除atnum(){詮釋bh;人*ahead=myfirst;人*跟隨=前進;cout<<"請輸入您要刪除的人的號碼:";辛>>bh;如果(提前==NULL)返回假;別的如果(提前->getnum()==bh){myfirst=myfirst->getnext();cout<<"編號為"<<bh<<"的成員將被刪除"<<endl;提前刪除;返回真;}別的{前進=前進->getnext();而(提前!=NULL){如果(提前->getnum()==bh){跟隨->setnext(ahead->getnext());cout<<"編號為"<<bh<<"的成員將被刪除\n";提前刪除;返回真;}跟隨=前進;前進=前進->getnext();}cout<<"要刪除的成員不存在!"<<endl;返回假;}}//找人功能布爾find1(){內部標識;人*ahead=myfirst;人*跟隨=前進;cout<<"請輸入號碼:"<<endl;cin>>id;cout<<endl;cout<<"信息如下:"<<endl;如果(提前==NULL){cout<<"沒有人員信息!"<<endl;返回假;}別的{而(提前!=NULL){如果(提前->getnum()==id){輸入1(提前);返回真;}別的{跟隨=前進;前進=前進->getnext();}}cout<<"沒有關于此人的信息:"<<endl;返回假;}}//找人功能布爾find2(){字符納米[20];人*ahead=myfirst;人*跟隨=前進;cout<<"輸入";辛>>納米;cout<<endl;cout<<"信息如下:"<<endl;如果(提前==NULL){cout<<"無人員信息"<<endl;返回假;}別的{而(提前!=NULL){if(strcmp(ahead->getname(),nm)==0){輸入1(提前);返回真;}別的{跟隨=前進;前進=前進->getnext();}}cout<<"查無此人:"<<endl;返回假;}}//計數函數無效統計(){詮釋xx,sz=0;cout<<"請選擇統計對象:"<<endl;cout<<"1名員工"<<endl;cout<<"2個黨員人數"<<endl;cout<<"3名女工"<<endl;cout<<"4具有高學歷和職稱人數"<<endl;cout<<"請選擇:";辛>>xx;開關(xx){情況1:{人*ahead=myfirst;如果(提前==NULL)cout<<"無人員信息"<<endl;別的{而(提前!=NULL){if(strcmp(ahead->gettype(),"管理員")==0||strcmp(ahead->gettype(),"教師")==0||strcmp(ahead->gettype(),"普通員工")==0){前進=前進->getnext();sz++;}別的前進=前進->getnext();}}cout<<"員工人數:"<<sz<<endl;};休息;案例2:{人*ahead=myfirst;如果(提前==NULL)cout<<"沒有人員信息\n";別的{而(提前!=NULL){if(strcmp(ahead->getparty(),"CCP成員")==0){前進=前進->getnext();sz++;}別的前進=前進->getnext();}}cout<<"中共黨員人數:"<<sz<<endl;};休息;案例3:{人*ahead=myfirst;人*跟隨=前進;如果(提前==NULL)cout<<"沒有人員信息\n";別的{而(提前!=NULL){if(strcmp(ahead->getsex(),"female")==0){前進=前進->getnext();sz++;}別的前進=前進->getnext();}}cout<<"女性員工人數:"<<sz<<endl;};休息;案例4:{人*ahead=myfirst;人*跟隨=前進;如果(提前==NULL)cout<<"無人員信息"<<endl;別的{而(提前!=NULL){if(strcmp(ahead->getstudy(),"PhD")==0||strcmp(ahead->getstudy(),"Master")==0&&strcmp(ahead->gettechpos(),"Advanced")==0){前進=前進->getnext();sz++;}別的前進=前進->getnext();}}cout<<"高學歷及職稱人數:"<<sz<<endl;};休息;}cout<<"統計結果:"<<sz<<endl;}boolupperson(){國際身份證;人*ahead=myfirst;人*跟隨=前進;cout<<"請輸入要修改的人的號碼:";cin>>iid;如果(提前==NULL){cout<<"無人員信息"<<endl;返回假;}別的{而(提前!=NULL){如果(提前->getnum()==iid){輸入1(提前);詮釋nu=-1;for(inti=1;nu!=0;i++){國際毫升;詮釋;字符[30];cout<<"請選擇要修改的內容:"<<endl;cout<<"1:2:性別3:年齡4:員工類型5:職位"<<endl;cout<<"6:職稱7:學歷8:政治觀9:來院時間10:上班時間"<<endl;cout<<"選擇(1-10):";辛>>毫升;開關(毫升){情況1:{cout<<"請輸入:";辛>>十;strcpy(follow->getname(),ty);};休息;案例2:{cout<<"請輸入性別:";辛>>十;strcpy(ahead->getsex(),ty);};休息;案例3:{cout<<"請輸入年齡:";辛>>毫升;前進->getag(mll);};休息;案例4:{cout<<"請輸入員工類型:";辛>>十;strcpy(ahead->gettype(),ty);};休息;案例5:{cout<<"請輸入標題:";辛>>十;strcpy(ahead->getpos(),ty);};休息;案例6:{cout<<"請輸入標題:";辛>>十;strcpy(ahead->gettechpos(),ty);};休息;案例7:{cout<<"請輸入學位:";辛>>十;strcpy(ahead->getstudy(),ty);};休息;案例8:{cout<<"請輸入政治狀態:";辛>>十;strcpy(ahead->getparty(),ty);};休息;案例9:{cout<<"請輸入您訪問的時間:";辛>>十;strcpy(ahead->gettime1(),ty);};休息;案例10:{cout<<"請輸入工作時間:";辛>>十;strcpy(ahead->gettime2(),ty);};休息;}返回真;}}別的{前進=前進->getnext();跟隨=前進;}}cout<<"沒有這樣的人"<<endl;返回假;}}//加載數據函數無效負載(){intnnum,nage;charntype[20],nname[20],nsex[20],ntime1[20],ntime2[20],npos[20],ntechpos[20],nparty[20],nstudy[20];ifstreamfperson;fperson.open("person.txt",ios::in);而(fperson.good()){fperson>>nnum>>ntype>>nname>>nsex>>nage>>ntim

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論