商场销售管理系统C++课程设计.doc

上传人(卖家):四川天地人教育 文档编号:1519559 上传时间:2021-06-28 格式:DOC 页数:39 大小:810.97KB
下载 相关 举报
商场销售管理系统C++课程设计.doc_第1页
第1页 / 共39页
商场销售管理系统C++课程设计.doc_第2页
第2页 / 共39页
商场销售管理系统C++课程设计.doc_第3页
第3页 / 共39页
商场销售管理系统C++课程设计.doc_第4页
第4页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、1 大学 程序设计课程设计报告 商场销售管理系统 学号 姓名 日期 2 目录 一 需求分析. .3 二程序主要功能.3 三程序运行平台.4 四系统功能框架图.5 五程序类说明.6 6. 模块分析. .7 7. 比较有特色的地方. .13 8. 存在的不足与对策. .13 3 9. 编程体会 14 十.程序源代码. .15 4 一.需求分析 本系统旨在实现一个小型的商城销售管理系统,对于一个小型的 商场 或销售店铺来说,实施本系统不仅可以减少工作人员数量, 降低 成本, 而且可以大大提高工作效率, 降低工作强度, 方便卖家记录商 品流通信息, 统计销售情况,分析市场需求,帮助卖家更好的管理商 场

2、,以获取跟多的 利润。 程序主要实现进货管理、商品基本信息查询与修改、利润计算与 销售 统计、库存管理等及一些辅助功能。 二程序主要功能 该程序的主要功能有 4.商品信息管理 可对商品信息进行查看、按一定规则排序及商品查找,其 中具 体信息包括 商品名称,编号,进货成本价,销售价,进货 总量,销售 量,可以对库存,已获得利润,总体成本价等进行计 算 5.管理员功能 可实现对商品信息的进行修改,添加,删除等功能,并进 行文 件的操作储存,以更好的保护信息,能有效的管理好商品信 息的隐秘 5 性。 6 6.辅助功能 该程序实现了一下清屏,清空文件,操作提示等善后辅助 功能,能帮助用户更好的应用该程

3、序,使程序的功能最大化实现。 三程序运行平台 该程序是用 VC+6.0 制做的,使用 Microsoft Visual C+ 6.0 运行该程序,具体操作是:打开 Microsoft Visual C+ 6.0 , 菜单栏里点文件-打开工作区-找到 “图书管理 系统.dsw ” 这个文件打开, 或者在资源管理器中双击该文 件, 此时, VC+6.0 会自动打开,并载入该系统相关资源, 点击 Run 命令菜单或者或 用快捷键Ctrl+F5 运行该程序 7 系统功能框架图 商城销售管理系统 8 程序类说明 有关商品信息的类 /存储商品信息 class Goods Info public: char

4、 * name ;/商品名称 int number;/商品编号 float cost_p; / 成本单价 float unit_p;/ 销售单价 int num_all; /共计商品件数 intnum_now; /现存商品件数 intnum_sell;/已售出商品件数 float cost_all; /进货总计成本价 float profit; /已销售商品获得的利润 Goods Info * n ext;/ 指向下一个商 GoodsInfo();/ 构造函数 GoodsI nfo(char * a,i nt b,float c,float u,i nt all,i nt sell) ; /重

