華科C語言課程設計報告_第1頁
華科C語言課程設計報告_第2頁
華科C語言課程設計報告_第3頁
華科C語言課程設計報告_第4頁
華科C語言課程設計報告_第5頁
已閱讀5頁,還剩223頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

華中科技大學計算機科學與技術學院

C語言課程設計報告

題目:菜市場商品銷售管理系統(tǒng)

專業(yè):計算機科學與技術專業(yè)

班級:_______________________________

學號:_______________________________

姓名:_______________________________

成績:

指導教師:_______________________________

完成日期:2016年10月7日

華中科技大學計算機科學與技術學院C語言課程設計報告

目錄

一、系統(tǒng)需求分析..............................................1

1.1數(shù)據(jù)維護功能...........................................1

1.2數(shù)據(jù)查詢功能...........................................1

1.3數(shù)據(jù)統(tǒng)計功能...........................................1

1.4數(shù)據(jù)存取功能...........................................2

1.5輔助功能...............................................2

二、總體設計...................................................2

2.1文件模塊...............................................2

2.2數(shù)據(jù)維護模塊...........................................3

2.3數(shù)據(jù)查詢模塊...........................................4

2.4數(shù)據(jù)統(tǒng)計模塊...........................................5

2.5幫助...................................................6

三、數(shù)據(jù)結構設計...............................................6

四、詳細設計與系統(tǒng)實現(xiàn)........................................11

4.0主程序................................................11

4.1數(shù)據(jù)維護..............................................11

4.1.1分類信息維護....................................12

4.1.2基本信息維護....................................15

4.1.3銷售信息維護....................................19

4.2數(shù)據(jù)查詢..............................................22

4.2.1分類信息查詢....................................22

4.2.2基本信息查詢:..................................23

4.2.3銷售信息查詢....................................25

4.3數(shù)據(jù)統(tǒng)計..............................................28

4.3.1按類別統(tǒng)計:....................................28

4.3.2按品種統(tǒng)計......................................31

4.3.3按客戶名稱統(tǒng)計..................................36

五、運行測試與結果分析........................................40

5.1輸入數(shù)據(jù)..............................................40

5.2初始化界面............................................42

5.3系統(tǒng)主界面............................................42

5.4數(shù)據(jù)維護界面..........................................43

5.5數(shù)據(jù)查詢界面:........................................52

5.6數(shù)據(jù)統(tǒng)計界面..........................................57

5.7幫助模塊界面.........................................62

六、總結......................................................64

七、參考文獻..................................................65

附錄1程序源代碼.............................................66

頭文件:market.h.....................................................................................66

main.c文件:..............................................74

華中科技大學計算機科學與技術學院C語言課程設計報告

一、系統(tǒng)需求分析

菜市場商品銷售管理系統(tǒng)用于管理人員對于菜市場的各類商品銷售信息進

行管理,主要包括商品分類信息,商品基本信息,商品銷售信息等三類信息,

以幫助商場管理人員及時了解產(chǎn)品銷售情況和變化。

菜市場商品銷售管理系統(tǒng)要求實現(xiàn)以下幾方面的基本功能:

1.1數(shù)據(jù)維護功能

菜市場商品銷售管理系統(tǒng)的基本信息主要包括以下三類:

(1)商品分類信息:分類編碼、分類名稱等數(shù)據(jù)項。

(2)商品基本信息:商品編號、商品名稱、分類碼、產(chǎn)地、單價、售出數(shù)量等

數(shù)據(jù)項。

(3)商品銷售信息:銷售編號、商品編號、銷售重量、銷售金額、銷售日期、

客戶名稱等數(shù)據(jù)項。

系統(tǒng)應實現(xiàn)以上三種數(shù)據(jù)的錄入、修改、和刪除功能。信息錄入口寸,系統(tǒng)應提供

快捷方便的數(shù)據(jù)錄入方式;同時應進行自動數(shù)據(jù)校驗,滿足數(shù)據(jù)的正確性,合理

性,有效性和依賴性要求。

1.2數(shù)據(jù)查詢功能

系統(tǒng)應實現(xiàn)對三種基礎數(shù)據(jù)的查詢功能,提供按多種條件進行查詢的方式,

具體包括:

(1)以分類編碼為條件來查找并顯示滿足條件的商品分類信息。

(2)商品名稱中文字符子串為條件查找,并顯示商品中包含指定子串的商品基

