c语言物资信息管理系统
时间: 2023-05-28 10:04:47 浏览: 61
物资信息管理系统是一个用于管理物资信息的软件系统,可以实现对物资信息的录入、查询、修改和删除等功能。下面是一个简单的C语言物资信息管理系统的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//定义物资信息结构体
typedef struct {
char name[20]; //物资名称
float price; //价格
int quantity; //数量
} Material;
//定义物资信息链表节点结构体
typedef struct MaterialNode {
Material material; //物资信息
struct MaterialNode *next; //指向下一个节点的指针
} MaterialNode;
//定义物资信息链表结构体
typedef struct {
MaterialNode *head; //链表头指针
int size; //链表大小
} MaterialList;
//初始化物资信息链表
void initMaterialList(MaterialList *list) {
list->head = NULL;
list->size = 0;
}
//添加物资信息到链表末尾
void addMaterial(MaterialList *list, Material material) {
//创建新节点
MaterialNode *node = (MaterialNode *)malloc(sizeof(MaterialNode));
node->material = material;
node->next = NULL;
//将新节点添加到链表末尾
if (list->head == NULL) {
list->head = node;
} else {
MaterialNode *p = list->head;
while (p->next != NULL) {
p = p->next;
}
p->next = node;
}
//更新链表大小
list->size++;
}
//根据物资名称查找物资信息
Material *findMaterial(MaterialList *list, const char *name) {
MaterialNode *p = list->head;
while (p != NULL) {
if (strcmp(p->material.name, name) == 0) {
return &(p->material);
}
p = p->next;
}
return NULL;
}
//根据物资名称删除物资信息
void removeMaterial(MaterialList *list, const char *name) {
MaterialNode *p = list->head;
MaterialNode *prev = NULL;
while (p != NULL) {
if (strcmp(p->material.name, name) == 0) {
if (prev == NULL) {
list->head = p->next;
} else {
prev->next = p->next;
}
free(p);
list->size--;
return;
}
prev = p;
p = p->next;
}
}
//输出物资信息列表
void printMaterialList(MaterialList *list) {
printf("物资名称\t价格\t数量\n");
MaterialNode *p = list->head;
while (p != NULL) {
printf("%s\t\t%.2f\t%d\n", p->material.name, p->material.price, p->material.quantity);
p = p->next;
}
}
int main() {
MaterialList list;
initMaterialList(&list);
//添加物资信息
Material m1 = {"铁锤", 12.5, 10};
Material m2 = {"斧头", 18.8, 8};
Material m3 = {"钢筋", 23.4, 15};
addMaterial(&list, m1);
addMaterial(&list, m2);
addMaterial(&list, m3);
//输出物资信息列表
printMaterialList(&list);
//查找物资信息
Material *m = findMaterial(&list, "铁锤");
if (m != NULL) {
printf("查找到物资信息:\n");
printf("物资名称:%s\n", m->name);
printf("价格:%.2f\n", m->price);
printf("数量:%d\n", m->quantity);
} else {
printf("未找到该物资信息!\n");
}
//删除物资信息
removeMaterial(&list, "斧头");
//输出物资信息列表
printMaterialList(&list);
return 0;
}
```
该示例代码实现了物资信息的录入、查询、修改和删除等功能,使用了链表来存储物资信息。在实际开发中,可以根据需要添加其他功能,例如排序、统计等。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)