ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:333.44KB ,
资源ID:18764596      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18764596.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(范例算法与数据结构课程设计Word文件下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

范例算法与数据结构课程设计Word文件下载.docx

1、其中,我使用的数据结构有 链表类、时间类 、货物类,使用的算法有求和、直接选择排序等。进销存货物管理系统界面简洁、清楚、功能齐全,使用方便,交互界面良好,让没用过这个系统的人一看就知道如何操作。2 需求分析 2.1 系统需求 该系统能进行简单的货物管理,进货,销售货物,退货等管理,并建立货物管理表。货物管理表中至少包括如下信息:货物标号,货物名称,货物产地,入库价格,入库时间,现存货物数量,已经销售数量,销售平均单价。每次销售后,都需要对现存货物数量进行更新,对已销售数量进行更新,也需要对销售平均单价进行更新。功能要求:1具有建立数据文件(货物管理表)的功能;2具有数据输入功能;3具有数据修改

2、功能;4具有数据删除功能(当一些已经过时陈旧的商品被特价处理后,将其删除,不再进货);5能查询(查找)一些基本信息(如能查询剩余件数小于某个特定值的商品,以便于及时进货);6具有多种统计功能(如统计每种货物是否有盈利(将销售平均单价跟入库价格进行比较),所有货物的盈利或亏损等等)7具有排序功能(比如对货物盈利水平进行排序比较等等) 2.2开发环境开发语言:C+开发环境:win7 64位操作系统开发软件:Microsoft Visual C+ 6.02.3 界面需求系统界面要具有广泛的实用性,便于移植。界面友好,操作简便。根据软件的使用环境、用户的要求,系统界面应该简单、友好、易于使用、方便查看

3、、简洁明快。而且系统是在Windows环境下的应用软件,软件产品的界面应该与操作系统的界面相切合,产品的主界面应该功能齐全,分类明确,让用户一眼看去就能明白大致的功能。2.4 输入输出格式本系统是一个进销存货物管理系统,采用VC+6.0编译器作为开发环境,输入数据类型主要是string 、int、float、double等数据类型,输入内容包括:货物名称、编号、入库价格、入库时间等数据。用户在输入学生数据时不需要保证输入数据格式的正确性,系统会自动检测输入的数据是否正确,输出形式与输入形式类似,根据需要可以选择显示输入的各项内容,还可以选择显示计算好盈利后并排序后的记录,显示内容包括:货物名称

4、、货物编号、入库价格、货物数量、总利润等数据。3 详细设计3.1货物管理表:编号名称地址入库价格入库时间库存数量已销售数量平均单价1牙膏1号2002 1 1352电刀2号2005 2 2山楂9号2006 3 34红茶5号1998 5 53.2系统功能结构图:货物入库货物删除货物信息查询货物信息修改货物信息统计货物信息排序退出3.3各功能模块详细设计:(1)主函数模块:用主函数main()来实现。主要是通过设计一个test()函数并让主函数调用它来显示主菜单,让用户选择操作。在test()函数中,我应用了while循环和switch-case语句来进行选择,是个比较简单实现的模块。最后若选择“Y

5、”则继续循环,若选择“N”则退出循环。退出此系统之前如若未进行更新数据之后的保存操作,则会提示用户是否进行更新数据后的保存,然后才退出系统。主要代码如下: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=) switch(choice) c

