小區(qū)樓盤銷售管理系統(tǒng)C++課程設(shè)計(jì)_第1頁
小區(qū)樓盤銷售管理系統(tǒng)C++課程設(shè)計(jì)_第2頁
小區(qū)樓盤銷售管理系統(tǒng)C++課程設(shè)計(jì)_第3頁
小區(qū)樓盤銷售管理系統(tǒng)C++課程設(shè)計(jì)_第4頁
小區(qū)樓盤銷售管理系統(tǒng)C++課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 計(jì)算機(jī)學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告 (2010/2011學(xué)年 第一學(xué)期)學(xué)生姓名: 學(xué)生班級(jí): 學(xué)生學(xué)號(hào): 指導(dǎo)教師: 2011年1月7日小區(qū)樓盤銷售管理程序目錄一、課程設(shè)計(jì)目的和要求1二、課程設(shè)計(jì)任務(wù)內(nèi)容21、課程設(shè)計(jì)內(nèi)容:22、設(shè)計(jì)內(nèi)容分析2三、詳細(xì)設(shè)計(jì)說明31、函數(shù)功能說明、參數(shù)說明及函數(shù)流程圖3(1)、int main()4(2)、void input(residence *);6(3)、void del(residence *);7(4)、void amend(residence *);10(5)、void display(residence *);12(6)、

2、void seek(residence *);132、編碼153、測試15四、軟件使用說明21五、課程設(shè)計(jì)心得與體會(huì)22附錄1:參考文獻(xiàn)23附錄2:程序清單24一、課程設(shè)計(jì)目的和要求(1)鞏固和加深學(xué)生對(duì)C+課程的基本知識(shí)的理解和掌握,通過這次課程設(shè)計(jì),使學(xué)生從整體上把握一個(gè)學(xué)期以來所學(xué)的C+程序設(shè)計(jì)的內(nèi)容,各種程序設(shè)計(jì)思路進(jìn)行貫通,從而熟練掌握。(2)掌握C+編程和程序調(diào)試的基本技能。C+編程和程序調(diào)試是軟件設(shè)計(jì)的重中之重,這兩個(gè)部分占據(jù)了整個(gè)程序設(shè)計(jì)的80%以上的時(shí)間。掌握C+編程和調(diào)試,是極其重要的。(3)利用C+進(jìn)行簡單軟件設(shè)計(jì)的基本思路和方法。今天我們的程序設(shè)計(jì)只是一個(gè)很小很小的方面

3、而已,從這次課程設(shè)計(jì)中,我們應(yīng)該對(duì)軟件設(shè)計(jì)有所認(rèn)識(shí),并且在今后的學(xué)習(xí)中要為此做出充分的準(zhǔn)備。(4)提高運(yùn)用C+解決實(shí)際問題的能力。任何知識(shí)的學(xué)習(xí)的最終目的都是解決實(shí)際問題。C+編程在解決實(shí)際問題上具有很大的作用。二、課程設(shè)計(jì)任務(wù)內(nèi)容1、課程設(shè)計(jì)內(nèi)容:小區(qū)樓盤銷售管理程序 要用結(jié)構(gòu)體數(shù)組/鏈表實(shí)現(xiàn),用結(jié)構(gòu)體表示每項(xiàng)記錄,包含樓盤數(shù)據(jù)為:樓編號(hào)、單元號(hào)、房間號(hào)、朝向(如:南北、東西、東南等)、戶型、平米單價(jià)、建筑面積、總價(jià),售出狀態(tài),業(yè)務(wù)員等,其中總價(jià)=單價(jià)X 建筑面積。設(shè)計(jì)各個(gè)函數(shù),分別實(shí)現(xiàn)以下功能: (1)錄入:實(shí)現(xiàn)每套房源信息的輸入,最好是追加方式; (2)刪除:完成房源信息的刪除; (3)

