版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中南大学库存管理系统设计(C+题目六:库存管理系统设计运用面向对象程序设计知识,利用 C+语言设计和实现一个“库存管理系统 设计”,主要完成对商品的销售、统计和简单管理。超市中商品分为四类,分别是食品、化妆品、日用品和饮料。每种商品都包 含商品名称、价格、库存量和品牌等信息。本系统要求具备如下主要功能:(1) 商品简单管理功能添加功能:主要完成商品基本信息的添加。查询功能:可按商品类别、商品名称、生产厂家、进货日期进行查询。若存在相应信息,输出所查询的信息,若不存在该记录,贝U提示“该记录不存在! ”。修改功能:可根据查询结果对相应的记录进行修改。删除功能:主要完成商品信息的删除。先输入商品类
2、别,再输入要删除 的商品名称,根据查询结果删除该物品的记录,如果该商品不在物品库 中,则提示“该商品不存在”。(2) 进货功能按要求添加相应商品的信息到库存中。添加进货日期、生产厂家、进货价等信息。(3) 出货功能出货时,先输入商品类别,然后输入商品名称,并在库存中查找该商品的相 关信息。如果有库存量,输入出货的数量、出货日期,计算销售额和利润。如果 库存量不够,给出提示信息,结束出货。(4) 统计功能输出当前库存中所有商品的总数及详细信息;能统计每种商品一周时间内的销售额和利润;能统计每类商品的一周时间内的销售额和利润。 输出统计信息时, 要按从大到小进行排序。(根据个人能力,至少实现一种统
3、计功能)在实现过程中,需利用面向对象程序设计理论的基础知识,充分体现出C+语言关于类、继承和封装等核心概念,每一个类应包含数据成员和成员函数。源代码#i nclude #i nclude #in elude #include vconio.h用 getch();using n amespace std;class Goods/Goods类public:Goods()int kind;char n ame20;哇哈哈char date20;进货日期char bran d10;品牌char manu factor1O;厂家float buyprice;/进货价;float saleprice; /
4、卖出价;int amount; / 存货数量;int amountl;/ 售货数量;int profit;/ 净利润;Goods * Next;void In putAII()输入全部函数In putma nu factor();In putName();In putKi nd();In putdate();In putOther();void In putKi nd()couttt请选择种类:;c in ki nd;void In putName()cout name;cout date;void In putBuyprice()cout buyprice;void In putSalepr
5、ice()cout saleprice;void In putA moun t()coutamou nt;void In putProfit()cout profit;void In putma nu factor()cout manu factor;void In putbra nd()coutbra nd;void In putOther()cout buyprice;cout saleprice;cout amou nt;coutvv tt请输入商品的厂家:;c inmanu factor;coutbra nd;profit=0;void ReadFile(istream &in)inn
6、 amek in ddatema nu factorbuypricesalepric eam oun tbra ndprofit;coutvv 商 品 名 :n amevve ndl 种类:Next;p!=E nd;p=p-Next)p-Show();i+;coutvv共有vvivv个商品vvnvvendl;coutvv输入任意字符!返回主菜单;getch();void Addltem()从键盘输入商品信息system(cls);showMe nu(1);En d-I nputKi nd();En d- In putName();En d- In putdate();End-ln putOth
7、er();En d-Next = new Goods;En d=E nd-Next;coutvv添加成功!Next!=End;p=p-Next)配成功则返回上一个指针,不成功就返回空if(!strcmp(p-Next- name, name)return p; return NULL;Goods *Fi ndkind(int kind)for(Goods * p=Head;p-Next!=End;p=p-Next)配成功则返回上一个指针,不成功就返回空if(p-Next-ki nd=ki nd)return p;return NULL;Goods *Fin ddate(char * date)
8、for(Goods * p=Head;p-Next!=End;p=p-Next) 配成功则返回上一个指针,不成功就返回空if(!strcmp(p-Next-date,date)return p; return NULL;Goods *Fi ndma nu factor(char * manu factor)for(Goods * p=Head;p-Next!=End;p=p-Next)配成功则返回上一个指针,不成功就返回空if(!strcmp(p-Next-ma nu factor,ma nu factor)return p; return NULL;;Goodsmessage:Goodsme
9、ssage()/构造函数Head=new Goods;Head-Next=new Goods;En d=Head-Next;in .ope n(market.txt);if(!i n)coutvv无商品信息。请先进货。ReadFile(i n);if(En d-n ame0=0)break;En d-Next=new Goods;En d=E nd-Next;in .close();coutvvtttt读取商品信息成功Goodsmessage:Goodsmessage()析构函数Save();for(Goods * temp;Head-Next!=E nd;)temp=Head-Next;He
10、ad-Next=Head-Next-Next;delete temp;delete Head,E nd;!vvnve ndl;/菜单 /void Goodsmessage:showMe nu(i nt n)菜单switch( n)case 1:coutvv* n1. 食品 2.品 4. 饮料 n化妆品 3. 日用*ne ndl;break;case 2:system(cls);system(color F0);coutvve ndl;coutvv*库存管理系统*vve ndl;coutvv#1.增加商品#vve ndl;coutvv#2.显示商品#vve ndl;coutvv#3.统计排序#v
11、ve ndl;coutvv#4.查找商品#vve ndl;coutvv#5.删除商品#vve ndl;coutvv#6.修改商品#vve ndl;coutvv#7.出货系统#vve ndl;coutvv#8.保存商品信息#vve ndl;coutvv#0.安全退出系统#vve ndl;coutvvtttt请选择:0-8vve ndl;break;case 3:system(cls);*coutvv* nt 1.修改商品名2.修改种类3修改进货日期nvvt 4.修改进货价5.修改售出价6.修改剩余商品量nvvt7.修改净利润8.修改商品品牌9.修改生产厂家nvvt10.修改全部0.返回主菜单n*
12、e ndl;coutvvttntttt请选择:0-10ve ndl;*break;case 4:system(cls);coutvv*nvv 1. 按库存量排序 2. 按净利润排序 0. 返回主菜单n*e ndl;coutvvttntttt请选择:0-3vve ndl;break;case 5:system(cls);coutvvntt* n;coutvvtt * 1.按商品的名称查找 *ntt*2.按生产厂家查找*ntt*3.按进货日 期查找*ntt*4.按商品类别查找*ntt*0.返回主菜单*coutvntt*n请选择:0-4ve ndl;break;case 6:system(cls);
13、system(color 3E);cout nnnnnnnnnnnntt感谢您使用本库存管理系统,欢迎下次使用,再见! n endl;couttt请按任意键退出!nnnnnnnnnnn x;switch(x)case 1:coutn ame;if(p=F indn ame( name)p-Next-Show();coutvv输入任意字符!返回主菜单;getch();elsecoutvvtt 没有找到该名称的商品!vvnvmanu factor;if(p=F in dma nu factor(ma nu factor)p-Next-Show();coutvv输入任意字符!返回主菜单;getch(
14、);elsecoutvtt 没有找到该生产厂家的商品!vvnv date;if(p=F in ddate(date)p-Next-Show();coutvv输入任意字符!返回主菜单;getch();elsecoutkind;if(p=F indkin d(k ind)p-Next-Show();coutvv输入任意字符!返回主菜单;getch();elsecoutvvtt 没有找到该种类的商品!vvnv x;switch(x)case 1:char n ame20;Goods * p=NULL;coutvvtt 请输入要修改的商品的名 称:;c inn ame;if(p=F indn ame(
15、 name)coutvvtt已找到商品的信息,请输入新的信息!vve ndl;p-Next- In putName();coutvv修改成功! vvendl;coutvv输入任意字符!返回主菜单;getch();elsecoutvvtt没有找到您需要的商品!vve ndl;getch();break;case 2:char n ame20;Goods * p=NULL;coutn ame;if(p=F indn ame( name)coutvvtt 已找到商品的信息,请输入新的信息!vve ndl;p-Next-I nputKi nd();coutvv修改成功! vvendl;coutvv输入
16、任意字符!返回主菜单;getch(); elsecoutvv输入任意字符!返回主菜单;getch();break;case 3:char n ame20;Goods * p=NULL;coutvvtt 请输入要修改的商品的名 称:;c inn ame;if(p=F indn ame( name)coutvvtt已找到商品的信息,请输入新的信息!vve ndl;p-Next- In putdate();coutvv修改成功! vvendl;coutvv输入任意字符!返回主菜单;getch();elsecoutvvtt没有找到您需要的商品!e ndl;coutvv输入任意字符!返回主菜单;getc
17、h();break;case 4:char n ame20;Goods * p=NULL;coutn ame;if(p=F indn ame( name)coutvvtt已找到商品的信息,请输入新的信息!vve ndl;p-Next- In putBuyprice(); coutvv修改成功! vvendl;getch();elsecoutvtt没有找到您需要的商品!n ame;if(p=F indn ame( name)coutvvtt 已找到商品的信息,请输入新的信息!vve ndl;p-Next- In putSaleprice();coutvv修改成功! endl;coutvv输入任意
18、字符!返回主菜单;getch();elsecoutvtt没有找到您需要的商品!n ame;if(p=F indn ame( name)coutvvtt已找到商品的信息,请输入新的信 息!Next- In putA mount();coutvv修改成功! endl;coutvv输入任意字符!返回主菜单;getch();elsecoutvvtt没有找到您需要的商品!n ame;if(p=F indn ame( name)coutvvtt已找到商品的信息,请输入新的信息!vve ndl;p-Next-l nputProfit();coutvv修改成功! endl;coutvv输入任意字符!返回主菜单
19、;getch();elsecoutvtt没有找到您需要的商品!n ame;if(p=F indn ame( name)coutvvtt 已找到商品的信息,请输入新的信息!vve ndl;p-Next-l nputbra nd();coutvv修改成功! n ame;if(p=F indn ame( name)coutNext-I nputma nu factor();coutvv修改成功! n ame;if(p=F indn ame( name)coutNext-I nputAII();coutvv修改成功! endl;coutvv输入任意字符!返回主菜单;getch();elsecoutvv
20、tt没有找到您需要的商品!vve ndl;coutvv输入任意字符!返回主菜单;getch();void Goodsmessage:Removeltem()/删除商品信息system(cls);char ld20;Goods * p=NULL,*temp=NULL;coutvvtt 请输 入要删 除的商 品的名 称:n ame;if(p=F indn ame( name)temp=p-Next;p-Next=p-Next-Next;delete temp;coutvtt 删除成功!vendl;coutvv输入任意字符!返回主菜单;getch();else coutvvtt没有找到您需要的商品!
21、e ndl;coutvv输入任意字符!返回主菜单;getch();void Goodsmessage:Saleprice()/售出商品system(cls);char n ame20;i nt i;Goods * p=NULL;Goods * temp=NULL;coutn ame;ci n i;if(p=F indn ame( name)if(p-Next-am oun ti)p-Next-am ount -= i;p-Next-am ountl += i;p-Next-profit +=i*(p-Next-salepricep-Next-buyprice);coutvv商品售出成功!vvn
22、;数量:coutvv售出商品名称 :namevvtvvNext-Show();Save();coutvv输入任意字符!返回主菜单;getch();elsecoutvv商品数量不够,不能购买vvendl;coutvv输入任意字符!返回主菜单;getch();Saleprice();elsecoutvv无此种商品,不能购买n ame,p1- name);strcpy(temp-ma nu factor,p1-ma nu factor);strcpy(temp-date,p1-date); temp-saleprice=p1-saleprice; temp-buyprice=p1-buyprice;
23、 temp-am oun t=p1-am ount; temp-profit=p1-profit; strcpy(temp-bra nd,p1-bra nd);strcpy(p1- n ame,p2-n ame); strcpy(temp-ma nu factor,p1-ma nu factor); p1-k in d=p2-k ind;strcpy(p1-date,p2-date); p1-saleprice=p2-saleprice;p1-buyprice=p2-buyprice;p1-am oun t=p2-am ount;p1-profit=p2-profit;strcpy(p1-br
24、a nd,p2-bra nd);strcpy(p2-n ame,temp-n ame); strcpy(temp-ma nu factor,p1-ma nu factor); p2-k in d=temp-k ind;strcpy(p2-date,temp-date); p2-saleprice=temp-saleprice;p2-buyprice=temp-buyprice; p2-am oun t=temp-am ount; p2-profit=temp-profit;strcpy(p2-bra nd,temp-bra nd); int Goodsmessage:ListCou nt()
25、/统计当前链表的记录总数,返回一个整数if(! Head)return 0;int n=0;for(Goods * p=Head-Next;p!=E nd;p=p-Next)n+;return n;void Goodsmessage:Paixu() /排序商品showMe nu(4);int x;cin x;switch(x)case 1:system(cls);cout vvtt 排序中endl;coutn;Goods *p=NULL,*p仁NULL,*k=NULL; int n=Goodsmessage:ListCo un t(); if(nNext;p!=E nd;p=p-Next)fo
26、r(k=p-Next;k!=E nd;k=k-Next)if(p-am oun tk-am ount)Goodsmessage:Swap(p,k);Display。;out.open(” 库存量.txt);for(Goods *q=Head-Next;q!=E nd;q=q-Next)outvvq-n ameki ndldvvt*/vv q-buypricesalepricevvtvvq-am oun tvvtv vq-bra ndvvtvvq-profitvvn;out.close();coutvv保存信息成功vvendl;cout vv排序完成! vvendl;getch();return
27、;case 2:system(cls);cout vvtt 排序中endl;coutn;Goods *p=NULL,*p仁NULL,*k=NULL;int n=Goodsmessage:ListCo un t();if(nNext;p!=E nd;p=p-Next) for(k=p-Next;k!=E nd;k=k-Next) if(p-profitk-profit)Goodsmessage:Swap(p,k);Display。;out.open(净利润.txt);for(Goods *q=Head-Next;q!=E nd;q=q-Next)outvvq-n amevvtvvq-ki ndv
28、vt/*vvq-ldvvt*/vv q-buypricevvtvvq-salepricevvtvvq-am oun tvvtv vq-bra ndvvtvvq-profitvvn;out.close();coutvv保存信息成功endl; cout 排序完成! Next;p!=E nd;p=p-Next)outvvp-n amevvtvvp-ki 门4址4816吐ma nu factorvvtvvp-buypricevvtvvp-salepricevvt vvp-am oun tvvtvvp-bra ndvvtvvp-profitvvn;out.close();coutvv保存信息成功vven
29、dl;t*int main()/system(color 3E);cout* en dl;主函数t* en dl;cout*t* en dl;cout*t* en dl;cout*coutt*welcome!* en dl;cout t*欢迎使用库存管理系统* endl;cout* en di;cout* en di;cout* en di;cout* en di;Goodsmessage Grade;coutvtttt按任意键开始getch();system(cls);stri ng x;bool quit =false;while(!quit) x;if(x=0)Grade.showMe
30、nu(6);break;else if(x=1)Grade.Addltem();else if(x=2)Grade.Display();else if(x=3)Grade.Paixu();else if(x=4)Grade.Fi nd();else if(x=5)Grade.Removeltem();else if(x=6)Grade.Modifyltem();else if(x=7)Grade.Saleprice();else if(x=8)Grade.Save();elsesystem(cls);coutnnnnnnnttt编号输入错误,请输入正确的序号! en dl;_sleep(200
31、0);c on ti nu e;return 0;课程设计要求1、严格遵守机房规章制度,按时上机;2、态度端正,独立思考,严禁抄袭,如发现抄袭者,双方均计零分;3、上机前写好相关算法及源代码;4、在上述题目中任选一题,编写程序实现其功能,并认真书写课程设计报告。课程设计报告内容和要求1、课程设计报告内容和要求参见附录I中的“课程设计报告的编写格式规范” 不满足格式规范的最高成绩为“中”。【注】可参考数据结构课程设计题目中的“课程设计报告样本”。2、圭寸面参见附录II ;3、报告书写规范参见附录III ;成绩评定标准成绩以优、良、中、及格和不及格 5个等级评定。1、学生编写的实际软件和运行结果,
32、占总成绩 40%2、课程设计报告,占总成绩35%3、教师提问,占总成绩15%4、出勤,占总成绩10%检查和文档上交1、做好之后,请老师过来检查,并问问题。2、最后一次课结束前,将课程设计报告电子版由班长统一收齐,命名为:C+!程设计报告J生名学号.doc,报告要求用word版本。C+h课程设计代码J生名学号.rar 。附录I:课程设计报告的编写格式规范1、课程设计报告封面和目录课程设计报告封面应给出班级、姓名、学号和完成日期2、需求分析明确说明程序设计的任务,说明自己程序所能实现的功能。3、概要设计(1)分析系统中的各个实体及它们之间的关系;(2)根据问题描述,设计系统的类层次;(3) 说明主
33、程序的流程以及各程序模块之间的层次(调用)关系。4、详细设计(1)完成类层次中各个类的描述;(2)完成类中各个成员函数的定义;(3)对主程序和重要模块,需要写出其算法。如粘帖重要代码,需要加上清晰的程序 注释。(4)画出函数的调用关系图。在此部分说明每个部分的算法设计说明(可以是描述算 法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构 的定义)。5、调试分析(1)调试过程中遇到的问题是如何解决的以及对设计与实现的讨论和分析;(2)算法的时间复杂性和可能的改进设想。6测试结果列出你的测试结果,包括输入和输出。这里的测试数据应该完整和严格,最好多于需求分析中所列出的数据量。7、课程设计总结课设总结包括:课程设计过程遇到的问题、遇到问题解决问题过程的思考、课程设计的收获、程序调试的思考、对数据结构这门课程的思考、在课程设计过程中对数据结构课 程的认识等内容。8、参考文献9、附录:带注释的源程序。附录II :封面中南大学高级程序设计实践(C+课程设计报告题 目学生姓名指导教师学 院专业班级完成时间 附录III:课程设计报告的书写规范 课程设计报告统一使用 A4纸撰写,单面使用,背面不得书写正文或绘制图表。 版芯统一为:页边距:左 2.8CM 右2.8 CM、上2.5 CM、下2.2CM、行间
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房地产代理服务2024年协议样本
- 车牌指标租赁协议:2024年限定
- 办理2024年新劳动协议所需步骤解析
- 2024年销售人员协议格式
- 货运合同范本6
- 物流执行合同范本
- 齐齐哈尔大学《热力学》2023-2024学年第一学期期末试卷
- 安装屋顶彩钢板合同范本
- 数学第六册第三单元《年月日》说课稿
- 数轴和绝对值相反数提高练习试题
- 孕期运动(课堂PPT)课件(PPT 47页)
- PICC健康宣教-PPT课件
- 黄瓜育种分析
- 砂石生产各工种安全操作规程
- 2019版外研社高中英语选择性必修一~四单词总表
- 从分数到分式的教学设计
- 狭窄隧道汽车双向行PLC控制设计
- 移相整流变压器设计及试验
- 05S502阀门井图集
- 舒方特方格练习(共6页)
- 90、808系列铝合金门窗自动计算下料表
评论
0/150
提交评论