本信息。

(3)以分類碼和單價為條件查找并顯示滿足條件的商品基本信息。

(4)客戶名稱和銷售日期為條件查找并顯示滿足條件的所有商品銷售信息。

(5)以商品名稱為條件查找并顯示滿足條件的商品銷售信息。

上述查詢結果中,如果有多條信息被查中,查詢結果應生成表格并逐條顯示。

1.3數(shù)據(jù)統(tǒng)計功能

在以上三種基礎信息的基礎上,提供多方面的數(shù)據(jù)統(tǒng)計功能,并生成表格輸

出,具體包括:

(1)按類別統(tǒng)計各類商品某年(如肉類、魚類等)銷售總重量、銷售總額、按

銷售總額降序排序后、輸出分類名稱、銷售總重量、銷售總額。

(2)以所輸入的年份為條件、按商品名稱(如豬肉、大豆等)統(tǒng)計該年度內(nèi)所

第1頁共226頁

,邕)華中科技大學計算機科學與技術學院

c語言課程設計報告

售各種商品銷售總重量、銷售金額、按售總重量降序排序后、輸出商品名稱、分

類名稱、售出總重量、銷售金額。

(3)按客戶名稱統(tǒng)計所購某類商品(如肉類、魚類等)的總重量、消費總金額、

輸出客戶名稱、所購各類商品總重量、消費總金額。

(4)按客戶名稱統(tǒng)計所購某種商品(如豬肉、豆角等)的總重量、消費總金額、

輸出客戶名稱、所購各種商品總重量、消費總金額。

(5)按商品類別統(tǒng)計某客戶購買情況、輸出分類名稱、購買總重量、消費總金

額。

(6)按商品品種統(tǒng)計某客戶購買情況、輸出分類名稱、商品名稱、購買總重量、

消費總金額。

1.4數(shù)據(jù)存取功能

以上三種信息在程序運行時,以鏈表結構形式存在于內(nèi)存中,并且數(shù)據(jù)的存

儲采用動態(tài)存儲的分配方式。同時,在外存上以數(shù)據(jù)文件形式對數(shù)據(jù)進行存儲,

且保證數(shù)據(jù)在內(nèi)存和外存兩種存儲介質(zhì)上內(nèi)容的一致性。

1.5輔助功能

幫助功能,主要是對系統(tǒng)的操作方式進行介紹,以及一些方便操作,提供良

好人機交互界面的輔助功能。

二、總體設計

菜市場商品銷售管理系統(tǒng)由五大功能模塊組成:文件模塊,數(shù)據(jù)維護,數(shù)據(jù)

查詢,數(shù)據(jù)統(tǒng)計,幫助系統(tǒng)。功能結構如圖2.0。

文件

圖2.0菜市場商品銷售管理系統(tǒng)的功能模塊

下面為這五個模塊及其子模塊的功能的介紹。

2.1文件模塊

文件模塊的功能包括一系列與系統(tǒng)啟動和系統(tǒng)既然的話運行相關的環(huán)境維

第2頁共226頁

、線」華中科技大學計算機科學與技術學院

c語言課程設計報告

護和數(shù)據(jù)保障操作,它包括六個子模塊:界面初始化、數(shù)據(jù)保存、數(shù)據(jù)備份、數(shù)

據(jù)恢復、退出系統(tǒng)。功能結構如圖2.1。

文件

數(shù)

數(shù)

數(shù)

數(shù)

退

據(jù)

據(jù)

據(jù)

據(jù)

統(tǒng)

圖2.1文件模塊的子模塊劃分

(1)界面初始化子模塊:用于設置控制臺窗口顯示模式,將屏幕窗口設置為80

列和25行文本字符界面,設置窗口標題欄,清屏并顯示系統(tǒng)菜單欄和系統(tǒng)狀態(tài)

欄。

(2)數(shù)據(jù)加載子模塊:用于將分別放在多個數(shù)據(jù)文件中的基礎數(shù)據(jù)讀入內(nèi)存,

并構造數(shù)據(jù)鏈表,同時輸出數(shù)據(jù)加載相關提示信息。

(3)數(shù)據(jù)保存模塊:用于將鏈表數(shù)據(jù)按缺省路徑分別保存到各個數(shù)據(jù)文件。

(4)數(shù)據(jù)備份子模塊:用于將存放在多個數(shù)據(jù)文件中的基礎數(shù)據(jù)按缺省路徑轉

