衡阳师范学院[专业教育]_第1页
衡阳师范学院[专业教育]_第2页
衡阳师范学院[专业教育]_第3页
已阅读5页,还剩12页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 衡阳师范学院数据结构课程设计题目:药店的药品销售统计系统系别:计算机科学与技术系班级:1306班学生:罗红梅学号:13480130指导老师:李康满目录 一、 设计目的二、 设计要求和内容三、 算法设计(我的思路)四、 源程序清单五、 课程设计心得一、 设计目的1、巩固和进步加强对大一所学程序设计语言中的知识的综合运用能力;2、对数据结构的知识能够尽可能的做到学以致用,提高计算机实践水平。二、 设计要求和内容 1、设计一系统,实现医药公司定期对各药品的销售记录进行统计,并按药品编号、单价、销售量或销售额做出排序。2、在本设计中,首先从数据文件中读出各药品的信息存储在顺序表中。各药品的信息包括:

2、药品编号、药名、药品单价、销出数量、销售额。药品编号共4位,采用字母和数字混合编号,如:A125,前一位为大写字母,后三位为数字,按药品编号进行排序时,可采用基数排序法。对各药品的单价、销售量或销售额进行排序时,可采用多种排序方法,如直接插入排序、冒泡排序、快速排序,直接选择排序等方法。在本设计中,对单价的排序采用冒泡排序法,对销售量的排序采用快速排序法,对销售额的排序采用堆排序法。三、 算法设计(我的思路)l 在本设计中,我对药店药品进行统计这一系统中主要运用到数据结构中排序知识。l 首先在设计中,首先从数据文件读出各药品的信息记录,存储在顺序表中。各药品的信息包括:药品编号、药品名称、单价

3、、销售量、销售额。其中药品编号共4位,采用字母和数字混合编号,如:B125,前一位为大写字母,后三位为数字。药品信息的存储结构类型定义 typedef struct nodechar num4;/*药品编号*/char name10; /*药品名称*/ float price;/*单价*/ int count; /*销售量*/ float sale; /*销售额*/DataType;存储药品信息的顺序表的定义typedef structDataType rmaxsize; int length; sequenList;l 然后对药品单价,销售量,销售额,药品名称,药品编号分别进行排序。l 比如

4、对单价采用冒泡排序,它是一种典型的交换排序思想,整个算法是从最下面得元素开始,对每两个相邻的关键字进行比较,且使关键字较小的元素换至关键字较大的元素之上,使得经过一番冒泡排序后。关键字最小的元素到达最上端。l 对销售量采用快速排序法,简而言之,每趟将一组数据的第一个元素放入适当的位置,将数据一分为二,对子表按递归方式继续这种划分,直至划分的字表长为1或0。l 对销售额的排序采用堆排序,其思想是在排序过程中将R1.n看成是一棵完全二叉树的顺序存储结构,利用完全二叉树中双亲节点和孩子节点之间的内在关系,在当前无序区内选择关键字最大(或最小)的元素。l 对药品编号采用基数排序。四、源程序清单#inc

5、lude#define MaxSize 50typedef struct nodechar num8; /*药品编号*/char name16; /*药品名称*/float price; /*药品单价*/int count; /*销售数量*/float sale; /*本药品销售额*/int next;DataType;typedef structDataType rMaxSize; int length;SequenList;#include #includeusing namespace std;void RadixSort(SequenList &L);void BubbleSort(S

6、equenList &S);void QuickSort(SequenList &L);void HeapSort(SequenList &H);void main()SequenList k;k.length=1;int choice;cout此系统有如下功能endl;cout 1、按药品编号排序 endl;cout 2、按药品单价排序 endl;cout 3、按药品销售量排序 endl;cout 4、按药品销售额排序 endl;cout 0、推出系统 endl;cout请输入您的选择:choice;while (choice)switch(choice)case 1:RadixSort(k

7、);break;/基数排序case 2:BubbleSort(k);break;/冒泡排序case 3:QuickSort(k);break;/快速排序case 4:HeapSort(k);break;/堆排序default:cout没有您选择的功能,请确定后重新输入。endl;cout * endl;cout 1、按药品编号排序 endl;cout 2、按药品单价排序 endl;cout 3、按药品销售量排序 endl;cout 4、按药品销售额排序 endl;cout 0、推出系统 endl;cout * endl;cout请输入您的选择:choice;#include #includeu

8、sing namespace std;void Distribute(DataType *r,int i,int *f,int *e)int j,p;for (j=0;j0)j=rp.numi-0;if(!fj) fj=p#includevoid Collect(DataType *r,int i,int *f,int *e)int j,t;for(j=0;!fj;j+);r0.next=fj;t=ej;while (j26)for(j=j+1;j25&!fj;+j);if (fj)rt.next=fj;t=ej;rt.next=0;void RadixSort(SequenList &L)/

9、int f27,e26;int i;for(i=0;i=0;i-)Distribute(L.r,i,f,e);Collect(L.r,i,f,e);cout按药品编号排序后的结果是:endl;i=L.r0.next;while(i)coutL.ri.numtL. tL.ri.pricetL.ri.counttL.ri.saleendl;i=L.ri.next;#include #includeusing namespace std; void BubbleSort(SequenList &L)int i,j;DataType temp;for(i=0;iL.length-1;i+

10、)for (j=1;jL.rj+1.price)temp=L.rj;L.rj=L.rj+1;L.rj+1=temp; cout按单价排序后的结果是:endl;for (i=1;iL.length;i+)coutL.ri.numtL. tL.ri.pricetL.ri.counttL.ri.saleendl;#include #includeusing namespace std;int Partition(SequenList &L,int low,int high)int pri;L.r0=L.rlow;pri=L.rlow.count;while (lowhigh)while

11、 (low=pri) -high;L.rlow=L.rhigh;while(lowhigh&L.rlow.count=pri) +low;L.rhigh=L.rlow;L.rlow=L.r0;return low;void Qsort(SequenList &L,int low,int high)int p;if(lowhigh)p=Partition(L,low,high);Qsort(L,low,p-1);Qsort(L,p+1,high);void QuickSort(SequenList &L)Qsort(L,1,L.length-1);cout按销售量排序后的结果是:endl;for

12、(int i=1;iL.length;i+)coutL.ri.numtL. tL.ri.pricetL.ri.counttL.ri.saleendl;#include #includeusing namespace std;void HeadAdjust(SequenList &H,int s,int m)int j;DataType rc=H.rs;for (j=2*s;j=m;j*=2)if(jm&H.rj.saleH.rj.sale) break;H.rs=H.rj;s=j;H.rs=rc;void HeapSort(SequenList &H)DataType temp;int i;for(i=(H.length-1)/2;i0;-i)HeadAdjust(H,i,H.length-1);for(i=H.length-1;i1;-i)temp=H.r1;H.r1=H.ri;H.ri=temp;HeadAdjust(H,1,i-1);cout按销售额排序后的结果是:endl;for(int i=1;iH.length;i+)coutH.ri.numtH. tH.ri.pricetH.ri.counttH.ri.saleendl;五、 课程设计心得当真正的将所学知识用于实

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论