课程设计物品库存管理设计.doc

上传人:精*** 文档编号:865464 上传时间:2023-10-05 格式:DOC 页数:28 大小:365.11KB
下载 相关 举报
课程设计物品库存管理设计.doc_第1页
第1页 / 共28页
课程设计物品库存管理设计.doc_第2页
第2页 / 共28页
课程设计物品库存管理设计.doc_第3页
第3页 / 共28页
课程设计物品库存管理设计.doc_第4页
第4页 / 共28页
课程设计物品库存管理设计.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、物品库存管理1 引 言 11.1 问题的提出 11.2国内外研究的现状11.3任务与分析 12 程序的主要功能22.1进货记录功能22.2出货记录(售货)功能22.3浏览功能22.4货物搜索功能22.5客户管理功能23 程序运行平台34 总体设计45 程序类的说明56模块分析56.1信息录入(进货、预订)模块56.2出货记录(售货)模块76.3浏览模块96.4货物搜索模块106.5客户管理模块127系统测试138 结论22致 谢23参考文献24 摘 要随着人类社会进入信息时代,计算机越来越多地活跃在社会各个领域:管理,网络,计算,控制,多媒体等。尤其在管理方面,管理软件的出现使大量繁琐复杂的问

2、题变得简单易行。现今市场竞争激烈,商场不断涌现和创新,商品数量也大量增加,有关商品的管理也愈显重要和不可或缺了。面对庞大的信息量,需要有物品库存管理系统来提高物品管理的工作效率。通过这样的系统,可以做到商品的规范管理,快速查询和客户的信息管理,从而减少管理方面的工作量。因此,许多商场需要一个功能全面的物品管理系统来进行管理,该系统具有进货信息的记录、出货信息的记录、物品的查找、和浏览库存等功能关键词:物品库存管理;计算机; 物品库存管理1 引 言 1.1问题的提出在现代化的企业管理中,管理系统有着十分重要的作用,商场在社会中占着极其重要的角色,现今商品的供求量随着社会的进步和人民生活水平的提高

3、而快速增加,面对庞大的信息和操作量,需要有物品管理系统来提高物品管理工作的效率。因此我们设计了这款物品库存管理系统来帮助管理物品和客户的基本信息。1.2国内外研究的现状 在国外高校,与国内不同,他们一般具有较大规模的稳定的技术队伍来提供服务与技术支持。而国内高校信息化建设相对起步较晚。在数字校园理论逐步应用的过程中,各高校一方面不断投资购建各种硬件、系统软件和网络,另一方面也不断开发实施了各类教学、科研、办公管理等应用系统,形成了一定规模的信息化建设体系。但是,由于整体信息化程度相对落后,经费短缺,理论体系不健全等原因,国内高校教务管理系统在机构设置、服务范围、服务质量及人员要求上与国外高校相

4、比都有一定的差距。纵观目前国内研究现状,在安全性和信息更新化方面存在有一定的不足,各现有系统资料单独建立,共享性差;在以管理者为主体的方式中,信息取舍依赖管理者对于信息的认知与喜好,较不容易掌握用户真正的需求,也因此无法完全满足用户的需求。因此,学生信息管理软件应充分依托校园网,实现教务信息的集中管理、分散操作、信息共享,使传统的教务管理朝数字化、无纸化、智能化、综合化的方向发展,并为进一步实现完善的计算机教务管理系统和全校信息系统打下良好的基础。1.3任务与分析本课题主要的目的是设计一个物品库存管理系统程序,有进货数据录入、存储、显示、查询(按价格或商品名查询)和出货售货功能。完成本次课题的

5、基本思路是使用文件输入输出流完成各项功能。具体就是先建立一个Item类,包含的物品名、编号、价格作为私有数据成员,定义有赋值,存储功能的成员函数,使用文件输出流对文件进行数据输入(进货),保存,实现录入保存功能,然后使用输入流把文件数据读出来实现查找,售货功能。2 程序的主要功能2.1进货记录功能输入商品的名字和价格,进货日期及商品编号系统将会自动生成2.2出货记录(售货)功能能够将商品找到并从库存文件中删除及存入到出货统计文件中2.3 浏览功能可以浏览库存文件、进货统计文件、出货统计文件中的信息2.4货物搜索功能主要在库存文件中搜索,可以按商品名和价格搜索,在售货时需要按商品编号搜索2.5客

