商店存货管理系统.docx

上传人:b****6 文档编号:5625002 上传时间:2022-12-29 格式:DOCX 页数:20 大小:329.40KB
下载 相关 举报
商店存货管理系统.docx_第1页
第1页 / 共20页
商店存货管理系统.docx_第2页
第2页 / 共20页
商店存货管理系统.docx_第3页
第3页 / 共20页
商店存货管理系统.docx_第4页
第4页 / 共20页
商店存货管理系统.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

商店存货管理系统.docx

《商店存货管理系统.docx》由会员分享,可在线阅读,更多相关《商店存货管理系统.docx(20页珍藏版)》请在冰豆网上搜索。

商店存货管理系统.docx

商店存货管理系统

 

滁州学院

课程设计报告

 

课程名称:

数据结构课程设计报告

设计题目:

商店存货管理系统

系别:

计算机科学与技术系

专业:

计算机科学与技术专业

组别:

第一组

起止日期:

2011年5月20日~2011年6月20日

指导教师:

杨斌

 

计算机科学与技术系二0一一年制

课程设计题目

商店存货管理系统

组长

王顺

学号

2010211125

班级

计科101

系别

计算机科学与技术系

专业

计算机科学与技术专业

组员

程徵、何捷、董俊毅

指导教师

杨斌

课程设计目的

深入理解数据结构的基本理论,掌握数据存储结构的设计方法,掌握数据结构基于的各种操作的实现方法

课程设计所需环境

MicrosoftVisualC++6.0

课程设计任务要求

用数据结构的基本理论和数据存储的设计方法完成一个实际应用问题,在完成程序设计的同时能够写出比较规范的设计报告

课程设计工作进度计划

序号

起止日期

工作内容

分工情况

(1)

5.20---6.10

kuochong(FILE*ft)

程徵主要实现的是文件的扩充

()

5.20---6.10

paixu(nodehuowu[20],intn)

shijian(timet,timeg)

何捷主要完成的是对货物的不同种类的排序

()

5.20---6.10

shanchu(nodehuowu[20])

chaxun(FILE*ft,node)

董俊毅主要任务是完成删除和查询功能

()

5.20---6.10

main()

xiugai(nodehuowu[20],int)

王顺完成结构体,从文件中将信息写入内存并完成修改操作

()

6.10---6.20

课程设计报告

程徵王顺

()

6.10---6.20

个人报告

何捷、董俊毅、程徵、王顺

指导教师签字:

年月日

教研室审核意见:

 

教研室主任签字:

年月日

目录

1引言1

⒉课程设计目的2

3问题描述2

3.1题目:

商店存货管理系统2

3.2题目要求2

4设计思路2

5运行环境及开发工具3

6、概要设计3

6.1算法概要3

7详细设计3

7.1程序代码3

8调试与操作说明15

8.1操作说明15

8.2运行结果16

9课程设计总结与体会20

9.1总结20

9.2收获与体会21

10致谢21

11参考文献21

 

1引言

《数据结构》主要介绍一些最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论。

数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。

⒉课程设计目的

数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。

数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。

学习数据结构是为了将实际问题中所涉及的对象在计算机中表示出来并对它们进行处理。

通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。

通过此次课程设计主要达到以下目的:

了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方

3问题描述

3.1题目:

商店存货管理系统

建立一个商店存货管理系统,要求每次出货时取进货时间最早且最接近保质期中止时间的货物。

3.2题目要求

分步实施:

1)初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2)完成最低要求:

建立一个文件,包括5个种类的货物情况,能对商品信息进行扩充(追加),修改和删除以及简单的排序;

3)进一步要求:

扩充商品数量,以及完成系统查询功能。

有兴趣的同学可以自己扩充系统功能。

4设计思路

(1)建立一个名为“货物信息.txt”的文件

(2)写好主函数的框架,尤其是要构建好人机对话的界面

(3)将文件中已有的信息从文件中读出并保存在名为huowu[max]的数组中