4、修改:允許對(duì)已經(jīng)錄入的數(shù)據(jù)重新進(jìn)行編輯、修改; (4)顯示:顯示所有房源信息; (5)查詢: a) 輸入朝向、戶型等數(shù)據(jù),顯示符合該條件的所有記錄,最好做到條件動(dòng)態(tài)添加; b)建筑面積范圍,顯示符合該條件的所有記錄; c) 顯示所有未售出房源情況; d)查詢已售出房源的業(yè)務(wù)員姓名,成交額及總額 (6) 退出程序。 設(shè)計(jì)菜單,通過選擇菜單調(diào)用以上各函數(shù)。要求:1)用C語言實(shí)現(xiàn)系統(tǒng);2)函數(shù)功能要?jiǎng)澐趾茫ńY(jié)構(gòu)化程序設(shè)計(jì));3)界面友好(良好的人機(jī)交互),加必要的注釋;4)提供程序測試方案。2、設(shè)計(jì)內(nèi)容分析輸入項(xiàng):樓編號(hào)、單元號(hào)、房間號(hào)、朝向(如:南北、東西、東南等)、戶型、平米單價(jià)、建筑面積、總價(jià)

5、,售出狀態(tài),業(yè)務(wù)員等,其中總價(jià)=單價(jià)X 建筑面積。程序中也會(huì)有一些其他的循環(huán)條件輸入。輸出項(xiàng):小區(qū)樓盤房源的相關(guān)信息,也就是輸入項(xiàng)的用戶所需數(shù)據(jù)。程序功能的實(shí)現(xiàn):程序設(shè)計(jì)到數(shù)據(jù)的動(dòng)態(tài)添加、刪除、修改、和查詢,應(yīng)使用鏈表進(jìn)行存儲(chǔ)較為方便。而且應(yīng)使用一個(gè)結(jié)構(gòu)體來對(duì)應(yīng)相應(yīng)的房間,存儲(chǔ)其相關(guān)信息。在使用鏈表上,很多地功能的實(shí)現(xiàn)都變得很簡單了,條件查找上因該會(huì)比較麻煩,應(yīng)多加考慮。三、詳細(xì)設(shè)計(jì)說明1、函數(shù)功能說明、參數(shù)說明及函數(shù)流程圖整個(gè)程序共包含6個(gè)函數(shù):void input(residence *);/ 輸入函數(shù)void del(residence *);/ 刪除函數(shù)void amend(resid

6、ence *);/ 修改函數(shù)void display(residence *);/ 顯示所有信息void seek(residence *);/ 條件查找函數(shù)int main(); /主函數(shù)程序中使用了一個(gè)結(jié)構(gòu)體,用于存儲(chǔ)套房間的相應(yīng)信息:struct residenceint lou,danyuan,fangjian; /樓號(hào)/單元號(hào)/房間號(hào)string chaoxiang,huxing; /朝向/戶型float danjia,mianji,zongjia; /平米單價(jià)/面積/總價(jià)string zhuangtai,renyuan; /售出狀態(tài)(yes/no)/銷售人員(沒有的話為no,有的話

7、輸入相應(yīng)的名字)residence *next; /指針用來指向鏈表的下一個(gè)結(jié)點(diǎn);(1)、int main()函數(shù)功能說明:主函數(shù),主要是實(shí)現(xiàn)兩個(gè)功能:一是程序開始運(yùn)行時(shí)的文件數(shù)據(jù)載入,二是顯示主菜單文件載入時(shí)先判斷文件是否存在,如果不存在,使用outf.open("data.txt",ios:out);進(jìn)行新建;如果存在,從中讀取數(shù)據(jù)并存入鏈表中。主菜單放在一個(gè)while循環(huán)中,通過swicth進(jìn)行選擇相應(yīng)選項(xiàng)。函數(shù)參數(shù)說明:int i; 用于菜單選擇,不同的值對(duì)應(yīng)不同的菜單Int a; 用于記錄載入的數(shù)據(jù)個(gè)數(shù)Residence *head,*p1,*p2; 用于鏈表的創(chuàng)

8、建,head是鏈表的頭結(jié)點(diǎn),p1,p2都是創(chuàng)建鏈表是的中間變量,起輔助傳遞作用。函數(shù)流程圖:ifstream inf("data.txt",ios:in);ofstream outf;if(inf=0)outf.open("data.txt",ios:out);a+;cout<<"數(shù)據(jù)文件不存在,將新建"<<endl;while(1)p1=new residence;YN開始圖2-1(1)inf>>p1->lou>>p1->danyuan>>.break;if(i

9、nf=0)p2->next=p1;p2=p1;cout<<"共載入"<<a-1<<"個(gè)數(shù)據(jù)"<<endl<<endl;YN圖2-1(2)(2)、void input(residence *);函數(shù)功能說明:輸入數(shù)據(jù)并保存于文件中。輸入分成了二次,第一次是樓號(hào)、單元號(hào)、房間號(hào)、平米單價(jià)、建筑面積這5個(gè)信息;第二次是朝向、戶型、售出狀態(tài)(yes/no)、業(yè)務(wù)員(no/業(yè)務(wù)員姓名)共4個(gè)信息;總價(jià)這一信息使用p1->zongjia=p1->danjia*p1->mianji;來

