樓盤銷售管理系統(tǒng)綜述_第1頁
樓盤銷售管理系統(tǒng)綜述_第2頁
樓盤銷售管理系統(tǒng)綜述_第3頁
樓盤銷售管理系統(tǒng)綜述_第4頁
樓盤銷售管理系統(tǒng)綜述_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、西安郵電大學(計算機學院)咼級語言課程設計報告題目樓盤銷售管理系統(tǒng)專業(yè)名稱:班 級:學生姓名:學號(8位):指導教師:設計起止時間:設計目的該實踐環(huán)節(jié)讓學生綜合應用所學的計算機基礎知識和所掌握的程序設計語言 (C 語言), 自行設計并實現(xiàn)一個較為完整的小型管理信息系統(tǒng)或小型應用系統(tǒng)。 其主要目的是使學生通 過系統(tǒng)分析、系統(tǒng)設計、 編程調(diào)試、 撰寫實驗報告等環(huán)節(jié),初步掌握軟件系統(tǒng)設計的方法和 步驟,靈活運用程序設計語言進行軟件開發(fā)、提高分析問題和解決問題的能力。二 . 設計內(nèi)容1. 問題分析和任務定義:根據(jù)設計題目要求,充分了解任務要求。2. 邏輯設計:對問題描述中的操作對象定義相應的數(shù)據(jù)類型,

2、并按照以數(shù)據(jù)結構為中心的 原則劃分模塊,定義主程序模塊和各抽象數(shù)據(jù)類型。說明各主要功能模塊并畫出模塊調(diào) 用關系圖。3. 物理設計:定義所需的存儲結構并進行算法設計,對數(shù)據(jù)結構和基本操作做出詳細的設 計和分析,寫出函數(shù)形式的算法框架。4. 程序編碼:將詳細設計完善為程序。5. 程序調(diào)試與測試:自底向上、分模塊進行。認真整理程序形成格式和風格良好的源程序 清單和結果、同時系統(tǒng)界面友好、功能齊全。6. 結果分析:程序運行結果包括正確的輸入及輸出和含有錯誤的輸入及輸出,對算法的時 間和空間復雜性進行分析。7. 撰寫課程設計報告。概要設計1 功能模塊圖;2 各個模塊詳細的功能描述讀取信息模塊:在申請空間

3、內(nèi)讀取已存儲的TXT文件,若文件未建立則系統(tǒng)自行建立一個TXT文件;更新信息模塊:若要更新已儲存的全部信息,則選擇此模塊進行信息錄入,并將原信息全部覆蓋;輸出信息模塊:將若未選擇更新信息模塊,則將原文件儲存的信息全部輸出,若選擇更新信息模塊,則將新錄入的信息全部輸出;添加信息模塊:若有新的信息需要錄入, 則選擇此模塊,系統(tǒng)將在已經(jīng)申請的并未存放信息 空間將新的信息錄入并保存;刪除信息模塊:若有一樓盤已經(jīng)售出, 則選擇此模塊將此樓盤信息刪除,若該樓盤信息不存在,則系統(tǒng)顯示不存在該信息并返回主菜單,若要刪除則許選擇輸出模塊查詢該樓盤信息再重新選擇刪除模塊進行刪除;修改信息模塊:若樓盤輸入時錯誤,則

4、可選用此模塊對錄入錯誤的信息進行修改;若樓盤價格調(diào)整,也可選用此模塊對樓盤信息進行修改;查詢信息模塊:用戶可以根據(jù)自己的預計資金和承受范圍,對樓盤進行查詢,并在其中結合戶型、朝向、面積等信息選擇自己喜歡的樓盤;排序信息模塊:若選用此模塊,系統(tǒng)將根據(jù)樓盤樓號排序樓盤信息,可直觀的看出各樓號樓盤的銷售情況,并可對比看出哪個樓號的樓盤更受歡迎;統(tǒng)計信息模塊:若選用此模塊,用戶可查看自己喜歡的戶型的余量,銷售者也可根據(jù)此模塊判斷消費者喜歡那種戶型;保存信息模塊:若在運行中選取了更新信息模塊、添加信息模塊、刪除信息模塊或修改信息模塊,則此模塊自動在對應的模塊執(zhí)行完畢后自動儲存信息。四詳細設計1 功能函數(shù)

