药店的药品销售统计系统汇编

合集下载

医院药店业务数据统计表

医院药店业务数据统计表
业务数据统计表
项目
门诊
住院
总计
科室
临 床 科
科目
金额
当月数 上月合计 累 计
科目
金额
当月数 上月合计 累 计
总收入
5800.4 18850.1 24650.5 总 收 入
药品
5093 16228.1 21321.1 药 品
中草药
646.6 2650.7
3297.3 中 草 药
医疗收入
707.4 2622
医疗收入 1096.4
1840
中医治疗收 入
0
10
2622中草药
医疗收入 中医治疗收
入 总收入
药品
中草药
医疗收入 中医治疗收

科目
总收入 药品 中草药 医疗收入 中医治疗收入
3329.4 医疗收入
科目
总收入 药品
金额
当月数 上月合计
科目
累 计 总收入 药品 中草药 医疗收入 中医治疗收入
中草药
医疗收入
中医治疗收 入
0
10
10
中医治疗收 入
中医治疗收 入
总收入
6776.9 11832.7 18609.6 总 收 入
药品
综 合
中草药
门 诊
医疗收入
6387.9 10902.3 17290.2 药 品
2025 2632.1
4657.1 中 草 药
389
930.4
1319.4 医疗收入
中医治疗收 入
0
0
0
中医治疗收 入
总 收 入 12577.3 28970.4 41233.3 总 收 入
药品
11480.9 27130.4 38611.3 药 品

药店的药品销售统计系统数据结构心得报告

药店的药品销售统计系统数据结构心得报告

药店的药品销售统计系统数据结构心得报告问题描述设计一系统,实现医药公司定期对销售各药品的记录进行统计,可按药品的编号、单价、销售量或销售额做出排名。

需求分析按编号排序输出药品销售记录按单价排序输出药品销售记录按销售量排序输出药品销售记录按销售额排序输出药品销售记录算法思想首先从数据文件中读出各药品的息记录,存储在顺序表中。

按编号排序时采用直接插入排序法,将待插入的记录暂存到监视哨中,记录逐个后移,直到找到插入位置;按单价排序时采用冒泡排序法,就是不断地比较和交换,将比较大的交换到前面,直到不需要交换为止;按销售量排序采用快速排序,去第一个记录为枢轴,把比枢轴小的关键字交换到前面,大的交换到后面,结果把排序记录分成两个表,再对左右子表重复上述过程,直至每一子表只有一个记录时,排序完成;按销售额排序采用堆排序,建初堆,然后把堆调整成大根堆。

算法设计1、菜单void menu()——输出所有功能选择。

2、输出全部息void Allprint(SequenList S)——从前往后遍历结构体数组,输出药的具体息。

3、读文件void Read(SequenList &S)——从数据文件中读出各药品的息记录,存储在顺序表中。

4、按编号排序void Numsort(SequenList &S)——直接插入排序法,将待插入的记录暂存到监视哨中,记录逐个后移,直到找到插入位置5、按单价排序void Pricesort(SequenList &S)——冒泡排序法,不断地比较和交换,将比较大的交换到前面,直到不需要交换为止。

6、对子表排序int Par(SequenList &S,int low,int high)——对顺序表的子表进行一趟排序,返回枢轴位置。

7、快速排序void Qsort(SequenList &S,int low,int high)——对子序列快速排序。

、按销售量排序void Countsort(SequenList &S)——对顺序表L做快速排序。

医药销售管理系统1.doc

医药销售管理系统1.doc

医药销售管理系统1医药销售管理系统(1)基础信息管理:药品信息、员工信息、客户信息、供应商信息等(2)进货管理:入库登记、入库登记查询、入库报表等(3)库房管理:库存查询、库存盘点、退货处理、库存报表等(4)销售管理:销售登记、销售退货、销售报表及相应查询等(5)统计:当日统计、当月统计及报表等DFD顶层图0层图客户医药销售管理系统管理员供应商客户销售管理1.0库房管理2.0统计4.0进货管理3.0客户信息库存信息供应商管理员信息供应商信息管理员订货或退货发货,退货或退订验证查询进货1层图销售管理库房管理订货销售登记1.1库存信息客户信息订单销售报表1.2销售退货1.3销售统计退货退货款退货信息订单信息订单信息客户客户库存报表2.3库存管理2.1客户发货库存信息库存查询2.2 库存统计药品信息查询1.4入库信息进货管理统计进货入库登记3.1供应商库存信息供应商信息入库登记查询3.2入库报表3.3入库信息入库统计管理员身份验证4.1管理员信息统计报表4.2入库统计库存统计销售统计查询结果管理员客户订单药品提交订购发货库存表进货供应商供货客户名提交订单号地区备注剩余款项 1 n订单编号客户名药品名药品编号价格数量1n药品编号药品名数量供应商编号n m供应商编号供应商名地区备注mnnm药品名药品编号类别供应商有效期产地别名进价零售价批发价备注销售日期入库时间单价数据流项目:⒈数据流:客户信息数据流来源:客户信息表数据流去向:核对客户信息组成:客户信息=客户名+提交订单号+剩余款项+地区+备注流量:每天上十次⒉数据流:药品信息数据流来源:库存表数据流去向:药品信息查询组成:药品信息=药品编号+药品名+别名+类型+供应商+有效期+产地+进价+零售价+批发价+备注流量:每天上十次⒊数据流:订单信息数据流来源:订单信息表数据流去向:发货管理组成:订单信息=订单号+客户名+药品编号+药品名+价格+数量+销售日期流量:每天上十次⒋数据流:库存信息数据流来源:库存表数据流去向:核对药品库存查询、核对进货单、核对订单组成: 库存信息=药品编号+药品名+供应商编号+入库时间+数量流量:每天上十次⒌数据流:供应商信息数据流来源:供应商信息表数据流去向:核对进货单组成:供应商信息=供应商编号+供应商名+地区+备注流量:每天上十次⒍数据流:管理员信息数据流来源:管理员信息表数据流去向:核对管理员信息组成:管理员信息=管理员姓名+密码+权限流量:每天上十次数据存储条目:。