5、载构造函数 void operator=(const Goods Info / 重载= void setInfo(char * a,float c,float u,int all,int sell) ;/ 数据载入 char* getname()return name;/返回姓名用于查找显示商品信息 void Amend(Goodslnfo *); void show(Goods Info *); GoodsI nfo() delete n ame; ; 商品类链表 class GoodList :public Goods Info public: GoodList();构造函数,指针初始化

6、GoodList(); 析构函数,释放 9 Goods Info * head; / 头指针 10 Goods Info * p; /活动指针 1 Goods Info * p2; /活动指针 2(指向最后一个) void create();/ 创建函数 void showinfo(Goodslnfo *);/ 显示 Goods Info * search(); / 查找 void savel nfo(); 信息存档 void getl nfo();/ 上传信息 void add In fo(Goods Info *);/ 添加数据 void sort(); /按销量显示 void menu(

7、); void delete_(); 删除节点 ; 模块分析 菜单: 11 12 所有函数均圭寸装在商品类及商品链表类中(Goodsl nfo 和 GoodList) 信息存储在类 Goods Info中,类中定义了3 个 Goods Info 指针,一个是*head,作为链表的头指针,另一个是 *p,作为活动指针,一个*p2,指向链表的尾节。在不同的类的 成员函 数中都可使用,为了防止该活动指针使用过频,造成几个 函数同时使 用同一个指针指向不明,在有些函数里还定义了一些 临时指针。 创建 此函数为是创建商品信息数据,构成商品信息表是使用,用于让 用户 批量添加商品。 按照程序的提示,可依次

8、添加商品信息,按 Y继续,其他建 则停 继绫)v JCAUsersXAdiriinistratcADekto 同匿樂桂言湮冢琥-.DebL丁 巻 M 湛=兰兰.熬吏 exe 1 1 平 丄氛件貉-L L巻貉彌舉|r - :D DMf Mf号=口聲更名编出継出继* 輸品品窪 u计售否品品査口计售否十甯已 星同商成销共已是 13 止,返回主菜单。此时链表创建成功,*head 指向链表的 14 式 方幕查 品品择 商商选 慕 苹 02025 5 0 0 7 7 : : 5 5 2 2 0 0-介7 7 3 3网名单; 得 msms 头,p2 指向尾。可用于后续函数的操作。 添加 跟创建有一样的用途,

9、用于添加商品信息,不同的是添加只能用 于已 有原链表存在的情况下。 但这个不能批量添加,一次只能添 加一个, 并且存放在原链表尾节点的后一个, 形成一个新的链表。 查找 顾名思义,此函数用于查找商品信息。在原始信息过多的时候,可以 通过查找(按商品编号和商品名称两钟方式) 查看自己想看的商品详 细 信息。 脣输入需查找的商品编号:1丽站 若不存在该商品,程序则自动输出未找到,然后返回主菜单。若查找 到 该商品,函数返回该节点的指针,并用单个显示函数显示出来。 修改 此函数是基于查找函数之上的。 在查找到需要修改的单元后,选择自 己 需要修改的项目。 15 式 方暑查口 罟 nnnn择 商商选尊

10、 賃输入簣查找的商品编号1O023 編号,10023 商品口魁 贝 1 12 2 3 3 4 4 舉单 5名44冃量量 口箴销数数 5商 口習牡審口曰 篙星销 -1 12 2 3 3 4 4 5 5 03 ” *CBJser.Acmirtstra:orDesktop?迁钙萎彗墜茎疣IDE亠 g 冯二去堂塞琶逕浆疙 exe- M St z 3 请选择需要修改的单元 - r “2 w“八“釘平“、!、rMuv-V- 賞选择需要修改的项目编号: 备输入修改后的销售量;建沙 獪損I需要滲丧酹项目编号; 函数会询问是否需要继续修改,Y 继续,其他键则返回主菜单。 删除 删除和修改一样,基于查找函数之上,

11、用于删除不需要的节点。 操作 方法也和前面类似。 显示 SSiS 3-5 销豊时 库存:$325已扶得利润;540 16 明了 U回爲.1 选-輩苹 请品 事商 MMMS 4 编号 10004 10082 10001 10003 进价 5 3 7 4 售价 H 5 1Q 0 0 0 0 3 3 0 0 0 0 0 0 0 0 肖?3 3 4 4 库芋 300 逊 700 08 已得刑润 210Q 80S 此函数用于批量显示商品信息。该函数以表格的型式显示, 清晰,有助 于比较。 排序 排序是基于显示函数的一个函数。 该函数用选择排序法,以两种 (按 销量和按利润)方法排序显示,有助于商家对比比

12、较分析哪 种商品的销量好利润高,便于管理和优化商城的盈利。 上传 当需要输入数据过多过大时, 可以通过上传函数,直接把文件中 的数 据读到程序中并形成链表, 然后再继续后续操作。这个和创 建函数具 有差不多的功能, 不过一个是从键盘读入, 一个是从文 件中读入。 文件上传成功后,函数会自动显示成功,然后跳到主 菜单进行其他项 目。 存档 上传和存档是文件和程序的两个接头。在数据操作过程中为避免 数据 丢失,可边操作变保存,在退出程序之前,程序也会自动弹 出询问是 否需要保存,这是比较人性化的一点,以免造成不可估 量的后果。保 17 存成功后会自动输出成功字样, 并退出或继续程序。 18 存档和

