C語言課程設(shè)計房屋租賃管理系統(tǒng)_第1頁
C語言課程設(shè)計房屋租賃管理系統(tǒng)_第2頁
C語言課程設(shè)計房屋租賃管理系統(tǒng)_第3頁
C語言課程設(shè)計房屋租賃管理系統(tǒng)_第4頁
C語言課程設(shè)計房屋租賃管理系統(tǒng)_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、合肥學(xué)院計算機科學(xué)與技術(shù)系課程設(shè)計報告20122013學(xué)年第二學(xué)期課程 C語言課程設(shè)計課程設(shè)計名稱房屋租賃管理系統(tǒng)學(xué)生姓名 學(xué)號專業(yè)班級計本(3)班 指導(dǎo)教師華珊珊 項響琴 2013年6月合肥學(xué)院C語言課程設(shè)計報告第一章:需求分析11.1添加11.2顯示11.3存儲11.4裝入11.5查詢1第二章:算法設(shè)計:12.1設(shè)計思想12.2設(shè)計表示32.3設(shè)計注釋92.4算法設(shè)計的新思想9第三章:小結(jié)10第四章:參考文獻:10 第一章:需求分析編寫一個簡單的房屋租賃管理程序,幫助管理房屋租賃管理事物。要求具有備忘錄房屋項目管理和租賃信息管理的功能。其中房屋項目管理包括房屋項目增加、刪除、和修改等功能。

2、租賃信息管理包括房租租售登記表輸入和房屋出租查詢。本題程序應(yīng)提供的基本管理功能有:1) 添加:即增加一條房屋信息到房屋項目中;2) 顯示:即在屏幕上顯示所有房屋項目中的信息。3) 存儲:即將房屋項目信息保存在一個文件中。4) 裝入:即將文件中的信息讀入程序。5) 查詢:可根據(jù)房屋編號查找房屋項目信息,若找到,顯示在屏幕上。6)修改:可修改某編號的房屋項目信息。第二章:算法設(shè)計:1:設(shè)計思想:l主流程圖:主菜單房屋租賃管理系統(tǒng)子菜單備忘錄房屋信息管理子菜單租賃信息管理添加房屋信息修改房屋信息顯示房屋信息查尋房屋信息刪除房屋信息子菜單流程圖查詢房屋信息按戶主名查找按地點查找按租賃人名查找按面積查找

3、按租金查找子菜單流程圖刪除房屋信息按戶主名字刪除按租賃人名字刪除算法思想:創(chuàng)建房屋結(jié)構(gòu)體類型,每條房屋項目信息都用該結(jié)構(gòu)體來實現(xiàn),包含地點,面積,戶主,租金,租賃人等。用一個單向鏈表來管理房屋項目信息,通過鏈表的遍歷可以操作這些數(shù)據(jù)。本程序共使用了兩個級的菜單。主菜單,子菜單。共使用了五個子函數(shù),他們的功能分別是:插入、刪除、輸出、修改、和查找,通過主函數(shù)的調(diào)用實現(xiàn)程序的要求。主函數(shù)使用兩個switch語句,得到兩個次級菜單。再在switch語句的case中調(diào)用子函數(shù)。本系統(tǒng)用到了以下得知識點:1:面向過程程序設(shè)計方法2:界面制作,switch的應(yīng)用。3:動態(tài)數(shù)組(鏈表)。4:文件的讀寫。2

4、:設(shè)計表示:輸出子函數(shù):void output(house *head)/輸出子函數(shù) while (head!=NULL) printf("戶主名 : %s n",head->house0); printf("租戶名: %s n",head->house1); printf("地點 : %s n",head->house2); printf("面積 : %s n",head->house3); printf("租金: %s n",head->house4); pri

