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

下載本文檔

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

文檔簡介

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

C語言課程設計報告

題目:菜市場商品銷售管理系統

專業:計算機科學與技術專業

班級:_______________________________

學號:_______________________________

姓名:_______________________________

成績:

指導教師:_______________________________

完成日期:2016年10月7日

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

目錄

一、系統需求分析..............................................1

1.1數據維護功能...........................................1

1.2數據查詢功能...........................................1

1.3數據統計功能...........................................1

1.4數據存取功能...........................................2

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

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

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

2.2數據維護模塊...........................................3

2.3數據查詢模塊...........................................4

2.4數據統計模塊...........................................5

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

三、數據結構設計...............................................6

四、詳細設計與系統實現........................................11

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

4.1數據維護..............................................11

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

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

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

4.2數據查詢..............................................22

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

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

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

4.3數據統計..............................................28

4.3.1按類別統計:....................................28

4.3.2按品種統計......................................31

4.3.3按客戶名稱統計..................................36

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

5.1輸入數據..............................................40

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

5.3系統主界面............................................42

5.4數據維護界面..........................................43

5.5數據查詢界面:........................................52

5.6數據統計界面..........................................57

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

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

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

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

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

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

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

一、系統需求分析

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

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

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

菜市場商品銷售管理系統要求實現以下幾方面的基本功能:

1.1數據維護功能

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

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

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

數據項。

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

客戶名稱等數據項。

系統應實現以上三種數據的錄入、修改、和刪除功能。信息錄入口寸,系統應提供

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

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

1.2數據查詢功能

系統應實現對三種基礎數據的查詢功能,提供按多種條件進行查詢的方式,

具體包括:

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

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

本信息。

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

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

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

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

1.3數據統計功能

在以上三種基礎信息的基礎上,提供多方面的數據統計功能,并生成表格輸

出,具體包括:

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

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

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

第1頁共226頁

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

c語言課程設計報告

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

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

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

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

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

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

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

額。

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

消費總金額。

1.4數據存取功能

以上三種信息在程序運行時,以鏈表結構形式存在于內存中,并且數據的存

儲采用動態存儲的分配方式。同時,在外存上以數據文件形式對數據進行存儲,

且保證數據在內存和外存兩種存儲介質上內容的一致性。

1.5輔助功能

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

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

二、總體設計

菜市場商品銷售管理系統由五大功能模塊組成:文件模塊,數據維護,數據

查詢,數據統計,幫助系統。功能結構如圖2.0。

文件

圖2.0菜市場商品銷售管理系統的功能模塊

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

2.1文件模塊

文件模塊的功能包括一系列與系統啟動和系統既然的話運行相關的環境維

第2頁共226頁

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

c語言課程設計報告

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

據恢復、退出系統。功能結構如圖2.1。

文件

退

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

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

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

欄。

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

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

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

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

儲到一個數據文件中,供用戶在系統數據被破壞或丟失后用來恢復系統。

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

文件恢復得到備份時間點的系統數據,并將恢復出來的數據加載到內存中,用于

提高系統的安全性和可靠性。

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

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

2.2數據維護模塊

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

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

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

第3頁共226頁

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

數據維護

圖2.2數據維護模塊的子模塊劃分

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

除和修改分類信息、基本信息和銷售信息。同時,系統將這三種數據存入數據鏈

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

件和商品銷售信息數據文件,以保持在內存和外存上兩種存儲介質上數據內容的

一致性。

2.3數據查詢模塊

數據查詢模塊提供對系統三類基礎數據信息按多種條件查詢的功能,按信息

種類分為分類信息查詢,基礎信息查詢和銷售信息查詢三個子模塊。如圖2.3。

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

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

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

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

的功能。

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

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

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

行是否正確。

第4頁共226頁

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

數據查詢1

圖2.3數據查詢模塊的子模塊劃分

2.4數據統計模塊

數據統計

圖2.4數據統計模塊的子模塊劃分

數據統計模塊提供對三種基礎數據進行多方面統計的功能。按照統計條件,

該模塊按類別統計,按品種統計和按客戶姓名統計三個模塊。每個模塊根據統計

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

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

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

第5頁共226頁

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

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

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

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

(2)按品種統計:

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

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

銷售金額。

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

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

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

和查客戶姓名。

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

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

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

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

2.5幫助

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

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

幫助

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

三、數據結構設計

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

類信息、商品基本信息和商品銷售信息這三類基礎信息數據。此外,系統在運行

統計模塊時還會結果形成三種生成數據,分別表示按品種統計的銷售信息,按類

別統計的銷售信息和按客戶名稱統計的銷售信息。

下面為對本系統所涉及的基礎數據和生成數據的數據結構,以及數據在內存

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

第6頁共226頁

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

C語言課程設計報告

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

typedefstructtype_node{

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

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

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

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

}TYPE.NODE;

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

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

中文字段名數據項標識類型及長度舉例

分類編碼type_idchar

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

內存中的存儲結構:存放在十字交叉鏈表的主鏈節點上。每個主鏈節點除了保存

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

址。如圖3.1所示。

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

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

typedefstructitem_node{

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

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

chartype_id;/**<分類碼*/

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

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

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

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

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

}ITEM_NODE;

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

第7頁共226頁

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

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

中文字段名數據項標識類型及長度舉例

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

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

分類碼type_idcharT〃表示肉類商品

產地producerchar[20]可以簡單用文字描述

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

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