药店药品销售管理系统

药店药品销售管理系统

辽宁工业大学数据库系统概论课程设计说明书题目:药品销售管理系统学院(系):电子与信息工程学院专业班级:软件工程班学号: 060403002学生姓名:指导教师:教师职称:副教授起止时间: 20117.4-2011.7.8辽宁工业大学课程设计(论文)任务书2011年 7 月 8目录第一章概述 (4)第二章问题定义 (5)第三章需求分析 (6)第四章数据库设计 (8)第五章界面设计 (8)第六章代码 (12)第一章概述本系统本着一切为用户着想的设计指导思想,力求做到界面美观大方,操作简捷明了,而且具备一个实用的操作系统的良好容错性,在用户出现误操作时能尽量及时地给出警告,以便用户能够及时进行改正。

由于不同用户所使用的计算机资源总是会受到不同条件的限制,因此,我们就要充分利用的功能,在设计出自己的功能强大的软件的同时,尽可能地减少对系统资源的占用,并且还要力求做到通过使用本药品销售管理系统,尽量使单位的药品销售工作系统化、自动化和规范化,从而达到提高企、事业单位效率的目的。

本系统开发的总体设计目标是使企、事业单位的办公人员能够轻松、快捷地完成本单位的药品销售管理任务。

第二章问题定义工作人员:系统的录入人员,主要指管理各种档案的工作人员,需要通过密码才能进入。

他们拥有对系统数据的录入、修改、查询、删除等操作权限。

但不可以更改系统密码。

查询人员:权限最低的登入人员,他们拥有对相关数据的查询权限,但不能对数据进行修改和删除。

系统管理人员:指药品销售管理系统的管理人员,他们拥有所有权限,包括对系统数据的录入、修改、查询、删除等操作权限。

可以对系统密码进行更改,可以管理用户信息、权限。

第三章需求分析一、主要功能:本系统主要用于企事业单位的药品销售管理,采用面向对象的设计思想,以菜单和表单的形式进行各表单的调用,其系统功能分析是在系统开发的总体任务的基础上完成的。

因此,本系统应该主要完成和实现如下功能:初始化系统数据;录入药品的基本信息数据;药品基本信息数据的修改和删除;药品信息的基本设定;浏览药品的信息;查询药品的具体参数;药品信息:在该项内容中将包括的数据库项有药品编号、药品名称、生产厂商、供应商、生产日期、保质期、单价、存货数量。

药店销售明细统计

药店销售明细统计

药店销售明细统计
用数据透视表统计同一商品编码,商品名称,规格的数量和金额。

原始表格如下:
第一步:
把表格中商品编码,单价,金额修改成数值。

方法是插入列,原列乘1,结果复制,粘帖为数值。

文字格式无法用数据透视表。

第二步,全选,插入数据透视表,
确定。

形成一个新的sheetg表,
把编码1拖入右下行,把数量1,金额拖入右下值。

第三步,把数据透视表复制,粘帖到新的sheet表中,把需要的扩展项加上。

第四步,在商品名称下,插入VLOOKUP公式,单击fx插入函数,
查找值为商品编码的第一格。

数据表为,从商品编码的第一格,到商品名称的最后一格。

选中后按F4。

数序列为从商品编码到商品名称的列数2.
匹配条件为0。

规格,单价和其他扩展项以此类推。

医药销售管理系统(药品销售管理系统的设计)

医药销售管理系统(药品销售管理系统的设计)

计算机能力扩展训练任务书学生姓名:专业班级:指导教师:工作单位:计算机科学与技术学院题目: 药品销售管理系统的设计初始条件:理论:本环节要求学生选用.NET或Jave EE开发环境及SQL Server数据库服务器,实施一个基于Web的小型应用系统的规划、设计、实现,最终达到一个原型系统功能的目标。

实践:计算机科学系实验中心提供计算机及软件开发环境。

要求完成的主要任务:(1)系统需求分析:使用软件工程所学的知识对拟开发的系统进行数据需求和功能需求分析。

(2)系统设计:根据系统需求分析进行概要设计和详细设计,采用B/S模式运用.NET 或Jave EE技术进行系统实现。

(3)编制好程序后,设计若干测试用例,上机测试所设计的原型系统。

(4)设计报告按格式要求书写。

设计报告正文的内容应包括:1)系统描述包括问题说明、数据需求和功能需求。

2)系统设计包括总体设计、数据库表结构、输入/输出设计、用户界面设计、处理过程设计。

3)系统测试包括测试用例的描述、测试方法和测试结果。

4)设计的特点、不足、收获和体会。