5、ntf("n"); head=head->next; printf("按任意鍵結(jié)束n"); getchar(); getchar();該部分是輸出子函數(shù),功能是將數(shù)據(jù)庫中的數(shù)據(jù)輸出,前提是數(shù)據(jù)庫中必須要有數(shù)據(jù),否則就會出現(xiàn)錯誤。在沒有錯誤的情況下,它將會按如下例子輸出::戶主名: bob租戶名: tom 地點 : anhui 面積 : 80"租金: 900按任意鍵結(jié)束查找子函數(shù)void Search(int n,house *head) char st100; int t,flag=0; system("cls");

6、t=n-1; if (n=1) printf("t請輸入待查找戶主姓名:"); if (n=3) printf("t請輸入待查找租主姓名:"); if (n=5) printf("t請輸入待查找房子地點:"); if (n=2) printf("t請輸入待查找房子面積:"); if (n=4) printf("t請輸入待查找房子租金:"); getchar(); gets(st); while (head!=NULL) if (strcmp(head->houset,st)=0) outp

7、ut(head,1); flag+; head=head->next; if (flag!=0) printf("查找到 %d 位滿足條件n",flag); else printf("未找到滿足條件房子信息n");getchar();該部分是查找子函數(shù),其主要功能是按照操作的要求查找數(shù)據(jù)庫中的數(shù)據(jù),并輸出到顯示器上。如果數(shù)據(jù)庫中沒有要找的數(shù)據(jù),將會提示,沒有符合要求的數(shù)據(jù)。若有數(shù)據(jù)將會像如下例子那樣的輸出:請輸入待查找的戶主姓名:戶主名: bob租戶名: tom 地點 : anhui 面積 : 80"租金: 900修改子函數(shù)void Ch

8、ange(house *head,int n)char ch5100;FILE *fp;house *p=head;int i;system("cls");getchar();printf("請輸入要修改房屋戶主名:");gets(ch0);printf("請輸入要修改房屋租主名:");gets(ch1);printf("請輸入要修改房屋地點:");gets(ch2);printf("請輸入要修改房屋面積:");gets(ch3);printf("請輸入要修改面積租金:");

9、gets(ch4);while (p!=NULL) if (strcmp(p->housen,chn)=0) for (i=0;i<=4;i+) strcpy(p->housei,chi); fp=fopen("xinxi.txt","w"); while (head!=NULL) fprintf(fp,"%s",head->house0); fprintf(fp," %s",head->house1); fprintf(fp," %s",head->hous

10、e2); fprintf(fp," %s",head->house3); fprintf(fp," %s",head->house4); fprintf(fp,"n"); head=head->next; fclose(fp); return ; head=head->next;printf("沒有找到符合條件信息,按任意鍵結(jié)束n");getchar();該部分是修改子函數(shù),首先查找要修改的數(shù)據(jù),然后在說明要修改哪個信息,該子函數(shù)就會在數(shù)據(jù)庫中將原有的數(shù)據(jù)修改,如果找不到要修改的數(shù)據(jù),將會提

