您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页《超市商品管理系统》课程设计报告

《超市商品管理系统》课程设计报告

来源:筏尚旅游网


《面向对象程序设计》

课程设计报告

学 院:_电气与信息工程学院 专业班级: 计科13-01班 学生姓名: 胡 凯 学 号: 2013443401 设计地点(单位)_______ 计算机自主学习中心 __ ______ _ 设计题目:________ 超市商品管理系统__ ____ _____

完成日期:2015 年 1月12 日

指导教师评语: ______________________ _________________

_________________________________________________________________________________________________________________________________________________________________________________________________________ __________ _

成绩(五级记分制):______ ________ __

指导教师(签字) :________ _____ __

C++《超市商品管理系统》课程设计报告

摘 要

此次课程设计为超市管理系统,由VC6.0编译器编译而成。通过本系统,在主界面可以通过行管提示的操作,对商品进行购买、添加、修改、删除、查询、统计等管理操作。系统主要包含了食品、化妆品、日用品、饮料四大类,每一类都包含了商品的几大最基本信息,商品名称、品牌、价格、生产厂家、库存量等。除四大类外有一个总的商品基类,通过继承机制进行访问基类,同时也结合运用了模板。通过此系统用户可以简洁方便的购买商品,管理人员也可轻松进行商品管理,从而实现高效的管理模式,为公司企业商家等创造最大化的经济效益。 关键词:管理系统 基类 继承 模板

1

C++《超市商品管理系统》课程设计报告

重庆科技学院 课程设计任务书

设计题目:超市商品管理系统设计

学生姓名 课程名称 胡凯 面象对象程序设计课程序设计 地 点 I313 起止时间 设计内1)问题描述 容及要求 超市中商品分为四类,分别是食品、化妆品、日用品和饮料。每种商品都包含商品名称、价格、库存量和生产厂家、品牌等信息。 主要完成对商品的销售、统计和简单管理。 专业班级 计科13 2)功能要求 (1)销售功能。购买商品时,先输入类别,然后输入商品名称,并在库存中查找该商品的相关信息。如果有库存量,输入购买的数量,进行相应计算。如果库存量不够,给出提示信息,结束购买。 (2)商品简单管理功能。 添加功能:主要完成商品信息的添加。 查询功能:可按商品类别、商品名称、生产厂家进行查询。若存在相应信息,输出所查询的信息,若不存在该记录,则提示“该记录不存在!”。 修改功能:可根据查询结果对相应的记录进行修改。 删除功能:主要完成商品信息的删除。先输入商品类别,再输入要删除的商品名称,根据查询结果删除该物品的记录,如果该商品不在物品库中,则提示“该商品不存在”。 (3)统计功能。 输出当前库存中所有商品的总数及详细信息;可按商品的价格、库存量、生产厂家进行统计,输出统计信息时,要按从大到小进行排序。 3)问题的解决方案 根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计; (2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试; (8)完成系统总结报告。 根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。 设计 (1)系统分析、设计正确。 参数 (2)结果以图表方式显示。 (3)界面简洁、美观。 (4)报告格式规范。

2

C++《超市商品管理系统》课程设计报告

进度 要求 设计 18周星期三 8:30~12:10 完成项模块设计,接口设计,类的功能模块设计 18周星期四 8:30~12:10 完成项类的算法计, 18周星期五 8:30~12:10 编写程序算法 19周星期一 8:30~12:10 编写程序算法 19周星期二 8:30~12:10 编写程序算法,软件调试,测试 19周星期三 8:30~12:10 软件调试,测试,并准备软件开发文档 19周星期四 8:30~12:10 编写课程设计报告,准备答辩 19周星期五 8:30~12:10 报告提交,答辩。 参考资料 其它 说明 [1]Richard Johnsonbaugh. Martin Kalin.《面向对象程序设计—C++语言描述》.机械工业出版社.2009年 [2]钱能.《C++语言程序设计教程》.清华大学出版社.2005年 1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。2.若填写内容较多可另纸附后。 3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。 18周星期一 8:30~12:10 任务分配,了解需求,并制定课程设计计划 18周星期二 8:30~12:10 软件需求任务,并完成初步的设计,模块设计,文档教研室主任: 王双明 指导教师:裴仰军/伍建全/焦晓军 2014年12月10日

3

C++《超市商品管理系统》课程设计报告

目 录

摘 要 .................................................................... 1 1 软件需求分析说明书 ...................................................... 1

1.1 需求分析 ......................................................................................................................................... 1

1.2 功能简介 ......................................................................................................................................... 1

1.2.1 销售功能 ............................................................................................................................. 1 1.2.2 商品管理功能 ..................................................................................................................... 1 1.2.3 统计功能 ............................................................................................................................. 2 1.3 界面介绍与要求 ............................................................................................................................. 2 1.4 数据结构要求 ................................................................................................................................. 3 2 系统分析与设计 .......................................................... 5

2.1 系统分析 ......................................................................................................................................... 5

2.1.1 类的设计关系 ..................................................................................................................... 5 2.1.2 主功能函数流程图 ............................................................................................................. 5 2.3 系统的算法设计 ............................................................................................................................. 6

2.3.1 购买商品程序算法 ............................................................................................................. 6 2.3.2 添加商品程序算法 ............................................................................................................. 7 2.3.3 修改商品程序算法 ............................................................................................................. 8 2.3.4 统计商品程序算法 ............................................................................................................. 8

3 软件的实现 .............................................................. 9

3.1 主系统头文件和基类的定义 ......................................................................................................... 9 };3.2 购买商品代码解释 ..................................................................................................................... 9 3.3 添加商品代码解释 ....................................................................................................................... 11 }3.4 删除商品代码解释 ..................................................................................................................... 12 3.5 修改商品代码解释 ....................................................................................................................... 12 3.6 查询商品代码解释 ....................................................................................................................... 12 3.7 统计商品代码解释 .......................................................................................... 错误!未定义书签。 4 系统功能实现 ........................................................... 17