儲到一個數(shù)據(jù)文件中,供用戶在系統(tǒng)數(shù)據(jù)被破壞或丟失后用來恢復系統(tǒng)。

(5)數(shù)據(jù)恢復子模塊:與數(shù)據(jù)備份子模塊在功能上相對應,能從一個備份數(shù)據(jù)

文件恢復得到備份時間點的系統(tǒng)數(shù)據(jù),并將恢復出來的數(shù)據(jù)加載到內(nèi)存中,用于

提高系統(tǒng)的安全性和可靠性。

(6)退出系統(tǒng)子模塊:釋放程序運行過程中申請的動態(tài)存儲區(qū),關閉控制臺標

準輸入和輸出設備句柄。清除屏幕窗口信息,結束系統(tǒng)運行。

2.2數(shù)據(jù)維護模塊

數(shù)據(jù)維護模塊完成對三種基礎數(shù)據(jù)信息的錄入、修改和刪除功能,保證數(shù)據(jù)

的準確性,完整性華為有效性。該模塊按信息種類劃分為分類信息維護、基本信

息維護、銷售信息維護三個子模塊。如圖2.2。

第3頁共226頁

華中科技大學計算機科學與技術學院c語言課程設計報告

數(shù)據(jù)維護

圖2.2數(shù)據(jù)維護模塊的子模塊劃分

分類信息維護、基本信息維護、銷售信息維護三個子模塊分別用于錄入、刪

除和修改分類信息、基本信息和銷售信息。同時,系統(tǒng)將這三種數(shù)據(jù)存入數(shù)據(jù)鏈

表,并在子模塊結束運行時分別保存到分類信息數(shù)據(jù)文件,商品基本信息數(shù)據(jù)文

件和商品銷售信息數(shù)據(jù)文件,以保持在內(nèi)存和外存上兩種存儲介質(zhì)上數(shù)據(jù)內(nèi)容的

一致性。

2.3數(shù)據(jù)查詢模塊

數(shù)據(jù)查詢模塊提供對系統(tǒng)三類基礎數(shù)據(jù)信息按多種條件查詢的功能,按信息

種類分為分類信息查詢,基礎信息查詢和銷售信息查詢?nèi)齻€子模塊。如圖2.3。

(1)分類信息查詢:可分為兩個子模塊,提供按分類編碼查詢分類信息的功能

和輸出全部分類信息的功能。

(2)基礎信息查詢:可分為三個子模塊,提供按商品名稱中的關鍵字模糊查詢

商品基本信息的功能,按分類碼與單價查詢基本信息的功能和輸出全部基本信息

的功能。

(3)銷售信息查詢:可分為三個子模塊,提供按客戶名稱和銷售日期查詢銷售

信息的功能,按商品名稱精確查詢銷售信息的功能和輸出全部銷售信息的功能。

其中,輸出全部分類信息,基本信息和銷售信息的功能主要用于測試系統(tǒng)運

行是否正確。

第4頁共226頁

華中科技大學計算機科學與技術學院c語言課程設計報告

數(shù)據(jù)查詢1

圖2.3數(shù)據(jù)查詢模塊的子模塊劃分

2.4數(shù)據(jù)統(tǒng)計模塊

數(shù)據(jù)統(tǒng)計

圖2.4數(shù)據(jù)統(tǒng)計模塊的子模塊劃分

數(shù)據(jù)統(tǒng)計模塊提供對三種基礎數(shù)據(jù)進行多方面統(tǒng)計的功能。按照統(tǒng)計條件,

該模塊按類別統(tǒng)計,按品種統(tǒng)計和按客戶姓名統(tǒng)計三個模塊。每個模塊根據(jù)統(tǒng)計

的范圍又各自分為2個子模塊,共計6種不同的統(tǒng)計方式。如圖2.4。

(1)統(tǒng)計各類商品銷售情況:

①年度各分類銷售情況:按類別統(tǒng)計某年銷售總重量、銷售總額,按銷售總額降

第5頁共226頁

華中科技大學計算機科學與技術學院c語言課程設計報告

序排序后,以表格形式輸出分類名稱、銷售總重量、銷售總額。

②某客戶各分類購買情況:統(tǒng)計用戶給出的客戶的各類商品消費情況,輸出類別

名稱、客戶所購各種商品總重量、消費總金額。

