- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目录
具体任务安排 3
工作进度表 3
组员分工 3
软件开发环境 3
算法设计思想及流程图 3
算法设计思想: 3
流程图: 4
运行结果 10
收获及体会 14
林进容的收获及体会: 14
赖嘉辉的收获及体会: 15
参考文献 15
具体任务安排
工作进度表时间 完成工作 完成人 周上午 完成课程设计的需求分析 周五上午 编写实验报告书 林进容.赖嘉辉 周五下午 最终调试与修改 林进容.赖嘉辉
组员分工
201235020326 林进容(组长)201235020319 赖嘉辉 和队友共同讨论并优化算法;算法分析与设计并编写部分代码
画算法的程序流程图;
1.和队友共同讨论并优化算法;
2算法分析与设计3.编写课程设计报告和心得体会Microsoft Visual C++ 6.0
Microsoft Office Word
Microsoft Office Visio
Windows xp
算法设计思想及流程图
算法设计思想:
首先从数据文件中读出各药品的信息记录,存储在顺序表中。各药品的信息包括:药品编号、药名、药品单价、销出数量、销售额。药品编号共4位,采用字母和数字混合编号,如:A125,前一位为大写字母,后三位为数字,按药品编号进行排序时,可采用基数排序法。对各药品的单价、销售量或销售额进行排序时,可采用多种排序方法,如直接插入排序、冒泡排序、快速排序,直接选择排序等方法。在本设计中,对单价的排序采用冒泡排序法,对销售量的排序采用快速排序法,对销售额的排序采用堆排序法。冒泡排序1. 基本思想: 两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止。、 快速排序1. 基本思想: 在当前无序区R[1..H]中任取一个数据元素作为比较的基准(不妨记为X),用此基准将当前无序区划分为左右两个较小的无序区:R[1..I-1]和R[I+1..H],且左边的无序子区中数据元素均小于等于基准元素,右边的无序子区中数据元素均大于等于基准元素,而基准X则位于最终排序的位置上,即R[1..I-1]≤X.Key≤R[I+1..H](1≤I≤H),当R[1..I-1]和R[I+1..H]均非空时,分别对它们进行上述的划分过程,直至所有无序子区中的数据元素均已排序为止。
三、堆排序1. 基本思想:??堆排序是一树形选择排序,在排序过程中,将R[1..N]看成是一颗完全二叉树的顺序存储结构,利用完全二叉树中双亲结点和孩子结点之间的内在关系来选择最小的元素。
源代码
#includestdio.h
#includestdlib.h
#includestring.h
#define maxsize 20 /*该医药公司药品最大种类*/
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;/*定义i,j*/
char num1[10],name1[30];/*药品编号,名字*/
float price1,sale1;/*药品单价,销售额*/
int count1;/*药品销售量*/
for(i=0;iL-type;i++)
for(j=i+1;jL-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[
文档评论(0)