中計算而得,初始值為0

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

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

結點地址。如圖3.1所示。

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

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

typedefstructsale_node{

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

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

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

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

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

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

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

}SALE_NODE;

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

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

中文字段名數據項標識類型及長度舉例

銷售編號sale_idInt自增長

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

銷售重量weightfloat

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

第8頁共226頁

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

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

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

內存中的存儲結構:存放在相應基本信息節點的商品銷售信息鏈結點上。每個結

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

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

該系統基礎數據部分在內存中以后進先出的方式創建三方向的十字交叉鏈表。十

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

字交叉鏈表模型如圖3.1。

4.各類商品消費情況表

typedefstructtype_stat{

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

floatweight;/**<總重量*/

floatsale;/**<消費金額力

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

}TYPE_STAT;

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

數據結構名稱:各類商品消費情況表數據結構標識:TYPE_STAT

中文字段名數據項標識類型及長度舉例

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

總重量weightfloat

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

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

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

數據文件中的存儲結構:不介入外存。

第9頁共226頁

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

4.各種商品消費情況表

typedefstructitem_stat{

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

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

floatweight;/**<總重量*/

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

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

}ITEM_STAT;

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

數據結構名稱:各類商品消費情況表數據結構標識:ITEM_STAT

中文字段名數據項標識類型及長度舉例

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

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

總重量weightfloat

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

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

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

數據文件中的存儲結構:不介入外存。

5.按客戶名稱統計的消費情況表

typedefstructclient_stat{

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

floatweight;/**〈總重量*/

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

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

}CLIENT_STAT;

按客戶名稱統計的消費情況表如下:

數據結構名稱:按客戶名稱統計的消費情況表數據結構標識:CLIENT_STAT

中文字段名數據項標識類型及長度舉例

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

總重量weightfloat

第10頁共226頁

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

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

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

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

數據文件中的存儲結構:不介入外存。

四、詳細設計與系統實現

4.0主程序

4.0主程序流程圖

數據加載,界面初始化,選擇及運行系統功能模塊,退出系統。如流程圖

4.0o

4.1數據維護

函數原型:

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

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

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

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

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

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

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

同)如圖4.1。

第11頁共226頁

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

4.1數據維護流程圖

4.1.1分類信息維護

(1)錄入分類信息:

函數原型:voidInsertTypeNode(TYPE_NODE*hd)

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

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

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

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

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

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

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

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

第12頁共226頁

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

4.1.1錄入分類信息流程圖

(2)修改分類信息:

函數原型:voidModifTypeNode(TYPE_NODE*hd)

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

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

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

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

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

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

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

若大于10字節,提示字數過多后繼續選擇要修改的內容。若不超過10字節,遍

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

重復后繼續選擇要修改的內容。否則將pt的分類名稱改為新名稱。

第13頁共226頁

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

4.1.2修改分類信息流程圖

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

(3)刪除分類信息:

函數原型:voidDelTypeNode(TYPE_NODE*hd)

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

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

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

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

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

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

單。如流程圖4.1.3所示。

第14頁共226頁

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

4.1.3刪除分類信息流程圖

4.1.2基本信息維護

(1)插入基本信息:

函數原型:voidInsertItemNode(TYPE_NODE*hd)

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

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

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

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

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

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

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

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

護菜單。否則繼續輸入商品產地和單價,若產地長度超過20字節,提示字數過

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

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

所示。

第15頁共226頁

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

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

第16頁共226頁

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

(2)修改基本信息:

函數原型:voidModintemNode(TYPE_NODE*hd)

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

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

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

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

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

大于20字節,提示字數過多修改失敗,并繼續選擇要修改的內容。否則提示遍

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

在則提示修改失敗,否則修改結點的商品名稱,并繼續選擇要修改的內容。

若選擇改產地,則輸入新產地,若新產地長度不超過20字節,修改產地并

提示修改成功,然后繼續選擇要修改的內容;否則提示字數過多后繼續選擇要修

改的內容。

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

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

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

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

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

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

若選擇退出,則返回基本信息維護子菜單。如流程圖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的前驅指向pi的后繼,將pi

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

pitem=pi;No

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

pi=pi->next;name相同

輸入新名稱name

輸出pi中的基本信息

選擇修改內容strlen(name)>2提示字數過多

選名稱pt=gp_head

No

修改pi->name

pt2二二NULL

選分類編碼

提示修改成功

pi2=pt2->inext;

選產地

No

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

pi2->name

選退出pi2=pi2->next;

name相亙

?(結束)

提豕名稱重復

輸入新產地producer

輸入新單價

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

遍歷pi對應的銷售信息支

鏈,修改銷售金額

修改pi->producer后

提示修改成功

4.1.5修改基本信息流程圖

(4)刪除基本信息:

函數原型:voidDelItemNode(TYPE_NODE*hd)

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

第18頁共226頁

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

C語言課程設計報告

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

找結點pi,pi的前驅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)錄入銷售信息

函數原型:voidInsertSaleNode(TYPE_NODE*hd)

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

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

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

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

不是,提示格式錯誤后返回銷售信息維護菜單。否則計算銷售金額,并修改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,計算銷售金

額,修統基本信直中的銷售重量。

ri

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

|____提示插入成功_|

(森>-------

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

(2)修改銷售信息:

函數原型:voidModifSaleNode(TYPE_NODE*hd)

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

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

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

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

修改的內容。

溫馨提示

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

評論

0/150

提交評論