![商店存貨管理系統(tǒng)_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/29/ac881f82-2471-42cb-986f-aea7229eadc6/ac881f82-2471-42cb-986f-aea7229eadc61.gif)
![商店存貨管理系統(tǒng)_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/29/ac881f82-2471-42cb-986f-aea7229eadc6/ac881f82-2471-42cb-986f-aea7229eadc62.gif)
![商店存貨管理系統(tǒng)_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/29/ac881f82-2471-42cb-986f-aea7229eadc6/ac881f82-2471-42cb-986f-aea7229eadc63.gif)
![商店存貨管理系統(tǒng)_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/29/ac881f82-2471-42cb-986f-aea7229eadc6/ac881f82-2471-42cb-986f-aea7229eadc64.gif)
![商店存貨管理系統(tǒng)_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/29/ac881f82-2471-42cb-986f-aea7229eadc6/ac881f82-2471-42cb-986f-aea7229eadc65.gif)
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
學學 號號201410137214 武武 漢漢 科科 技技 大大 學學 城城 市市 學學 院院 課課 程程 設設 計計 報報 告告 課程名稱課程名稱 數(shù)據(jù)結構課程設計數(shù)據(jù)結構課程設計 題題 目目 商店存貨管理系統(tǒng)商店存貨管理系統(tǒng) 學學 部部 信息工程學部信息工程學部 專專 業(yè)業(yè) 計算機科學與技術計算機科學與技術 班班 級級 計科二班計科二班 姓姓 名名 劉威劉威 指導教師指導教師 林曉麗林曉麗 2015年年6月月28日日 目 錄 1 1 課程設計目的 3 1 2 課程設計內容和要求 3 1 2 2 要求 3 1 2 3 運行環(huán)境 4 1 3 課程設計分析 4 1 4 算法描述 4 1 5 源代碼 7 1 6 運行結果分析 17 小 結 24 參考文獻 24 課程設計評分表 25 1 1 課程設計目的 通過實習 了解并初步掌握設計 實現(xiàn)較大系統(tǒng)的完整過程 包括系統(tǒng)分 析 編碼設計 系統(tǒng)集成 以及調試分析 熟練掌握數(shù)據(jù)結構的選擇 設計 實現(xiàn)以及操作方法 為進一步的應用開發(fā)打好基礎 通過實習鞏固并提高實習者的 C 語言知識 并初步了解 Visual C 的知識 提高其編程能力與專業(yè)水平 1 2 課程設計內容和要求 1 2 1 課程設計內容 建立一商店存貨管理系統(tǒng) 要求每次出貨時取進貨時間最早且最接近保質 期中止時間的貨物 分步實施 1 初步完成總體設計 搭好框架 確定人機對話的界面 確定函數(shù)個數(shù) 2 完成最低要求 建立一個文件 包括 5 個種類的貨物情況 能對商品信 息進行擴充 追加 修改和刪除以及簡單的排序 3 進一步要求 擴充商品數(shù)量 以及完成系統(tǒng)查詢功能 有興趣的同學可 以自己擴充系統(tǒng)功能 1 2 2 要求 1 界面友好 函數(shù)功能要劃分好 2 總體設計應畫一流程圖 3 程序要加必要的注釋 4 要提供程序測試方案 5 程序一定要經(jīng)得起測試 寧可功能少一些 也要能運行起來 不能運行 的程序是沒有價值的 1 2 3 運行環(huán)境 該程序的運行環(huán)境為 Windows xp 系統(tǒng) Microsoft Visual C 6 0 版本 1 3 課程設計分析 1 需要定義一個結構體數(shù)組 其中 name 表示商品的名稱 time 表示商品 的進貨時間 year 表示商品的生產(chǎn)日期 no 表示商品的保質期 2 利用冒泡法 對商品進行排序 3 選擇需要的功能 其中功能包括商品的最原始添加 商品的插入 刪除 查找 將數(shù)據(jù)寫入文件中 從文件中讀出數(shù)據(jù)等操作 4 選擇輸入 0 9 10 個數(shù)的其中一個數(shù) 進行相應的操作 5 進行完所的操作之后 選擇保存功能 將數(shù)據(jù)保存到文件中 6 退出程序 1 4 算法描述 1 先定義一個商品的結構體數(shù)組 typedef struct 定義結構體數(shù)組 char name 20 商品名稱 int time 進貨時間 int year 生產(chǎn)日期 int no 保質期 goods 2 建立一個菜單函數(shù) 顯示 10 個功能 供用戶選擇 進行人機對話 3 設置一個排序的函數(shù) int shuru shangp gs int n 利用冒泡法先對商品 按進貨的時間排序 對進貨時間一樣的貨物 再按離保質期最近排序 4 設置一個輸入的函數(shù) int Input goods gs int n 這個函數(shù)是最初商品 輸入函數(shù) 當選擇了這個功能后 如果是第一次運行這個程序 保存 輸入 那將在 D 盤產(chǎn)生一個名為 商品 doc 的文件 如果已經(jīng)運行 過了 并保存輸入 那輸入的商品信息將代替原有的信息 數(shù)據(jù)輸入 使用交互輸入 進行人機對話 確定是否進行下一個數(shù)據(jù)的添加 并 且調用了上面的排序函數(shù) 對輸入的數(shù)據(jù)進行排序 5 設置一個顯示的函數(shù) void shuchu goods gs int n 顯示上面輸入的所 有數(shù)據(jù) 或者是從文件中讀取的數(shù)據(jù) 6 設置一個插入的函數(shù) int charu goods gs int n 每次插入一組數(shù)據(jù) 如果要再插入 則再選擇這個功能進行操作 并且在插入的同時 已 經(jīng)排好序 把數(shù)據(jù)插入適合的位置 7 設置一個查找刪除的函數(shù) intchazhaoxianshi goods gs int n 輸入要 查找的商品名稱 如果不存在 則輸出失敗信息 如果存在 則用下 一個信息代替原有信息的位置 8 設置一個查找顯示的函數(shù) void chazhaoxianshi goods gs int n 輸入要 查找的商品名稱 如果不存在 則輸出失敗信息 如果存在 則顯示 信息 9 設置一個寫入文件的函數(shù) void xiewenjian goods gs int n 設置文件 指針 先判斷文件是否能打開并且能進行寫操作 不能則輸出失敗信 息 能則循環(huán)寫入數(shù)據(jù) 寫完關閉文件 10 設置一個讀文件的函數(shù) int duwenjian goods gs int n 設置文件指針 判斷文件是否能打開而且能進行讀操作 能則先讀出總的數(shù)據(jù)量 接 著循環(huán)讀出數(shù)據(jù) 最后關閉文件 11 進入最后一步 main 函數(shù) 判斷選擇的操作 根據(jù)用戶選擇的操作 利用 switch 語句進行相應的函數(shù)調用 12 選擇保存功能 對數(shù)據(jù)進行保存 然后選擇結束程序退出功能 退出程 序 paixu gs n 初始條件 數(shù)據(jù)已經(jīng)存在 操作結果 數(shù)據(jù)進行排序 shuru gs n 初始條件 沒有任何數(shù)據(jù)存在 或者要替換原文件中的所有數(shù)據(jù) 操作結果 數(shù)據(jù)進行輸入 shuchugs n 初始條件 數(shù)據(jù)已經(jīng)存在 操作結果 數(shù)據(jù)顯示 charu gs n 初始條件 數(shù)據(jù)已經(jīng)存在 操作結果 數(shù)據(jù)插入 chanchu gs n 初始條件 數(shù)據(jù)已經(jīng)存在 操作結果 數(shù)據(jù)刪除 chazhaoshanchu i gs n 初始條件 數(shù)據(jù)已經(jīng)存在 操作結果 數(shù)據(jù)統(tǒng)計 xiewenjian gs n 初始條件 數(shù)據(jù)已經(jīng)存在 操作結果 寫入文件中 duwenjian gs n 初始條件 文件已經(jīng)存在 操作結果 從文件中讀出 1 4 流程圖 退出程序 寫入文件 排序數(shù)據(jù) 統(tǒng)計數(shù)據(jù) 添加數(shù)據(jù) 查找數(shù)據(jù) 刪除數(shù)據(jù) 顯示數(shù)據(jù) 新數(shù)據(jù) 重新選擇功能 讀文件 Main 函數(shù) 功能 8功能 1 功 能 2 功 能 3 功 能 4 功 能 5 功 能 6 功 能 9 功能 7 功能 0 1 5 源代碼 include 引用庫函數(shù) include include include typedef struct 定義結構體數(shù)組 char name 20 商品名稱 int time 進貨時間 int year 生產(chǎn)日期 int no 保質期 goods goods gs 80 結構體數(shù)組變量 int menu select 菜單函數(shù) char c do system cls 運行前清屏 printf t t 商品系統(tǒng) n 菜單選擇 printf t t 1 輸入數(shù)據(jù) n printf t t 2 顯示數(shù)據(jù) n printf t t 3 插入數(shù)據(jù) n printf t t 4 刪除數(shù)據(jù) n printf t t 5 查找數(shù)據(jù) n printf t t 6 統(tǒng)計并顯示進貨時間最早且最接近保質期中止時間的貨物 n printf t t 7 寫入文件 n printf t t 8 讀文件 n printf t t 9 對讀入的文件進行排序 n printf t t 0 退出 n printf t t n printf t t t 請選擇 0 9 c getchar 讀入選擇 while c 9 return c 0 返回選擇 void Sort by time goods gs int n 按進貨時間排序 int i j a b c p q s m k d e f char t 10 for i 0 i n 1 i 冒泡法排序 for j 0 jgs j 1 time a b c a a b b c strcpy t gs j 1 name strcpy gs j 1 name gs j name strcpy gs j name t p q s p p q q s m k d m m k k d else if gs j time gs j 1 time p a b q e p b 10000 f a q 10000 if e f a b c a a b b c strcpy t gs j 1 name strcpy gs j 1 name gs j name strcpy gs j name t p q s p p q q s m k d m m k k d int Input goods gs int n 輸入若干條記錄 int i 0 char sign x 10 while sign n 交互輸入 scanf t t t s gs n i name printf t t t 進貨時間 例 20070201 scanf t t t d printf t t t 生產(chǎn)日期 例 20070201 scanf t t t d printf t t t 保質期 年 scanf t t t d gets x 清除多余的輸入 printf t t t 繼續(xù)輸入 Y N scanf t t t c 輸入判斷 i Sort by time gs n i 調用排序函數(shù) return n i void Display goods gs int n 顯示所有記錄 int i printf t t n 格式頭 printf t t 商品名稱 進貨時間 生產(chǎn)日期 保質期 年 n printf t t n for i 1 i1 格式 printf t t t system pause printf t t t n printf t t t system pause 按任何鍵繼續(xù) int Insert a record goods gs int n 插入一條記錄 char x 10 清除多余輸入所用 printf t t t 商品名稱 交互輸入 scanf t t t s gs n name printf t t t 進貨時間 scanf t t t d printf t t t 生產(chǎn)日期 scanf t t t d printf t t t 保質期 scanf t t t d gets x n Sort by time gs n 調用排序函數(shù) printf t t t 插入成功 n 返回成功信息 return n int Delete a record goods gs int n 按商品名字查找 刪除一條記錄 char s 20 int i 0 j printf t t t 商品名稱 scanf s s while strcmp gs i name s 0 查找判斷 if i n printf t t t 沒找到 n 返回失敗信息 return n for j i j n 1 j 刪除操作 strcpy gs j name gs j 1 name gs j time gs j 1 time gs j year gs j 1 year gs j no gs j 1 no printf t t t 刪除成功 n 返回成功信息 return n 1 void Query a record goods gs int n 查找并顯示一個記錄 char s 20 int i 0 printf t t t 輸入要查找的商品名稱 scanf t t t s s while strcmp gs i name s 0 查找判斷 if i n printf t t t 沒找到 n 輸入失敗信息 return printf t t t 進貸時間 d n gs i time 輸出該商品信息 printf t t t 生產(chǎn)日期 d n gs i year printf t t t 保質期 d n gs i no void WritetoText goods gs int n 將所有記錄寫入文件 int i 0 FILE fp 定義文件指針 if fp fopen d 商品 doc wb NULL 打開文件 printf t t tcann t open the file n system pause return fprintf fp d n n 循環(huán)寫入數(shù)據(jù) while i n fprintf fp 5s d d d n gs i name gs i time gs i year gs i no i fclose fp 關閉文件 printf t t tSuccessed n 返回成功信息 int AddfromText goods gs int n 從文件中讀入數(shù)據(jù) int i 0 num FILE fp 定義文件指針 if fp fopen d 商品 doc rb NULL 打開文件 printf t t tcann t open the file n 打開失敗信息 printf t t t system pause return n fscanf fp d 讀入總記錄量 while i num 循環(huán)讀入數(shù)據(jù) fscanf fp s d d d gs n i name i n num fclose fp 關閉文件 printf t t tSuccessed n printf t t t system pause return n void main 主函數(shù) int n 0 for switch menu select 選擇判斷 case 1 printf t t t 輸入最初商品 n 輸入若干條記錄 n Input gs n break case 2 printf t t t 顯示所有商品 n 顯示所有記錄 Display gs n break case 3 printf t t t 插入 n n Insert a record gs n 插入 printf t t t system pause break case 4 printf t t t 刪除 n n Delete a record gs n 按商品名稱查找 刪除 printf t t t system pause break case 5 printf t t t 查找并顯示 n Query a record gs n 查找并顯示 printf t t t system pause break case 6 printf t t t 統(tǒng)計并顯示進貨時間最早且最接近保質期中止時間的貨 物 n printf t t t 共有 d 件商品 n n 總共記錄數(shù) printf t t t 進貨時間最早且最接近保質期中止時間的貨物 n printf t t t 商品名稱 r s n gs 0 name printf t t t 進貨時間 d n gs 0 time printf t t t 生產(chǎn)日期 d n gs 0 year printf t t t 保質期 d n n gs 0 no printf t t t system pause break case 7 printf t t t 寫到文件中 n WritetoText gs n 循環(huán)寫入數(shù)據(jù) printf t t t system pause break case 8 printf t t t 文件中讀數(shù)據(jù) n n AddfromText gs n printf t t t 文件中讀數(shù)據(jù) break case 9 printf t t t n Sort by time gs n printf t t t 對讀入的文件進行排序 break case 0 printf t t t 結束退出 n 結束程序 printf t t t system pause exit 0 1 6 運行結果分析 1 初始界面 從 D 盤讀入已準備好的文件數(shù)據(jù) 2 選擇功能 8 并選擇功能 2 顯示最初的數(shù)據(jù) 3 對讀出的文件進行排序 選功能 9 再選功能 2 進行顯示 4 選擇功能 3 進行插入操作 選擇功能 2 進行顯示 5 選擇功能 4 進行刪除操作 第一種情況為找不到要刪除的商品數(shù)據(jù) 接下去這個是另一種情況 即找到要刪除的商品數(shù)據(jù)并按功能 2 顯示 6 選擇功能 5 第一種情況為找不到要查找的數(shù)據(jù) 第二種為存在情況 7 選擇功能 6 8 選擇功能 7 9 選擇功能 0 退出程序 目目 錄錄 題目一 一種排序一種排序 一 難度 3 1 1 題目要求 1 2 算法設計思路及步驟 1 3 算法描述 2 4 結果分析 3 小 結 3 參考文獻 4 題目一 一種排序一種排序 難度 3 1 題目要求題目要求 1 1 問題描述 描述 現(xiàn)在有很多長方形 每一個長方形都有一個編號 這個編號可以重復 還知道這個長方形的寬和長 編號 長 寬都是整數(shù) 現(xiàn)在要求按照一 下方式排序 默認排序規(guī)則都是從小到大 1 按照編號從小到大排序 2 對于編號相等的長方形 按照長方形的長排序 3 如果編號和長都相同 按照長方形的寬排序 4 如果編號 長 寬都相同 就只保留一個長方形用于排序 刪除多余的 長方形 最后排好序按照指定格式顯示所有的長方形 輸入 第一行有一個整數(shù) 0 n 10000 表示接下來有 n 組測試數(shù)據(jù) 每一組第一行有一個整數(shù) 0 m 1000 表示有 m 個長方形 接下來的 m 行 每一行有三個數(shù) 第一個數(shù)表示長方形的編號 第二個和第三個數(shù)值大的表示長 數(shù)值小的表示寬 相等 說明這是一個正方形 數(shù)據(jù)約定長寬與編號都小于 10000 輸出 順序輸出每組數(shù)據(jù)的所有符合條件的長方形的 編號 長 寬 樣例輸入 1 8 1 1 1 1 1 1 1 1 2 1 2 1 1 2 2 2 1 1 2 1 2 2 2 1 樣例輸出 1 1 1 1 2 1 1 2 2 2 1 1 2 2 1 2 算法設計思路及步驟算法設計思路及步驟 2 1 設計思路 先做一個輸入函數(shù) 輸入 m 組數(shù)據(jù)進行排序 優(yōu)先按照編號來排序 當編 號相等時再優(yōu)先按照長度排序 當編號 長度相等時再排序寬度 當三個數(shù)值 都相等時 只輸出一個出來 2 2 步驟 輸入數(shù)據(jù) m 要進行的組數(shù) 采用 while 循環(huán)判斷組數(shù)執(zhí)行的條件 然后在使用 for 循環(huán)接受長方體的編號 長度 寬度 然后調用快速排序函數(shù) CMP 進行排 序 用一個 for 循環(huán)來刪除相同數(shù)據(jù)的輸出 最后把排序將結果輸出數(shù)來后用 break 跳出循環(huán)程序結束 3 算法描述算法描述 4 結果分析結果分析 通過這程序感覺大大的簡化了曾經(jīng)的函數(shù)用法 這快速排序做的也不錯 整體 來說程序的可讀性 穩(wěn)定性都很好 感覺做的不錯 源代碼源代碼 include include define MAX 1000 define jh a b t a a b b t int t typedef struct int no length width ac ac all MAX int cmp const void a const void b 快 速 排 序 法 ac ac a ac a ac ac b ac b if ac a no ac b no if ac a length ac b length return ac a width ac b width else return ac a length ac b length else return ac a no ac b no int main while 1 int m i printf 請 問 你 要癮輸 入 幾 個 長 方 體 的 數(shù)簓據(jù) Y 阰 scanf d for i 0 i m i printf 請 以 此 輸 入 長 方 體 的 編括 號 長 度 長 度 用 空 格 分 開 a 回 車 表括 示 一 組哩 數(shù)簓據(jù) Y 輸 入 結 束 n scanf d d d if all i length all i width jh all i length all i width qsort all
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit 3 Where did you go(說課稿)-2023-2024學年人教PEP版英語六年級下冊
- Unit 6 Review Period 4 (說課稿)-2024-2025學年北師大版(三起)英語三年級上冊
- 《1、了解學習好習慣》(說課稿)-2024-2025學年二年級上冊綜合實踐活動魯科版
- 《10 交通安全小常識》(說課稿)-2023-2024學年四年級上冊綜合實踐活動長春版
- 23《梅蘭芳蓄須》說課稿2024-2025學年統(tǒng)編版語文四年級上冊
- 14《我要的是葫蘆》第一課時 說課稿-2024-2025學年語文二年級上冊統(tǒng)編版
- Unit5 The colourful world第三課時(說課稿)-2024-2025學年人教PEP版(2024)英語三年級上冊
- 2024-2025學年高中歷史 第四單元 工業(yè)文明沖擊下的改革 第12課 俄國農奴制改革(2)教學說課稿 岳麓版選修1
- 2025合同約定的“滯納金”是否可以視為違約金
- 2025建安施工合同文本
- 《自主神經(jīng)系統(tǒng)》課件
- 2025集團公司內部借款合同范本
- 2025年山西地質集團社會招聘高頻重點提升(共500題)附帶答案詳解
- 四川省綿陽市2025屆高三第二次診斷性考試思想政治試題(含答案)
- 2024-2025學年遼寧省沈陽市沈河區(qū)七年級(上)期末英語試卷(含答案)
- 2024-2025學年初中七年級上學期數(shù)學期末綜合卷(人教版)含答案
- T型引流管常見并發(fā)癥的預防及處理
- 2023高考語文文言文復習:《說苑》練習題(含答案解析)
- A320系列飛行訓練課程:電子飛行儀表系統(tǒng)概況
- 2020新版?zhèn)€人征信報告模板
- 東芝空調維修故障代碼匯總
評論
0/150
提交評論