用c语言写一个药房管理系统,并且用上文件,功能:设计药房管理系统,输入药品基本信息(药品编号、名称、单价、库存数量、品牌),并实现以下功能: 1、修改、删除指定药品的信息 2、按单价或库存数量排序并显示药品信息 3、统计指定品牌药品数量
时间: 2023-03-31 19:03:08 浏览: 105
C语言程序设计药房管理系统.doc
5星 · 资源好评率100%
您好,我可以回答这个问题。以下是药房管理系统的C语言代码示例:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_DRUGS 100 // 最大药品数量
#define MAX_NAME_LEN 20 // 药品名称最大长度
// 药品结构体
typedef struct {
int id; // 药品编号
char name[MAX_NAME_LEN]; // 药品名称
float price; // 单价
int stock; // 库存数量
char brand[MAX_NAME_LEN]; // 品牌
} Drug;
// 全局变量
Drug drugs[MAX_DRUGS]; // 药品数组
int num_drugs = ; // 药品数量
// 函数声明
void add_drug();
void modify_drug();
void delete_drug();
void sort_drugs();
void print_drugs();
void count_brand();
int main() {
int choice;
while (1) {
printf("请选择操作:\n");
printf("1. 添加药品\n");
printf("2. 修改药品信息\n");
printf("3. 删除药品\n");
printf("4. 排序并显示药品信息\n");
printf("5. 统计指定品牌药品数量\n");
printf("6. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
add_drug();
break;
case 2:
modify_drug();
break;
case 3:
delete_drug();
break;
case 4:
sort_drugs();
print_drugs();
break;
case 5:
count_brand();
break;
case 6:
exit();
default:
printf("无效的选择!\n");
}
}
return ;
}
// 添加药品
void add_drug() {
if (num_drugs >= MAX_DRUGS) {
printf("药品数量已达到上限!\n");
return;
}
Drug drug;
printf("请输入药品编号:");
scanf("%d", &drug.id);
printf("请输入药品名称:");
scanf("%s", drug.name);
printf("请输入药品单价:");
scanf("%f", &drug.price);
printf("请输入药品库存数量:");
scanf("%d", &drug.stock);
printf("请输入药品品牌:");
scanf("%s", drug.brand);
drugs[num_drugs++] = drug;
printf("添加药品成功!\n");
}
// 修改药品信息
void modify_drug() {
int id;
printf("请输入要修改的药品编号:");
scanf("%d", &id);
int i;
for (i = ; i < num_drugs; i++) {
if (drugs[i].id == id) {
printf("请输入新的药品名称:");
scanf("%s", drugs[i].name);
printf("请输入新的药品单价:");
scanf("%f", &drugs[i].price);
printf("请输入新的药品库存数量:");
scanf("%d", &drugs[i].stock);
printf("请输入新的药品品牌:");
scanf("%s", drugs[i].brand);
printf("修改药品信息成功!\n");
return;
}
}
printf("找不到指定药品!\n");
}
// 删除药品
void delete_drug() {
int id;
printf("请输入要删除的药品编号:");
scanf("%d", &id);
int i;
for (i = ; i < num_drugs; i++) {
if (drugs[i].id == id) {
int j;
for (j = i; j < num_drugs - 1; j++) {
drugs[j] = drugs[j + 1];
}
num_drugs--;
printf("删除药品成功!\n");
return;
}
}
printf("找不到指定药品!\n");
}
// 排序并显示药品信息
void sort_drugs() {
int choice;
printf("请选择排序方式:\n");
printf("1. 按单价排序\n");
printf("2. 按库存数量排序\n");
scanf("%d", &choice);
int i, j;
for (i = ; i < num_drugs - 1; i++) {
for (j = ; j < num_drugs - i - 1; j++) {
if (choice == 1 && drugs[j].price > drugs[j + 1].price ||
choice == 2 && drugs[j].stock > drugs[j + 1].stock) {
Drug temp = drugs[j];
drugs[j] = drugs[j + 1];
drugs[j + 1] = temp;
}
}
}
}
// 显示药品信息
void print_drugs() {
int i;
printf("药品编号\t药品名称\t单价\t库存数量\t品牌\n");
for (i = ; i < num_drugs; i++) {
printf("%d\t\t%s\t\t%.2f\t%d\t\t%s\n", drugs[i].id, drugs[i].name, drugs[i].price, drugs[i].stock, drugs[i].brand);
}
}
// 统计指定品牌药品数量
void count_brand() {
char brand[MAX_NAME_LEN];
printf("请输入要统计的品牌:");
scanf("%s", brand);
int count = ;
int i;
for (i = ; i < num_drugs; i++) {
if (strcmp(drugs[i].brand, brand) == ) {
count += drugs[i].stock;
}
}
printf("品牌为%s的药品数量为%d\n", brand, count);
}
阅读全文