6、户管理功能记录客户预订信息及信息的浏览和搜索,以及在售货时对已预订商品的提示。3 程序运行平台Microsoft Visual C+ 6.01. 启动Visual C+ 6.0开发环境从“开始”菜单中选择“程序”| Microsoft Visual Studio 6.0 | Microsoft Visual C+6.0显示Visual C+ 6.0开发环境主窗口。2. 建立C+源程序文件选择菜单命令Project | Add to Project | New,弹出New对话框。如图1-3所在new对话框的Files选项卡中选择C+ Source File,并填入文件名称,单击OK按钮,完成新建

7、C+源程序文件。3. 编辑C+源程序文件内容在文件编辑窗口中输入代码。选择菜单命令File | Save保存这个文件。4. 建立并运行可执行程序选择菜单命令Build- Build main.exe 建立可执行程序。如果你正确输入了源程序,此时便成功地生成了可执行程序。如果程序有语法错误,则屏幕下方的状态窗口中会显示错误信息。根据这些错误信息对源程序进行修改后,重新选择菜单命令Build | Build main.exe ,建立可执行程序。选择菜单命令Build | Execute main.exe运行程序,观察屏幕的显示内容。5关闭工作空间选择菜单命令File | Close Workspa

8、ce关闭工作空间。 4 4总体设计Item类主 函 数进货记录出货记录库存浏览搜索商品客户预订客户搜索友元类客户类 图4.1 系统总体框架图5 程序类的说明l client类的声明class client/客户类,Item类是它的友元类string nam; /客户名字public: client()client()friend class Item;l Item类的声明class Itemstring name; /物品名 float price; /价格 long number; /商品编号 client cli; /定义客户类对象public: Item() Item() void st

9、ock1(); void snum();6 模块分析6.1 信息录入(进货、预订)模块进入主菜单,提示用户输入相应的字符进入该项功能,按字符1,系统将进入进货录入模块,提示用户输入新进货的商品信息,然后显示在屏幕上;按字符5,可进入客户管理模块,其中有输入1为预订信息录入;如果想继续录入也可按相应的提示完成操作。录入函数如下:void Item:stock1()/两个类的成员函数,有赋值、存入功能 string a,c; char it; SYSTEMTIME t; GetLocalTime(& t); ofstream outfile;/定义输出文件类 if(xyj=5) coutendl:

10、; client3:cincli.nam;cnam=cli.nam; goto stock15;stock12:itt+; coutendl:;cinname; if(itt=2) itt=0;goto stock14;stock13: coutendl:; cinprice;stock14:cout:; goto stock16;/stock15:cout:;stock16:cinit;if(it=0) main(); else if(it=1) if(xyj=5) ifstream ff1;ofstream ff2;ff1.open(n.txt,ios:in);ff1nn; ff1.clo

11、se(); ifstream ff3;ff3.open(ent.txt,ios:in); ff3ent; ff3.close();coutent;ff4.close(); ent+; ff2.open(ent.txt,ios:trunc);ff2ent;ff2.close(); cout:; stock17:char p17;cinp17; if(p17=0) exit(0);else if(p17=1) stock1(); else if(p17=2) main(); elsegoto stock17;goto stock11;else if(it=2) if(xyj=5)goto clie

12、nt3;else if(xyj=1)goto stock12; else if(it=3)&(xyj!=5)goto stock13; elseif(xyj=5)goto stock15;goto stock14;stock11:ifstream f1;ofstream f2;f1.open(n.txt);f1nn;f1.close(); nn+;f2.open(n.txt,ios:trunc);f2nn;f2.close(); snum(); outfile.open(stock.txt,ios:app);/打开一个输出文件“file2.out” if(!outfile)cout不能打开文件