13、上传合并利用,下一次运行程序时,可以直接上传上次所 保存 的数据然后继续操作,就不需要工作人员一个一个慢慢输入 其他 清屏是一个辅助函数,为了清晰界面方便操作美化外观。 退出程 序是 会自动询问是否保存文件, 然后调用析构函数,释放链表清 除数据, 然后安全退出。 七、比较有特色的地方 有特色的函数指的是实现地较为巧妙的类的构造函数、成员函 数、析 构函数等函数,也可以是指针处理的函数,文件处理的函 数等比较有 特色的函数, 能体现巧妙构思即可。特别是运算附的 重载,大大减小 了代码的数量,简洁了程序。还有就是文件操作 方面,比较合理和人 性化。 19 八存在的不足 20 在文件编写的时候我此

14、次采用的是txt 储存数据,虽然有助于使 用者查看数据,但是在面对一串庞大数据是,dat 文件的效率明 显会高很多。还有就是由于学得不够深, 程序的功能总体来说还 比较 少,有待以后更深层的学习后完善。比如界面方面的处理, 和对每天 销售情况的记录等等。 商品流通的具体过程等该程序都 没有记录。需 要改进的地方还有很多。 九、心得体会 通过这次课程设计,我清楚的认识到了C+是一门很庞大的并 且很有实用价值的一门学科, 它一种非常简洁高效的语言。 类的 特 色在这次编程过程中有了充分的体会。 就以前所学的 C 语言而 言, 我明显感觉到 C+在编写这种比较复杂的程序时的优势, 他的重载函 数运算

15、符的等操作也是一大有点。模块的分块化,当 需要用到某个函数时再进行调用,大大增强了程序的可读性, 而 且代码也更加合理清晰。 21 就拿这次我所写的商场销售管理系统来说,商品类的操作是一个 整体,写在一个中.cpp,文件里面同时也可以另外写到一个 .h 的头文 件里面,在写程序的时候再进行调用。 课程设计真的很能 锻炼人,平 时上课都是讲的基础知识,上机也只是编写的小程序, 不能把知识融 会贯通。 然而这次课设是编写的一个小系统,把所 22 /构造函数,指针初始化 /析构函数,释放 /活动指针 1 /活动指针 2(指向最后一个) 学的知识都联系起来了,在刚刚看到要求时是觉得有很大的难度 的,

16、毕竟是第一次编写一个商场销售管理系统。但是想到有志者 事竞成,只要敢于思考敢于尝试,按步骤一步一步来也是能编写 出程 序的。于是我首先把程序类图先画了出来,把程序基本结构 勾勒出来,化整为零,一个一个小功能慢慢写起,写完一个在主 函数 中验证一个看是否正确,通过后在进行下一个,逐步实现。 而后编写 主函数,菜单等,完善功能。因为我刚刚入门C+ , 基本工还不足,能力还很弱,所以在写的过程中遇到很多困难, 有些 以前很熟悉的代码也忘了, 于是我开始翻阅以前的书籍, 边 对照边 回忆,终于完成了。特别是在文件操作方面尤为薄弱,我 意思到了自 己的弱点。由于自己的不足,以后学习还要更加努力, 不懂时

17、多问老 师多向同学学习。作为一个计算机专业的学生, 计算机语言是我们的基本功, 我们应该扎实自己的基础, 才能更 快 更好的发展。 十.源代码 #ifndef LIST_H #defi ne LIST_H #i nclude GOODSINFO.H class GoodList :public Goods Info public: GoodList(); GoodList(); 23 Goods Info * head;/ 头指针 Goods Info * p; Goods Info * p2; 24 /删除节点 char * n ame ;/商品名称 int nu mber;商品编号 /成本