10、計(jì)算,減少用戶的工作量。保存數(shù)據(jù)上,用戶每輸入完一個(gè)房源信息就存儲(chǔ)一個(gè),使用的是這個(gè)語句:outf<<p1->lou<<" "<<p1->danyuan<<" "<<p1->fangjian<<" "<<p1->danjia<<" "<<p1->mianji<<" "<<" "<<p1->zongj

11、ia;outf<<" "<<p1->chaoxiang<<" "<<p1->huxing<<" "<<p1->zhuangtai<<" "<<p1->renyuan<<endl;函數(shù)參數(shù)說明:residence *head1:存儲(chǔ)原鏈表的頭指針residence *p1,*p2,*head; p1,p2為中間指針變量,head用于存儲(chǔ)原指的尾結(jié)點(diǎn)函數(shù)流程圖:ofstream outf(

12、"data.txt",ios:app);p1=head1;while (1)p1->next=NULLbreak;p1=p1->next;YNp2=head;n!=0p1=new residence;p2->next=p1;cin>>p1->lou>>p1->danyuan>>.outf<<p1->lou<<" "<<p1->danyuancin>>n;outf.close;圖2-2圖2-2(3)、void del(residen

13、ce *);函數(shù)功能說明:刪除數(shù)據(jù),并將刪除后的數(shù)據(jù)保存在文件中將樓號(hào)、單元號(hào)。房間號(hào)等信息存儲(chǔ)在l、d、f三個(gè)變量中,在對(duì)查看每個(gè)節(jié)點(diǎn)時(shí),if(p1->lou=l&&p1->danyuan=d&&p1->fangjian=f)進(jìn)行判斷。并且,通過判斷i是否為零確定刪除的數(shù)據(jù)的個(gè)數(shù),如果i為零,提示沒有改套房間。數(shù)據(jù)保存與輸入部分是一樣的。函數(shù)參數(shù)說明:residence *head1:存儲(chǔ)原鏈表的頭指針int l,d,f,n,i; l、d、f分別用于存儲(chǔ)需要查詢的房間的樓號(hào)、單元號(hào)、房間號(hào);n用來判斷是否結(jié)束修改操作返回主菜單;i用來判斷是否

14、刪除成功。residence *p1,*p2;中間的指針變量函數(shù)流程圖:p2=head;p1=head->next;1p1->lou=l&&p1->danyuan=d&&p1->fangjian=fp2->next=p1->next;delete p1;break;Yp2=p1;p1->next=NULLbreak;Yp1=p1->next;cin>>n;n!=0p1=head;1p1=p1->next;outf<<p1->lou<<" "<

15、<p1->next=NULL<" "<<NNbreak;YN圖2-3(4)、void amend(residence *);函數(shù)功能說明:修改數(shù)據(jù),并將修改保存在文件中查找房間所在鏈表的位置與刪除函數(shù)是一樣的。提示用戶是按相應(yīng)鍵以做相應(yīng)修改,并且可以循環(huán)修改:cout<<"相應(yīng)按鍵為:樓號(hào) 1, 單元號(hào) 2, 房間號(hào) 3, 平米單價(jià) 4, 建筑面積 5, 朝向 6, 戶型 7, 售出狀態(tài) 8, 業(yè)務(wù)員 9,退出 0"<<endl;當(dāng)用戶按0想要結(jié)束修改時(shí),程序退出修改模塊,進(jìn)入存儲(chǔ)模塊,存儲(chǔ)完畢提示c

16、out<<"修改已保存"<<endl;并返回主菜單。函數(shù)參數(shù)說明:residence *head1:存儲(chǔ)原鏈表的頭指針int l,d,f,n,i; l、d、f分別用于存儲(chǔ)需要查詢的房間的樓號(hào)單元號(hào)、房間號(hào);n用來判斷是否結(jié)束修改操作返回主菜單;i用于判斷是否刪除成功。residence *p1,*p2; residence *p1,*p2;中間的指針變量函數(shù)流程圖:cin>>l>>d>>f;while(1)p2=head;p1=head->next;p1->lou=l&&p1->d