13、!endl; outfilesetiosflags(ios_base:left)setw(16)name setiosflags(ios_base:left)setw(16)price setiosflags(ios_base:left)setw(4)t.wYear. setiosflags(ios_base:left)setw(2)t.wMonth. setiosflags(ios_base:left)setw(8)t.wDay setiosflags(ios_base:left)setw(16)numberendl; outfile.close(); outfile.open(storag

14、eC.txt,ios:app);/打开一个输出文件“file2.out” if(!outfile)cout不能打开文件!endl; outfilesetiosflags(ios_base:left)setw(16)name setiosflags(ios_base:left)setw(16)price setiosflags(ios_base:left)setw(4)t.wYear. setiosflags(ios_base:left)setw(2)t.wMonth. setiosflags(ios_base:left)setw(8)t.wDay setiosflags(ios_base:le

15、ft)setw(16)numbernn;ifile.close();number=2108000+nn; 6.2出货记录(售货)模块进入主菜单选择2可进入售货模块,输入要出售商品的编号即可,该模块涉及到搜索,查找将被出售商品是否被预订,以及存储售货信息等功能。代码如下:void sell1()/出货取并从库存文件中删除信息函数ifstream f1;ofstream f2; int mm=0; f1.open(m.txt); f1mm;f1.close(); mm+;f2.open(m.txt,ios:trunc);f2mm;f2.close(); char mes100;char ch; o