4.1 系统功能主菜单界面实现 ........................................................................................................... 17 4.2 商品购买界面实现 ....................................................................................................................... 17 4.3 商品添加界面实现 ....................................................................................................................... 18 4.4 商品修改界面实现 ....................................................................................................................... 19 4.5 商品统计界面实现 ....................................................................................................................... 19 软件使用说明书 ........................................................... 20

5.1 销售功能模块的使用说明 ........................................................................................................... 20 5.2 商品管理功能的使用说明 ........................................................................................................... 20 参考文献 ................................................................. 21 致 谢 .................................................................... 42

4

C++《超市商品管理系统》课程设计报告

1 软件需求分析说明书

1.1 需求分析

随着科技的进步,计算机技术的飞速发展,许多企业在进行技术改造的同时,各种工作也趋向于信息技术化管理。管理系统事一个信息化、智能化和先进管理集合,一个高效有用的管理系统课一减少一个企业或者上商家的管理费用和人力物力开支,不仅可以节省大量时间,还可以为企业的各项决策带来巨大的经济效益。与人们生活接触最贴近的超市也有它自己完善的管理系统。计算机的自动化管理系统提高了超市管理的管理水平和工作效率,增强超市的竞争能力降低成本,为客户提供更加优质的服务。所以需要开发一个计算机系统来代替人工管理超市人员对商品信息管理和顾客购买等方面的工作。使用该系统可以使超市的服务更加快捷、准确和方便,减少大量的人工操作,提高了工作效率。

1.2 功能简介

1.2.1 销售功能

本功能主要是针对消费者用户使用。在购买商品时,用户得输入所要购买商品的编号和商品数量,然后系统会自动在库存当中查找该商品的相关信息,如果在库存中还有库存量,则用户接着进行下一步操作,根据提示输入要购买的商品的数量,进行相应的计算。如果库存量不够,则系统会给出提示信息,然后询问顾客是否重新购买,又回到系统页面主菜单。

1.2.2 商品管理功能

商品管理功能主要是针对超市管理人员使用,对库存商品进行简单的管理。本功能当中主要可以实现商品的添加、查询、修改、删除等功能。 (1)添加商品

通过主页面提示菜单键入相对应数字进入添加商品选项,然后根据提示添加商品信息,主要包括商品名称、商品编号、商品品牌、商品价格、商品生产厂家、以及商品的库存量等。 (2)删除商品

通过主页面的提示菜单键入相应数字进入删除商品选项,完成最商品信息的删除。

1

C++《超市商品管理系统》课程设计报告

选择输入要删除商品的编号,根据查询结果删除商品的记录,如果该商品在库存物品当中不存在,则系统给出相应提示,该商品不存在。 (3)修改商品

通过主页面的提示菜单键入相应数字进入修改商品选项,对商品信息进行修改。可根据查询的结果对相应的商品信息进行修改,包括商品的名称、品牌、价格、生产厂家和库存量等。 (5)查询商品

通过主页面的提示菜单键入相应数字进入查询商品选项,对商品信息进行查询。可根据相应提示选择查询方式,按商品编号,商品名称进行查询商品的全部信息。如果存在相应商品的信息,则输出所查询商品的信息,如果不存在该商品的记录,则系统自动提示该商品的记录不存在。

1.2.3 排序功能

此功能主要是提供显示功能。用户可通过主页面的显示菜单键入相应的数字进入统计选项,可以输出当前库存当中的所有商品的总数及相应商品的详细信息,可以按照商品的进价格、库存量、净利润进行统计,输出商品信息时可以按照商品的对应信息按照从大到小的的顺序进行排序输出。

1.3 界面介绍与要求

图1.3.1 系统欢迎页面介绍

2

C++《超市商品管理系统》课程设计报告

图1.3.2 系统首页面介绍

本系统的软件界是使用C++编译生成的一个系统操作菜单。操作菜单界面总共有9个选项可以供用户操作选择,分别为增加商品、显示商品、排序商品、查找商品、删除商品、修改商品、售出商品、保存商品信息、安全退出。菜单页面下方有可供用户选择操作项目的指令,当用户选择并输入0-8中的任意数字,系统便会进入相应的功能操作。如果出现错误操作,系统会该处输入错误请从新输入等提示或者自动跳出回到主菜单界面。

页面的组织和设计要求先构思好系统的功能模块和结构框架,分析系统中的各个实体以及它们间的具体联系关系,根据问题的描述先设计好系统的类层次,完成类层次中各个成员函数的定义,实现每一个模块层次之间的衔接,从而设计出工整漂亮的管理系统,要求整个系统的界面设计简洁、美观,让用户使用起来方便快捷。

1.4 数据结构要求

在整个系统当中除了使用类层次结构、继承机制、模板等,还使用的了数据结构当中的链表结构,主要用来进行商品的管理功能。包括商品的添加、修改、删除、查询等。可以通过链表进行存储、访问操作。通过动态申请链表空间,用指针操作数据节点完成