11、示,沒有找到符合條件的信息,按任意鍵結(jié)束。添加子函數(shù)void Insert()/添加子函數(shù) int n,i; house *q,*p; FILE *fp; fp=fopen("shujvku.txt","a+"); if (fp=NULL) printf("原文件損壞,請檢查后重新運行n");getchar();return ; printf("請輸入需要添加的個數(shù):"); scanf("%d",&n); getchar(); for (i=0;i<n;i+) p=(house *

12、)malloc(sizeof(house);printf("請輸入需添加戶主名:"); gets(p->house0); printf("請輸入需添加租主名:");gets(p->house1); printf("請輸入需添加房屋地點:");gets(p->house2); printf("請輸入需添加房屋面積:");gets(p->house3); printf("請輸入需添加房屋租金:");gets(p->house4); fprintf(fp,"n&

13、quot;); fprintf(fp,"%s",p->house0); fprintf(fp," %s",p->house1); fprintf(fp," %s",p->house2); fprintf(fp," %s",p->house3); fprintf(fp," %s",p->house4); fclose(fp);該部分是添加子函數(shù),將要增加的數(shù)據(jù)添加到數(shù)據(jù)庫中。格式是,戶主名、租賃人名、地點、面積、租金。首先該子函數(shù)會提示增加幾條信息。然后將會將你輸入的

14、信息輸入到數(shù)據(jù)庫中。刪除子函數(shù)house *Del(int n,house *head) char st100; int t,flag=0,judge; house *p,*q; system("cls"); t=n-1; if (n=1) printf("t請輸入需刪除戶主名:"); if (n=2) printf("t請輸入需刪除租主名:"); getchar(); gets(st); while (strcmp(head->houset,st)=0) head=head->next; flag+; q=p=head;

15、 while (p!=NULL) judge=1;if (strcmp(p->houset,st)=0) q->next=p->next; judge=0; flag+; if (judge=1) q=q->next;p=q->next; if (flag!=0) WritenFile(head); printf("刪除 %d 位滿足條件n",flag); else printf("未找到滿足條件房屋信息n");getchar(); return head;該部分是刪除子函數(shù),將會按操作刪除數(shù)據(jù)庫中的數(shù)據(jù)信息。如果數(shù)據(jù)庫中有

16、要刪除的數(shù)據(jù)信息,該數(shù)據(jù)信息將會被刪除,如果沒有,將會提示,未找到符合條件的房屋信息。3:設(shè)計注釋:本程序共使用了兩個級的菜單。主菜單,子菜單。共使用了五個子函數(shù),他們的功能分別是:插入、刪除、輸出、修改、和查找。其中輸出查找插入和修改的子函數(shù)都已調(diào)試通過。部分的子函數(shù)性能不穩(wěn)定,比如刪除和插入。由于自己的知識有限,暫時不能解決這些問題,也沒有完成在任務(wù)之外的任何功能。本程序基本上都是用戶自己選擇使用的功能,然后由主函數(shù)調(diào)用子函數(shù)實現(xiàn)。我創(chuàng)建了房屋結(jié)構(gòu)體類型,每條房屋項目信息都用該結(jié)構(gòu)體來實現(xiàn),包含地點,面積,戶主,租金,租賃人等。用一個單向鏈表來管理房屋項目信息,通過鏈表的遍歷可以操作這些數(shù)

17、據(jù)。4:算法設(shè)計的新思想:除了照著老師給我的任務(wù)書,寫自己的程序,自己也是照著自己的思想寫的。比如主函數(shù),我只用了switch語句來寫,沒有任何其他的東西了。這樣就覺得很簡單明了。而且看起來也很舒服。子函數(shù)的都使用一開始的結(jié)構(gòu)體完成的,紫蝶結(jié)構(gòu)體并不是定義同類型的多種變量,而是定義了一個二維的數(shù)組,因為我們輸入的都是字符,所以這樣操作起來會很簡單。還有就是本程序都是使用簡單的一看就能明了的語句書寫,在一些語句塊都加了注釋,這樣不管是修改還是調(diào)試,都很容易。除此之外,沒有其他的新方法,或者新的應(yīng)用。三、用戶手冊:用戶在使用時先要在桌面建立一個文件(shujvku.txt)。輸入的信息最長字符為1

18、00。先要輸入戶主名字,再是租賃人的名字,接下來是地點、面積和租金。例如(bob tom beijing 100 1000).在主界面用戶根據(jù)自己的使用要求進行選擇。然后進入子菜單中進行操作。使用過程中,有信息提示,你應(yīng)該怎么操作。輸入合法,或者輸入錯誤。若輸入錯誤則無法運行程序,有些子函數(shù)會提示重新輸入,有些子函數(shù)沒有提示。這就要求在輸入錯誤的情況下回到主菜單,從新運行程序。四、調(diào)試及測試:一開始在使用鏈表的時候,不知道怎么將其寫入文件,后來問老師,老師幫我解決了這個問題,使用了fwrite函數(shù),再有就是自己在桌面建立的文件夾是錯誤的,不可讀取。再有就是運行的時候老提示錯誤,后來在阮廣杰同學(xué)

19、的幫助下調(diào)試通過,只是在我的switch語句后多了一個,提示的錯誤是missing“;”。本程序?qū)ο到y(tǒng)的利用率以及時間方面有一般。一共有440條語句。通過測試的過程來看,寫程序一定要嚴謹,不能馬虎、要盡量在保證程序的正常工作下,使其簡潔。此外還有調(diào)試過程的截圖見附件。 第三章:小結(jié)在這一周的學(xué)習(xí)實驗中,在老師和同學(xué)的幫助下,自己的作業(yè)任務(wù)基本完成。自己的能力有所提升。自己一步步的完成自己的小系統(tǒng),真的很用心了,從一開始得無處下手,到后來整體框架出來,在后來實現(xiàn)子函數(shù)的功能.一步一步的接近一個完整的程序,雖然有些累,有時候甚至想要放棄,但最后都堅持下來了,最終還是圓滿的完成了這個程序.在我寫的程