17、anyuan=d&&p1->fangjian=fcin>>i;switch (i)while(i!=0);YNbreak;p1->next=NULLcin>>n;n=0p1=p1->next;break;YYNN圖2-4(5)、void display(residence *);函數(shù)功能說明:查看所有房源信息,以列表的方式顯示函數(shù)參數(shù)說明:residence *head1:存儲(chǔ)原鏈表的頭指針residence *p1;中間指針變量函數(shù)流程圖:p1=head->next;while(1)cout<<setw(6)<

18、<setiosflags(ios:left)<<p1->lou;.p1->next=NULLbreak;p1=p1->next;YN圖2-5(6)、void seek(residence *);函數(shù)功能說明:條件查詢實(shí)現(xiàn)的原理:將原鏈表進(jìn)行復(fù)制,查詢的時(shí)候?qū)?fù)制鏈表進(jìn)行查找,并把不符合條件的節(jié)點(diǎn)刪除,這樣一來剩下的就都是符合條件的節(jié)點(diǎn);如果再次添加條件進(jìn)行查找,仍舊執(zhí)行這個(gè)操作,從而達(dá)到條件查詢的目的。其中,使用while(1)進(jìn)行循環(huán),if語句判斷選擇的是何種操作。函數(shù)參數(shù)說明:residence *head2; 存儲(chǔ)原鏈表的頭指針int t;用于選擇查找

19、條件string s;;存儲(chǔ)提供的查詢信息:朝向,戶型,float m1,m2,q=0; m1,m2分別存儲(chǔ)面積范圍的左右邊界,用于計(jì)算已售房源的總金額residence *p1,*p2,*p3,*p4,*head; 除head存儲(chǔ)新復(fù)制鏈表的頭結(jié)點(diǎn)外,其他都是中間指針變量。函數(shù)流程圖:head=new residence;p3=head;1p2->next=NULLp1=new residence;p3->next=p1;p3->next=p1;YNp2=p2->next;break;圖2-6cin>>s;1p2=head;p1=head->next

20、;cin>>t;t=1YN1p1->chaoxiang=scout<<setw(6)<<setiosflags(ios:left)<<p2=p1;p1=p1->next;p2->next=p1->next;delete p3;t=2cout<<"返回主菜單"NY.圖2-72、編碼ASCII。數(shù)據(jù)也是存儲(chǔ)在ASCII文件中,文件名為:data.txt;可以隨時(shí)查看數(shù)據(jù)。3、測試初始界面:圖3-1輸入數(shù)據(jù):圖3-2輸入完成后重新打開程序:圖3-3顯示所有數(shù)據(jù):圖3-4刪除數(shù)據(jù):圖3-5圖3-6修

21、改數(shù)據(jù):圖3-7圖3-8查詢數(shù)據(jù):圖3-9追加條件:圖3-10程序的存在一個(gè)bug,按戶型查詢后,程序不能進(jìn)入菜單,而是卡死。由于5個(gè)if語句中的循環(huán)代碼是完全一樣的,為什么在按戶型查詢時(shí)就出問題,有待解決。初步確定是鏈表尾結(jié)點(diǎn)賦值NULL出錯(cuò),應(yīng)屬于編譯系統(tǒng)的問題。按戶型 4-2查找,沒問題:圖3-11按戶型4-1查找,出現(xiàn)錯(cuò)誤:圖3-12四、軟件使用說明1、開始運(yùn)行程序,顯示主菜單。左上角會(huì)有提示,顯示數(shù)據(jù)載入的相應(yīng)情況。按相應(yīng)數(shù)字鍵即可進(jìn)入對(duì)應(yīng)功能。2、輸入數(shù)據(jù)輸入分為兩次,第一次包括:樓號(hào)、單元號(hào)、房間號(hào)、平米單價(jià)、建筑面積這5個(gè)信息;第二次是朝向、戶型、售出狀態(tài)(yes/no)、業(yè)務(wù)

