#include<stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct medicine
{
char num[20]; /*药品编号*/
char name[20]; /*药品名称*/
char fuction[20]; /*药品功效*/
char manu[20]; /*生产商*/
char time[10]; /*生产日期,请大家规范格式,例:20180530 */
double price; /*药品单价*/
int sum; /*库存数量*/
}medicine;
int number = 0;
medicine b[500];
//药品查询系统
void menucx()
{
printf("\t********************************************\n");
printf("\t* *\n");
printf("\t* 查询界面 *\n");
printf("\t* *\n");
printf("\t********************************************\n");
printf("\t* [1] 按药品编号查询\t[2] 按药名查询 *\n");
printf("\t********************************************\n");
printf("\t* [3] 按功效查询 \t[4] 按生产商查询 *\n");
printf("\t********************************************\n");
printf("\t* [0] 返回主界面 *\n");
printf("\t********************************************\n");
printf("\t* *\n");
printf("\t********************************************\n");
}
void numcx() /*按编号查询*/
{
char num[20];
int i, f;
printf("\t请您输入需要查找的药品编号:");
scanf("%s", num);
printf("\t查找结果:\n");
for (i = 0, f = 0; i < number; i++)
if (strcmp(num, b[i].num) == 0)
{
printf("编号\t药名\t功效\t生产商\t生产日期\t单价\n");
printf("%s\t%s\t%s\t%s\t%s\t%lf\n", b[i].num, b[i].name, b[i].fuction, b[i].manu, b[i].time, b[i].price);
f++;
}
if (f == 0)
printf("\t很抱歉!本药房中不存在该药品!\n");
else
printf("\t本药房的共存在该类药品%d个。\n", f);
}
void namecx() /*按药品名称查询*/
{
char name[20];
int i, f;
printf("\t请您输入需要查找的药品的药名:");
scanf("%s", name);
printf("\t查找结果:\n");
for (i = 0, f = 0; i < number; i++)
if (strcmp(name, b[i].name) == 0)
{
printf("编号\t药名\t功效\t生产商\t生产日期\t单价\n");
printf("%s\t%s\t%s\t%s\t%s\t%lf\n", b[i].num, b[i].name, b[i].fuction, b[i].manu, b[i].time, b[i].price);
f++;
}
if (f == 0)
printf("\t很抱歉!本药房中不存在该药品!\n");
else
printf("\t本药房的共存在该类药品%d个。\n", f);
}
void fuctioncx() /*按功效查询*/
{
char fuction[20];
int i, f;
printf("\t请您输入需要查找的药品的功效:");
scanf("%s", fuction);
printf("\t查找结果:\n");
for (i = 0, f = 0; i < number; i++)
if (strcmp(fuction, b[i].fuction) == 0)
{
printf("编号\t药名\t功效\t生产商\t生产日期\t单价\n");
printf("%s\t%s\t%s\t%s\t%s\t%lf\n", b[i].num, b[i].name, b[i].fuction, b[i].manu, b[i].time, b[i].price);
f++;
}
if (f == 0)
printf("\t很抱歉!本药房中不存在该药品!\n");
else
printf("\t本药房的共存在该类药品%d个。\n", f);
}
void manucx() /*按生产商查询*/
{
char manu[20];
int i, f;
printf("\t请您输入需要查找的药品的生产商名称为:");
scanf("%s", manu);
printf("\t查找结果:\n");
for (i = 0, f = 0; i < number; i++)
if (strcmp(manu, b[i].manu) == 0)
{
printf("编号\t药名\t功效\t生产商\t生产日期\t单价\n");
printf("%s\t%s\t%s\t%s\t%s\t%lf\n", b[i].num, b[i].name, b[i].fuction, b[i].manu, b[i].time, b[i].price);
f++;
}
if (f == 0)
printf("\t很抱歉!本药房中不存在该药品!\n");
else
printf("\t本药房的共存在该类药品%d个。\n", f);
}
void cx()
{
int choice = 8;
while (choice != 0)
{
system("cls");
menucx();
printf("\n请选择功能选项1-4: ");
scanf("%d", &choice);
switch (choice)
{
case 1:numcx(); break;
case 2:namecx(); break;
case 3:fuctioncx(); break;
case 4:manucx(); break;
case 0:break;
}
printf("\n\t\t\t ==>按Enter键返回查询界面<==");
getchar();
getchar();
}
}
void ll()
{
int i;
for (i = 0; i < number; i++)
{
if (i == 0)
{
printf("编号\t药名\t功效\t生产商\t生产日期\t单价\n");
printf("%s\t%s\t%s\t%s\t%s\t%lf\n", b[i].num, b[i].name, b[i].fuction, b[i].manu, b[i].time, b[i].price);
}
}
}
void menuzj() //增加新药品
{
printf("\t********************************************\n");
printf("\t* *\n");
printf("\t* 欢迎来到增加界面 *\n");
printf("\t* *\n");
printf("\t********************************************\n");
}
void zj()
{
int n, j, k = 0, i = 0;
menuzj();
FILE* fp;
fp = fopen("medicine.txt", "r");
if (fp == NULL)
{
printf("open file error!\n"); exit(-1);
}
while (!feof(fp))
{
fscanf(fp, "%s%s%s%s%s%lf%d", b[i].num, b[i].name, b[i].fuction,
b[i].manu, b[i].time, &b[i].price, &b[i].sum);
i++;
}
fclose(fp);
medicine q;
printf("输入要增加的药品信息条数\n");
scanf("%d", &n);
for (i = 0; i < n; i++)
{
k = 0;
printf("输入要增加的药品的编号\n");
scanf("%s", q.num);
for (j = 0; j < number; j++)
{
if (strcmp(q.num, b[j].num) == 0)
{
k = 1;
break;
}
}
if (k == 1)
{
printf("该药品已经存在,请重新输入:\n");
i--;
}
else
{
printf("要增加的药品的药名\n");
scanf("%s", q.name);
printf("要增加的药品的功效\n");
scanf("%s", q.fuction);
printf("要增加的药品的生产商\n");
scanf("%s", q.manu);
printf("要增加的药品的生产日期\n");
scanf("%s", q.time);
printf("要增加的药品的单价\n");
scanf("%lf", &q.price);
printf("要增加的药品的库存数量\n");
scanf("%d", &q.sum);
b[number] = q;
number++;
FILE* fp;
fp = fopen("medicine.txt", "a");
fprintf(fp, "\n%s\t%s\t%s\t%s\t%s\t%lf\t%d", q.num, q.name, q.fuction, q.manu, q.time, q.price, q.sum);
fclose(fp);
printf("药品信息增加成功\n");
}
}
}
void menuxg() //药品修改
{
printf("\t************************************************\n");
printf("\t* *\n");
printf("\t* 修改界面 *\n");
printf("\t* *\n");
printf("\t************************************************\n");
printf("\t* [1] 根据药品编号修改 *\n");
printf("\t************************************************\n");
printf("\t* [2] 根据药品名称修改 *\n");
printf("\t************************************************\n");
printf("\t* [0] 返回主界面 *\n");
printf("\t************************************************\n");
}
void numxg() //按照编号修改
{
FILE* fp;
medicine q;
int f = -1, i;
char d;
int k = -1;
while (f == -1)
{
printf("请您输入需要修改的药品编号: ");
scanf("%s", q.num);
for (i = 0; i < number; i++)
if (strcmp(q.num, b[i].num) == 0)
{
f = i; break;
}
if (f == -1)
printf("不存在该药品!\n");
}
printf("编号\t药名\t功效\t生产商\t生产日期\t单价\n");
printf("%s\t%s\t%s\t%s\t%s\t%lf\n", b[i].num, b[i].name, b[i].fuction, b[i].manu, b[i].time, b[i].price);
printf("您确定要修改该药品信息吗?\n请输入:是(Y)或否(N)。");
getchar();
scanf("%c", &d);
if (d == 'Y')
{
printf("您想将药品的编号更改为:");
scanf("%s", q.num);
printf("您想将药品的药名更改为:");
scanf("%s", q.name);
printf("您想将药品的功效更改为:");
scanf("%s", q.fuction);
printf("您想将药品的生产商更改为:");
scanf("%s", q.manu);
printf("您想将药品的生产日期更改为:");
scanf("%s", q.time);
printf("您想将药品的单价更改为:");
scanf("%lf", &q.price);
printf("您想将药品的库存数量更改为:");
scanf("%d", &q.sum);
b[f] = q;
printf("修改成功!");
getchar();
fp = fopen("medicine.txt", "w");
if (fp == NULL)
{
printf("open file error!\n"); return;
}
for (i = 0; i < number; i++)
if (i == 0)
fprintf(fp, "%s\t%s\t%s\t%s\