引言医药是关于人类同疾病作斗争和增进健康的科学,而制药工业则负责生产药品。

制药工业既是国民经济的一个部门,又是一项治病、防病、保健、计划生育的社会福利事业。

随着人们生活水平以及制药水平的不断提高,人们对医药的消费和需求也越来越旺盛,世界制药工业也保持庞大的市场需求和生产规模。

近年来,中国医药销售市场发展迅猛。

巨大的市场容量和可观的经济效益,引起各制药厂家纷纷加大投资,研究新配方,医药市场顿时烽烟四起,竞争是空前的激烈。

在如此形式下,介于生产厂家和消费者之间的医药销售企业在医药事业中发挥了至关重要的作用。

系统开发的背景和意义各医药销售公司都有它们自己的管理、销售、财务等职能部门。

如何管理好这些部门,使整个公司协调一致、高效率地运转,是各公司急待解决的问题。

但有的业务环节仍然运用人工记账的传统办法,既容易出错又会导致账目混乱,查询和统计起来非常不方便,费时又费力,严重时会给公司造成难以挽回的损失。

药店药品销售统计系统

药店药品销售统计系统

药店药品销售统计系统该系统主要由 1.输入记录并保存药品信息,2.在界面上显示所输入的药品信息,3.将药品信息根据5个方面进行排序并保存这三大模块所构成。

1.数据结构定义:typedef struct node //药品信息的存储结构类型定义{char num[10]; //药品编号char name[30];float price; //单价int count; //销售量float sale; //销售额}DataType;typedef struct //存储药品信息的顺序表的定义{DataType r[maxsize];int length;int type;}SqList;2.系统功能模块介绍:3.运行与调试分析:程序的调试分析主要由两大步骤组成。

首先认真阅读所编写好的程序,进一步进行检查。

在过程中修改一些常识性简单的错误,例如:符号“}”“;”的缺失,对不必要的叙述进行修改删减,使程序更简洁美观,增强程序的可读性,区分函数与子函数,分析变量含义的变更是否会导致错误,在关键程序后面给上相关的注释,让程序变得更易理解。

其次在阅读检查程序并修改后,进行初步的调试,根据程序设计思路查看各变量的含义是否符合设计初衷,并作适当的修改,初步调试完成后运行程序针对所显示的错误信息进行修改与优化。

例如:调试过程中发现scanf函数处报错,则经分析发现格式上缺少“&”符号。

如果调试过程中忽而出现几十上百条错误,则问题可能是头文件或者某一两处出现错误,此时应根据程序流程图仔细分析错误所在,同时可单步运行输入实验数据查看各变量含义是否出错,进而合理的修改。

输入药品种类数为3:以下为三种药品信息输入1:输入2:输入3:输入4:输入54.体会:通过本次课程设计,培养了我关于系统的设计理念,掌握具体的编程方法,提高了个人的综合实践能力。

学会通过所学的知识和查阅相关资料,能够根据实际问题设计出实用并可靠的系统程序。

药店的药品销售统计系统数据结构课程设计

药店的药品销售统计系统数据结构课程设计

药店的药品销售统计系统数据结构课程设计1. 引言药店药品销售统计系统是现代药店管理的重要组成部分,通过对药店的药品销售数据进行统计和分析,可以帮助药店进行销售预测、库存管理、经营决策等方面的工作。

本文将对药店的药品销售统计系统的数据结构进行课程设计,其中包括以下要素:药品信息、销售记录、客户信息和库存管理。

在设计过程中,将充分考虑数据结构的存储和操作效率,以满足实际应用的需求。

2. 药品信息2.1 药品数据结构药品信息是药店管理中的重要数据之一,我们需要为药品信息设计一个合适的数据结构。

在药品数据结构中,我们可以考虑以下字段: - 药品名称 - 生产厂家 - 规格 - 单价 - 库存数量2.2 药品数据结构的操作在药品数据结构中,我们需要实现以下操作: - 药品信息的添加:根据输入的药品信息,将药品添加到药品数据结构中。

- 药品信息的查询:根据药品名称或其他属性,查询药品信息。

- 药品信息的修改:根据药品名称或其他属性,修改药品信息。

- 药品信息的删除:根据药品名称或其他属性,删除药品信息。

3. 销售记录3.1 销售记录数据结构销售记录是药店管理中的核心数据之一,我们需要为销售记录设计一个合适的数据结构。

在销售记录数据结构中,我们可以考虑以下字段: - 销售日期 - 销售药品- 销售数量 - 销售金额3.2 销售记录数据结构的操作在销售记录数据结构中,我们需要实现以下操作: - 销售记录的添加:根据输入的销售记录,将销售记录添加到销售记录数据结构中。

- 销售记录的查询:根据销售日期或其他属性,查询销售记录。

- 销售记录的修改:根据销售日期或其他属性,修改销售记录。

- 销售记录的删除:根据销售日期或其他属性,删除销售记录。

4. 客户信息4.1 客户信息数据结构客户信息是药店管理中的重要数据之一,我们需要为客户信息设计一个合适的数据结构。

在客户信息数据结构中,我们可以考虑以下字段: - 客户姓名 - 性别 - 年龄 - 联系方式4.2 客户信息数据结构的操作在客户信息数据结构中,我们需要实现以下操作: - 客户信息的添加:根据输入的客户信息,将客户信息添加到客户信息数据结构中。

