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

下載本文檔

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

文檔簡介

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

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

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

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

5、圖12 .各功能函數(shù)的數(shù)據(jù)流add statistici更新揍盤信息ii輸入或盤信期3 .重點設(shè)計及編碼/*查詢模塊*/void reserch(struct loupans_type loupan口,int sum).int i = 0;int flag;int choice;int key = 0;char reserch110, reserch210;dosystem(cls);ttt請輸入要查詢的樓盤的價格范圍(元/itf): nnn);tt 請輸入最低價格: nttt);scanf(%s, reserch1);nttt 請輸入最高價格 :nttt);scanf(%s, reserch

6、2);for (i = 0; i 0 & strcmp(loupani.price, reserch2) 0)key = 1;if (key = 1)ttt樓盤信息 n );軸灌晴龍樓盤樓號-單元信息(單元-房號)-類型(廳-室)一面積(單位:itf)-面 向-價格(元/褶)n);n);printf(for (i = 0; i 0 & strcmp(loupani.price,reserch2) 0)printf(%6s _x0010_d-%d d-%dt ?m2%6s%sn,n);loupani.num, loupani.weizhi.danyu, loupani.weizhi.loucen

7、, loupani.kind.danyu, loupani.kind.loucen, loupani.area, loupani.chaoxiang, loupani.price);printf( nttt 價格范圍: %6s %s, reserch1, reserch2);_getch(); break;if (key = 0) ttt 該樓盤不存在);getchar();ntt 繼續(xù)查詢嗎?( y/n( 選擇 n 則返回主菜單) ) );choice = getchar();if (choice = y | choice = y)flag = 1;ttt 按任意鍵繼續(xù)查詢! n);_get

8、ch();elseflag = 0;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);軸灌晴龍請輸入所要查詢戶型(廳-室):);scanf(%d-%d, &ting, &shi);for (i = 0; i sum; i+)if (ting = loupani.kind.danyu & shi = loupani.kind.

9、loucen)j+;elsek+;if (k = sum)ttt 對不起,該戶型不存在);getchar();else軸灌晴龍您所查詢的%d廳-%d室戶型還剩余d間n, ting, shi, j); getchar();ntt 繼續(xù)查詢嗎?( y/n( 選擇 n 則返回主菜單) ) );choice = getchar();if (choice = y | choice = y)flag = 1;ttt 按任意鍵繼續(xù)查詢! n);getchar();elseflag = 0; while(flag = 1); printf( n);五.測試數(shù)據(jù)及運行結(jié)果1 .正常測試數(shù)據(jù)和運行結(jié)果一:接盤信息

10、專庫文件由得應(yīng)信息則交部輸加這面i菜單除加接盤信息義輸入服費雙迷信m、/足籍真黨軍是缶犍領(lǐng)粉斗i (否,遑口:菜簞2 .異常測試數(shù)據(jù)及運行結(jié)果tjr檸盅信宜茂他自檢號一單7信性單匚慶亨一跡 仃-圭下-曲郴單位:1一育闿t、陪山吟11-i3-3iki t21h22 )1-1w la*ivbdj1-1tji 矚i-w*77-31eht1fl52 12 2m tj依眩車也宣國主菜單rz.lkeriad m i nistratorxdes 口同期建交洋安,口小口中匚 ppl.exe拔棱弓排序工六.調(diào)試情況,設(shè)計技巧及體會 .改進方案1輸入數(shù)據(jù)時輸入方式不正確會出現(xiàn)垃 圾數(shù)據(jù),并且對使用者沒有輸入錯誤的

