用c语言并使用数据结构编写一个商品信息管理系统
时间: 2024-02-19 13:57:59 浏览: 18
好的,下面是一个简单的商品信息管理系统的C语言代码示例,使用链表作为数据结构:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LEN 50
#define MAX_DESC_LEN 100
#define MAX_PRICE_LEN 10
typedef struct Product {
char name[MAX_NAME_LEN];
char description[MAX_DESC_LEN];
float price;
struct Product* next;
} Product;
Product* head = NULL;
void addProduct(char* name, char* description, float price) {
Product* newProd = (Product*) malloc(sizeof(Product));
strcpy(newProd->name, name);
strcpy(newProd->description, description);
newProd->price = price;
newProd->next = NULL;
if (head == NULL) {
head = newProd;
} else {
Product* currProd = head;
while (currProd->next != NULL) {
currProd = currProd->next;
}
currProd->next = newProd;
}
printf("Product %s added successfully.\n", name);
}
void removeProduct(char* name) {
if (head == NULL) {
printf("No products to remove.\n");
return;
}
Product* currProd = head;
Product* prevProd = NULL;
while (currProd != NULL) {
if (strcmp(currProd->name, name) == 0) {
if (prevProd == NULL) {
head = currProd->next;
} else {
prevProd->next = currProd->next;
}
free(currProd);
printf("Product %s removed successfully.\n", name);
return;
}
prevProd = currProd;
currProd = currProd->next;
}
printf("Product %s not found.\n", name);
}
void displayProducts() {
if (head == NULL) {
printf("No products to display.\n");
return;
}
Product* currProd = head;
while (currProd != NULL) {
printf("Name: %s\n", currProd->name);
printf("Description: %s\n", currProd->description);
printf("Price: %0.2f\n", currProd->price);
printf("\n");
currProd = currProd->next;
}
}
int main() {
int choice;
char name[MAX_NAME_LEN];
char description[MAX_DESC_LEN];
char priceStr[MAX_PRICE_LEN];
float price;
while (1) {
printf("1. Add product\n");
printf("2. Remove product\n");
printf("3. Display products\n");
printf("4. Exit\n");
printf("Enter choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Enter name: ");
scanf("%s", name);
printf("Enter description: ");
scanf("%s", description);
printf("Enter price: ");
scanf("%s", priceStr);
price = atof(priceStr);
addProduct(name, description, price);
break;
case 2:
printf("Enter name: ");
scanf("%s", name);
removeProduct(name);
break;
case 3:
displayProducts();
break;
case 4:
exit(0);
default:
printf("Invalid choice.\n");
}
printf("\n");
}
return 0;
}
```
该系统具有以下功能:
1. 添加产品
2. 删除产品
3. 显示产品列表
4. 退出系统
您可以根据自己的需求对代码进行修改和优化。