18、单价 float unit_p; float cost_all; float profit; /构造函数 Goods In fo(char * a,i nt b,float c,float u,i nt all,i nt sell); /重载=void operator=(const Goods Info /重载构造函数 /数据载入 /返回姓名用于查找 void create();/创建函数 void menu(); void delete_(); ; #en dif /存储商品信息 #ifndef GOODSINFO H #defineGOODSINFO H class Goods Info

19、 public: float cost_p; /销售单价 /进货总计成本价 /已销售商品获 得的利润 Goods Info * n ext; /指向下一个商 Goodsl nfo(); 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; ; void show in fo(Goods Info

20、 *); Goods Info * search(); / 查找 /显示 void save lnfo();/信息存档 void getl nfo();/上传信息 void addlnfo(GoodsInfo *);/添加数据 void sort();/按销量显示 intnu m_all; /共计商品件数 intnum_now;/现存商品件数 intnu m_sell; /已售出商品件数 25 /重载构造函数 /重载= /数据载入 #en dif #in clude using n amespace std; #i ncludeGOODSINFO.H #in clude Goods In fo

21、:Goods lnfo()/ 构造函数 n ame=new char 21; nu mber=cost_p=un it_p=num _all=num_now=num _sell=cost_all=profit=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) strcpy( name,a); nu mber=b; cost_p=c; uni t_p=u; num _all=all; nu m_sell=sell; num_no w=all-sell; cost_a

22、ll=c*all; profit=(u-c)*sell; n ext=NULL; void Goods In fo:operator=(const Goods Info nu mber=right. nu mber ; cost_p=right.cost_p; uni t_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=right.cost_all; profit=right.profit ; void Goods In fo

23、:setI nfo(char * a,float c,float u,i nt all,i nt sell) 26 修改信息 /显示 strcpy( name,a); cost_p=c; uni t_p=u; num _all=all; nu m_sell=sell; num_no w=all-sell; cost_all=c*all; profit=(u-c)*sell; n ext=NULL; void Goods In fo:show(Goods Info * h) if(h=NULL) coutNULL!n; else cout- n 商品名:nameendl; cout 编 号:nu

24、mberendl 成本:cost_pendl 销售单价:unit_pendl 销量:num_sell endl 库存:num_nowendl 已获得利润:profitendl; void GoodsInfo: Amend(GoodsInfo * h) / int F; char S; A2.商品成本单价Ae ndl A3.商品销售单价Ae ndl A4.进货数量 Ae ndl A5. 销售数量 Ae ndl do 27 cout请选择需要修改的项目编号:e ndl; cin 籉; 28 switch(F) case 1 :cout* *n |请输入修改后的名称|n n ame,21);brea

25、k; case 2 :cout* * n |请输入修改后的成本价:n h-cost_p;break; case 3 :cout h- uni t_p;break; case 4 :cout h-nu m_all;break; case 5 :cout h-nu m_sell;break; h-cost_all=h-cost_p*(h-num丄all); h-num_no w=h-nu m_all -(h-nu m_sell); h-profit=(h- un it_p -(h-cost_p )*h-nu m_sell; coutS; while(S=Y); #include using nam

26、espace std; #in clude #in clude #in clude #i ncludeLIST.H GoodList:GoodList() p=new Goods Info sizeof(Goods In fo); head=NULL; p2=NULL; p- next =NULL; /构造函数 29 /析构函数 /创建 GoodList:GoodList() while(head!=NULL) p=head; head=p-next ; delete p; void GoodList:create() int n=0; char f=Y; cout 请输入商品信息:n ext

27、=p; coutn ame,21); cout p-nu mber; cout p_cost_p; cout p_ un it_p; cout p-nu m_all; cout p-nu m_sell; p- num_no w=p- num _all-(p- num _sell); p-cost_all=p-cost_p*(p-nu m_all); p-profit=(p- un it_p)-(p-cost_p)*(p-nu m_sell); p2=p; 30 2.按商品名称 endl coutnext=NULL;P2 指向最后一个 void GoodList:show in fo(Goods

28、 Info * h)/显示信息 coutsetw(10) 商品名称setw(10) 编号setw(8) 进价 setw(8) 售价” setw(8)销量setw(8) 库存setw(12)已得利润endl; while(h!=NULL) coutsetw(10)n amesetw(10)nu mbersetw(8)cost_ps etw(8) unit_p setw(8)nu m_sellsetw(8)num_no wsetw(12)profitn ext; Goods Info * GoodList:search()/ 查找 if(head=NULL) cout数据为空!n丁 eturn N

29、ULL; else GoodsI nfo *h; h=head; int f; 请选择查找方式:n 1.按商品编号 n cin 籪; switch(f) case 1: int x,y; cout nu mber) h=h-n ext; 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() fstrea

