人口戶籍管理系統(tǒng)C++.doc_第1頁(yè)
人口戶籍管理系統(tǒng)C++.doc_第2頁(yè)
人口戶籍管理系統(tǒng)C++.doc_第3頁(yè)
人口戶籍管理系統(tǒng)C++.doc_第4頁(yè)
人口戶籍管理系統(tǒng)C++.doc_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

_*軟件課程設(shè)計(jì)實(shí)踐實(shí)驗(yàn)報(bào)告專 業(yè) 班 級(jí) :學(xué) 生 姓 名 :學(xué) 號(hào):實(shí)驗(yàn)項(xiàng)目名稱:實(shí)驗(yàn)項(xiàng)目性質(zhì):實(shí)驗(yàn)所屬課程:實(shí)驗(yàn)室(中心):指 導(dǎo) 教 師 :實(shí)驗(yàn)完成時(shí)間: 教師評(píng)閱意見: 簽名: 年 月 日實(shí)驗(yàn)成績(jī):-可編輯修改-目錄一 選題及說明 2二 系統(tǒng)編寫環(huán)境 2 2.1 軟件環(huán)境 2 2.2 硬件環(huán)境 2三 主要功能說明 2 3.1 信息輸入 2 3.2 信息查詢 2 3.3 信息刪除 2 3.4 信息修改 2 3.5 信息瀏覽 2四 功能設(shè)計(jì)及實(shí)現(xiàn) 3 4.1數(shù)據(jù)結(jié)構(gòu) 3 4.2界面設(shè)置 3 4.2.1 主界面 3 4.2.2 信息輸入界面 4 4.2.3 信息查詢界面 4 4.2.4 信息刪除界面 4 4.2.5 信息修改界面 5 4.2.6 信息瀏覽界面 5 4.3 功能實(shí)現(xiàn) 6 4.3.1 信息輸入功能 6 4.3.2 信息查詢功能 6 4.3.3 信息刪除功能 6 4.3.4 信息修改功能 6 4.3.5 信息瀏覽功能 6 4.3.6 退出系統(tǒng) 6五 程序源代碼 6六 結(jié)束語(yǔ) 20七 參考文獻(xiàn) 20一、選題及說明題目:人口戶籍信息管理系統(tǒng)人口戶籍信息管理系統(tǒng)是一個(gè)簡(jiǎn)易的管理個(gè)人和家庭信息的系統(tǒng),主要對(duì)個(gè)人和家庭的基本信息進(jìn)行管理,個(gè)人基本信息包括姓名、性別、出生日期、民族、政治面貌、宗教信仰、身份證編碼、聯(lián)系方式、住址和門牌號(hào),家庭的基本信息包括住址、人口數(shù)和門牌號(hào)。管理系統(tǒng)主要有信息輸入、信息查詢、信息刪除、信息修改和信息瀏覽五大功能。二、系統(tǒng)編寫環(huán)境 1.軟件環(huán)境:Windows 7(64位) Visual C+6.0 2.硬件環(huán)境:CPU I5 5200U RAM 8G 1600MHz 硬盤 500G 5400轉(zhuǎn)三、主要功能說明1. 信息輸入:由函數(shù)InPut()實(shí)現(xiàn),InPut()函數(shù)調(diào)用兩個(gè)子函數(shù),分別實(shí)現(xiàn)對(duì)個(gè)人和家庭基本信息的輸入,輸入后將輸入的內(nèi)容保存到容器中。2. 信息查詢:由函數(shù)Inquir()實(shí)現(xiàn),Inquiry()函數(shù)調(diào)用兩個(gè)子函數(shù),分別實(shí)現(xiàn)隔熱信息和家庭信息的查詢,其中個(gè)人信息查詢有三種方式,即姓名查詢、身份證查詢和門牌號(hào)查詢,門牌號(hào)查詢可能會(huì)有多個(gè)查詢結(jié)果。3. 信息刪除:由函數(shù)Delete()實(shí)現(xiàn),Delete()函數(shù)調(diào)用兩個(gè)子函數(shù),分別實(shí)現(xiàn)對(duì)個(gè)人和家庭的信息刪除。4. 信息修改:由函數(shù)Change()實(shí)現(xiàn),Change()函數(shù)調(diào)用兩個(gè)子函數(shù),分別實(shí)現(xiàn)對(duì)個(gè)人和家庭的信息進(jìn)行修改,對(duì)個(gè)人信息進(jìn)行修改時(shí)還可以選擇對(duì)某一項(xiàng)信息進(jìn)行修改。5. 信息瀏覽:由Look()函數(shù)實(shí)現(xiàn),實(shí)現(xiàn)機(jī)制和信息查詢函數(shù)基本相同,分為三中瀏覽方式,即姓名瀏覽、身份證編碼瀏覽和門牌號(hào)瀏覽。綜合所有功能,整個(gè)程序的簡(jiǎn)單流程圖如下:四、功能設(shè)計(jì)及實(shí)現(xiàn)(一)、數(shù)據(jù)結(jié)構(gòu):Person類中主要包含姓名(Name)、性別(Sex)、出生日期(Birth)、民族(Folk)、政治面貌(Pol_sta)、宗教信仰(Belief)、身份證編碼(ID)、聯(lián)系方式(Tel)、住址(Add)和門牌號(hào)(Num),F(xiàn)amily類中主要包含住址(Address)、門牌號(hào)(Number)和人口數(shù)(Pop)。(二)、界面設(shè)置:1.主界面:主界面顯示該系統(tǒng)的五大主要功能和操作提示,如下圖:2.信息輸入界面:信息輸入界面主要提示用戶輸入基本信息,如下圖:3.信息查詢界面:信息查詢界面主要提示用戶根據(jù)自己的需要輸入相關(guān)信息進(jìn)行查詢,如下圖:4.信息刪除界面:信息刪除界面主要是由用戶輸入要?jiǎng)h除信息的身份證編碼進(jìn)行信息刪除,如下圖:5.信息修改界面:信息修改界面主要由個(gè)人或家庭的基本信息組成,提示用戶選擇要修改的項(xiàng)目,用戶選擇進(jìn)行修改,如下圖:6. 信息瀏覽界面:信息瀏覽界面主要提示用戶選擇要進(jìn)行瀏覽的方式,有按姓名、按身份證號(hào)和按門牌號(hào)三種方式,如下圖:(三)、功能實(shí)現(xiàn):1.信息輸入功能:由函數(shù)InPut()調(diào)用兩個(gè)類中的Set()實(shí)現(xiàn),具體的信息輸入則用到標(biāo)準(zhǔn)輸入流cin和字符串輸入函數(shù)cin.get()、getline()實(shí)現(xiàn),執(zhí)行完輸入函數(shù)后,用 Per_vec.push_back()/Fam_vec.push_back()把輸入的數(shù)據(jù)內(nèi)容存到容器中。2.信息查詢功能:由函數(shù)Inquiry()實(shí)現(xiàn),信息查詢功能有三種查詢方式,即按照姓名查詢、按照身份證編碼查詢和按照門牌號(hào)查詢。三種查詢方式的實(shí)現(xiàn)機(jī)制都是利用字符串比較函數(shù)(*P)GetName().compare(na)=0、-(*P)GetID().compare(id)=0、(*P)GetNum().compare(num)=0,輸入的所需查詢的姓名或身份證編碼或門牌號(hào)與容器中存儲(chǔ)的數(shù)據(jù)進(jìn)行比較,當(dāng)兩字符串相同時(shí),輸出查詢的結(jié)果。3.信息刪除功能:由函數(shù)Delete()實(shí)現(xiàn),實(shí)現(xiàn)機(jī)制首先使用信息查詢函數(shù)找到要?jiǎng)h除人員的信息,再使用erase()函數(shù)刪除信息,使用erase()函數(shù)時(shí),把需要?jiǎng)h除的內(nèi)容的起止地址直接寫到括號(hào)中。4.信息修改功能:由函數(shù)Change()調(diào)用兩個(gè)類中的Change()實(shí)現(xiàn),該功能首先要選擇需要修改的對(duì)象,然后在對(duì)該對(duì)象的信息進(jìn)行修改,修改過后又將信息保存到容器中。5.信息瀏覽功能:由函數(shù)Look()實(shí)現(xiàn),該功能的主要機(jī)制和信息查詢功能差不,也提供三種瀏覽方式。6.退出系統(tǒng):整個(gè)系統(tǒng)的是一個(gè)dowhile循環(huán)首先進(jìn)入系統(tǒng)頁(yè)面,然后輸入選擇,當(dāng)輸入不為“0”時(shí),系統(tǒng)執(zhí)行數(shù)字相對(duì)應(yīng)的功能,當(dāng)輸入為“0”時(shí),循環(huán)終止,整個(gè)系統(tǒng)退出。五、程序源代碼#include#include#includeusing namespace std;#define SIZE 80class Personstring Name; /姓名string Sex; /性別string Birth; /出生日期string Folk; /民族string Pol_sta; /政治面貌string Belief; /宗教信仰string ID; /身份證編碼string Tel; /聯(lián)系方式string Add; /住址string Num; /門牌號(hào)int i;public:Person(); /無(wú)參構(gòu)造函數(shù)Person( string na, string sex, string birth, string folk, string pol_sta, string belief, string id, string tel, string add,string num); /帶參構(gòu)造函數(shù)Person(const Person &per); /拷貝構(gòu)造函數(shù)Person(); /析構(gòu)函數(shù) string GetName(); /提取姓名string GetSex(); /提取性別string GetBirth(); /提取出生日期string GetFolk(); /提取民族string GetPol_sta(); /提取政治面貌string GetBelief(); /提取宗教信仰string GetID(); /提取身份證編碼string GetTel(); /提取聯(lián)系方式string GetAdd(); /提取地址string GetNum(); /提取門牌號(hào)void Display() const; /顯示學(xué)生信息void Set(); /輸入學(xué)生信息 void Change(); /修改個(gè)人信息;class Familyprivate:string Address; /住址int Number; /門牌號(hào)int Pop; /人口數(shù)目public:Family();Family(string address, int number, int pop);Family();void Set(); /信息輸入void Display(); /信息輸出void Change(); /信息修改int GetNumber(); /門牌號(hào)返回函數(shù);Person:Person()i=0; /構(gòu)造函數(shù)Person:Person( string na, string sex, string birth, string folk, string pol_sta, string belief, string id, string tel, string add,string num)Name=na; Sex=sex;Birth=birth;Folk=folk;Pol_sta=pol_sta;Belief=belief; ID=id;Tel=tel;Add=add;Num=num;Person:Person(const Person &per) /拷貝構(gòu)造函數(shù)Name=per.Name;Sex=per.Sex;Birth=per.Birth;Folk=per.Folk;Pol_sta=per.Pol_sta;Belief=per.Belief;ID=per.ID;Tel=per.Tel;Add=per.Add;Num=per.Num;Person:Person() /析構(gòu)函數(shù) string Person: GetName() /提取姓名return Name;string Person:GetSex() /提取性別 return Sex;string Person:GetBirth() /提取出生日期 return Birth;string Person:GetFolk() /提取民族return Folk;string Person:GetPol_sta() /提取政治面貌return Pol_sta;string Person:GetBelief() /提取宗教信仰return Belief;string Person:GetID() /提取身份證編碼return ID;string Person:GetTel() /提取聯(lián)系方式return Tel;string Person:GetAdd() /提取住址return Add;string Person:GetNum() /提取門牌號(hào)return Num;void Person:Display() const /輸出數(shù)據(jù)信息cout1.姓名:Name 2.性別:Sexendl;coutn3.出生日期:Birth 4.民族:Folkendl;coutn5.政治面貌:Pol_sta 6.宗教信仰:Beliefendl;coutn7.身份證編碼:ID 8.住址:Addendl;coutn9.聯(lián)系方式:Tel 10.門牌號(hào):Numendl;void Person:Set() /輸入數(shù)據(jù) cin.get();cout請(qǐng)輸入姓名:;getline(cin,Name); cin.get();cout請(qǐng)輸入性別:;getline(cin,Sex);cin.get();cout請(qǐng)輸入出生日期:;getline(cin,Birth);cin.get();cout請(qǐng)輸入民族:;getline(cin,Folk);cin.get();cout請(qǐng)輸入政治面貌:;getline(cin,Pol_sta);cin.get();cout請(qǐng)輸入宗教信仰:;getline(cin,Belief);cin.get();cout請(qǐng)輸入身份證編碼:;getline(cin,ID);cin.get();cout請(qǐng)輸入住址:;getline(cin,Add);cin.get();cout請(qǐng)輸入聯(lián)系方式:;getline(cin,Tel); cin.get();cout請(qǐng)輸入門牌號(hào):;getline(cin,Num);void Person:Change()int i;Display();couti;switch(i)case 1: cin.get(); cout請(qǐng)重新輸入姓名:; getline(cin,Name);break;case 2: cin.get(); cout請(qǐng)重新輸入性別:; getline(cin,Sex);break;case 3:cin.get(); cout請(qǐng)重新輸入出生日期:; getline(cin,Birth);break;case 4:cin.get(); cout請(qǐng)重新輸入民族:; getline(cin,Folk);break;case 5:cin.get(); cout請(qǐng)重新輸入政治面貌:; getline(cin,Pol_sta);break;case 6: cin.get(); cout請(qǐng)重新輸入宗教信仰:; getline(cin,Belief);break;case 7: cin.get(); cout請(qǐng)重新輸入身份證編碼:; getline(cin,ID);break;case 8: cin.get(); cout請(qǐng)重新輸入住址:; getline(cin,Add);break;case 9: cin.get(); cout請(qǐng)重新輸入聯(lián)系方式:; getline(cin,Tel);break;case 10:cin.get();cout請(qǐng)重新輸入門牌號(hào):;getline(cin,Num);break;default:Change();Family:Family() /構(gòu)造函數(shù)Number=0;Pop=0;Family:Family()Family:Family(string address, int number, int pop) /帶參構(gòu)造函數(shù)Address=address;Number=number;Pop=pop;void Family:Set() /信息輸入cin.get();cout請(qǐng)輸入家庭地址:;getline(cin,Address);coutNumber;void Family:Display()cout家庭住址:Address;cout門牌號(hào):Number;cout家庭人口數(shù):Pop;void Family:Change()int i;cout1.家庭住址 2.門牌號(hào)endl;couti;switch(i)case 1:cin.get(); cout請(qǐng)重新輸入家庭地址:; getline(cin,Address);break;case 2:coutNumber;break;default:Change();int Family:GetNumber()return Number;vector Per_vec;vector Fam_vec;Person P;Family F;void menu(); /主菜單void Input(); /信息輸入void Inquiry(); /信息查詢void Change(); /信息修改void Delete(); /信息刪除void Look(); /信息瀏覽void OutputPer(vector& Per_vec );void InputPer(vector& Per_vec );void InputFam(vector& Fam_vec);void menu() cout *歡迎使用人口戶籍信息管理系統(tǒng) *endl; cout*endl; coutn 0.退出管理系統(tǒng) endl; coutn 1.信息錄入 endl; coutn 2.信息查詢 endl; coutn 3.信息刪除 endl; coutn 4.信息修改 endl; coutn 5.信息瀏覽 endl; cout*endl; coutn 請(qǐng)選擇以上操作(05) endl;void OutputPer( vector& Per_vec) /輸出對(duì)象數(shù)組元素 個(gè)人int count=0;vector:const_iterator p;for(p=Per_vec.begin();p!=Per_vec.end();p+)(*p).Display();count+;cout學(xué)生總?cè)藬?shù)=countendl;void InputPer( vector& Per_vec ) /輸入對(duì)象數(shù)組元素 個(gè)人char ch;Person x; do x.Set(); Per_vec.push_back(x); cout繼續(xù)輸入嗎?(Y or N )endl; cin.get(); cin.get(ch);while(ch=Y);void InputFam( vector& Fam_vec) /輸入對(duì)象組元素 家庭char ch;Family y;do y.Set();Fam_vec.push_back(y);cout繼續(xù)輸入嗎?(Y or N)endl;cin.get();cin.get(ch);while(ch=Y);void Input() /信息輸入函數(shù)int i;coutn1.個(gè)人 2.家庭endl;couti;switch(i)case 1:InputPer(Per_vec);break;case 2:InputFam(Fam_vec);break;void Inquiry() /信息查詢函數(shù) int i; string na; string id; string num; cout1.姓名查詢 2.身份證查詢 3.門牌號(hào)查詢endl; couti; switch(i) case 1: cout請(qǐng)輸入姓名:endl; cin.get(); getline(cin,na); cin.get(); vector:iterator p; for(p=Per_vec.begin();p!=Per_vec.end();p+)if( (*p).GetName().compare(na) = 0 )(*p).Display();break; ;break;case 2:cout請(qǐng)輸入身份證號(hào):endl; cin.get(); getline(cin,id); cin.get(); for(p=Per_vec.begin();p!=Per_vec.end();p+)if( (*p).GetID().compare(id) = 0 )(*p).Display();break; ;break;case 3:cout請(qǐng)輸入門牌號(hào):endl; cin.get(); getline(cin,num); cin.get(); for(p=Per_vec.begin();p!=Per_vec.end();p+)if( (*p).GetNum().compare(num) = 0 )(*p).Display(); ;break; void Change() /信息修改函數(shù)int i;cout1.個(gè)人 2.家庭endl;couti;switch(i)case 1:P.Change();break;case 2:F.Change();break;void Delete() /信息刪除函數(shù)int i;string id;int number;cout1.個(gè)人 2.家庭endl;couti;switch(i)case 1:cout請(qǐng)輸入要?jiǎng)h除人員的身份證編碼:endl;cin.get(); getline(cin,id); cin.get();vector:iterator p;i=sizeof(p); for(p=Per_vec.begin();p!=Per_vec.end();p+) if( (*p).GetID().compare(id) = 0 ) Per_vec.erase(p,Per_vec.end()+i); break; ;break;case 2:cout請(qǐng)輸入要?jiǎng)h除家庭的門牌號(hào):number;vector:iterator F;i=sizeof(F); for(F=Fam_vec.begin();F!=Fam_vec.end();F+) if( (*F).GetNumber()=number) Fam_vec.erase(F,Fam_vec.end()+i); break; void Look() /信息瀏覽函數(shù)int i; string na; string id; string num; cout1.按姓名 2.按身份證 3.按門牌號(hào)endl; couti; switch(i) case 1: cout請(qǐng)輸入姓名:endl; cin.get(); getline(cin,na); cin.get(); vector:iterator p; for(p=Per_vec.begin();p!=Per_vec.end();p+)if( (*p).GetName().compare(na) = 0 )(*p).Display();break; ;break;case 2:cout請(qǐng)輸入身份證號(hào):endl; cin.get(); getline(cin,id); cin.get(); for(p=Per_vec.begin();p!=Per_vec.end();p+)if( (*p).GetID().compare(id) = 0 )(*p).Display();break; ;bre

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論