药店的药品销售统计系统排序应用文档格式.docx
《药店的药品销售统计系统排序应用文档格式.docx》由会员分享,可在线阅读,更多相关《药店的药品销售统计系统排序应用文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
首先设置一个关键字,然后让最后一个和其比较,直至找到一个比关键字小的,然后和其交
换,接下来让第一个和其比较,直至找到一个比其大的,然后交换,在找到的位置分别做标记,依次执行即可。
销售额使用的是堆排序,堆排序首先要建立一个完全二叉树的堆,其标
准符合为父节点始终比子节点大。
然后依次输出顶结点,然后在建立一个符合标准的堆重复操作即可。
四、调试分析及数据测试
输入药品
入函誥晶因最即格式如:
入该药品的=
A®
®
sH-W:
10
输入该药品芮销售量如
B125,前T4为大写字母,后三他为数字Elil
(格式如:
:
EDC
:
12
量七
Kffil一口□□口晋晋四紫-書药药药岀一>
>
A-123450
B125,前一位为大写字母.后三拉为数?
>:
B111
药品编号
A111
Bill
药品名称
AGD
EEC:
药品单价药品销售量药品销售繭
10.660906
12.000996
销售记录排序
160,906090
1^4.000099
五、测试结果
口LL.AKTI
编亶销销统口“品口習習累药药驀药岀按:
5榕
>
123450
药品单价药品销售量药品销售额BillEDC12.000S3012144.069000
fllllHSD10,00609010L00.0B9000
BillAlli
上ipjtt、-in-i-ii-宀
药品单价药品销售量药品销售额
12.000000
106,006000
10,000000
口一一^^一屋口品品口nn品口黑鲁药暮岀"
JlJJJtJFJ;
Ta>
测试结果符合程序写作要求
#include<
stdio.h>
stdlib.h>
#includevstring.h>
#definemaxsize100//该医药公司药品最大种类typedefstructnode//药品信息的存储结构类型定义
charnum[10];
//药品编号charname[30];
floatprice;
//单价
intcount;
//销售量floatsale;
//销售额
}DataType;
typedefstruct//存储药品信息的顺序表的定义{
DataTyper[maxsize];
intlength;
inttype;
}SqList;
voidnumber(SqList*L)//按药品编号排序{
inti,j;
charnum1[10],name1[30];
floatprice1,sale1;
intcount1;
for(i=0;
i<
L->
type;
i++)
for(j=i+1;
j<
j++)
if(strcmp(L->
r[j].num,L->
r[i].num)>
0)
{strcpy(num1,L->
r[j].num);
strcpy(L->
r[i].num);
r[i].num,num1);
strcpy(name1,L->
r[j].name);
r[j].name,L->
r[i].name);
strcpy(L->
r[i].name,name1);
price1=L->
r[j].price;
r[j].price=L->
r[i].price;
r[i].price=price1;
count1=L->
r[j].count;
r[j].count=L->
r[i].count;
r[i].count=count1;
sale1=L->
r[j].sale;
r[j].sale=L->
r[i].sale;
r[i].sale=sale1;
}
printf("
\t按药品编号排序后:
\n"
);
\t药品编号药品名称药品单价药品销售量药品销售额\n"
\t%s\t%s\t%f\t
%d\t%f\n"
L->
r[i].num,L->
r[i].name,L->
r[i].price,L->
r[i].count,L->
r[i
].sale);
voidnam(SqList*L)//按药品名称排序
{
ame)>
e);
floatprice1,sale1;
r[i].n
r[i].nam
voidpric(SqList*L)
inti=0,j;
if(L->
r[j].price>
r[i].price)
{strcpy(num1,L->
r[i].sale);
voidcoun(SqList*L)
r[j].count>
r[i].count)
后:
\t按药品编号排序
药品单价药品销售量药品销售额\n"
i++)printf("
voidsales(SqList*L)
j++)if(L->
r[j].sale>
r[i].sale)
\t%s\t%s\t%f\t%d\t%f\n"
voidmenu()
\t\t\t销售记录排序\n"
\t
\n"
\t|1)按药品编
号|\n"
\t|2)按药品名
称|\n"
售量
|\n"
\t|5)按药品销
售额|\n"
\t|0)退出系统
请选择<
0~5>
"
intmain()
SqList*L;
intn,i,m;
FILE*fp;
L=(SqList*)malloc(sizeof(SqLi
st));
fp=fopen("
medince.txt"
"
w"
//创建文件
if(!
fp){printf("
Sorry!
Fileopenerror!
exit(0);
请输入药品种类数(<
=100):
scanf("
%d"
&
n);
type=n;
n;
请输入该药品的编号(格式如:
B125,前一位为大写字母,后三位为数字):
%s"
num1);
getchar();
请输入该药品的名称:
name1);
请输入该药品的单价:
%f"
price1);
请输入该药品的销售
count1);
getchar();
sale1=price1*count1;
n"
num1,name1,price1,count1,sale1);
fclose(fp);
length=0;
fp=fopen("
r"
if(!
r[i].name,&
r[i].price,&
r[i].count,&
r[i].sale);
//从文件中读信息
length++;
\t药品编号药品名称
while
(1)
{menu();
scanf("
m);
switch(m)
case1:
number(L);
break;
case2:
nam(L);
case3:
pric(L);
case4:
coun(L);
case5:
sales(L);
case0:
default:
输入有
误门;