《商场销售管理系统课程设计20195.docx》由会员分享,可在线阅读,更多相关《商场销售管理系统课程设计20195.docx(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、*大学程序设计计课程设设计报告告商场销售售管理系系统学号姓名日期目录一.需求求分析.3二.程序序主要功功能.3三.程序序运行平平台.4四.系统统功能框框架图.5五.程序序类说明明.6六.模块块分析.7七.比较较有特色色的地方方.13八.存在在的不足足与对策策.13九.编程程体会144十.程序序源代码码.15一.需求求分析本系统旨旨在实现现一个小小型的商商城销售售管理系系统,对对于一个个小型的的商场或销销售店铺铺来说,实实施本系系统不仅仅可以减减少工作作人员数数量,降降低成本本,而且且可以大大大提高高工作效效率,降降低工作作强度,方方便卖家家记录商商品流通通信息,统计销售情况,分析市场需求,帮助
2、卖家更好的管理商场,以获取跟多的利润。程序主要要实现进进货管理理、商品品基本信信息查询询与修改改、利润润计算与与销售统统计、库库存管理理等及一一些辅助助功能。二.程序序主要功功能该程序的的主要功功能有1.商品品信息管管理可对商品品信息进进行查看看、按一定定规则排排序及商商品查找找,其中中具体信信息包括括 商品品名称,编编号,进进货成本本价,销销售价,进进货总量量,销售售量,可可以对库库存,已已获得利利润,总总体成本本价等进进行计算算2.管理理员功能能可实现现对商品品信息的的进行修修改,添添加,删删除等功功能,并并进行文文件的操操作储存存,以更更好的保保护信息息,能有有效的管管理好商商品信息息的
3、隐秘秘性。3.辅助助功能该程序序实现了了一下清清屏,清清空文件件,操作作提示等等善后辅辅助功能能,能帮帮助用户户更好的的应用该该程序,使使程序的的功能最最大化实实现。三程序序运行平平台该程序是是用VCC+66.0制制做的,使使用Miicroosofft VVisuual C+ 6.0运行行该程序序,具体体操作是是:打开开Miccrossoftt Viisuaal CC+ 6.00,菜单单栏里点点文件打开工工作区找到“图书管管理系统统.dssw”这个文文件打开,或或者在资资源管理理器中双双击该文文件,此此时,VVC+6.00会自动动打开,并并载入该该系统相相关资源源,点击击Runn命令菜菜单或者
4、者或用快快捷键CCtrll+F55运行该该程序。trl计计分析能能四.系统统功能框框架图商城销售管理系统进入系统退出系统商品信息查看显示全部内容商品查找显示商品信息按销量排序按利润排序商品基本信息名称编号成本单价销量库存总量利润商品管理修改数据创建新表增加商品删除商品文件存档从文件中提取数据其它辅助功能使用说明及帮助等五.程序序类说明明有关商品品信息的的类/存储储商品信信息classs GGooddsInnfopubblicc:charr * namme ; /商品品名称int nummberr; /商品编编号floaat ccostt_p; /成本本单价floaat uunitt_p; /销
5、销售单价价int nnum_alll; /共计商商品件数数int nnum_noww; /现存商商品件数数int nnum_selll; /已售售出商品品件数floaat ccostt_alll; /进货货总计成成本价floaat pproffit; /已已销售商商品获得得的利润润GooddsInnfo * nnextt; /指向下下一个商商GooddsInnfo(); /构造造函数GooddsInnfo(chaar * a,intt b,flooat c,ffloaat uu,innt aall,intt seell) ; /重重载构造造函数voidd opperaatorr= (coons
6、tt GooodssInffo &rigght); /重载=voidd seetInnfo(chaar * a,flooat c,ffloaat uu,innt aall,intt seell) ; /数据据载入charr* ggetnnamee()retturnn naame; /返返回姓名名用于查查找 显显示商品品信息voidd Ammendd(GooodssInffo *);voidd shhow(GooodsIInfoo *);GooodsIInfoo() deelette nnamee;;商品类链链表classs GGooddLisst :pubblicc GooodssInffop
7、ubllic:GooddLisst();/构造函函数,指指针初始始化GooodLiist();/析构构函数,释释放GooddsInnfo * hheadd; /头指针针GooddsInnfo * pp; /活动动指针11GooddsInnfo * pp2; /活活动指针针2(指指向最后后一个)voidd crreatte(); /创建函函数voidd shhowiinfoo(GooodssInffo *); /显示示GooddsInnfo * ssearrch(); /查查找voidd saaveIInfoo();/信信息存档档voidd geetInnfo(); /上传信信息voidd ad
8、ddInnfo(GooodsIInfoo *);/添添加数据据voidd soort(); /按销销量显示示voidd meenu();voidd deelette_();/删除除节点;六.模块块分析菜单:所有函数数均封装装在商品品类及商商品链表表类中(GGooddsInnfo 和 GooodLiist)信息存存储在类类GooodsIInfoo中,类类中定义义了3个GooodsIInfoo指针,一一个是*heaad,作作为链表表的头指指针,另另一个是是*p,作作为活动动指针,一一个*pp2,指指向链表表的尾节节。在不不同的类类的成员员函数中中都可使使用,为为了防止止该活动动指针使使用过频频,造
9、成成几个函函数同时时使用同同一个指指针指向向不明,在在有些函函数里还还定义了了一些临临时指针针。1.创建建此函数为为是创建建商品信信息数据据,构成商品品信息表表是使用用,用于于让用户户批量添添加商品品。按照程序序的提示示,可依依次添加加商品信信息,按按Y继续,其其他建则则停止,返返回主菜菜单。此此时链表表创建成成功,*heaad指向向链表的的头,pp2指向向尾。可可用于后后续函数数的操作作。2.添加加跟创建有有一样的的用途,用用于添加加商品信信息,不不同的是是添加只只能用于于已有原原链表存存在的情情况下。但但这个不不能批量量添加,一一次只能能添加一一个,并并且存放放在原链链表尾节节点的后后一个
10、,形形成一个个新的链链表。3.查找找顾名思义义,此函函数用于于查找商商品信息息。在原原始信息息过多的的时候,可可以通过过查找(按按商品编编号和商商品名称称两钟方方式)查查看自己己想看的的商品详详细信息息。若不存在在该商品品,程序序则自动动输出未未找到,然然后返回回主菜单单。若查查找到该该商品,函函数返回回该节点点的指针针,并用用单个显显示函数数显示出出来。4.修改改此函数是是基于查查找函数数之上的的。在查查找到需需要修改改的单元元后,选选择自己己需要修修改的项项目。函数会询询问是否否需要继继续修改改,Y继继续,其其他键则则返回主主菜单。5.删除除删除和修修改一样样,基于于查找函函数之上上,用于
11、于删除不不需要的的节点。操操作方法法也和前前面类似似。6.显示示此函数用用于批量量显示商商品信息息。该函函数以表表格的型型式显示示,明了了清晰,有有助于比比较。7.排序序排序是基基于显示示函数的的一个函函数。该该函数用用选择排排序法,以以两种(按按销量和和按利润润)方法法排序显显示,有有助于商商家对比比比较分分析哪种种商品的的销量好好利润高高,便于于管理和和优化商商城的盈盈利。8.上传传当需要输输入数据据过多过过大时,可可以通过过上传函函数,直直接把文文件中的的数据读读到程序序中并形形成链表表,然后后再继续续后续操操作。这这个和创创建函数数具有差差不多的的功能,不不过一个个是从键键盘读入入,一
12、个个是从文文件中读读入。文文件上传传成功后后,函数数会自动动显示成成功,然然后跳到到主菜单单进行其其他项目目。9.存档档上传和存存档是文文件和程程序的两两个接头头。在数数据操作作过程中中为避免免数据丢丢失,可可边操作作变保存存,在退退出程序序之前,程程序也会会自动弹弹出询问问是否需需要保存存,这是是比较人人性化的的一点,以以免造成成不可估估量的后后果。保保存成功功后会自自动输出出成功字字样,并并退出或或继续程程序。存档和上上传合并并利用,下下一次运运行程序序时,可可以直接接上传上上次所保保存的数数据然后后继续操操作,就就不需要要工作人人员一个个一个慢慢慢输入入了。10.其其他清屏是一一个辅助助
13、函数,为为了清晰晰界面方方便操作作美化外外观。退退出程序序是会自自动询问问是否保保存文件件,然后后调用析析构函数数,释放放链表清清除数据据,然后后安全退退出。七、比较较有特色色的地方方有特色的的函数指指的是实实现地较较为巧妙妙的类的的构造函函数、成成员函数数、析构构函数等等函数,也也可以是是指针处处理的函函数,文文件处理理的函数数等比较较有特色色的函数数,能体体现巧妙妙构思即即可。特特别是运运算附的的重载,大大大减小小了代码码的数量量,简洁洁了程序序。还有有就是文文件操作作方面,比比较合理理和人性性化。八.存在在的不足足在文件编编写的时时候我此此次采用用的是ttxt储储存数据据,虽然然有助于于
14、使用者者查看数数据,但但是在面面对一串串庞大数数据是,ddat文文件的效效率明显显会高很很多。还还有就是是由于学学得不够够深,程程序的功功能总体体来说还还比较少少,有待待以后更更深层的的学习后后完善。比比如界面面方面的的处理,和和对每天天销售情情况的记记录等等等。商品品流通的的具体过过程等该该程序都都没有记记录。需需要改进进的地方方还有很很多。九、心得得体会通过这次次课程设设计,我我清楚的的认识到到了C+是一一门很庞庞大的并并且很有有实用价价值的一一门学科科,它一种非非常简洁洁高效的的语言。类类的特色色在这次次编程过过程中有有了充分分的体会会。就以以前所学学的C语语言而言言,我明明显感觉觉到C
15、+在编编写这种种比较复复杂的程程序时的的优势,他他的重载载函数运运算符的的等操作作也是一一大有点点。模块块的分块块化,当当需要用用到某个个函数时时再进行行调用,大大增强了程序的可读性,而且代码也更加合理清晰。就拿这次次我所写写的商场场销售管管理系统统来说,商商品类的的操作是是一个整整体,写写在一个个中.ccpp,文件里里面同时时也可以以另外写写到一个个.h的的头文件件里面,在在写程序序的时候候再进行行调用。课程设计真的很能锻炼人,平时上课都是讲的基础知识,上机也只是编写的小程序,不能把知识融会贯通。然而这次课设是编写的一个小系统,把所学的知识都联系起来了,在刚刚看到要求时是觉得有很大的难度的,
16、毕竟是第一次编写一个商场销售管理系统。但是想到有志者事竞成,只要敢于思考敢于尝试,按步骤一步一步来也是能编写出程序的。于是我首先把程序类图先画了出来,把程序基本结构勾勒出来,化整为零,一个一个小功能慢慢写起,写完一个在主函数中验证一个看是否正确,通过后在进行下一个,逐步实现。而后编写主函数,菜单等,完善功能。因为我刚刚入门c+,基本工还不足,能力还很弱,所以在写的过程中遇到很多困难,有些以前很熟悉的代码也忘了,于是我开始翻阅以前的书籍,边对照边回忆,终于完成了。特别是在文件操作方面尤为薄弱,我意思到了自己的弱点。由于自己的不足,以后学习还要更加努力,不懂时多问老师多向同学学习。作为一个计算机专
17、业的学生,计算机语言是我们的基本功,我们应该扎实自己的基础,才能更快更好的发展。十.源代代码#ifnndeff LIIST_H#deffinee LIIST_H#inccludde GOOODSIINFOO.Hclasss GGooddLisst :pubblicc GooodssInffopubllic:GooddLisst();/构构造函数数,指针针初始化化GooodLiist();/析析构函数数,释放放GooddsInnfo * hheadd; /头指针针GooddsInnfo * pp; /活动指指针1GooddsInnfo * pp2; /活动指指针2(指向最最后一个个)voidd
18、crreatte(); /创建函函数voidd shhowiinfoo(GooodssInffo *); /显示示GooddsInnfo * ssearrch(); /查查找voidd saaveIInfoo(); /信息息存档voidd geetInnfo(); /上传传信息voidd adddInnfo(GooodsIInfoo *);/添添加数据据voidd soort(); /按按销量显显示voidd meenu();voidd deelette_();/删删除节点点;#enddif/存储储商品信信息#ifnndeff GGOODDSINNFO_H#deffinee GGOODDSIN
19、NFO_Hclasss GGooddsInnfopubblicc:charr * namme ; /商品名名称int nummberr; /商品编编号floaat ccostt_p; /成本单单价floaat uunitt_p;/销销售单价价int nnum_alll;/共共计商品品件数int nnum_noww;/现现存商品品件数int nnum_selll;/已已售出商商品件数数floaat ccostt_alll;/进进货总计计成本价价floaat pproffit;/已已销售商商品获得得的利润润GooddsInnfo * nnextt;/指指向下一一个商GooddsInnfo(); /
20、构造造函数GooddsInnfo(chaar * a,intt b,flooat c,ffloaat uu,innt aall,intt seell) ; /重载载构造函函数voidd opperaatorr= (coonstt GooodssInffo &rigght); /重载=voidd seetInnfo(chaar * a,flooat c,ffloaat uu,innt aall,intt seell) ; /数据据载入charr* ggetnnamee()retturnn naame; /返回回姓名用用于查找找/显显示商品品信息voidd Ammendd(GooodssInffo
21、 *);voidd shhow(GooodsIInfoo *);GooodsIInfoo() deelette nnamee;#enddif#inccluddeusinng nnameespaace stdd;#inccluddeGGOODDSINNFO.H#inccluddeGooddsInnfo:GooodssInffo() /构造造函数namee=neew ccharr 221;numbber=cosst_pp=unnit_p=nnum_alll=nuum_nnow=numm_seell=cosst_aall=proofitt=0;nextt=NUULL;GooddsInnfo:Gooo
22、dssInffo(ccharr * a,iint b,ffloaat cc,flloatt u,intt alll,iint selll) /重载构构造函数数strccpy(namme,aa);numbber=b;costt_p=c;unitt_p=u;num_alll=alll;num_selll=sselll;num_noww=alll-sselll;costt_alll=cc*alll;proffit=(u-c)*selll;nextt=NUULL;voidd GooodssInffo:opeerattor= (connst GooodsIInfoo &rrighht) /重载=strc
23、cpy(namme,rrighht.nnamee);numbber=rigght.nummberr ;costt_p=rigght.cosst_pp;unitt_p=rigght.uniit_pp ;num_alll=riightt.nuum_aall ;num_selll=rrighht.nnum_selll ;num_noww=riightt.nuum_nnow ;costt_alll=rrighht.ccostt_alll;proffit=rigght.proofitt ;voidd GooodssInffo:settInffo(ccharr * a,ffloaat cc,flloatt
24、 u,intt alll,iint selll) /数据载载入strccpy(namme,aa);costt_p=c;unitt_p=u;num_alll=alll;num_selll=sselll;num_noww=alll-sselll;costt_alll=cc*alll;proffit=(u-c)*selll;nextt=NUULL;voidd GooodssInffo:shoow(GGooddsInnfo * hh) /显示if(hh=NNULLL) ccouttNULLL!n;elseecouut-n商商品名: naameenndl;coutt编号: nuumbeerenddl成成
25、本: cosst_ppeendll销销售单价价: uunitt_penndl销销量:nnum_selll enndl库库存: numm_noowenddl已已获得利利润:pproffitenndl;voidd GooodssInffo: Ammendd(GooodssInffo * h)/修修改信息息 intt F;charr S;couttn2.商商品成本本单价 eendll3.商商品销售售单价 eendll4.进进货数量量 enndl5.销销售数量量 enndln;docouut请选选择需要要修改的的项目编编号:F;swittch(F)casee 1 :ccouttn|请输入入修改后后的名
26、称称|nnnnamee,211);bbreaak;casee 2 :ccouttn|请输入入修改后后的成本本价: nh-coost_p;bbreaak;casee 3 :ccoutth-unnit_p;bbreaak;casee 4 :ccoutth-nuum_aall;breeak;casee 5 :ccoutth-nuum_sselll;brreakk;h-ccostt_alll=hh-ccostt_p*(h-nuum_aall);h-nnum_noww=h-nuum_aall -(hh-nnum_selll);h-pproffit=(h-unnit_p -(h-coost_p )*hh-
27、nnum_selll;couttS;whille(SS=Y);#inccludde usiing nammesppacee sttd;#inccludde #inccludde#inccludde #inccluddeLLISTT.HGooddLisst:GooodLiist()/构构造函数数p=neew GGooddsInnfo siizeoof(GGooddsInnfo);headd=NUULL;p2=NNULLL;p-nnextt =NNULLL;GooddLisst:GooodLListt()/析析构函数数whille(hheadd!=NNULLL)p=hheadd;headd=p-n
28、eext ;deleete p;voidd GooodLListt:ccreaate()/创创建intt n=0;charr f=Y;coutt请输入入商品信信息:nexxt=pp;couttnamme,221);couttp-nuumbeer;couttp-coost_p;couutp-unnit_p;couttp-nuum_aall;couttp-nuum_sselll;p-nnum_noww=p-nuum_aall-(p-nuum_sselll);p-ccostt_alll=pp-ccostt_p*(p-nuum_aall);p-pproffit=(pp-uunitt_p)-(pp-cc
29、ostt_p)*(p-numm_seell);p2=pp;couttf;cin.ignnoree();if(hheadd!=NNULLL) pp2-nexxt=NNULLL; /P22指向最最后一个个voidd GooodLListt:sshowwinffo(GGooddsInnfo * hh)/显显示信息息couutsettw(110)商商品名称称settw(110)编编号seetw(8)进进价seetw(8)售售价seetw(8)销销量seetw(8)库库存seetw(12)已得利利润enndl;whille(hh!=NNULLL)couttssetww(100)nammesettw(11
30、0)nuumbeersettw(88)cosst_ppssetww(8)uunitt_pseetw(8)nuum_sselllssetww(8)nnum_nowwssetww(122)proofittneext; GooddsInnfo * GGooddLisst:seaarchh() /查找if(hheadd=NNULLL) coout数数据为空空!nn;rretuurn NULLL;elseeGooodsIInfoo *hh;h=heead;int f;couttnn请请选择查查找方式式: n11.按商商品编号号 n2.按按商品名名称 eendllf;swittch(f)casse 11:
31、int x,yy;couttx;whille(hh!=NNULLL&(x!=(y=h-nummberr)h=h-neext;if(xx=yy)reeturrn hh;lse coout没没有找到到该商品品!nn;rretuurn NULLL;casee 2:chaar xx211;int cc;couttnnamee)!=0)h=h-neext;if(cc=00)retturnn h;elsee ccoutt没有找找到该商商品!n;retturnn NUULL;voidd GooodLListt:ssaveeInffo() /存存档fstrreamm Fiile;Filee.oppen(Goo
32、odssInfformmatiion.txtt,iios:ouut|iios:biinarry);if(!Fille)coout文文件打开开失败!n;exitt(0);p=heead;GooddsInnfo X;Filee商品名名称编号进价售价总量销量库存已得利利润n;whille(pp!=NNULLL)X=*p;FileeXX.naameX.nnumbberX.ccostt_pX.uunitt_pX.numm_alll X.nnum_selllX.nnum_noww X.pproffitneext;coutt文件保保存成功功!nn;Filee.cllosee();voidd GooodLLi
33、stt:ggetIInfoo() /上传fsstreeam Fille;Filee.oppen(GooodssInfformmatiion.txtt,iios:inn);if(!Fille)cooutnexxt=pp;Fileehh.naameh.nummberrhh.coost_ph.uunitt_ph.numm_alllh.nnum_selllh.nnum_nowwh.proofitt;*p=hh;p2=pp;coutt上传显显示完毕毕!enndl;Filee.cllosee();voidd GooodLListt:aaddIInfoo(GooodssInffo * h) /添加coout
34、请请输入商商品信息息:nnextt=p;cin.ignnoree();couttnamme,221);couttp-nuumbeer;couttp-coost_p;couttp-unnit_p;couttp-nuum_aall;couttp-nuum_sselll;p-nnum_noww=p-nuum_aall-(p-nuum_sselll);p-ccostt_alll=pp-ccostt_p*(p-nuum_aall);p-pproffit=(pp-uunitt_p)-(pp-ccostt_p)*(p-numm_seell);p2=pp;p2-nexxt=NNULLL;voidd GooodLListt:ddeleete_() /删除除节点iff(heead=NUULL)couttNULLL!n;elseecouttn;h=heead;whille(hh-nnextt!=NNULLL&hh-nnumbber!=n)p=h;h=h-neext;if(hh-nnumbber=n)charr F;