20、序里,基本上沒有用到書本以外的知識,主函數(shù)的實現(xiàn)是通過switch語句實現(xiàn)的,再有就是子函數(shù),一共有五個子函數(shù),雖然有一些子函數(shù)的功能沒有實現(xiàn),但大部分的功能還是能實現(xiàn)的。通過這次的任務(wù)讓我對自己以后的工作方式有了一定的了解。而且還有就是讓我知道了怎么樣去完成一個大一點的系統(tǒng),以子函數(shù)的方式,分步完成。這次的程序設(shè)計最難得地方還是鏈表環(huán)節(jié),但鏈表又是組成此系統(tǒng)的重要知識,所以在完成這個程序方時,在鏈表上面的確下了一些功夫.最初對鏈表的知識一竅不通,根本弄不清它的定義,所以最開始每天都埋在書本上一些關(guān)于鏈表的定義概念以及一些相關(guān)的知識點,待到弄清楚一些知識點之后,就開始把一些書上的程序輸入到電腦

21、里,用分布調(diào)試的方法來了解觀察程序的運行過程以及詳細步驟.通過這樣對鏈表的知識點有了比較清晰的認識.之后我就開始通過模仿書上的一些程序?qū)懗鲆恍┳约旱男〕绦?慢慢的開始有了進步.當(dāng)然這個過程這樣說出來很是簡單,但其過程遠比這個艱辛,有時候一個知識點的里面又嵌套了若干知識點,之中知識點的嵌套理解起來是有一定的困難的,有時候一天就理解一個概念或是定義.就是這樣一步步堅持,對知識點的逐一擊破,對鏈表也就有了比較好的掌握.這對這個房屋租賃管理系統(tǒng)程序的設(shè)計起到了至關(guān)重要的作用.通過這次的任務(wù),我發(fā)現(xiàn)自己還有許多東西不知道,課本上的知識,只是皮毛。想要學(xué)好,還必須要向課外發(fā)展,自己只知道怎么做,照著書本,但一綜合起來就不會了。書本上教我們的只是一個基本的概念,事實上遠比想象的復(fù)雜。以前以為寫一兩千行程序是不可能的事,現(xiàn)在想想,那也不是多么的困難。雖然自己現(xiàn)在還不能獨立的完成我的任務(wù),主要原因是后來對指針,文件,還有鏈表的操作根本不會,只知道照著書去模仿,現(xiàn)在知道了,如果哪幾個東西不知道,是根本不能完成任何一個系統(tǒng)的。在做自己的程序的同時,我還體會到了合作的力量是偉大的,的確,合作能使很多問題得以高效的解決,有時候你對某一個問題困惑許久,一直在那一個人苦思冥想,往往這個時

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論