范例-算法与数据结构课程设计(21页).doc





《范例-算法与数据结构课程设计(21页).doc》由会员分享,可在线阅读,更多相关《范例-算法与数据结构课程设计(21页).doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-范例-算法与数据结构课程设计-第 16 页编号: 120 数据结构与算法课程设计说明书进销存货物管理系统学院: 计算机科学与工程学院 专 业: 计算机科学与技术 学生姓名: 学 号: 指导教师: 2016年 6 月 26 日摘 要本课程设计报告系统地阐述了我使用C+编写的进销存货物管理系统。首先,我对系统进行一个简要的概述。然后,我就系统的需求进行了详细的分析,这是设计工作中不被人们重视但却非常重要的一步。接下来,我把系统中所有的设计简明清晰地展现出来,并把我在设计中遇到的问题和分析解决问题的办法一一做了分析。当然,我还讲到系统中的关键技术和让人眼前一亮的特色。最后,在结论中,我对自己的课程
2、设计做了总体的评价同时简述了我在这次课程设计中的收获和经验。关键词:数据结构与算法课程设计;进销存货物管理系统;C+;目 录引言11 系统概述22 需求分析22.1 系统需求22.2开发环境32.3 界面需求32.4 输入输出格式33 详细设计33.1货物管理表:33.2系统功能结构图:43.3各功能模块详细设计:53.4数据结构:143.5算法:143.6测试:144所遇到的问题和分析解决185系统特色及关键技术206 结论20参考文献23附 录24引言 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。计算机的发明
3、应用,被视为人类的第三次重大的科学技术革命,是一次飞跃。过去的革命最高成就就是“用机器制造机器”,是手的延长,而计算机的出现却能做到“用机器控制机器”,是脑的延伸。计算机是提高生产效率的主要工具及途径。在信息化快速发展的今天,企业与顾客、企业与供方的关系变得更加密切和复杂。强化管理,规范业务流程,提高透明度,加快商品资金周转,为流通领域信息管理全面网络化打下基础,是商品销售公司乃至众多商业企业梦寐以求的愿望。随着技术发展,计算机操作及管理日趋简化,计算机知识日趋普及,同时市场经济快速多变,竞争激烈,企业采用计算机管理进货、库存、销售等诸多环节也已成为趋势及必然。进销存管理系统依靠现代化的计算机
4、信息处理技术来管理进货,从而节省了大量的人力、物力,改善了员工的工作条件,减轻了劳动强度,并且能够快速反映出商品的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,从而掌握市场先机。二十一世纪是信息时代,计算机的应用已普及经济和社会生活的各个领域,越来越多的公司、企业、学校等单位都不同程度的利用电脑来进行资源管理。随着电脑应用的普及,单纯人工操作管理方式也即将被淘汰。所以计算机化管理已经成为一种必然的趋势。本系统运用C+进行开发,它能够呈现出简明清晰的界面,并被人们能够很好地理解和使用,并能在一些方面给人们更好的服务,相信它能够被大多数用户所接受。在通过运用数据结构
5、与算法相结合的课程设计,来完成进销存货物管理系统时,一方面是为了检查我们的学习成果,另一方面是为了更进一步对数据结构与算法的掌握和运用,同时也让我们清楚的知道自己的掌握水平和不足之处。1 系统概述在这次课程设计中,我经过近两个星期的努力,克服了种种困难并向同学和老师请教过不少问题,终于完成了进销存货物管理系统 。为了做好这次课程设计,我认真做好了需求分析和系统的详细设计。本进销存货物管理系统使用C+编写,能够完成货物入库、货物删除、货物信息修改、货物信息统计、货物信息查询、货物信息排序、建立货物管理表和文件读写等功能。其中,我使用的数据结构有 链表类、时间类 、货物类,使用的算法有求和、直接选
6、择排序等。进销存货物管理系统界面简洁、清楚、功能齐全,使用方便,交互界面良好,让没用过这个系统的人一看就知道如何操作。2 需求分析 2.1 系统需求 该系统能进行简单的货物管理,进货,销售货物,退货等管理,并建立货物管理表。货物管理表中至少包括如下信息:货物标号,货物名称,货物产地,入库价格,入库时间,现存货物数量,已经销售数量,销售平均单价。每次销售后,都需要对现存货物数量进行更新,对已销售数量进行更新,也需要对销售平均单价进行更新。功能要求:1具有建立数据文件(货物管理表)的功能;2具有数据输入功能;3具有数据修改功能;4具有数据删除功能(当一些已经过时陈旧的商品被特价处理后,将其删除,不
7、再进货);5能查询(查找)一些基本信息(如能查询剩余件数小于某个特定值的商品,以便于及时进货);6具有多种统计功能(如统计每种货物是否有盈利(将销售平均单价跟入库价格进行比较),所有货物的盈利或亏损等等)7具有排序功能(比如对货物盈利水平进行排序比较等等) 2.2开发环境开发语言:C+开发环境:win7 64位操作系统开发软件:Microsoft Visual C+ 6.02.3 界面需求系统界面要具有广泛的实用性,便于移植。界面友好,操作简便。根据软件的使用环境、用户的要求,系统界面应该简单、友好、易于使用、方便查看、简洁明快。而且系统是在Windows环境下的应用软件,软件产品的界面应该与
8、操作系统的界面相切合,产品的主界面应该功能齐全,分类明确,让用户一眼看去就能明白大致的功能。2.4 输入输出格式本系统是一个进销存货物管理系统,采用VC+6.0编译器作为开发环境,输入数据类型主要是string 、int、float、double等数据类型,输入内容包括:货物名称、编号、入库价格、入库时间等数据。用户在输入学生数据时不需要保证输入数据格式的正确性,系统会自动检测输入的数据是否正确,输出形式与输入形式类似,根据需要可以选择显示输入的各项内容,还可以选择显示计算好盈利后并排序后的记录,显示内容包括:货物名称、货物编号、入库价格、货物数量、总利润等数据。3 详细设计3.1货物管理表:
9、编号名称地址入库价格入库时间库存数量已销售数量平均单价1牙膏1号12002 1 13512电刀2号22005 2 22023山楂9号32006 3 33334红茶5号51998 5 53453.2系统功能结构图:进销存货物管理系统退出货物信息统计货物信息修改货物信息查询货物删除货物入库货物信息排序3.3各功能模块详细设计:(1) 主函数模块: 用主函数main()来实现。主要是通过设计一个test()函数并让主函数调用它来显示主菜单,让用户选择操作。在test()函数中,我应用了while循环和switch-case语句来进行选择,是个比较简单实现的模块。最后若选择“Y”则继续循环,若选择“N
10、”则退出循环。退出此系统之前如若未进行更新数据之后的保存操作,则会提示用户是否进行更新数据后的保存,然后才退出系统。主要代码如下:int main()test();return 0;void test()LIST list;goods g;goods result;goods gg50;int i=0,h;char j=Y;int choice,number;double revise;int length=inlength();i=length+1;for(int k=1;kchoice;while(j=Y)switch(choice)case 1:system(cls); cout您将进行
11、货物信息添加endl;cout请输入货物的编号:g.number;in(length,gg);for(h=0;hlength;h+)if(ggh.number=g.number)cout货物的编号不能重复,请重新输入g.number;cout请输入货物的名称:g.name;list.insert_data(g, i);list.show_data ();i=i+1;break;Continue();cinj;if(j=Y)system(cls); menu();cinchoice; system(cls); char save;Save();cinsave;if(save=Y)list.out
12、_data();outlength(list);cout已保存!(按任意键键退出程序)endl;exit(0);(2) 货物入库模块:用函数 bool insert_data(goods data,int i); 来实现。主要功能用来对货物的信息进行收集和输入。函数首先进行的是对读取的数据文件的数据收集工作,如若在指定路径找不到数据文件,系统则会创建新的数据文件;如果找到数据文件,系统则根据指定的文件读取方式度数据文件中的数据进行读取,之后会有个提示“您将进行货物信息添加”,这样就可以按照系统的提示输入货物的信息了。货物入库模块可以录入货物的所有信息,比如编号,入库价格,入库时间等。在本操作中
13、,不允许有重复的货物编号出现。录入数据完毕后按“Y”即可返回主菜单。主要代码如下:bool LIST:insert_data ( goods data,int i)goods*current ,*previous,*newnode;int j=1;newnode=new goods;if(newnode=NULL)coutnumber=data.number ;newnode-next=NULL; previous=head;current=head-next;while(current!=NULL&jnext;j+;newnode-next=current;previous-next=new
14、node;return true;(3) 货物删除模块:用函数 bool delete_data(double i); 来实现。主要功能是用来删除货物信息。首先有个链表判空的操作,如果链表不为空则显示删除前的货物信息记录。之后会有输入货物编号的判断,对链表中货物编号相匹配的结点进行删除操作,并释放其空间。删除成功后打印删除后的全体学生信息记录。主要代码如下:bool LIST:delete_data (double i)goods *current ,*previous;int j=0;if(isempty()coutnext;while(current!=NULL¤t-numbe
15、r !=i)previous=current;current=current-next;j+;if(j=length()cout没有该信息,不能删除!next=current-next;delete current;return true;(4) 货物信息修改模块:用函数 bool revise_data(double i) 来实现。主要功能是用来修改货物信息记录。首先是判断用户需要修改的货物编号是否存在,因为货物编号是不会有重复的,如果货物编号存在,则系统会提示修改货物记录。最后将修改过后的记录打印出来,并提示修改成功!主要代码如下:bool LIST:revise_data (double
16、 i)int j=0;goods *current =head;current=head-next;while(current!=NULL¤t-number !=i)j+;current=current-next;if(j=length()cout没有找到该货物的信息!endl;return false ;cout输入您要修改的货物管理信息:1编号、2名称、3地址、4入库价格、5入库时间、6库存数量、7已销售数量、8平均单价.endl;switch(revise)case 1:cout您将修改编号,请输入新的编号number;current-number =number;retur
17、n true;(5) 货物信息统计模块:用函数 void count_data()来实现。主要功能是统计货物数量、亏损货物数量、总利润、库存货物总数、已销售货物总数。其中主要是求和算法,代码比较容易实现。主要代码如下:void LIST:count_data ()int sum=0,kssum=0,temp1=0,lrsum=0,temp2=0,kcsum=0,temp3=0,yxssum=0;int choice;goods *current ;cinchoice;switch(choice)case 1:current=head-next;while(current!=NULL)sum=s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 范例 算法 数据结构 课程设计 21

限制150内