超市管理系统C++_第1页
超市管理系统C++_第2页
超市管理系统C++_第3页
超市管理系统C++_第4页
超市管理系统C++_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.C+ 程序设计课程设计报告 超市管理系统班级:1 / 26.目录一 . 目与要求二 . 需求分析三 . 概要 四 . 五 . 六 及改 想2 / 26.一、课程设计题目与要求1. 设计题目超市管理系统2. 系统功能要求(1)销售功能。购买商品时, 先输入类别, 然后输入商品名称, 并在库存中查找该商品的相关信息。如果有库存量,输入购买的数量,进行相应计算。如果库存量不够,给出提示信息,结束购买。(2)商品简单管理功能。添加功能:主要完成商品信息的添加。查询功能:可按商品类别、商品名称、生产厂家进行查询。若存在相应信息,输出所查询的信息,若不存在该记录,则提示“该记录不存在!”。修改功能:可根

2、据查询结果对相应的记录进行修改。删除功能: 主要完成商品信息的删除。 先输入商品类别, 再输入要删除的商品名称,根据查询结果删除该物品的记录,如果该商品不在物品库中,则提示“该商品不存在”。( 3)统计功能。输出当前库存中所有商品的总数及详细信息;可按商品的价格、库存量、生产厂家进行统计,输出统计信息时,要按从大到小进行排序。( 4)保存功能:将当前程序中的商品信息存入文件中。( 5)读取功能:从文件中将商品信息读入程序。二 . 需求分析3 / 26.中小型超市采购的商品一般都成千上万件。对这些商品进行有效的管理必不可少。每件商品一般都需要记录商品名、条形码、类别、价格、出厂日期等商品的基本信

3、息。除此之外,还需要记录商品的其他相关信息,如生产厂家、供货处代码、厂家网址、厂家电话等。超市商品的相关信息需要存储到文件系统中,一般都需要提供对商品信息的添加、编辑、 删除等操作。超市管理员每天都会记录购进的商品信息,核销过期的商品等。为了巩固我们所学的C+语言程序设计知识,也为了满足课程设计的要求,我们在对几个中小型超市进行调研的基础上,设计和实现一个小型的超市商品管理系统,提供商品系统的添加、 删除、编辑等功能。同类系统多数使用结构体数组来操作数据,本系统使用链表结构操作数据,提高了数据处理的效率。三概要设计1 增加商品2 显示商品3 排序统计商品4 查找商品5 删除商品6 修改商品7

4、安全退出四详细设计1. 设 计classSupermarket商 品 类 , 实 现 对 商 品 信 息 的 描 叙 ; 设 计classSupermarketmassage类,实现对商品信息的增加,删除,修改,查询,统计等。以下是函数功能表:4 / 26.函数功能void Display()输出商品的信息Supermarket()构造函数Supermarket()析构函数void AddItem()增加商品void RemoveItem()删除商品void ModifyItem()修改商品void Find()查询商品int ListCount()统计商品void Save()基础数据存盘v

5、oid Sort()排序商品Supermarketmassage()构造函数(1)用类的成员函数对链表的数据进行操作,其功能如上表所列。2. 设计类及对象本程序定义了两个类,定义如下:1) class Supermarketclass Supermarketpublic:5 / 26.char name20;char Num20;int Cnum; / 进货总数int Mnum; / 销售数目int Enum; / 剩余库存数目double Price; / 单价char Add20;/ 产地double Sum; / 销售额Supermarket * Next;void Input()cou

6、tname;coutNum;coutCnum;coutMnum;coutEnum;coutAdd;coutPrice;Sum=Mnum*Price;void ReadFile(istream & in) /文件指针innameNumCnumMnumEnumAddPriceSum;void Show()cout 商品名 :nameendl 商品编号 :Numendl 进货总数 :Cnumendl 销售数目 :Mnumendl6 / 26. 剩余 存 :Enumendl 地 :Addendl 价 :Priceendl 售 :SumendlNext;p!=End;p=p-Next)p-Show();