3

C++《超市商品管理系统》课程设计报告

商品信息的一系列操作。

4

C++《超市商品管理系统》课程设计报告

2 系统分析与设计

2.1 系统分析

系统的主要工作流程图如下,当进入操作主菜单界面时,会有相应的不同的操作选项供用户选择,但操作完成后就返回到系统主菜单。

2.1.1 类的设计关系

商品基类 食品类 饮料类 生活用品类 化妆品类

图2.1 系统类的设计关系图

2.1.2 主功能函数流程图

欢迎界面 1. 增加商品 2.显示信息 3.排序商品 选择操作项 4. 5.查 删找 除商 商品 品

图2.2 首页面功能关系图

5

6.修改商品 7.售出商品 8.保存信息 9.安全退出

C++《超市商品管理系统》课程设计报告

2.3 系统的算法设计

2.3.1 购买商品程序算法

当用户选择操作时,便进入购买商品的函数。其流程图如下:

购买商品 选择编号和数量 确认购买信息 输出购买后商品信息 购买结束

图2.3 商品购买操作流程图

6

C++《超市商品管理系统》课程设计报告

2.3.2 添加商品程序算法

其流程图如下

添加商品 输入名称 选择种类 1.食品 2.饮料 3.日用品 4.化妆品 输入编号、价格、库存、品牌、厂家 添加成功

图2.4 商品添加操作流程图

7

C++《超市商品管理系统》课程设计报告

2.3.3 修改商品程序算法

其流程图如下:

修改商品信息

选择操作项 1.修改商品名 2.修改种类 3.修改编号 4.修改进货价 5.修改售出价 6.修改剩余商品量 7.修改净利润 8.修改生产场9.修改生产商品牌 图2.5 商品修改操作流程图

2.3.4 排序商品程序算法

其流程图如下: 排序商品信息

1.按进货价排序 选择操作项 2. 按 库 存量 排 序 排序结束

图2.6 商品统计功能流程图

3.按净利润排序

8

C++《超市商品管理系统》课程设计报告

3 软件的实现

3.1 主系统头文件和基类的定义

#include #include #include #include

