




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验五实验五 药店的药品销售统计系统 排序应用 药店的药品销售统计系统 排序应用 一 实验目的一 实验目的 1 1 帮助读者复习帮助读者复习 C C 语言程序设计中的知识 语言程序设计中的知识 2 2 对数据进行排序时 可采用多种排序方法 如直接插入排序 冒泡排序 对数据进行排序时 可采用多种排序方法 如直接插入排序 冒泡排序 快速排序 直接选择排序等方法的实现 快速排序 直接选择排序等方法的实现 需求分析需求分析 设计一系统 实现医药公司定期对销售各药品的记录进行统计 可按药品的编号 单价 设计一系统 实现医药公司定期对销售各药品的记录进行统计 可按药品的编号 单价 销售量或销售额做出排名 销售量或销售额做出排名 二 实验内容和要求二 实验内容和要求 问题要求问题要求 设计一系统 实现医药公司定期对销售各药品的记录进行统计 可按药品的编号 单设计一系统 实现医药公司定期对销售各药品的记录进行统计 可按药品的编号 单 价 销售量或销售额做出排名 价 销售量或销售额做出排名 问题分析问题分析 在本设计中 首先从数据文件中读出各药品的信息记录 存储在顺序表中 各药品的在本设计中 首先从数据文件中读出各药品的信息记录 存储在顺序表中 各药品的 信息包括 药品编号 药名 药品单价 销出数量 销售额 药品编号共信息包括 药品编号 药名 药品单价 销出数量 销售额 药品编号共 4 4 位 采用字母位 采用字母 和数字混合编号 如 和数字混合编号 如 125125 前一位为大写字母 后三位为 前一位为大写字母 后三位为 1212 数字 按药品编号进行排序数字 按药品编号进行排序 时 可采用基数排序法 对各药品的单价 销售量或销售额进行排序时 可采用多种排序时 可采用基数排序法 对各药品的单价 销售量或销售额进行排序时 可采用多种排序 方法 如直接插入排序 冒泡排序 快速排序 直接选择排序等方法 在本设计中 对单方法 如直接插入排序 冒泡排序 快速排序 直接选择排序等方法 在本设计中 对单 价的排序采用冒泡排序法 对销售量的排序采用快速排序法 对销售额的排序采用堆排序价的排序采用冒泡排序法 对销售量的排序采用快速排序法 对销售额的排序采用堆排序 法 法 三 算法设计三 算法设计 首先从首先从 txttxt 文件中读取数据信息并保存 本次试验采用了文件中读取数据信息并保存 本次试验采用了 5 5 中排序方法 其中编号排序中排序方法 其中编号排序 是按照基数排序 采用多关键字进行排序 基数排序是借助是按照基数排序 采用多关键字进行排序 基数排序是借助 分配分配 和和 收集收集 两种操作两种操作 对单逻辑关键字进行排序的一种内排序方法 对单价的排序采用了直接插入排序和冒泡排对单逻辑关键字进行排序的一种内排序方法 对单价的排序采用了直接插入排序和冒泡排 序 直接插入排序就是首先将第一个元素看成是一个有序的 然后第二个元素和第一个比序 直接插入排序就是首先将第一个元素看成是一个有序的 然后第二个元素和第一个比 较 若大于第一个则放在其后面否则放前面 依次直至最后一个 冒泡排序就是采用两个较 若大于第一个则放在其后面否则放前面 依次直至最后一个 冒泡排序就是采用两个 循环 即将第一个元素和第二个比较若第一个大于第二个则交换 否则不变 然后第二个循环 即将第一个元素和第二个比较若第一个大于第二个则交换 否则不变 然后第二个 和第三个比较 同上 第一趟可将最大的一个放在最后 依次可得排序 销售量是快速排和第三个比较 同上 第一趟可将最大的一个放在最后 依次可得排序 销售量是快速排 序 快速排序就是首先设置一个关键字 然后让最后一个和其比较 直至找到一个比关键序 快速排序就是首先设置一个关键字 然后让最后一个和其比较 直至找到一个比关键 字小的 然后和其交换 接下来让第一个和其比较 直至找到一个比其大的 然后交换 字小的 然后和其交换 接下来让第一个和其比较 直至找到一个比其大的 然后交换 在找到的位置分别做标记 依次执行即可 销售额使用的是堆排序 堆排序首先要建立一在找到的位置分别做标记 依次执行即可 销售额使用的是堆排序 堆排序首先要建立一 个完全二叉树的堆 其标准符合为父节点始终比子节点大 然后依次输出顶结点 然后在个完全二叉树的堆 其标准符合为父节点始终比子节点大 然后依次输出顶结点 然后在 建立一个符合标准的堆重复操作即可 建立一个符合标准的堆重复操作即可 四 调试分析及数据测试四 调试分析及数据测试 输入药品输入药品 五 测试结果五 测试结果 测试结果符合程序写作要求测试结果符合程序写作要求 include include include include include include define define maxsizemaxsize 100100 该医药公司药品最大种类该医药公司药品最大种类 typedeftypedef structstruct nodenode 药品信息的存储结构类型定义药品信息的存储结构类型定义 charchar num 10 num 10 药品编号药品编号 charchar name 30 name 30 floatfloat price price 单价单价 intint count count 销售量销售量 floatfloat sale sale 销售额销售额 DataType DataType typedeftypedef structstruct 存储药品信息的顺序表的定义存储药品信息的顺序表的定义 DataTypeDataType r maxsize r maxsize intint length length intint type type SqList SqList voidvoid number SqListnumber SqList L L 按药品编号排序按药品编号排序 intint i j i j charchar num1 10 name1 30 num1 10 name1 30 floatfloat price1 sale1 price1 sale1 intint count1 count1 for i 0 itype i for i 0 itype i for j i 1 jtype j for j i 1 jtype j if strcmp L if strcmp L r j num L r i num 0 r j num L r i num 0 strcpy num1 L strcpy num1 L r j num r j num strcpy L r j num L strcpy L r j num L r i num r i num strcpy L r i num num1 strcpy L r i num num1 strcpy name1 L r j name strcpy name1 L r j name strcpy L r j name L strcpy L r j name L r i name r i name strcpy L r i name name1 strcpy L r i name name1 price1 L r j price price1 L r j price L r j price L r i price L r j price L r i price L r i price price1 L r i price price1 count1 L r j count count1 L r j count L r j count L r i count L r j count L r i count L r i count count1 L r i count count1 sale1 L r j sale sale1 L r j sale L r j sale L r i sale L r j sale L r i sale L r i sale sale1 L r i sale sale1 printf tprintf t 按药品编号排序后按药品编号排序后 n n printf tprintf t 药品编号药品编号 药品名药品名 称称 药品单价药品单价 药品销售量药品销售量 药品销售额药品销售额 n n for i 0 itype i for i 0 itype i printf tprintf t s t s t s t s t f t f t d t d t f n L r i num L r i name L r i price L f n L r i num L r i name L r i price L r i count L r i sale r i count L r i sale voidvoid nam SqListnam SqList L L 按药品名称排序按药品名称排序 intint i j i j charchar num1 10 name1 30 num1 10 name1 30 floatfloat price1 sale1 price1 sale1 intint count1 count1 for i 0 itype i for i 0 itype i for j i 1 jtype j for j i 1 jtype j if strcmp L if strcmp L r j name L r i name 0 r j name L r i name 0 strcpy num1 L strcpy num1 L r j num r j num strcpy L r j num L strcpy L r j num L r i num r i num strcpy L r i num num1 strcpy L r i num num1 strcpy name1 L r j name strcpy name1 L r j name strcpy L r j name L strcpy L r j name L r i name r i name strcpy L r i name name1 strcpy L r i name name1 price1 L r j price price1 L r j price L r j price L r i price L r j price L r i price L r i price price1 L r i price price1 count1 L r j count count1 L r j count L r j count L r i count L r j count L r i count L r i count count1 L r i count count1 sale1 L r j sale sale1 L r j sale L r j sale L r i sale L r j sale L r i sale L r i sale sale1 L r i sale sale1 printf tprintf t 按药品编号排序后按药品编号排序后 n n printf tprintf t 药品编号药品编号 药品名药品名 称称 药品单价药品单价 药品销售量药品销售量 药品销售额药品销售额 n n for i 0 itype i for i 0 itype i printf tprintf t s t s t s t s t f t f t d t d t f n L r i num L r i name L r i price L f n L r i num L r i name L r i price L r i count L r i sale r i count L r i sale voidvoid pric SqListpric SqList L L intint i 0 j i 0 j charchar num1 10 name1 30 num1 10 name1 30 floatfloat price1 sale1 price1 sale1 intint count1 count1 for i 0 itype i for i 0 itype i for j i 1 jtype j for j i 1 jtype j if L r j price L if L r j price L r i price r i price strcpy num1 L strcpy num1 L r j num r j num strcpy L r j num L strcpy L r j num L r i num r i num strcpy L r i num num1 strcpy L r i num num1 strcpy name1 L r j name strcpy name1 L r j name strcpy L r j name L strcpy L r j name L r i name r i name strcpy L r i name name1 strcpy L r i name name1 price1 L r j price price1 L r j price L r j price L r i price L r j price L r i price L r i price price1 L r i price price1 count1 L r j count count1 L r j count L r j count L r i count L r j count L r i count L r i count count1 L r i count count1 sale1 L r j sale sale1 L r j sale L r j sale L r i sale L r j sale L r i sale L r i sale sale1 L r i sale sale1 printf tprintf t 按药品编号排序后按药品编号排序后 n n printf tprintf t 药品编号药品编号 药品名药品名 称称 药品单价药品单价 药品销售量药品销售量 药品销售额药品销售额 n n for i 0 itype i for i 0 itype i printf tprintf t s t s t s t s t f t f t d t d t f n L r i num L r i name L r i price L f n L r i num L r i name L r i price L r i count L r i sale r i count L r i sale voidvoid coun SqListcoun SqList L L intint i 0 j i 0 j charchar num1 10 name1 30 num1 10 name1 30 floatfloat price1 sale1 price1 sale1 intint count1 count1 for i 0 itype i for i 0 itype i for j i 1 jtype j for j i 1 jtype j if L r j count L if L r j count L r i count r i count strcpy num1 L strcpy num1 L r j num r j num strcpy L r j num L strcpy L r j num L r i num r i num strcpy L r i num num1 strcpy L r i num num1 strcpy name1 L r j name strcpy name1 L r j name strcpy L r j name L strcpy L r j name L r i name r i name strcpy L r i name name1 strcpy L r i name name1 price1 L r j price price1 L r j price L r j price L r i price L r j price L r i price L r i price price1 L r i price price1 count1 L r j count count1 L r j count L r j count L r i count L r j count L r i count L r i count count1 L r i count count1 sale1 L r j sale sale1 L r j sale L r j sale L r i sale L r j sale L r i sale L r i sale sale1 L r i sale sale1 printf tprintf t 按药品编号排序后按药品编号排序后 n n printf tprintf t 药品编号药品编号 药品名药品名 称称 药品单价药品单价 药品销售量药品销售量 药品销售额药品销售额 n n for i 0 itype i for i 0 itype i printf tprintf t s t s t s t s t f t f t d t d t f n L r i num L r i name L r i price L f n L r i num L r i name L r i price L r i count L r i sale r i count L r i sale voidvoid sales SqListsales SqList L L intint i 0 j i 0 j charchar num1 10 name1 30 num1 10 name1 30 floatfloat price1 sale1 price1 sale1 intint count1 count1 for i 0 itype i for i 0 itype i for j i 1 jtype j for j i 1 jtype j if L r j sale L if L r j sale L r i sale r i sale strcpy num1 L strcpy num1 L r j num r j num strcpy L r j num L strcpy L r j num L r i num r i num strcpy L r i num num1 strcpy L r i num num1 strcpy name1 L r j name strcpy name1 L r j name strcpy L r j name L strcpy L r j name L r i name r i name strcpy L r i name name1 strcpy L r i name name1 price1 L r j price price1 L r j price L r j price L r i price L r j price L r i price L r i price price1 L r i price price1 count1 L r j count count1 L r j count L r j count L r i count L r j count L r i count L r i count count1 L r i count count1 sale1 L r j sale sale1 L r j sale L r j sale L r i sale L r j sale L r i sale L r i sale sale1 L r i sale sale1 printf tprintf t 按药品编号排序后按药品编号排序后 n n printf tprintf t 药品编号药品编号 药品名药品名 称称 药品单价药品单价 药品销售量药品销售量 药品销售额药品销售额 n n for i 0 itype i for i 0 itype i printf tprintf t s t s t s t s t f t f t d t d t f n L r i num L r i name L r i price L f n L r i num L r i name L r i price L r i count L r i sale r i count L r i sale voidvoid menu menu printf t t tprintf t t t 销售记录排序销售记录排序 n n printf t printf t n n printf t printf t 1 1 按药按药 品编号品编号 n n printf t printf t 2 2 按药按药 品名称品名称 n n printf t printf t 3 3 按药按药 品单价品单价 n n printf t printf t 4 4 按药按药 品销售量品销售量 n n printf t printf t 5 5 按药按药 品销售额品销售额 n n printf t printf t 0 0 退出退出 系统系统 n n printf t printf t n n printf printf 请选择请选择 intint main main SqListSqList L L intint n i m n i m charchar num1 10 name1 30 num1 10 name1 30 floatfloat price1 sale1 price1 sale1 intint count1 count1 FILEFILE fp fp L SqList malloc sizeof SqL SqList malloc sizeof Sq List List fp fopen medince txt w fp fopen medince txt w 创建文件创建文件 if fp if fp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高铁预制箱梁施工课件
- 济南市2024-2025学年七年级下学期语文期中测试试卷
- 济南市2025-2026学年八年级上学期语文月考模拟试卷
- 高速路政日常工作课件
- 电芯销售知识培训内容课件
- 电脑知识应用培训记录课件
- 高考改革课件
- SGLT-2 抑制剂作用机制试卷及答案
- 电网廉洁从业课件
- 广西河池市凤山县2022-2023学年九年级上学期期中化学试题(含答案)
- 2025-2026学年湘教版(2024)初中数学八年级上册教学计划及进度表
- 胰腺肿瘤影像学课件
- GB308-2002滚动轴承钢球
- 夹芯彩钢复合板吊顶施工方案
- 高效课堂讲座课件
- 有害物质污染源识别与评价表
- 餐具洗消保洁制度管理办法
- 齿轮的设计计算PPT学习教案
- 英语社团教案(共21页)
- 新编物理基础学王少杰(上、(下册))课后习题答案
- 电动转向管柱系统项目商业计划书范文参考
评论
0/150
提交评论