药店的药品销售统计系统

药店的药品销售统计系统

数据结构实验报告实验六实验题目:小型系统开发(课程设计)指导老师:王文霞专业班级:计算机科学与技术系1102班姓名:王珣(2011100216)李国宝(2011100220)马佳丽(2011100238)张艳(2011100257) 2013年 5月30日实验类型_设计_ 实验室_软件实验室一__一、实验题目小型系统开发(课程设计)二、实验目的和要求掌握小型系统开发方法,提高学生综合开发能力。

根据实际问题,设计方案,综合运用课程知识,完成《学生成绩管理系统》或《数据结构算法演示系统》的设计、编程与调试工作。

三、实验内容上机实验内容三:药店的药品销售统计系统1.设计一系统,实现医药公司定期对各药品的销售记录进行统计,并按药品编号、单价、销售量或销售额做出排序。

2.设计分析在设计中,首先从数据文件读出各药品的信息记录,存储在顺序表中。

各药品的信息包括:药品编号、药品名称、单价、销售量、销售额。

其中药品编号共4位,采用字母和数字混合编号,如:B125,前一位为大写字母,后三位为数字。

3.存储结构类型定义①药品信息的存储结构类型定义typedef struct node{char num[4];/*药品编号*/char name[10]; /*药品名称*/float price;/*单价*/int count; /*销售量*/float sale; /*销售额*/}DataType;②存储药品信息的顺序表的定义typedef struct{DataType r[maxsize];int length;}sequenList;四、实验步骤#include<stdio.h>#include<stdlib.h>#include<string.h>#define maxsize 100 //该医药公司药品最大种类typedef struct node //药品信息的存储结构类型定义{char num[10]; //药品编号char name[30];float price; //单价int count; //销售量float sale; //销售额}DataType;typedef struct //存储药品信息的顺序表的定义{DataType r[maxsize];int length;int type;}SqList;void number(SqList *L) //按药品编号排序{int i,j;char num1[10],name1[30];float price1,sale1;int count1;for(i=0;i<L->type;i++)for(j=i+1;j<L->type;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<L->type;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);}void nam(SqList *L) //按药品名称排序{int i,j;char num1[10],name1[30];float price1,sale1;int count1;for(i=0;i<L->type;i++)for(j=i+1;j<L->type;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<L->type;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);}void pric(SqList *L){int i=0,j;char num1[10],name1[30];float price1,sale1;int count1;for(i=0;i<L->type;i++)for(j=i+1;j<L->type;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<L->type;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);}void coun(SqList *L){int i=0,j;char num1[10],name1[30];float price1,sale1;int count1;for(i=0;i<L->type;i++)for(j=i+1;j<L->type;j++){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<L->type;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);}void sales(SqList *L){int i=0,j;char num1[10],name1[30];float price1,sale1;int count1;for(i=0;i<L->type;i++)for(j=i+1;j<L->type;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[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<L->type;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);}void menu(){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;int n,i,m;char num1[10],name1[30];float price1,sale1;int count1;FILE *fp;L=(SqList*)malloc(sizeof(SqList));fp=fopen("medince.txt","w"); //创建文件if(!fp) {printf("Sorry! File open error!\n");exit(0);}printf("请输入药品种类数(<=100):");scanf("%d",&n);L->type=n;for(i=0;i<n;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! File open error!");exit(0);}for(i=0;i<n;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<L->type;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){case 1:number(L);break;case 2:nam(L);break;case 3:pric(L);break;case 4:coun(L);break;case 5:sales(L);break;case 0:exit(0);break;default:printf("Sorry!输入有误!");break;}}}运行结果:五、实验总结通过此次试验我们完成了药店的药品销售统计系统。

药店的药品销售统计系统

药店的药品销售统计系统

头文件drug.h#define MaxSize 50typedef struct node{char num[8]; /*药品编号*/char name[16]; /*药品名称*/float price; /*药品单价*/int count; /*销售数量*/float sale; /*本药品销售额*/int next;}DataType;typedef struct{DataType r[MaxSize];int length;}SequenList;******************************************main.cpp#include "drug.h"#include <iostream>#include <fstream>using namespace std;void RadixSort(SequenList &L);void BubbleSort(SequenList &S);void QuickSort(SequenList &L);void HeapSort(SequenList &H);void main(){SequenList k;k.length=1;int choice;fstream in("E:\\abd.txt",ios::in);while (!in.eof()){in>>k.r[k.length].num>>k.r[k.length].name>>k.r[k.length].price>>k.r[k.length].count>>k.r[k.l ength].sale;k.length++;}in.close();cout<<"此系统有如下功能"<<endl;cout<<" ************************** "<<endl;cout<<" 1、按药品编号排序"<<endl;cout<<" 2、按药品单价排序"<<endl;cout<<" 3、按药品销售量排序"<<endl;cout<<" 4、按药品销售额排序"<<endl;cout<<" 0、推出系统"<<endl;cout<<" ************************** "<<endl;cout<<"请输入您的选择:"<<endl;cin>>choice;while (choice){switch(choice){case 1:RadixSort(k);break;//基数排序case 2:BubbleSort(k);break;//冒泡排序case 3:QuickSort(k);break;//快速排序case 4:HeapSort(k);break;//堆排序default:cout<<"没有您选择的功能,请确定后重新输入。

