c语言编写的商品销售系统

根据给定的信息,我们可以将这个基于C语言的商品销售系统的核心功能和实现细节归纳为以下知识点: ### 一、系统概述 该系统是一个基于C语言开发的简单商品销售管理系统,主要功能包括商品信息的录入、查询、修改、删除以及新商品的入库登记。系统通过结构体数组来存储和管理商品信息,利用链表数据结构实现动态内存分配。 ### 二、商品信息数据结构定义 #### 结构体定义 ```c struct fun /* 商品信息结构体 */ { int code; /* 商品编号 */ char name[15]; /* 商品名称 */ float price; /* 单价 */ int num; /* 库存数量 */ struct fun *next; /* 指向下一个商品的指针 */ }; ``` #### 变量声明 - `n`:用于记录当前已录入商品的数量。 - `head`:指向商品链表头部的指针。 ### 三、系统功能模块 #### 1. 录入商品信息 (函数 `creat()`) 该功能允许用户输入商品的各项属性,包括编号、名称、单价和库存数量,并将其存储到链表中。具体实现逻辑如下: - 动态分配内存空间创建新的商品节点。 - 循环提示用户输入商品信息,直至用户输入编号为0为止。 - 新的商品节点被插入到链表末尾。 - 最后一个节点的 `next` 指针设为 `NULL` 表示链表结束。 #### 2. 查询商品信息 (未给出完整代码) - 用户可以选择按照编号、名称、类别、供货商或产地等条件进行查询。 - 实现时可能需要遍历整个链表来查找符合条件的商品。 - 查找结果输出到屏幕。 #### 3. 修改和删除商品信息 (函数 `del()`) - 删除功能允许用户指定要删除的商品编号,然后从链表中移除对应的节点。 - 修改功能可能需要先调用查询功能找到目标商品,再更新其信息。 - 需要特别注意的是,删除操作需要调整链表中的指针关系,确保链表结构的完整性不受破坏。 #### 4. 入库登记 (函数 `sell()` 部分给出) - 用户可以输入商品编号和购买数量来进行商品销售。 - 销售过程中会计算总金额并显示给用户确认。 - 销售完成后需要更新商品库存数量。 ### 四、代码实现细节 #### 示例:创建商品链表 ```c void creat() /* 创建商品信息链表 */ { struct fun *p1, *p2; n = 0; p1 = p2 = (struct fun *)malloc(sizeof(struct fun)); /* 创建第一个商品节点 */ head = p1; printf("*** 商品录入系统 ***\n"); printf("------------------------------------------\n"); loop: { printf("录入第 %d 项\n", n + 1); printf("编号 : "); scanf("%d", &p1->code); printf("名称 : "); scanf("%s", p1->name); printf("单价 (元) : "); scanf("%f", &p1->price); printf("库存 : "); scanf("%d", &p1->num); } while (p1->code != 0) { n = n + 1; if (n == 1) head = p1; else p2->next = p1; /* 将新节点连接到链表上 */ p2 = p1; /* 更新前一个节点指针 */ p1 = (struct fun *)malloc(sizeof(struct fun)); /* 分配新节点 */ goto loop; } p2->next = NULL; /* 链表尾部设置为空 */ } ``` ### 五、系统运行流程 1. **初始化**:创建链表头结点并初始化变量。 2. **录入商品信息**:通过 `creat()` 函数录入商品信息到链表中。 3. **显示所有商品信息**:通过 `print()` 函数遍历链表并将商品信息输出。 4. **删除商品信息**:通过 `del()` 函数根据商品编号删除指定商品。 5. **销售商品**:通过 `sell()` 函数处理商品销售逻辑,包括查询商品、计算总价和更新库存等。 以上就是该商品销售系统的详细知识点总结,包括系统设计思路、核心功能模块及其实现方式等方面的内容。












#include <malloc.h>
#define NULL 0
#define LEN sizeof(struct fun)
struct fun /*声明有关产品信息的结构体类型*/
{
int code; /*编 号*/
char name[15]; /*品 名*/
float price; /*单 价*/
int num; /*数 量*/
struct fun * next; /*运用指针处理链表*/
};
int n; /*记录链表有几条数据*/
struct fun *head; /*声明链表头的指针并设置为全局变量*/
void creat() /*输入商品信息的函数*/
{
struct fun *p1,*p2;
n=0;
p1=p2=(struct fun *)malloc(LEN); /*开辟一个新单元存放信息*/
head=p1;
printf(" ***商品录入系统***\n");
printf("------------------------------------------\n");
loop:
{printf("录入号:%d\n",n+1);
printf("编 码-------:");
scanf("%d",&p1->code);
printf("商品名称----:");
printf("单 价(元)---:");
scanf("%f",&p1->price);
printf("数 量-------:");
scanf("%d",&p1->num);
}
while(p1->code!=0)
{
n=n+1;
if(n==1) head=p1;
else p2->next=p1; /*p1所指向的结点连接到表尾*/
p2=p1; /*p2指向表尾*/
p1=(struct fun *)malloc(LEN); /*开辟一个新空间使p1指向它*/
goto loop;
}
p2->next=NULL;
}
void print() /*输出商品信息的函数*/
{
struct fun *p;
printf(" * * * 库存中的商品如下 * * *\n");
printf ("-----------------------------------------------------\n");
printf("--编 号--||--品 名--||--单 价--||--数 量--|| \n");
p=head;
if(head!=NULL)
do
{
剩余6页未读,继续阅读

- ljb199212112014-04-10很好,很有用。

- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 可进行变形操作的卷积神经网络模型
- 技校机械制图和AutoCAD课程整合.doc
- 面向对象程序设计方案基本概念.doc
- PLC在恒压供水系统中的应用(1).doc
- 论文-大学生网络求职调查研究.doc
- 外汇会计网络处理系统项目可行性研究报告.doc
- JME的Java游戏扑克豪斯的开发毕业设计方案论文.doc
- 基于深度学习神经网络协同过滤模型的视频推荐系统构建(Python3.10/Tensorflow2.11)
- 大二层扁平化网络概述-云实施.docx
- 中小学信息技术创新与实践活动(动画制作项目管理介绍).doc
- JAVA的餐饮管理.doc
- 长春“三路三桥”建设工程可研编制项目管理综述.doc
- 高中生物教学与信息化技术的整合分析.docx
- 集团客户业务方案及验收测试方案互联网专线分册.doc
- 免费自动送料小车设计方案(菱PLC控制).doc
- 物联网+智能回收模式下校园垃圾分类研究.docx