#include //用getch(); using namespace std;

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Goods类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ class Goods { public:

Goods()

{ }

int kind;

char name[20];//哇哈哈 char Id[20]; char place[10]; char brand[10];

float buyprice; //进货价;

float saleprice; //卖出价; int amount;

//存货数量;

int amount1; //售货数量; int profit; Goods * Next; void InputAll()

9

//净利润;

C++《超市商品管理系统》课程设计报告

{

InputName(); InputKind(); InputID(); InputOther();

};

3.2 售出商品代码解释

void Goodsmessage::Saleprice()

{

char Id[20];int i; Goods * p=NULL; Goods * temp=NULL;

cout<<\"\\请输入要售出的商品的编号和数量:\"<>Id;cin>>i; if(p=FindID(Id)) {

p->Next->amount -= i; p->Next->amount1 += i;

p->Next->profit +=i*(p->Next->saleprice - p->Next->buyprice);

cout<<\"商品售出成功!\"<<\"售出商品编号: \"<}

p->Next->Show(); Save();

cout<<\"输入任意字符!继续……\"; getch();

10

C++《超市商品管理系统》课程设计报告

}

else { }

cout<<\"\\没有找到您需要的商品!\"<该函数实现了对商品的购买功能,并且计算出本次购买所消费金额以及净利润。

3.3 添加商品代码解释

void AddItem()//从键盘输入商品信息

{

system(\"cls\"); End->InputName(); showMenu(1); End->InputKind(); do {

End->InputID();

}while(FindID(End->Id));

End->InputOther();

End->Next = new Goods; End=End->Next;

cout<<\"添加成功!\"<11

C++《超市商品管理系统》课程设计报告

3.4 删除商品代码解释

void Goodsmessage::RemoveItem() //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除商品信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

{ }

system(\"cls\"); char Id[20];

Goods * p=NULL,*temp=NULL;

cout<<\"\\请输入要删除的商品的编号:\"<>Id; if(p=FindID(Id)) { } else { }

cout<<\"\\没有找到您需要的商品!\"<Next;

p->Next=p->Next->Next; delete temp;

cout<<\"\\删除成功!\"<3.5 修改商品代码解释

void Goodsmessage::ModifyItem() //修改商品信息 {

12

C++《超市商品管理系统》课程设计报告

showMenu(3); int x; cin>>x; switch(x) {

case 1: {

char Id[20]; Goods * p=NULL;

cout<<\"\\请输入要修改的商品的编号:\";cin>>Id; if(p=FindID(Id)) {

cout<<\"\\已找到商品的信息,请输入新的信息!\"<p->Next->InputName();

cout<<\"修改成功!\"<cout<<\"输入任意字符!继续……\"; getch(); } else {

cout<<\"\\没有找到您需要的商品!\"<break; }

case 2: {

char Id[20]; Goods * p=NULL;

cout<<\"\\请输入要修改的商品的编号:\";cin>>Id; if(p=FindID(Id)) {

cout<<\"\\已找到商品的信息,请输入新的信息!\"<p->Next->InputKind();

cout<<\"修改成功!\"<cout<<\"输入任意字符!继续……\"; getch(); } else {

cout<<\"\\没有找到您需要的商品!\"<13

C++《超市商品管理系统》课程设计报告

}

}

cout<<\"输入任意字符!继续……\"; getch(); }

break;

3.6 查询商品代码解释

void Goodsmessage::Find() //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

{

system(\"cls\"); char name[20] ,Id[10]; int x;

Goods * p=NULL; showMenu(5); cin>>x; switch(x) {

case 1:{cout<<\"\\请输入要查找的商品的名称:\";cin>>name;

if(p=FindItem(name)) { } else { }

14

p->Next->Show();

cout<<\"输入任意字符!继续……\"; getch();

cout<<\"\\没有找到该名称的商品!\"<<'\\n'<C++《超市商品管理系统》课程设计报告

}break;

case 2:

{

cout<<\"\\请输入要查找的商品的编号:\";cin>>Id; if(p=FindID(Id)) { } else { }

cout<<\"\\没有找到该编号的商品!\"<<'\\n'<Next->Show();

cout<<\"输入任意字符!继续……\"; getch();

}break;

}

}

该函数实现了对商品信息的查询功能,并且显示出所查商品的所有信息。

3.7 商品排序代码解释

void Goodsmessage::Swap(Goods *p1, Goods *p2) //交换两个商品的数据 { Goods *temp=new Goods; strcpy(temp->name,p1->name); temp->kind=p1->kind; strcpy(temp->Id,p1->Id); strcpy(temp->place,p1->place); temp->saleprice=p1->saleprice; temp->buyprice=p1->buyprice; temp->amount=p1->amount; temp->profit=p1->profit; strcpy(temp->brand,p1->brand); strcpy(p1->name,p2->name);

15

C++《超市商品管理系统》课程设计报告

p1->kind=p2->kind; strcpy(p1->Id,p2->Id); strcpy(p1->place,p2->place); p1->saleprice=p2->saleprice; p1->buyprice=p2->buyprice; p1->amount=p2->amount; p1->profit=p2->profit; strcpy(p1->brand,p2->brand); strcpy(p2->name,temp->name); p2->kind=temp->kind; strcpy(p2->Id,temp->Id); strcpy(p2->place,temp->place); p2->saleprice=temp->saleprice; p2->buyprice=temp->buyprice; p2->amount=temp->amount; p2->profit=temp->profit; strcpy(p2->brand,temp->brand); }

void Goodsmessage::Paixu() { showMenu(4); int x; cin>>x; switch(x) { case 1: { system(\"cls\"); cout <<\"\\排序中...\"<Next;p!=End;p=p->Next) for(k=p->Next;k!=End;k=k->Next) { if(p->buyprice>k->buyprice) { Goodsmessage::Swap(p,k); } } Display(); cout <<\"排序完成!\"<16

C++《超市商品管理系统》课程设计报告

4 系统功能实现

4.1 系统功能主菜单界面实现

图4.1 系统主菜单页面

4.2 商品售出界面实现

17

C++《超市商品管理系统》课程设计报告

图4.2 购买商品操作界面

4.3 商品添加界面实现

图4.3 添加商品操作界面

18

C++《超市商品管理系统》课程设计报告

4.4 商品修改界面实现

图4.4 修改商品操作界面

4.5 商品排序界面实现

图4.5商品排序操作界面

19

C++《超市商品管理系统》课程设计报告

软件使用说明书

5.1 售出功能模块的使用说明

在使用本系统首先会进入系统首页面上面有相应数字操作提示,请选择要进行的操作项目,用户键入7便进入售出商品功能。根据相关提示输入选择商品编号,然后输入商品数量,并且在库存当中进行查找所要购买的商品信息,如果有库存量,然后系统会进行相应的费用计算,如果库存量不够,系统会给出相关的提示信息,结束本次购买,返回主页面。

5.2 商品管理功能的使用说明

在本管理模块主要有四个功能,即商品添加功能、删除功能、修改功能、查询功能,主要适用于超市商品管理人员对库存商品进行管理。根据首页面的提示信息进入相依的操作。

键入1便进入添加商品功能,会提示用户键入商品的名称,然后选择种类、再依次输入品牌、价格、生产厂家、库存量等信息,然后自动保存。

键入5 便进入删除商品功能,选择输入商品编号,系统进行相应的查询,如果没有找到该商品的记录,则会提示该商品不在物品库当中,如果有则进行删除并且提示删除成功。

键入6便进入修改商品的功能,按需要修改的内容输入相应的商品编号,系统在商品库中进行对比查找,然后进行修改提示,选择要进行修改的项目,并且进行保存,如果没有找到则提示没有找到所要修改商品的信息。

键入4便进入商品查询功能,查询方法分编号和名称两种方式查询,查询结束后显示所查询到商品的所有信息。

20

C++《超市商品管理系统》课程设计报告

程序源代码

#include #include #include #include

#include //用getch(); using namespace std;

class Goods //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Goods类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ {

public: Goods() { } int kind;

char name[20];//哇哈哈 char Id[20]; char place[10]; char brand[10];

float buyprice; //进货价; float saleprice; //卖出价; int amount; //存货数量; int amount1; //售货数量; int profit; //净利润; Goods * Next; void InputAll() {

InputName(); InputKind(); InputID(); InputOther();

}

void InputKind() {

cout<<\"\\请选择种类:\";cin>>kind; }

void InputName() {

21

C++《超市商品管理系统》课程设计报告

cout<<\"\\请输入商品的名称:\"; cin>>name; }

void InputID() {

cout<<\"\\请输入商品的编号:\"; cin>>Id; }

void InputBuyprice() {

cout<<\"\\请输入进货价:\"; cin>>buyprice; }

void InputSaleprice() {

cout<<\"\\请输入售出价:\"; cin>>saleprice; }

void InputAmount() {

cout<<\"\\请输入剩余商品数量:\"; cin>>amount; }

void InputProfit() {

cout<<\"\\请输入净利润:\"; cin>>profit; }

void InputPlace() {

cout<<\"\\请输入商品产地:\"; cin>>place; }

void Inputbrand() {

cout<<\"\\请输入生产商品牌:\"; cin>>brand; }

void InputOther() {

cout<<\"\\请输入进货价:\"; cin>>buyprice; cout<<\"\\请输入售出价:\"; cin>>saleprice; cout<<\"\\请输入存货数量:\"; cin>>amount; cout<<\"\\请输入商品的产地:\"; cin>>place; cout<<\"\\请输入生产商品牌:\"; cin>>brand; profit=0; }

void ReadFile(istream & in) {

in>>name>>kind>>Id>>buyprice>>saleprice>>amount>>place>>brand>>prof

22

C++《超市商品管理系统》课程设计报告

it; }

void Show() {

cout<<\"商品名: \"<amount<class Goodsmessage : public Goods //﹌﹌﹌﹌﹌﹌﹌﹌﹌Goodsmessage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ {

public:

Goodsmessage(); ~Goodsmessage();

void showMenu(int n); void Find(); void Save();

void ModifyItem(); void RemoveItem();

void Swap(Goods *,Goods *); void Paixu(); void Saleprice(); //void Chack(); int ListCount(); void Display() {

system(\"cls\"); i=0;

for(Goods * p=Head->Next;p!=End;p=p->Next) {

p->Show(); i++; }

cout<<\"共有\"<void AddItem()//从键盘输入商品信息

23

C++《超市商品管理系统》课程设计报告

{

system(\"cls\"); End->InputName(); showMenu(1);

End->InputKind(); do {

End->InputID();

}while(FindID(End->Id));

End->InputOther();

End->Next = new Goods; End=End->Next;

cout<<\"添加成功!\"<cout<<\"输入任意字符!继续……\"; getch(); } private:

Goods * Head,* End; int i;

ifstream in; ofstream out;

Goods *FindItem(char * name) {

for(Goods * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空

if(!strcmp(p->Next->name,name))return p; return NULL; }

Goods *FindID(char * Id) {

for(Goods * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空

if(!strcmp(p->Next->Id,Id))return p; return NULL; } };

Goodsmessage::Goodsmessage() //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

24

C++《超市商品管理系统》课程设计报告

{

Head=new Goods;

Head->Next=new Goods; End=Head->Next;

in.open(\"supermarket.txt\"); if(!in)

cout<<\"无商品信息。请先进货。\"<while(!in.eof()) {

End->ReadFile(in);

if(End->name[0]=='\\0')break; End->Next=new Goods; End=End->Next; }

in.close();

cout<<\"\\\\读取商品信息成功!\"<<\"\\n\"<Goodsmessage::~Goodsmessage() //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ {

//Save();

for(Goods * temp;Head->Next!=End;) {

temp=Head->Next;

Head->Next=Head->Next->Next; delete temp; }

delete Head,End; }

void Goodsmessage::showMenu(int n)//菜单 //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

{

switch(n) {

case 1: {

25

C++《超市商品管理系统》课程设计报告

cout<<\"********************************************************************************\\n\"

<<\" 1. 食品 2. 化妆品 3. 日用品 4. 饮料 \\n\"

<<\"********************************************************************************\\n\"<system(\"cls\");

cout<<\"▉▉▉▉▉▉▉▉▉▉ ☆ 超 市 商 品 管 理 系 统 ☆ ▉▉▉▉▉▉▉▉▉▉\"<cout<<\"▉▉▉▉▉▉▉▉▉★ ☆ 1.增加超市商品 ☆ ★▉▉▉▉▉▉▉▉▉\"<cout<<\"▉▉▉▉▉▉▉▉▉★ ☆ 2.显示超市商品 ☆ ★▉▉▉▉▉▉▉▉▉\"<cout<<\"▉▉▉▉▉▉▉▉▉★ ☆ 3.排序统计商品 ☆ ★▉▉▉▉▉▉▉▉▉\"<cout<<\"▉▉▉▉▉▉▉▉▉★ ☆ 4.查找超市商品 ☆ ★▉▉▉▉▉▉▉▉▉\"<cout<<\"▉▉▉▉▉▉▉▉▉★ ☆ 5.删除超市商品 ☆ ★▉▉▉▉▉▉▉▉▉\"<cout<<\"▉▉▉▉▉▉▉▉▉★ ☆ 6.修改超市商品 ☆ ★▉▉▉▉▉▉▉▉▉\"<cout<<\"▉▉▉▉▉▉▉▉▉★ ☆ 7.售出超市商品 ☆ ★▉▉▉▉▉▉▉▉▉\"<cout<<\"▉▉▉▉▉▉▉▉▉★ ☆ 8.保存超市商品信息 ☆ ★▉▉▉▉▉▉▉▉▉\"<cout<<\"▉▉▉▉▉▉▉▉▉★ ☆ 0.安全退出系统 ☆ ★▉▉▉▉▉▉▉▉▉\"<cout<<\"\\\\n\\\\ 请选择:0-8\"<system(\"cls\");

cout<<\"********************************************************************************\\n\"

<<\"\ 1. 修改商品名 4. 修改进货价\\7. 修改净利润\\n\"

<<\"\ 2. 修改种类 5. 修改售出价\\8. 修改修改商品产地\\n\"

26

C++《超市商品管理系统》课程设计报告

<<\"\ 3. 修改编号 6. 修改剩余商品量\\9. 修改生产商品牌\\n\"

<<\"\\\\10.修改全部\\n\"

<<\"********************************************************************************\"<cout<<\"\\\\n\\\\ 请选择:0-10\"<break; } case 4: {

system(\"cls\");

cout<<\"********************************************************************************\\n\"

<<\"\ 1. 按进货价排序 2. 按库存量排序 3. 按净利润排序\\n\"

<<\"********************************************************************************\"<cout<<\"\\\\n\\\\ 请选择:0-3\"<break; } case 5: {

system(\"cls\");

cout<<\"\\n\\ *********************************\\n\";

cout<<\"\\ ***** 1.按商品的名称查找 *****\\n\\ ***** 2.按商品编号查找 *****\";

cout<<\"\\n\\ *********************************\\n请选择:0-2\";

break; } } }

void Goodsmessage::Find() //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ {

system(\"cls\");

char name[20] ,Id[10];

27

C++《超市商品管理系统》课程设计报告

int x;

Goods * p=NULL; showMenu(5); cin>>x; switch(x) {

case 1:{cout<<\"\\请输入要查找的商品的名称:\";cin>>name; if(p=FindItem(name)) {

p->Next->Show();

cout<<\"输入任意字符!继续……\"; getch(); } else {

cout<<\"\\没有找到该名称的商品!\"<<'\\n'<}break; case 2: {

cout<<\"\\请输入要查找的商品的编号:\";cin>>Id; if(p=FindID(Id)) {

p->Next->Show();

cout<<\"输入任意字符!继续……\"; getch(); } else {

cout<<\"\\没有找到该编号的商品!\"<<'\\n'<void Goodsmessage::ModifyItem() //修改商品信息 {

showMenu(3); int x;

28

C++《超市商品管理系统》课程设计报告

cin>>x; switch(x) {

case 1: {

char Id[20]; Goods * p=NULL;

cout<<\"\\请输入要修改的商品的编号:\";cin>>Id; if(p=FindID(Id)) {

cout<<\"\\已找到商品的信息,请输入新的信息!\"<p->Next->InputName();

cout<<\"修改成功!\"<cout<<\"输入任意字符!继续……\"; getch(); } else {

cout<<\"\\没有找到您需要的商品!\"<break; }

case 2: {

char Id[20]; Goods * p=NULL;

cout<<\"\\请输入要修改的商品的编号:\";cin>>Id; if(p=FindID(Id)) {

cout<<\"\\已找到商品的信息,请输入新的信息!\"<p->Next->InputKind();

cout<<\"修改成功!\"<cout<<\"输入任意字符!继续……\"; getch(); } else {

cout<<\"\\没有找到您需要的商品!\"<29

C++《超市商品管理系统》课程设计报告

}

break; }

case 3: {

char Id[20]; Goods * p=NULL;

cout<<\"\\请输入要修改的商品的编号:\";cin>>Id; if(p=FindID(Id)) {

cout<<\"\\已找到商品的信息,请输入新的信息!\"<Next->InputID();

cout<<\"修改成功!\"<cout<<\"输入任意字符!继续……\"; getch(); } else {

cout<<\"\\没有找到您需要的商品!\"<break; }

case 4: {

char Id[20]; Goods * p=NULL;

cout<<\"\\请输入要修改的商品的编号:\";cin>>Id; if(p=FindID(Id)) {

cout<<\"\\已找到商品的信息,请输入新的信息!\"<p->Next->InputBuyprice(); cout<<\"修改成功!\"<cout<<\"输入任意字符!继续……\"; getch(); } else {

cout<<\"\\没有找到您需要的商品!\"<30

C++《超市商品管理系统》课程设计报告

}

break; }

case 5: {

char Id[20]; Goods * p=NULL;

cout<<\"\\请输入要修改的商品的编号:\";cin>>Id; if(p=FindID(Id)) {

cout<<\"\\已找到商品的信息,请输入新的信息!\"<Next->InputSaleprice(); cout<<\"修改成功!\"<cout<<\"输入任意字符!继续……\"; getch(); } else {

cout<<\"\\没有找到您需要的商品!\"<break; }

case 6: {

char Id[20]; Goods * p=NULL;

cout<<\"\\请输入要修改的商品的编号:\";cin>>Id; if(p=FindID(Id)) {

cout<<\"\\已找到商品的信息,请输入新的信息!\"<p->Next->InputAmount(); cout<<\"修改成功!\"<cout<<\"输入任意字符!继续……\"; getch(); } else {

cout<<\"\\没有找到您需要的商品!\"<31

C++《超市商品管理系统》课程设计报告

}

break; }

case 7: {

char Id[20]; Goods * p=NULL;

cout<<\"\\请输入要修改的商品的编号:\";cin>>Id; if(p=FindID(Id)) {

cout<<\"\\已找到商品的信息,请输入新的信息!\"<Next->InputProfit(); cout<<\"修改成功!\"<cout<<\"输入任意字符!继续……\"; getch(); } else {

cout<<\"\\没有找到您需要的商品!\"<break; }

case 8: {

char Id[20]; Goods * p=NULL;

cout<<\"\\请输入要修改的商品的编号:\";cin>>Id; if(p=FindID(Id)) {

cout<<\"\\已找到商品的信息,请输入新的信息!\"<p->Next->InputPlace(); cout<<\"修改成功!\"<cout<<\"输入任意字符!继续……\"; getch(); } else {

cout<<\"\\没有找到您需要的商品!\"<32

C++《超市商品管理系统》课程设计报告

}

break; }

case 9: {

char Id[20]; Goods * p=NULL;

cout<<\"\\请输入要修改的商品的编号:\";cin>>Id; if(p=FindID(Id)) {

cout<<\"\\已找到商品的信息,请输入新的信息!\"<Next->Inputbrand(); cout<<\"修改成功!\"<cout<<\"输入任意字符!继续……\"; getch(); } else {

cout<<\"\\没有找到您需要的商品!\"<break; }

case 10: {

char Id[20]; Goods * p=NULL;

cout<<\"\\请输入要修改的商品的编号:\";cin>>Id; if(p=FindID(Id)) {

cout<<\"\\已找到商品的信息,请输入新的信息!\"<p->Next->InputAll();

cout<<\"修改成功!\"<cout<<\"输入任意字符!继续……\"; getch(); } else {

cout<<\"\\没有找到您需要的商品!\"<33

C++《超市商品管理系统》课程设计报告

} } } }

void Goodsmessage::RemoveItem() //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除商品信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ {

system(\"cls\"); char Id[20];

Goods * p=NULL,*temp=NULL;

cout<<\"\\请输入要删除的商品的编号:\"<>Id; if(p=FindID(Id)) {

temp=p->Next;

p->Next=p->Next->Next; delete temp;

cout<<\"\\删除成功!\"<cout<<\"\\没有找到您需要的商品!\"<void Goodsmessage::Saleprice() //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌售出商品﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ {

system(\"cls\"); char Id[20];int i; Goods * p=NULL; Goods * temp=NULL;

cout<<\"\\请输入要售出的商品的编号和数量:\"<>Id;cin>>i;

if(p=FindID(Id)) {

34

C++《超市商品管理系统》课程设计报告

if(p->Next->amount>i) {

p->Next->amount -= i; p->Next->amount1 += i;

p->Next->profit +=i*(p->Next->saleprice - p->Next->buyprice);

cout<<\"商品售出成功!\"<<\"\\n\";

cout<<\"售出商品编号: \"<cout<<\"售出后商品信息: \"<p->Next->Show(); Save();

cout<<\"输入任意字符!继续……\"; getch(); } else {

cout<<\"商品数量不够,不能购买\"<cout<<\"无此种商品,不能购买\"<showMenu(2); }

}

void Goodsmessage::Swap(Goods *p1, Goods *p2) //的数据 {

Goods *temp=new Goods;

strcpy(temp->name,p1->name); temp->kind=p1->kind; strcpy(temp->Id,p1->Id);

35

交换两个商品C++《超市商品管理系统》课程设计报告

strcpy(temp->place,p1->place); temp->saleprice=p1->saleprice; temp->buyprice=p1->buyprice; temp->amount=p1->amount; temp->profit=p1->profit;

strcpy(temp->brand,p1->brand);

strcpy(p1->name,p2->name); p1->kind=p2->kind; strcpy(p1->Id,p2->Id);

strcpy(p1->place,p2->place); p1->saleprice=p2->saleprice; p1->buyprice=p2->buyprice; p1->amount=p2->amount; p1->profit=p2->profit;

strcpy(p1->brand,p2->brand);

strcpy(p2->name,temp->name); p2->kind=temp->kind; strcpy(p2->Id,temp->Id);

strcpy(p2->place,temp->place); p2->saleprice=temp->saleprice; p2->buyprice=temp->buyprice; p2->amount=temp->amount; p2->profit=temp->profit;

strcpy(p2->brand,temp->brand); }

int Goodsmessage::ListCount() //统计当前链表的记录总数,返回一个整数 {

if(! Head) return 0; int n=0;

for(Goods * p=Head->Next;p!=End;p=p->Next) {

n++; }

return n; }

36

C++《超市商品管理系统》课程设计报告

void Goodsmessage::Paixu() //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌排序商品﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ {

showMenu(4); int x; cin>>x; switch(x) {

case 1: {

system(\"cls\");

cout <<\"\\排序中...\"<Goods *p=NULL,*p1=NULL,*k=NULL; int n=Goodsmessage::ListCount(); if(n<2) return;

for(p=Head->Next;p!=End;p=p->Next) for(k=p->Next;k!=End;k=k->Next) {

if(p->buyprice>k->buyprice) {

Goodsmessage::Swap(p,k); } }

Display();

out.open(\"进货价.txt\");

for(Goods *q=Head->Next;q!=End;q=q->Next)

out<name<<\"\\"<kind<<\"\\"<Id<<\"\\"<buyprice<<\"\\"<saleprice<<\"\\"<amount<<\"\\"<place<<\"\\"<brand<<\"\\"<profit<<'\\n';

out.close();

cout<<\"保存信息成功\"<case 2: {

system(\"cls\");

37

C++《超市商品管理系统》课程设计报告

cout <<\"\\排序中...\"<Goods *p=NULL,*p1=NULL,*k=NULL; int n=Goodsmessage::ListCount(); if(n<2) return;

for(p=Head->Next;p!=End;p=p->Next) for(k=p->Next;k!=End;k=k->Next) {

if(p->amount>k->amount) {

Goodsmessage::Swap(p,k); } }

Display();

out.open(\"库存量.txt\");

for(Goods *q=Head->Next;q!=End;q=q->Next)

out<name<<\"\\"<kind<<\"\\"<Id<<\"\\"<buyprice<<\"\\"<saleprice<<\"\\"<amount<<\"\\"<place<<\"\\"<brand<<\"\\"<profit<<'\\n';

out.close();

cout<<\"保存信息成功\"<case 3: {

system(\"cls\");

cout <<\"\\排序中...\"<Goods *p=NULL,*p1=NULL,*k=NULL; int n=Goodsmessage::ListCount(); if(n<2) return;

for(p=Head->Next;p!=End;p=p->Next) for(k=p->Next;k!=End;k=k->Next) {

if(p->profit>k->profit) {

Goodsmessage::Swap(p,k); } }

38

C++《超市商品管理系统》课程设计报告

Display();

out.open(\"净利润.txt\");

for(Goods *q=Head->Next;q!=End;q=q->Next)

out<name<<\"\\"<kind<<\"\\"<Id<<\"\\"<buyprice<<\"\\"<saleprice<<\"\\"<amount<<\"\\"<place<<\"\\"<brand<<\"\\"<profit<<'\\n';

out.close();

cout<<\"保存信息成功\"<void Goodsmessage::Save() //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存商品信息到文件函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ {

out.open(\"supermarket.txt\");

for(Goods *p=Head->Next;p!=End;p=p->Next)

out<name<<\"\\"<kind<<\"\\"<Id<<\"\\"<buyprice<<\"\\"<saleprice<<\"\\"<amount<<\"\\"<place<<\"\\"<brand<<\"\\"<profit<<'\\n';

out.close();

cout<<\"保存信息成功\"<int main() //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ {

cout <<

\"\\$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\" << endl; for(int i = 0; i < 3; i ++)

cout<<\"\\◎\\\\\\ ◎\" << endl;

cout<<\"\\◎★★★★【 欢迎进入超市商品管理系统 】★★★★◎\" << endl;

for(i = 0; i < 3; i++)

cout<<\"\\◎\\\\\\ ◎\"<39

C++《超市商品管理系统》课程设计报告

cout<<\"\\$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\\n\"<Goodsmessage Grade;

cout<<\"\\\\按任意键开始……\"; getch(); int x;

bool quit =false; while(!quit) {

Grade.showMenu(2); cin>>x; switch(x) {

case 0:{quit=true;break;}

case 1:{Grade.AddItem();break;} case 2:{Grade.Display();break;} case 3:{Grade.Paixu();break;} case 4:{Grade.Find();break;}

case 5:{Grade.RemoveItem();break;} case 6:{Grade.ModifyItem();break;} case 7:{Grade.Saleprice();break;} case 8:{Grade.Save();break;} } }

return 0; }

40

C++《超市商品管理系统》课程设计报告

参考文献

[1] 谭浩强. C++程序设计[M]. 北京:清华大学出版社,2004. [2] 邓文新. C++语言程序设计方法[M]. 北京:清华大学出版社,2010. [3] 刘维富. C++程序设计实验与编程实践[M]. 北京:高等教育出版社,2007. [4] 谭浩强. C++语言程序设计题解与上机指导[M]. 北京:清华大学出版社,2010. [5] 孟宪福. C++语言程序设计教程[M]. 北京:清华大学出版社,2008.

41

C++《超市商品管理系统》课程设计报告

致 谢

为期两周的C++课程设计终于结束,最初从指导老师讲解个任务相关的基础知识,下来自己查阅相关资料熟悉任务要求,接下来两天进行查阅相关资料学习相关的基础知识,逐步加深对个知识点的了解和掌握,然后构思系统模块和层次结构,在有了具体的想法后便开始进行系统程序代码的的编程、测试,最终实现整个系统的功能和要求。

在整个实践过程当中,当然不是一帆风顺的,整个学期所学的知识点基本都要在这一个系统当中运用,有些知识点用起来很顺手,有些知识板块还是不能很好掌握。对于模板的学习和掌握不够,用起来十分生疏,还有文件的处理、以及整个系统类的继承机制处理不是很明确,一开始所有单个类的函数功能基本都实现,到把所有的层次结构统筹规划关联起来时就出问题,不知该从何下手。于是请教指导老师和班级当中学的较好的同学请教指点,最终完成了整个系统的功能实现。

42

C++《超市商品管理系统》课程设计报告

通过一学期C++程序设计的学习,让自己收获了不少新的知识,同时也让自己感受到收获的喜悦,通过自己的努力,将一个程序从头到尾一步步完成,一个个错误的解决,一个个知识点的回顾掌握学习,慢慢的积累学习,养成好的变成习惯和严谨的逻辑思维。 在此,感谢指导老师的细心解释,朋友同学的热情帮助,在你的帮助下,让自己收获知识,弥补不足受益匪浅。也让我深刻体会到学海无涯,用正确的态度面对学习的挑战,奖励路联系实际,进一步熟练掌握科学知识完善自己,为后面自己的学习,工作打下坚实的基础。

43

X

C++《超市商品管理系统》课程设计报告

44

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务