用c语言写一个物流管理系统
时间: 2023-11-18 22:04:20 浏览: 145
好的,物流管理系统一般包含以下功能:
1. 商品信息管理:包括商品名称、价格、库存等信息的录入、修改、查询和删除。
2. 订单管理:包括订单的录入、修改、查询和删除,以及订单状态的更新等功能。
3. 物流配送管理:包括配送员信息的录入、修改、查询和删除,以及订单的分配和配送状态的更新等功能。
4. 用户信息管理:包括用户的注册、登录、信息修改和查询等功能。
5. 数据统计和分析:包括商品销售量、订单数量、用户活跃度等数据的统计和分析。
下面是一个简单的物流管理系统的代码,供参考:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 商品结构体
typedef struct {
int id; // 商品编号
char name[20]; // 商品名称
float price; // 商品价格
int stock; // 商品库存
} Product;
// 订单结构体
typedef struct {
int id; // 订单编号
int pid; // 商品编号
int uid; // 用户编号
int status; // 订单状态,0表示未发货,1表示已发货
} Order;
// 用户结构体
typedef struct {
int id; // 用户编号
char name[20]; // 用户名称
char password[20]; // 用户密码
} User;
// 配送员结构体
typedef struct {
int id; // 配送员编号
char name[20]; // 配送员名称
} Deliveryman;
// 商品列表
Product products[100];
int num_products = 0;
// 订单列表
Order orders[100];
int num_orders = 0;
// 用户列表
User users[100];
int num_users = 0;
// 配送员列表
Deliveryman deliverymen[100];
int num_deliverymen = 0;
// 显示菜单
void show_menu() {
printf("1. 商品管理\n");
printf("2. 订单管理\n");
printf("3. 物流配送管理\n");
printf("4. 用户管理\n");
printf("5. 数据统计和分析\n");
printf("0. 退出\n");
}
// 商品管理
void product_management() {
int choice;
do {
printf("商品管理\n");
printf("1. 商品录入\n");
printf("2. 商品修改\n");
printf("3. 商品查询\n");
printf("4. 商品删除\n");
printf("0. 返回\n");
printf("请选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
// 商品录入
printf("请输入商品信息:\n");
printf("商品名称:");
scanf("%s", products[num_products].name);
printf("商品价格:");
scanf("%f", &products[num_products].price);
printf("商品库存:");
scanf("%d", &products[num_products].stock);
products[num_products].id = num_products + 1;
num_products++;
printf("商品录入成功!\n");
break;
case 2:
// 商品修改
printf("请输入要修改的商品编号:");
int id;
scanf("%d", &id);
int i;
for (i = 0; i < num_products; i++) {
if (products[i].id == id) {
printf("商品名称:%s\n", products[i].name);
printf("商品价格:%f\n", products[i].price);
printf("商品库存:%d\n", products[i].stock);
printf("请输入新的商品信息:\n");
printf("商品名称:");
scanf("%s", products[i].name);
printf("商品价格:");
scanf("%f", &products[i].price);
printf("商品库存:");
scanf("%d", &products[i].stock);
printf("商品修改成功!\n");
break;
}
}
if (i == num_products) {
printf("商品不存在!\n");
}
break;
case 3:
// 商品查询
printf("请输入要查询的商品名称:");
char name[20];
scanf("%s", name);
for (i = 0; i < num_products; i++) {
if (strcmp(products[i].name, name) == 0) {
printf("商品编号:%d\n", products[i].id);
printf("商品价格:%f\n", products[i].price);
printf("商品库存:%d\n", products[i].stock);
break;
}
}
if (i == num_products) {
printf("商品不存在!\n");
}
break;
case 4:
// 商品删除
printf("请输入要删除的商品编号:");
scanf("%d", &id);
for (i = 0; i < num_products; i++) {
if (products[i].id == id) {
int j;
for (j = i; j < num_products - 1; j++) {
products[j] = products[j + 1];
}
num_products--;
printf("商品删除成功!\n");
break;
}
}
if (i == num_products) {
printf("商品不存在!\n");
}
break;
case 0:
// 返回
break;
default:
printf("输入有误,请重新输入!\n");
break;
}
} while (choice != 0);
}
// 订单管理
void order_management() {
int choice;
do {
printf("订单管理\n");
printf("1. 订单录入\n");
printf("2. 订单修改\n");
printf("3. 订单查询\n");
printf("4. 订单删除\n");
printf("0. 返回\n");
printf("请选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
// 订单录入
printf("请输入订单信息:\n");
printf("商品编号:");
int pid;
scanf("%d", &pid);
printf("用户编号:");
int uid;
scanf("%d", &uid);
orders[num_orders].id = num_orders + 1;
orders[num_orders].pid = pid;
orders[num_orders].uid = uid;
orders[num_orders].status = 0;
num_orders++;
printf("订单录入成功!\n");
break;
case 2:
// 订单修改
printf("请输入要修改的订单编号:");
int id;
scanf("%d", &id);
int i;
for (i = 0; i < num_orders; i++) {
if (orders[i].id == id) {
printf("订单商品编号:%d\n", orders[i].pid);
printf("订单用户编号:%d\n", orders[i].uid);
printf("订单状态:%d\n", orders[i].status);
printf("请输入新的订单信息:\n");
printf("商品编号:");
scanf("%d", &orders[i].pid);
printf("用户编号:");
scanf("%d", &orders[i].uid);
printf("订单状态:");
scanf("%d", &orders[i].status);
printf("订单修改成功!\n");
break;
}
}
if (i == num_orders) {
printf("订单不存在!\n");
}
break;
case 3:
// 订单查询
printf("请输入要查询的订单编号:");
scanf("%d", &id);
for (i = 0; i < num_orders; i++) {
if (orders[i].id == id) {
printf("订单商品编号:%d\n", orders[i].pid);
printf("订单用户编号:%d\n", orders[i].uid);
printf("订单状态:%d\n", orders[i].status);
break;
}
}
if (i == num_orders) {
printf("订单不存在!\n");
}
break;
case 4:
// 订单删除
printf("请输入要删除的订单编号:");
scanf("%d", &id);
for (i = 0; i < num_orders; i++) {
if (orders[i].id == id) {
int j;
for (j = i; j < num_orders - 1; j++) {
orders[j] = orders[j + 1];
}
num_orders--;
printf("订单删除成功!\n");
break;
}
}
if (i == num_orders) {
printf("订单不存在!\n");
}
break;
case 0:
// 返回
break;
default:
printf("输入有误,请重新输入!\n");
break;
}
} while (choice != 0);
}
// 物流配送管理
void delivery_management() {
int choice;
do {
printf("物流配送管理\n");
printf("1. 配送员录入\n");
printf("2. 订单分配\n");
printf("3. 订单配送更新\n");
printf("0. 返回\n");
printf("请选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
// 配送员录入
printf("请输入配送员名称:");
scanf("%s", deliverymen[num_deliverymen].name);
deliverymen[num_deliverymen].id = num_deliverymen + 1;
num_deliverymen++;
printf("配送员录入成功!\n");
break;
case 2:
// 订单分配
printf("请输入要分配的订单编号:");
int id;
scanf("%d", &id);
int i;
for (i = 0; i < num_orders; i++) {
if (orders[i].id == id) {
printf("请选择配送员:\n");
int j;
for (j = 0; j < num_deliverymen; j++) {
printf("%d. %s\n", deliverymen[j].id, deliverymen[j].name);
}
int did;
scanf("%d", &did);
orders[i].status = 1;
printf("订单分配成功!\n");
break;
}
}
if (i == num_orders) {
printf("订单不存在!\n");
}
break;
case 3:
// 订单配送更新
printf("请输入要更新的订单编号:");
scanf("%d", &id);
for (i = 0; i < num_orders; i++) {
if (orders[i].id == id) {
if (orders[i].status == 0) {
printf("订单未分配配送员!\n");
} else {
printf("订单配送员编号:%d\n", orders[i].uid);
printf("请输入新的配送员编号:");
int did;
scanf("%d", &did);
orders[i].uid = did;
printf("订单配送更新成功!\n");
}
break;
}
}
if (i == num_orders) {
printf("订单不存在!\n");
}
break;
case 0:
// 返回
break;
default:
printf("输入有误,请重新输入!\n");
break;
}
} while (choice != 0);
}
// 用户管理
void user_management() {
int choice;
do {
printf("用户管理\n");
printf("1. 用户注册\n");
printf("2. 用户登录\n");
printf("3. 用户信息修改\n");
printf("4. 用户信息查询\n");
printf("0. 返回\n");
printf("请选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
// 用户注册
printf("请输入用户名:");
scanf("%s", users[num_users].name);
printf("请输入密码:");
scanf("%s", users[num_users].password);
users[num_users].id = num_users + 1;
num_users++;
printf("用户注册成功!\n");
break;
case 2:
// 用户登录
printf("请输入用户名:");
char name[20];
scanf("%s", name);
printf("请输入密码:");
char password[20];
scanf("%s", password);
int i;
for (i = 0; i < num_users; i++) {
if (strcmp(users[i].name, name) == 0 && strcmp(users[i].password, password) == 0) {
printf("用户登录成功!\n");
break;
}
}
if (i == num_users) {
printf("用户名或密码错误!\n");
}
break;
case 3:
// 用户信息修改
printf("请输入要修改的用户编号:");
int id;
scanf("%d", &id);
int i;
for (i = 0; i < num_users; i++) {
if (users[i].id == id) {
printf("用户名称:%s\n", users[i].name);
printf("用户密码:%s\n", users[i].password);
printf("请输入新的用户信息:\n");
printf("用户名称:");
scanf("%s", users[i].name);
printf("用户密码:");
scanf("%s", users[i].password);
printf("用户信息修改成功!\n");
break;
}
}
if (i == num_users) {
printf("用户不存在!\n");
}
break;
case 4:
// 用户信息查询
printf("请输入要查询的用户名称:");
char name2[20];
scanf("%s", name2);
for (i = 0; i < num_users; i++) {
if (strcmp(users[i].name, name2) == 0) {
printf("用户编号:%d\n", users[i].id);
printf("用户密码:%s\n", users[i].password);
break;
}
}
if (i == num_users) {
printf("用户不存在!\n");
}
break;
case 0:
// 返回
break;
default:
printf("输入有误,请重新输入!\n");
break;
}
} while (choice != 0);
}
// 数据统计和分析
void data_analysis() {
printf("商品数量:%d\n", num_products);
printf("订单数量:%d\n", num_orders);
printf("用户数量:%d\n", num_users);
}
int main() {
int choice;
do {
show_menu();
printf("请选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
// 商品管理
product_management();
break;
case 2:
// 订单管理
order_management();
break;
case 3:
// 物流配送管理
delivery_management();
break;
case 4:
// 用户管理
user_management();
break;
case 5:
// 数据统计和分析
data_analysis();
break;
case 0:
// 退出
printf("谢谢使用!\n");
break;
default:
printf("输入有误,请重新输入!\n");
break;
}
} while (choice != 0);
return 0;
}
```
这个代码只是一个简单的示例,可以根据实际需求进行修改和完善。
阅读全文