22、員(no/業(yè)務(wù)員姓名)共4個(gè)信息;第二次包括:朝向、戶型、售出狀態(tài)(yes/no)、業(yè)務(wù)員(no/業(yè)務(wù)員姓名)共4個(gè)信息;總價(jià)這信息程序會(huì)自行計(jì)算,用戶無需輸入。輸入完成一次后會(huì)提示是否繼續(xù):“如果需要結(jié)束輸入請(qǐng)按0,要繼續(xù)請(qǐng)按1”用戶輸入的房源信息會(huì)與以前輸入的信息放在同一個(gè)文件下,不會(huì)覆蓋。數(shù)據(jù)時(shí)按時(shí)間順序排列的。3、刪除數(shù)據(jù)首先提示輸入樓號(hào)、單元號(hào)、房間號(hào),輸入完成后即開始查找刪除。如果沒有該房源,則會(huì)有相應(yīng)提示。4、修改數(shù)據(jù)進(jìn)入修改后,提示按相應(yīng)鍵可進(jìn)行相應(yīng)修改。用戶輸入需要修改的房間位置信息,之后按相應(yīng)的數(shù)字即可開始修改??梢孕薷乃詳?shù)據(jù)。5、顯示所有數(shù)據(jù)顯示所有數(shù)據(jù),按任意鍵返回主

23、菜單。6、條件查詢提供五總查詢方式:朝向(1),戶型(2),建筑面積范圍(3),顯示所有未售出房源(4),查詢已售出房源的業(yè)務(wù)員姓名、成交金額及總額(5);按相應(yīng)數(shù)字進(jìn)入查找。查找完成后如果想繼續(xù)添加條件進(jìn)行查找可繼續(xù)按相應(yīng)數(shù)字繼續(xù),也可按0退出返回菜單。7、退出按0即可。五、課程設(shè)計(jì)心得與體會(huì)這次課程設(shè)計(jì)讓我受益匪淺。學(xué)編程這么久,還是頭一次寫這么大的程序。通過這個(gè),也算體驗(yàn)到了程序設(shè)計(jì)的艱苦和團(tuán)隊(duì)合作的重要性,這也為以后做項(xiàng)目打了一些基礎(chǔ),而且積累了不少程序設(shè)計(jì)的經(jīng)驗(yàn)?zāi)?。最后,得學(xué)習(xí)圖形用戶操作界面的設(shè)計(jì)了,dos界面確實(shí)不怎么好看,而且容易出現(xiàn)一些不必要的問題,比如多輸入了一個(gè)數(shù)據(jù)該???/p>

24、而言之,Still have long way to go.附錄1:參考文獻(xiàn)1、C+程序設(shè)計(jì) 錢能 清華大學(xué)出版社2、c+程序設(shè)計(jì)作者:譚浩強(qiáng) 出版時(shí)間2004年6月附錄2:程序清單#include <iostream>#include <fstream>#include <string>#include <iomanip>using namespace std;struct residence/房源信息結(jié)構(gòu)體int lou,danyuan,fangjian;string chaoxiang,huxing;float danjia,mianji,

25、zongjia;string zhuangtai,renyuan;residence *next;int main()void input(residence *);/ok 輸入函數(shù)void del(residence *);/ok 刪除函數(shù)void amend(residence *);/ok 修改函數(shù)void display(residence *);/ok 顯示所有信息void seek(residence *);/ok 條件查找函數(shù)/ 函數(shù)定義完畢int i;residence *head,*p1,*p2;head=new residence; head->next=NULL;/

26、打開文件進(jìn)行,從文件進(jìn)行輸入,進(jìn)入等待狀態(tài)ifstream inf("data.txt",ios:in);ofstream outf;if(inf=0)/文件不存在,新建cout<<"數(shù)據(jù)文件不存在,將新建"<<endl;inf.close; outf.open("data.txt",ios:out); outf.close;cout<<"successfull!"<<endl;else/文件存在,讀取數(shù)據(jù)int a=0;p2=head;while(1)a+;/記錄載

27、入的數(shù)據(jù)的個(gè)數(shù)p1=new residence;p1->next=NULL;inf>>p1->lou>>p1->danyuan>>p1->fangjian;inf>>p1->danjia>>p1->mianji>>p1->zongjia;inf>>p1->chaoxiang>>p1->huxing>>p1->zhuangtai>>p1->renyuan;if(inf=0) break; delete p1;p2

28、->next=p1;p2=p1;cout<<"數(shù)據(jù)載入成功!"<<endl;/文件載入完成cout<<"共載入"<<a-1<<"個(gè)數(shù)據(jù)"<<endl<<endl;while(1)/菜單cout<<" *歡迎使用小區(qū)樓盤銷售管理程序* "<<endl;/菜單cout<<" + + "<<endl;cout<<" + + "<