6、ase 1: system(cls); coutg.number; in(length,gg); for(h=0;hlength;h+) if(ggh.number=g.number) cout coutg.name; list.insert_data(g, i); list.show_data (); i=i+1; break; Continue(); cinj; if(j= menu(); system( char save; Save();save; if(save= list.out_data(); outlength(list); coutnumber=data.number ;ne

7、xt=NULL; previous=head; current=head-next; while(current!=NULL&j j+;next=current; previous-next=newnode; return true;(3)货物删除模块:用函数 bool delete_data(double i);主要功能是用来删除货物信息。首先有个链表判空的操作,如果链表不为空则显示删除前的货物信息记录。之后会有输入货物编号的判断,对链表中货物编号相匹配的结点进行删除操作,并释放其空间。删除成功后打印删除后的全体学生信息记录。delete_data (double i) goods *cur

8、rent ,*previous; int j=0; if(isempty()表已空,不能删除!n ;current-number !=i) if(j=length()没有该信息,不能删除!next=current- delete current;(4)货物信息修改模块:用函数 bool revise_data(double i) 来实现。主要功能是用来修改货物信息记录。首先是判断用户需要修改的货物编号是否存在,因为货物编号是不会有重复的,如果货物编号存在,则系统会提示修改货物记录。最后将修改过后的记录打印出来,并提示修改成功!revise_data (double i) goods *curr

9、ent =head;没有找到该货物的信息! return false ; coutnumber =number;(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 ; switch(choice) current=head-

10、while(current!=NULL) sum=sum+1; current=current-货物总数为 sump-next!=NULL;p=p-next) small=p; for(q=p-next ;q!q=q- if(q-numbernumber) small=q; if(small!=p) temp-number=p- p-number=small- small-number=temp- (7)货物信息查询模块:用函数 void find_data(goods &result);来实现。这里的函数参数使用了一个货物类的引用变量,使得查找到的货物信息赋给这个引用变量,然后能够进行输出。

11、查找的信息包括:货物编号、亏损货物信息、库存数量小于某数信息、已销售数量小于某数信息。主要代码:find_data (goods &result) int choice,x,i=0,j=0,k=0; int Number;请输入货物编号Number; if(current-=Number ) current=current- else result.number=current-查找结果如下:编号t名称 地址入库价格 入库时间库存数量已销售数量平均单价endl ;result.number if(current=NULL)无此货物编号! (8)文件读写:使用标准的C+文件输入输出流进行文件读写

12、。out_data() goods *current; ofstream out(goods if(!iout)文件打开失败! return; while(current) outnameGoodsAddress IncomingPricetime.yeartime.monthtime.dayStockNumberSoldNumberAveragePrice out.close() ;3.4数据结构:为了对数据进行封装,我使用了链表类、货物类、时间类。为了能够方便的使用类中的数据,我把所有的数据成员都设为公有。其中,链表类的数据成员有:头结点。货物类的数据成员有:编号、名称、地址、入库价格、入

13、库时间、库存数量、已销售数量、平均单价。时间类的数据成员有 :年、月、日。3.5算法:主要是求和以及直接选择排序算法。同时使用到下面的技术:文件访问与操作、合理的常量与全局变量及函数接口变量定义、数据输入与数据格式检查、数据类型转换、错误处理、工程设计技术。3.6测试:系统测试是系统质量保证的主要活动之一,在系统开发的过程中,在各个阶段都有可能存在错误和缺陷。通过测试是可以发现系统设计中存在的种种问题,并可以及时改正。避免在系统投入使用时才出现不必要的错误,导致其他损失。测试是质量保证一个临界和决定惩罚,它提供对系统规格说明、设计和编码的最终评审。是发现系统缺陷和错误的有力手段。本系统测试的内

14、容主要有:(1)软件的正常运行、关闭及退出时保存记录的提示(默认为是)。(2)用户登录界面友好,可操作性及安全性能较好,能对不同管理级别者进行限制,以保证数据库的安全。(3)可维护性好,数据的录入、删除及更改均能顺利完成,并能实现动态更新。(4)数据查询便捷,能对各种不同的查询条件进行搜索,以找到最合适的答案。(5)数据溢出、越界均能进行非法提示,以警告用户正确使用。对用户的非正常操作方式也提出警告。(6)数据类型填写错误时,系统能够报错。(7)软件对操作系统的兼容性良好,可移植性完好。主界面 :货物删除模块界面:货物统计模块界面:货物排序模块界面:4所遇到的问题和分析解决(1)问题:需求分析

15、的不明确解决:在课程设计指导书的帮助下,自己在做课设的过程中不断明确和修正自己的需求分析,不断添加新功能。(2)数据结构的选择经常尝试和修改,考虑到链表在动态修改中的快捷方便性,我建立了一个链表类,并把我建立的货物类的数据储存在链表上。在链表上,我的数据能够方便地进行添加、删除、修改等操作。(3)如何能在下次登录时使用上次登录时存储在文件里的数据经过同学的帮助和自己的努力,我掌握了如何对存储在文件里的数据进行使用的办法。只要在每次程序运行结束时把货物管理表的长度写入到文件当中,当下次登录时再读取出货物管理表的长度,然后根据这个长度把存储在文件中的货物管理表的记录一个个添加到链表去,之后你就可以

16、任意使用这些数据了。(4)我曾经遇到无论我往文件里面写入多少条记录,但文件中只显示一条的记录的问题对于这样的逻辑问题,我调试了很多次也找不到问题的原因所在,遇到这样纠结的问题,我只好去请教老师。只见老师使用了断点跟踪调试法,很快就发现了问题的原因所在,原来是我的out.close();语句竟然写在循环里面,导致我只写入了一次便无法再写入了。从中,我不仅了解到写程序时当局者迷,旁观者清,应该多向他人虚心请教的道理,更懂知道了调试程序的方法。我相信经过我的努力,我调试程序的水平一定会越来越好。(5)异常错误如何考虑,如何处理一个系统在运行中可能会遇到许多异常,如果不对这些异常进行处理,就会让使用系

17、统的用户在系统出现异常时不知所措,程序也无法正常地运行和终止。那么我应该如何考虑异常处理呢?首先,我应该保证程序中尽可能少的出错,以避免异常的出现。所以我应该先做到一下几点:1只引用属于自己的存贮空间。2防止引用已经释放的内存空间。3函数中分配的内存,在函数退出之前要释放。4函数中申请的(为打开文件而使用的)文件句柄,在函数退出前要关闭。5防止内存操作越界。6时刻注意表达式是否会上溢、下溢。7认真处理程序所能遇到的各种出错情况。8系统运行之初,要初始化有关变量及运行环境,防止未经初始化的变量被引用。9系统运行之初,要对加载到系统中的数据进行一致性检查。10不能随意改变与其它模块的接口。11充分了解系统的接口之后,再使用系统提供的功能。12时刻注意易混淆的操作符。当

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

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