药品销售课程设计报告
数 据 结 构 课 程 设 计 报告 题目: 药品销售管理系统课程设计 学 院 信息工程学院 专 业 计算机科学与技术 年级班别 12级4班 学 号 2012051411 学生姓名 潘 小 恩 指导教师 米 文 丽 成 绩 2013年12月19日 一 、设计题目:药店的药品销售统计系统(排序应用) 二 、需求分析设计一系统,实现药店定期对销售各药品的记录进行统计,可按药品的编号、单价、销售量或销售额做出排名。 三、 概要设计1、基本思想首先从数据文件中读出各药品的信息记录,存储在顺序表中。各药品的信息包括:药品编号、药名、药品单价、销出数量、销售额。药品编号共3位,采用字母和数字混合编号,如:A15,前一位为大写字母,后二位为数字,按药品编号进行排序时,可采用基数排序法。对各药品的单价、销售量或销售额进行排序时,可采用多种排序方法,如直接插入排序、冒泡排序、快速排序,直接选择排序等方法。在本设计中,对单价的排序采用冒泡排序法,对销售量的排序采用快速排序法,对销售额的排序采用堆排序法。 2、算法设计首先从数据文件中读出各药品的信息记录,存储在顺序表中。各药品的信息包括:药品编号、药名、药品单价、销出数量、销售额。药品编号共3位,采用字母和数字混合编号,如:A15,前一位为大写字母,后二位为数字,按药品编号进行排序时,可采用基数排序法。在本设计中,对单价的排序采用冒泡排序法,对销售量的排序采用快速排序法,对销售额的排序采用堆排序法。销售量是快速排序,快速排序就是首先设置一个关键字,然后让最后一个和其比较,直至找到一个比关键字小的,然后和其交换,接下来让第一个和其比较,直至找到一个比其大的,然后交换,在找到的位置分别做标记,依次执行即可。 销售额使用的是堆排序,堆排序首先要建立一个完全二叉树的堆,其标准符合为父节点始终比子节点大。然后依次输出顶结点,然后再建立一个符合标准的堆重复操作即可。 三、借鉴程序void main()int x,i;sequenList T;while(1) printf("ttt*n"); printf("nttt* 药品销售统计系统 *nn"); printf("ttt* 1.药品信息输入 *nn"); printf("ttt* 2.药品信息排序 *nn"); printf("ttt* 3.退出 *nn"); printf("ttt*n");printf("请输入选项:"); scanf("%d",&x);switch(x)case 1:system("cls");T=shuru(T);break; case 2:system("cls");paixu(T);break; case 3:system("cls");printf("谢谢使用!");exit(0);四、心得体会此次实践课编写的是一个应用程序,相对于以前我们见到的程序,它要大得多,运行的结果也没有预想中的好,数据的输出格式不太规范,而且各模块也出现了一些小问题,在老师和同学的帮助下,我很有耐心的一次又一次的进行修改,最后运行的结果基本上达到了预期的目的。本次课程设计的实习课让我对 语言的学习又有了更深入的了解,也让我更深刻地领悟到了“实践出真理”这个道理,在上机实践过程中学到的知识远远超过了在课堂上十几周学到的,这次程序设计课让我增添了许多程序设计经验,为我们将来走上工作岗位其了不小的铺垫作用。本次实习中遇到了很多以前没有遇到过的问题,也曾想过要放弃,但看到那些同学都在那认真的写程序,给了我继续的信心。在同学和老师的帮助下,我顺利的结束了本次实习,让我知道原来凭借自己努力取得的成功会让自己这么欣慰,也让我知道了友谊和团结的重要性。