药店的药品销售统计系统.docx
- 文档编号:4530824
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:13
- 大小:128.55KB
药店的药品销售统计系统.docx
《药店的药品销售统计系统.docx》由会员分享,可在线阅读,更多相关《药店的药品销售统计系统.docx(13页珍藏版)》请在冰豆网上搜索。
药店的药品销售统计系统
数据结构实验报告
实验六
实验题目:
小型系统开发(课程设计)
指导老师:
王文霞
专业班级:
计算机科学与技术系1102班
姓名:
王珣(2011100216)李国宝(2011100220)
马佳丽(2011100238)张艳(2011100257)
2013年5月30日
实验类型_设计_实验室_软件实验室一__
1、实验题目
小型系统开发(课程设计)
2、实验目的和要求
掌握小型系统开发方法,提高学生综合开发能力。
根据实际问题,设计方案,综合运用课程知识,完成《学生成绩管理系统》或《数据结构算法演示系统》的设计、编程与调试工作。
三、实验内容
上机实验内容三:
药店的药品销售统计系统
1.设计一系统,实现医药公司定期对各药品的销售记录进行统计,并按药品编号、单价、销售量或销售额做出排序。
2.设计分析
在设计中,首先从数据文件读出各药品的信息记录,存储在顺序表中。
各药品的信息包括:
药品编号、药品名称、单价、销售量、销售额。
其中药品编号共4位,采用字母和数字混合编号,如:
B125,前一位为大写字母,后三位为数字。
3.存储结构类型定义
①药品信息的存储结构类型定义
typedefstructnode
{
charnum[4];/*药品编号*/
charname[10];/*药品名称*/
floatprice;/*单价*/
intcount;/*销售量*/
floatsale;/*销售额*/
}DataType;
②存储药品信息的顺序表的定义
typedefstruct
{
DataTyper[maxsize];
intlength;
}sequenList;
四、实验步骤
#include
#include
#include
#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
for(j=i+1;j
if(strcmp(L->r[j].num,L->r[i].num)>0)
{strcpy(num1,L->r[j].num);
strcpy(L->r[j].num,L->r[i].num);
strcpy(L->r[i].num,num1);
strcpy(name1,L->r[j].name);
strcpy(L->r[j].name,L->r[i].name);
strcpy(L->r[i].name,name1);
price1=L->r[j].price;
L->r[j].price=L->r[i].price;
L->r[i].price=price1;
count1=L->r[j].count;
L->r[j].count=L->r[i].count;
L->r[i].count=count1;
sale1=L->r[j].sale;
L->r[j].sale=L->r[i].sale;
L->r[i].sale=sale1;
}
printf("\t按药品编号排序后:
\n");
printf("\t药品编号药品名称药品单价药品销售量药品销售额\n");
for(i=0;i
printf("\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)//按药品名称排序
{
inti,j;
charnum1[10],name1[30];
floatprice1,sale1;
intcount1;
for(i=0;i
for(j=i+1;j
if(strcmp(L->r[j].name,L->r[i].name)>0)
{strcpy(num1,L->r[j].num);
strcpy(L->r[j].num,L->r[i].num);
strcpy(L->r[i].num,num1);
strcpy(name1,L->r[j].name);
strcpy(L->r[j].name,L->r[i].name);
strcpy(L->r[i].name,name1);
price1=L->r[j].price;
L->r[j].price=L->r[i].price;
L->r[i].price=price1;
count1=L->r[j].count;
L->r[j].count=L->r[i].count;
L->r[i].count=count1;
sale1=L->r[j].sale;
L->r[j].sale=L->r[i].sale;
L->r[i].sale=sale1;
}
printf("\t按药品编号排序后:
\n");
printf("\t药品编号药品名称药品单价药品销售量药品销售额\n");
for(i=0;i
printf("\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);
}
voidpric(SqList*L)
{
inti=0,j;
charnum1[10],name1[30];
floatprice1,sale1;
intcount1;
for(i=0;i
for(j=i+1;j
if(L->r[j].price>L->r[i].price)
{strcpy(num1,L->r[j].num);
strcpy(L->r[j].num,L->r[i].num);
strcpy(L->r[i].num,num1);
strcpy(name1,L->r[j].name);
strcpy(L->r[j].name,L->r[i].name);
strcpy(L->r[i].name,name1);
price1=L->r[j].price;
L->r[j].price=L->r[i].price;
L->r[i].price=price1;
count1=L->r[j].count;
L->r[j].count=L->r[i].count;
L->r[i].count=count1;
sale1=L->r[j].sale;
L->r[j].sale=L->r[i].sale;
L->r[i].sale=sale1;
}
printf("\t按药品编号排序后:
\n");
printf("\t药品编号药品名称药品单价药品销售量药品销售额\n");
for(i=0;i
printf("\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);
}
voidcoun(SqList*L)
{
inti=0,j;
charnum1[10],name1[30];
floatprice1,sale1;
intcount1;
for(i=0;i
for(j=i+1;j
if(L->r[j].count>L->r[i].count)
{strcpy(num1,L->r[j].num);
strcpy(L->r[j].num,L->r[i].num);
strcpy(L->r[i].num,num1);
strcpy(name1,L->r[j].name);
strcpy(L->r[j].name,L->r[i].name);
strcpy(L->r[i].name,name1);
price1=L->r[j].price;
L->r[j].price=L->r[i].price;
L->r[i].price=price1;
count1=L->r[j].count;
L->r[j].count=L->r[i].count;
L->r[i].count=count1;
sale1=L->r[j].sale;
L->r[j].sale=L->r[i].sale;
L->r[i].sale=sale1;
}
printf("\t按药品编号排序后:
\n");
printf("\t药品编号药品名称药品单价药品销售量药品销售额\n");
for(i=0;i
printf("\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);
}
voidsales(SqList*L)
{
inti=0,j;
charnum1[10],name1[30];
floatprice1,sale1;
intcount1;
for(i=0;i
for(j=i+1;j
if(L->r[j].sale>L->r[i].sale)
{strcpy(num1,L->r[j].num);
strcpy(L->r[j].num,L->r[i].num);
strcpy(L->r[i].num,num1);
strcpy(name1,L->r[j].name);
strcpy(L->r[j].name,L->r[i].name);
strcpy(L->r[i].name,name1);
price1=L->r[j].price;
L->r[j].price=L->r[i].price;
L->r[i].price=price1;
count1=L->r[j].count;
L->r[j].count=L->r[i].count;
L->r[i].count=count1;
sale1=L->r[j].sale;
L->r[j].sale=L->r[i].sale;
L->r[i].sale=sale1;
}
printf("\t按药品编号排序后:
\n");
printf("\t药品编号药品名称药品单价药品销售量药品销售额\n");
for(i=0;i
printf("\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);
}
voidmenu()
{
printf("\t\t\t销售记录排序\n");
printf("\t-----------------------------------------------\n");
printf("\t|1)按药品编号|\n");
printf("\t|2)按药品名称|\n");
printf("\t|3)按药品单价|\n");
printf("\t|4)按药品销售量|\n");
printf("\t|5)按药品销售额|\n");
printf("\t|0)退出系统|\n");
printf("\t-----------------------------------------------\n");
printf("请选择<0~5>");
}
main()
{
SqList*L;
intn,i,m;
charnum1[10],name1[30];
floatprice1,sale1;
intcount1;
FILE*fp;
L=(SqList*)malloc(sizeof(SqList));
fp=fopen("medince.txt","w");//创建文件
if(!
fp){printf("Sorry!
Fileopenerror!
\n");exit(0);}
printf("请输入药品种类数(<=100):
");
scanf("%d",&n);
L->type=n;
for(i=0;i { printf("请输入该药品的编号(格式如: B125,前一位为大写字母,后三位为数字): "); scanf("%s",num1); getchar(); printf("请输入该药品的名称: "); scanf("%s",name1); getchar(); printf("请输入该药品的单价: "); scanf("%f",&price1); printf("请输入该药品的销售量: "); scanf("%d",&count1);getchar(); sale1=price1*count1; fprintf(fp,"%s\t%s\t%f\t%d\t%f\n",num1,name1,price1,count1,sale1); printf("\n"); } fclose(fp); L->length=0; fp=fopen("medince.txt","r"); if(! fp){printf("Sorry! Fileopenerror! ");exit(0);} for(i=0;i { fscanf(fp,"%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);//从文件中读信息 L->length++; } fclose(fp); printf("\t药品编号药品名称药品单价药品销售量药品销售额\n"); for(i=0;i printf("\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); while (1) {menu(); scanf("%d",&m); switch(m) { case1: number(L);break; case2: nam(L);break; case3: pric(L);break; case4: coun(L);break; case5: sales(L);break; case0: exit(0);break; default: printf("Sorry! 输入有误! ");break; } } } 运行结果: 五、实验总结 通过此次试验我们完成了药店的药品销售统计系统。 在实验中,我们用到了文件,每个人又重新复习了一下文件。 我们明显感觉此次试验比前几次都简单多了,感觉挺爽快的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 药店 药品 销售 统计 系统