29、<endl;cout<<" + + "<<endl;cout<<" + >>>>要輸入數(shù)據(jù)請(qǐng)按-1 + "<<endl; cout<<" + >>>>要?jiǎng)h除數(shù)據(jù)請(qǐng)按-2 + "<<endl;cout<<" + >>>>要修改數(shù)據(jù)請(qǐng)按-3 + "<<endl; cout<<" + >>>>要顯示數(shù)據(jù)請(qǐng)

30、按-4 + "<<endl;cout<<" + >>>>要查詢數(shù)據(jù)請(qǐng)按-5 + "<<endl; cout<<" + >>>>要退出請(qǐng)按-6 + "<<endl;cout<<" + + "<<endl;cout<<" + + "<<endl;cout<<" + + "<<endl;cout<<&q

31、uot; *歡迎使用小區(qū)樓盤銷售管理程序*"<<endl;cout<<endl;cin>>i;switch(i)case 1: input(head); break;case 2: del(head); break;case 3: amend(head); break;case 4: display(head); break;case 5: seek(head); break;case 6: exit(1); break;return 0;void input(residence *head1)/ofstream outf("data.t

32、xt",ios:app);/打開文件,等待數(shù)據(jù)存儲(chǔ)residence *p1,*p2,*head;p1=head1;while (1)if(p1->next=NULL) break;p1=p1->next;head=p1;int n;p2=head;cout<<"開始輸入"<<endl;dop1=new residence;p1->next=NULL;p2->next=p1;cout<<"樓號(hào)、單元號(hào)、房間號(hào)、平米單價(jià)、建筑面積這5個(gè)信息"<<endl;cin>>

33、;p1->lou>>p1->danyuan>>p1->fangjian;cin>>p1->danjia>>p1->mianji;p1->zongjia=p1->danjia*p1->mianji;cout<<"請(qǐng)分別輸入朝向、戶型、售出狀態(tài)(yes/no)、業(yè)務(wù)員(no/業(yè)務(wù)員姓名)共4個(gè)信息"<<endl;cin>>p1->chaoxiang>>p1->huxing>>p1->zhuangtai>

34、;>p1->renyuan;outf<<p1->lou<<" "<<p1->danyuan<<" "<<p1->fangjian<<" "<<p1->danjia<<" "<<p1->mianji<<" "<<" "<<p1->zongjia;outf<<" &qu

35、ot;<<p1->chaoxiang<<" "<<p1->huxing<<" "<<p1->zhuangtai<<" "<<p1->renyuan<<endl;/輸入數(shù)據(jù)的同時(shí),將數(shù)據(jù)寫入文件cout<<"如果需要結(jié)束輸入請(qǐng)按0,要繼續(xù)請(qǐng)按1"<<endl; cin>>n;p2=p1;while(n!=0);outf.close;cout<<&quo

36、t;數(shù)據(jù)已保存!"<<endl;void del(residence * head)/int l,d,f,n,i;residence *p1,*p2;cout<<"請(qǐng)輸入您要?jiǎng)h除的房間的位置信息:樓號(hào),單元號(hào),房間號(hào)"<<endl;cin>>l>>d>>f;doif(head->next=NULL) cout<<"沒有數(shù)據(jù)"<<endl; return;p2=head;p1=head->next;while(1)/查找并刪除數(shù)據(jù)i=0;i

37、f(p1->lou=l&&p1->danyuan=d&&p1->fangjian=f)p2->next=p1->next;delete p1; i+;/刪除操作break;if(p1->next=NULL) break;p2=p1;p1=p1->next;if(i!=0) cout<<"刪除成功"<<endl;else cout<<"沒有該數(shù)據(jù)"<<endl;cout<<"如果需要結(jié)束輸入請(qǐng)按0,要繼續(xù)請(qǐng)按1&q

38、uot;<<endl;cin>>n;while(n!=0);ofstream outf("data.txt",ios:out);/重新存儲(chǔ)數(shù)據(jù)p1=head;if(p1->next=NULL) cout<<"數(shù)據(jù)已全部刪除!"<<endl;elsewhile(1)p1=p1->next;outf<<p1->lou<<" "<<p1->danyuan<<" "<<p1->fangj

39、ian<<" "<<p1->danjia<<" "<<p1->mianji<<" "<<" "<<p1->zongjia;outf<<" "<<p1->chaoxiang<<" "<<p1->huxing<<" "<<p1->zhuangtai<<&quo