(2)按品種統(tǒng)計:

①年度各品種消費情況:統(tǒng)計用戶給出的年份的各種商品的銷售總重量、銷售金

額,按售總重量降序排序后,以表格形式輸出商品名稱、分類名稱、售出總重量、

銷售金額。

②某客戶各品種購買情況:統(tǒng)計用戶給出的客戶的各種商品消費情況,輸出類別

名稱、商品名稱、客戶所購各種商品總重量、消費總金額。

(3)按客戶姓名統(tǒng)計:按查詢內(nèi)容分為三個子模塊,查分類名稱,查商品名稱

和查客戶姓名。

①某分類銷售情況:按客戶名稱統(tǒng)計用戶給出的分類的購買總重量、消費總金

額。輸出客戶名稱、所購各類商品總重量、消費總金額。

②某商品銷售情況:按客戶名稱統(tǒng)計用戶給出的商品的購買總重量、消費總金

額。輸出客戶名稱、所購各種商品總重量、消費總金額。

2.5幫助

幫助模塊為用戶使用系統(tǒng)提供幫助信息,同時提供系統(tǒng)版本和版權信息。分為幫

助主題子模塊和關于市場兩個子模塊。

幫助

圖2.5幫助模塊的子模塊劃分

三、數(shù)據(jù)結構設計

菜市場銷售管理系統(tǒng)用于對菜市場商品銷售信息進行管理,主要包括商品分

類信息、商品基本信息和商品銷售信息這三類基礎信息數(shù)據(jù)。此外,系統(tǒng)在運行

統(tǒng)計模塊時還會結果形成三種生成數(shù)據(jù),分別表示按品種統(tǒng)計的銷售信息,按類

別統(tǒng)計的銷售信息和按客戶名稱統(tǒng)計的銷售信息。

下面為對本系統(tǒng)所涉及的基礎數(shù)據(jù)和生成數(shù)據(jù)的數(shù)據(jù)結構,以及數(shù)據(jù)在內(nèi)存

和外存中的存儲結構的介紹。

第6頁共226頁

、落華中科技大學計算機科學與技術學院

C語言課程設計報告

1.菜市場商品分類信息表:

typedefstructtype_node{

chartype_id;/**<分類編碼*/

charname[10];/**<分類名稱*/

structitem_node*inext;/**<指向商品基本信息支鏈的指針*/

structtype_node*next;/**<指向下一結點的指針*/

}TYPE.NODE;

菜市場商品分類信息表如下:

數(shù)據(jù)結構名稱:菜市場商品分類信息表數(shù)據(jù)結構標識:TYPE_NODE

中文字段名數(shù)據(jù)項標識類型及長度舉例

分類編碼type_idchar

分類名稱namechar[10]5個分類名稱:肉類、魚類、蔬菜、海鮮、雜糧

內(nèi)存中的存儲結構:存放在十字交叉鏈表的主鏈節(jié)點上。每個主鏈節(jié)點除了保存

下一個結點的地址外,還保存該分類對應的菜市場商品基本信息鏈表的頭結點地

址。如圖3.1所示。

數(shù)據(jù)文件中的存儲結構:每條信息作為一條記錄放到二進制文件。

2.菜市場商品基本信息表:

typedefstructitem_node{

intitem_id;/**<商品編號*/

charname[20];/**<商品名稱*/

chartype_id;/**<分類碼*/

charproducer[20];/**<產(chǎn)地(可以簡單用文字描述)*/

floatprice;/**<單價(單位:元/斤)*/

floatsale;/**<銷售總重量“斤”*/

structsale_node*snext;/**<指向商品銷售信息支鏈的指針*/

structitem_node*next;/**<指向下一結點的指針*/

}ITEM_NODE;

菜市場商品基本信息表如下:

第7頁共226頁

華中科技大學計算機科學與技術學院C語言課程設計報告

數(shù)據(jù)結構名稱:菜市場商品基本信息表數(shù)據(jù)結構標識:ITEM_NODE

中文字段名數(shù)據(jù)項標識類型及長度舉例

商品編號item_idint自增長(順序增加)

商品名稱namechar[20]“豬肉”

分類碼type_idcharT〃表示肉類商品

產(chǎn)地producerchar[20]可以簡單用文字描述

單價pricefloat18.50//單位:元/斤

售出數(shù)量salefloat指銷售總重量“斤二應自動從銷售信息表