11、提示易造成錯誤,今后還需繼續(xù)改進。2.體會1)通過此次實習(xí),我對 c語言的編程實踐有了更深的認識,對c語言也有更濃厚的興趣。2)當(dāng)遇到程序調(diào)試不通過時,會通過縮小范圍來分析來鎖定問題,進而進一步解決。3)熟悉了從自然語言轉(zhuǎn)換成偽代碼再轉(zhuǎn)換為流程圖的過程,還有各功能函數(shù)的流程圖。4)通過在程序中設(shè)定合適的全局變量,可以簡化程序的編寫難度。5)通過本次c語言上機實習(xí),我對計算機編程語言有了一定的體驗,而且隨著實驗的成功也讓 我發(fā)現(xiàn)還有很多高深的知學(xué)習(xí)的不斷深入,心里也是十分喜悅與驕傲,與報告的完成,識等待著我自己去挖掘去體驗,我也要不斷努力對c語言的學(xué)習(xí),爭取更上一層樓!七.參考文獻c語言程序設(shè)計

12、(王曙燕/主編 科學(xué)出版社)c程序設(shè)計(譚浩強/主編 清華大學(xué)出版社) c 語言程序設(shè)計習(xí)題解析與應(yīng)用案例分析(黃維通 謝孟榮 編)八附錄: 源代碼(電子版)#includeconio.h#includestdio.h#includestdlib.h#includestring.h#include #define max 100#define n 3struct chaoxiang_type; / 位置struct loupans_type; / 房間詳情int read_file(struct loupans_type loupan); /讀取信息模塊void save_file(struc

13、t loupans_type loupan, int sum); /保存信息模塊int input(struct loupans_type loupan); /輸入模塊void output(struct loupans_type loupan, int sum); /輸出模塊void modify(struct loupans_type loupan, int sum); /修改模塊void reserch(struct loupans_type loupan, int sum); /查詢模塊void sort(struct loupans_type loupan, int sum); /排

14、序模塊int del(struct loupans_type loupan, int sum); / 刪除模塊void add(struct loupans_type loupan, int *sum); /添加模塊統(tǒng)計模塊void statistics(struct loupans_type loupan, int sum); / struct chaoxiang_type / 位置int danyu; / 單元int loucen; / 樓房號;struct loupans_type / 房間詳情char num8;/樓號char price20; /價格char chaoxiang20;

15、 / 朝向int area; /面積struct chaoxiang_type weizhi; /單元信息struct chaoxiang_type kind;/類型;/* 讀取信息模塊 */int read_file(struct loupans_type loupan)file *fp; /file 文件、文件夾, fp = file pointer 文件指針。int i = 0;if (fp = fopen(loupans.txt,t) = null) /fopen 函數(shù)用來打開一個文件,其調(diào)用形式為:文件指針名 =fopen( 文件名, 文件使用方法) ; rt 只讀打開一個文件文本。

16、printf(庫存文件不存在,請創(chuàng)建! n);return 0; / 正常退出; return 表示從被調(diào)函數(shù)返回到主調(diào)函數(shù)繼續(xù)執(zhí)行,返回時可帶一個返回值( 0 正常,非 0 非正常) 。while (!feof(fp) /feof(fp) 用于測試 fp 文件指針是否已經(jīng)到達文件結(jié)尾,如果 fp 指針已經(jīng)到達文件結(jié)尾,則返回 1 ,否則返回 0 ;/! 表示非, 這里 while(!feof(fp) 表示當(dāng)沒有到文件末尾就循環(huán), 否則就退出。fread(&loupani, sizeof(struct loupans_type), 1, fp); /fread從文件中讀取。if (loupan

17、i.num = 0)break;elsei+;fclose(fp); / 文件關(guān)閉return i-1;/* 保存信息模塊 */void save_file(struct loupans_type loupan, int sum) /save_file保存文件file *fp;int i;if (fp = fopen(loupans.txt, wt) = null)軸灌晴龍讀文件錯誤n);return;for (i = 0; i sum; i+)if (fwrite(&loupani, sizeof(struct loupans_type), 1, fp) != 1)軸灌晴龍寫文件錯誤n);f

