版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、*軟件課程設(shè)計實踐實驗報告專 業(yè) 班 級 :學(xué) 生 姓 名 :學(xué) 號:實驗項目名稱:實驗項目性質(zhì):實驗所屬課程:實驗室(中心):指 導(dǎo) 教 師 :實驗完成時間: 教師評閱意見: 簽名: 年 月 日實驗成績:20目錄一 選題及說明 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è)計及實現(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 信息刪除界面
2、4 4.2.5 信息修改界面 5 4.2.6 信息瀏覽界面 5 4.3 功能實現(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é)束語 20七 參考文獻 20一、選題及說明題目:人口戶籍信息管理系統(tǒng)人口戶籍信息管理系統(tǒng)是一個簡易的管理個人和家庭信息的系統(tǒng),主要對個人和家庭的基本信息進行管理,個人基本信息包括姓名、性別、出生日期、民族、政治面貌、宗教信仰、身份證編碼、聯(lián)系方式、住址和門牌號,家庭的基本信息包括住址、人口數(shù)和門牌號。管理系統(tǒng)主要有
3、信息輸入、信息查詢、信息刪除、信息修改和信息瀏覽五大功能。二、系統(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()實現(xiàn),InPut()函數(shù)調(diào)用兩個子函數(shù),分別實現(xiàn)對個人和家庭基本信息的輸入,輸入后將輸入的內(nèi)容保存到容器中。2. 信息查詢:由函數(shù)Inquir()實現(xiàn),Inquiry()函數(shù)調(diào)用兩個子函數(shù),分別實現(xiàn)隔熱信息和家庭信息的查詢,其中個人信息查詢有三種方式,即姓名查詢、身份證查詢和門牌號查詢,門牌號查詢可能會有
4、多個查詢結(jié)果。3. 信息刪除:由函數(shù)Delete()實現(xiàn),Delete()函數(shù)調(diào)用兩個子函數(shù),分別實現(xiàn)對個人和家庭的信息刪除。4. 信息修改:由函數(shù)Change()實現(xiàn),Change()函數(shù)調(diào)用兩個子函數(shù),分別實現(xiàn)對個人和家庭的信息進行修改,對個人信息進行修改時還可以選擇對某一項信息進行修改。5. 信息瀏覽:由Look()函數(shù)實現(xiàn),實現(xiàn)機制和信息查詢函數(shù)基本相同,分為三中瀏覽方式,即姓名瀏覽、身份證編碼瀏覽和門牌號瀏覽。綜合所有功能,整個程序的簡單流程圖如下:四、功能設(shè)計及實現(xiàn)(一)、數(shù)據(jù)結(jié)構(gòu):Person類中主要包含姓名(Name)、性別(Sex)、出生日期(Birth)、民族(Folk)、
5、政治面貌(Pol_sta)、宗教信仰(Belief)、身份證編碼(ID)、聯(lián)系方式(Tel)、住址(Add)和門牌號(Num),F(xiàn)amily類中主要包含住址(Address)、門牌號(Number)和人口數(shù)(Pop)。(二)、界面設(shè)置:1.主界面:主界面顯示該系統(tǒng)的五大主要功能和操作提示,如下圖:2.信息輸入界面:信息輸入界面主要提示用戶輸入基本信息,如下圖:3.信息查詢界面:信息查詢界面主要提示用戶根據(jù)自己的需要輸入相關(guān)信息進行查詢,如下圖:4.信息刪除界面:信息刪除界面主要是由用戶輸入要刪除信息的身份證編碼進行信息刪除,如下圖:5.信息修改界面:信息修改界面主要由個人或家庭的基本信息組成,
6、提示用戶選擇要修改的項目,用戶選擇進行修改,如下圖:6. 信息瀏覽界面:信息瀏覽界面主要提示用戶選擇要進行瀏覽的方式,有按姓名、按身份證號和按門牌號三種方式,如下圖:(三)、功能實現(xiàn):1.信息輸入功能:由函數(shù)InPut()調(diào)用兩個類中的Set()實現(xiàn),具體的信息輸入則用到標準輸入流cin和字符串輸入函數(shù)cin.get()、getline()實現(xiàn),執(zhí)行完輸入函數(shù)后,用 Per_vec.push_back()/Fam_vec.push_back()把輸入的數(shù)據(jù)內(nèi)容存到容器中。2.信息查詢功能:由函數(shù)Inquiry()實現(xiàn),信息查詢功能有三種查詢方式,即按照姓名查詢、按照身份證編碼查詢和按照門牌號查
7、詢。三種查詢方式的實現(xiàn)機制都是利用字符串比較函數(shù)(*P)GetName().compare(na)=0、-(*P)GetID().compare(id)=0、(*P)GetNum().compare(num)=0,輸入的所需查詢的姓名或身份證編碼或門牌號與容器中存儲的數(shù)據(jù)進行比較,當(dāng)兩字符串相同時,輸出查詢的結(jié)果。3.信息刪除功能:由函數(shù)Delete()實現(xiàn),實現(xiàn)機制首先使用信息查詢函數(shù)找到要刪除人員的信息,再使用erase()函數(shù)刪除信息,使用erase()函數(shù)時,把需要刪除的內(nèi)容的起止地址直接寫到括號中。4.信息修改功能:由函數(shù)Change()調(diào)用兩個類中的Change()實現(xiàn),該功能首先
8、要選擇需要修改的對象,然后在對該對象的信息進行修改,修改過后又將信息保存到容器中。5.信息瀏覽功能:由函數(shù)Look()實現(xiàn),該功能的主要機制和信息查詢功能差不,也提供三種瀏覽方式。6.退出系統(tǒng):整個系統(tǒng)的是一個do···while循環(huán)首先進入系統(tǒng)頁面,然后輸入選擇,當(dāng)輸入不為“0”時,系統(tǒng)執(zhí)行數(shù)字相對應(yīng)的功能,當(dāng)輸入為“0”時,循環(huán)終止,整個系統(tǒng)退出。五、程序源代碼#include<iostream>#include<string>#include<vector>using namespace std;#define SIZE
9、80class Personstring Name; /姓名string Sex; /性別string Birth; /出生日期string Folk; /民族string Pol_sta; /政治面貌string Belief; /宗教信仰string ID; /身份證編碼string Tel; /聯(lián)系方式string Add; /住址string Num; /門牌號int i;public:Person(); /無參構(gòu)造函數(shù)Person( string na, string sex, string birth, string folk, string pol_sta, string bel
10、ief, 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(
11、); /提取聯(lián)系方式string GetAdd(); /提取地址string GetNum(); /提取門牌號void Display() const; /顯示學(xué)生信息void Set(); /輸入學(xué)生信息 void Change(); /修改個人信息;class Familyprivate:string Address; /住址int Number; /門牌號int Pop; /人口數(shù)目public:Family();Family(string address, int number, int pop);Family();void Set(); /信息輸入void Display(); /信
12、息輸出void Change(); /信息修改int GetNumber(); /門牌號返回函數(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;A
13、dd=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 S
14、ex;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() /提取住址retur
15、n Add;string Person:GetNum() /提取門牌號return Num;void Person:Display() const /輸出數(shù)據(jù)信息cout<<"1.姓名:"<<Name<<" 2.性別:"<<Sex<<endl;cout<<"n3.出生日期:"<<Birth<<" 4.民族:"<<Folk<<endl;cout<<"n5.政治面貌:"
16、<<Pol_sta<<" 6.宗教信仰:"<<Belief<<endl;cout<<"n7.身份證編碼:"<<ID<<" 8.住址:"<<Add<<endl;cout<<"n9.聯(lián)系方式:"<<Tel<<" 10.門牌號:"<<Num<<endl;void Person:Set() /輸入數(shù)據(jù) cin.get();cout<
17、<"請輸入姓名:"getline(cin,Name); cin.get();cout<<"請輸入性別:"getline(cin,Sex);cin.get();cout<<"請輸入出生日期:"getline(cin,Birth);cin.get();cout<<"請輸入民族:"getline(cin,Folk);cin.get();cout<<"請輸入政治面貌:"getline(cin,Pol_sta);cin.get();cout<&l
18、t;"請輸入宗教信仰:"getline(cin,Belief);cin.get();cout<<"請輸入身份證編碼:"getline(cin,ID);cin.get();cout<<"請輸入住址:"getline(cin,Add);cin.get();cout<<"請輸入聯(lián)系方式:"getline(cin,Tel); cin.get();cout<<"請輸入門牌號:"getline(cin,Num);void Person:Change()int
19、i;Display();cout<<"n請選擇需要修改的項目:"cin>>i;switch(i)case 1: cin.get(); cout<<"請重新輸入姓名:" getline(cin,Name);break;case 2: cin.get(); cout<<"請重新輸入性別:" getline(cin,Sex);break;case 3:cin.get(); cout<<"請重新輸入出生日期:" getline(cin,Birth);break;c
20、ase 4:cin.get(); cout<<"請重新輸入民族:" getline(cin,Folk);break;case 5:cin.get(); cout<<"請重新輸入政治面貌:" getline(cin,Pol_sta);break;case 6: cin.get(); cout<<"請重新輸入宗教信仰:" getline(cin,Belief);break;case 7: cin.get(); cout<<"請重新輸入身份證編碼:" getline(cin
21、,ID);break;case 8: cin.get(); cout<<"請重新輸入住址:" getline(cin,Add);break;case 9: cin.get(); cout<<"請重新輸入聯(lián)系方式:" getline(cin,Tel);break;case 10:cin.get();cout<<"請重新輸入門牌號:"getline(cin,Num);break;default:Change();Family:Family() /構(gòu)造函數(shù)Number=0;Pop=0;Family:Fam
22、ily()Family:Family(string address, int number, int pop) /帶參構(gòu)造函數(shù)Address=address;Number=number;Pop=pop;void Family:Set() /信息輸入cin.get();cout<<"請輸入家庭地址:"getline(cin,Address);cout<<"請輸入門牌號:"cin>>Number;void Family:Display()cout<<"家庭住址:"<<Addres
23、s;cout<<"門牌號:"<<Number;cout<<"家庭人口數(shù):"<<Pop;void Family:Change()int i;cout<<"1.家庭住址 2.門牌號"<<endl;cout<<"請選擇要修改的內(nèi)容:"cin>>i;switch(i)case 1:cin.get(); cout<<"請重新輸入家庭地址:" getline(cin,Address);break;ca
24、se 2:cout<<"請重新輸入門牌號:" cin>>Number;break;default:Change();int Family:GetNumber()return Number;vector<Person> Per_vec;vector<Family> Fam_vec;Person P;Family F;void menu(); /主菜單void Input(); /信息輸入void Inquiry(); /信息查詢void Change(); /信息修改void Delete(); /信息刪除void Look()
25、; /信息瀏覽void OutputPer(vector<Person>& Per_vec );void InputPer(vector<Person>& Per_vec );void InputFam(vector<Family>& Fam_vec);void menu() cout<<" *歡迎使用人口戶籍信息管理系統(tǒng) *"<<endl; cout<<"*"<<endl; cout<<"n 0.退出管理系統(tǒng) "&
26、lt;<endl; cout<<"n 1.信息錄入 "<<endl; cout<<"n 2.信息查詢 "<<endl; cout<<"n 3.信息刪除 "<<endl; cout<<"n 4.信息修改 "<<endl; cout<<"n 5.信息瀏覽 "<<endl; cout<<"*"<<endl; cout<<&
27、quot;n 請選擇以上操作(05) "<<endl;void OutputPer( vector<Person>& Per_vec) /輸出對象數(shù)組元素 個人int count=0;vector<Person>:const_iterator p;for(p=Per_vec.begin();p!=Per_vec.end();p+)(*p).Display();count+;cout<<"學(xué)生總?cè)藬?shù)="<<count<<endl;void InputPer( vector<Pers
28、on>& Per_vec ) /輸入對象數(shù)組元素 個人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<Family>& Fam_vec) /輸入對象組元素 家庭char ch;Family y;do y.Set();Fam_vec.push_back(y);cout&l
29、t;<"繼續(xù)輸入嗎?(Y or N)"<<endl;cin.get();cin.get(ch);while(ch='Y');void Input() /信息輸入函數(shù)int i;cout<<"n1.個人 2.家庭"<<endl;cout<<"n請選擇要操作的對象:"cin>>i;switch(i)case 1:InputPer(Per_vec);break;case 2:InputFam(Fam_vec);break;void Inquiry() /信息查
30、詢函數(shù) int i; string na; string id; string num; cout<<"1.姓名查詢 2.身份證查詢 3.門牌號查詢"<<endl; cout<<"n請選擇查詢方式:" cin>>i; switch(i) case 1: cout<<"請輸入姓名:"<<endl; cin.get(); getline(cin,na); cin.get(); vector<Person>:iterator p; for(p=Per_vec
31、.begin();p!=Per_vec.end();p+)if( (*p).GetName().compare(na) = 0 )(*p).Display();break; ;break;case 2:cout<<"請輸入身份證號:"<<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:co
32、ut<<"請輸入門牌號:"<<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;cout<<"1.個人 2.家庭"<<endl;cout<<"n請選擇要操作的對象:"cin>
33、>i;switch(i)case 1:P.Change();break;case 2:F.Change();break;void Delete() /信息刪除函數(shù)int i;string id;int number;cout<<"1.個人 2.家庭"<<endl;cout<<"請選擇要修改的對象:"cin>>i;switch(i)case 1:cout<<"請輸入要刪除人員的身份證編碼:"<<endl;cin.get(); getline(cin,id);
34、cin.get();vector<Person>: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<<"請輸入要刪除家庭的門牌號:"<<endl; cin>>number;vector<Family>:iterator F;i=sizeof(F)
35、; 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; cout<<"1.按姓名 2.按身份證 3.按門牌號"<<endl; cout<<"請選擇瀏覽方式:" cin>>i; switch(i) case 1: cout<<"請輸入姓名:"<<endl; cin.get(); getline(cin,na); cin.get(); vector<Person>: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<<"請
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴金屬首飾檢驗員風(fēng)險評估與管理測試考核試卷含答案
- 海水捕撈工成果知識考核試卷含答案
- 2025年結(jié)核病的自查報告
- 銅粉購銷合同范本
- 廣安市全肥養(yǎng)殖家庭農(nóng)場生豬養(yǎng)殖項目報告書
- 分銷商合同協(xié)議書
- 異地簽協(xié)議書合同
- 房產(chǎn)合同補償協(xié)議
- 沖床購銷合同范本
- 分銷協(xié)議銷售合同
- GB/T 19362.1-2003龍門銑床檢驗條件精度檢驗第1部分:固定式龍門銑床
- AQ安全資料管理規(guī)程(北京市)課件
- 人飲工程監(jiān)理細則樣本
- 立體車庫技術(shù)參數(shù)及要求
- 青春期教育 完整版課件
- 介電性能精品課件
- 初中數(shù)學(xué)滬科版九下 隨機事件部優(yōu)課件
- DB11T 716-2019 穿越既有道路設(shè)施工程技術(shù)要求
- 【瘋狂動物城】超精致卡通電影主題通用模板
- 萬用表的使用(課堂PPT)課件
- a表A.6.1 變電站建筑工程設(shè)計強制性條文參考引用表
評論
0/150
提交評論