


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、*軟件課程設計實踐實驗報告專業(yè)班級: 學生姓名: 學號:實驗項目名稱: 實驗項目性質: 實驗所屬課程: 實驗室(中心): 指導教師: 實驗完成時間:教師評閱意見:簽名:年 月曰實驗成績:一選題及說明目錄2二系統(tǒng)編寫環(huán)境22.1軟件環(huán)境22.2 硬件環(huán)境2三主要功能說明23.1信息輸入23.2信息查詢23.3 信息刪除23.4信息修改23.5 信息瀏覽2四功能設計及實現34.1數據結構34.2界面設置34.2.1主界面34.2.2信息輸入界面44.2.3信息查詢界面44.2.4信息刪除界面44.2.5信息修改界面54.2.6信息瀏覽界面54.3 功能實現64.3.1信息輸入功能6信息查詢功能64
2、.3.3信息刪除功能64.3.4信息修改功能64.3.5信息瀏覽功能64.3.6退出系統(tǒng)6五程序源代碼6六結束語20七參考文獻20、選題及說明題目:人口戶籍信息管理系統(tǒng)人口戶籍信息管理系統(tǒng)是一個簡易的管理個人和家庭信息的系統(tǒng),主 要對個人和家庭的基本信息進行管理,個人基本信息包括、性別、出生日 期、民族、政治面貌、宗教信仰、編碼、聯系方式、住址和門牌號,家庭 的基本信息包括住址、人口數和門牌號。管理系統(tǒng)主要有信息輸入、信息 查詢、信息刪除、信息修改和信息瀏覽五大功能。二、系統(tǒng)編寫環(huán)境1. 軟件環(huán)境: Windows 7( 64 位) Visual C+6.02. 硬件環(huán)境:CPU 15 520
3、0U RAM 8G 1600MHz 硬盤 500G 5400 轉三、主要功能說明1信息輸入:由函數InPut()實現,InPut()函數調用兩個子函數,分別實 現對個人和家庭基本信息的輸入,輸入后將輸入的容保存到容器中。2. 信息查詢:由函數Inquir()實現,Inquiry()函數調用兩個子函數,分 別實現隔熱信息和家庭信息的查詢, 其中個人信息查詢有三種方式,即 查詢、查詢和門牌號查詢,門牌號查詢可能會有多個查詢結果。3. 信息刪除:由函數Delete()實現,Delete()函數調用兩個子函數,分別 實現對個人和家庭的信息刪除。4. 信息修改:由函數Change()實現,Change(
4、)函數調用兩個子函數,分別 實現對個人和家庭的信息進行修改,對個人信息進行修改時還可以選擇 對某一項信息進行修改。5. 信息瀏覽:由Look()函數實現,實現機制和信息查詢函數基本相同,分 為三中瀏覽方式,即瀏覽、編碼瀏覽和門牌號瀏覽。綜合所有功能,整個程序的簡單流程圖如下:Is査詢-S .#叼逗號:四、功能設計及實現(一)、數據結構:Person類中主要包含(Nam)、性別(Sex)、出生日期(Birth)、 民族(Folk、政治面貌(Pol_sta)、宗教信仰(Belief)、編碼(ID)、聯系方式(Tel)、 住址(Add)和門牌號(Num), Family類中主要包含住址(Addres
5、s、門牌號(Number) 和人口數(Pop)。(二八界面設置:1. 主界面:主界面顯示該系統(tǒng)的五大主要功能和操作提示,如下圖:t 'UAL' U'FlWtbK*逞人悴;t (2 -,LJc、tiO eKe'1=目 1 JHt耳瞬1«劑4,1*1(朮 此|。退出管理系統(tǒng)1"信息錄人 典信息査嗔扉息刑除札信息修改佶息瀏竟fcraj u 0= w u »_» u « u n i u q l 5 m 害 5mi ur=y i-i u ur m 3 i_i u xr rr u u h w 7 i_iJ T f «
6、;_i 5 p ir 0 i_i *請遊擇1其上握作 5 Ai配韶半蠶灼-的操作2. 信息輸入界面:信息輸入界面主要提示用戶輸入基本信息,如下圖:J. ' i.M £ 3 WM1S F RAI ORAPLSlfTCyjS霰專越5.信息測覽請赴瑋以二提作燉0 請氓停要譴行的按作理 卜個人家庭道進桿夢揖作的J-. J-Assit帝siRr司 hk'llr fr 'T: 1 1 . Mh.'l匚.-面i謂4氏 信證;右目 aaaaa請乩X性別:3. 信息查詢界面:信息查詢界面主要提示用戶根據自己的需要輸入相關信 息進行查詢,如下圖:4. 信息刪除界面:信息刪
7、除界面主要是由用戶輸入要刪除信息的編碼進行 信息刪除,如下圖:退岀旨過蜀統(tǒng)1討瓷扈最人 2 信總査詢3-d=O4伍息麼改5 儺瀏覽要謖行的操乍汨HE-HtH5.信息修改界面:信息修改界面主要由個人或家庭的基本信息組成,提示 用戶選擇要修改的項目,用戶選擇進行修改,如下圖:F-_ | j, -5lKERSADM)MKTRA0ft曲EtKTOP廬淫戈佇尖,2Ag>umjry,exh斗.信息修改弭展且|dX用弭耳鼻匕泄耳弭斗用旦耳畀口耳淖耳”獨科膽為鴨丘貝蟲鬼事呂事已川弭再畀耳列國M 斟區(qū)耳宙耳耳胃呉希鈿亍般I請琳TWi. -rA上-家定2-1.©.民族;抬面貌?8.住址.le.ri
8、.S=E 項- 抵亡 槳r:r半訐 込.車 +FXP f Tr IT6信息瀏覽界面:信息瀏覽界面主要提示用戶選擇要進行瀏覽的方式,有 按、按號和按門牌號三種方式,如下圖:(三八功能實現:1. 信息輸入功能:由函數InPut()調用兩個類中的Set()實現,具體的信息 輸入則用到標準輸入流cin和字符串輸入函數cin.get() 、getline()實現,執(zhí) 行完輸入函數后,用Per_vec.push_back()/Fam_vec.push_back() 把輸入的數據 容存到容器中。2. 信息查詢功能:由函數Inquiry()實現,信息查詢功能有三種查詢方式,即按照查詢、按照編碼查詢和按照門牌號
9、查詢。三種查詢方式的實現機制都是利 用字符串比較函數(*P)GetName().compare(na)=0、-(*P)GetlD().compare(id)=0 、(*P)GetNum().compare(num)=0,輸入的 所需查詢的或編碼或門牌號與容器中存儲的數據進行比較,當兩字符串相同時, 輸出查詢的結果。3. 信息刪除功能:由函數Delete()實現,實現機制首先使用信息查詢函數 找到要刪除人員的信息,再使用 erase()函數刪除信息,使用erase()函數時, 把需要刪除的容的起止地址直接寫到括號中。4. 信息修改功能:由函數 Change()調用兩個類中的Change()實現,
10、該功能 首先要選擇需要修改的對象,然后在對該對象的信息進行修改,修改過后又將信 息保存到容器中。5. 信息瀏覽功能:由函數Look()實現,該功能的主要機制和信息查詢功能 差不,也提供三種瀏覽方式。6. 退出系統(tǒng):整個系統(tǒng)的是一個do - while循環(huán)首先進入系統(tǒng)頁面,然后 輸入選擇,當輸入不為“0”時,系統(tǒng)執(zhí)行數字相對應的功能,當輸入為“0”時, 循環(huán)終止,整個系統(tǒng)退出。五、程序源代碼#in clude<iostream>#in clude<stri ng>#in clude<vector>using n amespace std;#defi ne SI
11、ZE 80class Pers onstri ng Name; stri ng Sex;string Birth; stri ng Folk;stri ng Pol_sta; stri ng Belief; stri ng ID;stri ng Tel; stri ng Add;stri ng Num; int i;/性別/出生日期/民族/政治面貌/宗教信仰/編碼/聯系方式/住址/門牌號public:II無參構造函數Pers on();Person( stri ng na, stri ng sex, stri ng birth, stri ng folk, stri ng pol_sta, s
12、tri ng belief, stri ng id, class Familystring tel, stringadd,string num);Pers on(const Pers on &per);Pers on();stri ng GetName();stri ng GetSex();stri ng GetBirth();stri ng GetFolk();stri ng GetPol_sta();stri ng GetBelief();stri ng GetID();stri ng GetTel();stri ng GetAdd();stri ng GetNum();void
13、Display() con st;void Set();void Chan ge();II帶參構造函數II拷貝構造函數II析構函數提取提取性別II提取出生日期II提取民族II提取政治面貌提取宗教信仰II提取編碼II提取聯系方式II提取地址II提取門牌號顯示學生信息II輸入學生信息II修改個人信息private:stri ng Address;II 住址int Number;門牌號int Pop;II 人口數目public:Family();Family(string address, int number, int pop);Family。;void Set();void Display();
14、 void Chan ge();int GetNumber(); ;信息輸入/信息輸出/信息修改/門牌號返回函數Pers on:Pers on()i=0;構造函數Person:Pers on( stri ng na, stri ng sex, stri ng birth, stri ng folk, stri ng pol_sta, stri ng belief, stri ng id, string tel, stringadd,string num)Name=na;Sex=sex;Birth=birth;Folk=folk;Pol_sta=pol_sta;Belief=belief;ID=
15、id;Tel=tel;Add=add;Num=num;Pers on:Pers on (co nst Person & per)/拷貝構造函數Name=per.Name;Sex=per.Sex;Birth=per.Birth;Folk=per.Folk;Pol_sta=per.Pol_sta;Belief=per.Belief;ID=perD;Tel=per.Tel;Add=per.Add;Num=per.Num;Perso n:Perso n()/ 析構函數string Perso n: GetName()/ 提取/提取性別return Name; stri ng Pers on:G
16、etSex() return Sex;string Person:GetBirth() return Birth;stri ng Pers on:GetFolk() return Folk;stri ng Pers on:GetPol_sta() return Pol_sta;stri ng Pers on:GetBelief() return Belief;string Perso n:GetlD() return ID;stri ng Pers on:GetTel()return Tel;string Perso n:GetAdd() return Add;stri ng Pers on:
17、GetNum() return Num;提取出生日期提取民族/提取政治面貌提取宗教信仰/提取編碼/提取聯系方式/提取住址/提取門牌號輸出數據信息void Pers on:Display。const2性別:cout<<"1. : "<<Name<<"cout<<"n3.出生日期:"<<Birth<<" cout<<"n5.政治面貌:"<<Pol_sta<<" cout<<"n7.
18、編碼:"<<ID<<" cout<<"n9.聯系方式:"<<Tel<<""<<Sex<<e ndl;4.民族:"<<Folk<<e ndl;6.宗教信仰:"<<Belief«e ndl;8.住址:"<<Add<<e ndl;10.門牌號:"<<Num<<e ndl;II.輸入數據void Pers on:Set()ci
19、n. get(); cout<<"請輸入: getl in e(ci n, Name);ci n. get(); cout<<"請輸入性別: getl in e(ci n,Sex);ci n. get();cout<<"請輸入出生日期:getl in e(ci n,Birth);ci n. get(); cout<<"請輸入民族: getl in e(ci n,F oik);ci n. get();cout<<"請輸入政治面貌:" getl in e(ci n,Pol_sta
20、);ci n. get();cout<<"請輸入宗教信仰:" getli ne(ci n,Belief);ci n. get();cout<<"請輸入編碼:" getl in e(ci n,ID);ci n. get(); cout<<"請輸入住址:" getl in e(ci n, Add);ci n. get();cout<<"請輸入聯系方式:" getl in e(ci n, Tel);ci n. get();cout<<"請輸入門牌號:&
21、quot; getl in e(ci n,N um);void Pers on:Cha nge()int i;Display();cout<<"n請選擇需要修改的項目: cin> >i;switch(i)case 1:cin .get();cout<<"請重新輸入:" getl in e(ci n, Name);break;case 2:cin .get();cout<<"請重新輸入性別:getli ne(ci n,Sex);break;case 3:cin .get();cout<<"
22、;請重新輸入出生日期:getli ne(ci n,Birth);break;case 4:cin .get();cout<<"請重新輸入民族:” getl in e(ci n,F oik);break;case 5:cin .get();cout<<"請重新輸入政治面貌:getl in e(ci n,Pol_sta);break;case 6:cin .get();cout<<"請重新輸入宗教信仰:getli ne(ci n,Belief);break;case 7:cin .get();cout<<"請重
23、新輸入編碼:” getl in e(ci n,ID);break;case 8:cin .get();cout<<"請重新輸入住址:”getl in e(ci n, Add);break;case 9:cin .get();cout<<"請重新輸入聯系方式:getl in e(ci n, Tel);break;case 10:cin .get();cout<<"請重新輸入門牌號: getl in e(ci n,N um);break;default:Cha nge();Family:Family()構造函數Number=0;Po
24、p=0;Family:Family()帶參構造函數Family:Family(string address, int number, int pop)Address=address;Number =nu mber;Pop=pop;void Family:Set()/ 信息輸入cin .get();cout<<"請輸入家庭地址:"getl in e(ci n, Address);cout<<"請輸入門牌號:"cin»N umber;void Family:Display()cout<<"家庭住址:&q
25、uot;<<Address;cout<<"門牌號:"<<Number; cout<<"家庭人口數:"<<Pop; void Family:Cha nge()int i;cout<<"1.家庭住址2門牌號"<<endl;cout<<"請選擇要修改的容:"cin> >i;switch(i)case 1:cin .get();cout<<"請重新輸入家庭地址:"getl in e(c
26、i n. Address);break;case 2:cout<<"請重新輸入門牌號:"cin»N umber;break;default:Cha nge(); int Family:GetNumber()return Number;vector<Pers on> Per_vec; vector<Family> Fam_vec;Pers on P;Family F;void me nu();主菜單void In put();信息輸入void In quiry();信息查詢void Cha nge();信息修改void Delet
27、e();信息刪除void Look();信息瀏覽void OutputPer(vector<Pers on>& Per_vec );void In putPer(vector<Pers on>& Per_vec );void In putFam(vector<Family>& Fam_vec);void menu()cout<<"*歡迎使用人口戶籍信息管理系統(tǒng)*"<<e ndl;*cout<<"* "<<e ndlcout<<"
28、;ncout<<"ncout<<"ncout<<"ncout<<"ncout<<"n0.退出管理系統(tǒng)"<<e ndl;1. 信息錄入"<<e ndl;2. 信息查詢 "<<e ndl;3信息刪除"<<e ndl;4. 信息修改"<<e ndl;5. 信息瀏覽"<<e ndl;cout<<"*"<<e ndl;co
29、ut<<"n請選擇以上操作(05) "<<endl;*個人void OutputPer( vector<Perso n>& Per_vec)/ 輸出對象數組元素int coun t=0;vector<Pers on >:c on st_iterator p;for(p=Per_vec.begi n( );p!=Per_vec.e nd();p+)(*p).Display();coun t+;cout<<"學生總人數="<<cou nt<<e ndl;/輸入對象數組
30、元素 個人void In putPer( vector<Pers on>& Per_vec )char ch;Pers on x;dox.Set();Per_vec.push_back(x);cout<<"繼續(xù)輸入嗎?(Y or N )"<<endl;ci n. get();cin. get(ch);while(ch='Y');/輸入對象組元素家庭 void In putFam( vector<Family>& Fam_vec)char ch;Family y;doy.Set();Fam_vec
31、.push_back(y);cout<<"繼續(xù)輸入嗎?(Y or N)"<<endl; ci n. get();cin. get(ch);while(ch='Y');void In put()/信息輸入函數int i;cout<<"n1.個人2.家庭"<<endl;cout<<"n請選擇要操作的對象:"cin> >i;switch(i)case 1:I nputPer(Per_vec);break;case 2:I nputFam(Fam_vec)
32、;break;void In quiry()int i;stri ng na;/信息查詢函數string id;stri ng num;cout<<"1.查詢2查詢3門牌號查詢"<<endl;cout<<"n請選擇查詢方式:"cin> >i;switch(i)case 1:cout<<"請輸入:"<<endl;cin .get();getl in e(ci n,n a);cin .get();vector<Pers on >:iterator p;fo
33、r(p=Per_vec.begi n( );p!=Per_vec.e nd();p+)if( (*p).GetName().compare( na) = 0 )(*p).Display(); break;break;case 2:cout<<"請輸入號:"<<e ndl;cin .get();getl in e(ci n,id);cin .get();for(p=Per_vec.begi n( );p!=Per_vec.e nd();p+) if( (*p).GetlD().compare(id) = 0 )(*p).Display(); break
34、;break;case 3:cout<<"請輸入門牌號:"<<e ndl;cin .get();getl in e(ci n,nu m);cin .get();for(p=Per_vec.begi n( );p!=Per_vec.e nd();p+)if( (*p).GetNum().compare( num) = 0 )(*p).Display();break;void Cha nge()/信息修改函數int i;cout<<"1.個人2家庭"<<endl;cout<<"n請選擇要操
35、作的對象:"cin> >i;switch(i)case 1:P.Cha nge();break;case 2:F.Cha nge();break;void Delete()信息刪除函數int i;string id;int nu mber;cout<<"1.個人2.家庭"<<endl;cout<<"請選擇要修改的對象:"cin> >i;switch(i)case 1:cout<<"請輸入要刪除人員的編碼:"<<e ndl;ci n. get(
36、);getl in e(c in ,id);ci n. get();vector<Pers on >:iterator p; i=sizeof(p);for(p=Per_vec.begi n( );p!=Per_vec.e nd();p+) if( (*p).GetlD().compare(id) = 0 )Per_vec.erase(p,Per_vec.e nd()+i); break;break;case 2:cout<<"請輸入要刪除家庭的門牌號:"<<e ndl;cin»nu mber;vector<Family&
37、gt;:iterator F; i=sizeof(F);for(F=Fam_vec.beg in();F !=Fam_vec.e nd();F+)if( (*F).GetNumber()=n umber)Fam_vec.erase(F,Fam_vec.e nd()+i); break;void Look()信息瀏覽函數int i;stri ng na;string id;stri ng num;cout<<"1.按2.按3.按門牌號"<<endl;cout<<"請選擇瀏覽方式:"cin> >i;switch(i)case 1:cout<<"請輸入:"<<endl;cin .get();getl in e(ci n,n a);cin .get();vector<Pers on >:iterator p;for(p=Per_vec.begi n( );p!=Per_vec.e nd();p+) if( (*p).GetName().
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 提供材料合同范本
- 租賃合同范本押金
- 5風兒輕輕吹(教學設計)-2023-2024學年道德與法治一年級下冊統(tǒng)編版
- 6 綜合與實踐(教學設計)-2024-2025學年一年級上冊數學北師大版
- 煤炭訂貨合同范本
- 2024-2025學年高中英語選修課趣味英語教學設計
- 3《我們班 他們班》第二課時(教學設計)-部編版道德與法治四年級上冊
- 9 這些是大家的(教學設計)-2024-2025學年統(tǒng)編版道德與法治二年級上冊
- 噴泉采購合同范本
- 擔保公司融資合同范本
- 《服裝品牌策劃》課件
- 個人應聘簡歷電工
- 高血壓的用藥指導任務三高血壓的藥物治療講解
- 近五年陜西中考數學真題及答案2024
- 美國藥典-USP-561-植物源性物質
- 施工安全管理培訓資料
- 0-3歲嬰幼兒基礎護理知到智慧樹章節(jié)測試課后答案2024年秋杭州師范大學
- 掛靠免責協議書范本
- 2024-2030年中國新媒體市場前景規(guī)模及發(fā)展趨勢分析報告
- Python金融數據分析與挖掘(微課版) 教案全套 黃恒秋
- 中建10t龍門吊安拆安全專項施工方案
評論
0/150
提交評論