数据结构.docx

上传人:b****3 文档编号:13275645 上传时间:2023-06-12 格式:DOCX 页数:16 大小:106.10KB
下载 相关 举报
数据结构.docx_第1页
第1页 / 共16页
数据结构.docx_第2页
第2页 / 共16页
数据结构.docx_第3页
第3页 / 共16页
数据结构.docx_第4页
第4页 / 共16页
数据结构.docx_第5页
第5页 / 共16页
数据结构.docx_第6页
第6页 / 共16页
数据结构.docx_第7页
第7页 / 共16页
数据结构.docx_第8页
第8页 / 共16页
数据结构.docx_第9页
第9页 / 共16页
数据结构.docx_第10页
第10页 / 共16页
数据结构.docx_第11页
第11页 / 共16页
数据结构.docx_第12页
第12页 / 共16页
数据结构.docx_第13页
第13页 / 共16页
数据结构.docx_第14页
第14页 / 共16页
数据结构.docx_第15页
第15页 / 共16页
数据结构.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据结构.docx

《数据结构.docx》由会员分享,可在线阅读,更多相关《数据结构.docx(16页珍藏版)》请在冰点文库上搜索。

数据结构.docx

数据结构

《数据结构》

课程设计报告

设计题目药品销售统计系统

学院名称信息工程学院

专业班级12计本1

姓名

学号

程序设计书目录

一.课程题目

二.设计目标

三.问题描述

四.需求分析

五.概要设计

六.详细设计(给出算法的伪码描述和流程图)

七.测试分析

八.使用说明

九.测试数据

一十.课程设计总结

 

1.课程题目:

药品销售统计系统

二.设计目标:

通过对药品销售统计系统的课程设计,加深队程序设计的理解,熟练掌握和加深c语言的基本知识和语法规范,同时更进一步地理解数据结构各种排序的应用,也提高了我们进行程序设计的基本能力。

这次课程设计提供一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼分析解决实际问题的能力,从而进一步提高了实际运用的能力。

3.问题描述:

设计一个系统,实现医药公司定期对销售各药品的记录进行统计,可按药品的编号、单价、销售量或者销售额做出排名。

4.需求分析:

1.定义药品信息的结构体;

2.输入药品信息;

3.用冒泡排序法对药品单价排序;

4.用快速排序法对销售量排序;

5.用直接插入排序法和选择排序法对销售额排序;

6.打印内容。

5.概要设计:

1.本程序主要运用了结构体的定义、线性表的顺序存储、及函数调用的相关知识。

A.结构体的定义:

typedefstruct

{

charnum[10];/*药品编号*/

charname[16];/*药品名称*/

floatprice;/*药品单价*/

intcount;/*销售数量*/

floatsale;/*本药品销售额*/

intnext;

}DataType;

B.线性表的顺序存储:

typedefstruct

{

DataTyper[MaxSize];

intlength;

}SequenList;

2.进入主函数,开始进入while循环,输入药品的各类信息,输入完成后,显示菜单。

用户自己选择。

选择1,调用冒泡排序法对药品单价排序BubbleSort(SequenList&L);选择2,调用快速排序法对销售量排序QuickSort(SequenList*L);选择3,调用选择排序法对销售额排序SelectionSort(SequenList&L);选择0,提出系统。

六.详细设计:

总体操作步骤:

(1)流程图;

(2)分配存储空间,定义结构体,顺序表;

(3)输入数据,调用函数; 

(4)完成操作。

流程图:

 

1.冒泡排序:

voidBubbleSort(SequenList&L)//冒泡排序

