C语言超市销售管理系统的代码
时间: 2023-08-18 10:18:44 浏览: 75
由于超市销售管理系统是一个比较复杂的软件系统,代码量较大,因此我提供一个简单的代码示例,仅供参考。
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义商品结构体
struct Commodity {
char id[10]; // 商品编号
char name[20]; // 商品名称
float price; // 商品价格
int stock; // 商品库存
};
// 定义订单结构体
struct Order {
char id[10]; // 订单编号
char date[20]; // 订单日期
char commodityId[10]; // 商品编号
int quantity; // 商品数量
};
// 定义库存结构体
struct Stock {
char id[10]; // 商品编号
int stock; // 商品库存
};
// 定义全局变量
struct Commodity commodities[100]; // 商品数组
struct Order orders[100]; // 订单数组
struct Stock stocks[100]; // 库存数组
int commodityCount = 0; // 商品数量
int orderCount = 0; // 订单数量
int stockCount = 0; // 库存数量
// 读取商品文件
void readCommodityFile() {
FILE* fp;
fp = fopen("commodity.dat", "rb");
if (fp == NULL) {
return;
}
while (fread(&commodities[commodityCount], sizeof(struct Commodity), 1, fp) == 1) {
commodityCount++;
}
fclose(fp);
}
// 写入商品文件
void writeCommodityFile() {
FILE* fp;
fp = fopen("commodity.dat", "wb");
if (fp == NULL) {
return;
}
fwrite(commodities, sizeof(struct Commodity), commodityCount, fp);
fclose(fp);
}
// 读取订单文件
void readOrderFile() {
FILE* fp;
fp = fopen("order.dat", "rb");
if (fp == NULL) {
return;
}
while (fread(&orders[orderCount], sizeof(struct Order), 1, fp) == 1) {
orderCount++;
}
fclose(fp);
}
// 写入订单文件
void writeOrderFile() {
FILE* fp;
fp = fopen("order.dat", "wb");
if (fp == NULL) {
return;
}
fwrite(orders, sizeof(struct Order), orderCount, fp);
fclose(fp);
}
// 读取库存文件
void readStockFile() {
FILE* fp;
fp = fopen("stock.dat", "rb");
if (fp == NULL) {
return;
}
while (fread(&stocks[stockCount], sizeof(struct Stock), 1, fp) == 1) {
stockCount++;
}
fclose(fp);
}
// 写入库存文件
void writeStockFile() {
FILE* fp;
fp = fopen("stock.dat", "wb");
if (fp == NULL) {
return;
}
fwrite(stocks, sizeof(struct Stock), stockCount, fp);
fclose(fp);
}
// 添加商品
void addCommodity() {
printf("请输入商品编号:");
scanf("%s", commodities[commodityCount].id);
printf("请输入商品名称:");
scanf("%s", commodities[commodityCount].name);
printf("请输入商品价格:");
scanf("%f", &commodities[commodityCount].price);
printf("请输入商品库存:");
scanf("%d", &commodities[commodityCount].stock);
commodityCount++;
writeCommodityFile();
}
// 删除商品
void deleteCommodity() {
char id[10];
int i, j;
printf("请输入要删除的商品编号:");
scanf("%s", id);
for (i = 0; i < commodityCount; i++) {
if (strcmp(commodities[i].id, id) == 0) {
for (j = i; j < commodityCount - 1; j++) {
commodities[j] = commodities[j + 1];
}
commodityCount--;
writeCommodityFile();
return;
}
}
printf("没有找到该商品!\n");
}
// 修改商品
void modifyCommodity() {
char id[10];
int i;
printf("请输入要修改的商品编号:");
scanf("%s", id);
for (i = 0; i < commodityCount; i++) {
if (strcmp(commodities[i].id, id) == 0) {
printf("请输入新的商品名称:");
scanf("%s", commodities[i].name);
printf("请输入新的商品价格:");
scanf("%f", &commodities[i].price);
printf("请输入新的商品库存:");
scanf("%d", &commodities[i].stock);
writeCommodityFile();
return;
}
}
printf("没有找到该商品!\n");
}
// 查询商品
void queryCommodity() {
char id[10];
int i;
printf("请输入要查询的商品编号:");
scanf("%s", id);
for (i = 0; i < commodityCount; i++) {
if (strcmp(commodities[i].id, id) == 0) {
printf("商品编号:%s\n", commodities[i].id);
printf("商品名称:%s\n", commodities[i].name);
printf("商品价格:%f\n", commodities[i].price);
printf("商品库存:%d\n", commodities[i].stock);
return;
}
}
printf("没有找到该商品!\n");
}
// 添加订单
void addOrder() {
char commodityId[10];
int quantity;
printf("请输入商品编号:");
scanf("%s", commodityId);
printf("请输入商品数量:");
scanf("%d", &quantity);
strcpy(orders[orderCount].id, "O001");
strcpy(orders[orderCount].date, "2021-01-01");
strcpy(orders[orderCount].commodityId, commodityId);
orders[orderCount].quantity = quantity;
orderCount++;
writeOrderFile();
}
// 删除订单
void deleteOrder() {
char id[10];
int i, j;
printf("请输入要删除的订单编号:");
scanf("%s", id);
for (i = 0; i < orderCount; i++) {
if (strcmp(orders[i].id, id) == 0) {
for (j = i; j < orderCount - 1; j++) {
orders[j] = orders[j + 1];
}
orderCount--;
writeOrderFile();
return;
}
}
printf("没有找到该订单!\n");
}
// 修改订单
void modifyOrder() {
char id[10];
int i;
printf("请输入要修改的订单编号:");
scanf("%s", id);
for (i = 0; i < orderCount; i++) {
if (strcmp(orders[i].id, id) == 0) {
printf("请输入新的商品编号:");
scanf("%s", orders[i].commodityId);
printf("请输入新的商品数量:");
scanf("%d", &orders[i].quantity);
writeOrderFile();
return;
}
}
printf("没有找到该订单!\n");
}
// 查询订单
void queryOrder() {
char id[10];
int i;
printf("请输入要查询的订单编号:");
scanf("%s", id);
for (i = 0; i < orderCount; i++) {
if (strcmp(orders[i].id, id) == 0) {
printf("订单编号:%s\n", orders[i].id);
printf("订单日期:%s\n", orders[i].date);
printf("商品编号:%s\n", orders[i].commodityId);
printf("商品数量:%d\n", orders[i].quantity);
return;
}
}
printf("没有找到该订单!\n");
}
// 查询库存
void queryStock() {
char id[10];
int i;
printf("请输入要查询的商品编号:");
scanf("%s", id);
for (i = 0; i < stockCount; i++) {
if (strcmp(stocks[i].id, id) == 0) {
printf("商品编号:%s\n", stocks[i].id);
printf("商品库存:%d\n", stocks[i].stock);
return;
}
}
printf("没有找到该商品!\n");
}
// 修改库存
void modifyStock() {
char id[10];
int i, stock;
printf("请输入要修改的商品编号:");
scanf("%s", id);
for (i = 0; i < stockCount; i++) {
if (strcmp(stocks[i].id, id) == 0) {
printf("请输入新的商品库存:");
scanf("%d", &stock);
stocks[i].stock = stock;
writeStockFile();
return;
}
}
printf("没有找到该商品!\n");
}
// 显示菜单
void showMenu() {
printf("超市销售管理系统\n");
printf("1. 商品管理\n");
printf("2. 销售管理\n");
printf("3. 库存管理\n");
printf("4. 退出系统\n");
}
// 商品管理菜单
void showCommodityMenu() {
printf("商品管理\n");
printf("1. 添加商品\n");
printf("2. 删除商品\n");
printf("3. 修改商品\n");
printf("4. 查询商品\n");
printf("5. 返回上级菜单\n");
}
// 销售管理菜单
void showOrderMenu() {
printf("销售管理\n");
printf("1. 添加订单\n");
printf("2. 删除订单\n");
printf("3. 修改订单\n");
printf("4. 查询订单\n");
printf("5. 返回上级菜单\n");
}
// 库存管理菜单
void showStockMenu() {
printf("库存管理\n");
printf("1. 查询库存\n");
printf("2. 修改库存\n");
printf("3. 返回上级菜单\n");
}
int main() {
readCommodityFile();
readOrderFile();
readStockFile();
while (1) {
showMenu();
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
while (1) {
showCommodityMenu();
int commodityChoice;
scanf("%d", &commodityChoice);
switch (commodityChoice) {
case 1:
addCommodity();
break;
case 2:
deleteCommodity();
break;
case 3:
modifyCommodity();
break;
case 4:
queryCommodity();
break;
case 5:
goto COMMODITY_END;
break;
default:
printf("请输入正确的选项!\n");
}
}
COMMODITY_END:
break;
case 2:
阅读全文