用c语言编写一个超市商品顺序表管理系统,(50分)要求: (1) 能够实现商品顺序表的初始化; (2) 能够对顺序表商品信息在特定位置进行插入; (3) 能够对顺序表商品信息进行删除; (4) 能够对顺序表商品信息进行定位
时间: 2024-09-24 21:08:43 浏览: 26
为了创建一个简单的超市商品顺序表管理系统,我们可以使用C语言的基本结构体、数组和函数来实现。首先,定义一个结构体来表示商品:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义商品结构体
typedef struct {
char name[50];
float price;
} Product;
// 初始化顺序表
void initProductList(Product* list, int size) {
for (int i = 0; i < size; i++) {
list[i].name[0] = '\0';
list[i].price = 0.0f;
}
}
// 插入商品到指定位置
void insertProduct(Product* list, int index, const char* name, float price) {
if (index < 0 || index > sizeof(list)) {
printf("Invalid index.\n");
return;
}
// 避免数组越界
memmove(&list[index + 1], &list[index], sizeof(Product) * (sizeof(list) - index));
strncpy(list[index].name, name, sizeof(list[index].name));
list[index].price = price;
}
// 删除商品
void deleteProduct(Product* list, int index) {
if (index < 0 || index >= sizeof(list)) {
printf("Invalid index.\n");
return;
}
memmove(&list[index], &list[index + 1], sizeof(Product) * (sizeof(list) - index - 1));
}
// 查找商品并返回其索引(若不存在则返回-1)
int locateProduct(Product* list, const char* name) {
for (int i = 0; i < sizeof(list); i++) {
if (strcmp(list[i].name, name) == 0) {
return i;
}
}
return -1;
}
// 测试用法
int main() {
Product products[5]; // 假设我们有一个包含5个元素的商品列表
initProductList(products, 5);
insertProduct(products, 0, "苹果", 3.99);
insertProduct(products, 2, "牛奶", 4.50);
int loc = locateProduct(products, "牛奶");
if (loc != -1) {
printf("牛奶位于索引 %d\n", loc);
} else {
printf("牛奶未找到。\n");
}
deleteProduct(products, 1); // 删除牛奶
return 0;
}
```
这个程序实现了商品顺序表的初始化、插入、删除以及查找功能。请注意,这是一个简化的版本,实际应用可能会需要更完善的错误处理和边界检查。
阅读全文