数据结构课程设计 药品销售统计系统

数据结构课程设计 药品销售统计系统

数据结构课程设计药品销售统计系统在当今数字化的时代,有效的数据管理和分析对于企业的运营和决策至关重要。

药品销售行业也不例外,一个高效准确的药品销售统计系统能够为企业提供关键的信息,帮助其优化库存管理、制定营销策略以及提高客户满意度。

本次数据结构课程设计的目标就是构建这样一个实用的药品销售统计系统。

一、系统需求分析首先,明确药品销售统计系统的主要功能需求。

它需要能够记录药品的基本信息,如药品名称、规格、生产厂家、进价、售价等。

同时,要能够记录每一笔销售交易,包括销售日期、销售数量、销售对象等。

系统还应该具备统计功能,能够按照不同的条件,如时间段、药品类别、销售区域等,对销售数据进行汇总和分析。

为了满足这些功能需求,系统需要具备数据存储、数据查询、数据更新和数据统计的能力。

在数据存储方面,要选择合适的数据结构来有效地组织和管理药品信息和销售记录。

在数据查询和更新方面,要设计高效的算法,以快速准确地获取和修改数据。

在数据统计方面,要能够灵活地根据用户的需求生成各种统计报表。

二、数据结构选择考虑到系统的功能需求和数据特点,选择合适的数据结构是关键。

对于药品信息,可以使用结构体数组来存储。

每个结构体包含药品的各种属性,如名称、规格、进价、售价等。

对于销售记录,可以使用链表来存储。

链表的节点包含销售日期、销售数量、销售对象等信息。

链表的优点是便于动态地添加和删除销售记录,能够适应销售业务的不断变化。

为了提高查询效率,可以建立索引。

例如,为药品名称建立哈希索引,以便快速查找特定药品的信息。

三、系统功能模块设计1、药品信息管理模块药品信息录入:允许用户输入新药品的详细信息,并将其保存到系统中。

药品信息修改:可以对已存在的药品信息进行修改,如调整进价、售价等。

药品信息删除:对于不再销售的药品,能够从系统中删除其信息。

2、销售记录管理模块销售记录录入:记录每一笔销售交易的相关信息。

销售记录查询:根据指定条件,如销售日期、销售对象等,查询销售记录。

药品存销信息管理系统(全)

药品存销信息管理系统(全)

信息工程学院《数据库课程设计》论文题目:药品存销信息管理系统学号:***********专业班级:计算机科学与技术103姓名:*****指导老师:******完成日期:2012年01月13日药品存销信息管理系统数据库设计****(信息工程学院计算机科学与技术10级3班)摘要本次课程设计是药品存销信息管理系统,伴随着社会的复杂化,传统的“一支笔,一本帐簿”的药品销售管理方式也慢慢的无法适应形势的变化。

随着信息技术的发展,计算机已被广泛的用于社会的各个领域,成为推动社会发展的技术动力。

因此设计药品存销信息系统是当务之急,本系统包括药品采购,药品存储,药品销售。

药品采购包括采购员进货,采购员退货。

药品存储包括仓库存储以及仓库管理员管理仓库。

药品销售包括顾客买药与顾客退药。

本系统包括几个视图来使数据库使用者快速的查询想要得到的信息,本系统包括几个PL/SQL语句块,还包括几个触发器,使得数据得到同步修改,使数据库中的数据更加合理。

关键字:数据库;经销存;药品管理系统目录目录 ............................................................................................................................................. - 1 - 1.需求分析.................................................................................................................................. - 3 -1.1需求分析阶段处理对象及组织................................................................................... - 3 -1.2信息处理及系统功能................................................................................................... - 3 -1.2.2数据字典........................................................................................................... - 5 - 2.数据库结构设计.................................................................................................................... - 5 -2.1 概念设计...................................................................................................................... - 5 -2.2 逻辑设计...................................................................................................................... - 8 -2.2.1 建立关系模式.................................................................................................... - 8 -2.2.2 关系模式规范化处理.................................................................................... - 10 -以上关系模式中的各实体和联系之间不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF。

药店的药品销售统计系统审批稿

药店的药品销售统计系统审批稿

药店的药品销售统计系统YKK standardization office【 YKK5AB- YKK08- YKK2C- YKK18】一、设计题目[问题描述]设计一系统,实现医药公司定期对销售各药品的记录进行统计,可按药品的编号、单价、销售量或销售额做出排名。

二、需求分析药品的销售统计是在利用电脑的实现生活中的需求,在如今医疗事业蓬勃的发展下,药店的药品数目也日益的增多,根据社会的需求,在这种大潮的推动力下药店药品的销售管理系统成了迫切的需要,在这种大前提下,我们实现了这样的系统来完成药品的销售统计。

今年来,药品零售业的格局,出现了很大的变化医药改革为零售药房,特别是为连锁药房提供了广阔的发展空间。

医药企业自身发展也提出了自身发展也提出了改革的要求。

集团化、代理制等形式的出现打破了过去暗地域行政区划分设立的医药流通格局,重批发轻工业零售的传统观念正随着改革的深入而逐步发生着变化,特别是医药零售行业早已打破了过去那种国有医药一统天下的局面,这也迫使许多医药企业纷纷适应市场变化的要求进行零分设的改革,利用原有医药零售网店的基础建设建立连锁药房,这即成为医药企业改革噶站的必然热点,有形成这些企业参与市场竞争的经济增长点,再这样的大环境之下,药店基本现状有很多情况。