中計算而得,初始值為0

內(nèi)存中的存儲結構:存放在相應分類節(jié)點的商品基本信息鏈結點上。每個結點除

了保存下一個結點的地址外,還保存該商品對應的菜市場商品銷售信息鏈表的頭

結點地址。如圖3.1所示。

數(shù)據(jù)文件中的存儲結構:每條信息作為一條記錄放到二進制文件。

3.菜市場商品銷售信息表

typedefstructsale_node{

intsale_id;/**<銷售編號*/

intitem_id;/**<商品編號*/

floatweight;/**<銷售重量*/

floatsales_amount;/**<銷售金額*/

chardate[10];/**<銷售日期*/

charclient_name[20];/**<客戶名稱*/

structsale_node*next;/**<指向下一結點的指針*/

}SALE_NODE;

菜市場商品銷售信息表如下:

數(shù)據(jù)結構名稱:菜市場商品銷售信息表數(shù)據(jù)結構標識:SALE_NODE

中文字段名數(shù)據(jù)項標識類型及長度舉例

銷售編號sale_idInt自增長

商品編號item_idInt同商品基本信息表中的商品編號

銷售重量weightfloat

銷售金額sales_amountfloat銷售金額=斤數(shù)*單價,應是自動計算

第8頁共226頁

華中科技大學計算機科學與技術學院C語言課程設計報告

銷售日期datechar[10]“20150222”年(4)+月(2)+日(2)

客戶名稱client_namechar[20]“張三”

內(nèi)存中的存儲結構:存放在相應基本信息節(jié)點的商品銷售信息鏈結點上。每個結

點保存下一個銷售信息結點的地址。如圖3.1所示。

數(shù)據(jù)文件中的存儲結構:每條信息作為一條記錄放到二進制文件。

該系統(tǒng)基礎數(shù)據(jù)部分在內(nèi)存中以后進先出的方式創(chuàng)建三方向的十字交叉鏈表。十

3.1菜市場銷售管理系統(tǒng)三個方向的十字交叉鏈表

字交叉鏈表模型如圖3.1。

4.各類商品消費情況表

typedefstructtype_stat{

chartype[10];/**<分類名稱刃

floatweight;/**<總重量*/

floatsale;/**<消費金額力

structtype_stat*next;/**<指向下一結點的指針*/

}TYPE_STAT;

各類商品消費情況表如下:

數(shù)據(jù)結構名稱:各類商品消費情況表數(shù)據(jù)結構標識:TYPE_STAT

中文字段名數(shù)據(jù)項標識類型及長度舉例

分類名稱typechar[10]“肉類”

總重量weightfloat

消費金額salefloat銷售金額=斤數(shù)*單價,應是自動計算

內(nèi)存中的存儲結構:存放在各類商品消費情況單向鏈表的結點上。每個結點保存

下一個銷售信息結點的地址。

數(shù)據(jù)文件中的存儲結構:不介入外存。

第9頁共226頁

華中科技大學計算機科學與技術學院C語言課程設計報告

4.各種商品消費情況表

typedefstructitem_stat{

chartype[10];/**<分類名稱*/

charitem[20];/**<商品名稱*/

floatweight;/**<總重量*/

floatsale;/**<銷售金額*/

structitem_stat*next;/**<指向下一結點的指針*/

}ITEM_STAT;

各類商品消費情況表如下:

數(shù)據(jù)結構名稱:各類商品消費情況表數(shù)據(jù)結構標識:ITEM_STAT

中文字段名數(shù)據(jù)項標識類型及長度舉例

商品名稱typechar[20]“豬肉”

分類名稱itemchar[10]“肉類”

總重量weightfloat

消費金額salefloat銷售金額=斤數(shù)*單價,應是自動計算

內(nèi)存中的存儲結構:存放在各種商品消費情況單向鏈表的結點上。每個結點保存

下一個銷售信息結點的地址。

數(shù)據(jù)文件中的存儲結構:不介入外存。

5.按客戶名稱統(tǒng)計的消費情況表

typedefstructclient_stat{

charclient[20];/**<客戶姓名*/

floatweight;/**〈總重量*/

floatsale;/**<銷售金額*/

structclient_stat*next;/**<指向下一結點的指針*/

}CLIENT_STAT;

按客戶名稱統(tǒng)計的消費情況表如下:

數(shù)據(jù)結構名稱:按客戶名稱統(tǒng)計的消費情況表數(shù)據(jù)結構標識:CLIENT_STAT

中文字段名數(shù)據(jù)項標識類型及長度舉例

客戶姓名clientchar[20]“張三”

總重量weightfloat

第10頁共226頁

華中科技大學計算機科學與技術學院C語言課程設計報告

消費金額salefloat銷售金額=斤數(shù)*單價,應是自動計算

內(nèi)存中的存儲結構:存放在各種商品消費情況單向鏈表的結點上。每個結點保存

下一個銷售信息結點的地址。

數(shù)據(jù)文件中的存儲結構:不介入外存。

四、詳細設計與系統(tǒng)實現(xiàn)

4.0主程序

4.0主程序流程圖

數(shù)據(jù)加載,界面初始化,選擇及運行系統(tǒng)功能模塊,退出系統(tǒng)。如流程圖

4.0o

4.1數(shù)據(jù)維護

函數(shù)原型:

BOOLMaintainTypelnfo(void)/*維護商品分類信息*/

BOOLMaintainltemlnfo(void)/*維護商品基本信息*/

BOOLMaintainSalelnfo(void)/*維護商品銷售信息*/

函數(shù)功能:進入三類信息維護的子菜單,選擇要執(zhí)行的操作。

詳細設計:選擇要進行維護的信息后,進入信息維護子菜單選項,選擇要執(zhí)

行的操作。選擇插入/修改/刪除后返回信息維護子菜單,選擇退出則提示保存信

息到外存后返回主菜單。(分類信息維護,基本信息維護,銷售信息維護流程相

同)如圖4.1。

第11頁共226頁

華中科技大學計算機科學與技術學院C語言課程設計報告

4.1數(shù)據(jù)維護流程圖

4.1.1分類信息維護

(1)錄入分類信息:

函數(shù)原型:voidInsertTypeNode(TYPE_NODE*hd)

函數(shù)功能:在十字鏈表中插入一個分類信息結點。

詳細設計:新建分類信息結點p,輸入分類編碼和分類名稱。若名稱長度超

過10字節(jié),提示字數(shù)過多后返回分類信息維護菜單。否則遍歷商品分類信息鏈

表,檢查分類編碼和分類名稱是否已被使用。若能夠查找到與新建結點的分類編

碼或分類名稱相同的結點,提示信息重復并返回分類信息維護菜單。

若p的分類編碼,分類名稱都沒有與已存在的分類信息結點重復,且分類

名稱不超過10字節(jié),則將p作為商品分類信息鏈表的頭結點,提示插入成功后

返回分類信息維護菜單。如流程圖4.1.1所示。

第12頁共226頁

華中科技大學計算機科學與技術學院C語言課程設計報告

4.1.1錄入分類信息流程圖

(2)修改分類信息:

函數(shù)原型:voidModifTypeNode(TYPE_NODE*hd)

函數(shù)功能:從十字鏈表中修改指定的分類信息結點.

詳細設計:輸入要修改的分類的名稱后遍歷商品分類信息鏈表,查找名稱符

合的結點pt。若沒有查找到,提示分類不存在并返回分類信息維護子菜單。否則

輸出當前分類信息,然后選擇要修改的內(nèi)容。

若選擇修改分類編號,輸入新編號后遍歷鏈表,查找分類編號相同的結點,

若查找到,提示編號已被使用,否則修改編號。然后繼續(xù)選擇要修改的內(nèi)容。

若選擇修改名稱,輸入新分類名稱后先判斷新名稱長度是否大于10字節(jié)。

若大于10字節(jié),提示字數(shù)過多后繼續(xù)選擇要修改的內(nèi)容。若不超過10字節(jié),遍

歷分類信息鏈表,若能查找到分類名稱與新名稱相同的分類信息結點,提示名稱

重復后繼續(xù)選擇要修改的內(nèi)容。否則將pt的分類名稱改為新名稱。

第13頁共226頁

華中科技大學計算機科學與技術學院C語言課程設計報告

4.1.2修改分類信息流程圖

若選擇退出,則返回分類信息維護菜單。如流程圖4.1.2所示。

(3)刪除分類信息:

函數(shù)原型:voidDelTypeNode(TYPE_NODE*hd)

函數(shù)功能:從十字鏈表中刪除指定的分類信息結點.