(4)逐步编写系统的主要功能的编码,包括扩充、修改、删除、排序、查询等五个功能

5运行环境及开发工具

运行环境MicrosoftVisualC++6.0;开发工具C/C++

6、概要设计

6.1算法概要

1)需要定义一个结构体数组,其中name表示商品的名称,time表示商品的进货时间,year表示商品的生产日期,bao表示商品的保质期。

2)利用冒泡法,对商品按要求进行排序。

3)选择需要的功能,其中功能包括商品的最原始添加,商品的扩充,修改,删除,查找,将数据写入文件中,从文件中读出数据等操作。

4)选择输入1-6,10个数的其中一个数,进行相应的操作。

5)进行完所的操作之后,选择保存功能,将数据保存到文件中。

6)退出程序。

7详细设计

7.1程序代码

#include

#include

#include

typedefstruct

{

intyear;

intmonth;

}time;

typedefstructnode

{

intnum;

charname[20];

timejin;

timebao;

}node,huowu[20];

///////////////////////////////////////////////////////////////////////////////

intvisite(FILE*ft,nodehuowu[20])//从文件中将信息读出并保存在数组中

{

inti=0;

if((ft=fopen("货物信息.txt","r"))==NULL)

{

printf("\nCan'topen!

");

exit(0);

}

while(!

feof(ft))

{

fscanf(ft,"%s%d%d%d%d%d",huowu[i].name,&huowu[i].num,&huowu[i].jin.year,&huowu[i].jin.month,&huowu[i].bao.year,&huowu[i].bao.month);

printf("\n");

printf("名称:

%-10s数量:

%-5d生产日期:

%d年%d月截止日期:

%d年%d月\n",huowu[i].name,huowu[i].num,huowu[i].jin.year,huowu[i].jin.month,huowu[i].bao.year,huowu[i].bao.month);

i++;

}

if(fclose(ft))

{

printf("\nCan'tclose!

");

exit(0);

}

returni;

}

//追加

///////////////////////////////////////////////////////////////////////////////

voidkuochong(FILE*ft)

{

inta,i;

nodekuochong[20];

if((ft=fopen("货物信息.txt","a+"))==NULL)

{

printf("\nCan'topen!

");

exit(0);

}

printf("\n扩充的商品数目:

");

scanf("%d",&a);

if(a>15)

printf("\n商品过多,无法保存!

");

fflush(stdin);

for(i=0;i

{

printf("\n扩充的商品名称:

");

scanf("%s",kuochong[i].name);

printf("\n扩充的商品数量:

");

scanf("%d",&kuochong[i].num);

printf("\n该商品的生产日期:

");

scanf("%d%d",&kuochong[i].jin.year,&kuochong[i].jin.month);

printf("\n该商品的截止时间:

");

scanf("%d%d",&kuochong[i].bao.year,&kuochong[i].bao.month);

fflush(stdin);

}

for(i=0;i

{

fprintf(ft,"\n%s%d%d%d%d%d",kuochong[i].name,kuochong[i].num,kuochong[i].jin.year,kuochong[i].jin.month,kuochong[i].bao.year,kuochong[i].bao.month);

}

if(fclose(ft))

{

printf("\nCan'tclose!

");

exit(0);

}

}

//删除

///////////////////////////////////////////////////////////////////////////////

voidshanchu(nodehuowu[20],intn,FILE*ft)

{

chars[20];

intt,j,i;

printf("\n要删除的货物名称:

");

scanf("%s",s);

fflush(stdin);

for(i=0;i

if(!

strcmp(s,huowu[i].name))

t=i;

for(j=t;j

huowu[j]=huowu[j+1];

if((ft=fopen("货物信息.txt","w+"))==NULL)

{

printf("\nCan'topen!

");

exit(0);

}

for(i=0;i

{

fprintf(ft,"\n%s%d%d%d%d%d",huowu[i].name,huowu[i].num,huowu[i].jin.year,huowu[i].jin.month,huowu[i].bao.year,huowu[i].bao.month);

}

if(fclose(ft))

{

printf("\ncan'tclose");

exit(0);

}

}

//查询

///////////////////////////////////////////////////////////////////////////////

voidchaxun(FILE*ft,nodehuowu[20],intn)

{

chars[20];

inti;

printf("\n要查询的货物名称:

");

scanf("%s",s);

for(i=0;i

if(!

strcmp(s,huowu[i].name))

printf("\n名称:

%-10s数量:

%-5d生产日期:

%d年%d月截止日期:

%d年%d月\n",huowu[i].name,huowu[i].num,huowu[i].jin.year,huowu[i].jin.month,huowu[i].bao.year,huowu[i].bao.month);

}

//排序

///////////////////////////////////////////////////////////////////////////////

intpanduan(timeg,timef)

{

if(g.year>f.year)

return1;

elseif(g.month>f.month)

return1;

else

return0;

}

///////////////////////////////////////////////////////////////////////////////

voidpaixu(nodehuowu[20],intn)

{

inta,i,j;

nodet;

printf("\n1数量(从大到小)2生产日期3截止日期\n");

printf("\n请选择排序的方式:

");

scanf("%d",&a);

switch(a)

{

case1:

for(i=0;i

for(j=n-1;j>=i+1;j--)

if(huowu[j].num

{

t=huowu[j];

huowu[j]=huowu[j-1];

huowu[j-1]=t;

}

for(i=0;i

printf("\n名称:

%-10s数量:

%-5d生产日期:

%d年%d月截止日期:

%d年%d月\n",huowu[i].name,huowu[i].num,huowu[i].jin.year,huowu[i].jin.month,huowu[i].bao.year,huowu[i].bao.month);

break;

case2:

for(i=0;i

for(j=n-1;j>=i+1;j--)

if(panduan(huowu[j-1].jin,huowu[j].jin))

{

t=huowu[j];

huowu[j]=huowu[j-1];

huowu[j-1]=t;

}

for(i=0;i

printf("\n名称:

%-10s数量:

%-5d生产日期:

%d年%d月截止日期:

%d年%d月\n",huowu[i].name,huowu[i].num,huowu[i].jin.year,huowu[i].jin.month,huowu[i].bao.year,huowu[i].bao.month);

break;

case3:

for(i=0;i

for(j=n-1;j>=i+1;j--)

if(panduan(huowu[j-1].bao,huowu[j].bao))

{

t=huowu[j];

huowu[j]=huowu[j-1];

huowu[j-1]=t;

}

for(i=0;i

printf("\n名称:

%-10s数量:

%-5d生产日期:

%d年%d月截止日期:

%d年%d月\n",huowu[i].name,huowu[i].num,huowu[i].jin.year,huowu[i].jin.month,huowu[i].bao.year,huowu[i].bao.month);

break;

}

}

///////////////////////////////////////////////////////////////////////////////

voidmain()

{

FILE*ft;

intt,huowushu;

charch;

nodehuowu[20];

printf("\n");

printf("==============================欢迎进入货物管理系统==============================");

printf("\n");

while(t!

=6)

{

printf("\n--------------------------------------------------------------------------------\n");

printf("1扩充2查看3删除4排序5查询6退出\n");

printf("\n--------------------------------------------------------------------------------\n");

printf("你要进行的操作...");

scanf("%d",&t);

fflush(stdin);

switch(t){

case1:

kuochong(ft);

fflush(stdin);

break;

case2:

huowushu=visite(ft,huowu);

fflush(stdin);

break;

case3:

shanchu(huowu,huowushu,ft);

fflush(stdin);

break;

case4:

paixu(huowu,huowushu);

fflush(stdin);

break;

case5:

chaxun(ft,huowu,huowushu);

break;

case6:

printf("\n谢谢惠顾!

\n");

break;

}

}

}

(2)设置一个函数intvisite(FILE*ft,nodehuowu[20]),从文件中将信息读出并保存在数组中。

(3)设置一个扩充的函数,voidkuochong(FILE*ft)。

这个函数是最初商品输入函数,当选择了这个功能后,保存输入,那将在D盘产生一个名为“商品.doc”的文件。

(4)设置一个修改的函数voidxiugai(nodehuowu[20],intn,FILE*ft),那输入的商品信息将代替原有的信息,数据输入使用交互输入,进行人机对话,确定是否进行下一个数据的添加。

并且调用了上面的排序函数,对输入的数据进行排序。

(5)设置一个查找删除的函数,voidshanchu(nodehuowu[20],intn,FILE*ft)。

输入要查找的商品名称,如果不存在,则输出失败信息,如果存在,则用下一个信息代替原有信息的位置。

(6)设置一个排序的函数,voidpaixu(nodehuowu[20],intn)利用冒泡法[1]先对商品按进货的时间排序,对进货时间一样的货物,再按离保质期最近排序。

(7)设置一个查找显示的函数,voidchaxun(FILE*ft,nodehuowu[20],intn)。

输入要查找的商品名称,如果不存在,则输出失败信息,如果存在,则显示信息。

(8)进入最后一步,main函数。

建立一个菜单函数,显示5个功能,供用户选择,进行人机对话。

判断选择的操作,根据用户选择的操作,利用switch语句进行相应的函数调用。

选择保存功能,对数据进行保存,然后选择结束程序退出功能,退出程序

 

7.2流程图:

 

8调试与操作说明

8.1操作说明

系统的使用者只需按照使用过程中的提示即可完成所有操作

8.2运行结果

从文件中读取的结果

原货物管理信息.txt文件中的信息

经扩充后文件中的信息及操作过程

修改的过程

删除的过程

排序的三个结果

查询的操作

 

9课程设计总结与体会

9.1总结

转眼,为期三周的《数据结构》课程设计实习即将结束了。

在这次实习中,自己的C语言知识和数据结构知识得到了巩固,编程能力也有了一定的提高。

同时也学会了解决问题的方法。

总结起来,自己主要有以下几点体会:

1.必须牢固掌握基础知识。

由于C语言是大一所学知识,有所遗忘,且未掌握好这学期所学的《数据结构》这门课,所以在实习之初感到棘手。

不知如何下手,但在后来的实习过程中自己通过看书和课外资料,并请教其他同学,慢慢地对C语言和数据结构知识有所熟悉。

这时才逐渐有了思路。

所以,这次实习之后,我告诫自己:

今后一定要牢固掌握好专业基础知识。

2.必须培养严谨的科学态度。

自己在编程时经常因为一些类似于“少了分号”的小错误而导致错误,不够认真细致,这给自己带来了许多麻烦。

编程是一件十分严谨的事情,容不得马虎。

所以在今后自己一定要培养严谨的科学态度。

我想这不仅是对于程序设计,做任何事都应如此。

3.这次课程设计也让我充分认识到《数据结构》这门课的重要性。

它给我们一个思想和大纲,让我们在编程时容易找到思路,不至于无章可循。

同时它也有广泛的实际应用。

总之,在这次实习中,自己的C语言以及数据结构知识得到提高,编程能力也得到了提高。

 

9.2收获与体会

编程的核心是算法结构,数据结构又包括逻辑结构和物理结构,编程中要时刻注意这些问题。

调试过程远远比编程过程繁琐,需要足够的耐心对一个个错误进行修改直至完全正确。

并且调试过程也需要一定的技巧,能够选取适当的实验数据对程序进行验证,找到出错的地方以进行修正。

10致谢

以简短的文字对在设计研究和设计报告撰写过程中曾直接给予帮助的人员表示自己的谢意。

11参考文献

[1]《C语言程序设计》何钦铭,颜晖[M]北京;高等教育出版社,2008年1月

[2]《数据结构》胡学钢[M]北京;高等教育出版社,2008年1月

 

评语:

 

评阅教师签名:

年月日

成绩

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1