一、药店的功能和经验重点发生了根本性的转变。

二、药店的布局不合理。

各地药店纷纷开业,甚至出现了有点多过于米店的局面,并且出现了扎堆经营的现象。

三、药店规模相对偏小,缺乏市场竞争力。

四、陷入评价竞争的泥潭,低层次的价格竞争,使很多药店到了举步维艰的地步。

五、药店经营成本在提高,利润在下降。

六、企业整体服务意识淡薄,从业人员缺乏专业素质。

因为这些现状,药店销售管理系统的研发也是迫在眉睫,目前市场上拥有的各种系统软件也因为药店这样的状况,而存在相同的状况。

三、算法设计1.算法思想在本设计中,首先从数据文件中读出各药品的信息记录,存储在顺序表中。

各药品的信息包括:药品编号、药名、药品单价、销出数量、销售额。

(优质)(医疗药品管理)药品销售系统_

(优质)(医疗药品管理)药品销售系统_

(医疗药品管理)药品销售系统_摘要2序言3第一章系统分析41.1问题描述41.2系统流程图51.3数据流程图61.4数据字典7第二章系统总体设计82.1数据库概念设计(E-R图)82.2总体软件设计图92.3数据表的设计92.4关系模型及关系图(DrugSell)11第三章详细设计123.1数据库连接、登陆模块及主菜单123.2信息查询模块123.3管理模块13第四章系统测试134.1测试方法134.2测试用例134.3用户销售分析18第五章软件使用说明书18总结19参考文献1致谢2附件Ⅰ部分原程序代码1摘要随着我国市场经济的蓬勃发展,近年来医药行业发展迅速。

由于品种类不断增加和需求的日益旺盛,旧有的企业管理模式已不能适应新型企业的需要。

靠手工记账进行药品的进、销、存的管理已经明显力不从心。

如何利用现代信息技术使企业拥有快速、高效的市场反应能力和更高的效率是医药经营企业关心的问题。

目前我国的大型药店很多采用了计算机管理,但是大部分中小型药店还以手工管理为主,主要原因是缺少相应的软件支持。

部分小型药店采用大型医药管理软件,开发一套药店信息管理系统,可以让职工和消费者最快速度了解到药品信息,并方便药品的存储和管理。

本系统的目的就是要开发一套方便药品销售存储和管的。

关键词:PowerBuilder;SQL语言;数据库设计;药店管理信息系统设计序言在人类跨入21世纪之际,席卷全世界的信息化浪潮正在全球范围内轰轰烈烈的上演,它已经深刻地渗透到现代社会的各个领域:通讯、经济、技术、政治等等。

在医疗卫生领域,信息化概念的引入,尤其是医院信息系统的应用,大大改变了医院的管理模式和工作流程,对提高医院的管理水平、质量效益、经济效益、社会效益起到了巨大地促进作用。

药品销售管理系统是目前一个医药公司不可缺少的部分,所以药品销售管理系统应该能够为药品销售的决策者和管理者提供充足的信息,快捷的查询手段和有效的管理方式。

但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

数据结构课程设计 药品销售统计系统

数据结构课程设计 药品销售统计系统

数据结构课程设计药品销售统计系统设计题目药品销售统计系统学院名称信息工程学院专业班级姓名学号一、题目: 药品销售统计系统二、设计目标为了帮助学生进一步熟悉掌握冒泡排序法,快速排序法,直接插入排序法和选择排序法。

三、问题描述设计一个系统,实现医药公司定期对销售各药品的记录进行统计,可按药品的编号、单价、销售量或者销售额做出排名。

四、需求分析1. 创建药品信息;2. 用冒泡对药品单价排序;3. 用快排对药品销售量排序;4. 用选择排序对销售额排序;5. 退出系统;6. 打印内容。

五、概要设计1. 功能设计一个完整的系统应具有以下功能: 1)BubbleSort(k):冒泡排序2)QuickSort(&k):快速排序3)SelectionSort(k):选择排序 4)退出程序。

