帮我写一个c语言代码药品库房信息包括:药品编号、药品名称、药品种类、销售日期、销售数量、销售员姓名等信息。试 设计药品库房信息管理,使之能提供以下功能: 1) 系统以菜单方式工作(用键盘输入1~7之间的数来选择功能,其中7为退出); 2) 药品销售信息录入功能(包括药品编号、药品名称、药品种类、销售日期、销售数量、销售员姓名); 3) 药品销售信息整体浏览功能; 4) 按输入“药品种类”查询并显示该药品种类的所有销售信息; 5) 根据“销售员姓名”和“药品编号”分别统计并显示销售的总数量的信息; 6) 按输入的某一个“药品编号”,修改其“销售员姓名”的信息; 7) 按照“药品名称”进行升序排序; 48 8) 按照输入“药品编号”信息的删除该药品的基本信息; 9) 所有数据符合实际应用要求。
时间: 2023-03-30 12:03:45 浏览: 111
以下是药品库房信息管理的C语言代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_DRUGS 100
typedef struct {
int id;
char name[50];
char type[20];
char date[20];
int quantity;
char seller[20];
} Drug;
Drug drugs[MAX_DRUGS];
int num_drugs = ;
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("%s", drug.type);
printf("请输入销售日期:");
scanf("%s", drug.date);
printf("请输入销售数量:");
scanf("%d", &drug.quantity);
printf("请输入销售员姓名:");
scanf("%s", drug.seller);
drugs[num_drugs++] = drug;
printf("药品信息已添加。\n");
}
void list_drugs() {
printf("药品编号\t药品名称\t药品种类\t销售日期\t销售数量\t销售员姓名\n");
for (int i = ; i < num_drugs; i++) {
Drug drug = drugs[i];
printf("%d\t%s\t%s\t%s\t%d\t%s\n", drug.id, drug.name, drug.type, drug.date, drug.quantity, drug.seller);
}
}
void search_by_type() {
char type[20];
printf("请输入药品种类:");
scanf("%s", type);
printf("药品编号\t药品名称\t药品种类\t销售日期\t销售数量\t销售员姓名\n");
for (int i = ; i < num_drugs; i++) {
Drug drug = drugs[i];
if (strcmp(drug.type, type) == ) {
printf("%d\t%s\t%s\t%s\t%d\t%s\n", drug.id, drug.name, drug.type, drug.date, drug.quantity, drug.seller);
}
}
}
void search_by_seller_and_id() {
char seller[20];
int id;
printf("请输入销售员姓名:");
scanf("%s", seller);
printf("请输入药品编号:");
scanf("%d", &id);
int total_quantity = ;
for (int i = ; i < num_drugs; i++) {
Drug drug = drugs[i];
if (strcmp(drug.seller, seller) == && drug.id == id) {
total_quantity += drug.quantity;
}
}
printf("销售员%s销售药品%d的总数量为%d。\n", seller, id, total_quantity);
}
void modify_seller() {
int id;
printf("请输入药品编号:");
scanf("%d", &id);
for (int i = ; i < num_drugs; i++) {
Drug *drug = &drugs[i];
if (drug->id == id) {
printf("请输入新的销售员姓名:");
scanf("%s", drug->seller);
printf("销售员姓名已修改。\n");
return;
}
}
printf("找不到药品编号为%d的药品。\n", id);
}
void sort_by_name() {
for (int i = ; i < num_drugs - 1; i++) {
for (int j = i + 1; j < num_drugs; j++) {
Drug *drug1 = &drugs[i];
Drug *drug2 = &drugs[j];
if (strcmp(drug1->name, drug2->name) > ) {
Drug temp = *drug1;
*drug1 = *drug2;
*drug2 = temp;
}
}
}
printf("药品信息已按照药品名称升序排序。\n");
}
void delete_drug() {
int id;
printf("请输入药品编号:");
scanf("%d", &id);
for (int i = ; i < num_drugs; i++) {
Drug *drug = &drugs[i];
if (drug->id == id) {
for (int j = i; j < num_drugs - 1; j++) {
drugs[j] = drugs[j + 1];
}
num_drugs--;
printf("药品信息已删除。\n");
return;
}
}
printf("找不到药品编号为%d的药品。\n", id);
}
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");
printf("7. 按照输入药品编号信息的删除该药品的基本信息\n");
printf("8. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
add_drug();
break;
case 2:
list_drugs();
break;
case 3:
search_by_type();
break;
case 4:
search_by_seller_and_id();
break;
case 5:
modify_seller();
break;
case 6:
sort_by_name();
break;
case 7:
delete_drug();
break;
case 8:
exit();
default:
printf("无效的选择,请重新输入。\n");
}
}
return ;
}
阅读全文