5、的調(diào)用關系圖2.各功能函數(shù)的數(shù)據(jù)流漆加按盤佶息3 重點設計及編碼/*查詢模塊*/void reserch(struct loupa ns_type loupa n, int sum) _int i = 0;int flag;int choice;int key = 0;char reserch110, reserch210;do system(cls);printf(nttt請輸入要查詢的樓盤的價格范圍(元/m2): nnn); printf(ttt 請輸入最低價格: nttt);scanf(%s, reserch1);printf(nnttt 請輸入最高價格 :nttt);scanf(%s,

6、 reserch2);for (i = 0; i 0 & strcmp(loupani.price, reserch2) 0)key = 1;if (key = 1) printf(nttt 樓盤信息 n );printf(樓盤樓號-單元信息(單元-房號)-類型(廳-室)-面積(單 位:m)-面向-價格(元/ m2 )n);printf(n);for (i = 0; i 0 & strcmp(loupani.price, reserch2) 0)printf(%6s %10d-%d %14d-%dt %9d m %6s%sn,loupani.num, loupani.weizhi.danyu,

7、 loupani.weizhi.loucen, loupani.kind.danyu, loupani.kind.loucen, loupani.area, loupani.chaoxiang, loupani.price);printf(n);printf(nnttt 價格范圍: %6s%s, reserch1, reserch2);_getch();break;if (key = 0)printf(n ttt 該樓盤不存在 ); getchar();printf(nntt繼續(xù)查詢嗎? ( Y/N(選擇N則返回主菜單); choice = getchar();if (choice = Y |

8、 choice = y)flag = 1;printf(nttt 按任意鍵繼續(xù)查詢! n);_getch(); elseflag = 0;while (flag = 1); printf(n);/*統(tǒng)計模塊 */void statistics(struct loupans_type loupan, int sum) int i = 0;int j = 0;int k = 0;int flag;int choice;int ting;int shi;dosystem(cls);printf( 請輸入所要查詢戶型(廳 -室):);scanf(%d-%d, &ting, &shi);for (i =

9、 0; i ebugiCppl.exe!r密盤樓號一單麗訟t單亓誦號廳- 面秣單住:*面向 K兀木11=12-ZIWHiiru-WHZ3-31-12B0imztloeiBJ1 24 43Mim3UJM7呂-了3-Z15BmanS2 21 ZllMim3攙回軍錯遺回主革舉按橙號排甲盤信.良權盤樓號一單元信息t單無-啟號一類型t廳-窒一-面頼t單空:而一面向一情榕(元/耐、11-12-2186 mi4甘19622-31-1seen-H1WHm1-24-430cm1甘52-22-2IM mi4t?74-33-215flm=n4M披廚車謎返回主菜單t eC:U$er$Admini$tratoADesk

10、top?2 交 4DebugCpplexe請輸入要查詢的檢盤的價格范圍元/冷” 請輸入最低價格, 請輸入最高價格:300摟盤仟囪檜盤檯號一單元信脈單元-房號一奕逆廳-室一-面積單位:臚一面向_格元肝 1i-12-2100 m2w10022-31-12H0H?c1H0H306.價格范圍, *C:U5er$Admini$tratoADe5kt opS 文 4W5DebugCppl.exe請輸入要添加的槎盤的信息:棱盤摟號活價格 71/:300面向2面積 Mfe:n?:i00樓盤單元信息單元-房號:4Y棱盤炮 廳室 亠1成功添加f棱盤的信息!是否繼續(xù)添加? ?(取選擇N則返回主菜單) C-User4

11、Adlmiflis.trdtoDeEklcip?E 文件夾、Dmbug 匚 |3阻.耿孑請輸入需要刪除的樓盤信息的樓號單元房號刪除成功:按回車槌返回主菜單?2 異常測試數(shù)據(jù)及運行結果 C:UrAdininiiLraldrDikta p5f 331:fJHSDebugCppl.#x#”Q |回| E請輸入要播加的檯盤的蓿息:擺盤褸號:7輸榕V元肝5面向:面租單位:冷:11樓瞳單元信息t單元-房號”1樓盤類型f斤-室*成功添加Y摟盤的營息!-drnwi(rrator1&e5ktcpS:i:ppi feI 匕!旦iiAj樽諡嗑息表廣編蜂一單元信亦單元-居號A-嶷型t廳-室”一酉赦單位血一茴向一橋枷元

12、叭11-12-21MA六調(diào)試情況,設計技巧及體會1 改進方案輸入數(shù)據(jù)時輸入方式不正確會出現(xiàn)垃圾數(shù)據(jù),并且對使用者沒有輸入錯誤的提示易造成錯誤,今后還需繼續(xù)改進。2體會 通過此次實習,我對 C語言的編程實踐有了更深的認識,對C語言也有更濃厚的興趣。押IOC32-31-12HHWT1nIFIfifl2t-24-4沖&1-22-21B0-當遇到程序調(diào)試不通過時,會通過縮小范圍來分析來鎖定問題,進而進一步解決。95舸64-43-1丄酯m!W3Md71-41-1lim熟悉了從自然語言轉(zhuǎn)換成偽代碼再轉(zhuǎn)換為流程圖的過程,還有各功能函數(shù)的流程圖。 通過在程序中設定合適的全局變量,可以簡化程序的編寫難度。 通過

13、本次C語言上機實習,我對計算機編程語言有了一定的體驗,而且隨著實驗的成功與報告的完成,心里也是十分喜悅與驕傲,學習的不斷深入,也讓我發(fā)現(xiàn)還有很多高深的知W126589?3462TTT1三 11 l1按回三德i氐回圭黃巴識等待著我自己去挖掘去體驗,我也要不斷努力對C語言的學習,爭取更上一層樓!七參考文獻C語言程序設計(王曙燕/主編 科學出版社) C 程序設計 (譚浩強 / 主編 清華大學出版社) C 語言程序設計習題解析與應用案例分析(黃維通 謝孟榮 編)八附錄:源代碼(電子版)#includeconio.h #includestdio.h #includestdlib.h #includest

14、ring.h #include #define MAX 100 #define N 3struct chaoxiang_type; struct loupans_type;/位置/房間詳情int read_file(struct loupans_type loupan);void save_file(struct loupans_type loupan, int sum); 模塊int input(struct loupans_type loupan);void output(struct loupans_type loupan, int sum); / void modify(struct

15、loupans_type loupan, int sum); / void reserch(struct loupans_type loupan, int sum); void sort(struct loupans_type loupan, int sum); int del(struct loupans_type loupan, int sum);void add(struct loupans_type loupan, int *sum); void statistics(struct loupans_type loupan, int sum);/讀取信息模塊/保存信息/輸入模塊輸出模塊修

16、改模塊/查詢模塊/排序模塊/刪除模塊/添加模塊/統(tǒng)計模塊struct chaoxiang_type/位置int danyu;/單元int loucen;/樓房號;struct loupans_type/房間詳情char num8; /樓號char price20;/價格char chaoxiang20;/朝向int area; /面積struct chaoxiang_type weizhi;/單元信息struct chaoxiang_type kind;/類型;/* 讀取信息模塊 */int read_file(struct loupans_type loupan)FILE *fp; /FIL

17、E 文件、文件夾, fp = file pointer文件指針int i = 0;if (fp = fopen(loupans.txt, rt) = NULL) /fopen 函數(shù)用來 打開一個文件, 其調(diào)用形式為: 文件指針名 = fopen( 文件名, 文件使用方法 ) ; rt 只讀打開一個文件文本。printf(n 庫存文件不存在,請創(chuàng)建! n);return 0;正常退出;return表示從被調(diào)函數(shù)返回到主調(diào)函數(shù)繼續(xù)執(zhí)行,返回時可帶一個返回值( 0 正常,非 0 非正常)。fp 文件指針是否已經(jīng)到達文件結1,否則返回 0;while(!feof(fp) 表示當沒有到文loupans_

18、type), 1, fp);while (!feof(fp) /feof(fp)用于測試尾,如果 fp 指針已經(jīng)到達文件結尾,則返回/! 表示非,這里件末尾就循環(huán),否則就退出。fread(&loupani,sizeof(struct/fread 從文件中讀取。if (loupani.num = 0) break;else i+; fclose(fp);/文件關閉return i-1;/* 保存信息模塊 */void save_file(struct loupans_type loupan, int sum) /save_file 保存文件FILE *fp;int i;if (fp = fope

19、n(loupans.txt, wt) = NULL)printf( 讀文件錯誤 n);return;for (i = 0; i sum; i+)if (fwrite(&loupani, sizeof(struct loupans_type), 1, fp) !=1)printf( 寫文件錯誤 n); fclose(fp);/*輸入模塊 */int input(struct loupans_type loupan)int i = 0;int number;system(cls);printf(nnnn);printf(nt請輸入要錄入的樓盤的個數(shù)(最多%d個):,MAX);scanf(%d, &

20、number);printf(nnt錄入樓盤信息(最多錄入%d 個)n,number);printf(n);while (i number)printf(ntt 第d 個樓盤,i + 1); printf(nnttt 樓盤樓號 :); scanf(%s, loupani.num);if (loupani.num = 0) break;prin tf(nttt價格(元 /tf):);scanf(%s, loupani.price);printf(nttt面向:);scanf(%s, loupani.chaoxiang);printf(n ttt 面積(單位:tf):);scanf(%d, &lo

21、upani.area);printf(n ttt 樓盤單元信息 (單元-房號):);scanf(%d-%d,&loupani.weizhi.danyu,&loupani.weizhi.loucen);printf(n ttt 樓盤類型 (廳-室):);scanf(%d-%d,&loupani.kind.danyu,&loupani.kind.loucen);i+;printf(nttt%d 個樓盤信息錄入完畢 !n, i);getchar(); /getchar() 函數(shù)等待輸入直到按回車才結束,回車前所有 輸入字符都會顯示在屏幕上, 但只有第一個字符作為函數(shù)的返回值。 返回類型為 int 型

22、,返回值為用戶輸入的 ASCII 碼,出錯返回 EOF 。printf(n ttt 按回車鍵返回主菜單 !);getchar();return i;/*輸出模塊 */void output(struct loupans_type loupan, int sum) FILE *fp;int i = 0;int j;system(cls);printf(nnn);fp = fopen(loupans.txt, rt);printf(nttt 樓盤信息表 nn);printf(樓盤樓號-單元信息(單元-房號)-類型(廳-室)-面積(單位:tf)-面 向-價格(元/tf )n);printf(n);f

23、or (j = 0; j sum; j+)fread(&loupani, sizeof(struct loupans_type), 1, fp);if (loupani.num != 0)%9dprintf(%6s %10d-%d %14d-%dtm2%6s%sn, loupa ni. num,loupa ni.weizhi.da nyu,loupani.weizhi.loucen,loupani.kind.danyu,loupani.kind.loucen,loupani.area,loupani.chaoxiang,loupani.price);printf(n);i+;getchar()

24、;printf(ttt 按回車鍵返回主菜單 );getchar(); fclose(fp);/*修改模塊 */void modify(struct loupans_type loupan, int sum)int i = 0;int choice;int flag;char modify_num8;do system(cls);printf(nnnn);printf(n輸入要修改的樓盤的樓號: );scanf(%s, modify_num);for (i = 0; i sum; i+)if (!strcmp(loupani.num, modify_num)printf(nttt 樓盤信息 n

25、);n);printf( 樓盤樓號 -單元信息 (單元 -房號 )-類型(廳-室)-面積 (單位:m2)-面向-價格(元加)n);printf( loupani.price);printf(%6sm %6s%sn,loupani.weizhi.loucen, loupani.kind.loucen,%10d-%dloupani.num,loupani.area,%14d-%dt %9dloupani.weizhi.danyu,loupani.kind.danyu,loupani.chaoxiang,printf(n);printf(ttt1. 樓盤樓號 nnttt2. 價格 (/m )nntt

26、t3. 面 向nnttt4. 面積(單位:m2) nnttt5. 單元信息(單元-房號)nnttt6. 類型 (廳-室)n);printf( 請輸入要修改項的樓號(選擇 1-6 ):); scanf(%d, &choice);switch (choice)case 1:printf(n ttt 輸入修改后的樓盤樓號: );scanf(%s, loupani.num); break;case 2:printf(n ttt輸入修改后的價格(元/ m2):);scanf(%s, loupani.price);break;case 3:printf(n 輸入修改后的面向: );scanf(%s, lo

27、upani.chaoxiang); break;case 4:printf(n ttt輸入修改后的面積(單位:m2):);scanf(%d, &loupani.area);break;case 5:printf(n 輸入修改后的樓盤單元信息 (單元-房號):);scanf(%d-%d,&loupani.weizhi.danyu,&loupani.weizhi.loucen);break;);- 面積case 6: printf(n ttt 輸入修改后的樓盤類型 ( 廳-室): scanf(%d-%d, &loupani.kind.danyu, &loupani.kind.loucen);bre

28、ak; printf(nttt 樓盤信息 (修改后)n );printf( 樓盤樓號 -單元信息 (單元 -房號 )-類型(廳-室)-(單位:m2)-面向-價格(元加)n);printf(%6s%10d-%d%14d-%dtm%6s%sn,loupani.num,loupani.weizhi.danyu,loupani.weizhi.loucen,loupani.kind.danyu,loupani.kind.loucen,loupani.area,loupani.chaoxiang,loupani.price);printf(n);%9dprintf(n);getchar();break;i

29、f (i = sum)printf(n ttt 該樓盤不存在 );getchar(); save_file(loupan, sum);printf(nn 繼續(xù)修改嗎?( Y/N( 選擇 N 則返回主菜單 ) ) choice = getchar();if (choice = Y | choice = y)flag = 1;printf(n ttt 繼續(xù)修改! n);elseflag = 0;while (flag = 1); printf(n);/*查詢模塊 */void reserch(struct loupans_type loupan, int sum)int i = 0;int fla

30、g;int choice;int key = 0;char reserch110, reserch210;do system(cls);printf(nttt請輸入要查詢的樓盤的價格范圍(元/ m2): nnn);printf(ttt 請輸入最低價格: nttt);scanf(%s, reserch1);printf(nnttt 請輸入最高價格 :nttt);scanf(%s, reserch2);for (i = 0; i 0&strcmp(loupani.price, reserch2) 0)key = 1;if (key = 1)printf(nttt 樓盤信息 n );printf(

31、樓盤樓號 -單元信息 (單元-房號)-類型(廳-室)-面積 (單位:m2)-面向-價格(元/m )n);printf(n); for (i = 0; i 0 &if (strcmp(loupani.price,strcmp(loupani.price, reserch2) 0)printf(%6sm2%6s%sn,loupani.weizhi.loucen,loupani.kind.loucen,%10d-%dloupani.num,loupani.area,%14d-%dt %9dloupani.weizhi.danyu,loupani.kind.danyu,loupani.chaoxian

32、g,loupani.price);printf(n);printf(nnttt 價 格 范 圍 : %6s%s, reserch1,reserch2);_getch();break;if (key = 0)printf(n ttt 該樓盤不存在 );getchar();printf(nntt 繼續(xù)查詢嗎?( Y/N( 選擇 N 則返回主菜單 ) ); choice = getchar();if (choice = Y | choice = y)flag = 1;printf(nttt 按任意鍵繼續(xù)查詢! n); _getch();elseflag = 0;while (flag = 1);pr

33、intf(n);/*排序模塊 */void sort(struct loupans_type loupan, int sum)int i, j; struct loupans_type t; system(cls); printf(nnnn);for (i = 0; i sum - 1; i+)for (j = i + 1; j 0) t = loupani;loupani = loupanj; loupanj = t; printf(nttt 按樓號排序 :nn); printf(nttt 樓盤信息表 nn);printf(樓盤樓號-單元信息(單元-房號)-類型(廳-室)-面積(單位:m2)

34、-面 向-價格(元/m )n);printf(n);for (i = 0; i sum; i+)%14d-%dt%9dloupani.weizhi.danyu, loupani.kind.danyu, loupani.chaoxiang,printf(%6s%10d-%dm %6s%sn, loupani.num,loupani.weizhi.loucen,loupani.kind.loucen,loupani.area,loupani.price);printf(n);getchar();printf(n ttt 按回車鍵返回主菜單 !); getchar();/*刪除模塊 */int de

35、l(struct loupans_type loupan, int sum) int i;int j;int k = 0;char del_num8; int del_danyu = 0; int del_loucen = 0; system(cls);printf(nnnn);printf(tt 請輸入需要刪除的樓盤信息的樓號 單元 房號 nn); scanf(%s%d%d, del_num, &del_danyu, &del_loucen);for (i = 0; i sum; i+)&if (!strcmp(loupani.num, del_num) (loupani.weizhi.da

36、nyu = del_danyu) (loupani.weizhi.loucen = del_loucen)for (j = i; j sum - 1; j+)loupanj = loupanj + 1; elsek+;if (k = sum)該樓盤不存在 n);按回車鍵返回主菜單 )printf(ttt getchar(); printf(ttt getchar(); return(sum);elsesave_file(loupan, sum);printf(ttt刪除成功 :n);getchar();printf(n ttt 按回車鍵返回主菜單 !);getchar();return(sum

37、 - 1);/*添加模塊 */void add(struct loupans_type loupan, int *sum)int i;int flag;char choice; system(cls);printf(nnnn);i = (*sum);doif (i MAX)printf( tt請輸入要添加的樓盤的信息 :n);printf(nttt 樓盤樓號 :);scanf(%s, loupani.num);if (loupani.num = 0) break;printf(n ttt 價格(元/ m2):);scanf(%s, loupani.price);printf(nttt面向:);

38、scanf(%s, loupani.chaoxiang);printf(nttt面積(單位:mJ:);scanf(%d, &loupani.area);printf(nttt樓盤單元信息 (單元-房號):);scanf(%d-%d,&loupani.weizhi.danyu,&loupani.weizhi.loucen);printf(n ttt 樓盤類型 (廳-室):);scanf(%d-%d,&loupani.kind.danyu,&loupani.kind.loucen);(*sum)+;i = (*sum);getchar(); printf(n 成功添加一個樓盤的信息! n); ge

39、tchar();printf(n 是否繼續(xù)添加?( Y/N( 選擇 N 則返回主菜單 ) )n); choice = getchar();if (choice = Y | choice = y)flag = 1;printf(n 繼續(xù)添加! n);elseflag = 0;elseprintf(nttt 返回主菜單 n);_getch();break; while (flag = 1);/*統(tǒng)計模塊 */void statistics(struct loupans_type loupan, int sum)int i = 0;int j = 0;int k = 0;int flag;int choice;int ting;int shi;dosystem(cls)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論