版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、*大学程序设计课程设计报告商场销售管理系统学号 姓名 日期21需求分析二.程序主要功能三程序运行平台四系统功能框架图五.程序类说明六.模块分析七.比较有特色的地方八.存在的不足与对策九.编程体会.3.3.4.5.6.714.13.13十程序源代码.15需求分析本系统旨在实现一个小型的商城销售管理系统,对于一个小型的 商场或销售店铺来说,实施本系统不仅可以减少工作人员数量, 降低 成本,而且可以大大提高工作效率,降低工作强度,方便卖家记录商 品流通信息,统计销售情况,分析市场需求,帮助卖家更好的管理商 场,以获取跟多的利润。程序主要实现进货管理、商品基本信息查询与修改、利润计算与 销售统计、库存
2、管理等及一些辅助功能。程序主要功能该程序的主要功能有1. 商品信息管理可对商品信息进行查看、按一定规则排序及商品查找,其中具体信息包括 商品名称,编号,进货成本价,销售价,进货 总量,销售量,可以对库存,已获得利润,总体成本价等进行计2. 管理员功能可实现对商品信息的进行修改,添加,删除等功能,并进行文件的操作储存,以更好的保护信息,能有效的管理好商品信 息的隐秘性。3. 辅助功能该程序实现了一下清屏,清空文件,操作提示等善后辅助功能,能帮助用户更好的应用该程序,使程序的功能最大化实现。程序运行平台该程序是用 VC+6.0制做的,使用Microsoft VisualC+ 6.0 运行该程序,具
3、体操作是:打开Microsoft VisualC+ 6.0 ,菜单栏里点文件7打开工作区7找到“图书管理件,此时,点击Run这个文件7打开,或者在资源管理器中双击该文 VC+6.0 会自动打开,并载入该系统相关资源, 命令菜单或者或用快捷键Ctrl+F5 运行该程序。系统.dsw四.系统功能框架图商城销售管/ 商品基本信息商品管理1/ 商品信息查看名称修改数据显示全部内容编号创建新表商品查找成本增加商品显示商品信息单价删除商品按销量排序1 ,JZ二文件存档三-按利润排序Wr- 销量进入系统退辅系助功能使用说明及帮助等E.程序类说明有关商品信息的类/存储商品信息 class Goods Info
4、 p ublic:char * n ame ;/商品名称int nu mber;/商品编号float cost_ p;/成本单价float unit_p;/销售单价intnu m_all;/共计商品件数intnum_now;/现存商品件数intnu m_sell;/已售出商品件数float cost_all;/进货总计成本价float P rofit;/已销售商品获得的利润Goods Info * n ext;/指向下一个商/构造函数重载构造函数GoodsI nfo();GoodsI nfo(char * a,i nt b,float c,float u,i nt all,i nt sell)
5、 ; /void op erator=(const Goods Info &nght);/重载=/数据载入void set In fo(char * a,float c,float u,i nt all,i nt sell);char* get name()retur n n ame;/返回姓名用于查找显示商品信息void Ame nd(Goods Info *);void show(Goods Info *);GoodsI nfo() delete n ame;商品类链表class GoodList :p ublic Goods Infopublic:GoodListO;/构造函数,指针初始
6、化GoodList();/析构函数,释放Goods Info * head;Goods Info * p; /头指针活动指针1活动指针2(指向最后一个)/创建函数Goods Info * p2; / void create();/显示void show in fo(Goods Info *);Goods Info * search(); /查找void saveI nfo();/信息存档void getI nfo(); / 上传信息 void add In fo(Goods Info *);/ 添加数据void sort(); /按销量显示 void menu();void delete_()
7、;/删除节点;六.模块分析菜单: ca=3 1;醤十神*闊十商场销售管理系统:* .眸號養粋帶畢尊雋哥IK歸同i_ 1 1111111”创建2 添加3/窗改i11!4显示5-存档查找:11G上传8-排序务清屛!113 删除0 退出11P1请选S操作十=111- CAUs ersVAtJ mini wtr 抽5 lctop 梢售善昙袞統 TD e b ug怕颈第告菩逗垂症.exe =.回 I 2所有函数均封装在商品类及商品链表类中(GoodsI nfo 和GoodList) 信息存储在类 Goods Info中,类中定义了Goods Info 指针,一个是*head,作为链表的头指针,另一个是*
8、p,作为活动指针,一个*p2,指向链表的尾节。在不同的类的成员函数中都可使用,为了防止该活动指针使用过频,造成几个函数同时使用同一个指针指向不明,在有些函数里还定义了一些 临时指针。1. 创建此函数为是创建商品信息数据,构成商品信息表是使用,用于让用户批量添加商品。 CAUs ersAd mini stratorXDe s let。小奇近誚嘗管逗竟疣iD此省告昔走手甘让xhI U. I 回3售菓平选商称号=r-ns- - - 眞番出继番出继 缺输品品空口计售否品品#W计售否 畫gtg销共巳是閒商咸销夬已是1 : 4:数?蕉昭5数件入香伯7=口囂隸号=:数? 0搀件入 件口崭V按照程序的提示,可
9、依次添加商品信息,按Y 继续,其他建则停止,返回主菜单。此时链表创建成功,*head指向链表的头,p2指向尾。可用于后续函数的操作。2. 添加跟创建有一样的用途,用于添加商品信息,不同的是添加只能用 于已有原链表存在的情况下。 但这个不能批量添加,一次只能添 加一个,并且存放在原链表尾节点的后一个, 形成一个新的链表。3. 查找顾名思义,此函数用于查找商品信息。在原始信息过多的时候,可以 通过查找(按商品编号和商品名称两钟方式) 查看自己想看的商品详 细信息。*请选择撫作: 6请选择查我方式11请输入需查找的商品编号! 10023名:-介严2% t 1 销销库已LA239若不存在该商品,程序则
10、自动输出未找到,然后返回主菜单。若查找 到该商品,函数返回该节点的指针,并用单个显示函数显示出来。4. 修改此函数是基于查找函数之上的。 在查找到需要修改的单元后,选择自 己需要修改的项目。B I CAUserAAdmir.i5tratorDesktopA莓迓销盖管乏至疣kDebugXi-韵售韋宅系茫exe=1回3请选择操作*= 3请选择需要修改的单元JVMsjyiJHST ivfu*ajtjwvuvurrvr请座S查g方式:搀商品名称EPTivb 7r::T-r-JwHsir: t1请输人需查找的商品编号;佃0阴g品名=苹果 绵号:10023 应乐* .7 韻tlM触3.5包#得刑润:540
11、畫单= 咅套葦干 口艮销数 商品蓍 S5 12 3 4 貝 E S 严 E*arr0.ri* GJ*=-Lj!7_rj-:-CGLri* :nidTsrJuwc-up3:|IS|b :鸭销w数量、幘选择需要修改的项目编号:5HA修魂启鬪销售量,丹9 W要继Mw-? 丫厲迥ft需要僅改的项目编号;l|A|iS|*= 2 餉。函数会询问是否需要继续修改,Y继续,其他键则返回主菜单。5. 删除删除和修改一样,基于查找函数之上,用于删除不需要的节点。操作方法也和前面类似。6. 显示此函数用于批量显示商品信息。 该函数以表格的型式显示, 明了 清晰,有助于比较。二gU占Er址Aumi品北to感眩上菱举羞
12、言涯企Deiig辰盪韭聖岂理圣炳e归 二 回 its* 选1草苹 请品4 编号 1904 13002 1&QQ 10903进价5374售价8510G销量sea3QB4且0库存彌70&608已得利涸210010309008007. 排序排序是基于显示函数的一个函数。该函数用选择排序法,以两种(按销量和按利润)方法排序显示,有助于商家对比比较分析哪 种商品的销量好利润高,便于管理和优化商城的盈利。8. 上传当需要输入数据过多过大时, 可以通过上传函数,直接把文件中 的数据读到程序中并形成链表, 然后再继续后续操作。这个和创 建函数具有差不多的功能, 不过一个是从键盘读入, 一个是从文 件中读入。文
13、件上传成功后,函数会自动显示成功,然后跳到主 菜单进行其他项目。9. 存档上传和存档是文件和程序的两个接头。在数据操作过程中为避免 数据丢失,可边操作变保存,在退出程序之前,程序也会自动弹 出询问是否需要保存,这是比较人性化的一点,以免造成不可估 量的后果。保存成功后会自动输出成功字样, 并退出或继续程序。存档和上传合并利用,下一次运行程序时,可以直接上传上次所 保存的数据然后继续操作,就不需要工作人员一个一个慢慢输入 了。10. 其他清屏是一个辅助函数,为了清晰界面方便操作美化外观。 退出程序是会自动询问是否保存文件,然后调用析构函数,释放链表清除数据,然后安全退出。七、比较有特色的地方有特
14、色的函数指的是实现地较为巧妙的类的构造函数、成员函 数、析构函数等函数,也可以是指针处理的函数,文件处理的函 数等比较有特色的函数, 能体现巧妙构思即可。特别是运算附的 重载,大大减小了代码的数量,简洁了程序。还有就是文件操作 方面,比较合理和人性化。八.存在的不足在文件编写的时候我此次采用的是txt储存数据,虽然有助于使用者查看数据,但是在面对一串庞大数据是,dat文件的效率明显会高很多。还有就是由于学得不够深, 程序的功能总体来说还 比较少,有待以后更深层的学习后完善。比如界面方面的处理, 和对每天销售情况的记录等等。 商品流通的具体过程等该程序都 没有记录。需要改进的地方还有很多。九、心
15、得体会C+是一门很庞大的并它一种非常简洁高效的语言。类的就以前所学的C语言而通过这次课程设计,我清楚的认识到了 且很有实用价值的一门学科, 特色在这次编程过程中有了充分的体会。模块的分块化,当大大增强了程序的可读性, 而言,我明显感觉到C+在编写这种比较复杂的程序时的优势, 他的重载函数运算符的等操作也是一大有点。需要用到某个函数时再进行调用, 且代码也更加合理清晰。商品类的操作是一个 .cpp,文件里面同时也可以另外写到一个.h课程设计真的很能就拿这次我所写的商场销售管理系统来说, 整体,写在一个中的头文件里面,在写程序的时候再进行调用。上机也只是编写的小程序, 把所锻炼人,平时上课都是讲的
16、基础知识, 不能把知识融会贯通。 然而这次课设是编写的一个小系统,学的知识都联系起来了,在刚刚看到要求时是觉得有很大的难度 的,毕竟是第一次编写一个商场销售管理系统。但是想到有志者事竞成,只要敢于思考敢于尝试,按步骤一步一步来也是能编写 出程序的。于是我首先把程序类图先画了出来,把程序基本结构勾勒出来,化整为零,一个一个小功能慢慢写起,写完一个在主 函数中验证一个看是否正确,通过后在进行下一个,逐步实现。 而后编写主函数,菜单等,完善功能。因为我刚刚入门C+,基本工还不足,能力还很弱,所以在写的过程中遇到很多困难, 有些以前很熟悉的代码也忘了, 于是我开始翻阅以前的书籍, 对照边回忆,终于完成
17、了。特别是在文件操作方面尤为薄弱,我 意思到了自己的弱点。由于自己的不足,以后学习还要更加努力, 不懂时多问老师多向同学学习。作为一个计算机专业的学生,计算机语言是我们的基本功, 我们应该扎实自己的基础, 才能更 快更好的发展。.源代码#ifndef LIST_H#defi ne LIST_H#i nclude GOODSINFO.H class GoodList :p ublic Goods Info public: GoodListO;GoodList();Goods Info * head;Goods Info * p;Goods Info * p2;/构造函数,指针初始化/析构函数,释
18、放/头指针/活动指针1/活动指针2(指向最后一个)void create();/创建函数void show in fo(Goods Info *);Goods Info * search(); / 查找/显示void save lnfo();/信息存档void getl nfo();/上传信息void addI nfo(Goods Info *);/添加数据void sort();/按销量显示void menu();void delete_();/删除节点;#en dif/存储商品信息#ifndef GOODSINFOJH#defineGOODSINFO Hclass Goods Infop
19、ublic:char * n ame ;/商品名称int nu mber;/商品编号/成本单价/销售单价float cost_ p;float unit_p;intnu m_all;/共计商品件数intnum_now;/现存商品件数intnu m_sell;/已售出商品件数/进货总计成本价float cost_all;float P rofit;/已销售商品获得的利润Goods Info * n ext;/指向下一个商/构造函数/重载构造函数void op erator=(const Goods Info &right);/重载=GoodsI nfo();Goods In fo(char *
20、a,i nt b,float c,float u,i nt all,i nt sell);/数据载入/返回姓名用于查找void set In fo(char * a,float c,float u,i nt all,i nt sell);char* get name()retur n n ame;/显示商品信息void Ame nd(Goods Info *);void show(Goods Info *);GoodsI nfo() delete n ame; ; #en dif #in clude using n ames pace std;#i ncludeGOODSINFO.H/构造函数
21、#in cludeGoodsI nfo:Goodsl nfo() n ame=new char 21;nu mber=cost_ p=unit_p=nu m_all=num_now=nu m_sell=cost_all=p rofit=0;n ext=NULL;/重载构造函数Goods In fo:Goods In fo(char * a,i nt b,float c,float u,i nt all,i nt sell) strc py(n ame,a);nu mber=b;cost_ p=c;unit_p=u;nu m_all=all;num _sell=sell;num_no w=all
22、-sell;cost_all=c*all;p rofit=(u-c)*sell;n ext=NULL;void Goods In fo:o perator=(const Goods Info &right)/重载=strc py(n ame,right. name);nu mber=nght. nu mber ;cost_ p=nght.cost_ p;unit_p=right.u nit_p ;nu m_all=right .nu m_all ;nu m_sell=right .nu m_sell ;num_no w=right. num_now ;cost_all=nght.cost_al
23、l;p rofit=right. profit ;void Goods In fo:setl nfo(char * a,float c,float u,i nt all,i nt sell)/数据载入strc py(n ame,a);cost_ p=c;unit_p=u;nu m_all=all;num _sell=sell;num_no w=all-sell;cost_all=c*all;p rofit=(u-c)*sell;n ext=NULL;void Goods In fo:show(Goods Info * h)/显示if(h=NULL) coutNULL!n;elsecoutrr商
24、品名:nameendl;cout 编号:numberendl成本:cost_ pendl 销售单价:unit_pendl 销量:num sell endl库存:num nowendl33已获得利润: profite ndl;修改信息void Goodsl nfo: Ame nd(Goodsl nfo * h) / int F;char S;A2.商品成本单价Ae ndlA3.商品销售单价Ae ndl人4.进货数量Ae ndl人5.销售数量AF;switch(F)case 1 :coutvvnvv|请输入修改后的名称|nH.VV cin .ig nore ();cin. getl in e(h-
25、n ame,21);break; case 2 :coutvv vv|请输入修改后的成本价:nH.vv cin h-cost_ p;break;case 3 :coutvv请输入修改后的销售单价:;cin h- unit_p ;break;case 4 :coutvv请输入修改后的进货量:;cin h-nu m_all;break;case 5 :coutvv请输入修改后的销售量:;cin h-nu m_sell;break; h-cost_all=h-cost_ p*(h-nu m_all);h-num_no w=h-nu m_all -(h-nu m_sell);h-p rofit=(h-
26、 unit_p -(h-cost_ p )*h-nu m_sell; coutvv是否需要继续修改?;cin S;while(S=Y);#in clude viostreamus ing n ames pace std;#in clude vstri ng #in cludevioma nip #in clude vfstream #i ncludeLIST.HGoodList:GoodList()/构造函数p=new Goods Info sizeof(Goods In fo);head=NULL;p2=NULL;p- next =NULL;GoodList:GoodList()/析构函数w
27、hile(head!=NULL)p=head;head=p-next ;delete p;void GoodList:create()/创建int n=0;char f=Y;cout 请输入商品信息:n ext=p;coutn ame,21); coutp-nu mber; coutp-cost_ p;coutp-unit_p;coutp-nu m_all;coutp-nu m_sell;p-num_now=p- num _all-( p- num _sell);p-cost_all=p-cost_ p*(p-nu m_all);p-p rofit=(p-unit_p)-(p-cost_ p)
28、*(p-nu m_sell);p2=p;coutvv是否继续输入?(输入丫继续);cinf;cin .ig no re();if(head!=NULL) p2-n ext=NULL;P2指向最后一个/显示信息void GoodList:show in fo(Goods Info * h)coutvvsetw(10)vv 商品名称vvsetw(10)vv 编号vvsetw(8)vv 进价vvsetw(8)vv 售价”vvsetw(8)vv 销量vvsetw(8)vv 库存vvsetw(12)vv 已得利润vvendl;while(h!=NULL)coutsetw(10)n amesetw(10)
29、nu mbersetw(8)cost_ psetw(8) unit_psetw(8)nu m_sellsetw(8)num_no wsetw(12)p rofitn ext;Goods Info * GoodList:search()/查找if(head=NULL) cout 数据为空!n”;return NULL;else GoodsI nfo *h;h=head;int f;vv请选择查找方式:nvv1.按商品编号 n2.按商品名称 f;switch (f) case 1: int x,y;H.coutx;while(h!=NULL&(x!=(y=h- nu mber) h=h-n ext
30、;if(x=y) return h;lse cout没有找到该商品!n;return NULL; case 2: char x21;int c;cout name)!=0) h=h-n ext;if(c=0)return h;else cout没有找到该商品!n;return NULL;void GoodList:save lnfo()/存档fstream File;File. open (Goods In formati on. txt,ios:out|ios:b in ary);if(!File)cout文件打开失败!n;exit(0);p=head;Goods Info X;File商品
31、名称编号进价 售价总量 销量 库存 已得利润n;while( p!=NULL)X=* p;FileX .n ameX. nu mberX.cost_ pX.u nit_p HX. num _all X. nu m_sellX .num_now X .p rofitn ext;cout 文件保存成功!n;File.close();void GoodList:getl nfo()/上传File. open (Goods In formati on. txt,ios:i n);fstream File;if(!File)coutn ext=p;Fileh .n ameh. nu mberh.cost
32、_ p h. unit_ph. nu m_allh. nu m_sellh. num_nowh. profit;*p=h;P2=P; cout 上传显示完毕!n ext =p;cin .ig nore();coutn ame,21); coutp-nu mber; coutp-cost_ p; coutp-unit_p;coutp-nu m_all;coutp-nu m_sell;cout请输入商品信息:num_now=p-nu m_all-(p-nu m_sell);p-cost_all=p-cost_ p*(p-nu m_all);p-p rofit=(p-unit_p)-(p-cost_ p)*(p-nu m_sell);p2=p;p2- next=NULL;void GoodList:delete_()/删除节点coutNULL!n;elseif(head=NULL)coutn;while(h- next!=NULL&h- nu mber!=n)p=h;h=h-n ext;if(h-nu mber=n) char F;coutvv是否确定删除该节点?;cinF;if(F=Y)if(h=head) head=h-n ext;else p-n ext=h-n ext;delet
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度展览馆照明设备采购合同范本3篇
- 二零二五版建筑工程项目招投标与合同风险评估与管理协议3篇
- 二零二五年度办公室租赁合同含停车服务2篇
- 二零二五版跨区域公司间资金拆借合同范例2篇
- 二零二五年度环保设备班组工人劳务合同3篇
- 二零二五版教师临时聘用与教育品牌建设合同3篇
- 二零二五年版农业科技项目合同信用评价与推广合作合同3篇
- 二零二五年度石材矿山开采权转让合同2篇
- 二零二五版租赁合同:租赁合同信息化管理平台使用协议3篇
- 深圳汽车租赁合同模板2025版6篇
- 物业民法典知识培训课件
- 2024-2025学年山东省德州市高中五校高二上学期期中考试地理试题(解析版)
- TSGD7002-2023-压力管道元件型式试验规则
- 2024年度家庭医生签约服务培训课件
- 建筑工地节前停工安全检查表
- 了不起的狐狸爸爸-全文打印
- 派克与永华互换表
- 第二章流体静力学基础
- 小学高年级语文作文情景互动教学策略探究教研课题论文开题中期结题报告教学反思经验交流
- 春节新年红灯笼中国风信纸
- 注塑件生产通用标准
评论
0/150
提交评论