药房管理 c语言编程
时间: 2023-09-18 08:15:50 浏览: 233
药房管理系统可以使用C语言进行编程。以下是一个简单的药房管理系统的示例代码,具体实现可能会因具体需求而异。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
char name[20]; // 药品名称
int num; // 库存数量
float price; // 单价
} Drug;
// 初始化药品
void init(Drug *drugs, int n) {
for (int i = 0; i < n; i++) {
printf("请输入第%d种药品的名称、数量和单价:", i+1);
scanf("%s%d%f", drugs[i].name, &drugs[i].num, &drugs[i].price);
}
}
// 显示药品信息
void display(Drug *drugs, int n) {
printf("药品名称\t库存数量\t单价\n");
for (int i = 0; i < n; i++) {
printf("%s\t\t%d\t\t%.2f\n", drugs[i].name, drugs[i].num, drugs[i].price);
}
}
// 添加药品
void add(Drug *drugs, int n) {
char name[20];
int num;
float price;
printf("请输入要添加的药品的名称、数量和单价:");
scanf("%s%d%f", name, &num, &price);
for (int i = 0; i < n; i++) {
if (strcmp(name, drugs[i].name) == 0) {
drugs[i].num += num;
drugs[i].price = price;
return;
}
}
strcpy(drugs[n].name, name);
drugs[n].num = num;
drugs[n].price = price;
}
// 出售药品
void sell(Drug *drugs, int n) {
char name[20];
int num;
printf("请输入要销售的药品的名称和数量:");
scanf("%s%d", name, &num);
for (int i = 0; i < n; i++) {
if (strcmp(name, drugs[i].name) == 0) {
if (num > drugs[i].num) {
printf("库存不足!\n");
return;
}
drugs[i].num -= num;
printf("销售成功!\n");
return;
}
}
printf("库存中没有该药品!\n");
}
int main() {
int n;
printf("请输入药品种类数:");
scanf("%d", &n);
Drug *drugs = (Drug*)malloc(n * sizeof(Drug));
init(drugs, n);
while (1) {
printf("\n请选择操作:\n1. 显示药品信息\n2. 添加药品\n3. 出售药品\n4. 退出\n");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
display(drugs, n);
break;
case 2:
add(drugs, n);
n++;
break;
case 3:
sell(drugs, n);
break;
case 4:
exit(0);
default:
printf("输入有误,请重新输入!\n");
break;
}
}
free(drugs);
return 0;
}
```
该示例代码实现了以下功能:
1. 初始化药品信息;
2. 显示药品信息;
3. 添加药品;
4. 出售药品;
5. 循环菜单,直到选择退出。
注意,该示例代码仅供参考,实际情况下可能需要根据需求进行修改和完善。
阅读全文