C语言课程设计-医药公司销售系统

需求分析

1.设计题目:某医药公司销售系统

2.系统功能需求分析:经过对程序设计题目的分析可知,整个程序的设计实现大致分为四个模块,其中每一个模块对应一个函数,他们的功能分别是,录入药品信息,购进药品,出售药品,库存显示。

1、录入药品信息:在D盘中创建MyFile.txt文件,并对药品进行录入。

2、购进药品:模拟药品进购,并且按照题目要求,随时购进药品,并对其进行储存。

3、出售药品:按照题目的具体要求能够随时出售药品,并对其进行储存。

4、药库现状查看:可以随时对药库的现存状况进行查看 包括药品编号 药品名字,购进数量,购进价格,出售药品数,出售价格这六项。

除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。

原文件存在D盘的MyF ile.txt文件中,包括药品编号,药品名字,购进数量,购进价格,出售药品数,出售价格这六项信息,通过fopen函数读取,然后通过调用各个函数,运行其各项功能。

  • 概要设计

系统总体设计框架:

1、程序总体设计图

  • 详细设计

主要阐述功能模块的算法设计思路

本程序主要由四个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其它函数来实现要求的所有功能。在这些函数当中,录入药品信息,购进药品,出售药品和药库现状是程序中较为核心的部分下面分别进行说明。

1、录入药品信息

首先在D盘中创建一个MyFile文件,文件储存药店里药品的信息,信息显示依次为药品编号,药品名字,购进数量,购进价格,出售药品数,出售价格。在编写一个fopen函数,打开D盘中的MyFile文件,并且按照药品编号,药品名字,购进数量,购进价格,出售药品数,出售价格的顺序依次输出。具体的程序段如下:int i,j,z;

FILE*fp;fp=fopen("d:\\MyFile.txt","w");

printf("请输入您要输入的药品信息:\n");

printf("您要输入几种药品信息:\n");

scanf("%d",&i);

for(j=0;j<i;j++)

{printf("请输入药品的编号:\n");

scanf("%d",&med[j].num1);

printf("输入要添加的药品名称,购进数量,购进价格,出售药品数,出售价格\n");

scanf("%s %d %f %d %f",med[j].name,&med[j].num2,&med[j].price1,&med[j].num3,&med[j].price2);

printf("%s %d %f %d %f\n",med[j].name,med[j].num2,med[j].price1,med[j].num3,med[j].price2);

}printf("药品编号 药品名称 购进数量 购进价格 出售药品数 出售价格\n");

for(z=0;z<SIZE;z++)

printf("%s %d %6.2f %d%6.2f\n",med[z].name,med[z].num2,med[z].price1,med[z].num3,med[z].price2);

printf(" ***请选择操作1:录入药品信息(读取原始信息) 2 :顾客买药处理(购进药品出售药品)3:某日某种药品销售情况(出售显示 库存显示 计算利润)***\n");printf(" 4:退出!\n");

fclose(fp);

2,购进药品类似出售药品,运用scanf函数先输入图书的药品编号,再输入药品的数量,在对药品的数量进行nu m2++的操作。具体程序如下:void goujin()

