加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

C語言程序設計-書店管理系統(tǒng)

10/06 16:33
1562
服務支持:
技術交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術大咖們分享疑惑和經(jīng)驗、收獲成長和認同、領取優(yōu)惠和紅包等。

虛擬商品不可退

當前內(nèi)容為數(shù)字版權作品,購買后不支持退換且無法轉移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
放大
實物圖
相關方案
  • 方案介紹
  • 相關文件
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

簡易的書店管理系統(tǒng)

設計目的:

1. 提高分析問題、解決問題的能力以及實際動手能力。

2. 深入理解C語言中控制語句、數(shù)組、函數(shù)、指針、結構體等知識的滲透交互應用,提高用C語言解決實際問題的技術和能力。

3. 初步理解數(shù)據(jù)處理的一般方法,了解數(shù)據(jù)的讀取、處理、保存等技術。

4. 通過具體而微的圖書管理系統(tǒng),初步了解系統(tǒng)開發(fā)的一般過程、形式。了解并基本掌握結構化程序設計,加強對一個系統(tǒng)開發(fā)的整體把控能力。

設計環(huán)境:? DEV-C 5.0 / Visual C6.0

實驗項目及分析:

0. 前言

軟件開發(fā)流程(Software development process)即軟件設計思路和方法的一般過程,包括設計軟件的功能和實現(xiàn)的算法和方法、軟件的總體結構設計和模塊設計、編程和調試、程序聯(lián)調和測試以及編寫、提交程序(請同學們查閱軟件開發(fā)流程的相關文獻)。

作為一個小系統(tǒng),本實驗的開發(fā)過程大致包括:功能(需求)分析、系統(tǒng)設計、編程實現(xiàn)和調試、測試、提交程序和相關文檔。

1. 功能(需求)分析

?????? 書店為了能實現(xiàn)日常的經(jīng)營,經(jīng)常涉及到到事物及應該具有的功能是:圖書入庫(進書采購時)、圖書銷售、查看圖書的庫存情況(清單)、圖書刪除、數(shù)據(jù)保存、數(shù)據(jù)備份等功能。

在現(xiàn)實中的商店,商品都具有一個條形碼,用來唯一識別商品種類。這是一個重要的數(shù)據(jù)信息,對于圖書來說,就是ISBN號,現(xiàn)實商店中都用條碼閱讀器來閱讀,本實驗中條件所限,使用鍵盤輸入書號來模擬條碼閱讀器。下圖是數(shù)據(jù)流動示意圖:

由圖中可見,所有的功能操作都圍繞著bk數(shù)組作為數(shù)據(jù)基礎,數(shù)組bk的數(shù)據(jù)來自文件bookdata.txt,bk數(shù)組數(shù)據(jù)的變化,最終也要保存在該文件。

2. 系統(tǒng)設計

?????? 2.0 涉及到的數(shù)據(jù)結構

  1. 圖書信息數(shù)據(jù)類型,采用結構體,包含了書號、書名、作者、單價、庫存數(shù)量等核心信息:

typedef struct

{char isbn[10];? ??? /*書號*/

char bkName[20];??? ??? /*書名*/

char author[10];??? ??? /*作者*/

float price; ?? ??? ??? /*單價*/

int num;??? ??? ??? ??? /*數(shù)量(單位:冊)*/

} Book;

  1. 最大數(shù)組長度,實驗中設置為2000;

#define MAXNUM 2000

  1. 圖書數(shù)據(jù)庫,用Book類型的數(shù)組bk保存,每個數(shù)組單元代表一種圖書,退出系統(tǒng)時應該把數(shù)組中的數(shù)據(jù)保存在文件bookdata.txt中,啟動程序時數(shù)組從文件中讀取數(shù)據(jù)。數(shù)組設置為全局數(shù)組:

BOOK bk[MANUM];

  1. 圖書種類數(shù)量,為全局變量,退出系統(tǒng)時應該保存在文件中:

int bookNum =0;? /*不同圖書的數(shù)量,初始值為0*/

2.1 圖書入庫(采購):

采購后,把采購的圖書數(shù)據(jù)輸入到系統(tǒng):讀取條形碼(ISBN號),如果該書已經(jīng)存在(書號已經(jīng)在數(shù)據(jù)庫也就是bk數(shù)組),直接顯示該圖書信息,輸入數(shù)量后,修改書庫中的圖書數(shù)量;如果書號不在書庫,則錄入該圖書詳細信息,并添加信息到書庫bk數(shù)組。

相關函數(shù)原型:void purchase ()

2.2 圖書銷售:

如果顧客將購買某本書,營業(yè)員讀取條形碼(ISBN號),系統(tǒng)會告知該書是否在庫存清單中,如果不在,顯示適當?shù)奶崾拘畔?;如果在,系統(tǒng)顯示該書的詳細信息并詢問所需的冊數(shù)。如果庫存書的冊數(shù)不足,顯示相應的銷售失敗的提示信息;冊數(shù)足夠則顯示這些書的總價格,此時銷售成功,在書庫中的冊數(shù)減去銷售的冊數(shù)。

相關函數(shù)原型:void sale()

2.3 圖書列表:

顯示庫存中現(xiàn)有的圖書,每20行暫停,主要用于查看和測試。

相關函數(shù)原型:void list()

2.4 打開和保存數(shù)據(jù)文件:

所有圖書相關信息都可以保存在磁盤文件(data.txt)上,程序開始后,先從數(shù)據(jù)文件讀取數(shù)據(jù)(到數(shù)組),以數(shù)組為中心進行圖書進、銷等操作;所有操作結束后,退出程序時必須把數(shù)組數(shù)據(jù)保存回磁盤文件,并把原數(shù)據(jù)文件作為備份文件data.bak。

相關函數(shù)原型:void readData(),從文件讀取數(shù)據(jù)到bk數(shù)組。

void saveData()? 保存bk數(shù)組的數(shù)據(jù)到文件,同時備份舊文件。

2.5 友好的界面:

要求有友好的操作界面,以上功能都能在界面中以適當?shù)男问襟w現(xiàn)并方便地操作。

相關函數(shù)原型:? int showSel():清屏并顯示功能選項并返回選項的序號。

2.6 文件結構:

前兩字節(jié)存放記錄個數(shù)(即不同書的數(shù)量bookNum),這兩個字節(jié)之后的內(nèi)容是每個不同的書具體信息記錄(即用來存放bk數(shù)組的所有有效數(shù)據(jù))

2.7 可以自由發(fā)揮,實現(xiàn)其他相關功能,比如圖書查詢等。(該部分請根據(jù)自己的設計進行完善,文字可自行修改)

2.8圖書查詢:

如果顧客需要通過書號、書名、作者、價格....等查詢圖書的相關信息;我們要根據(jù)客戶需求去查詢相關信息;通過書號查詢看書庫中是否存在該圖書,然后顯示相關信息;通過書名查詢書庫中的圖書,還可以通過查詢作者看該作者的圖書信息等。

相關函數(shù)原型:void find()

void isbnFind()

void bkNameFind()

void authorFind()

void priceFind()

??? 2.9圖書刪除:

?通過查詢書號刪除書庫中一些圖書的信息;使得這些刪除的圖書不在圖書列表中顯示。

相關函數(shù)原型:void Delete()

  • 有需要資料的可了解一下.docx

相關推薦

電子產(chǎn)業(yè)圖譜