{

inti,j;

boolflag;

DataTypetemp;

for(i=L.length-1;i>=0;i--){

flag=0;

for(j=0;j

{

if(L.r[j].price>L.r[j+1].price)

{

temp=L.r[j];

L.r[j]=L.r[j+1];

L.r[j+1]=temp;

flag=1;

}

}

if(!

flag)break;

}

printf("按单价排序后的结果是:

\n");

for(i=0;i

{

printf("%s%s%f%d%f",L.r[i].num,L.r[i].name,L.r[i].price,L.r[i].count,L.r[i].sale);

printf("\n");

}

}

2.快速排序:

voidQuickSort(SequenList*L)//快速排序

{

inti;

Qsort(L,0,L->length-1);

printf("用快速排序对销售量排序后的结果是:

\n");

for(i=0;ilength;i++)

{

printf("%s%s%f%d%f",L->r[i].num,L->r[i].name,L->r[i].price,L->r[i].count,L->r[i].sale);

printf("\n");

}

}

3.选择排序:

voidSelectionSort(SequenList&L)//选择排序

{

inti,j,min;

DataTypetemp;

for(i=0;i

{

min=i;

for(j=i+1;j

{

if(L.r[j].sale

min=j;

temp=L.r[i];

L.r[i]=L.r[min];

L.r[min]=temp;

}

}

for(i=0;i

{

printf("%s%s%f%d%f",L.r[i].num,L.r[i].name,L.r[i].price,L.r[i].count,L.r[i].sale);

printf("\n");

}

}

程序源代码:

#include"stdio.h"

#defineMaxSize100

typedefstruct

{

charnum[10];/*药品编号*/

charname[16];/*药品名称*/

floatprice;/*药品单价*/

intcount;/*销售数量*/

floatsale;/*本药品销售额*/

intnext;

}DataType;

typedefstruct

{

DataTyper[MaxSize];

intlength;

}SequenList;

voidBubbleSort(SequenList&L)//冒泡排序

{

inti,j;

boolflag;

DataTypetemp;

for(i=L.length-1;i>=0;i--){

flag=0;

for(j=0;j

{

if(L.r[j].price>L.r[j+1].price)

{

temp=L.r[j];

L.r[j]=L.r[j+1];

L.r[j+1]=temp;

flag=1;

}

}

if(!

flag)break;

}

printf("按单价排序后的结果是:

\n");

for(i=0;i

{

printf("%s%s%f%d%f",L.r[i].num,L.r[i].name,L.r[i].price,L.r[i].count,L.r[i].sale);

printf("\n");

}

}

 

voidswap(DataType*a,DataType*b)

{

DataTypetemp=*a;

*a=*b;

*b=temp;

}

 

voidQsort(SequenList*L,intLow,intHigh)

{

DataTypetemp=L->r[Low];

intleft=Low,right=High;

if(Low>=High)return;

swap(&L->r[Low],&L->r[right]);

while

(1)

{

while((Low=L->r[Low].count))Low++;

while((Lowr[High].count))High--;

if(Low

swap(&L->r[Low],&L->r[High]);

elsebreak;

}

swap(&L->r[Low],&L->r[right]);//对两个子集进行快排

Qsort(L,left,Low-1);

Qsort(L,Low+1,right);

}

voidQuickSort(SequenList*L)//快速排序

{

inti;

Qsort(L,0,L->length-1);

printf("用快速排序对销售量排序后的结果是:

\n");

for(i=0;ilength;i++)

{

printf("%s%s%f%d%f",L->r[i].num,L->r[i].name,L->r[i].price,L->r[i].count,L->r[i].sale);

printf("\n");

}

}

voidSelectionSort(SequenList&L)//选择排序

{

inti,j,min;

DataTypetemp;

for(i=0;i

{

min=i;

for(j=i+1;j

{

if(L.r[j].sale

min=j;

temp=L.r[i];

L.r[i]=L.r[min];

L.r[min]=temp;

}

}

for(i=0;i

{

printf("%s%s%f%d%f",L.r[i].num,L.r[i].name,L.r[i].price,L.r[i].count,L.r[i].sale);

printf("\n");

}

}

 

voidmain()

{

SequenListk;

k.length=0;

intchoice;

while(k.length<5)

{

printf("---请输入药品编号---:

");

scanf("%s",&k.r[k.length].num);

printf("---请输入药品名称---:

");

scanf("%s",&k.r[k.length].name);

printf("---请输入药品单价---:

");

scanf("%f",&k.r[k.length].price);

printf("---请输入药品销售数量---:

");

scanf("%d",&k.r[k.length].count);

printf("---请输入药品销售额---:

");

scanf("%f",&k.r[k.length].sale);

k.length++;

}

printf("此系统有如下功能:

\n");

printf("=========================================\n");

printf("1、用冒泡对药品单价排序*\n");

printf("2、用快排对药品销售量排序*\n");

printf("3、用选择排序对销售额排序*\n");

printf("0、退出系统*\n");

printf("=========================================\n");

printf("请输入您的选择:

\n");

scanf("%d",&choice);

while(choice)

{

switch(choice)

{

case1:

BubbleSort(k);break;//冒泡排序

case2:

QuickSort(&k);break;//快速排序

case3:

SelectionSort(k);break;//选择排序

default:

printf("没有您选择的功能,请确定后重新输入\n");

}

printf("=========================================\n");

printf("1、用冒泡对药品单价排序*\n");

printf("2、用快排对药品销售量排序*\n");

printf("3、用选择排序对销售额排序*\n");

printf("0、退出系统*\n");

printf("=========================================\n");

printf("请输入您的选择:

\n");

scanf("%d",&choice);

}

}

7.测试分析:

白盒:

代码完整,可运行。

黑盒:

8.使用说明:

打开开始菜单找到VC++6.0,打开此软件,用鼠标单击文件菜单里的打开选项,导入文件,按ctrl+f7,看文件是否有错误,如果没有错误按ctrl+f5进行运行。

程序运行中首先需要输入药品的各类信息。

然后会出现菜单供大家选择,我们首先选择1,用冒泡排序法对药品单价排序,再回车,又出现菜单,供大家选择。

选择2,快速排序法对销售量排序,回车,出现菜单。

选择3,选择排序法对销售额排序,回车出现原始菜单。

我们选择0,退出。

九.测试数据:

输入药品信息:

1.用冒泡排序法对药品单价排序:

 

2.用快速排序法对销售量排序:

 

3.用直接插入排序法和选择排序法对销售额排序:

 

4.退出系统:

10.课程设计总结:

最后一次课程设计总算圆满结束了。

本次课程设计要求的是对排序的掌握,说实话觉得有点难。

以前只对冒泡有点了解,数据结构又学习了快速排序、简单插入排序、选择排序、希尔排序等等。

要全部掌握还是有点小困难。

所以课程设计要求下来,看了几遍书,查阅了不少资料。

总算勉强完成,但对于如何从文件中调用数据,还是不太会,由于时间问题,所以我就直接输入了数据,看来下去还得多做

研究和学习啊!

总之这四次课程设计,对我还是收获蛮大的!

我相信在以后的学习和工作中一定会让我受益匪浅的!

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

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2