患者取药(检查/治疗)时先刷卡,系统按照应交的药物费(检查费/治疗费)金额数值,自动从卡内余额中扣除并将对应的应交费用标记为0,再将处方中的药品交给患者(对患者进行检查/治疗)。如果卡内余额不足,则系统不扣费并提示“余额不足,如需取药(检查/治疗)请续费”。C语言代码
时间: 2024-02-17 07:05:27 浏览: 21
好的,以下是一个简单的医院取药系统的C语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义患者结构体
struct patient {
char name[20]; // 患者姓名
int age; // 患者年龄
float balance; // 卡内余额
float medicine_fee; // 待取药费
float check_up_fee; // 待进行检查费用
float treatment_fee;// 待进行治疗费用
};
// 定义药品结构体
struct medicine {
char name[20]; // 药品名称
float price; // 药品单价
};
// 定义全局变量
struct patient p; // 当前患者
struct medicine meds[3]; // 药品信息
// 初始化药品信息
void init_medicine() {
strcpy(meds[0].name, "板蓝根");
meds[0].price = 10.0;
strcpy(meds[1].name, "阿司匹林");
meds[1].price = 5.0;
strcpy(meds[2].name, "感冒灵");
meds[2].price = 15.0;
}
// 显示药品信息
void show_medicine() {
printf("请选择要取的药品:\n");
for (int i = 0; i < 3; i++) {
printf("%d. %s 单价:%.2f元\n", i+1, meds[i].name, meds[i].price);
}
}
// 读取患者信息
void read_patient_info() {
printf("请刷卡:\n");
printf("姓名:");
scanf("%s", p.name);
printf("年龄:");
scanf("%d", &p.age);
printf("卡内余额:");
scanf("%f", &p.balance);
printf("待取药费:");
scanf("%f", &p.medicine_fee);
printf("待检查费用:");
scanf("%f", &p.check_up_fee);
printf("待治疗费用:");
scanf("%f", &p.treatment_fee);
}
// 取药
void get_medicine() {
int choice;
float cost;
show_medicine();
scanf("%d", &choice);
cost = meds[choice-1].price;
printf("本次药费:%.2f元\n", cost);
// 检查余额是否充足
if (p.balance < cost) {
printf("余额不足,请先充值!\n");
return;
}
// 扣费
p.balance -= cost;
p.medicine_fee -= cost;
printf("取药成功,卡内余额:%.2f元\n", p.balance);
// 如果待取药费为0,清空待取药品信息
if (p.medicine_fee == 0) {
strcpy(p.medicine, "");
}
}
// 充值
void recharge() {
float amount;
printf("请输入充值金额:\n");
scanf("%f", &amount);
p.balance += amount;
printf("充值成功,卡内余额:%.2f元\n", p.balance);
}
// 主函数
int main() {
init_medicine();
read_patient_info();
int choice;
while (1) {
printf("请选择操作:\n");
printf("1. 取药\n");
printf("2. 充值\n");
printf("3. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
if (p.medicine_fee == 0) {
printf("没有待取药品!\n");
} else {
get_medicine();
}
break;
case 2:
recharge();
break;
case 3:
exit(0);
default:
printf("输入有误,请重新输入!\n");
break;
}
}
return 0;
}
```
以上代码是一个简单的医院取药系统,包括了刷卡、取药、充值等功能。具体实现方式可能与不同医院的实际情况有所不同,需要根据实际情况进行调整。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](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)