40、t; "<<p1->renyuan<<endl;if(p1->next=NULL) break;outf.close;cout<<"修改已保存"<<endl;void amend(residence *head)/cout<<"已進(jìn)入修改,完成一次修改后可按0退出"<<endl;int l,d,f,n,i;residence *p1,*p2;if(head->next=NULL) cout<<"沒有數(shù)據(jù)"<<en

41、dl;return;cout<<"相應(yīng)按鍵為:樓號(hào) 1, 單元號(hào) 2, 房間號(hào) 3, 平米單價(jià) 4, 建筑面積 5, 朝向 6, 戶型 7, 售出狀態(tài) 8, 業(yè)務(wù)員 9,退出 0"<<endl;cout<<"請(qǐng)輸入您要修改的房間的位置信息:樓號(hào),單元號(hào),房間號(hào)"<<endl;cin>>l>>d>>f;while(1)p2=head;p1=head->next;while (1)if(p1->lou=l&&p1->danyuan=d&

42、;&p1->fangjian=f)/判斷條件docout<<"請(qǐng)輸入相應(yīng)的數(shù)字"<<endl;cin>>i;switch (i)case 1: cout<<"新樓號(hào)"cin>>p1->lou;break;case 2: cout<<"新單元號(hào)"cin>>p1->danyuan;break;case 3: cout<<"新房間號(hào)"cin>>p1->fangjian;break;c

43、ase 4: cout<<"新平米單價(jià)"cin>>p1->danjia;p1->zongjia=p1->danjia*p1->mianji;break;case 5: cout<<"新建筑面積"cin>>p1->mianji;p1->zongjia=p1->danjia*p1->mianji;break;case 6: cout<<"新朝向"cin>>p1->chaoxiang;break;case 7: co

44、ut<<"新戶型"cin>>p1->huxing;break;case 8: cout<<"新售出狀態(tài)"cin>>p1->zhuangtai;break;case 9: cout<<"新業(yè)務(wù)員"cin>>p1->renyuan;break;case 0: break;while(i!=0);/如果不符合條件,繼續(xù)查找下一個(gè)if(p1->next=NULL) break;p2=p1;p1=p1->next;cout<<&qu

45、ot;要結(jié)束修改嗎?是:0,否:1"<<endl;cin>>n;if(n=0) break;ofstream outf("data.txt",ios:out);/數(shù)據(jù)存儲(chǔ)p1=head;if(p1->next=NULL) cout<<"數(shù)據(jù)已全部刪除!"<<endl;elsewhile(1)p1=p1->next;outf<<p1->lou<<" "<<p1->danyuan<<" "&

46、lt;<p1->fangjian<<" "<<p1->danjia<<" "<<p1->mianji<<" "<<" "<<p1->zongjia;outf<<" "<<p1->chaoxiang<<" "<<p1->huxing<<" "<<p1->zh

47、uangtai<<" "<<p1->renyuan<<endl;if(p1->next=NULL) break;outf.close;cout<<"修改已保存"<<endl;cout<<endl;void display(residence *head)/顯示數(shù)據(jù)/int i=1;if(head->next=NULL) cout<<"沒有數(shù)據(jù)"<<endl;return;cout<<"所有房源信息:&

48、quot;<<endl<<endl;cout<<"樓號(hào) 單元號(hào) 房間號(hào) 平米單價(jià) 建筑面積 總價(jià) 朝向 戶型 售出狀態(tài) 業(yè)務(wù)員"<<endl;residence *p1;p1=head->next;while(1)cout<<setw(6)<<setiosflags(ios:left)<<p1->lou;/樓號(hào)cout<<setw(7)<<setiosflags(ios:left)<<p1->danyuan;/單元號(hào)cout<<

49、;setw(7)<<setiosflags(ios:left)<<p1->fangjian;/房間號(hào)cout<<setw(9)<<setiosflags(ios:left)<<p1->danjia;/平米單價(jià)cout<<setw(9)<<setiosflags(ios:left)<<p1->mianji;/建筑面積cout<<setw(10)<<setiosflags(ios:left)<<p1->zongjia;/總價(jià)cout<&l

50、t;setw(7)<<setiosflags(ios:left)<<p1->chaoxiang;/朝向cout<<setw(12)<<setiosflags(ios:left)<<p1->huxing;/戶型cout<<setw(9)<<setiosflags(ios:left)<<p1->zhuangtai;/售出狀態(tài)cout<<setw(6)<<setiosflags(ios:left)<<p1->renyuan<<endl