16、fstream ofp;ifstream ifp; ofp.open(storageB.txt,ios:trunc);ofp.close(); ifp.open(storageC.txt,ios:in);ofp.open(storageB.txt,ios:app); for(int j=0;j=(nn-mm);j+) ifp.getline(mes,100); if(j=J)elseofpmesendl; ifp.close();ofp.close(); ofp.open(storageC.txt,ios:trunc);ofp.close(); ifstream infile(storageB

17、.txt);ofstream outfile(storageC.txt);while(infile.get(ch)outfile.put(ch);infile.close();outfile.close();void sell2()/出货存文件函数SYSTEMTIME t; GetLocalTime(& t); char mes100; ofstream ofp; ifstream ifp; ifp.open(storageC.txt,ios:in); if(xyj=5) ofp.open(client.txt,ios:app); goto loop20; else if(xyj=2) ofp

18、.open(shipment.txt,ios:app);loop20:for(int j=0;j=J;j+) ifp.getline(mes,100); if(xyj=5) ofpsetiosflags(ios_base:left)setw(16)cnam mesendl; goto loop21; else if(xyj=2) ofpmessetiosflags(ios_base:left)setw(4)t.wYear. setiosflags(ios_base:left)setw(2)t.wMonth. setiosflags(ios_base:left)setw(8)t.wDay end

19、l;loop21: ifp.close();ofp.close();6.3浏览模块有三个文件的浏览,一个是库存文件,一个是进货历史记录文件,一个是出货历史记录文件的浏览。另外在客户管理模块中也有浏览功能,所以还有客户预订记录文件的浏览,但几个文件浏览功能的实现都差不多,所以代码如下:void show()/浏览函数system(cls);system (color f1);char c2;char buf1000;if(cll=2)&(xyj=3)string str1=商品名,str2=商品价格,str3=进货日期,str4=商品编号,str5=出货日期;coutsetiosflags(io

20、s_base:left)setw(16)str1 setiosflags(ios_base:left)setw(16)str2 setiosflags(ios_base:left)setw(16)str3 setiosflags(ios_base:left)setw(16)str4 setiosflags(ios_base:left)setw(16)str5endl;cout+endl;else if(cll=3)|(cll=1)&(xyj=3)string str1=商品名,str2=商品价格,str3=进货日期,str4=商品编号;coutsetiosflags(ios_base:left

21、)setw(16)str1 setiosflags(ios_base:left)setw(16)str2 setiosflags(ios_base:left)setw(16)str3 setiosflags(ios_base:left)setw(16)str4endl;cout-endl;else if(xyj=5)string str5=客户名,str1=商品名,str2=商品价格,str3=进货日期,str4=商品编号;coutsetiosflags(ios_base:left)setw(16)str5 setiosflags(ios_base:left)setw(16)str1 seti

22、osflags(ios_base:left)setw(16)str2 setiosflags(ios_base:left)setw(16)str3 setiosflags(ios_base:left)setw(16)str4endl;cout+endl;ifstream infile;if(cll=1)&(xyj=3)infile.open(stock.txt,ios:in);else if(cll=2)&(xyj=3)infile.open(shipment.txt,ios:in);else if(cll=3)&(xyj=3)infile.open(storageC.txt,ios:in);

23、else if(xyj=5)infile.open(client.txt,ios:in);while(infile.getline(buf,1000)coutbufendl;infile.close();if(cll=2)&(xyj=3)|(xyj=5)cout+endl;elsecout-endl;cout:;loop4:cinc2;if(c2=1)if(xyj=3)showmenue(); else if(xyj=5)manaC(); else if(c2=0)main(); elsecout请重新选择:; goto loop4;6.4货物搜索模块有输入商品名搜索,有输入价格范围搜索,在前

24、面说过在售货是有按商品编号搜索,及在售货前要进行是否被预订的判断,这里也有搜索功能。具体实现代码如下:void ss()/搜索辅助函数long m;int s=0;char ca;char buff16,buff116,buff216,mes100;loop10:nam();strcpy(buff1,buffer);strcpy(buff3,buffer);if(xjh=1)goto xjh6; else if(xyj=2)|(xjh=2)|(xyj=5) goto xjh7; elseexit(0); xjh6:nam();strcpy(buff2,buffer);xjh7:string s

25、tr5=商品名,str6=商品价格,str7=进货日期,str8=商品编号; coutendlsetiosflags(ios_base:left)setw(16)str5 setiosflags(ios_base:left)setw(16)str6 setiosflags(ios_base:left)setw(16)str7 setiosflags(ios_base:left)setw(16)str8endl;cout+endl; ifstream ifile;ifile.open(storageC.txt,ios:in); for(I=0;Ibuff;if(strlen(buff1)=str

26、len(buff)goto loop7;else goto loop8;loop7:if(xjh=1) goto xjh4; else if(xjh=2)|(xyj=2)|(xyj=5) goto xjh5;else exit(0);xjh4: if(strlen(buff1)!=ma() sbpri(); else if(strcmp(buff1,buff2)0) system(cls);cout请先输入较小的数,再输入较大的数!0)&(strcmp(buff,buff2)0)goto loop9;xjh5:if(strcmp(buff1,buff)=0)loop9:J=I; ifstrea

27、m ifp; ifp.open(storageC.txt,ios:in); for(int j=0;j=I;j+) ifp.getline(mes,100); coutmesendl;ifp.close();cout+endl; else loop8: s+;continue;ifile.close(); if(xyj=2)|(xyj=5) if(s=nn)loop11:if(xyj=5)goto loop15;smsmss();coutca;if(ca=0)loop15:sell2();if(xyj=5) goto loop16; sell1();else if(ca=1)ship();el

28、se if(ca=2) main();else goto loop11;else goto loop12;loop12:if(snn)system(cls);cout储存库中没有该货物!endl;loop5:char cc; cout:; if(xyj=5) loop23:char p17;cinp17; if(p17=0)exit(0);else if(p17=1) Item clien;clien.stock1(); else if(p17=2) main();else goto loop23;loop6:cincc; if(cc=1)if(xyj=2)ship();else if(xyj

29、=4) Search(); else if(cc=2) main(); else if(cc=0) exit(0); elsecout请重新选择:;goto loop6;elsegoto loop5;loop16:;6.5 客户管理模块在主菜单中选择5,进入客户管理模块,在这个模块里有预订功能,即前面的录入模块里说过的;有浏览已预订的商品信息;客户搜索等使用这个功能可以扩大商场的市场面积和提高商场售货效率,及商场信誉度。具体实现代码如下。void manaC()/ 客户管理菜单函数 system(cls);system(color fc); char AC;Item Cli;菜单代码略cout

30、:;ln1:cinAC; if(AC3|AC0)goto ln1; ln=AC;if(AC=0)main();else if(AC=1)system(cls);Cli.stock1();else if(AC=2)smallss(); else if(AC=3)show();void smallss()/客户搜索函数system(cls);system(color fd);ifstream ifile;cout您要搜索的客户是ent;ifile.close();long m;int s=0;char ca;char buff16,buff116,mes100; nam();strcpy(buff

31、1,buffer);string str4=客户名,str5=商品名,str6=商品价格,str7=进货日期,str8=商品编号; coutendlsetiosflags(ios_base:left)setw(16)str4 setiosflags(ios_base:left)setw(16)str5 setiosflags(ios_base:left)setw(16)str6 setiosflags(ios_base:left)setw(16)str7 setiosflags(ios_base:left)setw(16)str8endl;cout+endl; ifstream ifile1;

32、 ifile1.open(client.txt,ios:in);for(int i=0;ibuff;if(strcmp(buff1,buff)=0) ifstream ifp;ifp.open(client.txt,ios:in);for(int j=0;j=i;j+) ifp.getline(mes,100); coutmesendl; ifp.close(); cout+endl; elses+;continue; ifile.close();if(sent)system(cls);cout没有该客户的记录!endl;l7:char cc;cout:;l6:cincc;if(cc=1)sm

33、allss(); else if(cc=2)main(); else if(cc=0)exit(0); elsecout:;goto l6;7 系统测试直接双击person文件夹下的debug或release子文件夹下的person.exe文件即可运行程序。进货记录模块 图7.1(主菜单) 图7.2(如果不按照提示的输入将会跳转到重新输入) 图7.3(可以重新输入价格及商品名)出货记录模块 图7.4 图7.5(执行如图7.4后得到的) 图7.6 图7.7(提示该商品已被预订)浏览模块 图7.8 图7.9(进货统计表) 图7.10(出货统计表) 图7.11(库存一览表) 图7.12(搜索菜单)

34、图7.13(主要规范价格的位数)图7.14(如果不按照要求先输入较小数再输较大数及如果输入的数与在图7.13所示的界面上选择的数位数不同,系统将自动跳转到图7.12的界面) 图7.15(输入商品名搜索) 图7.16 图7.17(预订操作界面) 图7.18(客户搜索界面) 图7.19(预订统计表)8 8结论本次课程设计我做的是物品库存管理系统,通过为期两周的C+课程设计实验课,我了解到了一个程序开发的过程,虽然规模不大,但为我以后的编程学习打下了扎实的基础。在编程的过程中,我体会到了学习编程的辛苦,为了一个算法的实现而思考,为了一个小小的编译错误而花时间去寻找,这需要很大的毅力和耐心,而且要有良

35、好的思维,这才使得我完成这个任务,也使我感到一分喜悦,毕竟自己完成了一个有模有样的程序。于此,我也发现自己的一些不足,良好的编程习惯的养成,坚定的毅力和耐心仍是我要加强的,同别人的交流也是必须的,这样才能不断使我进步。本次课程设计,我虽然顺利完成了题目所要求的各项功能,但由于时间的原因,也存在一些不足,在预订统计文件中没有已售否的标记,在库存文件中没有被预订否的标记,等等。在按价格搜索的实现代码中我用的仍然是字符串的形式,不能用整型或浮点型从文件中取出并比较,所以要求选择价格位数。在对文件操作上还有不足,在今后的学习中我会注意并加强这方面的学习。但本系统也有其闪亮的地方,其对出错的处理比较完善,在选择输入时定义的都是字符,而不是整型,可以避免输入字符而使系统无法正常运行。本系统商品的编号都是由系统默认加上去的,其中前四位不变为2108,即21世纪08年的意思,后四位则有系统自动加一而得;进出货的时间截取系统时间的年月日而成。均不需要输入。致 谢两周的课程设计即将结束,在进行课程设计的过程中,我除了查阅大量相关资料外,更多的是请教老师和同学。我的课程设计能够顺利完成,与各位老师和同学提供的

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 技术资料 > 课程设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922