C语言链表实现商品库存管理系统
简介
链表是一种常见的数据结构,优点是可以在任意位置插入或删除元素,而不影响链表中其他元素。因此,链表在一些需要频繁插入或删除元素的场景中非常适用,比如实现商品库存管理系统。
本文将使用C语言来实现链表,并借此来实现一个简单的商品库存管理系统。在该系统中,我们可以添加商品(包括名称、价格和数量),查看商品,删除商品,以及修改商品价格或数量信息。
实现步骤
第一步:定义商品结构体
首先,我们需要定义一个商品结构体,用于存储商品信息。在本例中,我们定义商品结构体包括名称(name)、价格(price)和数量(quantity)三个属性。
struct commodity {
char name[30];
float price;
int quantity;
struct commodity* next;
};
其中,我们使用了指向下一节点的指针next,这是链表结构中非常重要的一个概念。
第二步:实现链表操作
在实现链表前,我们需要定义链表操作所需要的函数,包括创建链表、添加商品、查看商品、删除商品和修改商品信息等功能。
这些函数的实现详见代码示例1。
第三步:测试示例
以添加商品和删除商品为例,我们可以编写测试代码来验证链表操作的正确性。
代码示例2展示了如何添加商品,在添加商品后,我们通过查看商品操作来验证链表中的商品是否被正确添加。
代码示例3展示了如何删除商品,在删除商品后,我们通过查看商品操作来验证链表中的商品是否被正确删除。
代码示例
示例1:链表操作函数实现
// 创建链表
struct commodity* create() {
struct commodity* head = NULL;
head = (struct commodity*)malloc(sizeof(struct commodity));
head->next = NULL;
return head;
}
// 添加商品
void add(struct commodity* head, char name[30], float price, int quantity) {
struct commodity* p = head;
while (p->next) {
p = p->next;
}
struct commodity* new_commodity = (struct commodity*)malloc(sizeof(struct commodity));
strcpy(new_commodity->name, name);
new_commodity->price = price;
new_commodity->quantity = quantity;
new_commodity->next = NULL;
p->next = new_commodity;
}
// 查看商品
void view(struct commodity* head) {
struct commodity* p = head->next;
printf("name\tprice\tquantity\n");
while (p) {
printf("%s\t%.2f\t%d\n", p->name, p->price, p->quantity);
p = p->next;
}
}
// 删除商品
void del(struct commodity* head, char name[30]) {
struct commodity* p = head;
while (p->next && strcmp(p->next->name, name)!=0) {
p = p->next;
}
if (p->next) {
struct commodity* del_commodity = p->next;
p->next = del_commodity->next;
free(del_commodity);
}
}
// 修改商品价格
void modify_price(struct commodity* head, char name[30], float new_price) {
struct commodity* p = head->next;
while (p && strcmp(p->name, name)!=0) {
p = p->next;
}
if (p) {
p->price = new_price;
}
}
// 修改商品数量
void modify_quantity(struct commodity* head, char name[30], int new_quantity) {
struct commodity* p = head->next;
while (p && strcmp(p->name, name)!=0) {
p = p->next;
}
if (p) {
p->quantity = new_quantity;
}
}
示例2:添加商品操作
struct commodity* head = create();
add(head, "apple", 3.00, 10);
add(head, "banana", 2.50, 20);
add(head, "orange", 4.00, 5);
view(head);
输出结果:
name price quantity
apple 3.00 10
banana 2.50 20
orange 4.00 5
示例3:删除商品操作
del(head, "banana");
view(head);
输出结果:
name price quantity
apple 3.00 10
orange 4.00 5
总结
本文简要介绍了如何使用C语言实现商品库存管理系统,其中的关键在于使用链表实现商品信息的存储、查看、删除和修改等操作。希望这篇文章能够帮助读者更好地理解链表的用法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言链表实现商品库存管理系统 - Python技术站