{int i,j;

int num;

printf("购进药品*****************************\n");

printf("输入编号:");scanf("%d",&num);printf("输入数量:" );scanf("%d",&j);

for(i=0;i<10;i++)

if(num==med[i].num1)

{med[i].num2+=j;

printf("这种药品数是:%d\n",med[i].num2);printf("***请选择操作1:录入药品信息课(读取原始信息)2 :顾客买药处理(购进药品出售药品) 3:某日某种药品销售情况(出售显示 库存显示 计算利润)***\n");

printf(" 4:退出!\n");

}

3 出售药品

该函数执行时,首先出来提示信息,然后运用scanf函数输入药品编号,通过函数的调用读取D盘中的数据,并按照药品编号,药品名字,购进数量,购进价格,出售药品数, 出售价格这样的顺序进行输出,由于药品已售出,故要对该药品的数量进行num2--的操作,对该药品售出的数量进行num 3++操作。

具体程序如下:void chushou()

{int i;int num;

printf("…… 出售药品\n");

printf("你想买哪种药:");scanf("%d",&num);printf("以下是此药信\n");

for(i=0;i<10;i++)

if(num==med[i].num1)

{med[i].num2--;med[i].num3++;

printf("编号名称售价\n");

printf("%d%s%6.2 f\n",med[i].num1,med[i].name,med[i].price2);

printf("***请选择操作1:录入药品信息(读取原始信息)2 :顾客买药处理(购进药品出售药品) 3:某日某种药品销售情况(出售显示 库存显示 计算利润)***\n");

printf("4:退出!\n");

}

4.药库现状

通过函数的调用显示出现存的药品状况几及出售的药品状况。

  具体程序如下:void mednow()

{int i,j;

FILE*fp;fp=fopen("d:\\MyFile.txt","r+");

for(j=0;j<SIZE;j++)

{scanf("%d %s %d %f %d %f\n",&med[j].num1,&med[j].name,&med[j].num2,&med[j].price1,&med[j].num3,&med[j].price2);

}printf("……**** 库 存 显 示\n");

printf("药品编号 药品名称 购进数量 购进价格 出售药品数 出售价\n");

for(i=0;i<SIZE;i++)

{printf("%d %s %d %f %d %f\n",med[i].num1,med[i].name,med[i].num2,med[i].price1,med[i].num3,med[i].price2);

}fclose(fp);printf("***请选择操作1:录入药品信息(读取原始信息)2 :顾客买药处理(购进药品出售药品) 3:某日某种药品销售情况(出售显示 库存显示 计算利润)***\n");

printf("4:退出!\n");}

程序代码

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define SIZE 10
struct medicine
{int num1;int num2;int num3;char name[20];
float price1;
float price2;
}med[SIZE];
void save()
{int i,j,z;
FILE*fp;fp=fopen("d:\\MyFile.txt","w");
printf("请输入您要输入的药品信息:\n");
printf("您要输入几种药品信息:\n");
scanf("%d",&i);
for(j=0;j<i;j++)
{printf("请输入药品的编号:\n");
scanf("%d",&med[j].num1);
printf("输入要添加的药品名称,购进数量,购进价格,出售药品数,出售价格\n");
scanf("%s %d %f %d %f",med[j].name,&med[j].num2,&med[j].price1,&med[j].num3,&med[j].price2);
printf("%s %d %f %d %f\n",med[j].name,med[j].num2,med[j].price1,med[j].num3,med[j].price2);
}printf("药品编号 药品名称 购进数量 购进价格 出售药品数 出售价格\n");
for(z=0;z<SIZE;z++)
printf("%s %d %6.2f %d%6.2f\n",med[z].name,med[z].num2,med[z].price1,med[z].num3,med[z].price2);
printf(" ***请选择操作1:录入药品信息(读取原始信息) 2 :顾客买药处理(购进药品出售药品)3:某日某种药品销售情况(出售显示 库存显示 计算利润)***\n");printf(" 4:退出!\n");fclose(fp);
}void goujin()
{int i,j;
int num;
printf("购进药品*****************************\n");
printf("输入编号:");scanf("%d",&num);printf("输入数量:" );scanf("%d",&j);
for(i=0;i<10;i++)
if(num==med[i].num1)
{med[i].num2+=j;
printf("这种药品数是:%d\n",med[i].num2);printf("***请选择操作1:录入药品信息课(读取原始信息)2 :顾客买药处理(购进药品出售药品) 3:某日某种药品销售情况(出售显示 库存显示 计算利润)***\n");
printf(" 4:退出!\n");
}
}
void chushou()
{int i;
int num;
printf("…… 出售药品\n");
printf("你想买哪种药:");scanf("%d",&num);printf("以下是此药信\n");
for(i=0;i<10;i++)
if(num==med[i].num1)
{med[i].num2--;med[i].num3++;
printf("编号名称售价\n");
printf("%d%s%6.2 f\n",med[i].num1,med[i].name,med[i].price2);
printf("***请选择操作1:录入药品信息(读取原始信息)2 :顾客买药处理(购进药品出售药品) 3:某日某种药品销售情况(出售显示 库存显示 计算利润)***\n");printf("4:退出!\n");
}
}void mednow()
{int i,j;
FILE*fp;fp=fopen("d:\\MyFile.txt","r+");
for(j=0;j<SIZE;j++)
{scanf("%d %s %d %f %d %f\n",&med[j].num1,&med[j].name,&med[j].num2,&med[j].price1,&med[j].num3,&med[j].price2);
}printf("……**** 库 存 显 示\n");
printf("药品编号 药品名称 购进数量 购进价格 出售药品数 出售价\n");
for(i=0;i<SIZE;i++)
{printf("%d %s %d %f %d %f\n",med[i].num1,med[i].name,med[i].num2,med[i].price1,med[i].num3,med[i].price2);
}fclose(fp);printf("***请选择操作1:录入药品信息(读取原始信息)2 :顾客买药处理(购进药品出售药品) 3:某日某种药品销售情况(出售显示 库存显示 计算利润)***\n");printf("4:退出!\n");}
void main()
{printf("******\n");printf("某医药公司售货系统******\n");printf("按1:录入药品信息******\n");printf("****** 按2:顾客买药处理\n");printf("按3:某日某种药品销售情况\n");
printf("按 4:退 出 !!******\n");printf("请选择序号按回车确认\n");
aa:switch(getch())
{case'1' :save();break;
case'2' :chushou();break;
case'3' :mednow();break;
case'4':exit(0);
}goto aa;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X-MTing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值