詳細設計:輸入要刪除的結點的分類名稱。遍歷商品分類信息鏈表,查找分

類名稱相符的結點pt以及pt的前驅(qū)p。若查找到,判斷pt是否為頭結點。若pt

為頭結點,令pt->next為新的頭結點,若不是,使p->next=pt->nexto然后釋放

pt及對應的基本信息和銷售信息鏈表的存儲空間,提示刪除成功并返回分類信息

維護菜單。否則沒有查找到符合條件的pt,提示刪除失敗后返回分類信息維護菜

單。如流程圖4.1.3所示。

第14頁共226頁

華中科技大學計算機科學與技術學院C語言課程設計報告

4.1.3刪除分類信息流程圖

4.1.2基本信息維護

(1)插入基本信息:

函數(shù)原型:voidInsertItemNode(TYPE_NODE*hd)

函數(shù)功能:在十字鏈表中插入一個基本信息結點.

詳細設計:輸入商品所在分類的名稱。遍歷分類信息鏈表,查找分類名稱與

輸入的相同的分類信息結點pt。若pt為NULL,提示商品分類不存在并返回基

本信息維護子菜單。否則新建基本信息結點p。

輸入商品名稱,判斷商品名稱長度是否大于20字節(jié)。若名稱大于20字節(jié),

提示字數(shù)過多后返回基本信息維護菜單。若沒有超過20字節(jié),遍歷商品基本信

息鏈表,查找商品名稱與輸入的商品名稱相同的基本信息結點pi,同時查找最大

的商品編號ITEM」D。若pi不為NULL,提示名稱已被使用,返回基本信息維

護菜單。否則繼續(xù)輸入商品產(chǎn)地和單價,若產(chǎn)地長度超過20字節(jié),提示字數(shù)過

多后返回基本信息維護菜單。否則將p作為pt對應的基本信息支鏈的新的頭結

點,并令p的商品編碼為ITEMJD+1,然后返回基本信息維護子菜單。如圖4.1.4

所示。

第15頁共226頁

華中科技大學計算機科學與技術學院C語言課程設計報告

4.1.4插入商品基本信息流程圖

第16頁共226頁

多)華中科技大學計算機科學與技術學院C語言課程設計報告

(2)修改基本信息:

函數(shù)原型:voidModintemNode(TYPE_NODE*hd)

函數(shù)功能:從十字鏈表中修改指定的基本信息結點

詳細設計:輸入商品名稱,遍歷基本信息鏈表,查找商品名稱與輸入的相同

的結點pi,pi所在基本信息支鏈對應的分類信息結點pt和pi的前驅(qū)。若pi為

NULL,提示商品不存在并返回基本信息維護子菜單。

若pi存在,選擇修改內(nèi)容。若選擇改名稱,則輸入新名稱,若新名稱長度

大于20字節(jié),提示字數(shù)過多修改失敗,并繼續(xù)選擇要修改的內(nèi)容。否則提示遍

歷基本信息鏈表,查找與商品名稱與新名稱相同的基本信息結點pi2,若pi2存

在則提示修改失敗,否則修改結點的商品名稱,并繼續(xù)選擇要修改的內(nèi)容。

若選擇改產(chǎn)地,則輸入新產(chǎn)地,若新產(chǎn)地長度不超過20字節(jié),修改產(chǎn)地并

提示修改成功,然后繼續(xù)選擇要修改的內(nèi)容;否則提示字數(shù)過多后繼續(xù)選擇要修

改的內(nèi)容。

若選擇修改單價,輸入并修改基本信息結點pi中的單價后,遍歷pi對應的

銷售信息鏈表,修改銷售信息結點中的銷售金額。

若選擇分類編碼,則遍歷分類信息鏈表,查找新編碼所在結點pt2,pt2不存

在則提示失敗并繼續(xù)選擇修改內(nèi)容。否則如果pi為原基本信息支鏈的頭結點,

則令pt->next指向pi->next,否則令pi的前驅(qū)指向pi->next。然后將pi插入pt2

對應的基本信息支鏈,并作為支鏈頭結點。最后令pt=pt2并繼續(xù)選擇修改內(nèi)容。

若選擇退出,則返回基本信息維護子菜單。如流程圖4.1.5所示。

第17頁共226頁

華中科技大學計算機科學與技術學院C語言課程設計報告

(開始)

輸入名稱name輸新編號typeid