六、详细设计1.流程图- 1 -开始主函数main()输入choice1 2 30BubbleSort(k)QuickSort(&k)SelectionSort(k)退出~输出结束2.代码#include "stdio.h" #define MaxSize 100typedef struct{char num[10]; /*药品编号*/char name[16]; /*药品名称*/float price; /*药品单价*/int count; /*销售数量*/float sale; /*本药品销售额*/int next;}DataType;- 2 -typedef struct{DataType r[MaxSize];int length;}SequenList;void BubbleSort(SequenList &L) //冒泡排序 { int i,j;bool flag;DataType temp;for(i=L.length-1;i>=0;i--){flag=0;for (j=0;j<i;j++){if (L.r[j].price>L.r[j+1].price){temp=L.r[j];L.r[j]=L.r[j+1];L.r[j+1]=temp;flag=1;}}if(!flag)break;}printf("按单价排序后的结果是:\n");for (i=0;i<L.length;i++){printf("%s %s %f %d%f",L.r[i].num,L.r[i].name,L.r[i].price,L.r[i].count,L.r[i].sale);printf("\n");}}void swap(DataType *a,DataType *b)- 3 -{DataType temp=*a;*a=*b;*b=temp;}void Qsort(SequenList *L,int Low,int High){DataType temp=L->r[Low];int left=Low,right=High;if(Low>=High)return;swap(&L->r[Low],&L->r[right]);while(1){while((Low<High)&&(temp.count >=L->r[Low].count )) Low++;while((Low<High)&&(temp.count <=L->r[High].count )) High--;if(Low<High)swap(&L->r[Low],&L->r[High]);else break;}swap(&L->r[Low],&L->r[right]); //对两个子集进行快排Qsort(L,left,Low-1);Qsort(L,Low+1,right);}void QuickSort(SequenList *L)//快速排序{int i;Qsort(L,0,L->length-1);printf("用快速排序对销售量排序后的结果是:\n");for( i=0;i<L->length;i++){- 4 -printf("%s %s %f %d %f",L->r[i].num,L->r[i].name,L->r[i].price,L->r[i].count,L->r[i].sale);printf("\n");}}void SelectionSort(SequenList &L) //选择排序{int i,j,min;DataType temp;for(i=0;i<L.length-1;i++){min=i;for(j=i+1;j<L.length;j++){if(L.r[j].sale < L.r[min].sale)min=j;temp=L.r[i];L.r[i]=L.r[min];L.r[min]=temp;}}for( i=0;i<L.length;i++){printf("%s %s %f %d%f",L.r[i].num,L.r[i].name,L.r[i].price,L.r[i].count,L.r[i].sale);printf("\n");}}- 5 -void main(){SequenList k;k.length=0;int choice;while (k.length<5){printf("请输入药品编号:");scanf("%s",&k.r[k.length].num);printf("请输入药品名称:");scanf("%s",&k.r[k.length].name);printf("请输入药品单价:");scanf("%f",&k.r[k.length].price);printf("请输入药品销售数量:");scanf("%d",&k.r[k.length].count);printf("请输入药品销售额:");scanf("%f",&k.r[k.length].sale);k.length++;}printf("此系统有如下功能:\n");printf(" ******************************** \n"); printf(" 1、用冒泡对药品单价排序 *\n");printf(" 2、用快排对药品销售量排序 * \n"); printf(" 3、用选择排序对销售额排序 * \n"); printf(" 0、退出系统 * \n");printf(" ******************************** \n"); printf("请输入您的选择:\n");scanf("%d",&choice);while (choice){switch(choice){case 1:BubbleSort(k);break; //冒泡排序case 2:QuickSort(&k);break; //快速排序case 3:SelectionSort(k);break; //选择排序default:printf("没有您选择的功能,请确定后重新输入 \n"); - 6 -}printf("********************************* \n");printf(" 1、用冒泡对药品单价排序 \n");printf(" 2、用快排对药品销售量排序 \n");printf(" 3、用选择排序对销售额排序 \n");printf(" 0、退出系统 \n");printf("********************************* \n");printf("请输入您的选择:\n");scanf("%d",&choice);}}七( 测试分析, 白盒:代码完整, 黑盒:打开VC++6.0环境,编译连接程序是否有错连接生成可执行exe文件八、使用说明打开VC++6.0环境,编译连接生成可执行文件,输入药品信息,按药品的编号、单价、销售量或者销售额做出排名。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、设计题目[问题描述]设计一系统,实现医药公司定期对销售各药品的记录进行统计,可按药品的编号、单价、销售量或销售额做出排名。

二、需求分析药品的销售统计是在利用电脑的实现生活中的需求,在如今医疗事业蓬勃的发展下,药店的药品数目也日益的增多,根据社会的需求,在这种大潮的推动力下药店药品的销售管理系统成了迫切的需要,在这种大前提下,我们实现了这样的系统来完成药品的销售统计。

今年来,药品零售业的格局,出现了很大的变化医药改革为零售药房,特别是为连锁药房提供了广阔的发展空间。

医药企业自身发展也提出了自身发展也提出了改革的要求。

集团化、代理制等形式的出现打破了过去暗地域行政区划分设立的医药流通格局,重批发轻工业零售的传统观念正随着改革的深入而逐步发生着变化,特别是医药零售行业早已打破了过去那种国有医药一统天下的局面,这也迫使许多医药企业纷纷适应市场变化的要求进行零分设的改革,利用原有医药零售网店的基础建设建立连锁药房,这即成为医药企业改革噶站的必然热点,有形成这些企业参与市场竞争的经济增长点,再这样的大环境之下,药店基本现状有很多情况。

一、药店的功能和经验重点发生了根本性的转变。

二、药店的布局不合理。

各地药店纷纷开业,甚至出现了有点多过于米店的局面,并且出现了扎堆经营的现象。

三、药店规模相对偏小,缺乏市场竞争力。

四、陷入评价竞争的泥潭,低层次的价格竞争,使很多药店到了举步维艰的地步。

五、药店经营成本在提高,利润在下降。

六、企业整体服务意识淡薄,从业人员缺乏专业素质。

因为这些现状,药店销售管理系统的研发也是迫在眉睫,目前市场上拥有的各种系统软件也因为药店这样的状况,而存在相同的状况。

三、算法设计1.算法思想在本设计中,首先从数据文件中读出各药品的信息记录,存储在顺序表中。

各药品的信息包括:药品编号、药名、药品单价、销出数量、销售额。

