加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

C语言程序设计-书店管理系统

10/06 16:33
1004
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
实物图
相关方案
  • 方案介绍
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

简易的书店管理系统

设计目的:

1. 提高分析问题、解决问题的能力以及实际动手能力。

2. 深入理解C语言中控制语句、数组、函数、指针、结构体等知识的渗透交互应用,提高用C语言解决实际问题的技术和能力。

3. 初步理解数据处理的一般方法,了解数据的读取、处理、保存等技术。

4. 通过具体而微的图书管理系统,初步了解系统开发的一般过程、形式。了解并基本掌握结构化程序设计,加强对一个系统开发的整体把控能力。

设计环境DEV-C 5.0 / Visual C6.0

实验项目及分析:

0. 前言

软件开发流程(Software development process)即软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序(请同学们查阅软件开发流程的相关文献)。

作为一个小系统,本实验的开发过程大致包括:功能(需求)分析、系统设计、编程实现和调试、测试、提交程序和相关文档。

1. 功能(需求)分析

       书店为了能实现日常的经营,经常涉及到到事物及应该具有的功能是:图书入库(进书采购时)、图书销售、查看图书的库存情况(清单)、图书删除、数据保存、数据备份等功能。

在现实中的商店,商品都具有一个条形码,用来唯一识别商品种类。这是一个重要的数据信息,对于图书来说,就是ISBN号,现实商店中都用条码阅读器来阅读,本实验中条件所限,使用键盘输入书号来模拟条码阅读器。下图是数据流动示意图:

由图中可见,所有的功能操作都围绕着bk数组作为数据基础,数组bk的数据来自文件bookdata.txt,bk数组数据的变化,最终也要保存在该文件。

2. 系统设计

       2.0 涉及到的数据结构

  1. 图书信息数据类型,采用结构体,包含了书号、书名、作者、单价、库存数量等核心信息:

typedef struct

{char isbn[10];      /*书号*/

char bkName[20];        /*书名*/

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

float price;            /*单价*/

int num;                /*数量(单位:册)*/

} Book;

  1. 最大数组长度,实验中设置为2000;

#define MAXNUM 2000

  1. 图书数据库,用Book类型的数组bk保存,每个数组单元代表一种图书,退出系统时应该把数组中的数据保存在文件bookdata.txt中,启动程序时数组从文件中读取数据。数组设置为全局数组:

BOOK bk[MANUM];

  1. 图书种类数量,为全局变量,退出系统时应该保存在文件中:

int bookNum =0;  /*不同图书的数量,初始值为0*/

2.1 图书入库(采购):

采购后,把采购的图书数据输入到系统:读取条形码(ISBN号),如果该书已经存在(书号已经在数据库也就是bk数组),直接显示该图书信息,输入数量后,修改书库中的图书数量;如果书号不在书库,则录入该图书详细信息,并添加信息到书库bk数组。

相关函数原型:void purchase ()

2.2 图书销售:

如果顾客将购买某本书,营业员读取条形码(ISBN号),系统会告知该书是否在库存清单中,如果不在,显示适当的提示信息;如果在,系统显示该书的详细信息并询问所需的册数。如果库存书的册数不足,显示相应的销售失败的提示信息;册数足够则显示这些书的总价格,此时销售成功,在书库中的册数减去销售的册数。

相关函数原型:void sale()

2.3 图书列表:

显示库存中现有的图书,每20行暂停,主要用于查看和测试。

相关函数原型:void list()

2.4 打开和保存数据文件:

所有图书相关信息都可以保存在磁盘文件(data.txt)上,程序开始后,先从数据文件读取数据(到数组),以数组为中心进行图书进、销等操作;所有操作结束后,退出程序时必须把数组数据保存回磁盘文件,并把原数据文件作为备份文件data.bak。

相关函数原型:void readData(),从文件读取数据到bk数组。

void saveData()  保存bk数组的数据到文件,同时备份旧文件。

2.5 友好的界面:

要求有友好的操作界面,以上功能都能在界面中以适当的形式体现并方便地操作。

相关函数原型:  int showSel():清屏并显示功能选项并返回选项的序号。

2.6 文件结构:

前两字节存放记录个数(即不同书的数量bookNum),这两个字节之后的内容是每个不同的书具体信息记录(即用来存放bk数组的所有有效数据)

2.7 可以自由发挥,实现其他相关功能,比如图书查询等。(该部分请根据自己的设计进行完善,文字可自行修改)

2.8图书查询:

如果顾客需要通过书号、书名、作者、价格....等查询图书的相关信息;我们要根据客户需求去查询相关信息;通过书号查询看书库中是否存在该图书,然后显示相关信息;通过书名查询书库中的图书,还可以通过查询作者看该作者的图书信息等。

相关函数原型:void find()

void isbnFind()

void bkNameFind()

void authorFind()

void priceFind()

    2.9图书删除:

 通过查询书号删除书库中一些图书的信息;使得这些删除的图书不在图书列表中显示。

相关函数原型:void Delete()

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

相关推荐

电子产业图谱