7、coutInput();End-Next=new Supermarket;End=End-Next;cout 添加成功 !endl;coutNext!=End;p=p-Next)/匹配成功 返回上一个指 ,不成功就返回空if(!strcmp(p-Next-name,name)return p;return NULL;Supermarket *FindNum(char * Num)for(Supermarket* p=Head;p-Next!=End;p=p-Next)/匹配成功 返回上一个指 ,不成功就返回空if(!strcmp(p-Next-Num,Num)return p;return N

8、ULL;Supermarket *FindAdd(char * Add)for(Supermarket* p=Head;p-Next!=End;p=p-Next)/匹配成功 返回上一个指 ,不成就返回空if(!strcmp(p-Next-Add,Add)return p;8 / 26.return NULL;3. 程序源代码# include # include # include #include / 用 getch();using namespace std;/Supermarket 类class Supermarketpublic:char name20;char Num20;int C

9、num; / 进货总数int Mnum; / 销售数目int Enum; / 剩余库存数目double Price; / 单价char Add20;/ 产地double Sum; / 销售额Supermarket * Next;void Input()coutname;coutNum;coutCnum;9 / 26.coutMnum;coutEnum;coutAdd;coutPrice;Sum=Mnum*Price;void ReadFile(istream & in) /文件指针innameNumCnumMnumEnumAddPriceSum;void Show()cout 商品名 :nam

10、eendl 商品编号 :Numendl 进货总数 :Cnumendl 销售数目 :Mnumendl 剩余库存 :Enumendl 产地 :Addendl 单价 :Priceendl 销售额 :SumendlNext;p!=End;p=p-Next)p-Show();coutInput();End-Next=new Supermarket;End=End-Next;cout 添加成功 !endl;coutNext!=End;p=p-Next)/匹配成功则返回上一个指针,不成功就返回空if(!strcmp(p-Next-name,name)return p;return NULL;Supermar

11、ket *FindNum(char * Num)for(Supermarket* p=Head;p-Next!=End;p=p-Next)/匹配成功则返回上一个指针,不成功就返回空if(!strcmp(p-Next-Num,Num)return p;return NULL;Supermarket *FindAdd(char * Add)for(Supermarket* p=Head;p-Next!=End;p=p-Next)/匹配成功则返回上一个指针,不成就返回空if(!strcmp(p-Next-Add,Add)return p;return NULL;/构造函数Supermarketmas

12、sage:Supermarketmassage()Head=new Supermarket;Head-Next=new Supermarket;End=Head-Next;in.open(sort.txt);12 / 26.if(!in)cout 这是一个新系统,无商品信息。请先输入。ReadFile(in);if(End-name0=0)break;End-Next=new Supermarket;End=End-Next;in.close();couttt 读取商品信息成功!Next!=End;)temp=Head-Next;Head-Next=Head-Next-Next;delete

13、temp;delete Head,End;/菜单13 / 26.void Supermarketmassage:ShowMenu()cout 超 市 商 品 管 理 系统 endl;cout endl;cout 1.增加商品信息 endl;cout 2.显示商品信息 endl;cout 3.排序统计商品 endl;cout 4.查找商品信息 endl;cout 5.删除商品信息 endl;cout 6.修改商品信息 endl;cout 0.安全退出系统 endl;coutnttntt请选择: ;/查找函数void Supermarketmassage:Find()char name20 ,Nu

14、m10;int x; Supermarket * p=NULL;14 / 26.coutntt*n;couttt 1.按商品的名称 找ntt 2.按商品 号 找;coutx;switch(x)case 1:coutname;if(p=FindItem(name)p-Next-Show();cout 入任意字符! ;getch();elsecouttt 没有找到 商品信息!nendl;cout 入任意字符! ;getch();break;case 2:coutNum;if(p=FindNum(Num)p-Next-Show();15 / 26.cout 入任意字符! ;getch();elsec

15、outtt 没有找到 号的商品!nendl;cout 入任意字符! ;getch();break;/修改信息void Supermarketmassage:ModifyItem()/ 修改信息char name20;Supermarket* p=NULL;coutname;if(p=FindItem(name)couttt 已找到商品的信息, 入新的信息!Next-Input();cout 修改成功! endl;cout 入任意字符! ;getch();else16 / 26.couttt 没有找到 !endl;cout 入任意字符! ;getch();/ 除信息void Supermarke

16、tmassage:RemoveItem()/ 除信息char name20; Supermarket * p=NULL,*temp=NULL;couttt 入要 除的商品名:name;if(p=FindItem(name)temp=p-Next;p-Next=p-Next-Next;delete temp;couttt 除成功 !endl;cout 入任意字符! ;getch();elsecouttt 没有找到 !endl;coutname,p1-name);/字符串 name 里面strcpy(temp-Num,p1-Num);strcpy(temp-Add,p1-Add);temp-Cnu

17、m=p1-Cnum;temp-Mnum=p1-Mnum;temp-Enum=p1-Enum;temp-Price=p1-Price;temp-Sum=p1-Sum;strcpy(p1-name,p2-name);strcpy(p1-Num,p2-Num);strcpy(p1-Add,p2-Add);p1-Cnum=p2-Cnum;p1-Mnum=p2-Mnum;p1-Enum=p2-Enum;p1-Price=p2-Price;p1-Sum=p2-Sum;strcpy(p2-name,temp-name);strcpy(p2-Num,temp-Num);strcpy(p2-Add,temp-A

18、dd);p2-Cnum=temp-Cnum;p2-Mnum=temp-Mnum;p2-Enum=temp-Enum;18 / 26.p2-Price=temp-Price;p2-Sum=temp-Sum;/统计int Supermarketmassage:ListCount()/ 统计当前链表的记录总数,返回一个整数if(! Head)return 0;int n=0;for(Supermarket * p=Head-Next;p!=End;p=p-Next)n+;return n;/排序void Supermarketmassage:Sort()/ 对当前链表进行排序cout Sorting

19、.endl;Supermarket *p=NULL,*p1=NULL,*k=NULL;int n=Supermarketmassage:ListCount();if(nNext;p!=End;p=p-Next)for(k=p-Next;k!=End;k=k-Next)19 / 26.if(p-Addk-Add)Supermarketmassage:Swap(p,k);cout 排序完成! Next;p!=End;p=p-Next)out 商品名称 :namett 商品编号 :Numtt 进货总数 :Cnumtt 销售数目 :Mnumtt 剩余库存 :Enumtt 商品产地 :Addtt 商品单价 :Pricett 销售额 :Sumn;out.close();/主函数20 / 26.int main()int x,i=0;bool quit=false;couttt endl;for(i=0;i3;i+)couttt tttttt endl;couttt 【 迎 入超市商品管理系 】 endl;for(i=0;i3;i+)couttt tttttt endl;couttt nendl;Supermarketmass

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论