pt-gp_head

pt2=gphead

提示商品名稱不提示分類

pt=NULL12二二NULL

存在,修改失敗不存在

No

pi=pt->inext;pt=pt->next;pi->typei

二typeid:

pi二NULLpt=pt->next;

令pi的前驅(qū)指向pi的后繼,將pi

作為新的基本信息支鏈的頭結點

pitem=pi;No

pi->name-j提示修改成功

pi=pi->next;name相同

輸入新名稱name

輸出pi中的基本信息

選擇修改內(nèi)容strlen(name)>2提示字數(shù)過多

選名稱pt=gp_head

No

修改pi->name

pt2二二NULL

選分類編碼

提示修改成功

pi2=pt2->inext;

選產(chǎn)地

No

選單價pt2=pt2->next;pi2=NULL

pi2->name

選退出pi2=pi2->next;

name相亙

?(結束)

提豕名稱重復

輸入新產(chǎn)地producer

輸入新單價

itrlen(producer)>2提示字數(shù)過多

遍歷pi對應的銷售信息支

鏈,修改銷售金額

修改pi->producer后

提示修改成功

4.1.5修改基本信息流程圖

(4)刪除基本信息:

函數(shù)原型:voidDelItemNode(TYPE_NODE*hd)

函數(shù)功能:從十字鏈表中刪除指定的基本信息結點.

第18頁共226頁

、落華中科技大學計算機科學與技術學院

C語言課程設計報告

詳細設計:輸入要刪除的基本信息結點的商品名稱,遍歷基本信息鏈表,查

找結點pi,pi的前驅(qū)pi2,pi所在基本信息支鏈對應的分類信息結點pt。若pi

為NULL,提示商品不存在并返回基本信息維護菜單;否則判斷pi是否為基本

信息鏈表頭結點,若是頭結點,則令pi->next為pt對應的基本信息支鏈的新的

頭結點,否則pi2->next=pi->nexto最后釋放pi對應的銷售信息鏈表和pi的存儲

空間,提示刪除成功后返回基本信息維護子菜單。如圖4.1.6所示。

4.1.6刪除基本信息流程圖

4.1.3銷售信息維護

(1)錄入銷售信息

函數(shù)原型:voidInsertSaleNode(TYPE_NODE*hd)

函數(shù)功能:在十字鏈表中插入一個銷售信息結點

詳細設計:輸入商品名稱,遍歷基本信息鏈表,查找商品名稱與輸入的名稱

相同的基本信集結點pi,若pi不存在,提示商品不存在并返回銷售信息維護菜

單。否則新建銷售信息結點p,輸入銷售重量,日期。日期是否為8個字節(jié),若

不是,提示格式錯誤后返回銷售信息維護菜單。否則計算銷售金額,并修改pi

中的銷售總重量和總金額,然后遍歷銷售信息鏈表查找最大的銷售編號

第19頁共226頁

星」華中科技大學計算機科學與技術學院C語言課程設計報告

SALE」D,令p->sale_id為SALE_lD+lo最后將p設置為pi對應銷售信息支鏈

的新的頭結點。如圖示4.1.7所示。

輸入商品名稱

I

find=0

遍歷基本信息鏈表,查找名稱相同

的結點pi,若找到則find=1

V,find==O—>■提才〈商品不存在一

No、

新建商品銷售信息結點P

p->item_id=pi->item_id;

輸入銷售重量,

銷售日期date

提示日期格式錯誤

遍歷銷售信息鏈表,

查找最大的銷售編號

SALE_ID

p->sale_id=SALE_ID+l,計算銷售金

額,修統(tǒng)基本信直中的銷售重量。

ri

[將p設置為支鏈頭結點]

|____提示插入成功_|

(森>-------

4.1.7插入商品銷售信息流程圖

(2)修改銷售信息:

函數(shù)原型:voidModifSaleNode(TYPE_NODE*hd)

函數(shù)功能:從十字鏈表中修改指定的基本信息結點

詳細設計:輸入銷售編號,遍歷銷售信息鏈表,查找對應的結點ps,ps的

前驅(qū)psale,以及ps所在銷售信息支鏈對應的基本信息結點pi0若ps不存在,

提示修改失敗,返回銷售信息維護子菜單。否則輸出當前銷售信息的內(nèi)容,選擇

修改的內(nèi)容。

溫馨提示

  • 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

提交評論