30、m File; /存档 File.ope n(Goods In formatio n.txt,ios:out|ios:bi nary); if(!File) exit(0); p=head; Goods Info X; File商品名称 得利润 while(p!=NULL) FileX .n ame X. num _all cout文件打开失败!n; 编号进价 售价 总量 销量 n; X=*p; X .n umberX.cost_p X.u nit_p X .n um_sellX .n um_ now X.profitn ext; cout 文件保存成功!n; File.close(); vo

31、id GoodList:getI nfo() fstream File; /上传 File.ope n(GoodsI nformatio n. txt,ios:i n); if(!File) exit(0); char s81; Goods Info h; File.getli ne (s,81); int n=0; while(!File.eof () if(File.fail() break; n+=1; if(n=1) else coutn ext=p; Fileh .n ameh. nu mber 籬.cost_p 籬. unit_p h. num _all 籬. num _sell

32、籬. num_now h.profit; *p=h; p2=p; cout 上传显示完毕!endl; File.close(); void GoodList:addInfo(Goodslnfo * h)/ 添加 cout请输入商品信息:n ext=p; cin .ig nore(); coutn ame,21); cout p-nu mber; cout p_cost_p; cout p_ un it_p; cout p-nu m_all; cout p-nu m_sell; p- num_no w=p- num _all-(p- num _sell); p-cost_all=p-cost_p

33、*(p-nu m_all); p-profit=(p- un it_p)-(p-cost_p)*(p-nu m_sell); p2=p; p2- next=NULL; void GoodList:delete_()/ 删除节点 if(head=NULL) coutNULL!n; else cout next!=NULL h=h-n ext; if(h-nu mber=n) 34 char F; 35 coutn ext; else p-n ext=h-n ext; delete h; cout 删除成功!n; else cout未找到该节点!n; void GoodList:sort ()/

34、按销量排序显示 Goods Info *h1,*h2,t; int n; if(head=NULL) coutNULL!n; else int F; 请选择排序方式:n 1.按销量降序排列n 2.按利润降序排列n next!=NULL;h1=h1- next) n=h1- nu m_sell; for(h2=h1- next;h2!=NULL;h2=h2- next) if(h2- nu m_sell)(h1- nu m_sell) n=h2-nu m_sell; if(n!=h1- nu m_sell) t=*h2;*h2=*h1;*h1=t; break; 36 case 2: for(h

35、1=head;h1- next!=NULL;h1=h1- next) n=h1_profit; for(h2=h1- next;h2!=NULL;h2=h2- next) if(h2-profit)(h1-profit) n=h2_profit; if(n !=h1-profit) t=*h2;*h2=*h1;*h1=t; break; show in fo(head); void GoodList:menu()/ 菜单 coute ndle ndl-n |*商场销售管理系统 *|n |-|n | |n |- * 菜单 *|n | |n |1.创建2.添加3.修改 |n | |n |4.显示5

36、.存档6.查找 |n | |n |7.上传8.排序9.清屏 |n | |n 37 *n *n 欢迎进入商场销售管理系统 *n *n *n * system(pause); system(cls); GoodList goods; Goods Info * a; int N; goods.me nu (); cin 籒; while(N!=0) switch(N) case 1 : break; goods.create(); |10.删除0.退出|n - n cout*请选择操作 *:; #i nclude using n amespace std; #i ncludeLIST.H int m

37、ai n() coute ndle ndle ndle ndle ndle ndl 38 case 2 :goods.addl nfo(goods.p2); break; case 3: 请选择需要修改的单元n a=goods.search(); goods.show(a); if(a!=NULL) goods.Ame nd(a); else cout*error!* n; break; case 4: break; goods.show in fo(goods.head); case 5:goods.save In fo(); break; case 6 : a=goods.search (); goods.show (a); break; case 7:goods.get In fo(); break; case 8:goods.sort(); break; case 9:system(cls); break; case 10 : goods.delete_(); break; goods.me nu (); 39 cin 籒; char F; cout*是否需要保存文件*(Y确认保存); cin 籉; if(F=Y) goods.save In fo(); system(cls); coutnnnnnnnnnn谢谢使用!endlendl return 0;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 待归类文档
版权提示 | 免责声明

1,本文(商场销售管理系统C++课程设计.doc)为本站会员(四川天地人教育)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|