药品编号共4位,采用字母和数字混合编号,如:A125,前一位为大写字母,后三位为数字,按药品编号进行排序时,可采用基数排序法。

对各药品的单价、销售量或销售额进行排序时,可采用多种排序方法,如直接插入排序、冒泡排序、快速排序,直接选择排序等方法。

在本设计中,对单价的排序采用冒泡排序法,对销售量的排序采用快速排序法,对销售额的排序采用堆排序法。

药品信息的元素类型定义:typedef struct node{ char num[4]; /*药品编号*/char name[10]; /*药品名称*/float price; /*药品单价*/int count; /*销售数量*/float sale; /*本药品销售额*/}DataType;存储药品信息的顺序表的定义:typedef struct{ DataType r[MaxSize];int length;}SequenList;2.算法设计分析首先从txt文件中读取数据信息并保存,本次试验采用了5中排序方法。

其中编号排序是按照基数排序,采用多关键字进行排序。

基数排序是借助“分配”和“收集”两种操作对单逻辑关键字进行排序的一种内排序方法。

对单价的排序采用了直接插入排序和冒泡排序,直接插入排序就是首先将第一个元素看成是一个有序的,然后第二个元素和第一个比较,若大于第一个则放在其后面否则放前面,依次直至最后一个。

冒泡排序就是采用两个循环,即将第一个元素和第二个比较若第一个大于第二个则交换,否则不变,然后第二个和第三个比较,同上。

第一趟可将最大的一个放在最后,依次可得排序。

销售量是快速排序,快速排序就是首先设置一个关键字,然后让最后一个和其比较,直至找到一个比关键字小的,然后和其交换,接下来让第一个和其比较,直至找到一个比其大的,然后交换,在找到的位置分别做标记,依次执行即可。

销售额使用的是堆排序,堆排序首先要建立一个完全二叉树的堆,其标准符合为父节点始终比子节点大。

然后依次输出顶结点,然后在建立一个符合标准的堆重复操作即可。

3.流程图四、调试分析与结果输入药品的信息按药品的编号。

按药品的名称。

按药品的销售额。

五、课设总结六、附录(源代码)#include<stdio.h>#include<stdlib.h>#include<string.h>#define maxsize 100 //该医药公司药品最大种类typedef struct node //药品信息的存储结构类型定义{char num[10]; //药品编号char name[30];float price; //单价int count; //销售量float sale; //销售额}DataType;typedef struct //存储药品信息的顺序表的定义{DataType r[maxsize];int length;int type;}SqList;void number(SqList *L) //按药品编号排序{int i,j;char num1[10],name1[30];int count1;for(i=0;i<L->type;i++) //循环for(j=i+1;j<L->type;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<L->type;i++)printf("\t %s\t %s\t %f\t %d\t %f\n",L->r[i].num,L->r[i].nam e,L->r[i].price,L->r[i].count,L->r[i].sale);}void nam(SqList *L) //按药品名称排序{int i,j;char num1[10],name1[30];int count1;for(i=0;i<L->type;i++)for(j=i+1;j<L->type;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<L->type;i++)printf("\t %s\t %s\t %f\t %d\t %f\n",L->r[i].num,L->r[i].nam e,L->r[i].price,L->r[i].count,L->r[i].sale);}void pric(SqList *L) //按药品单价排序{int i=0,j;char num1[10],name1[30];float price1,sale1;int count1;for(i=0;i<L->type;i++)for(j=i+1;j<L->type;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<L->type;i++)printf("\t %s\t %s\t %f\t %d\t %f\n",L->r[i].num,L->r[i].nam e,L->r[i].price,L->r[i].count,L->r[i].sale);}void coun(SqList *L) //按药品销售量排序{int i=0,j;char num1[10],name1[30];float price1,sale1;int count1;for(i=0;i<L->type;i++)for(j=i+1;j<L->type;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<L->type;i++)printf("\t %s\t %s\t %f\t %d\t %f\n",L->r[i].num,L->r[i].nam e,L->r[i].price,L->r[i].count,L->r[i].sale);}void sales(SqList *L) //按药品销售额排序{int i=0,j;char num1[10],name1[30];float price1,sale1;int count1;for(i=0;i<L->type;i++)for(j=i+1;j<L->type;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<L->type;i++)printf("\t %s\t %s\t %f\t %d\t %f\n",L->r[i].num,L->r[i].nam e,L->r[i].price,L->r[i].count,L->r[i].sale);}void menu(){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;int n,i,m;char num1[10],name1[30];float price1,sale1;int count1;FILE *fp;L=(SqList*)malloc(sizeof(SqList));fp=fopen("medince.txt","w"); //创建文件if(!fp) {printf("Sorry! File open error!\n");exit(0);}printf("请输入药品种类数(<=100):");scanf("%d",&n);L->type=n;for(i=0;i<n;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! File open error!");exit(0);}for(i=0;i<n;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<L->type;i++)printf("\t %s\t %s\t %f\t %d\t %f\n",L->r[i].num,L->r[i].nam e,L->r[i].price,L->r[i].count,L->r[i].sale);while(1) //循环结构{ menu();scanf("%d",&m);switch(m){case 1:number(L);break;case 2:nam(L);break;case 3:pric(L);break;case 4:coun(L);break;case 5:sales(L);break;case 0:exit(0);break;default:printf("抱歉!输入有误,请重新输入~~");break;}}}。

相关文档
最新文档