18、close(fp);/* 輸入模塊 */int input(struct loupans_type loupan)int i = 0;int number;system(cls);printf(nnn);printf(t 請輸入要錄入的樓盤的個數(shù)(最多 %d 個) : , max);scanf(%d, &number);printf(nt錄入樓盤信息(最多錄入d個)n,number);printf(n);while (i number)printf(printf( tt第個樓盤,i + 1);printf(nttt 樓盤樓號 :);scanf(%s, loupani.num);if (loup

19、ani.num = 0)break;printf(ttt 價格(元/m);scanf(%s, loupani.price);printf(ttt 面向 :);scanf(%s, loupani.chaoxiang);printf(ttt 面積(單位:m2):);scanf(%d, &loupani.area);printf(ttt 樓盤單元信息(單元 -房號 ):);scanf(%d-%d, &loupani.weizhi.danyu, &loupani.weizhi.loucen);ttt 樓盤類型(廳-室):);scanf(%d-%d, &loupani.kind.danyu,&loupa

20、ni.kind.loucen);i+;printf(ttt%d 個樓盤信息錄入完畢 !n, i);getchar(); /getchar() 函數(shù)等待輸入直到按回車才結(jié)束,回車前所有輸入字符都會顯示在屏幕上, 但只有第一個字符作為函數(shù)的返回值。 返回類型為 int 型,返回值為用戶輸入的 ascii 碼,出錯返回 eof 。printf(ttt 按回車鍵返回主菜單!);getchar();return i;/* 輸出模塊 */ void output(struct loupans_type loupan, int sum)file *fp;int i = 0;int j;system(cls)

21、;printf(nn);fp = fopen(loupans.txt,t);printf(ttt 樓盤信息表nn);軸灌晴龍樓盤樓號-單元信息(單元-房號)-類型(廳-室)一面積(單位:叫-面向-價格(元/itf)n);printf(n);for (j = 0; j sum; j+)fread(&loupani, sizeof(struct loupans_type), 1, fp);if (loupani.num != 0)printf(%6s _x0010_d-%dd-%dt ? m2%6s%sn,loupani.num, loupani.weizhi.danyu,loupani.weiz

22、hi.loucen, loupani.kind.danyu,loupani.kind.loucen, loupani.area, loupani.chaoxiang, loupani.price);printf(n);i+;getchar();printf( tt 按回車鍵返回主菜單 );getchar();fclose(fp);/* 修改模塊 */void modify(struct loupans_type loupan, int sum)int i = 0;int choice;int flag;char modify_num8;dosystem(cls);printf(nnn);pri

23、ntf(輸入要修改的樓盤的樓號: );scanf(%s, modify_num);for (i = 0; i sum; i+)if (!strcmp(loupani.num, modify_num)printf(ttt 樓盤信息 n );軸灌晴龍樓盤樓號-單元信息(單元-房號)-類型(廳-室)一面積(單位:itf)-面 向一價格(元/irf)n);printf(printf(%6s _x0010_d-%d d-%dt ? m2%6s%sn,loupani.num, loupani.weizhi.danyu,loupani.weizhi.loucen, loupani.kind.danyu,lo

24、upani.kind.loucen, loupani.area, loupani.chaoxiang, loupani.price);printf(n);printf( tt1.樓盤樓號 nnttt2. 價格(/nf)nnttt3. 面向nnttt4. 面積(單位:m2) nnttt5. 單元信息(單元-房號)nnttt6.類型(廳-室 )n);軸灌晴龍請輸入要修改項的樓號(選擇 1-6):);scanf(%d, &choice);switch (choice)case 1:printf(ttt 輸入修改后的樓盤樓號: );scanf(%s, loupani.num);break;case 2

25、:ttt輸入修改后的價格(元/itf):);scanf(%s, loupani.price);break;case 3:printf(輸入修改后的面向: );scanf(%s, loupani.chaoxiang);break;case 4:printf(ttt輸入修改后的面積(單位:褶):);scanf(%d, &loupani.area);break;case 5:)房號-單元(輸入修改后的樓盤單元信息 printf();scanf(%d-%d, &loupani.weizhi.danyu,&loupani.weizhi.loucen);break;case 6:printf(ttt 輸入

26、修改后的樓盤類型(廳-室) : );scanf(%d-%d, &loupani.kind.danyu,&loupani.kind.loucen);break;printf(ttt 樓盤信息 (修改后 ) n );軸灌晴龍樓盤樓號-單元信息(單元-房號)-類型(廳-室)一面積(單位:itf)-面 向一價格(元/irf)n);printf(n);printf(%6s _x0010_d-%dd-%dt ? m2 %6s %sn,loupani.num, loupani.weizhi.danyu,loupani.weizhi.loucen, loupani.kind.danyu,loupani.kin

27、d.loucen, loupani.area, loupani.chaoxiang,loupani.price);printf(n);getchar();break;if (i = sum)printf(ttt 該樓盤不存在);getchar();save_file(loupan, sum);printf(n 繼續(xù)修改嗎?( y/n( 選擇 n 則返回主菜單) ) );choice = getchar();if (choice = y | choice = y)flag = 1;printf(ttt 繼續(xù)修改! n);elseprintf(flag = 0;while (flag = 1);p

28、rintf();/* 查詢模塊 */void reserch(struct loupans_type loupan, int sum)int i = 0;int flag;int choice;int key = 0;char reserch110, reserch210;dosystem(cls);ttt請輸入要查詢的樓盤的價格范圍(元/itf): nnn);printf( tt 請輸入最低價格: nttt);scanf(%s, reserch1);printf(nttt 請輸入最高價格 :nttt);scanf(%s, reserch2);for (i = 0; i 0 &strcmp(l

29、oupani.price, reserch2) 0)key = 1;if (key = 1)printf(ttt 樓盤信息 n );軸灌晴龍樓盤樓號-單元信息(單元-房號)-類型(廳-室)一面積(單位:itf)-面 向一價格(元/irf)n);n);printf(for (i = 0; i 0 & strcmp(loupani.price, reserch2) 0)printf(%6s _x0010_d-%dd-%dt ? m2%6s%sn,loupani.num, loupani.weizhi.danyu, loupani.weizhi.loucen, loupani.kind.danyu,

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

31、();elseflag = 0;while (flag = 1);printf( );/* 排序模塊 */void sort(struct loupans_type loupan, int sum)int i, j;struct loupans_type t;system(cls);printf(nnn);for (i = 0; i sum - 1; i+)for (j = i + 1; j 0)t = loupani;loupani = loupanj;loupanj = t;printf( ttt 按樓號排序 :nn);ttt 樓盤信息表nn);軸灌晴龍樓盤樓號-單元信息(單元-房號)-類

32、型(廳-室)一面積(單位:叫-面向-價格(元/itf)n);printf(n);for (i = 0; i sum; i+)printf(%6s _x0010_d-%d d-%dt ?m2%6s%sn,loupani.num, loupani.weizhi.danyu,loupani.weizhi.loucen, loupani.kind.danyu,loupani.kind.loucen, loupani.area, loupani.chaoxiang,loupani.price);printf(n);getchar();printf(ttt 按回車鍵返回主菜單!);getchar();/*

33、 刪除模塊 */ int del(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(nnn);printf( t 請輸入需要刪除的樓盤信息的樓號單元 房號 nn);scanf(%s%d%d, del_num, &del_danyu, &del_loucen);for (i = 0; i sum; i+)if (!strcmp(loupani.num, del_num) &del_danyu)

34、 (loupani.weizhi.danyu =(loupani.weizhi.loucen = del_loucen)for (j = i; j sum - 1; j+)loupanj = loupanj + 1;elsek+;if (k = sum)n); 該樓盤不存在printf( ttgetchar();); printf( tt 按回車鍵返回主菜單getchar();return(sum);else save_file(loupan, sum);:n); printf( tt 刪除成功 getchar();!); 按回車鍵返回主菜單printf(tttgetchar();return

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

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

37、ar();printf(是否繼續(xù)添加?( y/n( 選擇 n 則返回主菜單) ) n);choice = getchar();if (choice = y | choice = y)flag = 1;printf(繼續(xù)添加! n);elseflag = 0;elseprintf(ttt 返回主菜單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(c

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論