




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 西 安 郵 電 大 學 (計算機學院)高級語言課程設計報告題 目: 樓盤銷售管理系統 專業名稱:班 級: 學生姓名:學號(8位):指導教師:設計起止時間: 一設計目的該實踐環節讓學生綜合應用所學的計算機基礎知識和所掌握的程序設計語言(C語言),自行設計并實現一個較為完整的小型管理信息系統或小型應用系統。其主要目的是使學生通過系統分析、系統設計、編程調試、撰寫實驗報告等環節,初步掌握軟件系統設計的方法和步驟,靈活運用程序設計語言進行軟件開發、提高分析問題和解決問題的能力。二. 設計內容1. 問題分析和任務定義:根據設計題目要求,充分了解任務要求。2. 邏輯設計:對問題描述中的操作對象定義相應的
2、數據類型,并按照以數據結構為中心的原則劃分模塊,定義主程序模塊和各抽象數據類型。說明各主要功能模塊并畫出模塊調用關系圖。3. 物理設計:定義所需的存儲結構并進行算法設計,對數據結構和基本操作做出詳細的設計和分析,寫出函數形式的算法框架。4. 程序編碼:將詳細設計完善為程序。5. 程序調試與測試:自底向上、分模塊進行。認真整理程序形成格式和風格良好的源程序清單和結果、同時系統界面友好、功能齊全。6. 結果分析:程序運行結果包括正確的輸入及輸出和含有錯誤的輸入及輸出,對算法的時間和空間復雜性進行分析。7. 撰寫課程設計報告。三概要設計1功能模塊圖;2各個模塊詳細的功能描述。讀取信息模塊:在申請空間
3、內讀取已存儲的TXT文件,若文件未建立則系統自行建立一個TXT文件;更新信息模塊:若要更新已儲存的全部信息,則選擇此模塊進行信息錄入,并將原信息全部覆蓋;輸出信息模塊:將若未選擇更新信息模塊,則將原文件儲存的信息全部輸出,若選擇更新信息模塊,則將新錄入的信息全部輸出;添加信息模塊:若有新的信息需要錄入,則選擇此模塊,系統將在已經申請的并未存放信息空間將新的信息錄入并保存;刪除信息模塊:若有一樓盤已經售出,則選擇此模塊將此樓盤信息刪除,若該樓盤信息不存在,則系統顯示不存在該信息并返回主菜單,若要刪除則許選擇輸出模塊查詢該樓盤信息再重新選擇刪除模塊進行刪除;修改信息模塊:若樓盤輸入時錯誤,則可選用
4、此模塊對錄入錯誤的信息進行修改;若樓盤價格調整,也可選用此模塊對樓盤信息進行修改;查詢信息模塊:用戶可以根據自己的預計資金和承受范圍,對樓盤進行查詢,并在其中結合戶型、朝向、面積等信息選擇自己喜歡的樓盤;排序信息模塊:若選用此模塊,系統將根據樓盤樓號排序樓盤信息,可直觀的看出各樓號樓盤的銷售情況,并可對比看出哪個樓號的樓盤更受歡迎;統計信息模塊:若選用此模塊,用戶可查看自己喜歡的戶型的余量,銷售者也可根據此模塊判斷消費者喜歡那種戶型;保存信息模塊:若在運行中選取了更新信息模塊、添加信息模塊、刪除信息模塊或修改信息模塊,則此模塊自動在對應的模塊執行完畢后自動儲存信息。四詳細設計1功能函數的調用關
5、系圖2 各功能函數的數據流 3 重點設計及編碼/*查詢模塊*/void reserch(struct loupans_type loupan, int sum)int i = 0;int flag;int choice;int key = 0;char reserch110, reserch210;dosystem("cls");printf("nttt請輸入要查詢的樓盤的價格范圍(元/):nnn");printf("ttt請輸入最低價格:nttt");scanf("%s", reserch1);printf(&q
6、uot;nnttt請輸入最高價格:nttt");scanf("%s", reserch2);for (i = 0; i < sum; i+)if (strcmp(loupani.price, reserch1) > 0 && strcmp(loupani.price, reserch2) < 0)key = 1;if (key = 1)printf("nttt-樓盤信息- n ");printf("樓盤樓號-單元信息(單元-房號)-類型(廳-室)-面積(單位:)-面向-價格(元/)n");p
7、rintf("-n");for (i = 0; i < sum; i+)if (strcmp(loupani.price, reserch1) > 0 && strcmp(loupani.price, reserch2) < 0)printf("%6s %10d-%d %14d-%dt %9d %6s %sn", loupani.num, loupani.weizhi.danyu, loupani.weizhi.loucen, loupani.kind.danyu, loupani.kind.loucen, loupan
8、i.area, loupani.chaoxiang, loupani.price);printf("-n");printf("nnttt價格范圍:%6s-%s", reserch1, reserch2);_getch();break;if (key = 0)printf("n ttt該樓盤不存在");getchar();printf("nntt繼續查詢嗎?( Y/N(選擇N則返回主菜單) )");choice = getchar();if (choice = 'Y' | choice = '
9、y')flag = 1;printf("nttt按任意鍵繼續查詢!n");_getch();elseflag = 0; while (flag = 1);printf("n");/*統計模塊*/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("請輸入所要查詢戶型(廳-室):"
10、);scanf("%d-%d", &ting, &shi);for (i = 0; i < sum; i+)if (ting = loupani.kind.danyu && shi = loupani.kind.loucen)j+;elsek+;if (k = sum)printf("n ttt對不起,該戶型不存在");getchar();elseprintf("您所查詢的%d廳-%d室戶型還剩余%d間n", ting, shi, j);getchar();printf("nntt繼續查
11、詢嗎?( Y/N(選擇N則返回主菜單) )");choice = getchar();if (choice = 'Y' | choice = 'y')flag = 1;printf("nttt按任意鍵繼續查詢!n");getchar();elseflag = 0;while(flag = 1);printf(" n");五測試數據及運行結果1正常測試數據和運行結果2異常測試數據及運行結果六調試情況,設計技巧及體會1改進方案輸入數據時輸入方式不正確會出現垃圾數據,并且對使用者沒有輸入錯誤的提示易造成錯誤,今后還需繼
12、續改進。2體會1) 通過此次實習,我對C語言的編程實踐有了更深的認識,對C語言也有更濃厚的興趣。2) 當遇到程序調試不通過時,會通過縮小范圍來分析來鎖定問題,進而進一步解決。3) 熟悉了從自然語言轉換成偽代碼再轉換為流程圖的過程,還有各功能函數的流程圖。4) 通過在程序中設定合適的全局變量,可以簡化程序的編寫難度。5) 通過本次C語言上機實習,我對計算機編程語言有了一定的體驗,而且隨著實驗的成功與報告的完成,心里也是十分喜悅與驕傲,學習的不斷深入,也讓我發現還有很多高深的知識等待著我自己去挖掘去體驗,我也要不斷努力對C語言的學習,爭取更上一層樓!七參考文獻 C語言程序設計(王曙燕/主編 科學出
13、版社) C程序設計(譚浩強/主編 清華大學出版社) C語言程序設計習題解析與應用案例分析(黃維通 謝孟榮 編)八附錄:源代碼(電子版)#include"conio.h" #include"stdio.h"#include"stdlib.h"#include"string.h"#include <tchar.h>#define MAX 100#define N 3struct chaoxiang_type;/位置struct loupans_type;/房間詳情int read_file(struct l
14、oupans_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 loupans_type loupan, int sum);/修改模塊void reserch(struct loupans_type loupan, int sum);/查詢模塊void sor
15、t(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);/統計模塊struct chaoxiang_type/位置int danyu;/單元int loucen;/樓房號;struct loupans_type/房間詳情char num8;/樓號char p
16、rice20;/價格char chaoxiang20;/朝向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", "rt") = NULL)/fopen函數用來打開一個文件,其調用形式為:文件
17、指針名 = fopen(文件名, 文件使用方法);rt 只讀打開一個文件文本。printf("n 庫存文件不存在,請創建!n");return 0;/正常退出;return表示從被調函數返回到主調函數繼續執行,返回時可帶一個返回值(0正常,非0非正常)。while (!feof(fp)/feof(fp)用于測試fp文件指針是否已經到達文件結尾,如果fp指針已經到達文件結尾,則返回1,否則返回0;/!表示非,這里while(!feof(fp)表示當沒有到文件末尾就循環,否則就退出。fread(&loupani, sizeof(struct loupans_type),
18、 1, fp);/fread從文件中讀取。if (loupani.num = 0)break;elsei+;fclose(fp);/文件關閉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)printf("讀文件錯誤n");return;for (i = 0; i < sum; i+)if (f
19、write(&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請輸入要錄入的樓盤的個數(最多%d個):", MAX);scanf("%d", &number);pri
20、ntf("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;printf("nttt價格(元/): ");scanf("%s", loupani.price);printf(&q
21、uot;nttt面向:");scanf("%s", loupani.chaoxiang);printf("n ttt面積(單位:):");scanf("%d", &loupani.area);printf("n ttt樓盤單元信息(單元-房號):");scanf("%d-%d", &loupani.weizhi.danyu, &loupani.weizhi.loucen);printf("n ttt樓盤類型(廳-室):");scanf(&qu
22、ot;%d-%d", &loupani.kind.danyu, &loupani.kind.loucen);i+;printf("nttt%d個樓盤信息錄入完畢!n", i);getchar();/getchar()函數等待輸入直到按回車才結束,回車前所有輸入字符都會顯示在屏幕上,但只有第一個字符作為函數的返回值。返回類型為int型,返回值為用戶輸入的ASCII碼,出錯返回EOF。printf("n ttt按回車鍵返回主菜單!");getchar();return i;/*輸出模塊*/void output(struct lou
23、pans_type loupan, int sum)FILE *fp;int i = 0;int j;system("cls");printf("nnn");fp = fopen("loupans.txt", "rt");printf("nttt -樓盤信息表-nn");printf("樓盤樓號-單元信息(單元-房號)-類型(廳-室)-面積(單位:)-面向-價格(元/)n");printf("-n");for (j = 0; j < sum; j+)
24、fread(&loupani, sizeof(struct loupans_type), 1, fp);if (loupani.num != 0)printf("%6s %10d-%d %14d-%dt %9d %6s %sn", loupani.num, loupani.weizhi.danyu, loupani.weizhi.loucen, loupani.kind.danyu, loupani.kind.loucen, loupani.area, loupani.chaoxiang, loupani.price);printf("-n");
25、i+;getchar();printf("ttt按回車鍵返回主菜單");getchar();fclose(fp);/*修改模塊*/void modify(struct loupans_type loupan, int sum)int i = 0;int choice;int flag;char modify_num8;dosystem("cls");printf("nnnn");printf("n 輸入要修改的樓盤的樓號:");scanf("%s", modify_num);for (i = 0
26、; i < sum; i+)if (!strcmp(loupani.num, modify_num)printf("nttt-樓盤信息- n ");printf("樓盤樓號-單元信息(單元-房號)-類型(廳-室)-面積(單位:)-面向-價格(元/)n");printf("-n");printf("%6s %10d-%d %14d-%dt %9d %6s %sn", loupani.num, loupani.weizhi.danyu, loupani.weizhi.loucen, loupani.kind.da
27、nyu, loupani.kind.loucen, loupani.area, loupani.chaoxiang, loupani.price);printf("-n");printf("ttt1.樓盤樓號 nnttt2.價格(/)nnttt3.面向nnttt4.面積(單位:) nnttt5.單元信息(單元-房號)nnttt6.類型(廳-室)n");printf("請輸入要修改項的樓號(選擇1-6):");scanf("%d", &choice);switch (choice)case 1:printf(
28、"n ttt輸入修改后的樓盤樓號:");scanf("%s", loupani.num);break;case 2:printf("n ttt輸入修改后的價格(元/):");scanf("%s", loupani.price);break;case 3:printf("n 輸入修改后的面向:");scanf("%s", loupani.chaoxiang);break;case 4:printf("n ttt輸入修改后的面積(單位:):");scanf(&
29、quot;%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)
30、;break;printf("nttt-樓盤信息-(修改后) n ");printf("樓盤樓號-單元信息(單元-房號)-類型(廳-室)-面積(單位:)-面向-價格(元/)n");printf("-n");printf("%6s %10d-%d %14d-%dt %9d %6s %sn", loupani.num, loupani.weizhi.danyu, loupani.weizhi.loucen, loupani.kind.danyu, loupani.kind.loucen, loupani.area, l
31、oupani.chaoxiang, loupani.price);printf("-n");getchar();break;if (i = sum)printf("n ttt該樓盤不存在");getchar();save_file(loupan, sum);printf("nn 繼續修改嗎?( Y/N(選擇N則返回主菜單) )");choice = getchar();if (choice = 'Y' | choice = 'y')flag = 1;printf("n ttt繼續修改!n&qu
32、ot;);elseflag = 0;while (flag = 1);printf("n");/*查詢模塊*/void reserch(struct loupans_type loupan, int sum)int i = 0;int flag;int choice;int key = 0;char reserch110, reserch210;dosystem("cls");printf("nttt請輸入要查詢的樓盤的價格范圍(元/):nnn");printf("ttt請輸入最低價格:nttt");scanf(&
33、quot;%s", reserch1);printf("nnttt請輸入最高價格:nttt");scanf("%s", reserch2);for (i = 0; i < sum; i+)if (strcmp(loupani.price, reserch1) > 0 && strcmp(loupani.price, reserch2) < 0)key = 1;if (key = 1)printf("nttt-樓盤信息- n ");printf("樓盤樓號-單元信息(單元-房號)-類
34、型(廳-室)-面積(單位:)-面向-價格(元/)n");printf("-n");for (i = 0; i < sum; i+)if (strcmp(loupani.price, reserch1) > 0 && strcmp(loupani.price, reserch2) < 0)printf("%6s %10d-%d %14d-%dt %9d %6s %sn", loupani.num, loupani.weizhi.danyu, loupani.weizhi.loucen, loupani.kind.
35、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繼續查詢嗎?( Y/N(選擇N則返回主菜單) )");choice = getchar();if (cho
36、ice = 'Y' | choice = 'y')flag = 1;printf("nttt按任意鍵繼續查詢!n");_getch();elseflag = 0; while (flag = 1);printf("n");/*排序模塊*/void sort(struct loupans_type loupan, int sum)int i, j;struct loupans_type t;system("cls");printf("nnnn");for (i = 0; i <
37、sum - 1; i+)for (j = i + 1; j < sum; j+)if (strcmp(loupani.num, loupanj.num) > 0)t = loupani;loupani = loupanj;loupanj = t;printf("nttt按樓號排序:nn");printf("nttt-樓盤信息表-nn");printf("樓盤樓號-單元信息(單元-房號)-類型(廳-室)-面積(單位:)-面向-價格(元/)n");printf("-n");for (i = 0; i <
38、; sum; i+)printf("%6s %10d-%d %14d-%dt %9d %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("n ttt按回車鍵返回主菜單!");getchar();/*刪除模塊*/int
39、 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("nnnn");printf("tt請輸入需要刪除的樓盤信息的樓號 單元 房號nn");scanf("%s%d%d", del_num, &del_danyu, &del_loucen);for (i = 0; i < sum;
40、 i+)if (!strcmp(loupani.num, del_num) && (loupani.weizhi.danyu = del_danyu) && (loupani.weizhi.loucen = del_loucen)for (j = i; j < sum - 1; j+)loupanj = loupanj + 1;elsek+;if (k = sum)printf("ttt該樓盤不存在n");getchar();printf("ttt按回車鍵返回主菜單");getchar();return(sum);e
41、lsesave_file(loupan, sum);printf("ttt刪除成功:n");getchar();printf("n ttt按回車鍵返回主菜單!");getchar();return(sum - 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("
42、tt請輸入要添加的樓盤的信息:n");printf("n ttt樓盤樓號:");scanf("%s", loupani.num);if (loupani.num = 0)break;printf("n ttt價格(元/):");scanf("%s", loupani.price);printf("n ttt面向:");scanf("%s", loupani.chaoxiang);printf("n ttt面積(單位:):");scanf(&quo
43、t;%d", &loupani.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);(*sum)+;i = (*sum);getchar();printf(&
44、quot;n 成功添加一個樓盤的信息!n");getchar();printf("n 是否繼續添加?( Y/N(選擇N則返回主菜單) )n");choice = getchar();if (choice = 'Y' | choice = 'y')flag = 1;printf("n 繼續添加!n");elseflag = 0;elseprintf("nttt返回主菜單n");_getch();break; while (flag = 1);/*統計模塊*/void statistics(str
45、uct 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 = 0; i < sum; i+)if (ting = loupani.kind.danyu && shi = loupani.kind.loucen)j+;el
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《人工智能應用:機器學習基礎與應用教案》
- 專利使用權協議
- 將進酒:古典詩歌情感探究教案
- 自然選擇的作用和含義深度解析教學教案
- 保護動物呼喚行動議論文(7篇)
- 生物化學分子生物學在線試題
- 汽車維修行業服務標準與規范
- 航空航天器制造產業報告表
- 一場激烈的辯論賽事件描寫(15篇)
- 中醫藥服務與鄉村社區健康治理融合模式
- 人教版九年級物理 14.3能量的轉化和守恒(學習、上課課件)
- 2024年網絡安全知識競賽考試題庫500題(含答案)
- 江蘇省徐州市賈汪區2023-2024學年七年級上學期期中考試數學試卷(含解析)
- 《港口粉塵在線監測系統建設技術規范(征求意見稿)》編制說明
- 品質巡檢個人工作計劃
- 醫院采購委員會管理制度
- 設備管道 防腐保溫施工方案
- DZ∕T 0214-2020 礦產地質勘查規范 銅、鉛、鋅、銀、鎳、鉬(正式版)
- 校車安全行車記錄表
- QCSG1204009-2015電力監控系統安全防護技術規范
- 出租車安全教育
評論
0/150
提交評論