51、;/業(yè)務(wù)員if(p1->next=NULL) break;p1=p1->next;cout<<endl;cout<<"按任意鍵返回主菜單。"<<endl;getchar();getchar();void seek(residence *head2)/*數(shù)據(jù)查找*/int t;string s;float m1,m2,q=0;residence *p1,*p2,*p3,*p4,*head;head=new residence;head->next=NULL;p3=head;p2=head2;while (1)/開始復(fù)制鏈表

52、if(p2->next=NULL) break;p1=new residence;p1->next=NULL;p3->next=p1;p2=p2->next;p1->lou=p2->lou;p1->danyuan=p2->danyuan;p1->fangjian=p2->fangjian;p1->danjia=p2->danjia;p1->mianji=p2->mianji;p1->zongjia=p2->zongjia;p1->chaoxiang=p2->chaoxiang;p1-&g

53、t;huxing=p2->huxing;p1->zhuangtai=p2->zhuangtai;p1->renyuan=p2->renyuan; if(p2->next=NULL) break;p3=p1;/復(fù)制鏈表完畢p2=head;p1=head->next;cout<<"開始查找"<<endl;while(1)/開始條件查找p2=head;p1=head->next;cout<<"查詢方式:朝向(1),戶型(2),建筑面積范圍(3),顯示所有未售出房源(4),查詢已售出房源的

54、業(yè)務(wù)員姓名、成交金額及總額(5),退出 0"<<endl;cin>>t;if(t=1)/按朝向查找cout<<"請(qǐng)輸入朝向"<<endl;cin>>s;cout<<endl;cout<<"樓號(hào) 單元號(hào) 房間號(hào) 平米單價(jià) 建筑面積 總價(jià) 朝向 戶型 售出狀態(tài) 業(yè)務(wù)員"<<endl;while(1)if(p1->chaoxiang=s)cout<<setw(6)<<setiosflags(ios:left)<<p

55、1->lou;/樓號(hào)cout<<setw(7)<<setiosflags(ios:left)<<p1->danyuan;/單元號(hào)cout<<setw(7)<<setiosflags(ios:left)<<p1->fangjian;/房間號(hào)cout<<setw(9)<<setiosflags(ios:left)<<p1->danjia;/平米單價(jià)cout<<setw(9)<<setiosflags(ios:left)<<p1-&g

56、t;mianji;/建筑面積cout<<setw(10)<<setiosflags(ios:left)<<p1->zongjia;/總價(jià)cout<<setw(7)<<setiosflags(ios:left)<<p1->chaoxiang;/朝向cout<<setw(12)<<setiosflags(ios:left)<<p1->huxing;/戶型cout<<setw(9)<<setiosflags(ios:left)<<p1-&g

57、t;zhuangtai;/售出狀態(tài)cout<<setw(6)<<setiosflags(ios:left)<<p1->renyuan<<endl;/業(yè)務(wù)員if(p1->next=NULL) break; p2=p1;p1=p1->next;elsep2->next=p1->next;p3=p1;if(p1->next=NULL) p2->next=NULL;delete p3;break;p2=p1;p1=p1->next;delete p3;cout<<endl;if(t=2)/按戶型

58、查找cout<<"請(qǐng)輸入戶型"<<endl;cin>>s;cout<<endl;cout<<"樓號(hào) 單元號(hào) 房間號(hào) 平米單價(jià) 建筑面積 總價(jià) 朝向 戶型 售出狀態(tài) 業(yè)務(wù)員"<<endl;while(1)if(p1->huxing=s)cout<<setw(6)<<setiosflags(ios:left)<<p1->lou;/樓號(hào)cout<<setw(7)<<setiosflags(ios:left)<&l

59、t;p1->danyuan;/單元號(hào)cout<<setw(7)<<setiosflags(ios:left)<<p1->fangjian;/房間號(hào)cout<<setw(9)<<setiosflags(ios:left)<<p1->danjia;/平米單價(jià)cout<<setw(9)<<setiosflags(ios:left)<<p1->mianji;/建筑面積cout<<setw(10)<<setiosflags(ios:left)<<p1->zongjia;/總價(jià)cout<<setw(7)<<setiosflags(ios:left)<<p1->chaoxiang;/朝向cout<<setw(12)<<setiosflags(ios:left)<&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論