衡阳师范学院[专业教育].doc

上传人:rrsccc 文档编号:9521540 上传时间:2021-03-02 格式:DOC 页数:17 大小:67.50KB
返回 下载 相关 举报
衡阳师范学院[专业教育].doc_第1页
第1页 / 共17页
衡阳师范学院[专业教育].doc_第2页
第2页 / 共17页
衡阳师范学院[专业教育].doc_第3页
第3页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《衡阳师范学院[专业教育].doc》由会员分享,可在线阅读,更多相关《衡阳师范学院[专业教育].doc(17页珍藏版)》请在三一文库上搜索。

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.ri.name 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.ri.name 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.ri.name 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;

13、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.ri.name tH.ri.pricetH.ri.counttH.ri.saleendl;五、 课程设计心得当真正的将所学知识用于实际运用中去时,去做一个实实在在的东西时,才感觉到自己知识的匮乏,对于编程能力的提高更非一朝一夕的事。本次的课程设计中,在编程过程中错误层出不穷,深深地感觉到每一个大的问题都是由许许多多的小细节、小问题组成的。而平时的学习中对于知识的掌握也不够严谨,导致不理解的知识堆积起来。为期几个星期的课程设计没有达到很好的效果,苦恼之余,收获更多。相信本次的课程设计对于以后的学习中会有很好的指导作用。 17辅导工具a

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1